Skip to content

Commit c1a7380

Browse files
[DSC-1883] add dspace.workflow.startdateTime
1 parent 248e940 commit c1a7380

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
@@ -16,6 +16,7 @@ import { DSONameService } from '../../../../../../core/breadcrumbs/dso-name.serv
1616
import { APP_CONFIG, AppConfig } from '../../../../../../../config/app-config.interface';
1717
import { getFirstSucceededRemoteListPayload } from '../../../../../../core/shared/operators';
1818
import { map } from 'rxjs/operators';
19+
import {differenceInDays, differenceInMilliseconds, parseISO} from 'date-fns';
1920

2021
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement)
2122
@listableObjectComponent(ItemSearchResult, ViewMode.ListElement)
@@ -86,6 +87,14 @@ export class ItemSearchResultListElementComponent extends SearchResultListElemen
8687
}
8788
}
8889

90+
getDateForItem(itemStartDate: string) {
91+
const itemStartDateConverted: Date = parseISO(itemStartDate);
92+
const days: number = Math.floor(differenceInDays(Date.now(), itemStartDateConverted));
93+
const remainingMilliseconds: number = differenceInMilliseconds(Date.now(), itemStartDateConverted) - days * 24 * 60 * 60 * 1000;
94+
const hours: number = Math.floor(remainingMilliseconds / (60 * 60 * 1000));
95+
return `${days} d ${hours} h`;
96+
}
97+
8998
/**
9099
* Prompt user for consents settings
91100
*/

src/assets/i18n/en.json5

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

41074107
"mydspace.results.is-correction": "Is a request of correction",
41084108

4109+
"mydspace.results.in-workflow-since": "In workflow since:",
4110+
4111+
"mydspace.results.in-workflow-for": "In workflow for:",
4112+
41094113
"mydspace.search-form.placeholder": "Search in mydspace...",
41104114

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

0 commit comments

Comments
 (0)