cardDetails.jade 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. = title
  13. if isWatching
  14. i.fa.fa-eye.card-details-watch
  15. if archived
  16. p.warning {{_ 'card-archived'}}
  17. .card-details-items
  18. .card-details-item.card-details-item-members
  19. h3.card-details-item-title {{_ 'members'}}
  20. each members
  21. +userAvatar(userId=this cardId=../_id)
  22. | {{! XXX Hack to hide syntaxic coloration /// }}
  23. if canModifyCard
  24. a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
  25. i.fa.fa-plus
  26. .card-details-item.card-details-item-labels
  27. h3.card-details-item-title {{_ 'labels'}}
  28. a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
  29. each labels
  30. span.card-label(class="card-label-{{color}}" title=name)= name
  31. if canModifyCard
  32. a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
  33. i.fa.fa-plus
  34. if startAt
  35. .card-details-item.card-details-item-start
  36. h3.card-details-item-title {{_ 'card-start'}}
  37. +cardStartDate
  38. if dueAt
  39. .card-details-item.card-details-item-due
  40. h3.card-details-item-title {{_ 'card-due'}}
  41. +cardDueDate
  42. //- XXX We should use "editable" to avoid repetiting ourselves
  43. if canModifyCard
  44. h3.card-details-item-title {{_ 'description'}}
  45. +inlinedCardDescription(classNames="card-description js-card-description")
  46. +editor(autofocus=true)
  47. | {{getUnsavedValue 'cardDescription' _id description}}
  48. .edit-controls.clearfix
  49. button.primary(type="submit") {{_ 'save'}}
  50. a.fa.fa-times-thin.js-close-inlined-form
  51. else
  52. a.js-open-inlined-form
  53. if description
  54. +viewer
  55. = description
  56. else
  57. | {{_ 'edit'}}
  58. if (hasUnsavedValue 'cardDescription' _id)
  59. p.quiet
  60. | {{_ 'unsaved-description'}}
  61. a.js-open-inlined-form {{_ 'view-it'}}
  62. = ' - '
  63. a.js-close-inlined-form {{_ 'discard'}}
  64. else if description
  65. h3.card-details-item-title {{_ 'description'}}
  66. +viewer
  67. = description
  68. hr
  69. +checklists(cardId = _id)
  70. if attachments.count
  71. hr
  72. h2
  73. i.fa.fa-paperclip
  74. | {{_ 'attachments'}}
  75. +attachmentsGalery
  76. hr
  77. h2 {{ _ 'activity'}}
  78. if currentUser.isBoardMember
  79. +commentForm
  80. if isLoaded.get
  81. +activities(card=this mode="card")
  82. template(name="editCardTitleForm")
  83. textarea.js-edit-card-title(rows='1' autofocus)
  84. = title
  85. .edit-controls.clearfix
  86. button.primary.confirm.js-submit-edit-card-title-form(type="submit") {{_ 'save'}}
  87. a.fa.fa-times-thin.js-close-inlined-form
  88. template(name="cardDetailsActionsPopup")
  89. ul.pop-over-list
  90. li: a.js-toggle-watch-card {{#if isWatching}}{{_ 'unwatch'}}{{else}}{{_ 'watch'}}{{/if}}
  91. if canModifyCard
  92. hr
  93. ul.pop-over-list
  94. li: a.js-members {{_ 'card-edit-members'}}
  95. li: a.js-labels {{_ 'card-edit-labels'}}
  96. li: a.js-attachments {{_ 'card-edit-attachments'}}
  97. li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
  98. li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
  99. hr
  100. ul.pop-over-list
  101. li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
  102. li: a.js-move-card-to-bottom {{_ 'moveCardToBottom-title'}}
  103. hr
  104. ul.pop-over-list
  105. li: a.js-move-card {{_ 'moveCardPopup-title'}}
  106. unless archived
  107. li: a.js-archive {{_ 'archive-card'}}
  108. li: a.js-more {{_ 'cardMorePopup-title'}}
  109. template(name="moveCardPopup")
  110. +boardLists
  111. template(name="cardMembersPopup")
  112. ul.pop-over-list.js-card-member-list
  113. each board.activeMembers
  114. li.item(class="{{#if isCardMember}}active{{/if}}")
  115. a.name.js-select-member(href="#")
  116. +userAvatar(userId=user._id)
  117. span.full-name
  118. = user.profile.fullname
  119. | (<span class="username">{{ user.username }}</span>)
  120. if isCardMember
  121. i.fa.fa-check
  122. template(name="cardMorePopup")
  123. p.quiet
  124. span.clearfix
  125. span {{_ 'link-card'}}
  126. = ' '
  127. i.fa.colorful(class="{{#if board.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
  128. input.inline-input(type="text" readonly value="{{ rootUrl }}")
  129. | {{_ 'added'}}
  130. span.date(title=card.createdAt) {{ moment createdAt 'LLL' }}
  131. a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
  132. template(name="cardDeletePopup")
  133. p {{_ "card-delete-pop"}}
  134. unless archived
  135. p {{_ "card-delete-suggest-archive"}}
  136. button.js-confirm.negate.full(type="submit") {{_ 'delete'}}