diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html
index d1708279e..37fc9a9c2 100644
--- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html
+++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html
@@ -213,9 +213,9 @@
},
error: function(data) {
var alert = $('
We are sorry but something went wrong. Please try again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function() {
- $(".error").empty();
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function() {
+ $("#slide-error-container").empty();
});
}
});
@@ -253,7 +253,10 @@
var originalBiblioHtml = {};
- function biblioBlockDoubleClick(e) {
+ function biblioBlockEditClick(e) {
+ e.preventDefault();
+ e.stopPropagation();
+
$(".EasyMDEContainer").remove();
var biblioBlock = $(e.target).closest('.biblioDivStaff');
biblioBlock.addClass("open");
@@ -263,11 +266,9 @@
// Store the COMPLETE original HTML including all references
originalBiblioHtml[blockId] = biblioBlock.html();
- var description = $("div.open p:eq(0)").text();
- defaultValue = description;
-
- var title = $("div.open p span:eq(0)").text();
- var desc = $("div.open p span:eq(1)").text();
+ // Extract title from h4 strong tag and description from p tag
+ var title = $("div.open > .col-md-10 h4 strong").text().trim();
+ var desc = $("div.open > .col-md-10 > p").text().trim();
// Showing the edit bibliography form with all the respective values
$("#editBiblioAlert").show();
@@ -280,15 +281,21 @@
formDataCancel.append('biblioTitle', title);
formDataCancel.append('description', desc);
- // Remove card border
+ // Hide the block while editing (don't change overflow or height)
$(".open").css('display', 'none');
- $(".open").css('overflow-y', 'scroll');
- $(".open").css('max-height', '200px');
}
var originalReferenceHtml = {};
- function referenceBlockDoubleClick(e) {
+ function referenceBlockClick(e) {
+ // Don't open edit modal if clicking on a button or icon
+ if ($(e.target).closest('a[data-action], .btn, .icon-trash').length > 0) {
+ return;
+ }
+
+ e.preventDefault();
+ e.stopPropagation();
+
var referenceBlock = $(e.target).closest('.referenceDivStaff');
currentRefId = referenceBlock.find('input[data-reference-id]').val();
@@ -717,7 +724,7 @@
$("#loginAlert").show();
} else {
var alert = $('');
- $('.error').append(alert);
+ $('#slide-error-container').append(alert);
}
}
});
@@ -1045,7 +1052,7 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try again later.
× ');
- $('.error').append(alert);
+ $('#slide-error-container').append(alert);
}
});
});
@@ -1345,10 +1352,10 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
}
});
});
@@ -1386,9 +1393,9 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
});
}
});
@@ -1417,9 +1424,9 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
});
}
});
@@ -1450,10 +1457,10 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
}
});
});
@@ -1472,10 +1479,10 @@
var blockId = $('#deleteImageId').val();
if(blockId == null || blockId == ''){
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
} else{
$('#deleteImageId').remove();
// ------------- delete image content blocks ------------
@@ -1487,10 +1494,10 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
}
});
}
@@ -1510,10 +1517,10 @@
var blockId = $('#deleteChoiceBlockId').val();
if(blockId == null || blockId == ''){
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
} else{
$('#deleteChoiceBlockId').remove();
// ------------- delete choices content blocks ------------
@@ -1525,10 +1532,10 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
}
});
}
@@ -1547,10 +1554,10 @@
if(blockId == null || blockId == ''){
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
} else{
// ------------- delete video content blocks ------------
$.ajax({
@@ -1561,10 +1568,10 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
}
});
}
@@ -1579,10 +1586,10 @@
var blockId = $('#deleteChoiceBlockId').attr('value');
if(blockId == null || blockId == ''){
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
} else{
$('#deleteChoiceBlockId').remove()
// ------------- delete choices content blocks ------------
@@ -1594,10 +1601,10 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try to delete again later.
× ');
- $('.error').append(alert);
- $(".error").delay(4000).slideUp(500, function(){
- $(".error").empty();
- });
+ $('#slide-error-container').append(alert);
+ $("#slide-error-container").delay(4000).slideUp(500, function(){
+ $("#slide-error-container").empty();
+ });
}
});
}
@@ -1656,21 +1663,28 @@
// Updated biblioblock creation with data attributes
var biblioblock = $(
'' +
- '
' +
- 'Bibliography Title: ' + data.biblioTitle + ' ,' +
- 'Description: ' + data.description + ' ' +
- '
' +
+ '
' +
+ '
' + data.biblioTitle + ' ' +
+ '
' + data.description + '
' +
+ '
' +
'
' +
- '
' +
+ '' +
'' +
'
' +
' '
);
- $(biblioblock[0]).mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(biblioBlockDoubleClick);
+ // Don't bind any click handlers to the block itself
$('#slideSpace').append(biblioblock);
},
error: function(data) {
@@ -1679,7 +1693,7 @@
}
else {
var alert = $('We are sorry but something went wrong. Please try again later.
× ');
- $('.error').append(alert);
+ $('#slide-error-container').append(alert);
}
}
});
@@ -1748,10 +1762,11 @@
},
data: jsonData,
success: function(data) {
- // Updated with data attributes
+ // Updated with data attributes - Type should be FIRST
var referenceblock = $(
'' +
'
' +
+ 'Type: ' + data.type + ' , ' +
'Reference Title: ' + data.title + ' , ' +
'Author: ' + data.author + ' , ' +
'Year: ' + data.year + ' , ' +
@@ -1761,16 +1776,15 @@
'Issue: ' + data.issue + ' , ' +
'Pages: ' + data.pages + ' , ' +
'Editors: ' + data.editors + ' , ' +
- 'Type: ' + data.type + ' , ' +
'Note: ' + data.note + ' ' +
'
' +
'
' +
- '
' +
+ ' ' +
' ' +
'
'
);
- $(referenceblock[0]).mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(referenceBlockDoubleClick);
+ $(referenceblock[0]).mouseenter(onMouseEnter).mouseleave(onMouseLeave).on('click', referenceBlockClick);
var elem = $('#' + biblioBlockId).find('#referenceSpace');
elem.append(referenceblock);
@@ -1783,7 +1797,7 @@
}
else {
var alert = $('We are sorry but something went wrong. Please try again later.
× ');
- $('.error').append(alert);
+ $('#slide-error-container').append(alert);
}
}
});
@@ -1907,7 +1921,7 @@
$("#loginAlert").show();
} else {
var alert = $('We are sorry but something went wrong. Please try again later.
× ');
- $('.error').append(alert);
+ $('#slide-error-container').append(alert);
}
}
});
@@ -1977,7 +1991,7 @@
},
error: function(data) {
var alert = $('We are sorry but something went wrong. Please try again later.
× ');
- $('.error').append(alert);
+ $('#slide-error-container').append(alert);
}
});
$('#choiceForm')[0].reset();
@@ -2131,15 +2145,22 @@
// Rebuild bibliography header structure
var biblioHtml =
- '' +
- 'Bibliography Title: ' + formData.get('biblioTitle') + ' , ' +
- 'Description: ' + formData.get('description') + ' ' +
- '
' +
+ '' +
+ '
' + formData.get('biblioTitle') + ' ' +
+ '
' + formData.get('description') + '
' +
+ '
' +
' ' +
- '' +
+ '' +
'
';
$(".open").append(biblioHtml);
@@ -2151,13 +2172,18 @@
});
}
- // Rebind event handlers for bibliography
- $('.biblioDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(biblioBlockDoubleClick);
+ // Rebind event handlers for bibliography - no double click on block
+ $('[data-action="edit-biblio"]').off('click').on('click', biblioBlockEditClick);
- // Rebind event handlers for all restored references
- $('.referenceDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(referenceBlockDoubleClick);
+ // Rebind event handlers for all restored references - use click instead of dblclick
+ $('.referenceDivStaff').off('click').mouseenter(onMouseEnter).mouseleave(onMouseLeave).on('click', referenceBlockClick);
- $(".open").css('display', 'flex');
+ // Reset CSS properties that were set during edit
+ $(".open").css({
+ 'display': 'flex',
+ 'overflow-y': 'visible',
+ 'max-height': 'none'
+ });
$(".open").removeClass("open");
}
@@ -2172,11 +2198,8 @@
delete originalBiblioHtml[blockId];
}
- // Reset styles and classes
+ // Reset display property
$(".open").css('display', 'flex');
- $(".open").css('height', 'auto');
- $(".open").css('overflow-y', 'visible');
- $(".open").css('max-height', 'none');
$(".open").removeClass("open");
// Rebind all event handlers for the restored content
@@ -2205,17 +2228,14 @@
});
function rebindBiblioEventHandlers() {
- // Rebind bibliography block event handlers
- $('.biblioDivStaff').off('mouseenter mouseleave dblclick')
- .mouseenter(onMouseEnter)
- .mouseleave(onMouseLeave)
- .dblclick(biblioBlockDoubleClick);
+ // Rebind bibliography block edit button handlers
+ $('[data-action="edit-biblio"]').off('click').on('click', biblioBlockEditClick);
- // Rebind reference block event handlers
- $('.referenceDivStaff').off('mouseenter mouseleave dblclick')
+ // Rebind reference block event handlers - use click instead of dblclick
+ $('.referenceDivStaff').off('mouseenter mouseleave click')
.mouseenter(onMouseEnter)
.mouseleave(onMouseLeave)
- .dblclick(referenceBlockDoubleClick);
+ .on('click', referenceBlockClick);
}
function updateReferenceBox(blockId, formData) {
@@ -2237,6 +2257,7 @@
$(".open").append(
'' +
+ 'Type: ' + type + ' , ' +
'Reference Title: ' + title + ' , ' +
'Author: ' + author + ' , ' +
'Year: ' + year + ' , ' +
@@ -2246,17 +2267,16 @@
'Issue: ' + issue + ' , ' +
'Pages: ' + pages + ' , ' +
'Editors: ' + editors + ' , ' +
- 'Type: ' + type + ' , ' +
'Note: ' + note + ' ' +
'
' +
' ' +
- ' ' +
+ ' ' +
' '
);
// Reset border of the card
- // Rebind event handlers
- $('.referenceDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(referenceBlockDoubleClick);
+ // Rebind event handlers - use click instead of dblclick
+ $('.referenceDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).on('click', referenceBlockClick);
$(".open").css('display', 'flex');
// Remove id from storage so it's not there on refresh
@@ -2289,8 +2309,10 @@
$('.textDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(textBlockDoubleClick);
$('.vidDiv').mouseenter(onMouseEnter).mouseleave(onMouseLeave);
$('.SpaceDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(spaceBlockDoubleClick);
- $('.biblioDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(biblioBlockDoubleClick);
- $('.referenceDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(referenceBlockDoubleClick);
+ // Bind edit button for bibliography blocks, not the block itself
+ $('[data-action="edit-biblio"]').on('click', biblioBlockEditClick);
+ // Use click instead of dblclick for references
+ $('.referenceDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).on('click', referenceBlockClick);
$('#closeTextBlock').on('click', function() {
$("#editTextAlert").hide();
@@ -2406,15 +2428,22 @@
e.preventDefault();
// ------------- editing bibliography blocks ------------
- var formData = new FormData();
var title = $("#editTitleBiblio").val();
var desc = $("#editDescBiblio").val();
var blockId = $(".open").attr("id");
var token = [[${_csrf.token}]];
+ // Create JSON object with correct field names for backend
+ var requestData = {
+ biblioTitle: title,
+ description: desc,
+ id: blockId
+ };
+
+ // Create FormData for updateBiblioBox function
+ var formData = new FormData();
formData.append('biblioTitle', title);
formData.append('description', desc);
- formData.append('biblioBlockId', blockId);
$("#editBiblioAlert").hide();
@@ -2422,13 +2451,12 @@
url: "[(@{'/staff/module/'+${module.id}+'/slide/'+${slide.id}+'/bibliography/edit'})]",
type: 'POST',
cache: false,
- contentType: false,
+ contentType: 'application/json; charset=utf-8',
processData: false,
- data: formData,
+ data: JSON.stringify(requestData),
headers: {
'X-CSRF-Token': token
},
- enctype: 'multipart/form-data',
success: function(data) {
// Replace bibliography box with new values
updateBiblioBox(blockId, formData);
@@ -2443,7 +2471,7 @@
$("#loginAlert").show();
} else {
var alert = $('We are sorry but something went wrong. Please try again later.
× ');
- $('.error').append(alert);
+ $('#slide-error-container').append(alert);
}
}
});
@@ -2525,10 +2553,11 @@
});
});
- // Use event delegation for reference blocks
+ // Use event delegation for reference blocks and biblio edit buttons
$(document).on('mouseenter', '.referenceDivStaff', onMouseEnter);
$(document).on('mouseleave', '.referenceDivStaff', onMouseLeave);
- $(document).on('dblclick', '.referenceDivStaff', referenceBlockDoubleClick);
+ $(document).on('click', '.referenceDivStaff', referenceBlockClick);
+ $(document).on('click', '[data-action="edit-biblio"]', biblioBlockEditClick);
$("#submitSpaceBlock").on("click", function(e){
e.preventDefault();
@@ -2687,7 +2716,7 @@
[[${slide.name}]]
-
+