mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
committed by
Nino Righi
parent
acc2f7f664
commit
7a1ef06a4c
@@ -93,35 +93,41 @@ export class ArticleDetailsComponent implements OnInit, OnDestroy {
|
||||
contributors$ = this.store.item$.pipe(map((item) => item?.product?.contributors?.split(';').map((m) => m.trim())));
|
||||
|
||||
/**
|
||||
* Ein Observable, das das Veröffentlichungsdatum eines Artikels formatiert.
|
||||
* Ein Observable, das das Veröffentlichungsdatum eines Artikels aus dem Store extrahiert und formatiert.
|
||||
*
|
||||
* Dieses Observable filtert die Artikel, um sicherzustellen, dass ein Veröffentlichungsdatum vorhanden ist,
|
||||
* und formatiert dann das Datum basierend auf der Verfügbarkeit im Katalog oder dem Veröffentlichungsdatum des Produkts.
|
||||
* Das Veröffentlichungsdatum wird aus dem `item$` Observable des Stores abgeleitet. Es wird zuerst geprüft,
|
||||
* ob ein `firstDayOfSale` in der `catalogAvailability` vorhanden ist und gültig ist. Wenn ja, wird dieses Datum
|
||||
* im Format 'DD. MMMM y' zurückgegeben.
|
||||
*
|
||||
* - Wenn das erste Verkaufsdatum im Katalog gültig ist, wird es im Format 'DD. MMMM y' zurückgegeben.
|
||||
* - Wenn das Veröffentlichungsdatum des Produkts gültig ist und es sich um den Jahresanfang handelt, wird nur das Jahr zurückgegeben.
|
||||
* - Andernfalls wird das Veröffentlichungsdatum im Format 'DD. MMMM y' zurückgegeben.
|
||||
* - Wenn kein gültiges Datum gefunden wird, wird ein leerer String zurückgegeben.
|
||||
* Falls kein `firstDayOfSale` vorhanden ist, wird das Veröffentlichungsdatum aus dem `product` extrahiert und
|
||||
* geprüft, ob es gültig ist. Wenn das Datum der Jahresanfang ist, wird nur das Jahr im Format 'y' zurückgegeben,
|
||||
* andernfalls wird das Datum im Format 'DD. MMMM y' zurückgegeben.
|
||||
*
|
||||
* @observable publicationDate$
|
||||
* Wenn kein gültiges Veröffentlichungsdatum gefunden wird, wird ein leerer String zurückgegeben.
|
||||
*
|
||||
* @observable publicationDate$ - Ein Observable, das das formatierte Veröffentlichungsdatum eines Artikels enthält.
|
||||
*/
|
||||
publicationDate$ = this.store.item$.pipe(
|
||||
filter((item) => !!item?.product?.publicationDate),
|
||||
map((item) => {
|
||||
const catalogAvailability = moment(item.catalogAvailability.firstDayOfSale);
|
||||
if (item.catalogAvailability?.firstDayOfSale) {
|
||||
const catalogAvailability = moment(item.catalogAvailability.firstDayOfSale);
|
||||
|
||||
if (catalogAvailability.isValid()) {
|
||||
return catalogAvailability.format('DD. MMMM y');
|
||||
if (catalogAvailability.isValid()) {
|
||||
return catalogAvailability.format('DD. MMMM y');
|
||||
}
|
||||
}
|
||||
|
||||
const publicationDate = moment(item.product.publicationDate);
|
||||
if (item.product.publicationDate) {
|
||||
const publicationDate = moment(item.product.publicationDate);
|
||||
|
||||
if (publicationDate.isValid()) {
|
||||
if (publicationDate.clone().startOf('year').isSame(publicationDate, 'day')) {
|
||||
return publicationDate.format('y');
|
||||
if (publicationDate.isValid()) {
|
||||
if (publicationDate.clone().startOf('year').isSame(publicationDate, 'day')) {
|
||||
return publicationDate.format('y');
|
||||
}
|
||||
|
||||
return publicationDate.format('DD. MMMM y');
|
||||
}
|
||||
|
||||
return publicationDate.format('DD. MMMM y');
|
||||
}
|
||||
|
||||
return '';
|
||||
|
||||
Reference in New Issue
Block a user