migrate cloud components

This commit is contained in:
Denys Vuika
2024-09-20 13:11:19 -04:00
parent 0012b5fb5a
commit 96e14c88da
18 changed files with 144 additions and 99 deletions

View File

@@ -48,11 +48,11 @@ import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { FilePropertiesTableCloudComponent } from './file-properties-table-cloud.component'; import { FilePropertiesTableCloudComponent } from './file-properties-table-cloud.component';
export const RETRIEVE_METADATA_OPTION = 'retrieveMetadata'; const RETRIEVE_METADATA_OPTION = 'retrieveMetadata';
export const ALIAS_ROOT_FOLDER = '-root-'; const ALIAS_ROOT_FOLDER = '-root-';
export const ALIAS_USER_FOLDER = '-my-'; const ALIAS_USER_FOLDER = '-my-';
export const APP_NAME = '-appname-'; const APP_NAME = '-appname-';
export const VALID_ALIAS = [ALIAS_ROOT_FOLDER, ALIAS_USER_FOLDER, '-shared-']; const VALID_ALIAS = [ALIAS_ROOT_FOLDER, ALIAS_USER_FOLDER, '-shared-'];
@Component({ @Component({
selector: 'adf-cloud-attach-file-cloud-widget', selector: 'adf-cloud-attach-file-cloud-widget',

View File

@@ -30,7 +30,7 @@ import { MatTableModule } from '@angular/material/table';
import { MatLineModule } from '@angular/material/core'; import { MatLineModule } from '@angular/material/core';
import { MatListModule } from '@angular/material/list'; import { MatListModule } from '@angular/material/list';
export const RETRIEVE_METADATA_OPTION = 'retrieveMetadata'; const RETRIEVE_METADATA_OPTION = 'retrieveMetadata';
@Component({ @Component({
selector: 'adf-cloud-file-properties-table', selector: 'adf-cloud-file-properties-table',

View File

@@ -17,18 +17,20 @@
export * from './models/task-variable-cloud.model'; export * from './models/task-variable-cloud.model';
export * from './components/spinner/form-spinner.component';
export * from './components/form-cloud-custom-outcomes.component'; export * from './components/form-cloud-custom-outcomes.component';
export * from './components/form-cloud.component'; export * from './components/form-cloud.component';
export * from './components/form-definition-selector-cloud.component'; export * from './components/form-definition-selector-cloud.component';
export * from './components/cloud-form-rendering.service'; export * from './components/cloud-form-rendering.service';
export * from './components/widgets/attach-file/attach-file-cloud-widget.component'; export * from './components/widgets/attach-file/attach-file-cloud-widget.component';
export * from './components/widgets/attach-file/file-properties-table-cloud.component';
export * from './components/widgets/attach-file/upload-cloud.widget'; export * from './components/widgets/attach-file/upload-cloud.widget';
export * from './components/widgets/date/date-cloud.widget'; export * from './components/widgets/date/date-cloud.widget';
export * from './components/widgets/dropdown/dropdown-cloud.widget'; export * from './components/widgets/dropdown/dropdown-cloud.widget';
export * from './components/widgets/group/group-cloud.widget'; export * from './components/widgets/group/group-cloud.widget';
export * from './components/widgets/people/people-cloud.widget'; export * from './components/widgets/people/people-cloud.widget';
export * from './components/widgets/properties-viewer/properties-viewer.widget'; export * from './components/widgets/properties-viewer/properties-viewer.widget';
export * from './components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component';
export * from './components/widgets/file-viewer/file-viewer.widget'; export * from './components/widgets/file-viewer/file-viewer.widget';
export * from './components/widgets/display-rich-text/display-rich-text.widget'; export * from './components/widgets/display-rich-text/display-rich-text.widget';

View File

@@ -22,7 +22,6 @@ import { MatCardModule } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatChipsModule } from '@angular/material/chips'; import { MatChipsModule } from '@angular/material/chips';
import { MatNativeDateModule, MatRippleModule, MatOptionModule } from '@angular/material/core'; import { MatNativeDateModule, MatRippleModule, MatOptionModule } from '@angular/material/core';
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
import { MatDatepickerModule } from '@angular/material/datepicker'; import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatDialogModule } from '@angular/material/dialog'; import { MatDialogModule } from '@angular/material/dialog';
import { MatExpansionModule } from '@angular/material/expansion'; import { MatExpansionModule } from '@angular/material/expansion';
@@ -38,8 +37,8 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatTableModule } from '@angular/material/table'; import { MatTableModule } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs'; import { MatTabsModule } from '@angular/material/tabs';
/** @deprecated this module should not be used */
@NgModule({ @NgModule({
providers: [{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { floatLabel: 'never' } }],
imports: [ imports: [
MatAutocompleteModule, MatAutocompleteModule,
MatButtonModule, MatButtonModule,

View File

@@ -42,6 +42,7 @@ import { IdentityGroupService } from './group/services/identity-group.service';
import { IDENTITY_USER_SERVICE_TOKEN } from './people/services/identity-user-service.token'; import { IDENTITY_USER_SERVICE_TOKEN } from './people/services/identity-user-service.token';
import { IdentityUserService } from './people/services/identity-user.service'; import { IdentityUserService } from './people/services/identity-user.service';
import { TaskListCloudService } from './task/task-list/services/task-list-cloud.service'; import { TaskListCloudService } from './task/task-list/services/task-list-cloud.service';
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -57,7 +58,11 @@ import { TaskListCloudService } from './task/task-list/services/task-list-cloud.
ApolloModule, ApolloModule,
RichTextEditorComponent RichTextEditorComponent
], ],
providers: [provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud'), ProcessNameCloudPipe], providers: [
provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud'),
ProcessNameCloudPipe,
{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { floatLabel: 'never' } }
],
exports: [ exports: [
...APP_LIST_CLOUD_DIRECTIVES, ...APP_LIST_CLOUD_DIRECTIVES,
...PROCESS_CLOUD_DIRECTIVES, ...PROCESS_CLOUD_DIRECTIVES,

View File

@@ -41,13 +41,13 @@ import { ProcessServiceCloudTestingModule } from '../../../testing/process-servi
import { ProcessNameCloudPipe } from '../../../pipes/process-name-cloud.pipe'; import { ProcessNameCloudPipe } from '../../../pipes/process-name-cloud.pipe';
import { ProcessInstanceCloud } from '../models/process-instance-cloud.model'; import { ProcessInstanceCloud } from '../models/process-instance-cloud.model';
import { ESCAPE } from '@angular/cdk/keycodes'; import { ESCAPE } from '@angular/cdk/keycodes';
import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
import { TaskVariableCloud } from '../../../form/models/task-variable-cloud.model';
import { first } from 'rxjs/operators'; import { first } from 'rxjs/operators';
import { HarnessLoader } from '@angular/cdk/testing'; import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatAutocompleteHarness } from '@angular/material/autocomplete/testing'; import { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';
import { MatButtonHarness } from '@angular/material/button/testing'; import { MatButtonHarness } from '@angular/material/button/testing';
import { TaskVariableCloud } from '../../../form/models/task-variable-cloud.model';
import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
describe('StartProcessCloudComponent', () => { describe('StartProcessCloudComponent', () => {
let loader: HarnessLoader; let loader: HarnessLoader;

View File

@@ -16,7 +16,7 @@
*/ */
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { TaskFiltersCloudModule } from './task-filters/task-filters-cloud.module'; import { TASK_FILTERS_CLOUD_DIRECTIVES } from './task-filters/task-filters-cloud.module';
import { TaskFormCloudComponent } from './task-form/components/task-form-cloud.component'; import { TaskFormCloudComponent } from './task-form/components/task-form-cloud.component';
import { StartTaskCloudComponent } from './start-task/components/start-task-cloud.component'; import { StartTaskCloudComponent } from './start-task/components/start-task-cloud.component';
import { TaskHeaderCloudComponent } from './task-header/components/task-header-cloud.component'; import { TaskHeaderCloudComponent } from './task-header/components/task-header-cloud.component';
@@ -29,7 +29,7 @@ import { ServiceTaskListCloudComponent } from './task-list/components/service-ta
export const TASK_CLOUD_DIRECTIVES = [ export const TASK_CLOUD_DIRECTIVES = [
TaskListCloudComponent, TaskListCloudComponent,
ServiceTaskListCloudComponent, ServiceTaskListCloudComponent,
TaskFiltersCloudModule, ...TASK_FILTERS_CLOUD_DIRECTIVES,
StartTaskCloudComponent, StartTaskCloudComponent,
TaskHeaderCloudComponent, TaskHeaderCloudComponent,
TaskFormCloudComponent, TaskFormCloudComponent,

View File

@@ -24,12 +24,10 @@ import { LocalPreferenceCloudService } from '../../../../services/local-preferen
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module'; import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { AppsProcessCloudService } from '../../../../app/services/apps-process-cloud.service'; import { AppsProcessCloudService } from '../../../../app/services/apps-process-cloud.service';
import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from '../../../../app/mock/app-model.mock'; import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from '../../../../app/mock/app-model.mock';
import { TaskFiltersCloudModule } from '../../task-filters-cloud.module';
import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service'; import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service';
import { TaskCloudService } from '../../../services/task-cloud.service'; import { TaskCloudService } from '../../../services/task-cloud.service';
import { fakeServiceFilter } from '../../mock/task-filters-cloud.mock'; import { fakeServiceFilter } from '../../mock/task-filters-cloud.mock';
import { EditServiceTaskFilterCloudComponent } from './edit-service-task-filter-cloud.component'; import { EditServiceTaskFilterCloudComponent } from './edit-service-task-filter-cloud.component';
import { MatIconTestingModule } from '@angular/material/icon/testing';
import { ProcessDefinitionCloud } from '../../../../models/process-definition-cloud.model'; import { ProcessDefinitionCloud } from '../../../../models/process-definition-cloud.model';
import { TaskFilterDialogCloudComponent } from '../task-filter-dialog/task-filter-dialog-cloud.component'; import { TaskFilterDialogCloudComponent } from '../task-filter-dialog/task-filter-dialog-cloud.component';
import { fakeEnvironmentList } from '../../../../common/mock/environment.mock'; import { fakeEnvironmentList } from '../../../../common/mock/environment.mock';
@@ -54,7 +52,7 @@ describe('EditServiceTaskFilterCloudComponent', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TaskFiltersCloudModule, MatIconTestingModule], imports: [ProcessServiceCloudTestingModule, EditServiceTaskFilterCloudComponent],
providers: [MatDialog, { provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }] providers: [MatDialog, { provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }]
}); });
fixture = TestBed.createComponent(EditServiceTaskFilterCloudComponent); fixture = TestBed.createComponent(EditServiceTaskFilterCloudComponent);

View File

@@ -21,9 +21,44 @@ import { Observable } from 'rxjs';
import { TaskFilterProperties, TaskFilterAction, ServiceTaskFilterCloudModel } from '../../models/filter-cloud.model'; import { TaskFilterProperties, TaskFilterAction, ServiceTaskFilterCloudModel } from '../../models/filter-cloud.model';
import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service'; import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service';
import { BaseEditTaskFilterCloudComponent, DropdownOption } from './base-edit-task-filter-cloud.component'; import { BaseEditTaskFilterCloudComponent, DropdownOption } from './base-edit-task-filter-cloud.component';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { IconComponent } from '@alfresco/adf-core';
import { MatButtonModule } from '@angular/material/button';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { ReactiveFormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
import { MatInputModule } from '@angular/material/input';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatIconModule } from '@angular/material/icon';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { DateRangeFilterComponent } from '../../../../common/date-range-filter/date-range-filter.component';
import { PeopleCloudComponent } from '../../../../people/components/people-cloud.component';
import { TaskAssignmentFilterCloudComponent } from '../task-assignment-filter/task-assignment-filter.component';
import { MatExpansionModule } from '@angular/material/expansion';
@Component({ @Component({
selector: 'adf-cloud-edit-service-task-filter', selector: 'adf-cloud-edit-service-task-filter',
standalone: true,
imports: [
CommonModule,
TranslateModule,
IconComponent,
MatButtonModule,
MatProgressSpinnerModule,
ReactiveFormsModule,
MatFormFieldModule,
MatSelectModule,
MatInputModule,
MatDatepickerModule,
MatIconModule,
MatCheckboxModule,
DateRangeFilterComponent,
PeopleCloudComponent,
TaskAssignmentFilterCloudComponent,
MatExpansionModule
],
templateUrl: './base-edit-task-filter-cloud.component.html', templateUrl: './base-edit-task-filter-cloud.component.html',
styleUrls: ['./base-edit-task-filter-cloud.component.scss'], styleUrls: ['./base-edit-task-filter-cloud.component.scss'],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
@@ -62,9 +97,7 @@ export class EditServiceTaskFilterCloudComponent extends BaseEditTaskFilterCloud
} }
protected addFilter(filterToAdd: ServiceTaskFilterCloudModel): Observable<any> { protected addFilter(filterToAdd: ServiceTaskFilterCloudModel): Observable<any> {
return this.serviceTaskFilterCloudService return this.serviceTaskFilterCloudService.addFilter(filterToAdd).pipe(takeUntil(this.onDestroy$));
.addFilter(filterToAdd)
.pipe(takeUntil(this.onDestroy$));
} }
isDisabledForDefaultFilters(action: TaskFilterAction): boolean { isDisabledForDefaultFilters(action: TaskFilterAction): boolean {

View File

@@ -25,7 +25,6 @@ import { LocalPreferenceCloudService } from '../../../../services/local-preferen
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module'; import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { AppsProcessCloudService } from '../../../../app/services/apps-process-cloud.service'; import { AppsProcessCloudService } from '../../../../app/services/apps-process-cloud.service';
import { fakeApplicationInstance } from '../../../../app/mock/app-model.mock'; import { fakeApplicationInstance } from '../../../../app/mock/app-model.mock';
import { TaskFiltersCloudModule } from '../../task-filters-cloud.module';
import { EditTaskFilterCloudComponent } from './edit-task-filter-cloud.component'; import { EditTaskFilterCloudComponent } from './edit-task-filter-cloud.component';
import { TaskFilterCloudService } from '../../services/task-filter-cloud.service'; import { TaskFilterCloudService } from '../../services/task-filter-cloud.service';
import { TaskCloudService } from '../../../services/task-cloud.service'; import { TaskCloudService } from '../../../services/task-cloud.service';
@@ -55,7 +54,6 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing'; import { MatSelectHarness } from '@angular/material/select/testing';
import { MatExpansionPanelHarness } from '@angular/material/expansion/testing'; import { MatExpansionPanelHarness } from '@angular/material/expansion/testing';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing'; import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { PeopleCloudComponent } from '@alfresco/adf-process-services-cloud';
describe('EditTaskFilterCloudComponent', () => { describe('EditTaskFilterCloudComponent', () => {
let loader: HarnessLoader; let loader: HarnessLoader;
@@ -73,7 +71,7 @@ describe('EditTaskFilterCloudComponent', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TaskFiltersCloudModule, PeopleCloudComponent], imports: [ProcessServiceCloudTestingModule, EditTaskFilterCloudComponent],
providers: [MatDialog, { provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }] providers: [MatDialog, { provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }]
}); });
fixture = TestBed.createComponent(EditTaskFilterCloudComponent); fixture = TestBed.createComponent(EditTaskFilterCloudComponent);

View File

@@ -23,9 +23,44 @@ import { TaskFilterCloudService } from '../../services/task-filter-cloud.service
import { DateCloudFilterType } from '../../../../models/date-cloud-filter.model'; import { DateCloudFilterType } from '../../../../models/date-cloud-filter.model';
import { BaseEditTaskFilterCloudComponent, DropdownOption } from './base-edit-task-filter-cloud.component'; import { BaseEditTaskFilterCloudComponent, DropdownOption } from './base-edit-task-filter-cloud.component';
import { set } from 'date-fns'; import { set } from 'date-fns';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { IconComponent } from '@alfresco/adf-core';
import { MatButtonModule } from '@angular/material/button';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { ReactiveFormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
import { MatInputModule } from '@angular/material/input';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatIconModule } from '@angular/material/icon';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { DateRangeFilterComponent } from '../../../../common/date-range-filter/date-range-filter.component';
import { PeopleCloudComponent } from '../../../../people/components/people-cloud.component';
import { TaskAssignmentFilterCloudComponent } from '../task-assignment-filter/task-assignment-filter.component';
import { MatExpansionModule } from '@angular/material/expansion';
@Component({ @Component({
selector: 'adf-cloud-edit-task-filter', selector: 'adf-cloud-edit-task-filter',
standalone: true,
imports: [
CommonModule,
TranslateModule,
IconComponent,
MatButtonModule,
MatProgressSpinnerModule,
ReactiveFormsModule,
MatFormFieldModule,
MatSelectModule,
MatInputModule,
MatDatepickerModule,
MatIconModule,
MatCheckboxModule,
DateRangeFilterComponent,
PeopleCloudComponent,
TaskAssignmentFilterCloudComponent,
MatExpansionModule
],
templateUrl: './base-edit-task-filter-cloud.component.html', templateUrl: './base-edit-task-filter-cloud.component.html',
styleUrls: ['./base-edit-task-filter-cloud.component.scss'], styleUrls: ['./base-edit-task-filter-cloud.component.scss'],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
@@ -45,21 +80,14 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone
} }
protected getTaskFilterById(appName: string, id: string) { protected getTaskFilterById(appName: string, id: string) {
return this.taskFilterCloudService return this.taskFilterCloudService.getTaskFilterById(appName, id).pipe(map((response) => new TaskFilterCloudModel(response)));
.getTaskFilterById(appName, id)
.pipe(
map(response => new TaskFilterCloudModel(response))
);
} }
createAndFilterProperties() { createAndFilterProperties() {
const result = super.createAndFilterProperties(); const result = super.createAndFilterProperties();
if (this.hasLastModifiedProperty()) { if (this.hasLastModifiedProperty()) {
return [ return [...result, ...this.createLastModifiedProperty()];
...result,
...this.createLastModifiedProperty()
];
} }
return result; return result;
@@ -75,14 +103,11 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone
private setLastModifiedToFilter(formValues: TaskFilterCloudModel) { private setLastModifiedToFilter(formValues: TaskFilterCloudModel) {
if (formValues.lastModifiedTo && Date.parse(formValues.lastModifiedTo.toString())) { if (formValues.lastModifiedTo && Date.parse(formValues.lastModifiedTo.toString())) {
const lastModifiedToFilterValue = set( const lastModifiedToFilterValue = set(new Date(formValues.lastModifiedTo), {
new Date(formValues.lastModifiedTo), hours: 23,
{ minutes: 59,
hours: 23, seconds: 59
minutes: 59, });
seconds: 59
}
);
formValues.lastModifiedTo = lastModifiedToFilterValue.toISOString(); formValues.lastModifiedTo = lastModifiedToFilterValue.toISOString();
} }
} }
@@ -96,9 +121,7 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone
} }
protected addFilter(filterToAdd: TaskFilterCloudModel): Observable<any> { protected addFilter(filterToAdd: TaskFilterCloudModel): Observable<any> {
return this.taskFilterCloudService return this.taskFilterCloudService.addFilter(filterToAdd).pipe(takeUntil(this.onDestroy$));
.addFilter(filterToAdd)
.pipe(takeUntil(this.onDestroy$));
} }
isDisabledForDefaultFilters(action: TaskFilterAction): boolean { isDisabledForDefaultFilters(action: TaskFilterAction): boolean {
@@ -244,7 +267,7 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone
label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.DUE_DATE', label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.DUE_DATE',
type: 'date-range', type: 'date-range',
key: 'dueDateRange', key: 'dueDateRange',
attributes: { dateType: 'dueDateType', from: '_dueDateFrom', to: '_dueDateTo'}, attributes: { dateType: 'dueDateType', from: '_dueDateFrom', to: '_dueDateTo' },
value: { value: {
dueDateType: this.taskFilter.dueDateType || null, dueDateType: this.taskFilter.dueDateType || null,
_dueDateFrom: this.taskFilter.dueDateFrom || null, _dueDateFrom: this.taskFilter.dueDateFrom || null,
@@ -262,7 +285,7 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone
label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.COMPLETED_DATE', label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.COMPLETED_DATE',
type: 'date-range', type: 'date-range',
key: 'completedDateRange', key: 'completedDateRange',
attributes: { dateType: 'completedDateType', from: '_completedFrom', to: '_completedTo'}, attributes: { dateType: 'completedDateType', from: '_completedFrom', to: '_completedTo' },
value: { value: {
completedDateType: this.taskFilter.completedDateType || null, completedDateType: this.taskFilter.completedDateType || null,
_completedFrom: this.taskFilter.completedFrom || null, _completedFrom: this.taskFilter.completedFrom || null,
@@ -273,7 +296,7 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone
label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.CREATED_DATE', label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.CREATED_DATE',
type: 'date-range', type: 'date-range',
key: 'createdDateRange', key: 'createdDateRange',
attributes: { dateType: 'createdDateType', from: '_createdFrom', to: '_createdTo'}, attributes: { dateType: 'createdDateType', from: '_createdFrom', to: '_createdTo' },
value: { value: {
createdDateType: this.taskFilter.createdDateType || null, createdDateType: this.taskFilter.createdDateType || null,
_createdFrom: this.taskFilter.createdFrom || null, _createdFrom: this.taskFilter.createdFrom || null,
@@ -291,7 +314,7 @@ export class EditTaskFilterCloudComponent extends BaseEditTaskFilterCloudCompone
label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.ASSIGNMENT', label: 'ADF_CLOUD_EDIT_TASK_FILTER.LABEL.ASSIGNMENT',
type: 'assignment', type: 'assignment',
key: 'assignment', key: 'assignment',
attributes: { assignedUsers: 'assignedUsers', candidateGroups: 'candidateGroups'}, attributes: { assignedUsers: 'assignedUsers', candidateGroups: 'candidateGroups' },
value: { value: {
assignedUsers: this.taskFilter.assignedUsers || [], assignedUsers: this.taskFilter.assignedUsers || [],
candidateGroups: this.taskFilter.candidateGroups || [] candidateGroups: this.taskFilter.candidateGroups || []

View File

@@ -21,7 +21,6 @@
<adf-cloud-group *ngIf="isCandidateGroupsType()" <adf-cloud-group *ngIf="isCandidateGroupsType()"
class="adf-group-cloud-filter" class="adf-group-cloud-filter"
data-automation-id="adf-group-cloud-candidate-groups-filter" data-automation-id="adf-group-cloud-candidate-groups-filter"
[mode]="'multiple'"
[appName]="appName" [appName]="appName"
[preSelectGroups]="candidateGroups" [preSelectGroups]="candidateGroups"
[mode]="taskFilterProperty.selectionMode" [mode]="taskFilterProperty.selectionMode"

View File

@@ -17,7 +17,6 @@
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { TaskAssignmentFilterCloudComponent } from './task-assignment-filter.component'; import { TaskAssignmentFilterCloudComponent } from './task-assignment-filter.component';
import { TaskFiltersCloudModule } from '../../task-filters-cloud.module';
import { AssignmentType, TaskStatusFilter } from '../../models/filter-cloud.model'; import { AssignmentType, TaskStatusFilter } from '../../models/filter-cloud.model';
import { IdentityUserService } from '../../../../people/services/identity-user.service'; import { IdentityUserService } from '../../../../people/services/identity-user.service';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
@@ -29,7 +28,6 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing'; import { MatSelectHarness } from '@angular/material/select/testing';
import { MatFormFieldHarness } from '@angular/material/form-field/testing'; import { MatFormFieldHarness } from '@angular/material/form-field/testing';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module'; import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { GroupCloudComponent } from '@alfresco/adf-process-services-cloud';
describe('TaskAssignmentFilterComponent', () => { describe('TaskAssignmentFilterComponent', () => {
let component: TaskAssignmentFilterCloudComponent; let component: TaskAssignmentFilterCloudComponent;
@@ -58,7 +56,7 @@ describe('TaskAssignmentFilterComponent', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, GroupCloudComponent, TaskFiltersCloudModule] imports: [ProcessServiceCloudTestingModule, TaskAssignmentFilterCloudComponent]
}); });
}); });

View File

@@ -16,21 +16,26 @@
*/ */
import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core'; import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
import { MatSelectChange } from '@angular/material/select'; import { MatSelectChange, MatSelectModule } from '@angular/material/select';
import { AssignmentType, TaskFilterProperties, TaskStatusFilter } from '../../models/filter-cloud.model'; import { AssignmentType, TaskFilterProperties, TaskStatusFilter } from '../../models/filter-cloud.model';
import { IdentityUserModel } from '../../../../people/models/identity-user.model'; import { IdentityUserModel } from '../../../../people/models/identity-user.model';
import { IdentityUserService } from '../../../../people/services/identity-user.service'; import { IdentityUserService } from '../../../../people/services/identity-user.service';
import { IdentityGroupModel } from '../../../../group/models/identity-group.model'; import { IdentityGroupModel } from '../../../../group/models/identity-group.model';
import { DropdownOption } from '../edit-task-filters/base-edit-task-filter-cloud.component'; import { DropdownOption } from '../edit-task-filters/base-edit-task-filter-cloud.component';
import { FormControl } from '@angular/forms'; import { FormControl, FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { PeopleCloudComponent } from '../../../../people/components/people-cloud.component';
import { GroupCloudComponent } from '../../../../group/components/group-cloud.component';
@Component({ @Component({
selector: 'adf-cloud-task-assignment-filter', selector: 'adf-cloud-task-assignment-filter',
standalone: true,
imports: [CommonModule, PeopleCloudComponent, GroupCloudComponent, TranslateModule, MatSelectModule, FormsModule],
templateUrl: './task-assignment-filter.component.html', templateUrl: './task-assignment-filter.component.html',
styleUrls: ['./task-assignment-filter.component.scss'] styleUrls: ['./task-assignment-filter.component.scss']
}) })
export class TaskAssignmentFilterCloudComponent implements OnInit, OnChanges { export class TaskAssignmentFilterCloudComponent implements OnInit, OnChanges {
@Input() appName: string; @Input() appName: string;
@Input() taskFilterProperty: TaskFilterProperties; @Input() taskFilterProperty: TaskFilterProperties;

View File

@@ -18,7 +18,6 @@
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { TaskFilterDialogCloudComponent } from './task-filter-dialog-cloud.component'; import { TaskFilterDialogCloudComponent } from './task-filter-dialog-cloud.component';
import { TaskFiltersCloudModule } from '../../task-filters-cloud.module';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module'; import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
describe('TaskFilterDialogCloudComponent', () => { describe('TaskFilterDialogCloudComponent', () => {
@@ -36,7 +35,7 @@ describe('TaskFilterDialogCloudComponent', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TaskFiltersCloudModule], imports: [ProcessServiceCloudTestingModule, TaskFilterDialogCloudComponent],
providers: [ providers: [
{ provide: MatDialogRef, useValue: mockDialogRef }, { provide: MatDialogRef, useValue: mockDialogRef },
{ provide: MAT_DIALOG_DATA, useValue: mockDialogData } { provide: MAT_DIALOG_DATA, useValue: mockDialogData }

View File

@@ -16,17 +16,23 @@
*/ */
import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { AbstractControl, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatInputModule } from '@angular/material/input';
@Component({ @Component({
selector: 'adf-cloud-task-filter-dialog', selector: 'adf-cloud-task-filter-dialog',
templateUrl: './task-filter-dialog-cloud.component.html', standalone: true,
styleUrls: ['./task-filter-dialog-cloud.component.scss'], imports: [CommonModule, TranslateModule, MatButtonModule, MatCardModule, MatInputModule, ReactiveFormsModule, MatDialogModule],
encapsulation: ViewEncapsulation.None templateUrl: './task-filter-dialog-cloud.component.html',
styleUrls: ['./task-filter-dialog-cloud.component.scss'],
encapsulation: ViewEncapsulation.None
}) })
export class TaskFilterDialogCloudComponent implements OnInit { export class TaskFilterDialogCloudComponent implements OnInit {
// eslint-disable-next-line @typescript-eslint/naming-convention // eslint-disable-next-line @typescript-eslint/naming-convention
public static ACTION_SAVE = 'SAVE'; public static ACTION_SAVE = 'SAVE';
defaultIcon = 'inbox'; defaultIcon = 'inbox';
@@ -36,8 +42,8 @@ export class TaskFilterDialogCloudComponent implements OnInit {
constructor( constructor(
private fb: UntypedFormBuilder, private fb: UntypedFormBuilder,
public dialogRef: MatDialogRef<TaskFilterDialogCloudComponent>, public dialogRef: MatDialogRef<TaskFilterDialogCloudComponent>,
@Inject(MAT_DIALOG_DATA) public data) { @Inject(MAT_DIALOG_DATA) public data
} ) {}
ngOnInit() { ngOnInit() {
this.filterForm = this.fb.group({ this.filterForm = this.fb.group({

View File

@@ -19,7 +19,8 @@ export * from './components/task-filters-cloud.component';
export * from './components/service-task-filters-cloud.component'; export * from './components/service-task-filters-cloud.component';
export * from './components/edit-task-filters/edit-task-filter-cloud.component'; export * from './components/edit-task-filters/edit-task-filter-cloud.component';
export * from './components/edit-task-filters/edit-service-task-filter-cloud.component'; export * from './components/edit-task-filters/edit-service-task-filter-cloud.component';
export * from './components/task-filter-dialog/task-filter-dialog-cloud.component';
export * from './components/task-assignment-filter/task-assignment-filter.component';
export * from './models/filter-cloud.model'; export * from './models/filter-cloud.model';
export * from './services/task-filter-cloud.service'; export * from './services/task-filter-cloud.service';

View File

@@ -16,46 +16,25 @@
*/ */
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { TaskFiltersCloudComponent } from './components/task-filters-cloud.component'; import { TaskFiltersCloudComponent } from './components/task-filters-cloud.component';
import { MaterialModule } from '../../material.module';
import { CoreModule } from '@alfresco/adf-core';
import { HttpClientModule } from '@angular/common/http';
import { APP_LIST_CLOUD_DIRECTIVES } from './../../app/app-list-cloud.module';
import { EditServiceTaskFilterCloudComponent } from './components/edit-task-filters/edit-service-task-filter-cloud.component'; import { EditServiceTaskFilterCloudComponent } from './components/edit-task-filters/edit-service-task-filter-cloud.component';
import { EditTaskFilterCloudComponent } from './components/edit-task-filters/edit-task-filter-cloud.component'; import { EditTaskFilterCloudComponent } from './components/edit-task-filters/edit-task-filter-cloud.component';
import { TaskFilterDialogCloudComponent } from './components/task-filter-dialog/task-filter-dialog-cloud.component'; import { TaskFilterDialogCloudComponent } from './components/task-filter-dialog/task-filter-dialog-cloud.component';
import { ServiceTaskFiltersCloudComponent } from './components/service-task-filters-cloud.component'; import { ServiceTaskFiltersCloudComponent } from './components/service-task-filters-cloud.component';
import { TaskAssignmentFilterCloudComponent } from './components/task-assignment-filter/task-assignment-filter.component'; import { TaskAssignmentFilterCloudComponent } from './components/task-assignment-filter/task-assignment-filter.component';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { DateRangeFilterComponent } from '../../common/date-range-filter/date-range-filter.component';
import { PeopleCloudComponent } from '../../people/components/people-cloud.component';
import { GroupCloudComponent } from '../../group/components/group-cloud.component';
export const TASK_FILTERS_CLOUD_DIRECTIVES = [
TaskFiltersCloudComponent,
ServiceTaskFiltersCloudComponent,
EditTaskFilterCloudComponent,
EditServiceTaskFilterCloudComponent,
TaskAssignmentFilterCloudComponent,
TaskFilterDialogCloudComponent
] as const;
/** @deprecated use individual standalone components instead */
@NgModule({ @NgModule({
imports: [ imports: [...TASK_FILTERS_CLOUD_DIRECTIVES],
FormsModule, exports: [...TASK_FILTERS_CLOUD_DIRECTIVES]
ReactiveFormsModule,
HttpClientModule,
CommonModule,
MaterialModule,
...APP_LIST_CLOUD_DIRECTIVES,
CoreModule,
GroupCloudComponent,
DateRangeFilterComponent,
PeopleCloudComponent,
MatProgressSpinnerModule,
//
TaskFiltersCloudComponent,
ServiceTaskFiltersCloudComponent
],
declarations: [
EditTaskFilterCloudComponent,
EditServiceTaskFilterCloudComponent,
TaskFilterDialogCloudComponent,
TaskAssignmentFilterCloudComponent
],
exports: [TaskFiltersCloudComponent, ServiceTaskFiltersCloudComponent, EditTaskFilterCloudComponent, EditServiceTaskFilterCloudComponent]
}) })
export class TaskFiltersCloudModule {} export class TaskFiltersCloudModule {}