diff --git a/mir-module/src/main/resources/config/mir/deprecated.properties b/mir-module/src/main/resources/config/mir/deprecated.properties index df33214391..a181836ead 100644 --- a/mir-module/src/main/resources/config/mir/deprecated.properties +++ b/mir-module/src/main/resources/config/mir/deprecated.properties @@ -6,3 +6,4 @@ MCR.Access.Strategy.SubmittedCategory=MCR.Access.Strategy.SubmittedCategories # needs to be replaced with one property per disabled property type MIR.Viewer.DisableDerivateType=MCR.Derivate.DisplayFilters.mir.Filter.Filters.20.Mappings.show-file-viewer.[thumbnail,...] MIR.OwnerStrategy.FallbackClass=MIR.OwnerStrategy.Fallback.Class +MIR.Metadata.Admindata.ShowRealUserName=MIR.AdmindataBox.ShowRealUserName diff --git a/mir-module/src/main/resources/config/mir/mycore.properties b/mir-module/src/main/resources/config/mir/mycore.properties index 1d087251ab..b2e1740c1f 100644 --- a/mir-module/src/main/resources/config/mir/mycore.properties +++ b/mir-module/src/main/resources/config/mir/mycore.properties @@ -109,7 +109,6 @@ MCR.ContentTransformer.mets-dfg.Stylesheet=xslt/mets/mets-dfg.xsl # Configure METSEditor # ############################################################################## MIR.METSEditor.enable=false -MIR.Metadata.Admindata.ShowRealUserName=false ############################################################################# # HTML Editor # @@ -249,7 +248,8 @@ MCR.URIResolver.xslIncludes.mycoreobjectXML=%MCR.URIResolver.xslIncludes.mycoreo MCR.URIResolver.xslIncludes.RDF-mods-journal=%MCR.URIResolver.xslIncludes.RDF-mods-journal%,resource:xslt/RDF-mods-journal-mir.xsl MCR.URIResolver.xslIncludes.solrResponse=%MCR.URIResolver.xslIncludes.solrResponse%,resource:xslt/response-mir.xsl MCR.URIResolver.xslIncludes.xeditorTemplates=%MCR.URIResolver.xslIncludes.xeditorTemplates%,resource:xslt/xeditor-mir-templates.xsl -MCR.URIResolver.xslIncludes.functions=%MCR.URIResolver.xslIncludes.functions%,functions/miraccesskeyutil.xsl,functions/mirdateconverter.xsl,functions/mireditorutils.xsl,functions/mirmapper.xsl,functions/mirorcidutil.xsl,functions/mirstrutils.xsl,functions/mirvalidationhelper.xsl +MCR.URIResolver.xslIncludes.functions=%MCR.URIResolver.xslIncludes.functions%,functions/miraccesskeyutil.xsl,functions/mirdateconverter.xsl,functions/mireditorutils.xsl,functions/mirmapper.xsl,functions/mirmods.xsl,functions/mirobject.xsl,functions/mirorcidutil.xsl,functions/mirstrutils.xsl,functions/mirvalidationhelper.xsl,\ + metadata/functions/mirboxfields.xsl,metadata/functions/mirdates.xsl,metadata/functions/mirnotes.xsl MCR.URIResolver.xslIncludes.objectTypes=resource:xslt/mods.xsl MIR.AVPlayer.Stylesheet=metadata/mir-video.js.xsl MCR.URIResolver.xslImports.modsmeta=metadata/mods-metadata-base.xsl,metadata/mir-browse.xsl,metadata/mir-breadcrumbs.xsl,metadata/mir-metadata-box.xsl,metadata/mir-admindata-box.xsl,metadata/mir-abstract.xsl,metadata/mir-collapse-files.xsl,metadata/mir-file-upload.xsl,metadata/mir-edit.xsl,metadata/mir-share.xsl,%MIR.AVPlayer.Stylesheet%,metadata/mir-viewer.xsl,metadata/mir-citation.xsl,metadata/mir-thumbnail.xsl,metadata/mir-export.xsl,metadata/mir-history.xsl,metadata/mir-epusta.xsl,metadata/mir-workflow.xsl @@ -294,6 +294,33 @@ MIR.xMetaDissPlus.rights.rightsReserved2free=true MIR.xMetaDissPlus.person.termsOfAddress2academicTitle=false +############################################################################## +# Metadata and admin box (detail page) # +############################################################################## +MCR.URIResolver.xslIncludes.metadatabox=metadata/metadata-box/title.xsl,\ + metadata/metadata-box/conference.xsl,metadata/metadata-box/name.xsl,metadata/metadata-box/parent.xsl,\ + metadata/metadata-box/related-item.xsl,metadata/metadata-box/edition.xsl,\ + metadata/metadata-box/dates.xsl,metadata/metadata-box/identifier.xsl,\ + metadata/metadata-box/language.xsl,metadata/metadata-box/type-of-resource.xsl,\ + metadata/metadata-box/physical-description.xsl,metadata/metadata-box/funding.xsl,\ + metadata/metadata-box/place.xsl,metadata/metadata-box/publisher.xsl,\ + metadata/metadata-box/subject.xsl,metadata/metadata-box/classification.xsl,\ + metadata/metadata-box/part.xsl,metadata/metadata-box/location.xsl,metadata/metadata-box/corporate.xsl,\ + metadata/metadata-box/characteristics.xsl,metadata/metadata-box/note.xsl +MIR.MetadataBox.Fields=title,conference,name,parent,related-item,related-item.volume,related-item.issue,edition,\ + dates.created,dates.submitted,dates.accepted,dates.reviewed,dates.captured,dates.issued,dates.modified,\ + identifier,identifier.issn,language,type-of-resource,physical-description.form,physical-description.note,\ + physical-description,funding,place,place.creation,\ + publisher,publisher.creation,subject.geographic,subject,classification,part,location.url,location.physical,\ + location.shelf,corporate,characteristics,note + +MCR.URIResolver.xslIncludes.admindatabox=metadata/admindata-box/state.xsl,\ + metadata/admindata-box/created.xsl,metadata/admindata-box/note.xsl,metadata/admindata-box/modified.xsl,\ + metadata/admindata-box/object-id.xsl,metadata/admindata-box/identifier.xsl,metadata/admindata-box/version.xsl +MIR.AdmindataBox.Fields=state,created,created.by,note,modified,modified.by,object-id,identifier.intern,version +MIR.AdmindataBox.ShowRealUserName=false + + ############################################################################## # Website # ############################################################################## diff --git a/mir-module/src/main/resources/xslt/functions/mirmods.xsl b/mir-module/src/main/resources/xslt/functions/mirmods.xsl new file mode 100644 index 0000000000..8e59165fb4 --- /dev/null +++ b/mir-module/src/main/resources/xslt/functions/mirmods.xsl @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/functions/mirobject.xsl b/mir-module/src/main/resources/xslt/functions/mirobject.xsl new file mode 100644 index 0000000000..ce2a5313c7 --- /dev/null +++ b/mir-module/src/main/resources/xslt/functions/mirobject.xsl @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/common/fields-fallback.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/common/fields-fallback.xsl new file mode 100644 index 0000000000..4a49709bc5 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/common/fields-fallback.xsl @@ -0,0 +1,10 @@ + + + + + WARN: unknown admin box field '' + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/common/fields.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/common/fields.xsl new file mode 100644 index 0000000000..6e6fd7de00 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/common/fields.xsl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/created.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/created.xsl new file mode 100644 index 0000000000..2cb9bf4095 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/created.xsl @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/helpers.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/helpers.xsl new file mode 100644 index 0000000000..bd8dfc5fde --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/helpers.xsl @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/identifier.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/identifier.xsl new file mode 100644 index 0000000000..c106d81139 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/identifier.xsl @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/modified.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/modified.xsl new file mode 100644 index 0000000000..1e0a1703a1 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/modified.xsl @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/note.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/note.xsl new file mode 100644 index 0000000000..5b0ab393d4 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/note.xsl @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/object-id.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/object-id.xsl new file mode 100644 index 0000000000..401300e76d --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/object-id.xsl @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/shared/date.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/shared/date.xsl new file mode 100644 index 0000000000..e9cd8f8b8e --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/shared/date.xsl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/shared/user.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/shared/user.xsl new file mode 100644 index 0000000000..c081aed4a4 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/shared/user.xsl @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/state.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/state.xsl new file mode 100644 index 0000000000..4c276223c4 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/state.xsl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/admindata-box/version.xsl b/mir-module/src/main/resources/xslt/metadata/admindata-box/version.xsl new file mode 100644 index 0000000000..f123ad5cce --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/admindata-box/version.xsl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/common/metadata-row-defaults.xsl b/mir-module/src/main/resources/xslt/metadata/common/metadata-row-defaults.xsl new file mode 100644 index 0000000000..3046a25987 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/common/metadata-row-defaults.xsl @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/common/metadata-row.xsl b/mir-module/src/main/resources/xslt/metadata/common/metadata-row.xsl new file mode 100644 index 0000000000..c7fdb7b023 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/common/metadata-row.xsl @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WARN: meta-row without label + + + +
+ + + + +
+
+ + + + + + + +
+
+
+ + + + + + + + + + + + +
+
+
+
+ + + +
+
+ + + + + + + +
+
+
+
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/functions/mirboxfields.xsl b/mir-module/src/main/resources/xslt/metadata/functions/mirboxfields.xsl new file mode 100644 index 0000000000..58baec8e7a --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/functions/mirboxfields.xsl @@ -0,0 +1,27 @@ + + + + + + + + + + + WARN: property is not set, no fields displayed + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/functions/mirdates.xsl b/mir-module/src/main/resources/xslt/metadata/functions/mirdates.xsl new file mode 100644 index 0000000000..2f8f36e8ca --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/functions/mirdates.xsl @@ -0,0 +1,26 @@ + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/functions/mirnotes.xsl b/mir-module/src/main/resources/xslt/metadata/functions/mirnotes.xsl new file mode 100644 index 0000000000..42c9e3f3b3 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/functions/mirnotes.xsl @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/characteristics.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/characteristics.xsl new file mode 100644 index 0000000000..86dbff5171 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/characteristics.xsl @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + + + + + + +
+
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/classification.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/classification.xsl new file mode 100644 index 0000000000..a86afe8ce3 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/classification.xsl @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/common/fields-fallback.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/common/fields-fallback.xsl new file mode 100644 index 0000000000..eb887eaee9 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/common/fields-fallback.xsl @@ -0,0 +1,10 @@ + + + + + WARN: unknown metadata box field '' + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/common/fields.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/common/fields.xsl new file mode 100644 index 0000000000..cf7d8481b6 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/common/fields.xsl @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/conference.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/conference.xsl new file mode 100644 index 0000000000..de891f23b0 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/conference.xsl @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/corporate.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/corporate.xsl new file mode 100644 index 0000000000..4f850260ad --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/corporate.xsl @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/dates.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/dates.xsl new file mode 100644 index 0000000000..d4f058aa05 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/dates.xsl @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/edition.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/edition.xsl new file mode 100644 index 0000000000..d757087ae2 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/edition.xsl @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/funding.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/funding.xsl new file mode 100644 index 0000000000..a6a3b916b0 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/funding.xsl @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + [ + + + + + + + + + + + ] + +
+
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/helpers.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/helpers.xsl new file mode 100644 index 0000000000..be047998af --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/helpers.xsl @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/identifier.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/identifier.xsl new file mode 100644 index 0000000000..74282af805 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/identifier.xsl @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/language.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/language.xsl new file mode 100644 index 0000000000..4de8dbe5f9 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/language.xsl @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/location.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/location.xsl new file mode 100644 index 0000000000..0dd16b2495 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/location.xsl @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/name.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/name.xsl new file mode 100644 index 0000000000..390e44f85b --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/name.xsl @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + et.al. + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/note.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/note.xsl new file mode 100644 index 0000000000..8ee206c8a6 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/note.xsl @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/parent.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/parent.xsl new file mode 100644 index 0000000000..4599cb23e7 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/parent.xsl @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/part.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/part.xsl new file mode 100644 index 0000000000..de69297054 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/part.xsl @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/physical-description.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/physical-description.xsl new file mode 100644 index 0000000000..e4601353b1 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/physical-description.xsl @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/place.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/place.xsl new file mode 100644 index 0000000000..99cbab408e --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/place.xsl @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/publisher.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/publisher.xsl new file mode 100644 index 0000000000..f12a4e784c --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/publisher.xsl @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/related-item.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/related-item.xsl new file mode 100644 index 0000000000..d89db20e5e --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/related-item.xsl @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/classification-link.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/classification-link.xsl new file mode 100644 index 0000000000..b74f677855 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/classification-link.xsl @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + _blank + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/extent.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/extent.xsl new file mode 100644 index 0000000000..27524cafd7 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/extent.xsl @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/gnd.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/gnd.xsl new file mode 100644 index 0000000000..01a544ec4c --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/gnd.xsl @@ -0,0 +1,12 @@ + + + + + + GND + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/metadata-row.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/metadata-row.xsl new file mode 100644 index 0000000000..8657effab5 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/metadata-row.xsl @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/name.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/name.xsl new file mode 100644 index 0000000000..6ecbed9138 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/name.xsl @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/related-item.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/related-item.xsl new file mode 100644 index 0000000000..1f86ac6faf --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/related-item.xsl @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + , + + + + + + + + + + + ( + + ) + + + + , + + + + + , + + + + +
+
+
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/ui-helpers.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/ui-helpers.xsl new file mode 100644 index 0000000000..504f020890 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/shared/ui-helpers.xsl @@ -0,0 +1,57 @@ + + + + + + + + + ... + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/subject.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/subject.xsl new file mode 100644 index 0000000000..c09b9e1293 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/subject.xsl @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
  1. + +
  2. +
    +
