123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969 |
- template(name="cardDetailsPopup")
- +cardDetails(popupCard)
- template(name="cardDetails")
- +attachmentViewer
- section.card-details.js-card-details.nodragscroll(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}'): .card-details-canvas
- .card-details-header(class='{{#if colorClass}}card-details-{{colorClass}}{{/if}}')
- +inlinedForm(classNames="js-card-details-title")
- +editCardTitleForm
- else
- unless isMiniScreen
- unless isPopup
- a.fa.fa-times-thin.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
- if canModifyCard
- if cardMaximized
- a.fa.fa-window-minimize.minimize-card-details.js-minimize-card-details(title="{{_ 'minimize-card'}}")
- else
- a.fa.fa-window-maximize.maximize-card-details.js-maximize-card-details(title="{{_ 'maximize-card'}}")
- if canModifyCard
- a.fa.fa-navicon.card-details-menu.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
- a.fa.fa-link.card-copy-button.js-copy-link(
- id="cardURL_copy"
- class="fa-link"
- title="{{_ 'copy-card-link-to-clipboard'}}"
- href="{{ originRelativeUrl }}"
- )
- span.copied-tooltip {{_ 'copied'}}
- else
- unless isPopup
- a.fa.fa-times-thin.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
- if canModifyCard
- a.fa.fa-navicon.card-details-menu-mobile-web.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
- a.fa.fa-link.card-copy-mobile-button.js-copy-link(
- id="cardURL_copy"
- class="fa-link"
- title="{{_ 'copy-card-link-to-clipboard'}}"
- href="{{ originRelativeUrl }}"
- )
- span.copied-tooltip {{_ 'copied'}}
- h2.card-details-title.js-card-title(
- class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
- +viewer
- if currentBoard.allowsCardNumber
- span.card-number
- | ##{getCardNumber}
- = getTitle
- if isWatching
- i.card-details-watch.fa.fa-eye
- .card-details-path
- each parentList
- | >
- a.js-parent-card(href=linkForCard) {{title}}
- // else
- {{_ 'top-level-card'}}
- if isLinkedCard
- a.linked-card-location.js-go-to-linked-card
- +viewer
- | {{getBoardTitle}} > {{getTitle}}
- if getArchived
- if isLinkedBoard
- p.warning {{_ 'board-archived'}}
- else
- p.warning {{_ 'card-archived'}}
- .card-details-left
- .card-details-items
- if currentBoard.allowsLabels
- .card-details-item.card-details-item-labels
- h3.card-details-item-title
- i.fa.fa-tags
- | {{_ 'labels'}}
- 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)
- +viewer
- = name
- if canModifyCard
- unless currentUser.isWorker
- a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
- i.fa.fa-plus
- if currentBoard.hasAnyAllowsDate
- hr
- if currentBoard.allowsReceivedDate
- .card-details-item.card-details-item-received
- h3.card-details-item-title
- i.fa.fa-sign-out
- | {{_ 'card-received'}}
- if getReceived
- +cardReceivedDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.card-label.add-label.js-received-date
- i.fa.fa-plus
- if currentBoard.allowsStartDate
- .card-details-item.card-details-item-start
- h3.card-details-item-title
- i.fa.fa-hourglass-start
- | {{_ 'card-start'}}
- if getStart
- +cardStartDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.card-label.add-label.js-start-date
- i.fa.fa-plus
- if currentBoard.allowsDueDate
- .card-details-item.card-details-item-due
- h3.card-details-item-title
- i.fa.fa-sign-in
- | {{_ 'card-due'}}
- if getDue
- +cardDueDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.card-label.add-label.js-due-date
- i.fa.fa-plus
- if currentBoard.allowsEndDate
- .card-details-item.card-details-item-end
- h3.card-details-item-title
- i.fa.fa-hourglass-end
- | {{_ 'card-end'}}
- if getEnd
- +cardEndDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.card-label.add-label.js-end-date
- i.fa.fa-plus
- if currentBoard.hasAnyAllowsUser
- hr
- if currentBoard.allowsCreator
- .card-details-item.card-details-item-creator
- h3.card-details-item-title
- i.fa.fa-user
- | {{_ 'creator'}}
- +userAvatar(userId=userId noRemove=true)
- | {{! XXX Hack to hide syntaxic coloration /// }}
- //.card-details-items
- if currentBoard.allowsMembers
- .card-details-item.card-details-item-members
- h3.card-details-item-title
- i.fa.fa-users
- | {{_ 'members'}}
- each userId in getMembers
- +userAvatar(userId=userId cardId=_id)
- | {{! XXX Hack to hide syntaxic coloration /// }}
- if canModifyCard
- unless currentUser.isWorker
- a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
- i.fa.fa-plus
- //if assigneeSelected
- if currentBoard.allowsAssignee
- .card-details-item.card-details-item-assignees
- h3.card-details-item-title
- i.fa.fa-user
- | {{_ 'assignee'}}
- each userId in getAssignees
- +userAvatar(userId=userId cardId=_id assignee=true)
- | {{! XXX Hack to hide syntaxic coloration /// }}
- if canModifyCard
- a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
- i.fa.fa-plus
- if currentUser.isWorker
- unless assigneeSelected
- a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
- i.fa.fa-plus
- //.card-details-items
- if currentBoard.allowsRequestedBy
- .card-details-item.card-details-item-name
- h3.card-details-item-title
- i.fa.fa-shopping-cart
- | {{_ 'requested-by'}}
- if canModifyCard
- unless currentUser.isWorker
- +inlinedForm(classNames="js-card-details-requester")
- +editCardRequesterForm
- else
- a.js-open-inlined-form
- if getRequestedBy
- +viewer
- = getRequestedBy
- else
- | {{_ 'add'}}
- else if getRequestedBy
- +viewer
- = getRequestedBy
- if currentBoard.allowsAssignedBy
- .card-details-item.card-details-item-name
- h3.card-details-item-title
- i.fa.fa-user-plus
- | {{_ 'assigned-by'}}
- if canModifyCard
- unless currentUser.isWorker
- +inlinedForm(classNames="js-card-details-assigner")
- +editCardAssignerForm
- else
- a.js-open-inlined-form
- if getAssignedBy
- +viewer
- = getAssignedBy
- else
- | {{_ 'add'}}
- else if getRequestedBy
- +viewer
- = getAssignedBy
- if $or currentBoard.allowsCardSortingByNumber getSpentTime
- hr
- if currentBoard.allowsCardSortingByNumber
- .card-details-item.card-details-sort-order
- h3.card-details-item-title
- i.fa.fa-sort
- | {{_ 'sort'}}
- if canModifyCard
- +inlinedForm(classNames="js-card-details-sort")
- +editCardSortOrderForm
- else
- a.js-open-inlined-form
- +viewer
- = sort
- if currentBoard.allowsShowLists
- .card-details-item.card-details-show-lists
- h3.card-details-item-title
- i.fa.fa-list
- | {{_ 'list'}}
- select.js-select-card-details-lists(disabled="{{#unless canModifyCard}}disabled{{/unless}}")
- each currentBoard.lists
- option(value="{{_id}}" selected="{{#if isCurrentListId _id}}selected{{/if}}") {{title}}
- //.card-details-items
- if getSpentTime
- .card-details-item.card-details-item-spent
- if getIsOvertime
- h3.card-details-item-title
- | {{_ 'overtime-hours'}}
- else
- h3.card-details-item-title
- | {{_ 'spent-time-hours'}}
- +cardSpentTime
- //.card-details-items
- if customFieldsWD
- unless customFieldsGrid
- hr
- each customFieldsWD
- if customFieldsGrid
- hr
- .card-details-item.card-details-item-customfield
- h3.card-details-item-title
- i.fa.fa-list-alt
- = definition.name
- +cardCustomField
- if $gt customFieldsWD.length 1
- .material-toggle-switch(title="{{_ 'change'}} {{_ 'custom-fields'}} {{_ 'layout'}}")
- if customFieldsGrid
- input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton" checked="checked")
- else
- input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton")
- label.toggle-label(for="toggleCustomFieldsGridButton")
- a.fa.fa-plus.js-custom-fields.card-details-item.custom-fields(title="{{_ 'custom-fields'}}")
- if getVoteQuestion
- hr
- .vote-title
- div.flex
- h3
- i.fa.fa-thumbs-up
- | {{_ 'vote-question'}}
- if getVoteEnd
- +voteEndDate
- .vote-result
- if votePublic
- a.card-label.card-label-green.js-show-positive-votes {{ voteCountPositive }}
- a.card-label.card-label-red.js-show-negative-votes {{ voteCountNegative }}
- else
- .card-label.card-label-green {{ voteCountPositive }}
- .card-label.card-label-red {{ voteCountNegative }}
- unless ($and currentBoard.isPublic voteAllowNonBoardMembers )
- .card-label.card-label-gray {{ voteCount }} {{_ 'r-of' }} {{ currentBoard.activeMembers.length }}
- +viewer
- = getVoteQuestion
- if showVotingButtons
- button.card-details-green.js-vote.js-vote-positive(class="{{#if voteState}}voted{{/if}}")
- if voteState
- i.fa.fa-thumbs-up
- | {{_ 'vote-for-it'}}
- button.card-details-red.js-vote.js-vote-negative(class="{{#if $eq voteState false}}voted{{/if}}")
- if $eq voteState false
- i.fa.fa-thumbs-down
- | {{_ 'vote-against'}}
- if getPokerQuestion
- hr
- .poker-title
- div.flex
- h3
- i.fa.fa-thumbs-up
- | {{_ 'poker-question'}}
- if getPokerEnd
- +pokerEndDate
- div.flex
- .poker-result
- if expiredPoker
- unless ($and currentBoard.isPublic pokerAllowNonBoardMembers )
- .card-label.card-label-gray {{ pokerCount }} {{_ 'r-of' }} {{ currentBoard.activeMembers.length }}
- if showPlanningPokerButtons
- .poker-result
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-one(class="{{#if $eq pokerState 'one'}}poker-voted{{/if}}") {{_ 'poker-one'}}
- if $eq pokerState "one"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-two(class="{{#if $eq pokerState 'two'}}poker-voted{{/if}}") {{_ 'poker-two'}}
- if $eq pokerState "two"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-three(class="{{#if $eq pokerState 'three'}}poker-voted{{/if}}") {{_ 'poker-three'}}
- if $eq pokerState "three"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-five(class="{{#if $eq pokerState 'five'}}poker-voted{{/if}}") {{_ 'poker-five'}}
- if $eq pokerState "five"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-eight(class="{{#if $eq pokerState 'eight'}}poker-voted{{/if}}") {{_ 'poker-eight'}}
- if $eq pokerState "eight"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-thirteen(class="{{#if $eq pokerState 'thirteen'}}poker-voted{{/if}}") {{_ 'poker-thirteen'}}
- if $eq pokerState "thirteen"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-twenty(class="{{#if $eq pokerState 'twenty'}}poker-voted{{/if}}") {{_ 'poker-twenty'}}
- if $eq pokerState "twenty"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-forty(class="{{#if $eq pokerState 'forty'}}poker-voted{{/if}}") {{_ 'poker-forty'}}
- if $eq pokerState "forty"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-one-hundred(class="{{#if $eq pokerState 'oneHundred'}}poker-voted{{/if}}") {{_ 'poker-oneHundred'}}
- if $eq pokerState "oneHundred"
- i.fa.fa-check
- .poker-deck
- .poker-card
- span.inner.js-poker.js-poker-vote-unsure(class="{{#if $eq pokerState 'unsure'}}poker-voted{{/if}}") {{_ 'poker-unsure'}}
- if $eq pokerState "unsure"
- i.fa.fa-check
- if currentUser.isBoardAdmin
- button.card-details-blue.js-poker-finish(class="{{#if $eq voteState false}}poker-voted{{/if}}") {{_ 'poker-finish'}}
- if expiredPoker
- .poker-table
- .poker-table-side-left
- .poker-table-heading-left
- .poker-table-row
- .poker-table-cell
- .poker-table-cell
- | {{_ 'poker-result-votes' }}
- .poker-table-cell.poker-table-cell-who
- | {{_ 'poker-result-who' }}
- .poker-table-body
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 1}}winner{{else}}loser{{/if}}") {{_ 'poker-one'}}
- .poker-table-cell {{ pokerCountOne }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberOne
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 2}}winner{{else}}loser{{/if}}") {{_ 'poker-two'}}
- .poker-table-cell {{ pokerCountTwo }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberTwo
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 3}}winner{{else}}loser{{/if}}") {{_ 'poker-three'}}
- .poker-table-cell {{ pokerCountThree }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberThree
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 5}}winner{{else}}loser{{/if}}") {{_ 'poker-five'}}
- .poker-table-cell {{ pokerCountFive }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberFive
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 8}}winner{{else}}loser{{/if}}") {{_ 'poker-eight'}}
- .poker-table-cell {{ pokerCountEight }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberEight
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-side-right
- .poker-table-heading-right
- .poker-table-row
- .poker-table-cell
- .poker-table-cell
- | {{_ 'poker-result-votes' }}
- .poker-table-cell.poker-table-cell-who
- | {{_ 'poker-result-who' }}
- .poker-table-body
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 13}}winner{{else}}loser{{/if}}") {{_ 'poker-thirteen'}}
- .poker-table-cell {{ pokerCountThirteen }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberThirteen
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 20}}winner{{else}}loser{{/if}}") {{_ 'poker-twenty'}}
- .poker-table-cell {{ pokerCountTwenty }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberTwenty
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 40}}winner{{else}}loser{{/if}}") {{_ 'poker-forty'}}
- .poker-table-cell {{ pokerCountForty }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberForty
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 100}}winner{{else}}loser{{/if}}") {{_ 'poker-oneHundred'}}
- .poker-table-cell {{ pokerCountOneHundred }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberOneHundred
- a.name
- +userAvatar(userId=m._id noRemove=true)
- .poker-table-row
- .poker-table-cell
- button.card-details-gray.js-poker.poker-card-result(class="{{#if $eq pokerWinner 'unsure'}}winner{{else}}loser{{/if}}") {{_ 'poker-unsure'}}
- .poker-table-cell {{ pokerCountUnsure }}
- .poker-table-cell.poker-table-cell-who
- .poker-result
- each m in pokerMemberUnsure
- a.name
- +userAvatar(userId=m._id noRemove=true)
- if currentUser.isBoardAdmin
- div.estimation-add
- button.card-details-red.js-poker-replay(class="{{#if $eq voteState false}}voted{{/if}}") {{_ 'poker-replay'}}
- div.estimation-add
- button.js-poker-estimation
- i.fa.fa-plus
- | {{_ 'set-estimation'}}
- input(type=text,autofocus value=getPokerEstimation,id="pokerEstimation")
- //- XXX We should use "editable" to avoid repetiting ourselves
- if canModifyCard
- unless currentUser.isWorker
- if currentBoard.allowsDescriptionTitle
- hr
- h3.card-details-item-title
- i.fa.fa-align-left
- | {{_ 'description'}}
- if currentBoard.allowsDescriptionText
- +inlinedCardDescription(classNames="card-description js-card-description")
- +descriptionForm
- .edit-controls.clearfix
- button.primary(type="submit") {{_ 'save'}}
- a.fa.fa-times-thin.js-close-inlined-form
- else
- if currentBoard.allowsDescriptionText
- a.js-open-inlined-form(title="{{_ 'edit'}}" value=title)
- i.fa.fa-pencil-square-o
- a.js-open-inlined-form(title="{{_ 'edit'}}" value=title)
- if getDescription
- +viewer
- = getDescription
- if (hasUnsavedValue 'cardDescription' _id)
- p.quiet
- | {{_ 'unsaved-description'}}
- a.js-open-inlined-form {{_ 'view-it'}}
- = ' - '
- a.js-close-inlined-form {{_ 'discard'}}
- else if getDescription
- if currentBoard.allowsDescriptionTitle
- hr
- h3.card-details-item-title {{_ 'description'}}
- if currentBoard.allowsDescriptionText
- +viewer
- = getDescription
- .card-checklist-attachmentGalleries
- .card-checklist-attachmentGallery.card-checklists
- if currentBoard.allowsChecklists
- hr
- +checklists(cardId = _id card = this)
- if currentBoard.allowsSubtasks
- hr
- +subtasks(cardId = _id)
- if currentBoard.allowsAttachments
- hr
- h3.card-details-item-title
- i.fa.fa-paperclip
- | {{_ 'attachments'}}
- if Meteor.settings.public.attachmentsUploadMaxSize
- | {{_ 'max-upload-filesize'}} {{Meteor.settings.public.attachmentsUploadMaxSize}}
- br
- if Meteor.settings.public.attachmentsUploadMimeTypes
- | {{_ 'allowed-upload-filetypes'}} {{Meteor.settings.public.attachmentsUploadMimeTypes}}
- br
- | {{_ 'invalid-file'}}
- .card-checklist-attachmentGallery.card-attachmentGallery
- +attachmentGallery
- hr
- unless currentUser.isNoComments
- .comment-title
- h3.card-details-item-title
- i.fa.fa-comment-o
- | {{_ 'comments'}}
- if currentBoard.allowsComments
- if currentUser.isBoardMember
- unless currentUser.isNoComments
- +commentForm
- +comments
- hr
- .card-details-right
- unless currentUser.isNoComments
- .activity-title
- h3.card-details-item-title
- i.fa.fa-history
- | {{ _ 'activities'}}
- if currentUser.isBoardMember
- .material-toggle-switch(title="{{_ 'show-activities'}}")
- if showActivities
- input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard" checked="checked")
- else
- input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard")
- label.toggle-label(for="toggleShowActivitiesCard")
- unless currentUser.isNoComments
- if isLoaded.get
- if isLinkedCard
- +activities(card=this mode="linkedcard")
- else if isLinkedBoard
- +activities(card=this mode="linkedboard")
- else
- +activities(card=this mode="card")
- template(name="editCardTitleForm")
- a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}")
- span.copied-tooltip {{_ 'copied'}}
- textarea.js-edit-card-title(rows='1' autofocus dir="auto")
- = getTitle
- .edit-controls.clearfix
- button.primary.confirm.js-submit-edit-card-title-form(type="submit") {{_ 'save'}}
- a.fa.fa-times-thin.js-close-inlined-form
- template(name="editCardRequesterForm")
- input.js-edit-card-requester(type='text' autofocus value=getRequestedBy dir="auto")
- .edit-controls.clearfix
- button.primary.confirm.js-submit-edit-card-requester-form(type="submit") {{_ 'save'}}
- a.fa.fa-times-thin.js-close-inlined-form
- template(name="editCardAssignerForm")
- input.js-edit-card-assigner(type='text' autofocus value=getAssignedBy dir="auto")
- .edit-controls.clearfix
- button.primary.confirm.js-submit-edit-card-assigner-form(type="submit") {{_ 'save'}}
- a.fa.fa-times-thin.js-close-inlined-form
- template(name="editCardSortOrderForm")
- input.js-edit-card-sort(type='text' autofocus value=sort dir="auto")
- .edit-controls.clearfix
- button.primary.confirm.js-submit-edit-card-sort-form(type="submit") {{_ 'save'}}
- a.fa.fa-times-thin.js-close-inlined-form
- template(name="cardDetailsActionsPopup")
- ul.pop-over-list
- li
- a.js-toggle-watch-card
- if isWatching
- i.fa.fa-eye
- | {{_ 'unwatch'}}
- else
- i.fa.fa-eye-slash
- | {{_ 'watch'}}
- hr
- if canModifyCard
- unless currentUser.isWorker
- 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-voting
- i.fa.fa-thumbs-up
- | {{_ 'card-edit-voting'}}
- li
- a.js-start-planning-poker
- i.fa.fa-thumbs-up
- | {{_ 'card-edit-planning-poker'}}
- if currentUser.isBoardAdmin
- li
- a.js-custom-fields
- i.fa.fa-list-alt
- | {{_ 'card-edit-custom-fields'}}
- //li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}}
- //li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
- //li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
- //li: a.js-end-date {{_ 'editCardEndDatePopup-title'}}
- li
- a.js-spent-time
- i.fa.fa-clock-o
- | {{_ 'editCardSpentTimePopup-title'}}
- li
- a.js-set-card-color
- i.fa.fa-paint-brush
- | {{_ 'setCardColorPopup-title'}}
- hr
- ul.pop-over-list
- li
- a.js-export-card
- i.fa.fa-share-alt
- | {{_ 'export-card'}}
- hr
- ul.pop-over-list
- li
- a.js-move-card-to-top
- i.fa.fa-arrow-up
- | {{_ 'moveCardToTop-title'}}
- li
- a.js-move-card-to-bottom
- i.fa.fa-arrow-down
- | {{_ 'moveCardToBottom-title'}}
- hr
- ul.pop-over-list
- if currentUser.isBoardAdmin
- li
- a.js-move-card
- i.fa.fa-arrow-right
- | {{_ 'moveCardPopup-title'}}
- unless currentUser.isWorker
- li
- a.js-copy-card
- i.fa.fa-copy
- | {{_ 'copyCardPopup-title'}}
- unless currentUser.isWorker
- ul.pop-over-list
- li
- a.js-copy-checklist-cards
- i.fa.fa-copy
- i.fa.fa-copy
- | {{_ 'copyManyCardsPopup-title'}}
- unless archived
- hr
- ul.pop-over-list
- li
- a.js-archive
- i.fa.fa-arrow-right
- i.fa.fa-archive
- | {{_ 'archive-card'}}
- hr
- ul.pop-over-list
- li
- a.js-more
- i.fa.fa-link
- | {{_ 'cardMorePopup-title'}}
- template(name="exportCardPopup")
- ul.pop-over-list
- li
- a(href="{{exportUrlCardPDF}}",, download="{{exportFilenameCardPDF}}")
- i.fa.fa-share-alt
- | {{_ 'export-card-pdf'}}
- template(name="moveCardPopup")
- +copyAndMoveCard
- template(name="copyCardPopup")
- label(for='copy-card-title') {{_ 'title'}}:
- textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
- = getTitle
- +copyAndMoveCard
- template(name="copyManyCardsPopup")
- label(for='copy-checklist-cards-title') {{_ 'copyManyCardsPopup-instructions'}}:
- textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
- | {{_ 'copyManyCardsPopup-format'}}
- +copyAndMoveCard
- template(name="convertChecklistItemToCardPopup")
- label(for='convert-checklist-item-to-card-title') {{_ 'title'}}:
- textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
- = item.title
- +copyAndMoveCard
- template(name="copyAndMoveCard")
- unless currentUser.isWorker
- label {{_ 'boards'}}:
- select.js-select-boards(autofocus)
- each boards
- option(value="{{_id}}" selected="{{#if isDialogOptionBoardId _id}}selected{{/if}}") {{title}}
- label {{_ 'swimlanes'}}:
- select.js-select-swimlanes
- each swimlanes
- option(value="{{_id}}" selected="{{#if isDialogOptionSwimlaneId _id}}selected{{/if}}") {{title}}
- label {{_ 'lists'}}:
- select.js-select-lists
- each lists
- option(value="{{_id}}" selected="{{#if isDialogOptionListId _id}}selected{{/if}}") {{title}}
- .edit-controls.clearfix
- button.primary.confirm.js-done {{_ 'done'}}
- template(name="cardMembersPopup")
- input.card-members-filter(type="text" placeholder="{{_ 'search'}}")
- ul.pop-over-list.js-card-member-list
- each members
- li.item(class="{{#if isCardMember}}active{{/if}}")
- a.name.js-select-member(href="#")
- +userAvatar(userId=user._id)
- span.full-name
- = user.profile.fullname
- | (<span class="username">{{ user.username }}</span>)
- if isCardMember
- i.fa.fa-check
- template(name="cardAssigneesPopup")
- input.card-assignees-filter(type="text" placeholder="{{_ 'search'}}")
- unless currentUser.isWorker
- ul.pop-over-list.js-card-assignee-list
- each members
- li.item(class="{{#if isCardAssignee}}active{{/if}}")
- a.name.js-select-assignee(href="#")
- +userAvatar(userId=user._id)
- span.full-name
- = user.profile.fullname
- | (<span class="username">{{ user.username }}</span>)
- if isCardAssignee
- i.fa.fa-check
- if currentUser.isWorker
- ul.pop-over-list.js-card-assignee-list
- li.item(class="{{#if currentUser.isCardAssignee}}active{{/if}}")
- a.name.js-select-assignee(href="#")
- +userAvatar(userId=currentUser._id)
- span.full-name
- = currentUser.profile.fullname
- | (<span class="username">{{ currentUser.username }}</span>)
- if currentUser.isCardAssignee
- i.fa.fa-check
- template(name="cardAssigneePopup")
- .board-assignee-menu
- .mini-profile-info
- +userAvatar(userId=user._id showEdit=true)
- .info
- h3= user.profile.fullname
- p.quiet @{{ user.username }}
- ul.pop-over-list
- if currentUser.isNotCommentOnly
- unless currentUser.isWorker
- li: a.js-remove-assignee {{_ 'remove-member-from-card'}}
- unless currentUser.isWorker
- if $eq currentUser._id user._id
- with currentUser
- li: a.js-edit-profile {{_ 'edit-profile'}}
- template(name="cardMorePopup")
- p.quiet
- span.clearfix
- span {{_ 'link-card'}}
- = ' '
- i.fa.colorful(class="{{#if board.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
- input.inline-input(type="text" id="cardURL" readonly value="{{ originRelativeUrl }}" autofocus="autofocus")
- button.js-copy-card-link-to-clipboard(class="btn" id="clipboard") {{_ 'copy-card-link-to-clipboard'}}
- .copied-tooltip {{_ 'copied'}}
- span.clearfix
- br
- h2 {{_ 'change-card-parent'}}
- label {{_ 'source-board'}}:
- select.js-field-parent-board
- if isTopLevel
- option(value="none" selected) {{_ 'custom-field-dropdown-none'}}
- else
- option(value="none") {{_ 'custom-field-dropdown-none'}}
- each boards
- if isParentBoard
- option(value="{{_id}}" selected) {{title}}
- else
- option(value="{{_id}}") {{title}}
- label {{_ 'parent-card'}}:
- select.js-field-parent-card
- if isTopLevel
- option(value="none" selected) {{_ 'custom-field-dropdown-none'}}
- else
- option(value="none") {{_ 'custom-field-dropdown-none'}}
- each cards
- if isParentCard
- option(value="{{_id}}" selected) {{title}}
- else
- option(value="{{_id}}") {{title}}
- br
- | {{_ 'added'}}
- span.date(title=card.createdAt) {{ moment createdAt 'LLL' }}
- if currentUser.isBoardAdmin
- a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
- template(name="setCardColorPopup")
- form.edit-label
- .palette-colors: each colors
- unless $eq color 'white'
- span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
- if(isSelected color)
- i.fa.fa-check
- button.primary.confirm.js-submit {{_ 'save'}}
- button.js-remove-color.negate.wide.right {{_ 'unset-color'}}
- template(name="cardDeletePopup")
- p {{_ "card-delete-pop"}}
- unless archived
- p {{_ "card-delete-suggest-archive"}}
- button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
- template(name="cardArchivePopup")
- p {{_ "card-archive-pop"}}
- unless archived
- p {{_ "card-archive-suggest-cancel"}}
- button.js-confirm.negate.full(type="submit") {{_ 'archive'}}
- template(name="deleteVotePopup")
- p {{_ "vote-delete-pop"}}
- button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
- template(name="cardStartVotingPopup")
- form.edit-vote-question
- .fields
- label(for="vote") {{_ 'vote-question'}}
- input.js-vote-field#vote(type="text" name="vote" value="{{getVoteQuestion}}" autofocus disabled="{{#if getVoteQuestion}}disabled{{/if}}")
- .check-div
- a.flex(class="{{#if getVoteQuestion}}is-disabled{{else}}js-toggle-vote-allow-non-members{{/if}}")
- .materialCheckBox#vote-allow-non-members(name="vote-allow-non-members" class="{{#if voteAllowNonBoardMembers}}is-checked{{/if}}")
- span {{_ 'allowNonBoardMembers'}}
- .check-div
- a.flex(class="{{#if getVoteQuestion}}is-disabled{{else}}js-toggle-vote-public{{/if}}")
- .materialCheckBox#vote-public(name="vote-public" class="{{#if votePublic}}is-checked{{/if}}")
- span {{_ 'vote-public'}}
- .check-div.flex
- i.fa.fa-hourglass-end
- a.js-end-date
- span
- | {{_ 'card-end'}}
- unless getVoteEnd
- i.fa.fa-plus
- if getVoteEnd
- +voteEndDate
- button.primary.js-submit {{_ 'save'}}
- if getVoteQuestion
- if currentUser.isBoardAdmin
- button.js-remove-vote.negate.wide.right {{_ 'delete'}}
- template(name="positiveVoteMembersPopup")
- ul.pop-over-list.js-card-member-list
- each m in voteMemberPositive
- li.item
- a.name
- +userAvatar(userId=m._id)
- span.full-name
- = m.profile.fullname
- | (<span class="username">{{ m.username }}</span>)
- template(name="negativeVoteMembersPopup")
- ul.pop-over-list.js-card-member-list
- each m in voteMemberNegative
- li.item
- a.name
- +userAvatar(userId=m._id)
- span.full-name
- = m.profile.fullname
- | (<span class="username">{{ m.username }}</span>)
- template(name="deletePokerPopup")
- p {{_ "poker-delete-pop"}}
- button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
- template(name="cardStartPlanningPokerPopup")
- form.edit-poker-question
- .fields
- .check-div
- a.flex(class="{{#if getPokerQuestion}}is-disabled{{else}}js-toggle-poker-allow-non-members{{/if}}")
- .materialCheckBox#poker-allow-non-members(name="poker-allow-non-members" class="{{#if pokerAllowNonBoardMembers}}is-checked{{/if}}")
- span {{_ 'allowNonBoardMembers'}}
- .check-div.flex
- i.fa.fa-hourglass-end
- a.js-end-date
- span
- | {{_ 'card-end'}}
- unless getPokerEnd
- i.fa.fa-plus
- if getPokerEnd
- +pokerEndDate
- button.primary.js-submit {{_ 'save'}}
- if getPokerQuestion
- if currentUser.isBoardAdmin
- button.js-remove-poker.negate.wide.right {{_ 'delete'}}
|