diff --git a/view/theme/frio/js/textedit.js b/view/theme/frio/js/textedit.js index 9226646b7..02191f33d 100644 --- a/view/theme/frio/js/textedit.js +++ b/view/theme/frio/js/textedit.js @@ -162,21 +162,29 @@ function qCommentInsert(obj,id) { function confirmDelete() { return confirm(aStr.delitem); } -function dropItem(url, object) { +/** + * Hide and removes an item element from the DOM after the deletion url is + * successful, restore it else. + * + * @param {string} url The item removal URL + * @param {string} elementId The DOM id of the item element + * @returns {undefined} + */ +function dropItem(url, elementId) { var confirm = confirmDelete(); - //if the first character of the object is #, remove it because - // we use getElementById which don't need the # - // getElementByID selects elements even if there are special characters - // in the ID (like %) which won't work with jQuery - /// @todo ceck if we can solve this in the template - object = object.indexOf('#') == 0 ? object.substring(1) : object; - - if(confirm) { + if (confirm) { $('body').css('cursor', 'wait'); - $(document.getElementById(object)).fadeTo('fast', 0.33, function () { - $.get(url).done(function() { - $(document.getElementById(object)).remove(); + + var $el = $(document.getElementById(elementId)); + + $el.fadeTo('fast', 0.33, function () { + $.get(url).then(function() { + $el.remove(); + }).error(function() { + // @todo Show related error message + $el.show(); + }).always(function() { $('body').css('cursor', 'auto'); }); }); diff --git a/view/theme/frio/js/theme.js b/view/theme/frio/js/theme.js index b4ba2fd35..62cd85df9 100644 --- a/view/theme/frio/js/theme.js +++ b/view/theme/frio/js/theme.js @@ -573,31 +573,38 @@ String.prototype.rtrim = function() { return trimmed; }; -// Scroll to a specific item and highlight it -// Note: jquery.color.js is needed -function scrollToItem(itemID) { - if( typeof itemID === "undefined") +/** + * Scroll the screen to the item element whose id is provided, then highlights it + * + * Note: jquery.color.js is required + * + * @param {string} elementId The item element id + * @returns {undefined} + */ +function scrollToItem(elementId) { + if (typeof elementId === "undefined") { return; + } - var elm = $('#'+itemID); + var $el = $(document.getElementById(elementId)); // Test if the Item exists - if(!elm.length) + if (!$el.length) { return; + } // Define the colors which are used for highlighting var colWhite = {backgroundColor:'#F5F5F5'}; var colShiny = {backgroundColor:'#FFF176'}; - // Get the Item Position (we need to substract 100 to match - // correct position - var itemPos = $(elm).offset().top - 100; + // Get the Item Position (we need to substract 100 to match correct position + var itemPos = $el.offset().top - 100; // Scroll to the DIV with the ID (GUID) $('html, body').animate({ scrollTop: itemPos }, 400, function() { // Highlight post/commenent with ID (GUID) - $(elm).animate(colWhite, 1000).animate(colShiny).animate(colWhite, 600); + $el.animate(colWhite, 1000).animate(colShiny).animate(colWhite, 600); }); } diff --git a/view/theme/frio/templates/search_item.tpl b/view/theme/frio/templates/search_item.tpl index 90fbe03bb..0a6eca0c2 100644 --- a/view/theme/frio/templates/search_item.tpl +++ b/view/theme/frio/templates/search_item.tpl @@ -7,7 +7,7 @@ -