From db0b9ae2e0cd660c22cf4f3f92cc7c46a2966ca7 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Tue, 4 Sep 2018 10:27:32 +0100 Subject: [PATCH] [ADF-3494] fix formatting for date columns (#3733) * fix date formats for columns * fix date formatting for columns --- .../datatable-cell.component.spec.ts | 37 +++++++++++++++++++ .../datatable/date-cell.component.ts | 34 ++++++++++++----- 2 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 lib/core/datatable/components/datatable/datatable-cell.component.spec.ts diff --git a/lib/core/datatable/components/datatable/datatable-cell.component.spec.ts b/lib/core/datatable/components/datatable/datatable-cell.component.spec.ts new file mode 100644 index 0000000000..b72ab7b9f2 --- /dev/null +++ b/lib/core/datatable/components/datatable/datatable-cell.component.spec.ts @@ -0,0 +1,37 @@ +/*! + * @license + * Copyright 2016 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { DateCellComponent } from './date-cell.component'; + +describe('DataTableCellComponent', () => { + it('should use medium format by default', () => { + const component = new DateCellComponent(null); + expect(component.format).toBe('medium'); + }); + + it('should use column format', () => { + const component = new DateCellComponent(null); + component.column = { + key: 'created', + type: 'date', + format: 'longTime' + }; + + component.ngOnInit(); + expect(component.format).toBe('longTime'); + }); +}); diff --git a/lib/core/datatable/components/datatable/date-cell.component.ts b/lib/core/datatable/components/datatable/date-cell.component.ts index 239b3c4352..d3fe7344d1 100644 --- a/lib/core/datatable/components/datatable/date-cell.component.ts +++ b/lib/core/datatable/components/datatable/date-cell.component.ts @@ -15,38 +15,52 @@ * limitations under the License. */ -import { Component, ViewEncapsulation } from '@angular/core'; +import { Component, ViewEncapsulation, OnInit } from '@angular/core'; import { DataTableCellComponent } from './datatable-cell.component'; -import { UserPreferencesService, UserPreferenceValues } from '../../../services/user-preferences.service'; +import { + UserPreferencesService, + UserPreferenceValues +} from '../../../services/user-preferences.service'; @Component({ selector: 'adf-date-cell', template: ` - + {{ value | adfTimeAgo: currentLocale }} - - {{ value | date:'medium' }} + + {{ value | date:format }} `, encapsulation: ViewEncapsulation.None, host: { class: 'adf-date-cell' } }) -export class DateCellComponent extends DataTableCellComponent { - +export class DateCellComponent extends DataTableCellComponent implements OnInit { currentLocale; + format = 'medium'; constructor(userPreferenceService: UserPreferencesService) { super(); - userPreferenceService.select(UserPreferenceValues.Locale).subscribe((locale) => { - this.currentLocale = locale; - }); + if (userPreferenceService) { + userPreferenceService + .select(UserPreferenceValues.Locale) + .subscribe(locale => { + this.currentLocale = locale; + }); + } } + ngOnInit() { + super.ngOnInit(); + + if (this.column) { + this.format = this.column.format || 'medium'; + } + } }