+
+
+
+
+
+ + + + + + + + + + + + + +
+
+ +
+
+ + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + : + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + +
+
+ +
+ +
+
+ +
+
+
+ + + + + + + + + + + + + +
diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/title.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/title.xsl new file mode 100644 index 0000000000..d34f825ae2 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/title.xsl @@ -0,0 +1,51 @@ + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + +
diff --git a/mir-module/src/main/resources/xslt/metadata/metadata-box/type-of-resource.xsl b/mir-module/src/main/resources/xslt/metadata/metadata-box/type-of-resource.xsl new file mode 100644 index 0000000000..6a8dcc3b79 --- /dev/null +++ b/mir-module/src/main/resources/xslt/metadata/metadata-box/type-of-resource.xsl @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/main/resources/xslt/metadata/mir-admindata-box.xsl b/mir-module/src/main/resources/xslt/metadata/mir-admindata-box.xsl index 6ee1fd202f..c4666ec618 100644 --- a/mir-module/src/main/resources/xslt/metadata/mir-admindata-box.xsl +++ b/mir-module/src/main/resources/xslt/metadata/mir-admindata-box.xsl @@ -1,183 +1,28 @@ - + + + - - -
-
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ + + +
+
+ + + + +
+
-
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mir-module/src/main/resources/xslt/metadata/mir-metadata-box.xsl b/mir-module/src/main/resources/xslt/metadata/mir-metadata-box.xsl index 9481bd27ca..3b15ede3e4 100644 --- a/mir-module/src/main/resources/xslt/metadata/mir-metadata-box.xsl +++ b/mir-module/src/main/resources/xslt/metadata/mir-metadata-box.xsl @@ -1,561 +1,33 @@ - - - - + + - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - + + + + + +
+
+ + + + + +
+
- - - - - - - - - - -
- - - - - - ... - - - - - - - - - - -
-
-
- - - - - - - - - -
-
- -
-
- - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - -
-
- -
-
- - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - -
-
- -
-
- - - - - - - - - - - - - - - -
- - -
- -
-
- - - -
-
-
- -
- -
-
- -
-
-
-
-
- - -
- - - - - - - : - - - - - - - - - - - - - - -
-
- -
-
- - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - -
- -
- - - - -
+ +
diff --git a/mir-module/src/main/resources/xslt/metadata/mods-metadata-page.xsl b/mir-module/src/main/resources/xslt/metadata/mods-metadata-page.xsl index 4d94186fc3..6beb688469 100644 --- a/mir-module/src/main/resources/xslt/metadata/mods-metadata-page.xsl +++ b/mir-module/src/main/resources/xslt/metadata/mods-metadata-page.xsl @@ -21,9 +21,9 @@ - + @@ -122,7 +122,7 @@
- +

