Skip to content

Commit daa2d0e

Browse files
committed
pkp/pkp-lib#10553 condsider only major versions in DoiListPanel
1 parent 041e92a commit daa2d0e

File tree

1 file changed

+56
-9
lines changed

1 file changed

+56
-9
lines changed

src/components/ListPanel/doi/DoiListPanel.vue

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -915,17 +915,64 @@ export default {
915915
getIsPublishedBase(item) {
916916
return item.status === pkp.const.STATUS_PUBLISHED;
917917
},
918+
/**
919+
* Gets pubObject's versions/publications. Considers only latest minor versions. Assumes original object is submission.
920+
*
921+
* @param {Object} item Item being mapped
922+
* @returns {Object} Modified mapped item
923+
*/
918924
getVersions(item) {
925+
var latestMinorPublications = [];
926+
item.publications?.forEach((publication) => {
927+
// There could be unassigned publications, without stage, major and minor
928+
if (publication.versionStage == null) {
929+
if (!('unassigned' in latestMinorPublications)) {
930+
latestMinorPublications['unassigned'] = [];
931+
}
932+
latestMinorPublications['unassigned'].push(publication);
933+
return;
934+
}
935+
if (!(publication.versionStage in latestMinorPublications)) {
936+
latestMinorPublications[publication.versionStage] = [];
937+
}
938+
if (
939+
!(
940+
publication.versionMajor in
941+
latestMinorPublications[publication.versionStage]
942+
)
943+
) {
944+
latestMinorPublications[publication.versionStage][
945+
publication.versionMajor
946+
] = publication;
947+
return;
948+
}
949+
if (
950+
publication.versionMinor >
951+
latestMinorPublications[publication.versionStage][
952+
publication.versionMajor
953+
].versionMinor
954+
) {
955+
latestMinorPublications[publication.versionStage][
956+
publication.versionMajor
957+
] = publication;
958+
}
959+
});
919960
return (
920-
item.publications?.map((publication) => {
921-
return {
922-
id: publication.id,
923-
isCurrentVersion: item.currentPublicationId === publication.id,
924-
versionNumber: publication.versionString,
925-
urlPublished: publication.urlPublished,
926-
datePublished: publication.datePublished,
927-
};
928-
}) || []
961+
item.publications
962+
?.filter((publication) =>
963+
latestMinorPublications[
964+
publication.versionStage ?? 'unassigned'
965+
].includes(publication),
966+
)
967+
.map((publication) => {
968+
return {
969+
id: publication.id,
970+
isCurrentVersion: item.currentPublicationId === publication.id,
971+
versionNumber: publication.versionString,
972+
urlPublished: publication.urlPublished,
973+
datePublished: publication.datePublished,
974+
};
975+
}) || []
929976
);
930977
},
931978
/**

0 commit comments

Comments
 (0)