From b70a6cb348a45c856bd63aaba691e0e334dabe4b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 2 Oct 2022 18:45:55 +0300 Subject: [PATCH] Added faster way to do actions on minicard menu. Thanks to mohammadZahedian, HT-Marley and xet7 ! Fixes #4303 --- client/components/cards/minicard.css | 9 ++++++ client/components/cards/minicard.jade | 42 +++++++++++++++++++++++++++ client/components/cards/minicard.js | 22 ++++++++++++++ imports/i18n/data/en.i18n.json | 3 +- 4 files changed, 75 insertions(+), 1 deletion(-) diff --git a/client/components/cards/minicard.css b/client/components/cards/minicard.css index f0ef52ed7..0e05c260b 100644 --- a/client/components/cards/minicard.css +++ b/client/components/cards/minicard.css @@ -41,6 +41,15 @@ overflow: hidden; transition: transform 0.2s, border-radius 0.2s; } +.minicard-details-menu-with-handle { + float: right; + font-size: 14px; + padding-right: 30px; +} +.minicard-details-menu { + float: right; + font-size: 14px; +} .minicard.linked-board .linked-icon, .minicard.linked-card .linked-icon { display: inline-block; diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade index 9afba8a69..01cf711e7 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -4,8 +4,11 @@ template(name="minicard") class="{{#if isLinkedBoard}}linked-board{{/if}}" class="{{#if colorClass}}minicard-{{colorClass}}{{/if}}") if isTouchScreenOrShowDesktopDragHandles + a.fa.fa-navicon.minicard-details-menu-with-handle.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}") .handle .fa.fa-arrows + else + a.fa.fa-navicon.minicard-details-menu.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}") if cover .minicard-cover(style="background-image: url('{{cover.link 'original' '/'}}?dummyReloadAfterSessionEstablished={{sess}}');") if labels @@ -155,3 +158,42 @@ template(name="editCardSortOrderPopup") input.js-edit-card-sort-popup(type='text' autofocus value=sort dir="auto") .edit-controls.clearfix button.primary.confirm.js-submit-edit-card-sort-popup(type="submit") {{_ 'save'}} + +template(name="minicardDetailsActionsPopup") + ul.pop-over-list + if currentUser.isBoardAdmin + li + a.js-move-card + i.fa.fa-arrow-right + | {{_ 'moveCardPopup-title'}} + unless currentUser.isWorker + li + a.js-copy-card + i.fa.fa-copy + | {{_ 'copyCardPopup-title'}} + hr + li + a.js-move-card-to-top + i.fa.fa-arrow-up + | {{_ 'moveCardToTop-title'}} + li + a.js-move-card-to-bottom + i.fa.fa-arrow-down + | {{_ 'moveCardToBottom-title'}} + hr + li + a.js-add-labels + i.fa.fa-tags + | {{_ 'card-edit-labels'}} + li + a.js-due-date + i.fa.fa-sign-in + | {{_ 'editCardDueDatePopup-title'}} + li + a.js-set-card-color + i.fa.fa-paint-brush + | {{_ 'setCardColorPopup-title'}} + li + a.js-link + i.fa.fa-link + | {{_ 'link-card'}} diff --git a/client/components/cards/minicard.js b/client/components/cards/minicard.js index 3541497cb..9a0e3a262 100644 --- a/client/components/cards/minicard.js +++ b/client/components/cards/minicard.js @@ -97,6 +97,7 @@ BlazeComponent.extendComponent({ }, 'click span.badge-icon.fa.fa-sort, click span.badge-text.check-list-sort' : Popup.open("editCardSortOrder"), 'click .minicard-labels' : this.cardLabelsPopup, + 'click .js-open-minicard-details-menu': Popup.open('minicardDetailsActions'), } ]; }, @@ -147,3 +148,24 @@ BlazeComponent.extendComponent({ ] } }).register('editCardSortOrderPopup'); + +Template.minicardDetailsActionsPopup.events({ + 'click .js-due-date': Popup.open('editCardDueDate'), + 'click .js-move-card': Popup.open('moveCard'), + 'click .js-copy-card': Popup.open('copyCard'), + 'click .js-set-card-color': Popup.open('setCardColor'), + 'click .js-add-labels': Popup.open('cardLabels'), + 'click .js-link': Popup.open('linkCard'), + 'click .js-move-card-to-top'(event) { + event.preventDefault(); + const minOrder = this.getMinSort(); + this.move(this.boardId, this.swimlaneId, this.listId, minOrder - 1); + Popup.back(); + }, + 'click .js-move-card-to-bottom'(event) { + event.preventDefault(); + const maxOrder = this.getMaxSort(); + this.move(this.boardId, this.swimlaneId, this.listId, maxOrder + 1); + Popup.back(); + }, +}); diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index f33770468..13a434cdb 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1195,5 +1195,6 @@ "password-again": "Password (again)", "if-you-already-have-an-account": "If you already have an account", "register": "Register", - "forgot-password": "Forgot password" + "forgot-password": "Forgot password", + "minicardDetailsActionsPopup-title": "Card Details" }