From c5725f31088fd6c994fc5a40141010c9761be641 Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 29 Nov 2016 10:51:11 +0100 Subject: [PATCH 1/6] fixes #556, tag manager actions in a list, not buttons The actions are no longer displayed a individual submit buttons, but as a select, like on other managers (users, photos, groups). The edit/duplicate/merge forms are still displayed only after a first submit. To be improved to be available right after the action selection. When we display an action form edit/duplicate/merge, we don't show other fieldsets on the page to focus on the important action. --- admin/tags.php | 23 +++-- admin/themes/default/template/tags.tpl | 122 +++++++++++++++++++++++-- 2 files changed, 129 insertions(+), 16 deletions(-) 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..d7d85b0f9 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -2,6 +2,7 @@ {html_style} .showInfo { text-indent:5px; } +.buttonLike i { font-size:14px; } {/html_style} {footer_script require='jquery'} @@ -62,6 +63,68 @@ $("#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("input[name=delete]").click(function() { + console.log("salut"); +return false; + if (!jQuery("input[name=confirm_deletion]").is(":checked")) { + jQuery("#action_delete .errors").show(); + return false; + } +}); + +jQuery("form").submit(function() { + console.log("hello"); + if (jQuery("select[name=selectAction]").val() == "delete") { + if (!jQuery("input[name=confirm_deletion]").is(":checked")) { + jQuery("#action_delete .errors").show(); + return false; + } + } + /* return false; */ +}); + +jQuery("input[name=confirm_deletion]").change(function() { + jQuery("#action_delete .errors").hide(); +}); {/footer_script} @@ -70,6 +133,8 @@ $("#searchInput").on("keydown", function(e) {
+ + {if isset($EDIT_TAGS_LIST)}
{'Edit tags'|@translate} @@ -148,11 +213,13 @@ $("#searchInput").on("keydown", function(e) {

+{if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} +
{'Tag selection'|@translate} {if count($all_tags)} -
+
{/if}
    @@ -172,13 +239,52 @@ $("#searchInput").on("keydown", function(e) { {/foreach}
-

- - - - - -

+
+ {'Action'|@translate} +
{'No tag selected, no action possible.'|@translate}
+ {* #permitAction *} +
+{/if} +
From 6d2812cf24b0739a1afbddac5c6c063c464ca3cb Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 29 Nov 2016 11:17:18 +0100 Subject: [PATCH 2/6] fixes #557, on-demand tag creation form --- admin/themes/default/template/tags.tpl | 47 ++++++++++++++++++++------ 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index d7d85b0f9..0e7bb44cb 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -6,6 +6,20 @@ {/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('.showInfo').tipTip({ 'delay' : 0, 'fadeIn' : 200, @@ -132,6 +146,28 @@ jQuery("input[name=confirm_deletion]").change(function() {

{'Manage tags'|@translate}

+

+ {'Add a tag'|translate} +

+ + +
@@ -202,17 +238,6 @@ jQuery("input[name=confirm_deletion]").change(function() { {/if} -
- {'Add a tag'|@translate} - - - -

-
- {if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)}
From 7dcbe20a8e49cc52177d2b3d802ebe549f2c4278 Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 29 Nov 2016 11:26:04 +0100 Subject: [PATCH 3/6] feature #556, adapt checks to new design --- admin/themes/default/template/tags.tpl | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index 0e7bb44cb..871515a32 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -40,13 +40,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"); @@ -133,6 +126,14 @@ jQuery("form").submit(function() { 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; + } + } + /* return false; */ }); From 8670a83031f64ed6594fffa09ddae7908f707a6d Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 29 Nov 2016 11:27:32 +0100 Subject: [PATCH 4/6] remove debug code in javascript --- admin/themes/default/template/tags.tpl | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index 871515a32..9efbc95f7 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -109,17 +109,7 @@ jQuery("select[name=selectAction]").change(function () { } }); -jQuery("input[name=delete]").click(function() { - console.log("salut"); -return false; - if (!jQuery("input[name=confirm_deletion]").is(":checked")) { - jQuery("#action_delete .errors").show(); - return false; - } -}); - jQuery("form").submit(function() { - console.log("hello"); if (jQuery("select[name=selectAction]").val() == "delete") { if (!jQuery("input[name=confirm_deletion]").is(":checked")) { jQuery("#action_delete .errors").show(); @@ -133,8 +123,6 @@ jQuery("form").submit(function() { return false; } } - - /* return false; */ }); jQuery("input[name=confirm_deletion]").change(function() { From 7c3c6701d8f147b1206da30920ef77f96b9a03dc Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 29 Nov 2016 13:26:17 +0100 Subject: [PATCH 5/6] fixes #558, tag manager selection mode By default, we're in "view mode", with the showInfo icon on each tag. We can switch to the "selection mode" and the showInfo icon is replaced by a font-checkbox. --- admin/themes/default/template/tags.tpl | 33 ++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index 9efbc95f7..72229c1b8 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -1,3 +1,4 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} {include file='include/tag_selection.inc.tpl'} {html_style} @@ -20,6 +21,25 @@ jQuery("#addTagClose").click(function() { 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, @@ -137,6 +157,7 @@ jQuery("input[name=confirm_deletion]").change(function() {

{'Add a tag'|translate} + {'Select tags'|translate}

@@ -229,8 +250,8 @@ jQuery("input[name=confirm_deletion]").change(function() { {if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} -
- {'Tag selection'|@translate} +
+ {'Tags'|@translate} {if count($all_tags)}
@@ -246,8 +267,10 @@ jQuery("input[name=confirm_deletion]").change(function() { {if !empty($tag.alt_names)}
{$tag.alt_names}{/if} {/strip}{/capture} -
-
+