From 5c8fc1d13686f310e01ae91f459f9625d403af1f Mon Sep 17 00:00:00 2001 From: chylex <contact@chylex.com> Date: Fri, 27 Apr 2018 21:13:38 +0200 Subject: [PATCH] Fix clear-columns plugin button disappearing when adding/removing columns --- Resources/Plugins/clear-columns/browser.js | 61 +++++++++++----------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/Resources/Plugins/clear-columns/browser.js b/Resources/Plugins/clear-columns/browser.js index c3eb6571..56c16271 100644 --- a/Resources/Plugins/clear-columns/browser.js +++ b/Resources/Plugins/clear-columns/browser.js @@ -38,7 +38,7 @@ enabled(){ $(document).off("mousemove", this.eventKeyUp); } - $("#clear-columns-btn-all-1,#clear-columns-btn-all-2").text(pressed ? "Restore columns" : "Clear columns"); + $(".clear-columns-btn-all").text(pressed ? "Restore columns" : "Clear columns"); } }; @@ -78,28 +78,36 @@ enabled(){ } }; - // add column buttons and keyboard shortcut info to UI - replaceMustache("column/column_header.mustache", "</header>", [ - '{{^isTemporary}}', - '<a class="column-header-link td-clear-column-shortcut" href="#" data-action="td-clearcolumns-dosingle" style="right:34px">', - '<i class="icon icon-clear-timeline js-show-tip" data-placement="bottom" data-original-title="Clear column (hold Shift to restore)"></i>', - '</a>', - '{{/isTemporary}}', - '</header>' - ].join("")); + // setup clear all button + this.btnClearAllHTML = ` +<a class="clear-columns-btn-all-parent js-header-action link-clean cf app-nav-link padding-h--10" data-title="Clear columns (hold Shift to restore)" data-action="td-clearcolumns-doall"> + <div class="obj-left margin-l--2"><i class="icon icon-medium icon-clear-timeline"></i></div> + <div class="clear-columns-btn-all nbfc padding-ts hide-condensed txt-size--16 app-nav-link-text">Clear columns</div> +</a>`; - replaceMustache("keyboard_shortcut_list.mustache", "</dl> <dl", [ - '<dd class="keyboard-shortcut-definition" style="white-space:nowrap">', - '<span class="text-like-keyboard-key">1</span> … <span class="text-like-keyboard-key">9</span> + <span class="text-like-keyboard-key">Del</span> Clear column 1-9', - '</dd><dd class="keyboard-shortcut-definition">', - '<span class="text-like-keyboard-key">Alt</span> + <span class="text-like-keyboard-key">Del</span> Clear all columns', - '</dd></dl><dl' - ].join("")); + // add column buttons and keyboard shortcut info to UI + replaceMustache("column/column_header.mustache", "</header>", ` +{{^isTemporary}} + <a class="column-header-link td-clear-column-shortcut" href="#" data-action="td-clearcolumns-dosingle" style="right:34px"> + <i class="icon icon-clear-timeline js-show-tip" data-placement="bottom" data-original-title="Clear column (hold Shift to restore)"></i> + </a> +{{/isTemporary}} +</header>`); + + replaceMustache("keyboard_shortcut_list.mustache", "</dl> <dl", ` +<dd class="keyboard-shortcut-definition" style="white-space:nowrap"> + <span class="text-like-keyboard-key">1</span> … <span class="text-like-keyboard-key">9</span> + <span class="text-like-keyboard-key">Del</span> Clear column 1-9 +</dd><dd class="keyboard-shortcut-definition"> + <span class="text-like-keyboard-key">Alt</span> + <span class="text-like-keyboard-key">Del</span> Clear all columns +</dd></dl><dl`); + + replaceMustache("menus/column_nav_menu.mustache", "{{_i}}Add column{{/i}}</div> </a> </div>", `{{_i}}Add column{{/i}}</div></a>${this.btnClearAllHTML}</div>`) // load custom style var css = window.TDPF_createCustomStyle(this); - css.insert(".js-app-add-column.is-hidden + #clear-columns-btn-all-parent-1 { display: none; }"); - css.insert(".column-navigator-overflow #clear-columns-btn-all-parent-2 { display: none; }"); + css.insert(".js-app-add-column.is-hidden + .clear-columns-btn-all-parent { display: none; }"); + css.insert(".column-navigator-overflow .clear-columns-btn-all-parent { display: none !important; }"); + css.insert(".column-navigator-overflow { bottom: 224px !important; }"); css.insert(".column-title { margin-right: 60px !important; }"); css.insert(".mark-all-read-link { right: 59px !important; }"); css.insert(".open-compose-dm-link { right: 90px !important; }"); @@ -116,23 +124,14 @@ ready(){ $(document).on("keydown", this.eventKeyDown); $(document).on("keyup", this.eventKeyUp); - // add clear all button - const generateButton = (idParent, idButton) => { - return ` -<a id="${idParent}" class="js-header-action link-clean cf app-nav-link padding-h--10" data-title="Clear columns (hold Shift to restore)" data-action="td-clearcolumns-doall"> - <div class="obj-left margin-l--2"><i class="icon icon-medium icon-clear-timeline"></i></div> - <div id="${idButton}" class="nbfc padding-ts hide-condensed txt-size--16 app-nav-link-text">Clear columns</div> -</a>`; - }; - - $(".js-app-add-column").first().after(generateButton("clear-columns-btn-all-parent-1", "clear-columns-btn-all-1")); - $(".js-column-nav-list").first().append(generateButton("clear-columns-btn-all-parent-2", "clear-columns-btn-all-2")); + // setup clear all button for nav overflow + $(".js-app-add-column").first().after(this.btnClearAllHTML); // setup tooltip handling var tooltipEvents = $._data($(".js-header-action")[0]).events; if (tooltipEvents.mouseover && tooltipEvents.mouseover.length && tooltipEvents.mouseout && tooltipEvents.mouseout.length){ - $("#clear-columns-btn-all-parent-1,#clear-columns-btn-all-parent-2").on("mouseover", tooltipEvents.mouseover[0].handler).on("mouseout", tooltipEvents.mouseout[0].handler); + $(".clear-columns-btn-all-parent").on("mouseover", tooltipEvents.mouseover[0].handler).on("mouseout", tooltipEvents.mouseout[0].handler); } }