-
+
{{ title | translate }}
{{ subtitle | translate }}
diff --git a/lib/core/src/lib/templates/empty-content/empty-content.component.scss b/lib/core/src/lib/templates/empty-content/empty-content.component.scss
index 4b5a9753bc..b17f892210 100644
--- a/lib/core/src/lib/templates/empty-content/empty-content.component.scss
+++ b/lib/core/src/lib/templates/empty-content/empty-content.component.scss
@@ -11,6 +11,7 @@
font-size: var(--theme-display-3-font-size);
height: var(--theme-display-3-font-size);
width: var(--theme-display-3-font-size);
+ opacity: 0.6;
}
&__title {
@@ -30,8 +31,4 @@
white-space: normal;
text-align: center;
}
-
- .adf-icon {
- opacity: 0.6;
- }
}
diff --git a/lib/core/src/lib/templates/empty-content/empty-content.component.ts b/lib/core/src/lib/templates/empty-content/empty-content.component.ts
index caecb6649b..7f1f0f563a 100644
--- a/lib/core/src/lib/templates/empty-content/empty-content.component.ts
+++ b/lib/core/src/lib/templates/empty-content/empty-content.component.ts
@@ -17,11 +17,11 @@
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';
import { TranslatePipe } from '@ngx-translate/core';
-import { IconComponent } from '../../icon';
+import { IconModule } from '../../icon';
@Component({
selector: 'adf-empty-content',
- imports: [TranslatePipe, IconComponent],
+ imports: [TranslatePipe, IconModule],
templateUrl: './empty-content.component.html',
styleUrls: ['./empty-content.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
diff --git a/lib/core/src/lib/viewer/components/viewer.component.ts b/lib/core/src/lib/viewer/components/viewer.component.ts
index 6abf255186..f500e39415 100644
--- a/lib/core/src/lib/viewer/components/viewer.component.ts
+++ b/lib/core/src/lib/viewer/components/viewer.component.ts
@@ -55,7 +55,6 @@ import { ViewerSidebarComponent } from './viewer-sidebar.component';
import { ViewerToolbarComponent } from './viewer-toolbar.component';
import { ViewerToolbarActionsComponent } from './viewer-toolbar-actions.component';
import { ViewerToolbarCustomActionsComponent } from './viewer-toolbar-custom-actions.component';
-import { IconComponent } from '../../icon';
import { ThumbnailService } from '../../common';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../../icon/icon.module';
@@ -88,8 +87,7 @@ const DEFAULT_NON_PREVIEW_CONFIG = {
ViewerToolbarComponent,
ViewerSidebarComponent,
ViewerToolbarActionsComponent,
- ViewerToolbarCustomActionsComponent,
- IconComponent
+ ViewerToolbarCustomActionsComponent
],
providers: [ViewUtilService]
})
diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.html b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.html
index 4ffece95c1..05fb30aafc 100644
--- a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.html
@@ -8,13 +8,19 @@
{{ 'ADF_CLOUD_EDIT_PROCESS_FILTER.TITLE' | translate}}
-
diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.ts
index 9ba03bd775..e0660772a9 100644
--- a/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.ts
@@ -29,7 +29,7 @@ import {
ProcessFilterProperties,
ProcessSortFilterProperty
} from '../../models/process-filter-cloud.model';
-import { DateFnsUtils, IconComponent, IconModule, TranslationService, UserPreferencesService } from '@alfresco/adf-core';
+import { DateFnsUtils, IconModule, TranslationService, UserPreferencesService } from '@alfresco/adf-core';
import { ProcessFilterCloudService } from '../../services/process-filter-cloud.service';
import { ProcessFilterDialogCloudComponent } from '../process-filter-dialog/process-filter-dialog-cloud.component';
import { ProcessCloudService } from '../../../services/process-cloud.service';
@@ -80,7 +80,6 @@ interface ProcessFilterFormProps {
@Component({
selector: 'adf-cloud-edit-process-filter',
imports: [
- IconComponent,
MatProgressSpinnerModule,
TranslatePipe,
MatButtonModule,
diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.html b/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.html
index 4b50db6c0d..2db08e2d7a 100644
--- a/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.html
@@ -10,10 +10,7 @@
>
-
+
diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.spec.ts
index 7a02f9b073..7b0309ca6f 100644
--- a/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.spec.ts
@@ -27,6 +27,9 @@ import { mockProcessFilters } from '../../mock/process-filters-cloud.mock';
import { AppConfigService, AppConfigServiceMock } from '@alfresco/adf-core';
import { ProcessListCloudService } from '../../../process-list/services/process-list-cloud.service';
import { ApolloTestingModule } from 'apollo-angular/testing';
+import { HarnessLoader } from '@angular/cdk/testing';
+import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
+import { MatIconHarness } from '@angular/material/icon/testing';
const ProcessFilterCloudServiceMock = {
getProcessFilters: () => of(mockProcessFilters),
@@ -40,6 +43,7 @@ describe('ProcessFiltersCloudComponent', () => {
let fixture: ComponentFixture;
let getProcessFiltersSpy: jasmine.Spy;
let getProcessNotificationSubscriptionSpy: jasmine.Spy;
+ let loader: HarnessLoader;
const configureTestingModule = (searchApiMethod: 'GET' | 'POST') => {
TestBed.configureTestingModule({
@@ -58,6 +62,7 @@ describe('ProcessFiltersCloudComponent', () => {
]
});
fixture = TestBed.createComponent(ProcessFiltersCloudComponent);
+ loader = TestbedHarnessEnvironment.loader(fixture);
component = fixture.componentInstance;
component.searchApiMethod = searchApiMethod;
@@ -88,11 +93,11 @@ describe('ProcessFiltersCloudComponent', () => {
await fixture.whenStable();
expect(component.filters.length).toBe(3);
- const filters = fixture.nativeElement.querySelectorAll('.adf-icon');
- expect(filters.length).toBe(3);
- expect(filters[0].innerText).toContain('adjust');
- expect(filters[1].innerText).toContain('inbox');
- expect(filters[2].innerText).toContain('done');
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(3);
+ expect(await filterIcons[0].getName()).toContain('adjust');
+ expect(await filterIcons[1].getName()).toContain('inbox');
+ expect(await filterIcons[2].getName()).toContain('done');
});
it('should not attach icons for each filter if hasIcon is false', async () => {
@@ -103,8 +108,8 @@ describe('ProcessFiltersCloudComponent', () => {
fixture.detectChanges();
await fixture.whenStable();
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(0);
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(0);
});
it('should display the filters', async () => {
@@ -245,11 +250,11 @@ describe('ProcessFiltersCloudComponent', () => {
await fixture.whenStable();
expect(component.filters.length).toBe(3);
- const filters = fixture.nativeElement.querySelectorAll('.adf-icon');
- expect(filters.length).toBe(3);
- expect(filters[0].innerText).toContain('adjust');
- expect(filters[1].innerText).toContain('inbox');
- expect(filters[2].innerText).toContain('done');
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(3);
+ expect(await filterIcons[0].getName()).toContain('adjust');
+ expect(await filterIcons[1].getName()).toContain('inbox');
+ expect(await filterIcons[2].getName()).toContain('done');
});
it('should not attach icons for each filter if hasIcon is false', async () => {
@@ -260,8 +265,8 @@ describe('ProcessFiltersCloudComponent', () => {
fixture.detectChanges();
await fixture.whenStable();
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(0);
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(0);
});
it('should display the filters', async () => {
diff --git a/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.ts b/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.ts
index 47f0a6d794..4eda8cf60f 100644
--- a/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/process/process-filters/components/process-filters/process-filters-cloud.component.ts
@@ -19,7 +19,7 @@ import { Component, DestroyRef, EventEmitter, inject, Input, OnChanges, OnInit,
import { Observable } from 'rxjs';
import { ProcessFilterCloudService } from '../../services/process-filter-cloud.service';
import { ProcessFilterCloudModel } from '../../models/process-filter-cloud.model';
-import { AppConfigService, IconComponent, TranslationService } from '@alfresco/adf-core';
+import { AppConfigService, IconModule, TranslationService } from '@alfresco/adf-core';
import { FilterParamsModel } from '../../../../task/task-filters/models/filter-cloud.model';
import { debounceTime, tap } from 'rxjs/operators';
import { ProcessListCloudService } from '../../../process-list/services/process-list-cloud.service';
@@ -32,7 +32,7 @@ import { MatListModule } from '@angular/material/list';
@Component({
selector: 'adf-cloud-process-filters',
- imports: [TranslatePipe, IconComponent, NgIf, MatProgressSpinnerModule, NgForOf, MatListModule, AsyncPipe],
+ imports: [TranslatePipe, IconModule, NgIf, MatProgressSpinnerModule, NgForOf, MatListModule, AsyncPipe],
templateUrl: './process-filters-cloud.component.html',
styleUrls: ['./process-filters-cloud.component.scss'],
encapsulation: ViewEncapsulation.None
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.html
index be98245ff1..652e123cf5 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.html
@@ -8,13 +8,19 @@
{{ 'ADF_CLOUD_EDIT_TASK_FILTER.TITLE' | translate}}
-
-
+
+ @if (filterAction.icon.includes(':')) {
+
+ } @else {
+
+ }
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.ts
index 8efcc61a55..5c56353b60 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.ts
@@ -25,7 +25,7 @@ import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatButtonModule } from '@angular/material/button';
-import { IconComponent, IconModule } from '@alfresco/adf-core';
+import { IconModule } from '@alfresco/adf-core';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { ReactiveFormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
@@ -44,7 +44,6 @@ import { TaskAssignmentFilterCloudComponent } from '../../task-assignment-filter
TranslatePipe,
MatExpansionModule,
MatButtonModule,
- IconComponent,
MatProgressSpinnerModule,
ReactiveFormsModule,
MatFormFieldModule,
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.html
index d4fae0bec1..d943a91cac 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.html
@@ -8,13 +8,19 @@
{{ 'ADF_CLOUD_EDIT_TASK_FILTER.TITLE' | translate}}
-
-
+
+ @if (filterAction.icon.includes(':')) {
+
+ } @else {
+
+ }
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.ts
index 11c1bf6083..ec3b359a29 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.ts
@@ -28,7 +28,7 @@ import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatButtonModule } from '@angular/material/button';
-import { IconComponent, IconModule } from '@alfresco/adf-core';
+import { IconModule } from '@alfresco/adf-core';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatFormFieldModule } from '@angular/material/form-field';
import { ReactiveFormsModule } from '@angular/forms';
@@ -47,7 +47,6 @@ import { TaskAssignmentFilterCloudComponent } from '../../task-assignment-filter
TranslatePipe,
MatExpansionModule,
MatButtonModule,
- IconComponent,
MatProgressSpinnerModule,
MatFormFieldModule,
ReactiveFormsModule,
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.html
index 48e2a7d9f8..c3b2b43c44 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.html
@@ -6,21 +6,21 @@
[attr.aria-label]="filter.name | translate"
[id]="filter.id"
[attr.data-automation-id]="filter.key + '_filter'"
- [class.adf-active]="currentFilter === filter">
+ [class.adf-active]="currentFilter === filter"
+ >
-
+
{{ filter.name | translate }}
-
+ [class.adf-active]="wasFilterUpdated(filter.key)"
+ >
{{ counters[filter.key] }}
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.spec.ts
index 02d356b1de..bc5669e951 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.spec.ts
@@ -25,6 +25,9 @@ import { fakeGlobalServiceFilters } from '../../mock/task-filters-cloud.mock';
import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service';
import { ServiceTaskFiltersCloudComponent } from './service-task-filters-cloud.component';
import { NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
+import { HarnessLoader } from '@angular/cdk/testing';
+import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
+import { MatIconHarness } from '@angular/material/icon/testing';
describe('ServiceTaskFiltersCloudComponent', () => {
let serviceTaskFilterCloudService: ServiceTaskFilterCloudService;
@@ -32,6 +35,7 @@ describe('ServiceTaskFiltersCloudComponent', () => {
let component: ServiceTaskFiltersCloudComponent;
let fixture: ComponentFixture;
+ let loader: HarnessLoader;
beforeEach(() => {
TestBed.configureTestingModule({
@@ -39,6 +43,7 @@ describe('ServiceTaskFiltersCloudComponent', () => {
providers: [{ provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }]
});
fixture = TestBed.createComponent(ServiceTaskFiltersCloudComponent);
+ loader = TestbedHarnessEnvironment.loader(fixture);
component = fixture.componentInstance;
serviceTaskFilterCloudService = TestBed.inject(ServiceTaskFilterCloudService);
@@ -64,11 +69,11 @@ describe('ServiceTaskFiltersCloudComponent', () => {
expect(component.filters.length).toBe(3);
- const filters = fixture.nativeElement.querySelectorAll('.adf-icon');
- expect(filters.length).toBe(3);
- expect(filters[0].innerText).toContain('adjust');
- expect(filters[1].innerText).toContain('done');
- expect(filters[2].innerText).toContain('inbox');
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(3);
+ expect(await filterIcons[0].getName()).toContain('adjust');
+ expect(await filterIcons[1].getName()).toContain('done');
+ expect(await filterIcons[2].getName()).toContain('inbox');
});
it('should not attach icons for each filter if hasIcon is false', async () => {
@@ -79,8 +84,8 @@ describe('ServiceTaskFiltersCloudComponent', () => {
fixture.detectChanges();
await fixture.whenStable();
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(0);
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(0);
});
it('should display the filters', async () => {
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.ts
index dd847f84dc..7e71a3656e 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.ts
@@ -20,7 +20,7 @@ import { Observable } from 'rxjs';
import { FilterParamsModel, ServiceTaskFilterCloudModel } from '../../models/filter-cloud.model';
import { BaseTaskFiltersCloudComponent } from '../base-task-filters-cloud.component';
import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service';
-import { IconComponent, TranslationService } from '@alfresco/adf-core';
+import { IconModule, TranslationService } from '@alfresco/adf-core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core';
@@ -29,7 +29,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
@Component({
selector: 'adf-cloud-service-task-filters',
- imports: [CommonModule, TranslatePipe, MatListModule, IconComponent, MatProgressSpinnerModule],
+ imports: [CommonModule, TranslatePipe, MatListModule, IconModule, MatProgressSpinnerModule],
templateUrl: './service-task-filters-cloud.component.html',
styleUrls: ['./service-task-filters-cloud.component.scss'],
encapsulation: ViewEncapsulation.None
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.html
index 48e2a7d9f8..c3b2b43c44 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.html
@@ -6,21 +6,21 @@
[attr.aria-label]="filter.name | translate"
[id]="filter.id"
[attr.data-automation-id]="filter.key + '_filter'"
- [class.adf-active]="currentFilter === filter">
+ [class.adf-active]="currentFilter === filter"
+ >
-
+
{{ filter.name | translate }}
-
+ [class.adf-active]="wasFilterUpdated(filter.key)"
+ >
{{ counters[filter.key] }}
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.spec.ts
index a56615117d..f5a831f713 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.spec.ts
@@ -32,6 +32,7 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { TaskFilterCloudAdapter } from '../../../../models/filter-cloud-model';
import { ApolloTestingModule } from 'apollo-angular/testing';
import { TaskFilterCloudModel } from '../../models/filter-cloud.model';
+import { MatIconHarness } from '@angular/material/icon/testing';
describe('TaskFiltersCloudComponent', () => {
let loader: HarnessLoader;
@@ -89,11 +90,11 @@ describe('TaskFiltersCloudComponent', () => {
expect(component.filters.length).toBe(3);
- const filters = fixture.nativeElement.querySelectorAll('.adf-icon');
- expect(filters.length).toBe(3);
- expect(filters[0].innerText).toContain('adjust');
- expect(filters[1].innerText).toContain('done');
- expect(filters[2].innerText).toContain('inbox');
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(3);
+ expect(await filterIcons[0].getName()).toContain('adjust');
+ expect(await filterIcons[1].getName()).toContain('done');
+ expect(await filterIcons[2].getName()).toContain('inbox');
});
it('should not attach icons for each filter if hasIcon is false', async () => {
@@ -104,8 +105,8 @@ describe('TaskFiltersCloudComponent', () => {
fixture.detectChanges();
await fixture.whenStable();
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(0);
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(0);
});
it('should display the filters', async () => {
@@ -251,25 +252,24 @@ describe('TaskFiltersCloudComponent', () => {
component.appName = 'my-app-1';
});
- it('should attach specific icon for each filter if hasIcon is true', () => {
+ it('should attach specific icon for each filter if hasIcon is true', async () => {
fixture.detectChanges();
- const filters = fixture.nativeElement.querySelectorAll('.adf-icon');
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
expect(component.filters.length).toBe(3);
- expect(filters.length).toBe(3);
- expect(filters[0].innerText).toContain('adjust');
- expect(filters[1].innerText).toContain('done');
- expect(filters[2].innerText).toContain('inbox');
+ expect(filterIcons.length).toBe(3);
+ expect(await filterIcons[0].getName()).toContain('adjust');
+ expect(await filterIcons[1].getName()).toContain('done');
+ expect(await filterIcons[2].getName()).toContain('inbox');
});
- it('should not attach icons for each filter if showIcons is false', () => {
+ it('should not attach icons for each filter if showIcons is false', async () => {
component.showIcons = false;
fixture.detectChanges();
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
-
- expect(filters.length).toBe(0);
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(0);
});
it('should display the filters', () => {
diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.ts
index 0062a258f1..0a78610203 100644
--- a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters/task-filters-cloud.component.ts
@@ -19,7 +19,7 @@ import { Component, EventEmitter, inject, Input, OnChanges, OnInit, Output, Simp
import { Observable } from 'rxjs';
import { TaskFilterCloudService } from '../../services/task-filter-cloud.service';
import { FilterParamsModel, TaskFilterCloudModel } from '../../models/filter-cloud.model';
-import { AppConfigService, IconComponent, TranslationService } from '@alfresco/adf-core';
+import { AppConfigService, IconModule, TranslationService } from '@alfresco/adf-core';
import { debounceTime, tap } from 'rxjs/operators';
import { BaseTaskFiltersCloudComponent } from '../base-task-filters-cloud.component';
import { TaskDetailsCloudModel } from '../../../models/task-details-cloud.model';
@@ -34,7 +34,7 @@ import { MatListModule } from '@angular/material/list';
@Component({
selector: 'adf-cloud-task-filters',
- imports: [CommonModule, MatProgressSpinnerModule, TranslatePipe, IconComponent, MatListModule],
+ imports: [CommonModule, MatProgressSpinnerModule, TranslatePipe, IconModule, MatListModule],
templateUrl: './task-filters-cloud.component.html',
styleUrls: ['./task-filters-cloud.component.scss'],
encapsulation: ViewEncapsulation.None
diff --git a/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.html b/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.html
index 06f85f2de2..1748e0b300 100644
--- a/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.html
+++ b/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.html
@@ -5,8 +5,9 @@
[id]="filter.id"
[attr.data-automation-id]="filter.name + '_filter'"
mat-button
- class="adf-filter-action-button adf-full-width">
-
+ class="adf-filter-action-button adf-full-width"
+ >
+ {{ getFilterIcon(filter.icon) }}
{{ filter.name | translate }}
diff --git a/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.spec.ts b/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.spec.ts
index 80106c4979..e0d4706dc6 100644
--- a/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.spec.ts
+++ b/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.spec.ts
@@ -21,10 +21,12 @@ import { AppsProcessService } from '../../../services/apps-process.service';
import { ProcessFilterService } from '../../services/process-filter.service';
import { ProcessFiltersComponent } from './process-filters.component';
import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { By } from '@angular/platform-browser';
import { NavigationStart, Router } from '@angular/router';
import { ProcessInstanceFilterRepresentation, UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { AlfrescoApiService, AlfrescoApiServiceMock } from '@alfresco/adf-content-services';
+import { HarnessLoader } from '@angular/cdk/testing';
+import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
+import { MatIconHarness } from '@angular/material/icon/testing';
const fakeProcessFilters: UserProcessInstanceFilterRepresentation[] = [
{
@@ -55,6 +57,7 @@ describe('ProcessFiltersComponent', () => {
let router: Router;
let getProcessFiltersSpy: jasmine.Spy;
let getDeployedApplicationsByNameSpy: jasmine.Spy;
+ let loader: HarnessLoader;
beforeEach(() => {
TestBed.configureTestingModule({
@@ -73,6 +76,7 @@ describe('ProcessFiltersComponent', () => {
router = TestBed.inject(Router);
fixture = TestBed.createComponent(ProcessFiltersComponent);
+ loader = TestbedHarnessEnvironment.loader(fixture);
filterList = fixture.componentInstance;
});
@@ -278,11 +282,11 @@ describe('ProcessFiltersComponent', () => {
fixture.detectChanges();
await fixture.whenStable();
expect(filterList.filters.length).toBe(3);
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(3);
- expect(filters[0].nativeElement.innerText).toContain('dashboard');
- expect(filters[1].nativeElement.innerText).toContain('shuffle');
- expect(filters[2].nativeElement.innerText).toContain('check_circle');
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(3);
+ expect(await filterIcons[0].getName()).toContain('dashboard');
+ expect(await filterIcons[1].getName()).toContain('shuffle');
+ expect(await filterIcons[2].getName()).toContain('check_circle');
});
it('should not attach icons for each filter if hasIcon is false', async () => {
@@ -291,8 +295,8 @@ describe('ProcessFiltersComponent', () => {
filterList.ngOnChanges({ appId: change });
fixture.detectChanges();
await fixture.whenStable();
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(0);
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(0);
});
it('should set isProcessActive to true when activeRoute includes "processes"', () => {
diff --git a/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.ts b/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.ts
index 739bc80eb0..114ec32fea 100644
--- a/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.ts
+++ b/lib/process-services/src/lib/process-list/components/process-filters/process-filters.component.ts
@@ -25,12 +25,12 @@ import { filter } from 'rxjs/operators';
import { CommonModule, Location } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
-import { IconComponent } from '@alfresco/adf-core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
+import { MatIconModule } from '@angular/material/icon';
@Component({
selector: 'adf-process-instance-filters',
- imports: [CommonModule, TranslatePipe, MatButtonModule, IconComponent],
+ imports: [CommonModule, TranslatePipe, MatButtonModule, MatIconModule],
templateUrl: './process-filters.component.html',
styleUrls: ['./process-filters.component.scss'],
encapsulation: ViewEncapsulation.None
diff --git a/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.html b/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.html
index c249fdcd8a..95722a0892 100644
--- a/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.html
+++ b/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.html
@@ -5,9 +5,10 @@
[id]="filter.id"
[attr.data-automation-id]="filter.name + '_filter'"
mat-button
- class="adf-filter-action-button adf-full-width">
+ class="adf-filter-action-button adf-full-width"
+ >
-
+ {{ getFilterIcon(filter.icon) }}
{{ filter.name | translate }}
diff --git a/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.spec.ts b/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.spec.ts
index 3e63d9727e..aa7e117488 100644
--- a/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.spec.ts
+++ b/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.spec.ts
@@ -23,9 +23,11 @@ import { of, throwError } from 'rxjs';
import { TaskListService } from '../../services/tasklist.service';
import { TaskFilterService } from '../../services/task-filter.service';
import { TaskFiltersComponent } from './task-filters.component';
-import { By } from '@angular/platform-browser';
import { NavigationStart, provideRouter, Router } from '@angular/router';
import { UserTaskFilterRepresentation } from '@alfresco/js-api';
+import { HarnessLoader } from '@angular/cdk/testing';
+import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
+import { MatIconHarness } from '@angular/material/icon/testing';
const fakeTaskFilters = [
new UserTaskFilterRepresentation({
@@ -55,6 +57,7 @@ describe('TaskFiltersComponent', () => {
let component: TaskFiltersComponent;
let fixture: ComponentFixture
;
let router: Router;
+ let loader: HarnessLoader;
beforeEach(() => {
TestBed.configureTestingModule({
@@ -65,6 +68,7 @@ describe('TaskFiltersComponent', () => {
appConfig.config.bpmHost = 'http://localhost:9876/bpm';
fixture = TestBed.createComponent(TaskFiltersComponent);
+ loader = TestbedHarnessEnvironment.loader(fixture);
component = fixture.componentInstance;
taskListService = TestBed.inject(TaskListService);
@@ -341,11 +345,11 @@ describe('TaskFiltersComponent', () => {
await fixture.whenStable();
expect(component.filters.length).toBe(3);
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(3);
- expect(filters[0].nativeElement.innerText).toContain('format_align_left');
- expect(filters[1].nativeElement.innerText).toContain('check_circle');
- expect(filters[2].nativeElement.innerText).toContain('inbox');
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(3);
+ expect(await filterIcons[0].getName()).toContain('format_align_left');
+ expect(await filterIcons[1].getName()).toContain('check_circle');
+ expect(await filterIcons[2].getName()).toContain('inbox');
});
it('should not attach icons for each filter if showIcon is false', async () => {
@@ -356,8 +360,8 @@ describe('TaskFiltersComponent', () => {
fixture.detectChanges();
await fixture.whenStable();
- const filters: any = fixture.debugElement.queryAll(By.css('.adf-icon'));
- expect(filters.length).toBe(0);
+ const filterIcons = await loader.getAllHarnesses(MatIconHarness.with({ selector: '[data-automation-id="adf-filter-icon"]' }));
+ expect(filterIcons.length).toBe(0);
});
it('should reset selection when filterParam is a filter that does not exist', async () => {
diff --git a/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.ts b/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.ts
index 60f907d6ad..4c6635299f 100644
--- a/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.ts
+++ b/lib/process-services/src/lib/task-list/components/task-filters/task-filters.component.ts
@@ -26,13 +26,13 @@ import { UserTaskFilterRepresentation } from '@alfresco/js-api';
import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
-import { IconComponent } from '@alfresco/adf-core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { forkJoin, Observable } from 'rxjs';
+import { MatIconModule } from '@angular/material/icon';
@Component({
selector: 'adf-task-filters',
- imports: [CommonModule, TranslatePipe, MatButtonModule, IconComponent],
+ imports: [CommonModule, TranslatePipe, MatButtonModule, MatIconModule],
templateUrl: './task-filters.component.html',
styleUrls: ['./task-filters.component.scss'],
encapsulation: ViewEncapsulation.None