diff options
Diffstat (limited to 'client/components/cards')
-rw-r--r-- | client/components/cards/cardDate.jade | 12 | ||||
-rw-r--r-- | client/components/cards/cardDate.js | 6 | ||||
-rw-r--r-- | client/components/cards/cardDetails.jade | 45 | ||||
-rw-r--r-- | client/components/cards/cardDetails.js | 8 | ||||
-rw-r--r-- | client/components/cards/checklists.jade | 34 | ||||
-rw-r--r-- | client/components/cards/checklists.js | 10 | ||||
-rw-r--r-- | client/components/cards/minicard.jade | 14 | ||||
-rw-r--r-- | client/components/cards/minicard.styl | 27 |
8 files changed, 98 insertions, 58 deletions
diff --git a/client/components/cards/cardDate.jade b/client/components/cards/cardDate.jade index a2a28bbd..525f27ed 100644 --- a/client/components/cards/cardDate.jade +++ b/client/components/cards/cardDate.jade @@ -15,6 +15,12 @@ template(name="editCardDate") button.js-delete-date.negate.wide.right.js-delete-date {{_ 'delete'}} template(name="dateBadge") - a.js-edit-date.card-date(title="{{showTitle}}" class="{{classes}}") - time(datetime="{{showISODate}}") - | {{showDate}} + if canModifyCard + a.js-edit-date.card-date(title="{{showTitle}}" class="{{classes}}") + time(datetime="{{showISODate}}") + | {{showDate}} + else + a.card-date(title="{{showTitle}}" class="{{classes}}") + time(datetime="{{showISODate}}") + | {{showDate}} + diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index 4d129e8e..3f69f384 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -86,6 +86,12 @@ const EditCardDate = BlazeComponent.extendComponent({ }, }); +Template.dateBadge.helpers({ + canModifyCard() { + return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, +}); + // editCardStartDatePopup (class extends EditCardDate { onCreated() { diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index cf113951..9c95e92f 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -8,7 +8,7 @@ template(name="cardDetails") if currentUser.isBoardMember a.fa.fa-navicon.card-details-menu.js-open-card-details-menu h2.card-details-title.js-card-title( - class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}") + class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}") = title if isWatching i.fa.fa-eye.card-details-watch @@ -22,16 +22,16 @@ template(name="cardDetails") each members +userAvatar(userId=this cardId=../_id) | {{! XXX Hack to hide syntaxic coloration /// }} - if currentUser.isBoardMember + if canModifyCard a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}") i.fa.fa-plus .card-details-item.card-details-item-labels h3.card-details-item-title {{_ 'labels'}} - a(class="{{#if currentUser.isBoardMember}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}") + a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}") each labels span.card-label(class="card-label-{{color}}" title=name)= name - if currentUser.isBoardMember + if canModifyCard a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}") i.fa.fa-plus @@ -47,7 +47,7 @@ template(name="cardDetails") //- XXX We should use "editable" to avoid repetiting ourselves - if currentUser.isBoardMember + if canModifyCard h3.card-details-item-title {{_ 'description'}} +inlinedCardDescription(classNames="card-description js-card-description") +editor(autofocus=true) @@ -101,23 +101,24 @@ template(name="editCardTitleForm") template(name="cardDetailsActionsPopup") ul.pop-over-list li: a.js-toggle-watch-card {{#if isWatching}}{{_ 'unwatch'}}{{else}}{{_ 'watch'}}{{/if}} - hr - ul.pop-over-list - li: a.js-members {{_ 'card-edit-members'}} - li: a.js-labels {{_ 'card-edit-labels'}} - li: a.js-attachments {{_ 'card-edit-attachments'}} - li: a.js-start-date {{_ 'editCardStartDatePopup-title'}} - li: a.js-due-date {{_ 'editCardDueDatePopup-title'}} - hr - ul.pop-over-list - li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}} - li: a.js-move-card-to-bottom {{_ 'moveCardToBottom-title'}} - hr - ul.pop-over-list - li: a.js-move-card {{_ 'moveCardPopup-title'}} - unless archived - li: a.js-archive {{_ 'archive-card'}} - li: a.js-more {{_ 'cardMorePopup-title'}} + if canModifyCard + hr + ul.pop-over-list + li: a.js-members {{_ 'card-edit-members'}} + li: a.js-labels {{_ 'card-edit-labels'}} + li: a.js-attachments {{_ 'card-edit-attachments'}} + li: a.js-start-date {{_ 'editCardStartDatePopup-title'}} + li: a.js-due-date {{_ 'editCardDueDatePopup-title'}} + hr + ul.pop-over-list + li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}} + li: a.js-move-card-to-bottom {{_ 'moveCardToBottom-title'}} + hr + ul.pop-over-list + li: a.js-move-card {{_ 'moveCardPopup-title'}} + unless archived + li: a.js-archive {{_ 'archive-card'}} + li: a.js-more {{_ 'cardMorePopup-title'}} template(name="moveCardPopup") +boardLists diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index b7e0ef76..b39f8e59 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -28,6 +28,10 @@ BlazeComponent.extendComponent({ return card.findWatcher(Meteor.userId()); }, + canModifyCard() { + return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, + scrollParentContainer() { const cardPanelWidth = 510; const bodyBoardComponent = this.parentComponent(); @@ -140,6 +144,10 @@ Template.cardDetailsActionsPopup.helpers({ isWatching() { return this.findWatcher(Meteor.userId()); }, + + canModifyCard() { + return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, }); Template.cardDetailsActionsPopup.events({ diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 987e6cd9..a0d89351 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -3,12 +3,13 @@ template(name="checklists") .card-checklist-items each checklist in currentCard.checklists +checklistDetail(checklist = checklist) - +inlinedForm(classNames="js-add-checklist" cardId = cardId) - +addChecklistItemForm - else - a.js-open-inlined-form - i.fa.fa-plus - | {{_ 'add-checklist'}}... + if canModifyCard + +inlinedForm(classNames="js-add-checklist" cardId = cardId) + +addChecklistItemForm + else + a.js-open-inlined-form + i.fa.fa-plus + | {{_ 'add-checklist'}}... template(name="checklistDetail") +inlinedForm(classNames="js-edit-checklist-title" checklist = checklist) @@ -16,9 +17,13 @@ template(name="checklistDetail") else .checklist-title .checkbox.fa.fa-check-square-o - a.js-delete-checklist {{_ "delete"}}... + if canModifyCard + a.js-delete-checklist {{_ "delete"}}... span.checklist-stat(class="{{#if checklist.isFinished}}is-finished{{/if}}") {{checklist.finishedCount}}/{{checklist.itemCount}} - h2.title.js-open-inlined-form.is-editable {{checklist.title}} + if canModifyCard + h2.title.js-open-inlined-form.is-editable {{checklist.title}} + else + h2.title {{checklist.title}} +checklistItems(checklist = checklist) template(name="addChecklistItemForm") @@ -37,7 +42,7 @@ template(name="editChecklistItemForm") button.primary.confirm.js-submit-edit-checklist-item-form(type="submit") {{_ 'save'}} a.fa.fa-times-thin.js-close-inlined-form span(title=createdAt) {{ moment createdAt }} - if currentUser.isBoardMember + if canModifyCard a.js-delete-checklist-item {{_ "delete"}}... template(name="checklistItems") @@ -47,7 +52,7 @@ template(name="checklistItems") +editChecklistItemForm(type = 'item' item = item checklist = checklist) else +itemDetail(item = item checklist = checklist) - if currentUser.isBoardMember + if canModifyCard +inlinedForm(classNames="js-add-checklist-item" checklist = checklist) +addChecklistItemForm else @@ -57,5 +62,10 @@ template(name="checklistItems") template(name='itemDetail') .item - .check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}") - .item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}} + if canModifyCard + .check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}") + .item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}} + else + .materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}") + .item-title(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}} + diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 5dac7bd3..b8f5e443 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -26,6 +26,10 @@ BlazeComponent.extendComponent({ checklist.setTitle(title); }, + canModifyCard() { + return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, + editChecklistItem(event) { event.preventDefault(); @@ -73,6 +77,12 @@ BlazeComponent.extendComponent({ }, }).register('checklists'); +Template.itemDetail.helpers({ + canModifyCard() { + return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, +}); + BlazeComponent.extendComponent({ toggleItem() { const checklist = this.currentData().checklist; diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade index 8b46ee74..5409ec62 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -7,6 +7,13 @@ template(name="minicard") each labels .minicard-label(class="card-label-{{color}}" title="{{name}}") .minicard-title= title + .dates + if startAt + .date + +minicardStartDate + if dueAt + .date + +minicardDueDate if members .minicard-members.js-minicard-members each members @@ -23,14 +30,7 @@ template(name="minicard") .badge span.badge-icon.fa.fa-paperclip span.badge-text= attachments.count - if startAt - .badge - +minicardStartDate - if dueAt - .badge - +minicardDueDate if checklists.count .badge(class="{{#if checklistFinished}}is-finished{{/if}}") span.badge-icon.fa.fa-check-square-o span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}} - diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl index 12a89785..a6aad896 100644 --- a/client/components/cards/minicard.styl +++ b/client/components/cards/minicard.styl @@ -77,7 +77,12 @@ height: @width border-radius: 2px margin-left: 3px - + .dates + display: flex; + flex-direction: row; + flex-wrap: wrap; + .date + margin-right: 3px .badges float: left margin-top: 7px @@ -91,25 +96,20 @@ margin-right: 11px margin-bottom: 3px font-size: 0.9em - + &.is-finished + background: #3cb500 + padding: 0px 3px + border-radius: 3px + color: white + &:last-of-type margin-right: 0 .badge-icon, .badge-text vertical-align: middle - - &.is-finished - background: #3cb500 - padding: 0px 3px - border-radius: 3px - color: white - - .badge-icon, - .badge-text - vertical-align: middle//didn't figure why use top, it'd be easier to fill bg if it's middle. This was introduced in commit "91cfcf7b12b5e7c137c2e765b2c378dde6b82966" & "* Improve the design of the minicards badges" was mentioned. &.badge-comment - margin-bottom: 0.1rem + margin-bottom: 0.1rem .badge-text font-size: 0.9em @@ -119,7 +119,6 @@ padding-left: 0px line-height: 12px - .minicard-members float: right margin: 2px -8px -2px 0 |