diff --git a/admin/tags.php b/admin/tags.php index 0858d830f..a56f20221 100644 --- a/admin/tags.php +++ b/admin/tags.php @@ -302,20 +302,27 @@ SELECT if (isset($_POST['delete']) and isset($_POST['tags'])) { - $query = ' + if (!isset($_POST['confirm_deletion'])) + { + $page['errors'][] = l10n('You need to confirm deletion'); + } + else + { + $query = ' SELECT name FROM '.TAGS_TABLE.' WHERE id IN ('.implode(',', $_POST['tags']).') ;'; - $tag_names = array_from_query($query, 'name'); + $tag_names = array_from_query($query, 'name'); - delete_tags($_POST['tags']); + delete_tags($_POST['tags']); - $page['infos'][] = l10n_dec( - 'The following tag was deleted', 'The %d following tags were deleted', - count($tag_names) - ) - .' : '.implode(', ', $tag_names); + $page['infos'][] = l10n_dec( + 'The following tag was deleted', 'The %d following tags were deleted', + count($tag_names) + ) + .' : '.implode(', ', $tag_names); + } } // +-----------------------------------------------------------------------+ diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index e54362637..72229c1b8 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -1,10 +1,45 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} {include file='include/tag_selection.inc.tpl'} {html_style} .showInfo { text-indent:5px; } +.buttonLike i { font-size:14px; } {/html_style} {footer_script require='jquery'} +/** + * Add tag + */ +jQuery("#addTag").click(function() { + jQuery("#addTagForm").toggle(); + jQuery("input[name=add_tag]").focus(); + return false; +}); + +jQuery("#addTagClose").click(function() { + jQuery("#addTagForm").hide(); + return false; +}); + +jQuery("#selectionMode").click(function() { + if (jQuery(this).hasClass("icon-check-empty")) { + jQuery("#selectionMode").removeClass("icon-check-empty").addClass("icon-check"); + jQuery('label.font-checkbox span').show(); + jQuery('ul.tagSelection a.showInfo').hide(); + jQuery('fieldset#action').show(); + jQuery('fieldset#selectTags legend').html("{'Tag selection'|translate|escape:javascript}"); + } + else { + jQuery("#selectionMode").removeClass("icon-check").addClass("icon-check-empty"); + jQuery('label.font-checkbox span').hide(); + jQuery('ul.tagSelection a.showInfo').show(); + jQuery('fieldset#action').hide(); + jQuery('fieldset#selectTags legend').html("{'Tags'|translate|escape:javascript}"); + } + return false; +}); + + jQuery('.showInfo').tipTip({ 'delay' : 0, 'fadeIn' : 200, @@ -25,13 +60,6 @@ jQuery("#mergeTags label").click(function() { displayDeletionWarnings(); }); -jQuery("input[name=merge]").click(function() { - if (jQuery("ul.tagSelection input[type=checkbox]:checked").length < 2) { - alert("{'Select at least two tags for merging'|@translate}"); - return false; - } -}); - $("#searchInput").on("keydown", function(e) { var $this = $(this), timer = $this.data("timer"); @@ -62,6 +90,64 @@ $("#searchInput").on("keydown", function(e) { e.preventDefault(); } }); + +jQuery('input[name="tags[]"]').click(function() { + var nbSelected = 0; + nbSelected = jQuery('input[name="tags[]"]').filter(':checked').length; + + if (nbSelected == 0) { + jQuery("#permitAction").hide(); + jQuery("#forbidAction").show(); + } + else { + jQuery("#permitAction").show(); + jQuery("#forbidAction").hide(); + } +}); + +jQuery("[id^=action_]").hide(); + +jQuery("select[name=selectAction]").change(function () { + jQuery("[id^=action_]").hide(); + + jQuery("#action_"+jQuery(this).prop("value")).show(); + + jQuery("#displayFormBlock").hide(); + jQuery("#applyActionBlock").hide(); + + if (jQuery(this).val() != -1 ) { + if (jQuery(this).val() == 'delete') { + jQuery("#applyActionBlock").show(); + jQuery("#applyAction").attr("name", jQuery(this).val()); + } + else { + jQuery("#displayForm").attr("name", jQuery(this).val()); + jQuery("#displayFormBlock").show(); + } + } + else { + } +}); + +jQuery("form").submit(function() { + if (jQuery("select[name=selectAction]").val() == "delete") { + if (!jQuery("input[name=confirm_deletion]").is(":checked")) { + jQuery("#action_delete .errors").show(); + return false; + } + } + + if (jQuery("select[name=selectAction]").val() == "merge") { + if (jQuery("ul.tagSelection input[type=checkbox]:checked").length < 2) { + alert("{'Select at least two tags for merging'|@translate}"); + return false; + } + } +}); + +jQuery("input[name=confirm_deletion]").change(function() { + jQuery("#action_delete .errors").hide(); +}); {/footer_script} @@ -69,7 +155,32 @@ $("#searchInput").on("keydown", function(e) {