minicard.jade 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. template(name="minicard")
  2. .minicard(
  3. class="{{#if isLinkedCard}}linked-card{{/if}}"
  4. class="{{#if isLinkedBoard}}linked-board{{/if}}"
  5. class="{{#if colorClass}}minicard-{{colorClass}}{{/if}}")
  6. if isTouchScreenOrShowDesktopDragHandles
  7. a.fa.fa-navicon.minicard-details-menu-with-handle.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
  8. .handle
  9. .fa.fa-arrows
  10. else
  11. a.fa.fa-navicon.minicard-details-menu.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
  12. if cover
  13. .minicard-cover(style="background-image: url('{{cover.link 'original'}}?dummyReloadAfterSessionEstablished={{sess}}');")
  14. if labels
  15. .minicard-labels(class="{{#if hiddenMinicardLabelText}}minicard-labels-no-text{{/if}}")
  16. each labels
  17. unless hiddenMinicardLabelText
  18. span.js-card-label.card-label(class="card-label-{{color}}" title=name)
  19. +viewer
  20. = name
  21. if hiddenMinicardLabelText
  22. .minicard-label(class="card-label-{{color}}" title="{{name}}")
  23. .minicard-title
  24. if $eq 'prefix-with-full-path' currentBoard.presentParentTask
  25. .parent-prefix
  26. | {{ parentString ' > ' }}
  27. if $eq 'prefix-with-parent' currentBoard.presentParentTask
  28. .parent-prefix
  29. | {{ parentCardName }}
  30. if isLinkedBoard
  31. a.js-linked-link
  32. span.linked-icon.fa.fa-folder
  33. else if isLinkedCard
  34. a.js-linked-link
  35. span.linked-icon.fa.fa-id-card
  36. if getArchived
  37. span.linked-icon.linked-archived.fa.fa-archive
  38. +viewer
  39. if currentBoard.allowsCardNumber
  40. span.card-number
  41. | ##{getCardNumber}
  42. = getTitle
  43. if $eq 'subtext-with-full-path' currentBoard.presentParentTask
  44. .parent-subtext
  45. | {{ parentString ' > ' }}
  46. if $eq 'subtext-with-parent' currentBoard.presentParentTask
  47. .parent-subtext
  48. | {{ parentCardName }}
  49. .dates
  50. if getReceived
  51. unless getStart
  52. unless getDue
  53. unless getEnd
  54. .date
  55. +minicardReceivedDate
  56. if getStart
  57. .date
  58. +minicardStartDate
  59. if getDue
  60. .date
  61. +minicardDueDate
  62. if getEnd
  63. +minicardEndDate
  64. if getSpentTime
  65. .date
  66. +cardSpentTime
  67. .minicard-custom-fields
  68. each customFieldsWD
  69. if definition.showOnCard
  70. if trueValue
  71. .minicard-custom-field
  72. if definition.showLabelOnMiniCard
  73. .minicard-custom-field-item
  74. +viewer
  75. = definition.name
  76. .minicard-custom-field-item
  77. if $eq definition.type "currency"
  78. +viewer
  79. = formattedCurrencyCustomFieldValue(definition)
  80. else if $eq definition.type "date"
  81. .date
  82. +minicardCustomFieldDate
  83. else if $eq definition.type "checkbox"
  84. .materialCheckBox(class="{{#if value }}is-checked{{/if}}")
  85. else if $eq definition.type "stringtemplate"
  86. +viewer
  87. = formattedStringtemplateCustomFieldValue(definition)
  88. else
  89. +viewer
  90. = trueValue
  91. if showAssignee
  92. if getAssignees
  93. .minicard-assignees.js-minicard-assignees
  94. each getAssignees
  95. +userAvatar(userId=this)
  96. if showMembers
  97. if getMembers
  98. .minicard-members.js-minicard-members
  99. each getMembers
  100. +userAvatar(userId=this)
  101. if showCreator
  102. .minicard-creator
  103. +userAvatar(userId=this.userId noRemove=true)
  104. .badges
  105. unless currentUser.isNoComments
  106. if comments.count
  107. .badge(title="{{_ 'card-comments-title' comments.count }}")
  108. span.badge-icon.fa.fa-comment-o.badge-comment
  109. = ' '
  110. = comments.count
  111. //span.badge-comment.badge-text
  112. //| {{_ 'comment'}}
  113. if getDescription
  114. unless currentBoard.allowsDescriptionTextOnMinicard
  115. .badge.badge-state-image-only(title=getDescription)
  116. span.badge-icon.fa.fa-align-left
  117. if getVoteQuestion
  118. .badge.badge-state-image-only(title=getVoteQuestion)
  119. span.badge-icon.fa.fa-thumbs-up(class="{{#if voteState}}text-green{{/if}}")
  120. span.badge-text {{ voteCountPositive }}
  121. span.badge-icon.fa.fa-thumbs-down(class="{{#if $eq voteState false}}text-red{{/if}}")
  122. span.badge-text {{ voteCountNegative }}
  123. if getPokerQuestion
  124. .badge.badge-state-image-only(title=getPokerQuestion)
  125. span.badge-icon.fa.fa-check(class="{{#if pokerState}}text-green{{/if}}")
  126. if expiredPoker
  127. span.badge-text {{ getPokerEstimation }}
  128. if attachments.length
  129. .badge
  130. span.badge-icon.fa.fa-paperclip
  131. span.badge-text= attachments.length
  132. if checklists.count
  133. .badge(class="{{#if checklistFinished}}is-finished{{/if}}")
  134. span.badge-icon.fa.fa-check-square-o
  135. span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}}
  136. if allSubtasks.count
  137. .badge
  138. span.badge-icon.fa.fa-sitemap
  139. span.badge-text.check-list-text {{subtasksFinishedCount}}/{{allSubtasksCount}}
  140. //{{subtasksFinishedCount}}/{{subtasksCount}} does not work because when a subtaks is archived, the count goes down
  141. if currentBoard.allowsCardSortingByNumber
  142. .badge
  143. span.badge-icon.fa.fa-sort
  144. span.badge-text.check-list-sort {{ sort }}
  145. if currentBoard.allowsDescriptionTextOnMinicard
  146. if getDescription
  147. .minicard-description
  148. +viewer
  149. | {{ getDescription }}
  150. template(name="editCardSortOrderPopup")
  151. input.js-edit-card-sort-popup(type='text' autofocus value=sort dir="auto")
  152. .edit-controls.clearfix
  153. button.primary.confirm.js-submit-edit-card-sort-popup(type="submit") {{_ 'save'}}
  154. template(name="minicardDetailsActionsPopup")
  155. ul.pop-over-list
  156. if currentUser.isBoardAdmin
  157. li
  158. a.js-move-card
  159. i.fa.fa-arrow-right
  160. | {{_ 'moveCardPopup-title'}}
  161. unless currentUser.isWorker
  162. li
  163. a.js-copy-card
  164. i.fa.fa-copy
  165. | {{_ 'copyCardPopup-title'}}
  166. hr
  167. li
  168. a.js-archive
  169. i.fa.fa-arrow-right
  170. i.fa.fa-archive
  171. | {{_ 'archive-card'}}
  172. hr
  173. li
  174. a.js-move-card-to-top
  175. i.fa.fa-arrow-up
  176. | {{_ 'moveCardToTop-title'}}
  177. li
  178. a.js-move-card-to-bottom
  179. i.fa.fa-arrow-down
  180. | {{_ 'moveCardToBottom-title'}}
  181. hr
  182. li
  183. a.js-add-labels
  184. i.fa.fa-tags
  185. | {{_ 'card-edit-labels'}}
  186. li
  187. a.js-due-date
  188. i.fa.fa-sign-in
  189. | {{_ 'editCardDueDatePopup-title'}}
  190. li
  191. a.js-set-card-color
  192. i.fa.fa-paint-brush
  193. | {{_ 'setCardColorPopup-title'}}
  194. li
  195. a.js-link
  196. i.fa.fa-link
  197. | {{_ 'link-card'}}