Skip to content
Snippets Groups Projects
Commit 36377ff9 authored by OZGCloud's avatar OZGCloud
Browse files

revert ts message to html message; date-with-time-pipe -> nil safe

parent 34d7101f
No related branches found
No related tags found
No related merge requests found
......@@ -27,4 +27,16 @@ describe('FormatDateWithTimePipe', () => {
expect(result).toBe('01.01.2021, 0:00:00');
})
it('should return undefined on null', () => {
const result: string = pipe.transform(null);
expect(result).toBe(undefined);
})
it('should return undefined on undefined', () => {
const result: string = pipe.transform(undefined);
expect(result).toBe(undefined);
})
})
\ No newline at end of file
import { formatDate } from '@angular/common';
import { Pipe, PipeTransform } from '@angular/core';
import { isNil } from 'lodash';
@Pipe({ name: 'formatDateWithTimePipe' })
export class FormatDateWithTimePipe implements PipeTransform {
......@@ -7,6 +8,7 @@ export class FormatDateWithTimePipe implements PipeTransform {
dateTimeFormat: string = 'dd.MM.y, H:mm:ss';
transform(date: Date, withDay: boolean = true) {
if (isNil(date)) return undefined;
const formatter: string = withDay ? this.dateTimeWithDayFormat : this.dateTimeFormat;
return formatDate(date, formatter, 'de');
......
<p [innerHTML]="msg"></p>
\ No newline at end of file
<p>
{{ command.createdByName }} hat den Vorgang am {{ command.createdAt | formatDateWithTimePipe }} an {{ command.redirectRequest.email }} weitergeleitet.<br>
Versendet am {{ command.finishedAt | formatDateWithTimePipe }}
</p>
\ No newline at end of file
import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/de';
import localeDeExtra from '@angular/common/locales/extra/de';
import { LOCALE_ID } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MAT_DATE_LOCALE } from '@angular/material/core';
......@@ -6,6 +9,8 @@ import { createCommandResource } from 'libs/command-shared/test/command';
import { configureTestSuite } from 'ng-bullet';
import { VorgangRedirectInfoComponent } from './vorgang-redirect-info.component';
registerLocaleData(localeDe, 'de', localeDeExtra);
describe('VorgangRedirectInfoComponent', () => {
let component: VorgangRedirectInfoComponent;
let fixture: ComponentFixture<VorgangRedirectInfoComponent>;
......@@ -13,10 +18,10 @@ describe('VorgangRedirectInfoComponent', () => {
configureTestSuite(() => {
TestBed.configureTestingModule({
declarations: [
VorgangRedirectInfoComponent
VorgangRedirectInfoComponent,
FormatDateWithTimePipe
],
providers: [
FormatDateWithTimePipe,
{ provide: LOCALE_ID, useValue: 'de' },
{ provide: MAT_DATE_LOCALE, useValue: 'de-DE' }
]
......@@ -26,7 +31,7 @@ describe('VorgangRedirectInfoComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(VorgangRedirectInfoComponent);
component = fixture.componentInstance;
component.command = createCommandResource();
component.command = { ...createCommandResource(), redirectRequest: { email: 'alles@super.de' } };
fixture.detectChanges();
});
......
import { Component, Input, OnChanges } from '@angular/core';
import { Component, Input } from '@angular/core';
import { CommandResource } from '@goofy-client/command-shared';
import { FormatDateWithTimePipe, replacePlaceholders } from '@goofy-client/tech-shared';
import { VorgangMessages } from '@goofy-client/vorgang-shared';
import { isNil } from 'lodash-es';
@Component({
selector: 'goofy-client-vorgang-redirect-info',
templateUrl: './vorgang-redirect-info.component.html',
styleUrls: ['./vorgang-redirect-info.component.scss'],
providers: [FormatDateWithTimePipe]
styleUrls: ['./vorgang-redirect-info.component.scss']
})
export class VorgangRedirectInfoComponent implements OnChanges {
export class VorgangRedirectInfoComponent {
@Input() command: CommandResource;
public msg: string = undefined;
constructor(private dateWithTimePipe: FormatDateWithTimePipe) { }
ngOnChanges(): void {
if (!isNil(this.command)) {
this.msg = replacePlaceholders(VorgangMessages.WEITERGELEITET, this.buildReplacement());
}
}
private buildReplacement(): { [key: string]: string } {
return {
createdAt: this.formatAsDateTime(this.command.createdAt),
createdByName: this.command.createdByName,
email: this.command.redirectRequest.email,
finishedAt: this.formatAsDateTime(this.command.finishedAt)
}
}
private formatAsDateTime(date: Date): string {
return isNil(date) ? undefined : this.dateWithTimePipe.transform(date, false);
}
@Input() public command: CommandResource;
}
\ No newline at end of file
......@@ -18,6 +18,5 @@ export enum VorgangMessages {
BESCHIEDEN = 'Der Vorgang wurde beschieden.',
ZURUECKGESTELLT = 'Der Vorgang wurde zurückgestellt.',
ABGESCHLOSSEN = 'Der Vorgang wurde abgeschlossen.',
WIEDEREROEFFNET = 'Der Vorgang wurde wiedereröffnet.',
WEITERGELEITET = '{createdByName} hat den Vorgang am {createdAt} an {email} weitergeleitet. </br> Versendet am {finishedAt}'
WIEDEREROEFFNET = 'Der Vorgang wurde wiedereröffnet.'
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment