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 span.emoji-icon i.fa.fa-star | {{_ '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 span.emoji-icon i.fa.fa-clipboard | {{_ '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 span.emoji-icon i.fa.fa-folder | {{_ 'allboards.remaining'}} span.menu-count {{menuItemCount 'remaining'}} .workspaces-header span span.emoji-icon i.fa.fa-folder-open | {{_ '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.emoji-icon i.fa.fa-search input#filterBtn(type="button" value="{{_ 'filter'}}") button#resetBtn.filter-reset-btn span.reset-icon span.emoji-icon i.fa.fa-times-thin span {{_ 'filter-clear'}} // Right boards grid .boards-right-grid .boards-path-header .path-bottom .path-left span.path-icon.emoji-icon {{currentMenuPath.icon}} span.path-text {{currentMenuPath.text}} .path-right unless isMiniScreen +headerMultiSelection if canModifyBoards a.board-header-btn.js-multiselection-activate( title="{{#if BoardMultiSelection.isActive}}{{_ 'multi-selection-on'}}{{else}}{{_ 'multi-selection'}}{{/if}}" class="{{#if BoardMultiSelection.isActive}}emphasis{{/if}}") span.emoji-icon i.fa.fa-check-square-o if BoardMultiSelection.isActive a.board-header-btn-close.js-multiselection-reset(title="{{_ 'filter-clear'}}") span.emoji-icon i.fa.fa-times 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'}}") span.emoji-icon i.fa.fa-plus | {{_ 'add-template-container'}} else a.board-list-item.label(title="{{_ 'add-board'}}") span.emoji-icon i.fa.fa-plus | {{_ '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 .board-card-header span.js-star-board( class="{{#if isStarred}}is-star-active{{else}}is-not-star-active{{/if}}" title="{{_ 'star-board-title'}}") span.emoji-icon i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") .board-card-body span.details span.board-list-item-name= title p.board-list-item-desc {{_ 'just-invited'}} button.js-accept-invite.primary {{_ 'accept'}} button.js-decline-invite {{_ 'decline'}} .board-card-footer .materialCheckBox.multi-selection-checkbox.js-toggle-board-multi-selection( class="{{#if BoardMultiSelection.isActive }}active{{/if}} {{#if BoardMultiSelection.isSelected _id}}is-checked{{/if}}") else if $eq type "template-container" a.js-open-board(href="{{pathFor 'board' id=_id slug=slug}}") .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.details span.board-list-item-name(title="{{_ 'template-container'}}") +viewer = title //- #FIXME: is this obsolete ? //- 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.emoji-icon i.fa.fa-clock-o span.js-star-board( class="{{#if isStarred}}is-star-active{{else}}is-not-star-active{{/if}}" title="{{_ 'star-board-title'}}") span.emoji-icon i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") else a.js-open-board(href="{{pathFor 'board' id=_id slug=slug}}") .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="{{_ 'board-drag-drop-reorder-or-click-open'}}") +viewer = title //- p.board-list-item-desc //- +viewer //- = description 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 each list in boardLists _id .item | {{ list }} 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.emoji-icon i.fa.fa-clock-o a.js-star-board( class="{{#if isStarred}}is-star-active{{else}}is-not-star-active{{/if}}" title="{{_ 'star-board-title'}}") span.emoji-icon i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") template(name="boardListHeaderBar") h1 {{_ title }} // 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 span.emoji-icon i.fa.fa-arrows a.js-select-workspace(data-id="{{id}}") span.workspace-icon if icon +viewer = icon else span.emoji-icon i.fa.fa-folder span.workspace-name= name a.js-edit-workspace(data-id="{{id}}" title="{{_ 'allboards.edit-workspace'}}") span.emoji-icon i.fa.fa-pencil-square-o span.workspace-count {{workspaceCount id}} a.js-add-subworkspace(data-id="{{id}}" title="{{_ 'allboards.add-subworkspace'}}") + if children +workspaceTree(nodes=children selectedWorkspaceId=selectedWorkspaceId) template(name="headerMultiSelection") if BoardMultiSelection.isActive if canModifyBoards if hasBoardsSelected button.negate.js-archive-selected-boards.board-header-btn span.emoji-icon i.fa.fa-archive span {{_ 'archive-board'}} button.negate.js-duplicate-selected-boards.board-header-btn span.emoji-icon i.fa.fa-clipboard span {{_ 'duplicate-board'}}