mirror of https://github.com/wekan/wekan
The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.json , other translations are done at https://transifex.com/wekan/wekan only.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
671 lines
24 KiB
671 lines
24 KiB
template(name="sidebar")
|
|
.board-sidebar.sidebar(class="{{#if isOpen}}is-open{{/if}}")
|
|
//a.sidebar-tongue.js-toggle-sidebar(
|
|
// class="{{#if isTongueHidden}}is-hidden{{/if}}",
|
|
// title="{{showTongueTitle}}")
|
|
// i.fa.fa-navicon
|
|
.sidebar-actions
|
|
//.sidebar-shortcuts
|
|
// a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}")
|
|
// i.fa.fa-keyboard-o
|
|
// span {{_ 'keyboard-shortcuts' }}
|
|
a.sidebar-xmark.js-close-sidebar ✕
|
|
.sidebar-content.js-board-sidebar-content
|
|
//a.hide-btn.js-hide-sidebar
|
|
// i.fa.fa-navicon
|
|
unless isDefaultView
|
|
h2
|
|
a.fa.fa-chevron-left.js-back-home
|
|
= getViewTitle
|
|
if isOpen
|
|
+Template.dynamic(template=getViewTemplate)
|
|
|
|
template(name='homeSidebar')
|
|
hr
|
|
+membersWidget
|
|
hr
|
|
+labelsWidget
|
|
ul#cards.label-text-hidden
|
|
a.flex.js-toggle-minicard-label-text(title="{{_ 'hide-minicard-label-text'}}")
|
|
span {{_ 'hide-minicard-label-text'}}
|
|
b
|
|
.materialCheckBox(class="{{#if hiddenMinicardLabelText}}is-checked{{/if}}")
|
|
hr
|
|
unless currentUser.isNoComments
|
|
h3.activity-title
|
|
i.fa.fa-comments-o
|
|
| {{_ 'activities'}}
|
|
|
|
.material-toggle-switch(title="{{_ 'show-activities'}}")
|
|
if showActivities
|
|
input.toggle-switch(type="checkbox" id="toggleShowActivitiesBoard" checked="checked")
|
|
else
|
|
input.toggle-switch(type="checkbox" id="toggleShowActivitiesBoard")
|
|
label.toggle-label(for="toggleShowActivitiesBoard")
|
|
+activities(mode="board")
|
|
|
|
template(name="membersWidget")
|
|
unless currentUser.isCommentOnly
|
|
unless currentUser.isWorker
|
|
h3
|
|
a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}")
|
|
i.board-header-btn-icon.fa.fa-cog
|
|
| {{_ 'boardMenuPopup-title'}}
|
|
hr
|
|
h3
|
|
i.fa.fa-users
|
|
| {{_ 'members'}}
|
|
+basicTabs(tabs=tabs)
|
|
+tabContent(slug="people")
|
|
unless currentUser.isWorker
|
|
p.quiet
|
|
.board-widget-content
|
|
each currentBoard.activeMembers
|
|
+userAvatar(userId=this.userId showStatus=true)
|
|
if isSandstorm
|
|
if currentUser.isBoardMember
|
|
a.member.add-member.sandstorm-powerbox-request-identity(title="{{_ 'add-members'}}")
|
|
i.fa.fa-plus
|
|
else if currentUser.isBoardAdmin
|
|
a.member.add-member.js-manage-board-members(title="{{_ 'add-members'}}")
|
|
i.fa.fa-plus
|
|
.clearfix
|
|
if isInvited
|
|
hr
|
|
p
|
|
i.fa.fa-exclamation-circle
|
|
| {{_ 'just-invited'}}
|
|
button.js-member-invite-accept.primary {{_ 'accept'}}
|
|
button.js-member-invite-decline {{_ 'decline'}}
|
|
+tabContent(slug='organizations')
|
|
unless currentUser.isWorker
|
|
p.quiet
|
|
if AtLeastOneOrgWasCreated
|
|
.board-widget.board-widget-members
|
|
.board-widget-content
|
|
+boardOrgGeneral
|
|
.clearfix
|
|
+tabContent(slug="teams")
|
|
unless currentUser.isWorker
|
|
p.quiet
|
|
if AtLeastOneTeamWasCreated
|
|
.board-widget.board-widget-members
|
|
.board-widget-content
|
|
+boardTeamGeneral
|
|
.clearfix
|
|
|
|
template(name="boardOrgGeneral")
|
|
table
|
|
tbody
|
|
tr
|
|
th
|
|
| {{_ 'add-organizations'}}
|
|
br
|
|
i.addOrganizationsLabel
|
|
| {{_ 'to-create-organizations-contact-admin'}}
|
|
br
|
|
i.addOrganizationsLabel
|
|
| {{_ 'add-organizations-label'}}
|
|
th
|
|
if currentUser.isBoardAdmin
|
|
a.member.orgOrTeamMember.add-member.js-manage-board-addOrg(title="{{_ 'add-members'}}")
|
|
i.addTeamFaPlus.fa.fa-plus
|
|
.divaddfaplusminus
|
|
| {{_ 'add'}}
|
|
each org in currentBoard.activeOrgs
|
|
+boardOrgRow(orgId=org.orgId)
|
|
|
|
template(name="boardTeamGeneral")
|
|
table
|
|
tbody
|
|
tr
|
|
th
|
|
| {{_ 'add-teams'}}
|
|
br
|
|
i.addTeamsLabel
|
|
| {{_ 'to-create-teams-contact-admin'}}
|
|
br
|
|
i.addTeamsLabel
|
|
| {{_ 'add-teams-label'}}
|
|
th
|
|
if currentUser.isBoardAdmin
|
|
a.member.orgOrTeamMember.add-member.js-manage-board-addTeam(title="{{_ 'add-members'}}")
|
|
i.addTeamFaPlus.fa.fa-plus
|
|
.divaddfaplusminus
|
|
| {{_ 'add'}}
|
|
each currentBoard.activeTeams
|
|
+boardTeamRow(teamId=this.teamId)
|
|
|
|
template(name="boardChangeColorPopup")
|
|
.board-backgrounds-list.clearfix
|
|
each backgroundColors
|
|
.board-background-select.js-select-background
|
|
span.background-box(class="board-color-{{this}}")
|
|
span {{this}}
|
|
if isSelected
|
|
i.fa.fa-check
|
|
|
|
template(name="boardChangeBackgroundImagePopup")
|
|
form
|
|
label
|
|
| {{_ 'board-background-image-url'}}
|
|
input.js-board-background-image-url(type="text" value="{{backgroundImageURL}}" autofocus)
|
|
div.buttonsContainer
|
|
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
|
br
|
|
br
|
|
br
|
|
br
|
|
br
|
|
hr
|
|
div
|
|
button.js-remove-background-image.negate.wide.card-details-red.right {{_ 'unset-color'}}
|
|
|
|
template(name="boardInfoOnMyBoardsPopup")
|
|
form.board-info-on-my-boards
|
|
h3 {{_ 'show-at-all-boards-page'}}
|
|
unless currentSetting.hideCardCounterList
|
|
div.check-div
|
|
a.flex.js-field-has-cardcounterlist(class="{{#if allowsCardCounterList}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsCardCounterList}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-sign-out
|
|
| {{_ 'show-card-counter-per-list'}}
|
|
unless currentSetting.hideBoardMemberList
|
|
div.check-div
|
|
a.flex.js-field-has-boardmemberlist(class="{{#if allowsBoardMemberList}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsBoardMemberList}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-hourglass-start
|
|
| {{_ 'show-board_members-avatar'}}
|
|
|
|
template(name="boardCardSettingsPopup")
|
|
form.board-card-settings
|
|
h3 {{_ 'show-on-card'}}, {{_ 'show-on-minicard'}}
|
|
div.check-div
|
|
a.flex.js-field-has-receiveddate(class="{{#if allowsReceivedDate}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsReceivedDate}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-sign-out
|
|
| {{_ 'card-received'}}
|
|
div.check-div
|
|
a.flex.js-field-has-startdate(class="{{#if allowsStartDate}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsStartDate}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-hourglass-start
|
|
| {{_ 'card-start'}}
|
|
div.check-div
|
|
a.flex.js-field-has-duedate(class="{{#if allowsDueDate}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsDueDate}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-sign-in
|
|
| {{_ 'card-due'}}
|
|
div.check-div
|
|
a.flex.js-field-has-enddate(class="{{#if allowsEndDate}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsEndDate}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-hourglass-end
|
|
| {{_ 'card-end'}}
|
|
div.check-div
|
|
a.flex.js-field-has-members(class="{{#if allowsMembers}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsMembers}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-users
|
|
| {{_ 'members'}}
|
|
div.check-div
|
|
a.flex.js-field-has-creator(class="{{#if allowsCreator}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsCreator}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-user
|
|
| {{_ 'creator'}}
|
|
div.check-div
|
|
a.flex.js-field-has-creator-on-minicard(class="{{#if allowsCreatorOnMinicard}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsCreatorOnMinicard}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-user
|
|
| {{_ 'creator-on-minicard'}}
|
|
div.check-div
|
|
a.flex.js-field-has-assignee(class="{{#if allowsAssignee}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsAssignee}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-user
|
|
| {{_ 'assignee'}}
|
|
div.check-div
|
|
a.flex.js-field-has-assigned-by(class="{{#if allowsAssignedBy}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsAssignedBy}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-shopping-cart
|
|
| {{_ 'assigned-by'}}
|
|
div.check-div
|
|
a.flex.js-field-has-requested-by(class="{{#if allowsRequestedBy}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsRequestedBy}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-user-plus
|
|
| {{_ 'requested-by'}}
|
|
div.check-div
|
|
a.flex.js-field-has-card-sorting-by-number(class="{{#if allowsCardSortingByNumber}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsCardSortingByNumber}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-sort
|
|
| {{_ 'card-sorting-by-number'}}
|
|
div.check-div
|
|
a.flex.js-field-has-card-sorting-by-number-on-minicard(class="{{#if allowsCardSortingByNumberOnMinicard}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsCardSortingByNumberOnMinicard}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-sort
|
|
| {{_ 'card-sorting-by-number-on-minicard'}}
|
|
div.check-div
|
|
a.flex.js-field-has-card-show-lists(class="{{#if allowsShowLists}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsShowLists}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-list
|
|
| {{_ 'card-show-lists'}}
|
|
div.check-div
|
|
a.flex.js-field-has-labels(class="{{#if allowsLabels}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsLabels}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-tags
|
|
| {{_ 'labels'}}
|
|
div.check-div
|
|
a.flex.js-field-has-card-number(class="{{#if allowsCardNumber}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsCardNumber}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-hashtag
|
|
| {{_ 'card'}}
|
|
| {{_ 'number'}}
|
|
div.check-div
|
|
a.flex.js-field-has-description-title(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-align-left
|
|
| {{_ 'description'}}
|
|
| {{_ 'title'}}
|
|
div.check-div
|
|
a.flex.js-field-has-description-text(class="{{#if allowsDescriptionText}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsDescriptionText}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-align-left
|
|
| {{_ 'description'}}
|
|
| {{_ 'custom-field-text'}}
|
|
div.check-div
|
|
a.flex.js-field-has-description-text-on-minicard(class="{{#if allowsDescriptionTextOnMinicard}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsDescriptionTextOnMinicard}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-align-left
|
|
| {{_ 'description-on-minicard'}}
|
|
div.check-div
|
|
a.flex.js-field-has-checklists(class="{{#if allowsChecklists}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsChecklists}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-check
|
|
| {{_ 'checklists'}}
|
|
div.check-div
|
|
a.flex.js-field-has-subtasks(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-sitemap
|
|
| {{_ 'subtasks'}}
|
|
div.check-div
|
|
a.flex.js-field-has-attachments(class="{{#if allowsAttachments}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsAttachments}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-paperclip
|
|
| {{_ 'attachments'}}
|
|
div.check-div
|
|
a.flex.js-field-has-badge-attachment-on-minicard(class="{{#if allowsBadgeAttachmentOnMinicard}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsBadgeAttachmentOnMinicard}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-paperclip
|
|
| {{_ 'badge-attachment-on-minicard'}}
|
|
div.check-div
|
|
a.flex.js-field-has-cover-attachment-on-minicard(class="{{#if allowsCoverAttachmentOnMinicard}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsCoverAttachmentOnMinicard}}is-checked{{/if}}")
|
|
span
|
|
i.fa.fa-book
|
|
i.fa.fa-picture-o
|
|
| {{_ 'cover-attachment-on-minicard'}}
|
|
//div.check-div
|
|
// a.flex.js-field-has-comments(class="{{#if allowsComments}}is-checked{{/if}}")
|
|
// .materialCheckBox(class="{{#if allowsComments}}is-checked{{/if}}")
|
|
// span
|
|
// i.fa.fa-comment-o
|
|
// | {{_ 'comment'}}
|
|
//div.check-div
|
|
// a.flex.js-field-has-activities(class="{{#if allowsActivities}}is-checked{{/if}}")
|
|
// .materialCheckBox(class="{{#if allowsActivities}}is-checked{{/if}}")
|
|
// span
|
|
// i.fa.fa-history
|
|
// | {{_ 'activities'}}
|
|
|
|
template(name="boardSubtaskSettingsPopup")
|
|
form.board-subtask-settings
|
|
h3 {{_ 'show-parent-in-minicard'}}
|
|
a#prefix-with-full-path.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'prefix-with-full-path'}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if $eq presentParentTask 'prefix-with-full-path'}}is-checked{{/if}}")
|
|
span {{_ 'prefix-with-full-path'}}
|
|
a#prefix-with-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'prefix-with-parent'}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if $eq presentParentTask 'prefix-with-parent'}}is-checked{{/if}}")
|
|
span {{_ 'prefix-with-parent'}}
|
|
a#subtext-with-full-path.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'subtext-with-full-path'}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if $eq presentParentTask 'subtext-with-full-path'}}is-checked{{/if}}")
|
|
span {{_ 'subtext-with-full-path'}}
|
|
a#subtext-with-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'subtext-with-parent'}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if $eq presentParentTask 'subtext-with-parent'}}is-checked{{/if}}")
|
|
span {{_ 'subtext-with-parent'}}
|
|
a#no-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'no-parent'}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if $eq presentParentTask 'no-parent'}}is-checked{{/if}}")
|
|
span {{_ 'no-parent'}}
|
|
div
|
|
hr
|
|
|
|
div.check-div
|
|
a.flex.js-field-has-subtasks(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
|
.materialCheckBox(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
|
span {{_ 'show-subtasks-field'}}
|
|
|
|
label
|
|
| {{_ 'deposit-subtasks-board'}}
|
|
select.js-field-deposit-board(disabled="{{#unless allowsSubtasks}}disabled{{/unless}}")
|
|
each boards
|
|
if isBoardSelected
|
|
option(value=_id selected="selected") {{title}}
|
|
else
|
|
option(value=_id) {{title}}
|
|
if isNullBoardSelected
|
|
option(value='null' selected="selected") {{_ 'custom-field-dropdown-none'}}
|
|
else
|
|
option(value='null') {{_ 'custom-field-dropdown-none'}}
|
|
div
|
|
hr
|
|
|
|
label
|
|
| {{_ 'deposit-subtasks-list'}}
|
|
select.js-field-deposit-list(disabled="{{#unless hasLists}}disabled{{/unless}}")
|
|
each lists
|
|
if isListSelected
|
|
option(value=_id selected="selected") {{title}}
|
|
else
|
|
option(value=_id) {{title}}
|
|
|
|
template(name="chooseBoardSource")
|
|
ul.pop-over-list
|
|
li
|
|
a(href="{{pathFor '/import/trello'}}") {{_ 'from-trello'}}
|
|
li
|
|
a(href="{{pathFor '/import/wekan'}}") {{_ 'from-wekan'}}
|
|
li
|
|
a(href="{{pathFor '/import/csv'}}") {{_ 'from-csv'}}
|
|
|
|
template(name="archiveBoardPopup")
|
|
p {{_ 'close-board-pop'}}
|
|
button.js-confirm.negate.full(type="submit")
|
|
i.fa.fa-archive
|
|
| {{_ 'archive'}}
|
|
|
|
template(name="outgoingWebhooksPopup")
|
|
each integrations
|
|
form.integration-form
|
|
a.flex
|
|
span {{_ 'disable-webhook'}}
|
|
b
|
|
.materialCheckBox(class="{{#unless enabled}}is-checked{{/unless}}")
|
|
input.js-outgoing-webhooks-title(placeholder="{{_ 'webhook-title'}}" type="text" name="title" value=title)
|
|
input.js-outgoing-webhooks-url(type="text" name="url" value=url)
|
|
input.js-outgoing-webhooks-token(placeholder="{{_ 'webhook-token' }}" type="text" value=token name="token")
|
|
select.js-outgoing-webhooks-type(name="type")
|
|
each _type in types
|
|
if($eq _type this.type)
|
|
option(value=_type selected="selected") {{_ _type}}
|
|
else
|
|
option(value=_type) {{_ _type}}
|
|
input(type="hidden" value=this.type name="_type")
|
|
input(type="hidden" value=_id name="id")
|
|
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
|
form.integration-form
|
|
input.js-outgoing-webhooks-title(placeholder="{{_ 'webhook-title'}}" type="text" name="title")
|
|
input.js-outgoing-webhooks-url(placeholder="{{_ 'URL' }}" type="text" name="url")
|
|
input.js-outgoing-webhooks-token(placeholder="{{_ 'webhook-token' }}" type="text" name="token")
|
|
select.js-outgoing-webhooks-type(name="type")
|
|
each _type in types
|
|
option(value=_type) {{_ _type}}
|
|
input.primary.wide(type="submit" value="{{_ 'create'}}")
|
|
|
|
template(name="boardMenuPopup")
|
|
ul.pop-over-list
|
|
if currentUser.isBoardAdmin
|
|
li
|
|
a.js-open-rules-view(title="{{_ 'rules'}}")
|
|
i.fa.fa-magic
|
|
| {{_ 'rules'}}
|
|
if currentUser.isBoardAdmin
|
|
li
|
|
a.js-custom-fields
|
|
i.fa.fa-list-alt
|
|
| {{_ 'custom-fields'}}
|
|
li
|
|
a.js-open-archives
|
|
i.fa.fa-archive
|
|
| {{_ 'archived-items'}}
|
|
if currentUser.isBoardAdmin
|
|
li
|
|
a.js-change-board-color
|
|
i.fa.fa-paint-brush
|
|
| {{_ 'board-change-color'}}
|
|
li
|
|
a.js-change-background-image
|
|
i.fa.fa-picture-o
|
|
| {{_ 'board-change-background-image'}}
|
|
//Bug Board icons random dance https://github.com/wekan/wekan/issues/4214
|
|
//if currentUser.isBoardAdmin
|
|
// unless currentSetting.hideBoardMemberList
|
|
// unless currentSetting.hideCardCounterList
|
|
// li
|
|
// a.js-board-info-on-my-boards(title="{{_ 'board-info-on-my-boards'}}")
|
|
// i.fa.fa-id-card-o
|
|
// | {{_ 'board-info-on-my-boards'}}
|
|
hr
|
|
ul.pop-over-list
|
|
if withApi
|
|
li
|
|
a.js-export-board
|
|
i.fa.fa-share-alt
|
|
| {{_ 'export-board'}}
|
|
if currentUser.isBoardAdmin
|
|
li
|
|
a.js-outgoing-webhooks
|
|
i.fa.fa-globe
|
|
| {{_ 'outgoing-webhooks'}}
|
|
li
|
|
a.js-card-settings
|
|
i.fa.fa-id-card-o
|
|
| {{_ 'card-settings'}}
|
|
li
|
|
a.js-subtask-settings
|
|
i.fa.fa-sitemap
|
|
| {{_ 'subtask-settings'}}
|
|
unless currentBoard.isTemplatesBoard
|
|
if currentUser.isBoardAdmin
|
|
hr
|
|
ul.pop-over-list
|
|
li
|
|
a.js-archive-board
|
|
i.fa.fa-arrow-right
|
|
i.fa.fa-archive
|
|
| {{_ 'archive-board'}}
|
|
|
|
template(name="exportBoard")
|
|
ul.pop-over-list
|
|
li
|
|
a.download-json-link(href="{{exportUrl}}", download="{{exportJsonFilename}}")
|
|
i.fa.fa-share-alt
|
|
| {{_ 'export-board-json'}}
|
|
li
|
|
a(href="{{exportUrlExcel}}", download="{{exportFilenameExcel}}")
|
|
i.fa.fa-share-alt
|
|
| {{_ 'export-board-excel'}}
|
|
li
|
|
a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
|
|
i.fa.fa-share-alt
|
|
| {{_ 'export-board-csv'}} ,
|
|
li
|
|
a(href="{{exportScsvUrl}}", download="{{exportCsvFilename}}")
|
|
i.fa.fa-share-alt
|
|
| {{_ 'export-board-csv'}} ;
|
|
li
|
|
a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
|
|
i.fa.fa-share-alt
|
|
| {{_ 'export-board-tsv'}}
|
|
li
|
|
a.html-export-board
|
|
i.fa.fa-archive
|
|
| {{_ 'export-board-html'}}
|
|
|
|
template(name="labelsWidget")
|
|
.board-widget.board-widget-labels
|
|
h3
|
|
i.fa.fa-tags
|
|
| {{_ 'labels'}}
|
|
.board-widget-content
|
|
each currentBoard.labels
|
|
a.card-label(class="card-label-{{color}}"
|
|
class="{{#if currentUser.isNotCommentOnly}}{{#if currentUser.isNotWorker}}js-label{{/if}}{{/if}}")
|
|
span.card-label-name
|
|
+viewer
|
|
= name
|
|
if currentUser.isBoardAdmin
|
|
a.card-label.add-label.js-add-label(title="{{_ 'label-create'}}")
|
|
i.fa.fa-plus
|
|
|
|
template(name="memberPopup")
|
|
.board-member-menu
|
|
.miniprofile-header
|
|
+userAvatar(userId=user._id showEdit=true)
|
|
.info
|
|
h3
|
|
.js-profile= user.profile.fullname
|
|
p.quiet @#{user.username}
|
|
if isInvited
|
|
p
|
|
i.fa.fa-exclamation-circle
|
|
| {{_ 'not-accepted-yet'}}
|
|
|
|
ul.pop-over-list
|
|
li
|
|
a.js-filter-member {{_ 'filter-cards'}}
|
|
if currentUser.isBoardAdmin
|
|
li
|
|
a.js-change-role
|
|
| {{_ 'change-permissions'}}
|
|
span.quiet (#{memberType})
|
|
unless currentUser.isWorker
|
|
li
|
|
if $eq currentUser._id userId
|
|
a.js-leave-member {{_ 'leave-board'}}
|
|
else if currentUser.isBoardAdmin
|
|
a.js-remove-member {{_ 'remove-from-board'}}
|
|
|
|
template(name="removeMemberPopup")
|
|
p {{_ 'remove-member-pop' name=user.profile.fullname username=user.username boardTitle=board.title}}
|
|
button.js-confirm.negate.full(type="submit") {{_ 'remove-member'}}
|
|
|
|
template(name="leaveBoardPopup")
|
|
p {{_ 'leave-board-pop' boardTitle=board.title}}
|
|
button.js-confirm.negate.full(type="submit") {{_ 'leave-board'}}
|
|
|
|
template(name="addBoardOrgPopup")
|
|
select.js-boardOrgs#jsBoardOrgs
|
|
option(value="-1") {{_ 'organizations'}} :
|
|
each value in orgsDatas
|
|
option(value="{{value._id}}") {{value.orgDisplayName}}
|
|
|
|
template(name="removeBoardOrgPopup")
|
|
form
|
|
input.hide#hideOrgId(type="text" value=org._id)
|
|
label
|
|
| {{_ 'remove-organization-from-board'}}
|
|
br
|
|
hr
|
|
div.buttonsContainer
|
|
input.primary.wide.leaveBoardBtn#leaveBoardBtn(type="submit" value="{{_ 'confirm-btn'}}")
|
|
input.primary.wide.cancelLeaveBoardBtn#cancelLeaveBoardBtn(type="submit" value="{{_ 'cancel'}}")
|
|
|
|
template(name="addBoardTeamPopup")
|
|
select.js-boardTeams#jsBoardTeams
|
|
option(value="-1") {{_ 'teams'}} :
|
|
each value in teamsDatas
|
|
option(value="{{value._id}}") {{_ value.teamDisplayName}}
|
|
|
|
template(name="removeBoardTeamPopup")
|
|
form
|
|
input.hide#hideTeamId(type="text" value=team._id)
|
|
label
|
|
| {{_ 'remove-team-from-table'}}
|
|
br
|
|
hr
|
|
div.buttonsContainer
|
|
input.primary.wide.leaveBoardBtn#leaveBoardTeamBtn(type="submit" value="{{_ 'confirm-btn'}}")
|
|
input.primary.wide.cancelLeaveBoardBtn#cancelLeaveBoardTeamBtn(type="submit" value="{{_ 'cancel'}}")
|
|
|
|
template(name="addMemberPopup")
|
|
.js-search-member
|
|
+EasySearch.Input(index=searchIndex)
|
|
|
|
if loading.get
|
|
+spinner
|
|
else if error.get
|
|
.warning {{_ error.get}}
|
|
else
|
|
ul.pop-over-list
|
|
+EasySearch.Each(index=searchIndex)
|
|
li.item.js-member-item(class="{{#if isBoardMember}}disabled{{/if}}")
|
|
a.name.js-select-member(title="{{profile.fullname}} ({{username}})")
|
|
+userAvatar(userId=__originalId)
|
|
span.full-name
|
|
= profile.fullname
|
|
| (<span class="username">{{username}}</span>)
|
|
if isBoardMember
|
|
.quiet ({{_ 'joined'}})
|
|
|
|
+EasySearch.IfSearching(index=searchIndex)
|
|
+spinner
|
|
|
|
+EasySearch.IfNoResults(index=searchIndex)
|
|
.manage-member-section
|
|
p.quiet {{_ 'no-results'}}
|
|
button.js-email-invite.primary.full {{_ 'email-invite'}}
|
|
|
|
template(name="changePermissionsPopup")
|
|
ul.pop-over-list
|
|
li
|
|
a(class="{{#if isLastAdmin}}disabled{{else}}js-set-admin{{/if}}")
|
|
| {{_ 'admin'}}
|
|
if isAdmin
|
|
i.fa.fa-check
|
|
span.sub-name {{_ 'admin-desc'}}
|
|
li
|
|
a(class="{{#if isLastAdmin}}disabled{{else}}js-set-normal{{/if}}")
|
|
| {{_ 'normal'}}
|
|
if isNormal
|
|
i.fa.fa-check
|
|
span.sub-name {{_ 'normal-desc'}}
|
|
li
|
|
a(class="{{#if isLastAdmin}}disabled{{else}}js-set-no-comments{{/if}}")
|
|
| {{_ 'no-comments'}}
|
|
if isNoComments
|
|
i.fa.fa-check
|
|
span.sub-name {{_ 'no-comments-desc'}}
|
|
li
|
|
a(class="{{#if isLastAdmin}}disabled{{else}}js-set-comment-only{{/if}}")
|
|
| {{_ 'comment-only'}}
|
|
if isCommentOnly
|
|
i.fa.fa-check
|
|
span.sub-name {{_ 'comment-only-desc'}}
|
|
li
|
|
a(class="{{#if isLastAdmin}}disabled{{else}}js-set-worker{{/if}}")
|
|
| {{_ 'worker'}}
|
|
if isWorker
|
|
i.fa.fa-check
|
|
span.sub-name {{_ 'worker-desc'}}
|
|
if isLastAdmin
|
|
hr
|
|
p.quiet.bottom {{_ 'last-admin-desc'}}
|
|
|