cardDetails.jade 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. template(name="cardDetails")
  2. section.card-details.js-card-details.js-perfect-scrollbar: .card-details-canvas
  3. .card-details-header
  4. +inlinedForm(classNames="js-card-details-title")
  5. +editCardTitleForm
  6. else
  7. a.fa.fa-times-thin.close-card-details.js-close-card-details
  8. if currentUser.isBoardMember
  9. a.fa.fa-navicon.card-details-menu.js-open-card-details-menu
  10. h2.card-details-title.js-card-title(
  11. class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
  12. +viewer
  13. = title
  14. if isWatching
  15. i.fa.fa-eye.card-details-watch
  16. if archived
  17. p.warning {{_ 'card-archived'}}
  18. .card-details-items
  19. .card-details-item.card-details-item-members
  20. h3.card-details-item-title {{_ 'members'}}
  21. each members
  22. +userAvatar(userId=this cardId=../_id)
  23. | {{! XXX Hack to hide syntaxic coloration /// }}
  24. if canModifyCard
  25. a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
  26. i.fa.fa-plus
  27. .card-details-item.card-details-item-labels
  28. h3.card-details-item-title {{_ 'labels'}}
  29. a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
  30. each labels
  31. span.card-label(class="card-label-{{color}}" title=name)= name
  32. if canModifyCard
  33. a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
  34. i.fa.fa-plus
  35. if startAt
  36. .card-details-item.card-details-item-start
  37. h3.card-details-item-title {{_ 'card-start'}}
  38. +cardStartDate
  39. if dueAt
  40. .card-details-item.card-details-item-due
  41. h3.card-details-item-title {{_ 'card-due'}}
  42. +cardDueDate
  43. //- XXX We should use "editable" to avoid repetiting ourselves
  44. if canModifyCard
  45. h3.card-details-item-title {{_ 'description'}}
  46. +inlinedCardDescription(classNames="card-description js-card-description")
  47. +editor(autofocus=true)
  48. | {{getUnsavedValue 'cardDescription' _id description}}
  49. .edit-controls.clearfix
  50. button.primary(type="submit") {{_ 'save'}}
  51. a.fa.fa-times-thin.js-close-inlined-form
  52. else
  53. a.js-open-inlined-form
  54. if description
  55. +viewer
  56. = description
  57. else
  58. | {{_ 'edit'}}
  59. if (hasUnsavedValue 'cardDescription' _id)
  60. p.quiet
  61. | {{_ 'unsaved-description'}}
  62. a.js-open-inlined-form {{_ 'view-it'}}
  63. = ' - '
  64. a.js-close-inlined-form {{_ 'discard'}}
  65. else if description
  66. h3.card-details-item-title {{_ 'description'}}
  67. +viewer
  68. = description
  69. hr
  70. +checklists(cardId = _id)
  71. if attachments.count
  72. hr
  73. h2
  74. i.fa.fa-paperclip
  75. | {{_ 'attachments'}}
  76. +attachmentsGalery
  77. hr
  78. .activity-title
  79. h2 {{ _ 'activity'}}
  80. if currentUser.isBoardMember
  81. .material-toggle-switch
  82. span.toggle-switch-title {{_ 'hide-system-messages'}}
  83. if hiddenSystemMessages
  84. input.toggle-switch(type="checkbox" id="toggleButton" checked="checked")
  85. else
  86. input.toggle-switch(type="checkbox" id="toggleButton")
  87. label.toggle-label(for="toggleButton")
  88. if currentUser.isBoardMember
  89. +commentForm
  90. if isLoaded.get
  91. +activities(card=this mode="card")
  92. template(name="editCardTitleForm")
  93. textarea.js-edit-card-title(rows='1' autofocus)
  94. = title
  95. .edit-controls.clearfix
  96. button.primary.confirm.js-submit-edit-card-title-form(type="submit") {{_ 'save'}}
  97. a.fa.fa-times-thin.js-close-inlined-form
  98. template(name="cardDetailsActionsPopup")
  99. ul.pop-over-list
  100. li: a.js-toggle-watch-card {{#if isWatching}}{{_ 'unwatch'}}{{else}}{{_ 'watch'}}{{/if}}
  101. if canModifyCard
  102. hr
  103. ul.pop-over-list
  104. li: a.js-members {{_ 'card-edit-members'}}
  105. li: a.js-labels {{_ 'card-edit-labels'}}
  106. li: a.js-attachments {{_ 'card-edit-attachments'}}
  107. li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
  108. li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
  109. hr
  110. ul.pop-over-list
  111. li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
  112. li: a.js-move-card-to-bottom {{_ 'moveCardToBottom-title'}}
  113. hr
  114. ul.pop-over-list
  115. li: a.js-move-card {{_ 'moveCardPopup-title'}}
  116. li: a.js-copy-card {{_ 'copyCardPopup-title'}}
  117. unless archived
  118. li: a.js-archive {{_ 'archive-card'}}
  119. li: a.js-more {{_ 'cardMorePopup-title'}}
  120. template(name="moveCardPopup")
  121. if isSandstorm
  122. +boardLists
  123. else
  124. +boardsAndLists
  125. template(name="copyCardPopup")
  126. label(for='copy-card-title') {{_ 'title'}}:
  127. textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
  128. = title
  129. if isSandstorm
  130. +boardLists
  131. else
  132. +boardsAndLists
  133. template(name="boardsAndLists")
  134. select.js-select-boards
  135. each boards
  136. if $eq _id currentBoard._id
  137. option(value="{{_id}}" selected) {{_ 'current'}}
  138. else
  139. option(value="{{_id}}") {{title}}
  140. label {{_ 'lists'}}:
  141. ul.pop-over-list
  142. each aBoardLists
  143. li
  144. if $eq ../_id _id
  145. a.disabled {{title}} ({{_ 'current'}})
  146. else
  147. a.js-select-list= title
  148. template(name="cardMembersPopup")
  149. ul.pop-over-list.js-card-member-list
  150. each board.activeMembers
  151. li.item(class="{{#if isCardMember}}active{{/if}}")
  152. a.name.js-select-member(href="#")
  153. +userAvatar(userId=user._id)
  154. span.full-name
  155. = user.profile.fullname
  156. | (<span class="username">{{ user.username }}</span>)
  157. if isCardMember
  158. i.fa.fa-check
  159. template(name="cardMorePopup")
  160. p.quiet
  161. span.clearfix
  162. span {{_ 'link-card'}}
  163. = ' '
  164. i.fa.colorful(class="{{#if board.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
  165. input.inline-input(type="text" id="cardURL" readonly value="{{ absoluteUrl }}")
  166. button.js-copy-card-link-to-clipboard(class="btn") {{_ 'copy-card-link-to-clipboard'}}
  167. span.clearfix
  168. br
  169. | {{_ 'added'}}
  170. span.date(title=card.createdAt) {{ moment createdAt 'LLL' }}
  171. a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
  172. template(name="cardDeletePopup")
  173. p {{_ "card-delete-pop"}}
  174. unless archived
  175. p {{_ "card-delete-suggest-archive"}}
  176. button.js-confirm.negate.full(type="submit") {{_ 'delete'}}