minicard.jade 8.3 KB

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