mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-05-31 12:15:51 -04:00
34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import { DatePipe } from '@angular/common';
|
|
import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';
|
|
import { SettingsService, SETTINGS_KEYS } from '../services/settings.service';
|
|
|
|
const FORMAT_TO_ISO_FORMAT = {
|
|
"longDate": "y-MM-dd",
|
|
"mediumDate": "yy-MM-dd",
|
|
"shortDate": "yy-MM-dd"
|
|
}
|
|
|
|
@Pipe({
|
|
name: 'customDate'
|
|
})
|
|
export class CustomDatePipe extends DatePipe implements PipeTransform {
|
|
|
|
private defaultLocale: string
|
|
|
|
constructor(@Inject(LOCALE_ID) locale: string, private settings: SettingsService) {
|
|
super(locale)
|
|
this.defaultLocale = locale
|
|
}
|
|
|
|
transform(value: any, format?: string, timezone?: string, locale?: string): string | null {
|
|
let l = locale || this.settings.get(SETTINGS_KEYS.DATE_LOCALE) || this.defaultLocale
|
|
let f = format || this.settings.get(SETTINGS_KEYS.DATE_FORMAT)
|
|
if (l == "iso-8601") {
|
|
return super.transform(value, FORMAT_TO_ISO_FORMAT[f], timezone)
|
|
} else {
|
|
return super.transform(value, format || this.settings.get(SETTINGS_KEYS.DATE_FORMAT), timezone, l)
|
|
}
|
|
}
|
|
|
|
}
|