Skip to content

Commit 001de85

Browse files
Micheleboychukdanieleninfo
authored andcommitted
Merged in task/dspace-cris-2023_02_x/DSC-1883-AddStartDateTime (pull request DSpace#2345)
DSC-1883: Add the startDateTime metadata to the dspace schema Approved-by: Daniele Ninfo
2 parents 644e20c + 11ec203 commit 001de85

5 files changed

Lines changed: 31 additions & 0 deletions

File tree

src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
</div>
1111
<ds-truncatable [id]="item.id">
1212
<h3 [innerHTML]="dsoTitle" [ngClass]="{'lead': true,'text-muted': !item.firstMetadataValue('dc.title')}"></h3>
13+
<div *ngIf="item.hasMetadata('dspace.workflow.startDateTime') && item.hasMetadata('dc.date.accessioned')">
14+
{{ 'mydspace.results.in-workflow-for' | translate }}
15+
{{ getDateForArchivedItem(item.firstMetadataValue('dspace.workflow.startDateTime'), item.firstMetadataValue('dc.date.accessioned')) }}
16+
</div>
1317
<div>
1418
<span class="text-muted">
1519
<ds-truncatable-part [id]="item.id" [minLines]="1">

src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { WorkflowItem } from '../../../../core/submission/models/workflowitem.mo
1010
import {
1111
DuplicateMatchMetadataDetailConfig
1212
} from '../../../../submission/sections/detect-duplicate/models/duplicate-detail-metadata.model';
13+
import { parseISO, differenceInDays, differenceInMilliseconds } from 'date-fns';
1314
import { environment } from '../../../../../environments/environment';
1415

1516
/**
@@ -83,6 +84,15 @@ export class ItemListPreviewComponent implements OnInit {
8384
) {
8485
}
8586

87+
getDateForArchivedItem(itemStartDate: string, dateAccessioned: string) {
88+
const itemStartDateConverted: Date = parseISO(itemStartDate);
89+
const dateAccessionedConverted: Date = parseISO(dateAccessioned);
90+
const days: number = Math.floor(differenceInDays(dateAccessionedConverted, itemStartDateConverted));
91+
const remainingMilliseconds: number = differenceInMilliseconds(dateAccessionedConverted, itemStartDateConverted) - days * 24 * 60 * 60 * 1000;
92+
const hours: number = Math.floor(remainingMilliseconds / (60 * 60 * 1000));
93+
return `${days} d ${hours} h`;
94+
}
95+
8696
ngOnInit(): void {
8797
this.showThumbnails = this.showThumbnails ?? this.appConfig.browseBy.showThumbnails;
8898
this.dsoTitle = this.dsoNameService.getHitHighlights(this.object, this.item);

src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
[innerHTML]="dsoTitle"></a>
2727
<span *ngIf="linkType == linkTypes.None" class="lead item-list-title dont-break-out"
2828
[innerHTML]="dsoTitle"></span>
29+
<div *ngIf="dso.hasMetadata('dspace.workflow.startDateTime')">
30+
{{ 'mydspace.results.in-workflow-since' | translate }}
31+
{{ getDateForItem(dso.firstMetadataValue('dspace.workflow.startDateTime')) }}
32+
</div>
2933
<span class="text-muted">
3034
<ds-truncatable-part [id]="dso.id" [minLines]="1">
3135
<ng-container *ngIf="dso.firstMetadataValue('dc.publisher') || dso.firstMetadataValue('dc.date.issued')">

src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { TruncatableService } from '../../../../../truncatable/truncatable.servi
1515
import { DSONameService } from '../../../../../../core/breadcrumbs/dso-name.service';
1616
import { APP_CONFIG, AppConfig } from '../../../../../../../config/app-config.interface';
1717
import { getFirstSucceededRemoteListPayload } from '../../../../../../core/shared/operators';
18+
import { differenceInDays, differenceInMilliseconds, parseISO} from 'date-fns';
1819
import { filter, map } from 'rxjs/operators';
1920
import { isNotEmpty } from '../../../../../empty.util';
2021

@@ -89,6 +90,14 @@ export class ItemSearchResultListElementComponent extends SearchResultListElemen
8990
}
9091
}
9192

93+
getDateForItem(itemStartDate: string) {
94+
const itemStartDateConverted: Date = parseISO(itemStartDate);
95+
const days: number = Math.floor(differenceInDays(Date.now(), itemStartDateConverted));
96+
const remainingMilliseconds: number = differenceInMilliseconds(Date.now(), itemStartDateConverted) - days * 24 * 60 * 60 * 1000;
97+
const hours: number = Math.floor(remainingMilliseconds / (60 * 60 * 1000));
98+
return `${days} d ${hours} h`;
99+
}
100+
92101
/**
93102
* Prompt user for consents settings
94103
*/

src/assets/i18n/en.json5

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4180,6 +4180,10 @@
41804180

41814181
"mydspace.results.is-correction": "Is a request of correction",
41824182

4183+
"mydspace.results.in-workflow-since": "In workflow since:",
4184+
4185+
"mydspace.results.in-workflow-for": "In workflow for:",
4186+
41834187
"mydspace.search-form.placeholder": "Search in MyDSpace...",
41844188

41854189
"mydspace.show.workflow": "Workflow tasks",

0 commit comments

Comments
 (0)