diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.html index de51e41fec..084c9a9fc5 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.html +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.html @@ -47,7 +47,8 @@ (dateChange)="onDateChanged($event.value, taskFilterProperty)" [matDatepicker]="dateController" placeholder="{{taskFilterProperty.label | translate}}" - [formControlName]="taskFilterProperty.key" + [(ngModel)]="dateFilter[taskFilterProperty.key]" + [ngModelOptions]="{standalone: true}" [attr.data-automation-id]="'adf-cloud-edit-task-property-' + taskFilterProperty.key"> diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.ts index b8a89b53ac..5315fa8e5d 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.ts @@ -15,24 +15,25 @@ * limitations under the License. */ -import { Component, OnChanges, Input, Output, EventEmitter, SimpleChanges } from '@angular/core'; +import { Component, OnChanges, Input, Output, EventEmitter, SimpleChanges, OnInit } from '@angular/core'; import { AbstractControl, FormGroup, FormBuilder } from '@angular/forms'; import { TaskFilterCloudModel, FilterActionType, TaskFilterProperties } from './../models/filter-cloud.model'; import { TaskFilterCloudService } from '../services/task-filter-cloud.service'; -import { MatDialog } from '@angular/material'; +import { MatDialog, DateAdapter } from '@angular/material'; import { TaskFilterDialogCloudComponent } from './task-filter-dialog-cloud.component'; -import { TranslationService } from '@alfresco/adf-core'; +import { TranslationService, UserPreferencesService, UserPreferenceValues } from '@alfresco/adf-core'; import { debounceTime, filter } from 'rxjs/operators'; import { AppsProcessCloudService } from '../../../app/services/apps-process-cloud.service'; import { ApplicationInstanceModel } from '../../../app/models/application-instance.model'; import moment from 'moment-es6'; +import { Moment } from 'moment'; @Component({ selector: 'adf-cloud-edit-task-filter', templateUrl: './edit-task-filter-cloud.component.html', styleUrls: ['./edit-task-filter-cloud.component.scss'] }) -export class EditTaskFilterCloudComponent implements OnChanges { +export class EditTaskFilterCloudComponent implements OnInit, OnChanges { public static ACTION_SAVE = 'SAVE'; public static ACTION_SAVE_AS = 'SAVE_AS'; @@ -98,6 +99,7 @@ export class EditTaskFilterCloudComponent implements OnChanges { ]; applicationNames: any[] = []; + dateFilter: any[] = []; formHasBeenChanged = false; editTaskFilterForm: FormGroup; taskFilterProperties: any[] = []; @@ -108,9 +110,17 @@ export class EditTaskFilterCloudComponent implements OnChanges { public dialog: MatDialog, private translateService: TranslationService, private taskFilterCloudService: TaskFilterCloudService, + private dateAdapter: DateAdapter, + private userPreferencesService: UserPreferencesService, private appsProcessCloudService: AppsProcessCloudService) { } + ngOnInit() { + this.userPreferencesService.select(UserPreferenceValues.Locale).subscribe((locale) => { + this.dateAdapter.setLocale(locale); + }); + } + ngOnChanges(changes: SimpleChanges) { const id = changes['id']; if (id && id.currentValue !== id.previousValue) { @@ -185,18 +195,13 @@ export class EditTaskFilterCloudComponent implements OnChanges { onDateChanged(newDateValue: any, dateProperty: TaskFilterProperties) { if (newDateValue) { - let momentDate; - - if (typeof newDateValue === 'string') { - momentDate = moment(newDateValue, this.FORMAT_DATE, true); - } else { - momentDate = newDateValue; - } + let momentDate = moment(newDateValue, this.FORMAT_DATE, true); if (momentDate.isValid()) { this.getPropertyController(dateProperty).setValue(momentDate.toDate()); + this.getPropertyController(dateProperty).setErrors(null); } else { - this.getPropertyController(dateProperty).setErrors({ invalid: true }); + this.getPropertyController(dateProperty).setErrors({invalid: true}); } } } diff --git a/lib/process-services-cloud/src/lib/task/task-filters/task-filters-cloud.module.ts b/lib/process-services-cloud/src/lib/task/task-filters/task-filters-cloud.module.ts index fabcd581c2..6aca8c8285 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/task-filters-cloud.module.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/task-filters-cloud.module.ts @@ -21,12 +21,13 @@ import { CommonModule } from '@angular/common'; import { FlexLayoutModule } from '@angular/flex-layout'; import { TaskFiltersCloudComponent } from './components/task-filters-cloud.component'; import { MaterialModule } from '../../material.module'; -import { LogService, StorageService, CoreModule } from '@alfresco/adf-core'; +import { LogService, StorageService, CoreModule, MomentDateAdapter, MOMENT_DATE_FORMATS } from '@alfresco/adf-core'; import { TaskFilterCloudService } from './services/task-filter-cloud.service'; import { HttpClientModule } from '@angular/common/http'; import { EditTaskFilterCloudComponent } from './components/edit-task-filter-cloud.component'; import { TaskFilterDialogCloudComponent } from './components/task-filter-dialog-cloud.component'; import { AppListCloudModule } from './../../app/app-list-cloud.module'; +import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material'; @NgModule({ imports: [ @@ -41,7 +42,13 @@ import { AppListCloudModule } from './../../app/app-list-cloud.module'; ], declarations: [TaskFiltersCloudComponent, EditTaskFilterCloudComponent, TaskFilterDialogCloudComponent], exports: [TaskFiltersCloudComponent, EditTaskFilterCloudComponent], - providers: [TaskFilterCloudService, LogService, StorageService], + providers: [ + TaskFilterCloudService, + LogService, + StorageService, + { provide: DateAdapter, useClass: MomentDateAdapter }, + { provide: MAT_DATE_FORMATS, useValue: MOMENT_DATE_FORMATS } + ], entryComponents: [ TaskFilterDialogCloudComponent ]