@@ -34,89 +34,98 @@ <h2>Project Kanban Board</h2>
3434 </ p-card >
3535
3636 < p-card class ="kanban-controls-card ">
37- < div class ="kanban-controls-grid ">
38- < section class ="kanban-control-block ">
39- < div class ="kanban-control-block__top ">
40- < span class ="kanban-control-block__heading " > Project Scope </ span >
41- < span class =" kanban-control-block__counter " > {{ selectedProjectIndex + 1 }} / {{ projects.length }} </ span >
37+ < div class ="kanban-controls-shell ">
38+ < div class ="kanban-controls-shell__header ">
39+ < div class ="kanban-controls-shell__title ">
40+ < i class ="pi pi-sliders-h " > </ i >
41+ < span > Filter Workspace </ span >
4242 </ div >
43+ </ div >
4344
44- < div class ="kanban-control-block__picker ">
45- < button pButton type ="button " icon ="pi pi-angle-left " class ="p-button-rounded p-button-text p-button-sm kanban-control-nav " [disabled] ="!canSelectPreviousProject || isLoadingProjects " (click) ="selectPreviousProject() "> </ button >
46-
47- < p-dropdown
48- inputId ="projectPicker "
49- [options] ="projects "
50- optionLabel ="name "
51- optionValue ="id "
52- [ngModel] ="selectedProjectId "
53- [filter] ="true "
54- filterBy ="name "
55- [showClear] ="false "
56- [appendTo] ="'body' "
57- [disabled] ="isLoadingProjects || projects.length === 0 "
58- placeholder ="Select project "
59- styleClass ="kanban-control-dropdown "
60- (onChange) ="onProjectSelected($event.value) ">
61- </ p-dropdown >
62-
63- < button pButton type ="button " icon ="pi pi-angle-right " class ="p-button-rounded p-button-text p-button-sm kanban-control-nav " [disabled] ="!canSelectNextProject || isLoadingProjects " (click) ="selectNextProject() "> </ button >
64- </ div >
65- </ section >
45+ < div class ="kanban-controls-grid ">
46+ < section class ="kanban-control-block ">
47+ < div class ="kanban-control-block__top ">
48+ < span class ="kanban-control-block__heading "> Project Scope</ span >
49+ < span class ="kanban-control-block__counter "> {{ selectedProjectIndex + 1 }} / {{ projects.length }}</ span >
50+ </ div >
6651
67- < section class ="kanban-control-block ">
68- < div class ="kanban-control-block__top ">
69- < span class ="kanban-control-block__heading "> Task Lens</ span >
70- < span class ="kanban-control-block__counter "> {{ selectedAssigneeFilterLabel }}</ span >
71- </ div >
52+ < div class ="kanban-control-block__picker ">
53+ < button pButton type ="button " icon ="pi pi-angle-left " class ="p-button-rounded p-button-text p-button-sm kanban-control-nav " [disabled] ="!canSelectPreviousProject || isLoadingProjects " (click) ="selectPreviousProject() "> </ button >
54+
55+ < p-dropdown
56+ inputId ="projectPicker "
57+ [options] ="projects "
58+ optionLabel ="name "
59+ optionValue ="id "
60+ [ngModel] ="selectedProjectId "
61+ [filter] ="true "
62+ filterBy ="name "
63+ [showClear] ="false "
64+ [appendTo] ="'body' "
65+ [disabled] ="isLoadingProjects || projects.length === 0 "
66+ placeholder ="Select project "
67+ styleClass ="kanban-control-dropdown "
68+ (onChange) ="onProjectSelected($event.value) ">
69+ </ p-dropdown >
70+
71+ < button pButton type ="button " icon ="pi pi-angle-right " class ="p-button-rounded p-button-text p-button-sm kanban-control-nav " [disabled] ="!canSelectNextProject || isLoadingProjects " (click) ="selectNextProject() "> </ button >
72+ </ div >
73+ </ section >
7274
73- < div class ="kanban-control-block__filter ">
74- < p-dropdown
75- *ngIf ="canManageAllTasks; else collaboratorLens "
76- inputId ="kanbanAssigneeFilter "
77- [options] ="managementAssigneeFilterOptions "
78- optionLabel ="label "
79- optionValue ="value "
80- [(ngModel)] ="selectedAssigneeFilter "
81- [filter] ="true "
82- filterBy ="label "
83- [showClear] ="false "
84- [appendTo] ="'body' "
85- styleClass ="kanban-control-dropdown "
86- (onChange) ="onAssigneeFilterChange($any($event).value) ">
87- </ p-dropdown >
88-
89- < ng-template #collaboratorLens >
90- < div class ="kanban-control-filter-inline ">
91- < div class ="kanban-control-filter-buttons ">
92- < button
93- *ngFor ="let option of collaboratorAssigneeFilterOptions "
94- pButton
95- type ="button "
96- class ="p-button-sm p-button-outlined kanban-control-filter-button "
97- [class.kanban-control-filter-button--active] ="selectedAssigneeFilter === option.value "
98- [label] ="option.label "
99- (click) ="onAssigneeFilterChange(option.value) ">
100- </ button >
101- </ div >
75+ < section class ="kanban-control-block ">
76+ < div class ="kanban-control-block__top ">
77+ < span class ="kanban-control-block__heading "> Task Lens</ span >
78+ < span class ="kanban-control-block__counter "> {{ selectedAssigneeFilterLabel }}</ span >
79+ </ div >
10280
103- < p-dropdown
104- inputId ="kanbanAssigneeFilterUser "
105- [options] ="collaboratorAssigneeDirectoryOptions "
106- optionLabel ="label "
107- optionValue ="value "
108- [ngModel] ="selectedAssigneeFilter "
109- [filter] ="true "
110- filterBy ="label "
111- [showClear] ="false "
112- [appendTo] ="'body' "
113- styleClass ="kanban-control-dropdown kanban-control-dropdown--user "
114- (onChange) ="onAssigneeFilterChange($any($event).value) ">
115- </ p-dropdown >
116- </ div >
117- </ ng-template >
118- </ div >
119- </ section >
81+ < div class ="kanban-control-block__filter ">
82+ < p-dropdown
83+ *ngIf ="canManageAllTasks; else collaboratorLens "
84+ inputId ="kanbanAssigneeFilter "
85+ [options] ="managementAssigneeFilterOptions "
86+ optionLabel ="label "
87+ optionValue ="value "
88+ [(ngModel)] ="selectedAssigneeFilter "
89+ [filter] ="true "
90+ filterBy ="label "
91+ [showClear] ="false "
92+ [appendTo] ="'body' "
93+ styleClass ="kanban-control-dropdown "
94+ (onChange) ="onAssigneeFilterChange($any($event).value) ">
95+ </ p-dropdown >
96+
97+ < ng-template #collaboratorLens >
98+ < div class ="kanban-control-filter-inline ">
99+ < div class ="kanban-control-filter-buttons ">
100+ < button
101+ *ngFor ="let option of collaboratorAssigneeFilterOptions "
102+ pButton
103+ type ="button "
104+ class ="p-button-sm p-button-outlined kanban-control-filter-button "
105+ [class.kanban-control-filter-button--active] ="selectedAssigneeFilter === option.value "
106+ [label] ="option.label "
107+ (click) ="onAssigneeFilterChange(option.value) ">
108+ </ button >
109+ </ div >
110+
111+ < p-dropdown
112+ inputId ="kanbanAssigneeFilterUser "
113+ [options] ="collaboratorAssigneeDirectoryOptions "
114+ optionLabel ="label "
115+ optionValue ="value "
116+ [ngModel] ="selectedAssigneeFilter "
117+ [filter] ="true "
118+ filterBy ="label "
119+ [showClear] ="false "
120+ [appendTo] ="'body' "
121+ styleClass ="kanban-control-dropdown kanban-control-dropdown--user "
122+ (onChange) ="onAssigneeFilterChange($any($event).value) ">
123+ </ p-dropdown >
124+ </ div >
125+ </ ng-template >
126+ </ div >
127+ </ section >
128+ </ div >
120129 </ div >
121130 </ p-card >
122131
0 commit comments