diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/components/boards/boardArchive.jade | 16 | ||||
-rw-r--r-- | client/components/boards/boardArchive.js | 12 | ||||
-rw-r--r-- | client/components/boards/boardHeader.js | 6 | ||||
-rw-r--r-- | client/components/cards/cardDetails.jade | 48 | ||||
-rw-r--r-- | client/components/cards/cardDetails.js | 42 | ||||
-rw-r--r-- | client/components/cards/cardDetails.styl | 3 | ||||
-rw-r--r-- | client/components/cards/labels.styl | 42 |
7 files changed, 161 insertions, 8 deletions
diff --git a/client/components/boards/boardArchive.jade b/client/components/boards/boardArchive.jade index 6576f742..3008822c 100644 --- a/client/components/boards/boardArchive.jade +++ b/client/components/boards/boardArchive.jade @@ -6,9 +6,17 @@ template(name="archivedBoards") ul.archived-lists each archivedBoards li.archived-lists-item - button.js-restore-board - i.fa.fa-undo - | {{_ 'restore-board'}} - = title + div.board-header-btns + button.board-header-btn.js-restore-board + i.fa.fa-undo + | {{_ 'restore-board'}} + button.board-header-btn.js-delete-board + i.fa.fa-trash-o + | {{_ 'delete-board'}} + = title else li.no-items-message {{_ 'no-archived-boards'}} + +template(name="boardDeletePopup") + p {{_ 'delete-board-pop'}} + button.js-confirm.negate.full(type="submit") {{_ 'delete'}} diff --git a/client/components/boards/boardArchive.js b/client/components/boards/boardArchive.js index acb53149..dbebdd70 100644 --- a/client/components/boards/boardArchive.js +++ b/client/components/boards/boardArchive.js @@ -29,6 +29,18 @@ BlazeComponent.extendComponent({ board.restore(); Utils.goBoardId(board._id); }, + 'click .js-delete-board': Popup.afterConfirm('boardDelete', function() { + Popup.close(); + const isSandstorm = Meteor.settings && Meteor.settings.public && + Meteor.settings.public.sandstorm; + if (isSandstorm && Session.get('currentBoard')) { + const currentBoard = Boards.findOne(Session.get('currentBoard')); + Boards.remove(currentBoard._id); + } + const board = this.currentData(); + Boards.remove(board._id); + FlowRouter.go('home'); + }), }]; }, }).register('archivedBoards'); diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index e0b19246..b2640474 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -17,6 +17,12 @@ Template.boardMenuPopup.events({ // confirm that the board was successfully archived. FlowRouter.go('home'); }), + 'click .js-delete-board': Popup.afterConfirm('deleteBoard', function() { + const currentBoard = Boards.findOne(Session.get('currentBoard')); + Popup.close(); + Boards.remove(currentBoard._id); + FlowRouter.go('home'); + }), 'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'), 'click .js-import-board': Popup.open('chooseBoardSource'), }); diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 55ee8d32..aa4829a9 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -108,6 +108,39 @@ template(name="cardDetails") +viewer = description + .card-details-items + .card-details-item.card-details-item-name + h3.card-details-item-title {{_ 'requested-by'}} + if canModifyCard + +inlinedForm(classNames="js-card-details-requester") + +editCardRequesterForm + else + a.js-open-inlined-form + if requestedBy + +viewer + = requestedBy + else + | {{_ 'add'}} + else if requestedBy + +viewer + = requestedBy + + .card-details-item.card-details-item-name + h3.card-details-item-title {{_ 'assigned-by'}} + if canModifyCard + +inlinedForm(classNames="js-card-details-assigner") + +editCardAssignerForm + else + a.js-open-inlined-form + if assignedBy + +viewer + = assignedBy + else + | {{_ 'add'}} + else if requestedBy + +viewer + = assignedBy + hr +checklists(cardId = _id) @@ -141,6 +174,18 @@ template(name="editCardTitleForm") button.primary.confirm.js-submit-edit-card-title-form(type="submit") {{_ 'save'}} a.fa.fa-times-thin.js-close-inlined-form +template(name="editCardRequesterForm") + input.js-edit-card-requester(type='text' autofocus value=requestedBy) + .edit-controls.clearfix + button.primary.confirm.js-submit-edit-card-requester-form(type="submit") {{_ 'save'}} + a.fa.fa-times-thin.js-close-inlined-form + +template(name="editCardAssignerForm") + input.js-edit-card-assigner(type='text' autofocus value=assignedBy) + .edit-controls.clearfix + button.primary.confirm.js-submit-edit-card-assigner-form(type="submit") {{_ 'save'}} + a.fa.fa-times-thin.js-close-inlined-form + template(name="cardDetailsActionsPopup") ul.pop-over-list li: a.js-toggle-watch-card {{#if isWatching}}{{_ 'unwatch'}}{{else}}{{_ 'watch'}}{{/if}} @@ -150,8 +195,8 @@ template(name="cardDetailsActionsPopup") li: a.js-members {{_ 'card-edit-members'}} li: a.js-labels {{_ 'card-edit-labels'}} li: a.js-attachments {{_ 'card-edit-attachments'}} - li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}} li: a.js-custom-fields {{_ 'card-edit-custom-fields'}} + li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}} li: a.js-start-date {{_ 'editCardStartDatePopup-title'}} li: a.js-due-date {{_ 'editCardDueDatePopup-title'}} li: a.js-end-date {{_ 'editCardEndDatePopup-title'}} @@ -178,7 +223,6 @@ template(name="copyCardPopup") = title +boardsAndLists - template(name="copyChecklistToManyCardsPopup") label(for='copy-checklist-cards-title') {{_ 'copyChecklistToManyCardsPopup-instructions'}}: textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus) diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 26549fda..6cbc4572 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -146,6 +146,20 @@ BlazeComponent.extendComponent({ this.data().setTitle(title); } }, + 'submit .js-card-details-assigner'(evt) { + evt.preventDefault(); + const assigner = this.currentComponent().getValue().trim(); + if (assigner) { + this.data().setAssignedBy(assigner); + } + }, + 'submit .js-card-details-requester'(evt) { + evt.preventDefault(); + const requester = this.currentComponent().getValue().trim(); + if (requester) { + this.data().setRequestedBy(requester); + } + }, 'click .js-member': Popup.open('cardMember'), 'click .js-add-members': Popup.open('cardMembers'), 'click .js-add-labels': Popup.open('cardLabels'), @@ -215,8 +229,8 @@ Template.cardDetailsActionsPopup.events({ 'click .js-members': Popup.open('cardMembers'), 'click .js-labels': Popup.open('cardLabels'), 'click .js-attachments': Popup.open('cardAttachments'), - 'click .js-received-date': Popup.open('editCardReceivedDate'), 'click .js-custom-fields': Popup.open('cardCustomFields'), + 'click .js-received-date': Popup.open('editCardReceivedDate'), 'click .js-start-date': Popup.open('editCardStartDate'), 'click .js-due-date': Popup.open('editCardDueDate'), 'click .js-end-date': Popup.open('editCardEndDate'), @@ -263,6 +277,32 @@ Template.editCardTitleForm.events({ }, }); +Template.editCardRequesterForm.onRendered(function() { + autosize(this.$('.js-edit-card-requester')); +}); + +Template.editCardRequesterForm.events({ + 'keydown .js-edit-card-requester'(evt) { + // If enter key was pressed, submit the data + if (evt.keyCode === 13) { + $('.js-submit-edit-card-requester-form').click(); + } + }, +}); + +Template.editCardAssignerForm.onRendered(function() { + autosize(this.$('.js-edit-card-assigner')); +}); + +Template.editCardAssignerForm.events({ + 'keydown .js-edit-card-assigner'(evt) { + // If enter key was pressed, submit the data + if (evt.keyCode === 13) { + $('.js-submit-edit-card-assigner-form').click(); + } + }, +}); + Template.moveCardPopup.events({ 'click .js-done' () { // XXX We should *not* get the currentCard from the global state, but diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl index 7dbe8732..11660593 100644 --- a/client/components/cards/cardDetails.styl +++ b/client/components/cards/cardDetails.styl @@ -82,7 +82,8 @@ &.card-details-item-start, &.card-details-item-due, &.card-details-item-end, - &.card-details-item-customfield + &.card-details-item-customfield, + &.card-details-item-name max-width: 50% flex-grow: 1 diff --git a/client/components/cards/labels.styl b/client/components/cards/labels.styl index 361a17ae..084af64c 100644 --- a/client/components/cards/labels.styl +++ b/client/components/cards/labels.styl @@ -73,6 +73,48 @@ .card-label-lime background-color: #51e898 +.card-label-silver + background-color: #c0c0c0 + +.card-label-peachpuff + background-color: #ffdab9 + +.card-label-crimson + background-color: #dc143c + +.card-label-plum + background-color: #dda0dd + +.card-label-darkgreen + background-color: #006400 + +.card-label-slateblue + background-color: #6a5acd + +.card-label-magenta + background-color: #ff00ff + +.card-label-gold + background-color: #ffd700 + +.card-label-navy + background-color: #000080 + +.card-label-gray + background-color: #808080 + +.card-label-saddlebrown + background-color: #8b4513 + +.card-label-paleturquoise + background-color: #afeeee + +.card-label-mistyrose + background-color: #ffe4e1 + +.card-label-indigo + background-color: #4b0082 + .edit-label, .create-label .card-label |