@@ -132,28 +132,30 @@

- +
- + + +
@@ -259,7 +261,7 @@ - + @@ -284,32 +286,4 @@ - - -
- -
-
- -
- -
-
- -
- -
-
- -
- - - - - - -
-
- - diff --git a/mir-module/src/main/resources/xslt/mods.xsl b/mir-module/src/main/resources/xslt/mods.xsl index bbb4d545e5..ad5484a0d4 100644 --- a/mir-module/src/main/resources/xslt/mods.xsl +++ b/mir-module/src/main/resources/xslt/mods.xsl @@ -11,7 +11,6 @@ - diff --git a/mir-module/src/main/resources/xslt/mods2csv.xsl b/mir-module/src/main/resources/xslt/mods2csv.xsl index b65f105675..b3ebc0eeba 100644 --- a/mir-module/src/main/resources/xslt/mods2csv.xsl +++ b/mir-module/src/main/resources/xslt/mods2csv.xsl @@ -234,7 +234,6 @@
- diff --git a/mir-module/src/main/resources/xslt/modsdetails-external.xsl b/mir-module/src/main/resources/xslt/modsdetails-external.xsl index e5f78069ae..577e7f4bad 100644 --- a/mir-module/src/main/resources/xslt/modsdetails-external.xsl +++ b/mir-module/src/main/resources/xslt/modsdetails-external.xsl @@ -1,6 +1,5 @@ + exclude-result-prefixes="#all"> + + @@ -31,6 +31,7 @@ + @@ -199,7 +200,7 @@
  • - +
  • @@ -763,40 +764,4 @@
    - - - - - - - - - - -
    - - - - - - - [ - - - - - - - - - - - ] - -
    - - -
    -
    -
    diff --git a/mir-module/src/main/resources/xslt/modsmetadata-legacy.xsl b/mir-module/src/main/resources/xslt/modsmetadata-legacy.xsl deleted file mode 100644 index 062e4c4b58..0000000000 --- a/mir-module/src/main/resources/xslt/modsmetadata-legacy.xsl +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -
    - - - - - - - - - - - - - -
    -
    - - - - -
    - - - - - - -
    -
    - -

    - - - -

    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   - - - - - - - - - - - - - - - - - - - -   - - - - - - - - - - - - - - - - - - - ( - - - - - ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - -
    diff --git a/mir-module/src/main/resources/xslt/modsmetadata.xsl b/mir-module/src/main/resources/xslt/modsmetadata.xsl deleted file mode 100644 index a94b621e0b..0000000000 --- a/mir-module/src/main/resources/xslt/modsmetadata.xsl +++ /dev/null @@ -1,1740 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - - - -
    - - -
    -
    - - - GND - - - - GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _blank - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - alternativeHeadline - - - headline - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - -
    -
    -
    -
    - - - - - - - - - - - - - - - -
    -

    - -

    -
    - - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - -
    - - - - - - - -
    - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Organisation - Person - - - - - - - - - - - - - - - - -   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <br /> - - - - - - - - - - - - - - - - - - - - - , - - - - - - - - - - - ( - - ) - - - - , - - - - - , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - - - - - - - - - - - -

    - - - - - -
    -
    -
    - - -
    - - - - - - -
    -
    -
    - - - - - - - - - - - - - - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - -
    -

    - -

    - -
    - - - - - - -
    - - - - -
    -

    - -

    - -
    - - - - - - -
    - - - - -
    -

    - - -

    - -
    - - - - - - -
    - - - - -
    -

    - -

    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - -
    -
    -
    -
    - - - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - -
    -

    - -

    - -
    - - - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - -
    -

    - -

    - -
    - - - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - -
    -

    - -

    - -
    - - - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    - - - - -
    -

    - -

    - -
    - - - - - - -
    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - -
    -

    - -

    - -
    - - - - - - - -
    - - -
    diff --git a/mir-module/src/test/java/org/mycore/mir/xslt/MIRDatesXSLTest.java b/mir-module/src/test/java/org/mycore/mir/xslt/MIRDatesXSLTest.java new file mode 100644 index 0000000000..9e63b2c6c2 --- /dev/null +++ b/mir-module/src/test/java/org/mycore/mir/xslt/MIRDatesXSLTest.java @@ -0,0 +1,27 @@ +package org.mycore.mir.xslt; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Map; + +import org.junit.jupiter.api.Test; +import org.mycore.test.MyCoReTest; + +@MyCoReTest +public class MIRDatesXSLTest extends MIRXSLTFunctionTestCase { + + private static final String XSL = "/xslt/metadata/test/mirdates-test.xsl"; + + @Test + void testFormat() throws Exception { + assertEquals("2017", resultText(XSL, "test-format", Map.of("value", "2017"))); + assertEquals("2017", resultText(XSL, "test-format", Map.of("value", "17"))); + assertEquals("unknown", resultText(XSL, "test-format", Map.of("value", "unknown"))); + } + + @Test + void testFormatInvalidDate() throws Exception { + assertEquals("2019-13", resultText(XSL, "test-format", Map.of("value", "2019-13"))); + assertEquals("2020-02-30", resultText(XSL, "test-format", Map.of("value", "2020-02-30"))); + } +} diff --git a/mir-module/src/test/java/org/mycore/mir/xslt/MIRMetadataBoxXSLTest.java b/mir-module/src/test/java/org/mycore/mir/xslt/MIRMetadataBoxXSLTest.java new file mode 100644 index 0000000000..47b55a2cd6 --- /dev/null +++ b/mir-module/src/test/java/org/mycore/mir/xslt/MIRMetadataBoxXSLTest.java @@ -0,0 +1,180 @@ +package org.mycore.mir.xslt; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.InputStream; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.stream.Collectors; + +import javax.xml.transform.TransformerException; + +import org.jdom2.Document; +import org.jdom2.Element; +import org.jdom2.Text; +import org.jdom2.filter.Filters; +import org.jdom2.input.SAXBuilder; +import org.jdom2.xpath.XPathFactory; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mycore.common.MCRTestConfiguration; +import org.mycore.common.MCRTestProperty; +import org.mycore.common.config.MCRConfiguration2; +import org.mycore.common.util.MCRTestCaseClassificationUtil; +import org.mycore.test.MCRJPAExtension; +import org.mycore.test.MCRJPATestHelper; +import org.mycore.test.MyCoReTest; + +@MyCoReTest +@ExtendWith(MCRJPAExtension.class) +@MCRTestConfiguration(properties = { + @MCRTestProperty(key = "MCR.URIResolver.xslImports.modsmeta", + string = "metadata/test/modsmeta-test-base.xsl,metadata/mir-metadata-box.xsl,metadata/mir-admindata-box.xsl") +}) +public class MIRMetadataBoxXSLTest extends MIRXSLTFunctionTestCase { + + private static final String XSL = "/xslt/metadata/test/metadata-boxes-test.xsl"; + + private static final String RESOURCES = "/" + MIRMetadataBoxXSLTest.class.getSimpleName(); + + private static final String INCLUDES = "MCR.URIResolver.xslIncludes.metadatabox"; + + private static final String METADATA = "mir-metadata"; + + private static final String ADMIN = "mir-admindata"; + + @BeforeEach + void setUp() throws Exception { + for (String classification : List.of("identifier", "mir_genres", "noteTypes", "state", + "typeOfResource")) { + MCRTestCaseClassificationUtil.addClassification(RESOURCES + "/class/" + classification + ".xml"); + } + MCRJPATestHelper.endTransaction(); + } + + @Test + void testDefaultFieldOrder() throws Exception { + Document result = render(null); + + assertEquals(List.of("alternativ:", "Konferenz:", "Supervisor:", "In Serie:", "Datum der Veröffentlichung:", + "DOI:", "PPN:", "Sprache:", "Ressourcentyp:", "Schlagwörter:", "Physischer Standort:", "Bemerkung:", + "Public note:"), labels(result, METADATA)); + } + + @Test + void testAdminFieldOrder() throws Exception { + Document result = render(null); + + assertEquals(List.of("Publikationsstatus:", "Erstellt am:", "von:", "Admin note:", "Letzte Änderung:", "von:", + "MyCoRe ID:", "interne ID:", "Version:"), labels(result, ADMIN)); + assertEquals("mir_mods_00000001", text(value(result, ADMIN, "MyCoRe ID:"))); + } + + @Test + @MCRTestConfiguration(properties = { + @MCRTestProperty(key = "MIR.MetadataBox.Fields.thesis", string = "dates.issued,unknown-field,title") + }) + void testGenreFallsBackToParentGenreAndSkipsUnknownFields() throws Exception { + Document result = render("dissertation"); + + assertEquals(List.of("Datum der Veröffentlichung:", "alternativ:"), labels(result, METADATA)); + } + + @Test + @MCRTestConfiguration(properties = { + @MCRTestProperty(key = "MIR.MetadataBox.Fields.article", string = "none") + }) + void testGenreFieldListNoneHidesBox() throws Exception { + Document result = render("article"); + + assertNull(first(result, "//div[@id='" + METADATA + "']")); + assertFalse(labels(result, ADMIN).isEmpty()); + } + + @Test + @MCRTestConfiguration(properties = { + @MCRTestProperty(key = "MIR.AdmindataBox.Fields", string = "version,object-id") + }) + void testAdminFieldsAreConfigurable() throws Exception { + Document result = render(null); + + assertEquals(List.of("Version:", "MyCoRe ID:"), labels(result, ADMIN)); + } + + @Test + @MCRTestConfiguration(properties = { + @MCRTestProperty(key = "MIR.MetadataBox.Fields.thesis", string = "title") + }) + void testFieldOverrideWithPriorityReplacesFieldForGenre() throws Exception { + Document thesis = withIncludedModule("metadata/test/thesis-title-override.xsl", () -> render("dissertation")); + Document other = withIncludedModule("metadata/test/thesis-title-override.xsl", () -> render(null)); + + assertEquals(List.of("Thesis"), labels(thesis, METADATA)); + assertEquals("alternativ:", labels(other, METADATA).get(0)); + } + + @Test + void testDuplicateFieldRuleFails() { + TransformerException exception = assertThrows(TransformerException.class, + () -> withIncludedModule("metadata/test/duplicate-title.xsl", () -> render(null))); + + assertTrue(String.valueOf(exception.getMessage()).contains("Ambiguous rule match"), exception::getMessage); + } + + private static T withIncludedModule(String module, Callable action) throws Exception { + String original = MCRConfiguration2.getStringOrThrow(INCLUDES); + MCRConfiguration2.set(INCLUDES, original + "," + module); + try { + return action.call(); + } finally { + MCRConfiguration2.set(INCLUDES, original); + } + } + + private Document render(String genre) throws Exception { + Document object; + try (InputStream in = getClass().getResourceAsStream(RESOURCES + "/mir_mods_00000001.xml")) { + object = new SAXBuilder().build(in); + } + if (genre != null) { + Element genreElement = new Element("genre", MODS_NAMESPACE) + .setAttribute("type", "intern") + .setAttribute("authorityURI", "http://www.mycore.org/classifications/mir_genres") + .setAttribute("valueURI", "http://www.mycore.org/classifications/mir_genres#" + genre); + first(object, "//*[local-name()='mods']").addContent(0, genreElement); + } + return transformDocument(object, XSL, Map.of()); + } + + private static List labels(Document result, String boxId) { + return XPathFactory.instance().compile("//div[@id='" + boxId + "']/dl/dt", Filters.element()) + .evaluate(result).stream() + .map(Element::getTextNormalize) + .toList(); + } + + private static Element value(Document result, String boxId, String label) { + Element dd = first(result, + "//div[@id='" + boxId + "']/dl/dt[normalize-space(.)='" + label + "']/following-sibling::dd[1]"); + assertNotNull(dd, () -> "no row '" + label + "' in " + boxId); + return dd; + } + + private static String text(Element element) { + return element.getContent(Filters.text()).stream() + .map(Text::getTextNormalize) + .filter(text -> !text.isEmpty()) + .collect(Collectors.joining(" ")); + } + + private static Element first(Document document, String xpath) { + return XPathFactory.instance().compile(xpath, Filters.element()).evaluateFirst(document); + } +} diff --git a/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/identifier.xml b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/identifier.xml new file mode 100644 index 0000000000..62aec92045 --- /dev/null +++ b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/identifier.xml @@ -0,0 +1,18 @@ + + + diff --git a/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/mir_genres.xml b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/mir_genres.xml new file mode 100644 index 0000000000..b8f70608ea --- /dev/null +++ b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/mir_genres.xml @@ -0,0 +1,18 @@ + + + diff --git a/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/noteTypes.xml b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/noteTypes.xml new file mode 100644 index 0000000000..46a9abf55b --- /dev/null +++ b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/noteTypes.xml @@ -0,0 +1,17 @@ + + + diff --git a/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/state.xml b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/state.xml new file mode 100644 index 0000000000..282a00f6a2 --- /dev/null +++ b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/state.xml @@ -0,0 +1,12 @@ + + + diff --git a/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/typeOfResource.xml b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/typeOfResource.xml new file mode 100644 index 0000000000..8f042e30c8 --- /dev/null +++ b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/class/typeOfResource.xml @@ -0,0 +1,13 @@ + + + diff --git a/mir-module/src/test/resources/MIRMetadataBoxXSLTest/mir_mods_00000001.xml b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/mir_mods_00000001.xml new file mode 100644 index 0000000000..c358642e56 --- /dev/null +++ b/mir-module/src/test/resources/MIRMetadataBoxXSLTest/mir_mods_00000001.xml @@ -0,0 +1,73 @@ + + + + + + + + + Alternative Title + + + Conference 2024 + + + Doe + Jane + + Supervisor + + + + + Series + + + + 3 + + + + + 2020-05 + + 10.1234/abc + http://uri.gbv.de/document/gvk:ppn:12345 + intern-42 + + de + + text + + Metadata + + Roe + Richard + University A + University B + + + + Library + + Admin note +second line + Public note + + + + + + + 2024-03-01T10:15:30.123Z + 2025-01-02T08:00:00.000Z + + + creator + modifier + + + + + + diff --git a/mir-module/src/test/resources/xslt/metadata/test/duplicate-title.xsl b/mir-module/src/test/resources/xslt/metadata/test/duplicate-title.xsl new file mode 100644 index 0000000000..7663b6ba88 --- /dev/null +++ b/mir-module/src/test/resources/xslt/metadata/test/duplicate-title.xsl @@ -0,0 +1,10 @@ + + + + +
    Duplicate
    +
    + +
    diff --git a/mir-module/src/test/resources/xslt/metadata/test/metadata-boxes-test.xsl b/mir-module/src/test/resources/xslt/metadata/test/metadata-boxes-test.xsl new file mode 100644 index 0000000000..bebe5b94e3 --- /dev/null +++ b/mir-module/src/test/resources/xslt/metadata/test/metadata-boxes-test.xsl @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/mir-module/src/test/resources/xslt/metadata/test/mirdates-test.xsl b/mir-module/src/test/resources/xslt/metadata/test/mirdates-test.xsl new file mode 100644 index 0000000000..2615261f91 --- /dev/null +++ b/mir-module/src/test/resources/xslt/metadata/test/mirdates-test.xsl @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/mir-module/src/test/resources/xslt/metadata/test/modsmeta-test-base.xsl b/mir-module/src/test/resources/xslt/metadata/test/modsmeta-test-base.xsl new file mode 100644 index 0000000000..15e448e48e --- /dev/null +++ b/mir-module/src/test/resources/xslt/metadata/test/modsmeta-test-base.xsl @@ -0,0 +1,8 @@ + + + + + + diff --git a/mir-module/src/test/resources/xslt/metadata/test/thesis-title-override.xsl b/mir-module/src/test/resources/xslt/metadata/test/thesis-title-override.xsl new file mode 100644 index 0000000000..b577ebad82 --- /dev/null +++ b/mir-module/src/test/resources/xslt/metadata/test/thesis-title-override.xsl @@ -0,0 +1,11 @@ + + + + +
    Thesis
    +
    override
    +
    + +