| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- template(name="boardList")
- .wrapper
- .board-list-header
- .boards-layout
- // Left menu
- .boards-left-menu
- ul.menu
- li(class="menu-item {{#if isSelectedMenu 'starred'}}active{{/if}}")
- a.js-select-menu(data-type="starred")
- span.menu-label ⭐ {{_ 'allboards.starred'}}
- span.menu-count {{menuItemCount 'starred'}}
- li(class="menu-item {{#if isSelectedMenu 'templates'}}active{{/if}}")
- a.js-select-menu(data-type="templates")
- span.menu-label 📋 {{_ 'allboards.templates'}}
- span.menu-count {{menuItemCount 'templates'}}
- li(class="menu-item {{#if isSelectedMenu 'remaining'}}active{{/if}}")
- a.js-select-menu(data-type="remaining")
- span.menu-label 📂 {{_ 'allboards.remaining'}}
- span.menu-count {{menuItemCount 'remaining'}}
- .workspaces-header
- span 🗂️ {{_ 'allboards.workspaces'}}
- a.js-add-workspace(title="{{_ 'allboards.add-workspace'}}") +
- // Workspaces tree
- +workspaceTree(nodes=workspacesTree selectedWorkspaceId=selectedWorkspaceId)
- // Existing filter by orgs/teams (kept)
- ul.AllBoardTeamsOrgs
- li.AllBoardTeams
- if userHasTeams
- select.js-AllBoardTeams#jsAllBoardTeams("multiple")
- option(value="-1") {{_ 'teams'}} :
- each teamsDatas
- option(value="{{teamId}}") {{_ teamDisplayName}}
- li.AllBoardOrgs
- if userHasOrgs
- select.js-AllBoardOrgs#jsAllBoardOrgs("multiple")
- option(value="-1") {{_ 'organizations'}} :
- each orgsDatas
- option(value="{{orgId}}") {{orgDisplayName}}
- li.AllBoardBtns
- div.AllBoardButtonsContainer
- if userHasOrgsOrTeams
- span 🔍
- input#filterBtn(type="button" value="{{_ 'filter'}}")
- button#resetBtn.filter-reset-btn
- span.reset-icon ❌
- span {{_ 'filter-clear'}}
- // Right boards grid
- .boards-right-grid
- .boards-path-header
- .path-left
- span.path-icon {{currentMenuPath.icon}}
- span.path-text {{currentMenuPath.text}}
- if BoardMultiSelection.isActive
- span.multiselection-hint 📌 {{_ 'multi-selection-active'}}
- .path-right
- if canModifyBoards
- if hasBoardsSelected
- button.js-archive-selected-boards.board-header-btn
- span 📦
- span {{_ 'archive-board'}}
- button.js-duplicate-selected-boards.board-header-btn
- span 📋
- span {{_ 'duplicate-board'}}
- a.board-header-btn.js-multiselection-activate(
- title="{{#if BoardMultiSelection.isActive}}{{_ 'multi-selection-on'}}{{else}}{{_ 'multi-selection'}}{{/if}}"
- class="{{#if BoardMultiSelection.isActive}}emphasis{{/if}}")
- | ☑️
- if BoardMultiSelection.isActive
- a.board-header-btn-close.js-multiselection-reset(title="{{_ 'filter-clear'}}")
- | ✖
- ul.board-list.clearfix.js-boards(class="{{#if isMiniScreen}}mobile-view{{/if}} {{#if BoardMultiSelection.isActive}}is-multiselection-active{{/if}}")
- li.js-add-board
- if isSelectedMenu 'templates'
- a.board-list-item.label(title="{{_ 'add-template-container'}}")
- | ➕ {{_ 'add-template-container'}}
- else
- a.board-list-item.label(title="{{_ 'add-board'}}")
- | ➕ {{_ 'add-board'}}
- each boards
- li.js-board(class="{{_id}} {{#if isStarred}}starred{{/if}} {{colorClass}} {{#if BoardMultiSelection.isSelected _id}}is-checked{{/if}}", draggable="true")
- if isInvited
- .board-list-item
- if BoardMultiSelection.isActive
- .materialCheckBox.multi-selection-checkbox.js-toggle-board-multi-selection(
- class="{{#if BoardMultiSelection.isSelected _id}}is-checked{{/if}}")
- span.details
- span.board-list-item-name= title
- span.js-star-board(
- class="{{#if isStarred}}is-star-active{{else}}is-not-star-active{{/if}}"
- title="{{_ 'star-board-title'}}")
- | {{#if isStarred}}⭐{{else}}☆{{/if}}
- p.board-list-item-desc {{_ 'just-invited'}}
- button.js-accept-invite.primary {{_ 'accept'}}
- button.js-decline-invite {{_ 'decline'}}
- else
- if $eq type "template-container"
- .template-container.board-list-item
- if BoardMultiSelection.isActive
- .materialCheckBox.multi-selection-checkbox.js-toggle-board-multi-selection(
- class="{{#if BoardMultiSelection.isSelected _id}}is-checked{{/if}}")
- span.board-handle(title="{{_ 'drag-board'}}") ↕️
- a.js-open-board(href="{{pathFor 'board' id=_id slug=slug}}")
- span.details
- span.board-list-item-name(title="{{_ 'template-container'}}")
- +viewer
- = title
- p.board-list-item-desc
- +viewer
- = description
- if hasSpentTimeCards
- span.js-has-spenttime-cards(
- class="{{#if hasOvertimeCards}}has-overtime-card-active{{else}}no-overtime-card-active{{/if}}"
- title="{{#if hasOvertimeCards}}{{_ 'has-overtime-cards'}}{{else}}{{_ 'has-spenttime-cards'}}{{/if}}")
- | ⏱️
- span.js-star-board(
- class="{{#if isStarred}}is-star-active{{else}}is-not-star-active{{/if}}"
- title="{{_ 'star-board-title'}}")
- | {{#if isStarred}}⭐{{else}}☆{{/if}}
- else
- .board-list-item
- if BoardMultiSelection.isActive
- .materialCheckBox.multi-selection-checkbox.js-toggle-board-multi-selection(
- class="{{#if BoardMultiSelection.isSelected _id}}is-checked{{/if}}")
- span.board-handle(title="{{_ 'drag-board'}}") ↕️
- a.js-open-board(href="{{pathFor 'board' id=_id slug=slug}}")
- span.details
- span.board-list-item-name(title="{{_ 'board-drag-drop-reorder-or-click-open'}}")
- +viewer
- = title
- unless currentSetting.hideBoardMemberList
- if allowsBoardMemberList
- .minicard-members
- each member in boardMembers _id
- a.name
- +userAvatar(userId=member noRemove=true)
- unless currentSetting.hideCardCounterList
- if allowsCardCounterList
- .minicard-lists.flex.flex-wrap
- each list in boardLists _id
- .item
- | {{ list }}
- p.board-list-item-desc
- +viewer
- = description
- if hasSpentTimeCards
- span.js-has-spenttime-cards(
- class="{{#if hasOvertimeCards}}has-overtime-card-active{{else}}no-overtime-card-active{{/if}}"
- title="{{#if hasOvertimeCards}}{{_ 'has-overtime-cards'}}{{else}}{{_ 'has-spenttime-cards'}}{{/if}}")
- | ⏱️
- a.js-star-board(
- class="{{#if isStarred}}is-star-active{{else}}is-not-star-active{{/if}}"
- title="{{_ 'star-board-title'}}")
- | {{#if isStarred}}⭐{{else}}☆{{/if}}
- template(name="boardListHeaderBar")
- h1 {{_ title }}
- //.board-header-btns.right
- // a.board-header-btn.js-open-archived-board
- // i.fa.fa-archive
- // span {{_ 'archives'}}
- // a.board-header-btn(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
- // i.fa.fa-clone
- // span {{_ 'templates'}}
- // Recursive template for workspaces tree
- template(name="workspaceTree")
- if nodes
- ul.workspace-tree.js-workspace-tree
- each nodes
- li.workspace-node(class="{{#if $eq id selectedWorkspaceId}}active{{/if}}" data-workspace-id="{{id}}" draggable="true")
- .workspace-node-content
- span.workspace-drag-handle ↕️
- a.js-select-workspace(data-id="{{id}}")
- span.workspace-icon
- if icon
- +viewer
- = icon
- else
- | 📁
- span.workspace-name= name
- a.js-edit-workspace(data-id="{{id}}" title="{{_ 'allboards.edit-workspace'}}") ✏️
- span.workspace-count {{workspaceCount id}}
- a.js-add-subworkspace(data-id="{{id}}" title="{{_ 'allboards.add-subworkspace'}}") +
- if children
- +workspaceTree(nodes=children selectedWorkspaceId=selectedWorkspaceId)
|