From 1b4f1e8aa671e01ac6a836602421a1e0af50dc90 Mon Sep 17 00:00:00 2001 From: Release-Tool Date: Thu, 5 Sep 2024 19:56:03 +0200 Subject: [PATCH 01/48] Change project version to 24.09-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e08760974..d9ce4b84d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ io.goobi.workflow workflow-base - 24.08.1 + 24.09-SNAPSHOT workflow-core From 83a73d902087b5dedeebef9b937773e61decd35d Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Fri, 6 Sep 2024 06:20:02 +0200 Subject: [PATCH 02/48] fix: display primefaces inputfields in correct font size --- .../uii/templatePG/css/src/components/_forms-custom.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss b/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss index 11d1d97f7..9eabdbaba 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss @@ -111,10 +111,11 @@ option:checked { // Other overrides body .ui-inputfield { - padding: 0.1875rem 0.75rem; border: var(--gw-border); border-color: var(--bs-border-color); border-radius: var(--gw-border-radius); + font-size: 0.75rem; + padding: .375rem .75rem; &:hover { border-color: var(--clr-primary-400); } From 9087e73139c47528d21485196841a78e289720ab Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Fri, 6 Sep 2024 11:08:44 +0200 Subject: [PATCH 03/48] new messages for archive fields --- src/main/resources/messages_de.properties | 29 ++++++++++++++++++++--- src/main/resources/messages_en.properties | 27 +++++++++++++++++++-- 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/src/main/resources/messages_de.properties b/src/main/resources/messages_de.properties index ab8079ed2..dea7c52d2 100644 --- a/src/main/resources/messages_de.properties +++ b/src/main/resources/messages_de.properties @@ -2299,7 +2299,10 @@ plugin_administration_archive_DescriptionDates=Datum oder Zeitraum der Verzeichn plugin_administration_archive_Number=Archiv Nummer plugin_administration_archive_Shelfmark=Signatur(en) plugin_administration_archive_accessrestrict=Zugangsbestimmungen +plugin_administration_archive_accessrestrict_date=Ablaufdatum +plugin_administration_archive_accessrestrict_value=Wert plugin_administration_archive_accruals=Neuzug\u00E4nge +plugin_administration_archive_accruals_date=Datum plugin_administration_archive_accruals_head=\u00DCberschrift plugin_administration_archive_accruals_p=Beschreibung plugin_administration_archive_acqinfo=Abgebende Stelle @@ -2307,9 +2310,13 @@ plugin_administration_archive_addMultipleNodes=Mehrere Unterknoten an dieser Ste plugin_administration_archive_addNodes=Knoten erstellen plugin_administration_archive_advancedSearch=Erweiterte Suche plugin_administration_archive_agencycode=Agency code +plugin_administration_archive_agent=Person/Agent plugin_administration_archive_altformavail=Kopien bzw. Reproduktionen plugin_administration_archive_altformavail_head=\u00DCberschrift +plugin_administration_archive_altformavail_link=Link plugin_administration_archive_altformavail_p=Beschreibung +plugin_administration_archive_altformavail_person=Person/Agent +plugin_administration_archive_altformavail_shelfmark=Signatur plugin_administration_archive_appraisal=Bewertung und Kassation plugin_administration_archive_area_access=Zugangs- und Benutzungsbedingungen plugin_administration_archive_area_content=Inhalt und innere Ordnung @@ -2353,6 +2360,9 @@ plugin_administration_archive_eadExport=Bestand als EAD in den in der Plugin-Kon plugin_administration_archive_eadExportNotConfigured=Export ist nicht konfiguriert plugin_administration_archive_eadid=EAD ID plugin_administration_archive_editorName=Bearbeiter +plugin_administration_archive_eventdatetime=Datum +plugin_administration_archive_eventdescription=Beschreibung +plugin_administration_archive_eventtype=Event plugin_administration_archive_exit=Zur\u00FCck zur \u00DCbersicht plugin_administration_archive_extref=Beschreibung des Links plugin_administration_archive_extrefhref=Link zum Repository @@ -2361,6 +2371,7 @@ plugin_administration_archive_generated=Generiert plugin_administration_archive_langmaterial=Sprache | Schrift plugin_administration_archive_linkNodeModal=Knoten verlinken plugin_administration_archive_loadDatabase=Bearbeiten +plugin_administration_archive_maintenancehistory=Historie plugin_administration_archive_materialspec=Materialspezifische Angaben plugin_administration_archive_missing_Data=Unvollst\u00E4ndige Daten, bitte Datenbank ausw\u00E4hlen und EAD Datei hochladen plugin_administration_archive_moveHierarchyDown=In der Hierarchie nach unten bewegen @@ -2389,16 +2400,26 @@ plugin_administration_archive_numberOfNodes=Anzahl Knoten plugin_administration_archive_oddnote=Weitere Anmerkungen plugin_administration_archive_originalsloc=Aufbewahrungsort der Originale plugin_administration_archive_originalsloc_head=\u00DCberschrift +plugin_administration_archive_originalsloc_link=Link plugin_administration_archive_originalsloc_p=Beschreibung +plugin_administration_archive_originalsloc_person=Person/Agent +plugin_administration_archive_originalsloc_shelfmark=Signatur plugin_administration_archive_origination=Name der Provenienzstelle plugin_administration_archive_originationcorpname=K\u00F6rperschaft der Provenienzstelle plugin_administration_archive_otherfindaid=Findhilfsmittel -plugin_administration_archive_permission_management_write=Zum Bearbeiten von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung: -plugin_administration_archive_permission_management_upload=Zum Hochladen von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung: -plugin_administration_archive_permission_management_new=Zum Anlegen von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung: +plugin_administration_archive_otherfindaid_link=Link +plugin_administration_archive_otherfindaid_node=Knoten +plugin_administration_archive_otherfindaid_type=Typ +plugin_administration_archive_permission_management_new=Zum Anlegen von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung\: +plugin_administration_archive_permission_management_upload=Zum Hochladen von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung\: +plugin_administration_archive_permission_management_write=Zum Bearbeiten von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung\: plugin_administration_archive_person=Person plugin_administration_archive_physdesc=Umfang +plugin_administration_archive_physdescdimensions=Ausma\u00DFe +plugin_administration_archive_physdescextent=Umfang +plugin_administration_archive_physdescquantity=Anzahl plugin_administration_archive_physdescstructured=Umfang (normiert) +plugin_administration_archive_physdescunittype=Einheit plugin_administration_archive_phystech=Physische Beschaffenheit und technische Anforderungen plugin_administration_archive_please_select_node=Bitte w\u00E4hlen Sie zun\u00E4chst einen Knoten aus. plugin_administration_archive_prefix=Pr\u00E4fix @@ -2411,9 +2432,11 @@ plugin_administration_archive_removeInvalidProcessIds=Verweise zu Vorg\u00E4ngen plugin_administration_archive_repository=Repository plugin_administration_archive_repositoryLabel=Bezeichnung plugin_administration_archive_repositoryaddressline=Adresse +plugin_administration_archive_reviewRequired=\u00DCberpr\u00FCfung notwendig plugin_administration_archive_role=Rolle plugin_administration_archive_saveAndExit=Archivbestand speichern und verlassen plugin_administration_archive_scopecontent=Form und Inhalt +plugin_administration_archive_selection=Duplizieren plugin_administration_archive_selectionHeading=Archivbest\u00E4nde plugin_administration_archive_selectionText=Bitte w\u00E4hlen Sie zun\u00E4chst den Archivbestand aus, mit dem Sie arbeiten m\u00F6chten\: plugin_administration_archive_separatedmaterial=Verwandte Verzeichnungseinheiten diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index f22fecfb8..fd7819000 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -2299,7 +2299,10 @@ plugin_administration_archive_DescriptionDates=Date(s) of descriptionszzz plugin_administration_archive_Number=Archive Number plugin_administration_archive_Shelfmark=Reference code(s) plugin_administration_archive_accessrestrict=Conditions governing access +plugin_administration_archive_accessrestrict_date=Expiry datezzz +plugin_administration_archive_accessrestrict_value=Value plugin_administration_archive_accruals=Accruals +plugin_administration_archive_accruals_date=Date plugin_administration_archive_accruals_head=Headingzzz plugin_administration_archive_accruals_p=Descriptionzzz plugin_administration_archive_acqinfo=Immediate source of acquisition or transfer @@ -2307,9 +2310,13 @@ plugin_administration_archive_addMultipleNodes=Insert multiple subnodes at this plugin_administration_archive_addNodes=Create nodeszzz plugin_administration_archive_advancedSearch=Advanced searchzzz plugin_administration_archive_agencycode=Agency code +plugin_administration_archive_agent=Person/Agentzzz plugin_administration_archive_altformavail=Existence and location of copies plugin_administration_archive_altformavail_head=Headingzzz +plugin_administration_archive_altformavail_link=Linkzzz plugin_administration_archive_altformavail_p=Descriptionzzz +plugin_administration_archive_altformavail_person=Person/Agentzzz +plugin_administration_archive_altformavail_shelfmark=Shelfmarkzzz plugin_administration_archive_appraisal=Appraisal, destruction and scheduling information plugin_administration_archive_area_access=Condition of Access and Use Area plugin_administration_archive_area_content=Content and Structure Area @@ -2353,6 +2360,9 @@ plugin_administration_archive_eadExport=Export record group to the folder listed plugin_administration_archive_eadExportNotConfigured=Export is not configuredzzz plugin_administration_archive_eadid=EAD ID plugin_administration_archive_editorName=Editor zzz +plugin_administration_archive_eventdatetime=Datezzz +plugin_administration_archive_eventdescription=Descriptionzzz +plugin_administration_archive_eventtype=Eventzzz plugin_administration_archive_exit=Back to overview plugin_administration_archive_extref=Link descriptionzzz plugin_administration_archive_extrefhref=Repository linkzzz @@ -2361,6 +2371,7 @@ plugin_administration_archive_generated=Generatedzzz plugin_administration_archive_langmaterial=Language | Scripts of material plugin_administration_archive_linkNodeModal=Link nodezzz plugin_administration_archive_loadDatabase=Edit +plugin_administration_archive_maintenancehistory=Historyzzz plugin_administration_archive_materialspec=Material Specific Details plugin_administration_archive_missing_Data=Incomplete data, please select database and upload EAD file zzz plugin_administration_archive_moveHierarchyDown=Move down the hierarchy @@ -2389,16 +2400,26 @@ plugin_administration_archive_numberOfNodes=Number of nodeszzz plugin_administration_archive_oddnote=Odd notes plugin_administration_archive_originalsloc=Existence and location of originals plugin_administration_archive_originalsloc_head=Headingzzz +plugin_administration_archive_originalsloc_link=Linkzzz plugin_administration_archive_originalsloc_p=Descriptionzzz +plugin_administration_archive_originalsloc_person=Person/Agentzzz +plugin_administration_archive_originalsloc_shelfmark=Shelfmarkzzz plugin_administration_archive_origination=Name of creator(s) plugin_administration_archive_originationcorpname=Corporate body of the provenancezzz plugin_administration_archive_otherfindaid=Finding aids -plugin_administration_archive_permission_management_write=To edit archive records you need this permission\: -plugin_administration_archive_permission_management_upload=To upload archive records you need this permission\: +plugin_administration_archive_otherfindaid_link=Linkzzz +plugin_administration_archive_otherfindaid_node=Nodezzz +plugin_administration_archive_otherfindaid_type=Typezzz plugin_administration_archive_permission_management_new=To create new archive records you need this permission\: +plugin_administration_archive_permission_management_upload=To upload archive records you need this permission\: +plugin_administration_archive_permission_management_write=To edit archive records you need this permission\: plugin_administration_archive_person=Person plugin_administration_archive_physdesc=Extent and medium of the unit of description (quantity, bulk, or size) +plugin_administration_archive_physdescdimensions=Dimensions +plugin_administration_archive_physdescextent=Extent +plugin_administration_archive_physdescquantity=Quantityzzz plugin_administration_archive_physdescstructured=Standardized extent and medium of the unit of description (quantity, bulk, or size) +plugin_administration_archive_physdescunittype=Unitzzz plugin_administration_archive_phystech=Physical characteristics and technical requirements plugin_administration_archive_please_select_node=Please select a node first. plugin_administration_archive_prefix=Prefixzzz @@ -2411,9 +2432,11 @@ plugin_administration_archive_removeInvalidProcessIds=Update references to proce plugin_administration_archive_repository=Repository plugin_administration_archive_repositoryLabel=Label plugin_administration_archive_repositoryaddressline=Address +plugin_administration_archive_reviewRequired=Review requiredzzz plugin_administration_archive_role=Role plugin_administration_archive_saveAndExit=Save and exit record group plugin_administration_archive_scopecontent=Scope and content +plugin_administration_archive_selection=Duplicatezzz plugin_administration_archive_selectionHeading=Archive records plugin_administration_archive_selectionText=Please first select the record group you would like to work with\: plugin_administration_archive_separatedmaterial=Related units of description From a9e79b6bbf29b9f8b4251b69e19d8798434ebe3e Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Mon, 9 Sep 2024 11:06:51 +0200 Subject: [PATCH 04/48] fix: NPE when language bean is not present --- .../api/vocabulary/helper/ExtendedFieldInstance.java | 7 ++++++- .../api/vocabulary/helper/ExtendedTranslationInstance.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java b/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java index 93774b5fd..a14172eb3 100644 --- a/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java +++ b/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java @@ -1,5 +1,6 @@ package io.goobi.workflow.api.vocabulary.helper; +import de.sub.goobi.forms.SpracheForm; import de.sub.goobi.helper.Helper; import io.goobi.vocabulary.exchange.FieldDefinition; import io.goobi.vocabulary.exchange.FieldInstance; @@ -19,6 +20,7 @@ import java.util.Comparator; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Optional; import java.util.function.Function; import java.util.function.Supplier; @@ -33,7 +35,10 @@ public class ExtendedFieldInstance extends FieldInstance { private Function> recordsResolver = this::getAllRecords; private Function definitionResolver = VocabularyAPIManager.getInstance().vocabularySchemas()::getDefinition; private Function typeResolver = VocabularyAPIManager.getInstance().fieldTypes()::get; - private Supplier languageSupplier = Helper.getLanguageBean().getLocale()::getLanguage; + private Supplier languageSupplier = () -> Optional.ofNullable(Helper.getLanguageBean()) + .map(SpracheForm::getLocale) + .map(Locale::getLanguage) + .orElse(null); private FieldDefinition definition; private FieldType type; diff --git a/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedTranslationInstance.java b/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedTranslationInstance.java index 4bf6944db..54f478a1e 100644 --- a/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedTranslationInstance.java +++ b/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedTranslationInstance.java @@ -52,6 +52,9 @@ private void postInit() { } static String transformToThreeCharacterAbbreviation(String language) { + if (language == null) { + return null; + } switch (language) { case "en": return "eng"; From fe7c19c5bb25b9373330e378b4ff6e5f34048eff Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Mon, 9 Sep 2024 11:07:38 +0200 Subject: [PATCH 05/48] task: add new VariableReplacer matcher for multiple process properties --- .../de/sub/goobi/helper/VariableReplacer.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/de/sub/goobi/helper/VariableReplacer.java b/src/main/java/de/sub/goobi/helper/VariableReplacer.java index 7c5362713..84fb2583a 100644 --- a/src/main/java/de/sub/goobi/helper/VariableReplacer.java +++ b/src/main/java/de/sub/goobi/helper/VariableReplacer.java @@ -37,6 +37,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import java.util.regex.MatchResult; import java.util.regex.Matcher; @@ -145,6 +146,7 @@ private enum MetadataLevel { private static final String REGEX_PRODUCT = PREFIX + "product\\.([^)}]+?)" + SUFFIX; private static final String REGEX_TEMPLATE = PREFIX + "template\\.([^)}]+?)" + SUFFIX; private static final String REGEX_PROCESS = PREFIX + "process\\.([^)}]+?)" + SUFFIX; + private static final String REGEX_PROCESSES = PREFIX + "processes\\.([^)}]+?)" + SUFFIX; private static final String REGEX_DB_META = PREFIX + "db_meta\\.([^)}]+?)" + SUFFIX; private static final String REGEX_DATETIME = PREFIX + "datetime\\.([^)}]+?)" + SUFFIX; @@ -495,6 +497,20 @@ public String replace(String inString) { } } + for (MatchResult r : findRegexMatches(REGEX_PROCESSES, inString)) { + String propertyTitle = r.group(1); + List newValues = new LinkedList<>(); + List ppList = PropertyParser.getInstance().getPropertiesForProcess(this.process); + for (ProcessProperty pe : ppList) { + if (pe.getName().equalsIgnoreCase(propertyTitle)) { + if (pe.getValue() != null) { + newValues.add(pe.getValue()); + } + } + } + inString = inString.replace(r.group(), String.join(separator, newValues)); + } + for (MatchResult r : findRegexMatches(REGEX_DB_META, inString)) { String metadataName = r.group(1); String value = MetadataManager.getAllValuesForMetadata(process.getId(), metadataName); From b898ac39e4c68aeb102ede5b5e61bca1c992ab89 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Mon, 9 Sep 2024 13:56:24 +0200 Subject: [PATCH 06/48] fix: remove default date time of now --- src/main/java/de/sub/goobi/forms/AdditionalField.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/sub/goobi/forms/AdditionalField.java b/src/main/java/de/sub/goobi/forms/AdditionalField.java index 38671c9b8..3f0dbba06 100644 --- a/src/main/java/de/sub/goobi/forms/AdditionalField.java +++ b/src/main/java/de/sub/goobi/forms/AdditionalField.java @@ -186,11 +186,15 @@ public LocalDateTime getValueAsDateTime() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"); return LocalDateTime.from(formatter.parse(wert)); } else { - return LocalDateTime.now(); + return null; } } public void setValueAsDateTime(LocalDateTime date) { + if (date == null) { + return; + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"); wert = formatter.format(date); } @@ -200,7 +204,7 @@ public LocalDate getValueAsDate() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); return LocalDate.from(formatter.parse(wert)); } else { - return LocalDate.now(); + return null; } } From 6b0b29540aa3fc52284d27f0f23e5ec9625439b5 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Mon, 9 Sep 2024 14:14:03 +0200 Subject: [PATCH 07/48] added new archive management fields to default ruleset --- install/rulesets/ruleset.xml | 437 +++++++++++++++++++++++++++++++---- 1 file changed, 390 insertions(+), 47 deletions(-) diff --git a/install/rulesets/ruleset.xml b/install/rulesets/ruleset.xml index 31ec9794c..5163b4bb9 100644 --- a/install/rulesets/ruleset.xml +++ b/install/rulesets/ruleset.xml @@ -86,7 +86,7 @@ ResourceLink Link zur Ressource Resource link - + Sublocation Besitzende Institution @@ -426,17 +426,13 @@ shelfmarkarchiveimageset Signatur des Archivierungsimagesets Shelfmark of archive imageset - Signatura del juego de imágenes para la - preservación - + Signatura del juego de imágenes para la preservación imagedescr ImageDescription (TIFF-Header) image description of tiff header - Descripción de la imagen (etiqueta embebida - del TIFF) - + Descripción de la imagen (etiqueta embebida del TIFF) datedigit @@ -705,11 +701,8 @@ CreatorsAllOrigin Alle Autoren u. Beteiligte (orig.) - All authors and participants (original - version) - - Todos los autores y participantes (orig.) - + All authors and participants (original version) + Todos los autores y participantes (orig.) TSL_ATS @@ -1026,7 +1019,7 @@ Statement of responsibility - + NodeId ID des Knotens @@ -1127,6 +1120,142 @@ Verzeichnungsgrundsätze Convention Declaration + + ArchivistNote + Information des Bearbeiters + Archivist's Note + + + RepositoryLabel + Name + Name + + + RepositoryAddress + Adresse + Address + + + RepositoryLink + Link + Link + + + RepositoryLinkName + Link Name + Link Name + + + Quantity + Anzahl + Quantity + + + Unittype + Einheit + Unit + + + AcquisitionMethod + Methode + Method + + + AcquisitionAgent + Akteur + Agent + + + AcquisitionNotes + Beschreibung + Notes + + + Date + Datum + Date + + + Title + Titel + Title + + + Person + Person + Person + + + DescriptionDates + Datum der Verzeichnung + Date(s) of description + + + + + AccrualsGroup + Informationen über voraussichtliche Ergänzungen + anticipated additions + Title + Description + Date + + + + InventoryHistoryGroup + Aufbewahrung der Materialien + custody of the materials + AcquisitionMethod + AcquisitionAgent + AcquisitionNotes + + + + physdesc + Ausmaß und Medium + Standardised Extent and Medium + Quantity + Unittype + + + Repository + Repository + Repository + RepositoryLabel + RepositoryAddress + RepositoryLink + RepositoryLinkName + + + AccessRestrictGroup + Zugriffsbeschränkung + Restriction on access + RestrictionOnAccessLicense + Date + + + OtherFindAidGroup + Findhilfsmittel + Other Finding Aid + Type + OtherFindAid + + + OriginalsLocationGroup + Aufbewahrungsort der Originale + Location of Originals + Person + shelfmarksource + RepositoryLink + + + CopyLocationGroup + Alternative Form + Alternative Form + Person + shelfmarksource + RepositoryLink + @@ -1172,7 +1301,7 @@ - + Folder Ordner @@ -1196,7 +1325,7 @@ Additions Arrangement UseAndReproductionLicense - RestrictionOnAccessLicense + RestrictionOnAccessLicense UseRestriction DocLanguage FontType @@ -1220,6 +1349,16 @@ _electronicEdition _ucc_id _directionRTL + ArchivistNote + DescriptionDates + Repository + physdesc + OriginalsLocationGroup + CopyLocationGroup + OtherFindAidGroup + InventoryHistoryGroup + AccrualsGroup + AccessRestrictGroup File @@ -1244,7 +1383,7 @@ Additions Arrangement UseAndReproductionLicense - RestrictionOnAccessLicense + RestrictionOnAccessLicense UseRestriction DocLanguage FontType @@ -1268,8 +1407,18 @@ _electronicEdition _ucc_id _directionRTL + ArchivistNote + DescriptionDates + Repository + physdesc + OriginalsLocationGroup + CopyLocationGroup + OtherFindAidGroup + InventoryHistoryGroup + AccrualsGroup + AccessRestrictGroup - + Picture Bild Picture @@ -1292,7 +1441,7 @@ Additions Arrangement UseAndReproductionLicense - RestrictionOnAccessLicense + RestrictionOnAccessLicense UseRestriction DocLanguage FontType @@ -1316,8 +1465,18 @@ _electronicEdition _ucc_id _directionRTL + ArchivistNote + DescriptionDates + Repository + physdesc + OriginalsLocationGroup + CopyLocationGroup + OtherFindAidGroup + InventoryHistoryGroup + AccrualsGroup + AccessRestrictGroup - + Audio Audio Audio @@ -1340,7 +1499,7 @@ Additions Arrangement UseAndReproductionLicense - RestrictionOnAccessLicense + RestrictionOnAccessLicense UseRestriction DocLanguage FontType @@ -1364,8 +1523,18 @@ _electronicEdition _ucc_id _directionRTL + ArchivistNote + DescriptionDates + Repository + physdesc + OriginalsLocationGroup + CopyLocationGroup + OtherFindAidGroup + InventoryHistoryGroup + AccrualsGroup + AccessRestrictGroup - + Video Video Video @@ -1388,7 +1557,7 @@ Additions Arrangement UseAndReproductionLicense - RestrictionOnAccessLicense + RestrictionOnAccessLicense UseRestriction DocLanguage FontType @@ -1412,8 +1581,18 @@ _electronicEdition _ucc_id _directionRTL + ArchivistNote + DescriptionDates + Repository + physdesc + OriginalsLocationGroup + CopyLocationGroup + OtherFindAidGroup + InventoryHistoryGroup + AccrualsGroup + AccessRestrictGroup - + Other Sonstiges Other @@ -1436,7 +1615,7 @@ Additions Arrangement UseAndReproductionLicense - RestrictionOnAccessLicense + RestrictionOnAccessLicense UseRestriction DocLanguage FontType @@ -1460,6 +1639,16 @@ _electronicEdition _ucc_id _directionRTL + ArchivistNote + DescriptionDates + Repository + physdesc + OriginalsLocationGroup + CopyLocationGroup + OtherFindAidGroup + InventoryHistoryGroup + AccrualsGroup + AccessRestrictGroup @@ -1678,8 +1867,8 @@ PhysicalLocation StatementOfResponsibility Abstract - ResourceLink - Copyright + ResourceLink + Copyright Appendix @@ -3608,7 +3797,7 @@ Page page Página - + logicalPageNumber _ucc_id physPageNumber @@ -3641,7 +3830,7 @@ - s/\(.+\)//g - - - + + s/[\xAC\x98\x9C]//g true @@ -4307,7 +4497,7 @@ any false - + PlaceOfPublication @@ -6215,10 +6405,10 @@ Periodical a s - - - - + + + + Periodical @@ -6589,7 +6779,7 @@ ./mods:mods/mods:location/#mods:shelfLocator - + ResourceLink ./mods:mods/mods:location/#mods:url @@ -6772,12 +6962,12 @@ URN ./mods:mods/#mods:identifier[@type='urn'] - + Copyright ./mods:mods/#mods:note[@type='creation/production credits'] - - + + Addressee @@ -7181,7 +7371,7 @@ ./mods:mods/mods:extension/intranda:intranda/#intranda:directionRTL - + NodeId @@ -7211,7 +7401,7 @@ AquisitionInformation ./mods:mods/#mods:note[@type='acquisition'] - + AppraisalInformation ./mods:mods/mods:extension/#intranda:appraisal @@ -7222,7 +7412,7 @@ Provenience ./mods:mods/#mods:note[@type='ownership'] - + Arrangement ./mods:mods/#mods:classification[@displayLabel='arrangement'] @@ -7272,6 +7462,162 @@ ./mods:mods/mods:physicalDescription/#mods:note[@type='organization'] + + ArchivistNote + ./mods:mods/mods:extension/#intranda:note[@type='archivists note'] + + + + DescriptionDates + ./mods:mods/mods:extension/intranda:intranda/#intranda:date[@type='description'] + + + + Repository + ./mods:mods/mods:extension/#intranda:repository + + RepositoryLabel + ./#intranda:label + + + RepositoryAddress + ./#intranda:address + + + RepositoryLink + ./#intranda:link + + + RepositoryLinkName + ./#intranda:name + + + + + physdesc + ./mods:mods/#mods:physicalDescription + + Quantity + ./#mods:extent + + + Unittype + ./mods:extent/@unit + + + + + OriginalsLocationGroup + ./mods:mods/#mods:location[@displayLabel='originals'] + + shelfmarksource + ./#mods:shelfLocator + + + RepositoryLink + ./mods:url + + + + + CopyLocationGroup + ./mods:mods/#mods:location[@displayLabel='alternative form'] + + shelfmarksource + ./#mods:shelfLocator + + + RepositoryLink + ./mods:url + + + + + OtherFindAidGroup + ./mods:mods/mods:extension/#intranda:findaid + + Type + ./#intranda:type + + + OtherFindAid + ./intranda:directory + + + + + InventoryHistoryGroup + ./mods:mods/mods:extension/#intranda:inventoryHistory + + AcquisitionMethod + ./#intranda:method + + + AcquisitionAgent + ./intranda:agent + + + AcquisitionNotes + ./intranda:note + + + + + InventoryHistoryGroup + ./mods:mods/mods:extension/#intranda:inventoryHistory + + AcquisitionMethod + ./#intranda:method + + + AcquisitionAgent + ./intranda:agent + + + AcquisitionNotes + ./intranda:note + + + + + AccrualsGroup + ./mods:mods/mods:extension/#intranda:accruals + + Title + ./#intranda:title + + + Description + ./intranda:description + + + Date + ./intranda:date + + + + + AccessRestrictGroup + ./mods:mods/mods:originInfo[@eventType='publication']/#mods:dateOther[@encoding='iso8601'][@point='end'] + + RestrictionOnAccessLicense + ./@type + + + Date + . + + + + + AccessRestrictGroup + ./mods:mods/#mods:accessCondition[@type='restriction on access'] + + RestrictionOnAccessLicense + . + + + BuchspiegelVorne @@ -7329,9 +7675,6 @@ Periodical periodical - Prepage prepage @@ -7534,4 +7877,4 @@ - + \ No newline at end of file From 4af7554dabb7207c35963626e250333ba4ab76ee Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Tue, 10 Sep 2024 07:53:18 +0200 Subject: [PATCH 08/48] fix: test after removing default date time value --- src/test/java/de/sub/goobi/forms/AdditionalFieldTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/de/sub/goobi/forms/AdditionalFieldTest.java b/src/test/java/de/sub/goobi/forms/AdditionalFieldTest.java index 858c9fd25..4f4e92ff4 100644 --- a/src/test/java/de/sub/goobi/forms/AdditionalFieldTest.java +++ b/src/test/java/de/sub/goobi/forms/AdditionalFieldTest.java @@ -201,13 +201,13 @@ public void testPattern() { @Test public void testValueAsDateTime() { AdditionalField af = new AdditionalField(); - assertNotNull(af.getValueAsDateTime()); + assertNull(af.getValueAsDateTime()); } @Test public void testValueAsDate() { AdditionalField af = new AdditionalField(); - assertNotNull(af.getValueAsDate()); + assertNull(af.getValueAsDate()); af.setValueAsDate(LocalDate.of(2000, 1, 1)); assertEquals(2000, af.getValueAsDate().getYear()); } From 7b6a4b92480981e0764d8005fe503f0f823427d2 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Tue, 10 Sep 2024 09:30:57 +0200 Subject: [PATCH 09/48] task: add import error message handling --- .../api/vocabulary/helper/APIExceptionExtractor.java | 6 ++++++ src/main/resources/messages_de.properties | 5 ++++- src/main/resources/messages_en.properties | 5 ++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/goobi/workflow/api/vocabulary/helper/APIExceptionExtractor.java b/src/main/java/io/goobi/workflow/api/vocabulary/helper/APIExceptionExtractor.java index d1d85baed..f0d3860c8 100644 --- a/src/main/java/io/goobi/workflow/api/vocabulary/helper/APIExceptionExtractor.java +++ b/src/main/java/io/goobi/workflow/api/vocabulary/helper/APIExceptionExtractor.java @@ -63,6 +63,12 @@ private Optional getLocalizedMessage(VocabularyException.ErrorCode error case RecordValidationMissingRequiredFields: orderedParameters = List.of("missingFieldNames"); break; + case RecordImportHeaderIssues: + orderedParameters = List.of("undefinedFields", "missingFields"); + break; + case RecordImportFieldCountIssue: + orderedParameters = List.of("expectedSize", "realSize"); + break; case RecordImportUnsupportedExcelCellType: orderedParameters = List.of("cellType"); break; diff --git a/src/main/resources/messages_de.properties b/src/main/resources/messages_de.properties index dea7c52d2..4d4895ee0 100644 --- a/src/main/resources/messages_de.properties +++ b/src/main/resources/messages_de.properties @@ -3741,7 +3741,10 @@ vocabularyManager_exception_IllegalAttributeProvided=Vocabulary manager error {0 vocabularyManager_exception_InsertingNonExistingItem=Vocabulary manager error {0} zzz vocabularyManager_exception_Mapping=Vocabulary manager error {0} zzz vocabularyManager_exception_MissingRequiredAttribute=Vocabulary manager error {0} zzz -vocabularyManager_exception_RecordImport=Vocabulary manager error {0} zzz +vocabularyManager_exception_RecordImport=Es sind Fehler beim Importieren von Vokabulareintr\u00E4gen aufgetreten +vocabularyManager_exception_RecordImportHeaderIssues=Die Spalten passen nicht zu den Feldern, die im Vokabularschema definiert sind: Unbekannte Spalten "{0}", fehlende Spalten "{1}" +vocabularyManager_exception_RecordImportParsingIssues=Fehler beim Lesen der Vokabulareintr\u00E4ge +vocabularyManager_exception_RecordImportFieldCountIssue=Die Anzahl der Werte stimmt nicht mit der Spaltenanzahl \u00FCberein: Spaltenanzahl "{0}", Werte "{1}" vocabularyManager_exception_RecordImportUnsupportedExcelCellType=Es ist ein Fehler beim Excel Import aufgetreten\: Unbekannter Zellentyp "{0}" vocabularyManager_exception_RecordValidation=Vocabulary manager error {0} zzz vocabularyManager_exception_RecordValidationChildrenReferencesNotAllowed=Vocabulary manager error {0} zzz diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index fd7819000..028a31357 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -3741,7 +3741,10 @@ vocabularyManager_exception_IllegalAttributeProvided=Vocabulary manager error {0 vocabularyManager_exception_InsertingNonExistingItem=Vocabulary manager error {0} zzz vocabularyManager_exception_Mapping=Vocabulary manager error {0} zzz vocabularyManager_exception_MissingRequiredAttribute=Vocabulary manager error {0} zzz -vocabularyManager_exception_RecordImport=Vocabulary manager error {0} zzz +vocabularyManager_exception_RecordImport=Error(s) during record import +vocabularyManager_exception_RecordImportHeaderIssues=The given fields do not match the fields defined in the vocabulary schema: Undefined fields "{0}", missing fields "{1}" +vocabularyManager_exception_RecordImportParsingIssues=Error(s) during record parsing +vocabularyManager_exception_RecordImportFieldCountIssue=Malformed tabular data, number of fields does not match the header: Header size "{0}", data row size "{1}" vocabularyManager_exception_RecordImportUnsupportedExcelCellType=Error during Excel import\: Unknown cell type "{0}" vocabularyManager_exception_RecordValidation=Vocabulary manager error {0} zzz vocabularyManager_exception_RecordValidationChildrenReferencesNotAllowed=Vocabulary manager error {0} zzz From 170bb72be17731bedcbb00b1cf02a4670ae5df68 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Tue, 10 Sep 2024 14:13:16 +0200 Subject: [PATCH 10/48] task: find referenced record id by main value when setting field value --- .../vocabulary/helper/ExtendedFieldInstance.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java b/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java index a14172eb3..3853db13e 100644 --- a/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java +++ b/src/main/java/io/goobi/workflow/api/vocabulary/helper/ExtendedFieldInstance.java @@ -8,6 +8,7 @@ import io.goobi.vocabulary.exchange.FieldValue; import io.goobi.vocabulary.exchange.TranslationDefinition; import io.goobi.vocabulary.exchange.TranslationInstance; +import io.goobi.vocabulary.exchange.VocabularyRecord; import io.goobi.workflow.api.vocabulary.VocabularyAPIManager; import lombok.Getter; import lombok.extern.log4j.Log4j2; @@ -168,7 +169,19 @@ public String getFieldValue(String language) { public void setFieldValue(String value) { getValues().clear(); FieldValue fieldValue = addFieldValue(); - fieldValue.getTranslations().forEach(t -> t.setValue(value)); + if (definition.getReferenceVocabularyId() == null) { + fieldValue.getTranslations().forEach(t -> t.setValue(value)); + } else { + try { + fieldValue.getTranslations().forEach(t -> t.setValue(String.valueOf(Integer.parseInt(value)))); + } catch (NumberFormatException e) { + recordsResolver.apply(this.definition.getReferenceVocabularyId()).stream() + .filter(r -> r.getMainValue().equals(value)) + .findFirst() + .map(VocabularyRecord::getId) + .ifPresent(v -> fieldValue.getTranslations().forEach(t -> t.setValue(String.valueOf(v)))); + } + } } private String extractValue(FieldInstance field, String language) { From 5851f1ece62faa14d5142f93712d48466085b4cd Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Tue, 10 Sep 2024 14:34:35 +0200 Subject: [PATCH 11/48] fix: improve display of table filters on small screens --- .../css/src/components/_tables-custom.scss | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss b/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss index 9b3c7165e..94c50b8d5 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss @@ -163,7 +163,6 @@ justify-content: flex-end; align-items: center; gap: var(--gap, 8px); - width: 84%; &__option { background-color: var(--clr-neutral-200); @@ -201,10 +200,15 @@ } } -@media (max-width: 555px) { - .gw-table__filters { - width: 100%; - flex-wrap: wrap; +.gw-table__filters__search-bar .input-group-text:has(.fa-search) { + padding: 0; + width: 0; +} + +@media screen and (min-width: 660px) { + .gw-table__filters__search-bar .input-group-text:has(.fa-search) { + padding: 0.375rem 0.75rem; + width: auto; } } From 65ab946481c5ebeb83428f5caa68db9d929edd17 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Thu, 12 Sep 2024 09:23:48 +0200 Subject: [PATCH 12/48] fix: broken path in docker-compose script --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index f22b21a55..ea64932a7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: MYSQL_PASSWORD: goobi volumes: - type: bind - source: ./Goobi/install/db/goobi_blank.sql + source: ./install/db/goobi_blank.sql target: /docker-entrypoint-initdb.d/goobi_blank.sql - type: volume source: goobi_dbdata From ffcebab8df64984d2ce8782cf17c01c37d1c72d1 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Thu, 12 Sep 2024 10:45:46 +0200 Subject: [PATCH 13/48] messages for metadata change template plugin --- src/main/resources/messages_de.properties | 2 +- src/main/resources/messages_en.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/messages_de.properties b/src/main/resources/messages_de.properties index 4d4895ee0..4dac8d440 100644 --- a/src/main/resources/messages_de.properties +++ b/src/main/resources/messages_de.properties @@ -2937,7 +2937,7 @@ plugin_massupload_selectFiles=Dateien ausw\u00E4hlen und hochladen plugin_massupload_startInserting=Dateien in Vorg\u00E4nge einspielen plugin_massupload_use_home_directory=Bilder aus Benutzerverzeichnis laden plugin_metadata_changeTemplate_changeTemplate=\u00C4ndern -plugin_metadata_changeTemplate_description=Hier kann der Publikationstyp des Datensatzes ge\u00E4ndert werden. +plugin_metadata_changeTemplate_description=Hier kann der Publikationstyp des Datensatzes auf den ausgew\u00E4hlten Typ ge\u00E4ndert werden. Dabei werden alle in der Konfigurationsdatei definierten Metadaten in den neuen Publikationstyp \u00FCbernommen. plugin_metadata_changeTemplate_selectTemplate=Vorlage w\u00E4hlen plugin_metadata_createElements_generateElements=Generieren plugin_metadata_createElements_generateTitle=Titel generieren diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 028a31357..f65bf2c61 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -2937,7 +2937,7 @@ plugin_massupload_selectFiles=Select files and upload plugin_massupload_startInserting=Insert files into processes plugin_massupload_use_home_directory=Load images from user directory plugin_metadata_changeTemplate_changeTemplate=Change -plugin_metadata_changeTemplate_description=The publication type of the record can be changed here.zzz +plugin_metadata_changeTemplate_description=The publication type of the data can be changed to the selected type here. All metadata defined in the configuration file is transferred to the new publication type.zzz plugin_metadata_changeTemplate_selectTemplate=Select templatezzz plugin_metadata_createElements_generateElements=Generate plugin_metadata_createElements_generateTitle=Generate titlezzz From 2607b64f2767b453e744bba3282cfefe05e4da11 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Thu, 12 Sep 2024 12:08:43 +0200 Subject: [PATCH 14/48] fix: let tooltips ignore constraint of parent elements so that they can be positioned correctly --- .../uii/includes/metseditor/metseditor_pagination.xhtml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/webapp/uii/includes/metseditor/metseditor_pagination.xhtml b/src/main/webapp/uii/includes/metseditor/metseditor_pagination.xhtml index 78fc16203..27abed985 100644 --- a/src/main/webapp/uii/includes/metseditor/metseditor_pagination.xhtml +++ b/src/main/webapp/uii/includes/metseditor/metseditor_pagination.xhtml @@ -122,6 +122,9 @@ + - +
+
From ea550278b50bc38569a007b4ef5c707ef84e6ce3 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Fri, 13 Sep 2024 14:29:29 +0200 Subject: [PATCH 18/48] mail configuration: configure smtp port --- install/config/goobi_mail.xml | 1 + src/main/java/org/goobi/api/mail/SendMail.java | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/install/config/goobi_mail.xml b/install/config/goobi_mail.xml index e9008d6f0..fa018e108 100644 --- a/install/config/goobi_mail.xml +++ b/install/config/goobi_mail.xml @@ -2,6 +2,7 @@ example.com + 25 CHANGEME@example.com CHANGEME false diff --git a/src/main/java/org/goobi/api/mail/SendMail.java b/src/main/java/org/goobi/api/mail/SendMail.java index e60934487..84786bd6c 100644 --- a/src/main/java/org/goobi/api/mail/SendMail.java +++ b/src/main/java/org/goobi/api/mail/SendMail.java @@ -170,6 +170,10 @@ public String getSmtpSenderAddress() { return config.getString("/configuration/smtpSenderAddress", null); } + public String getSmptPort() { + return config.getString("/configuration/smtpPort", "25"); + } + public String getApiUrl() { return config.getString("/apiUrl", null); } @@ -261,7 +265,7 @@ private void sendStepStatusMail(List recipients, String messageType, Step String cancelStepUrl = config.getApiUrl() + "/step/" + URLEncoder.encode(user.getLogin(), StandardCharsets.UTF_8.toString()) + "/" + URLEncoder.encode(step.getTitel(), StandardCharsets.UTF_8.toString()) + "/" + deactivateStepToken; String cancelProjectUrl = config.getApiUrl() + "/project/" + URLEncoder.encode(user.getLogin(), StandardCharsets.UTF_8.toString()) - + "/" + StringEscapeUtils.escapeHtml4(step.getProzess().getProjekt().getTitel()) + "/" + deactivateProjectToken; + + "/" + StringEscapeUtils.escapeHtml4(step.getProzess().getProjekt().getTitel()) + "/" + deactivateProjectToken; String cancelAllUrl = config.getApiUrl() + "/all/" + URLEncoder.encode(user.getLogin(), StandardCharsets.UTF_8.toString()) + "/" + deactivateAllToken; @@ -483,6 +487,7 @@ private Properties createMailProperties() { Properties properties = new Properties(); properties.setProperty("mail.transport.protocol", "smtp"); properties.setProperty("mail.smtp.auth", "true"); + properties.setProperty("mail.smtp.port", "25"); properties.setProperty("mail.smtp.host", config.getSmtpServer()); int port; if (config.isSmtpUseStartTls()) { From c57d0928a5ad6ed0c4d935e7ef225bcc8ac483d2 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Mon, 16 Sep 2024 06:44:46 +0200 Subject: [PATCH 19/48] added option to configure non standard ports for mails --- .../java/org/goobi/api/mail/SendMail.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/goobi/api/mail/SendMail.java b/src/main/java/org/goobi/api/mail/SendMail.java index 84786bd6c..647ee2365 100644 --- a/src/main/java/org/goobi/api/mail/SendMail.java +++ b/src/main/java/org/goobi/api/mail/SendMail.java @@ -145,6 +145,10 @@ public String getSmtpServer() { return config.getString("/configuration/smtpServer", null); } + public String getSmptPort() { + return config.getString("/configuration/smtpPort", null); + } + // account name public String getSmtpUser() { return config.getString("/configuration/smtpUser", null); @@ -170,10 +174,6 @@ public String getSmtpSenderAddress() { return config.getString("/configuration/smtpSenderAddress", null); } - public String getSmptPort() { - return config.getString("/configuration/smtpPort", "25"); - } - public String getApiUrl() { return config.getString("/apiUrl", null); } @@ -487,22 +487,28 @@ private Properties createMailProperties() { Properties properties = new Properties(); properties.setProperty("mail.transport.protocol", "smtp"); properties.setProperty("mail.smtp.auth", "true"); - properties.setProperty("mail.smtp.port", "25"); + properties.setProperty("mail.smtp.host", config.getSmtpServer()); - int port; + + String port; if (config.isSmtpUseStartTls()) { properties.setProperty("mail.smtp.ssl.trust", "*"); properties.setProperty("mail.smtp.starttls.enable", "true"); properties.setProperty("mail.smtp.starttls.required", "true"); - port = 25; + port = "25"; } else if (config.isSmtpUseSsl()) { properties.setProperty("mail.smtp.ssl.enable", "true"); properties.setProperty("mail.smtp.ssl.trust", "*"); - port = 465; + port = "465"; } else { - port = 25; + port = "25"; } - properties.setProperty("mail.smtp.port", String.valueOf(port)); + + if (StringUtils.isNotBlank(config.getSmptPort())) { + port = config.getSmptPort(); + } + + properties.setProperty("mail.smtp.port", port); return properties; } From 547a0d49a784afb55f2dadcdaba13a1be841b320 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Tue, 17 Sep 2024 08:51:22 +0200 Subject: [PATCH 20/48] fix: keep focus on current process property after AJAX rerender --- .../process/processcreation_properties.xhtml | 433 +++++++++--------- 1 file changed, 216 insertions(+), 217 deletions(-) diff --git a/src/main/webapp/uii/templatePG/includes/process/processcreation_properties.xhtml b/src/main/webapp/uii/templatePG/includes/process/processcreation_properties.xhtml index a31aef6e9..77a06b114 100644 --- a/src/main/webapp/uii/templatePG/includes/process/processcreation_properties.xhtml +++ b/src/main/webapp/uii/templatePG/includes/process/processcreation_properties.xhtml @@ -14,222 +14,221 @@ - - - -
-
- -
-
- - - - -
-
-
- - -
-
- -
-
- - - - - -
-
-
- - -
-
- -
-
- - - - - - -
-
-
- - -
-
- -
-
- - - - - -
-
-
- - -
-
- -
-
- - - - - - -
-
-
- - -
-
- -
-
- - - - - -
-
-
- - -
-
- -
-
- - - - - - -
-
-
- - -
-
- -
-
- - - - - -
-
-
-
+ + + + +
+
+ +
+
+ + + +
+
+
+ + +
+
+ +
+
+ + + + +
+
+
+ + +
+
+ +
+
+ + + + + +
+
+
+ + +
+
+ +
+
+ + + + +
+
+
+ + +
+
+ +
+
+ + + + + +
+
+
+ + +
+
+ +
+
+ + + + +
+
+
+ + +
+
+ +
+
+ + + + + +
+
+
+ + +
+
+ +
+
+ + + + +
+
+
+
+
From 5f3ba7acf6d3c64e2902e0f4c95d8165b3ca8ddc Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Tue, 17 Sep 2024 14:22:54 +0200 Subject: [PATCH 21/48] feat: redesign journal messages --- .../java/org/goobi/beans/JournalEntry.java | 25 +++-- src/main/resources/messages_de.properties | 2 +- src/main/resources/messages_en.properties | 2 +- .../templatePG/css/src/base/_base-custom.scss | 4 + .../templatePG/css/src/components/_feed.scss | 85 ++++++++++++++++ .../css/src/components/_journal.scss | 6 +- .../webapp/uii/templatePG/css/src/main.scss | 1 + .../uii/templatePG/includes/journal.xhtml | 98 +++++++++++++------ 8 files changed, 179 insertions(+), 44 deletions(-) create mode 100644 src/main/webapp/uii/templatePG/css/src/components/_feed.scss diff --git a/src/main/java/org/goobi/beans/JournalEntry.java b/src/main/java/org/goobi/beans/JournalEntry.java index eab20e682..4cd1a554c 100644 --- a/src/main/java/org/goobi/beans/JournalEntry.java +++ b/src/main/java/org/goobi/beans/JournalEntry.java @@ -1,18 +1,18 @@ /** * This file is part of the Goobi Application - a Workflow tool for the support of mass digitization. - * + * * Visit the websites for more information. * - https://www.intranda.com - * + * * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA. - * + * */ package org.goobi.beans; @@ -24,6 +24,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.StringEscapeUtils; import org.goobi.production.enums.LogType; +import java.text.DateFormat; import de.sub.goobi.config.ConfigurationHelper; import de.sub.goobi.helper.Helper; @@ -65,13 +66,25 @@ public String getFormattedCreationDate() { return Helper.getDateAsFormattedString(creationDate); } + public Date getCreationDate() { + return creationDate; + } + + public String getFormattedDate() { + return DateFormat.getDateInstance().format(creationDate); + } + + public String getCreationTime() { + return DateFormat.getTimeInstance(DateFormat.MEDIUM).format(creationDate); + } + public void persist() { JournalManager.saveJournalEntry(this); } /** * Return the base name of a file. The basename is the name part of the file without the path - * + * * @return */ diff --git a/src/main/resources/messages_de.properties b/src/main/resources/messages_de.properties index bb6c925a0..98d0dcd45 100644 --- a/src/main/resources/messages_de.properties +++ b/src/main/resources/messages_de.properties @@ -3724,7 +3724,7 @@ process_log_file_exportFolder=Export process_log_file_importFolder=Import process_log_file_masterFolder=Master process_log_file_mediaFolder=Media -process_log_file_priorityComment=Wichtiger Kommentar +process_log_file_priorityComment=Wichtig process_log_file_saveFile=Datei speichern process_log_file_sourceFolder=Source process_log_firstContent=Nachricht diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index bf1266b37..9cf598baf 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -3723,7 +3723,7 @@ process_log_file_exportFolder=Export process_log_file_importFolder=Import process_log_file_masterFolder=Master process_log_file_mediaFolder=Media -process_log_file_priorityComment=Significant commentzzz +process_log_file_priorityComment=Important zzz process_log_file_saveFile=Save file process_log_file_sourceFolder=Source process_log_firstContent=Message diff --git a/src/main/webapp/uii/templatePG/css/src/base/_base-custom.scss b/src/main/webapp/uii/templatePG/css/src/base/_base-custom.scss index 23aaa4027..3b3266770 100644 --- a/src/main/webapp/uii/templatePG/css/src/base/_base-custom.scss +++ b/src/main/webapp/uii/templatePG/css/src/base/_base-custom.scss @@ -16,6 +16,10 @@ hr { color: var(--clr-neutral); } +[role="list"] { + list-style: none; +} + // Overrides for font-awesome.css // Might be removed, once font-awesome is updated .pull-left, diff --git a/src/main/webapp/uii/templatePG/css/src/components/_feed.scss b/src/main/webapp/uii/templatePG/css/src/components/_feed.scss new file mode 100644 index 000000000..b539f6653 --- /dev/null +++ b/src/main/webapp/uii/templatePG/css/src/components/_feed.scss @@ -0,0 +1,85 @@ +.feed { + margin: .25em 0; + padding: 0; +} + +.feed-item { + display: flex; + margin-block-end: 0.25em; + padding-inline: 0.5em; + width: 100%; +} + +.feed-heading { + align-items: center; + display: flex; + font-size: 0.875rem; + font-weight: 700; + gap: 0.25em; + padding-block-start: 0.25em; + padding-inline: .5em; + width: 100%; +} + +.feed-item-icon { + align-items: center; + display: flex; + flex: 0 0 2rem; + flex-direction: column; + gap: 0.25em; + justify-content: flex-start; + margin-inline-end: 0.5em; + padding-block-start: calc(0.0625rem + var(--bs-btn-padding-y, 0.2343rem)); + & .fa { + color: var(--clr-neutral-400); + } +} + +.filler { + border-radius: 2px; + flex-grow: 1; + --color-filler-horizontal: var(--clr-neutral-200); + --color-filler-vertical: var(--clr-neutral-400); +} + +.filler-horizontal { + background: linear-gradient(var(--color-filler-horizontal), var(--color-filler-horizontal)) no-repeat center/100% 2px; + height: 2px; + padding-inline-start: 0.5em; +} + +.filler-vertical { + background: linear-gradient(var(--color-filler-vertical), var(--color-filler-vertical)) no-repeat center/2px 100%; + width: 2px; +} + +.filler-red { + --color-filler-vertical: var(--clr-hot); +} + +.filler-yellow { + --color-filler-vertical: var(--clr-action); +} + +.feed-item-content { + align-items: baseline; + display: flex; + flex-direction: column; + flex-grow: 1; + gap: 0.25em; +} + +.feed-item-responsibility { + display: flex; + justify-content: space-between; + width: 100%; + &> span { + padding-block-start: var(--bs-btn-padding-y, 0.2343rem); + } +} + +.feed-item-timestamp { + display: flex; + flex-direction: column; + padding-block-start: var(--bs-btn-padding-y, 0.2343rem); +} \ No newline at end of file diff --git a/src/main/webapp/uii/templatePG/css/src/components/_journal.scss b/src/main/webapp/uii/templatePG/css/src/components/_journal.scss index 68287d27d..1ca4ee334 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_journal.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_journal.scss @@ -40,13 +40,9 @@ color: #8e8d8e; } - .log_color_user { - color: #006600; - } - + .log_color_user, .log_color_important { color: #006600; - font-weight: 700; } .log_table_column_date { diff --git a/src/main/webapp/uii/templatePG/css/src/main.scss b/src/main/webapp/uii/templatePG/css/src/main.scss index 16361db9b..0d3614283 100644 --- a/src/main/webapp/uii/templatePG/css/src/main.scss +++ b/src/main/webapp/uii/templatePG/css/src/main.scss @@ -18,6 +18,7 @@ @use "components/boxes"; @use "components/dropdowns"; @use "components/tables-custom"; +@use "components/feed"; @use "components/forms-custom"; @use "components/progressbar"; @use "components/progress-custom"; diff --git a/src/main/webapp/uii/templatePG/includes/journal.xhtml b/src/main/webapp/uii/templatePG/includes/journal.xhtml index c68b32fcf..9b0b300da 100644 --- a/src/main/webapp/uii/templatePG/includes/journal.xhtml +++ b/src/main/webapp/uii/templatePG/includes/journal.xhtml @@ -262,37 +262,69 @@ tabindex="0" data-scrolldown="true"> - +
    -
- - - + + + + + + + + -
+ +

+ value="#{entry.formattedDate}"> -
- -

-
- - + + + +
  • + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + #{msgs[entry.userName]}: + + + + + + + + - - -
  • -
    +
    @@ -329,14 +365,14 @@
    -
    +
    From b30a85fc72c79be5c7cbf5876885b820ac65a9e1 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Wed, 18 Sep 2024 13:17:15 +0200 Subject: [PATCH 28/48] fix: style add to journal field in process creation the same as process view --- src/main/webapp/uii/process_new1.xhtml | 57 ++++++++++++-------------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/src/main/webapp/uii/process_new1.xhtml b/src/main/webapp/uii/process_new1.xhtml index af8899a5c..0a895191e 100644 --- a/src/main/webapp/uii/process_new1.xhtml +++ b/src/main/webapp/uii/process_new1.xhtml @@ -859,39 +859,34 @@ required="false" /> -
    - #{msgs.addToProcessLog} -
    - -
    +
    From 2790f881fd6b942ba42fb64884cc7900d3c69535 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Wed, 18 Sep 2024 14:00:51 +0200 Subject: [PATCH 29/48] feat: add hover state to feed item --- .../webapp/uii/templatePG/css/src/components/_feed.scss | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_feed.scss b/src/main/webapp/uii/templatePG/css/src/components/_feed.scss index 8d08929d2..8781b570d 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_feed.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_feed.scss @@ -1,6 +1,6 @@ .feed { - margin: .25em 0; - padding: 0; + padding: var(--feed-spacing-h) var(--feed-spacing-v); + margin: 0; --feed-spacing-v: 0.25em; --feed-spacing-h: 0.5em; } @@ -10,6 +10,9 @@ margin-block-end: var(--feed-spacing-v); padding-inline: var(--feed-spacing-h); width: 100%; + &:hover { + background-color: var(--clr-neutral-100); + } } .feed-heading { From fbb2bd449177cf8b436bc4a0257df7619cd955f9 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Thu, 19 Sep 2024 07:37:30 +0200 Subject: [PATCH 30/48] changed property grouping from number to text, display group names --- .../goobi/beans/property/IGoobiProperty.java | 4 +- .../sub/goobi/helper/BatchProcessHelper.java | 40 +- .../de/sub/goobi/helper/BatchStepHelper.java | 44 +- .../sub/goobi/helper/PropertyListObject.java | 4 +- .../persistence/managers/DatabaseVersion.java | 29 +- .../managers/PropertyMysqlHelper.java | 6 +- .../persistence/managers/StepMysqlHelper.java | 14 +- .../java/org/goobi/beans/ErrorProperty.java | 10 +- .../org/goobi/beans/Masterpieceproperty.java | 10 +- .../java/org/goobi/beans/Processproperty.java | 10 +- .../org/goobi/beans/Templateproperty.java | 10 +- .../java/org/goobi/beans/UserProperty.java | 6 +- .../org/goobi/managedbeans/ProcessBean.java | 34 +- .../java/org/goobi/managedbeans/StepBean.java | 34 +- .../production/cli/helper/CopyProcess.java | 12 +- .../production/properties/IProperty.java | 6 +- .../production/properties/ImportProperty.java | 8 +- .../properties/ProcessProperty.java | 8 +- .../production/properties/PropertyParser.java | 6 +- src/main/webapp/uii/batch_edit.xhtml | 32 +- .../includes/process/process_properties.xhtml | 1249 +++++++++-------- .../includes/task/box_properties.xhtml | 12 +- .../goobi/helper/BatchProcessHelperTest.java | 28 +- .../sub/goobi/helper/BatchStepHelperTest.java | 22 +- .../org/goobi/beans/ErrorPropertyTest.java | 10 +- .../goobi/beans/MasterpiecepropertyTest.java | 10 +- .../org/goobi/beans/ProcesspropertyTest.java | 14 +- .../org/goobi/beans/TemplatepropertyTest.java | 10 +- .../org/goobi/beans/UserPropertyTest.java | 20 - 29 files changed, 861 insertions(+), 841 deletions(-) diff --git a/src/main/java/de/sub/goobi/beans/property/IGoobiProperty.java b/src/main/java/de/sub/goobi/beans/property/IGoobiProperty.java index 9a4416622..853b332c0 100644 --- a/src/main/java/de/sub/goobi/beans/property/IGoobiProperty.java +++ b/src/main/java/de/sub/goobi/beans/property/IGoobiProperty.java @@ -69,9 +69,9 @@ public interface IGoobiProperty { */ public PropertyType getType(); - public void setContainer(Integer order); + public void setContainer(String name); - public Integer getContainer(); + public String getContainer(); public String getNormalizedTitle(); diff --git a/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java b/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java index d2afd5bdd..7ce3f84bb 100644 --- a/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java +++ b/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java @@ -57,8 +57,8 @@ public class BatchProcessHelper implements Serializable { private Process currentProcess; private List processPropertyList; private ProcessProperty processProperty; - private Map containers = new TreeMap<>(); - private Integer container; + private Map containers = new TreeMap<>(); + private String container; private List processNameList = new ArrayList<>(); private String processName = ""; private Batch batch; @@ -248,20 +248,20 @@ public List getSortedProperties() { public List getContainerlessProperties() { List answer = new ArrayList<>(); for (ProcessProperty pp : this.processPropertyList) { - if (pp.getContainer() == 0 && pp.getName() != null) { + if (!"0".equals(pp.getContainer()) && pp.getName() != null) { answer.add(pp); } } return answer; } - public List getContainerList() { + public List getContainerList() { return new ArrayList<>(this.containers.keySet()); } - public void setContainer(Integer container) { + public void setContainer(String container) { this.container = container; - if (container != null && container > 0) { + if (container != null && !"0".equals(container)) { this.processProperty = getContainerProperties().get(0); } } @@ -269,7 +269,7 @@ public void setContainer(Integer container) { public List getContainerProperties() { List answer = new ArrayList<>(); - if (this.container != null && this.container > 0) { + if (this.container != null && !"0".equals(this.container)) { for (ProcessProperty pp : this.processPropertyList) { if (pp.getContainer() == this.container && pp.getName() != null) { answer.add(pp); @@ -283,24 +283,25 @@ public List getContainerProperties() { } public String duplicateContainerForSingle() { - Integer currentContainer = this.processProperty.getContainer(); + String currentContainer = this.processProperty.getContainer(); List plist = new ArrayList<>(); // search for all properties in container for (ProcessProperty pt : this.processPropertyList) { - if (pt.getContainer() == currentContainer) { + if (pt.getContainer().equals(currentContainer)) { plist.add(pt); } } - int newContainerNumber = 0; - if (currentContainer > 0) { - newContainerNumber++; + int counter = 1; + String newContainerNumber = currentContainer; + if (!"0".equals(currentContainer)) { // find new unused container number boolean search = true; while (search) { + newContainerNumber = currentContainer + " - " + counter; if (!this.containers.containsKey(newContainerNumber)) { search = false; } else { - newContainerNumber++; + counter++; } } } @@ -317,24 +318,25 @@ public String duplicateContainerForSingle() { } public String duplicateContainerForAll() { - Integer currentContainer = this.processProperty.getContainer(); + String currentContainer = this.processProperty.getContainer(); List plist = new ArrayList<>(); // search for all properties in container for (ProcessProperty pt : this.processPropertyList) { - if (pt.getContainer() == currentContainer) { + if (pt.getContainer().equals(currentContainer)) { plist.add(pt); } } - int newContainerNumber = 0; - if (currentContainer > 0) { - newContainerNumber++; + int counter = 1; + String newContainerNumber = currentContainer; + if (!"0".equals(currentContainer)) { boolean search = true; while (search) { + newContainerNumber = currentContainer + " - " + counter; if (!this.containers.containsKey(newContainerNumber)) { search = false; } else { - newContainerNumber++; + counter++; } } } diff --git a/src/main/java/de/sub/goobi/helper/BatchStepHelper.java b/src/main/java/de/sub/goobi/helper/BatchStepHelper.java index 7058f723d..145431e68 100644 --- a/src/main/java/de/sub/goobi/helper/BatchStepHelper.java +++ b/src/main/java/de/sub/goobi/helper/BatchStepHelper.java @@ -95,9 +95,9 @@ public class BatchStepHelper implements Serializable { @Setter private ProcessProperty processProperty; @Getter - private Map containers = new TreeMap<>(); + private Map containers = new TreeMap<>(); @Getter - private Integer container; + private String container; @Getter @Setter private String myProblemStep; @@ -126,7 +126,7 @@ public class BatchStepHelper implements Serializable { private String content = ""; @Getter - private HashMap containerAccess; + private HashMap containerAccess; @Getter @Setter @@ -297,7 +297,7 @@ private void loadProcessProperties(Step s) { pList.add(step.getProzess()); } for (ProcessProperty pt : this.processPropertyList) { - if (pt.getContainer() != 0 && pt.getCurrentStepAccessCondition() != AccessCondition.READ) { + if (!"0".equals(pt.getContainer()) && pt.getCurrentStepAccessCondition() != AccessCondition.READ) { containerAccess.put(pt.getContainer(), true); } if (pt.getProzesseigenschaft() == null) { @@ -343,16 +343,16 @@ public List getSortedProperties() { public List getContainerlessProperties() { List answer = new ArrayList<>(); for (ProcessProperty pp : this.processPropertyList) { - if (pp.getContainer() == 0 && pp.getName() != null) { + if ("0".equals(pp.getContainer()) && pp.getName() != null) { answer.add(pp); } } return answer; } - public void setContainer(Integer container) { + public void setContainer(String container) { this.container = container; - if (container != null && container > 0) { + if (container != null && !"0".equals(container)) { this.processProperty = getContainerProperties().get(0); } } @@ -360,7 +360,7 @@ public void setContainer(Integer container) { public List getContainerProperties() { List answer = new ArrayList<>(); - if (this.container != null && this.container > 0) { + if (this.container != null && !"0".equals(this.container)) { for (ProcessProperty pp : this.processPropertyList) { if (pp.getContainer() == this.container && pp.getName() != null) { answer.add(pp); @@ -374,24 +374,25 @@ public List getContainerProperties() { } public String duplicateContainerForSingle() { - Integer currentContainer = this.processProperty.getContainer(); + String currentContainer = this.processProperty.getContainer(); List plist = new ArrayList<>(); // search for all properties in container for (ProcessProperty pt : this.processPropertyList) { - if (pt.getContainer() == currentContainer) { + if (pt.getContainer().equals(currentContainer)) { plist.add(pt); } } - int newContainerNumber = 0; - if (currentContainer > 0) { - newContainerNumber++; + int counter = 1; + String newContainerNumber = currentContainer; + if (!"0".equals(currentContainer)) { // find new unused container number boolean search = true; while (search) { + newContainerNumber = currentContainer + " - " + counter; if (!this.containers.containsKey(newContainerNumber)) { search = false; } else { - newContainerNumber++; + counter++; } } } @@ -424,24 +425,25 @@ private void saveStep() { } public String duplicateContainerForAll() { - Integer currentContainer = this.processProperty.getContainer(); + String currentContainer = this.processProperty.getContainer(); List plist = new ArrayList<>(); // search for all properties in container for (ProcessProperty pt : this.processPropertyList) { - if (pt.getContainer() == currentContainer) { + if (pt.getContainer().equals(currentContainer)) { plist.add(pt); } } - int newContainerNumber = 0; - if (currentContainer > 0) { - newContainerNumber++; + int counter = 1; + String newContainerNumber = currentContainer; + if (!"0".equals(currentContainer)) { boolean search = true; while (search) { + newContainerNumber = currentContainer + " - " + counter; if (!this.containers.containsKey(newContainerNumber)) { search = false; } else { - newContainerNumber++; + counter++; } } } @@ -875,7 +877,7 @@ public List getScriptnames() { return answer; } - public List getContainerList() { + public List getContainerList() { return new ArrayList<>(this.containers.keySet()); } } diff --git a/src/main/java/de/sub/goobi/helper/PropertyListObject.java b/src/main/java/de/sub/goobi/helper/PropertyListObject.java index 8e3f8b79e..63695a69e 100644 --- a/src/main/java/de/sub/goobi/helper/PropertyListObject.java +++ b/src/main/java/de/sub/goobi/helper/PropertyListObject.java @@ -41,12 +41,12 @@ public class PropertyListObject implements Serializable { private List propertyList = new ArrayList<>(); @Getter - private int containerNumber = 0; + private String containerNumber = "0"; public PropertyListObject() { } - public PropertyListObject(int container) { + public PropertyListObject(String container) { this.containerNumber = container; } diff --git a/src/main/java/de/sub/goobi/persistence/managers/DatabaseVersion.java b/src/main/java/de/sub/goobi/persistence/managers/DatabaseVersion.java index 9e2b69e54..71b24cba3 100644 --- a/src/main/java/de/sub/goobi/persistence/managers/DatabaseVersion.java +++ b/src/main/java/de/sub/goobi/persistence/managers/DatabaseVersion.java @@ -54,7 +54,7 @@ @Log4j2 public class DatabaseVersion { - public static final int EXPECTED_VERSION = 56; + public static final int EXPECTED_VERSION = 57; private static final Gson GSON = new Gson(); // TODO ALTER TABLE metadata add fulltext(value) after mysql is version 5.6 or higher @@ -405,6 +405,10 @@ public static void updateDatabase(int currentVersion) { log.trace("Update database to version 55."); updateToVersion56(); tempVersion++; + case 56: //NOSONAR, no break on purpose to run through all cases + log.trace("Update database to version 56."); + updateToVersion57(); + tempVersion++; default://NOSONAR, no break on purpose to run through all cases // this has to be the last case updateDatabaseVersion(currentVersion, tempVersion); @@ -419,6 +423,26 @@ public static void updateDatabase(int currentVersion) { } } + private static void updateToVersion57() throws Exception { + Connection connection = null; + try { + connection = MySQLHelper.getInstance().getConnection(); + DatabaseVersion.runSql("ALTER TABLE prozesseeigenschaften MODIFY container text"); + DatabaseVersion.runSql("ALTER TABLE schritteeigenschaften MODIFY container text"); + DatabaseVersion.runSql("ALTER TABLE vorlageneigenschaften MODIFY container text"); + DatabaseVersion.runSql("ALTER TABLE werkstueckeeigenschaften MODIFY container text"); + } finally { + if (connection != null) { + try { + MySQLHelper.closeConnection(connection); + } catch (SQLException exception) { + log.warn(exception); + } + } + } + + } + private static void updateToVersion56() throws Exception { String sql = "SELECT * FROM prozesseeigenschaften WHERE Titel LIKE 'image comments%' AND WERT != '{}'"; Connection connection = null; @@ -931,7 +955,8 @@ private static void updateToVersion39() throws SQLException { } if (DatabaseVersion.checkIfTableExists("vocabularies")) { - log.error("The vocabulary migration logic for this version has been removed. Please try to manually re-create the vocabularies or contact the support."); + log.error( + "The vocabulary migration logic for this version has been removed. Please try to manually re-create the vocabularies or contact the support."); } } diff --git a/src/main/java/de/sub/goobi/persistence/managers/PropertyMysqlHelper.java b/src/main/java/de/sub/goobi/persistence/managers/PropertyMysqlHelper.java index 9a909cbe2..a86c2e8ee 100644 --- a/src/main/java/de/sub/goobi/persistence/managers/PropertyMysqlHelper.java +++ b/src/main/java/de/sub/goobi/persistence/managers/PropertyMysqlHelper.java @@ -162,7 +162,7 @@ private static Processproperty parseProcessProperty(ResultSet result) throws SQL creationDate = new Date(time.getTime()); } property.setCreationDate(creationDate); - property.setContainer(result.getInt(container)); + property.setContainer(result.getString(container)); return property; } @@ -181,7 +181,7 @@ private static Templateproperty parseTemplateProperty(ResultSet result) throws S creationDate = new Date(time.getTime()); } property.setCreationDate(creationDate); - property.setContainer(result.getInt(container)); + property.setContainer(result.getString(container)); return property; } @@ -200,7 +200,7 @@ private static Masterpieceproperty parseMasterpieceProperty(ResultSet result) th creationDate = new Date(time.getTime()); } property.setCreationDate(creationDate); - property.setContainer(result.getInt(container)); + property.setContainer(result.getString(container)); return property; } diff --git a/src/main/java/de/sub/goobi/persistence/managers/StepMysqlHelper.java b/src/main/java/de/sub/goobi/persistence/managers/StepMysqlHelper.java index 8855c49d0..b3b1c6a60 100644 --- a/src/main/java/de/sub/goobi/persistence/managers/StepMysqlHelper.java +++ b/src/main/java/de/sub/goobi/persistence/managers/StepMysqlHelper.java @@ -171,7 +171,7 @@ public static List getSteps(String order, String filter, Integer start, In } } - public static final ResultSetHandler> resultSetToStepListHandler = new ResultSetHandler>() { + public static final ResultSetHandler> resultSetToStepListHandler = new ResultSetHandler<>() { @Override public List handle(ResultSet rs) throws SQLException { @@ -188,7 +188,7 @@ public List handle(ResultSet rs) throws SQLException { }; - public static final ResultSetHandler> resultSetIdsToStepListHandler = new ResultSetHandler>() { + public static final ResultSetHandler> resultSetIdsToStepListHandler = new ResultSetHandler<>() { @Override public List handle(ResultSet rs) throws SQLException { @@ -267,7 +267,7 @@ private static void checkBatchStatus(List stepList) { } } - public static final ResultSetHandler resultSetToStepHandler = new ResultSetHandler() { + public static final ResultSetHandler resultSetToStepHandler = new ResultSetHandler<>() { @Override public Step handle(ResultSet rs) throws SQLException { try { @@ -385,7 +385,7 @@ private static Step convert(ResultSet rs) throws SQLException { return s; } - public static final ResultSetHandler> resultSetToErrorPropertyListHandler = new ResultSetHandler>() { + public static final ResultSetHandler> resultSetToErrorPropertyListHandler = new ResultSetHandler<>() { @Override public List handle(ResultSet rs) throws SQLException { @@ -403,7 +403,7 @@ public List handle(ResultSet rs) throws SQLException { if (time != null) { creationDate = new Date(time.getTime()); } - int container = rs.getInt("container"); + String container = rs.getString("container"); ErrorProperty ve = new ErrorProperty(); ve.setId(id); ve.setTitel(title); @@ -422,7 +422,7 @@ public List handle(ResultSet rs) throws SQLException { } }; - public static final ResultSetHandler checkForResultHandler = new ResultSetHandler() { + public static final ResultSetHandler checkForResultHandler = new ResultSetHandler<>() { @Override public Boolean handle(ResultSet rs) throws SQLException { @@ -1167,7 +1167,7 @@ public static List getScriptsForStep(int stepId) throws SQLException { } } - public static final ResultSetHandler> resultSetToScriptsHandler = new ResultSetHandler>() { + public static final ResultSetHandler> resultSetToScriptsHandler = new ResultSetHandler<>() { @Override public List handle(ResultSet rs) throws SQLException { List answer = new ArrayList<>(); diff --git a/src/main/java/org/goobi/beans/ErrorProperty.java b/src/main/java/org/goobi/beans/ErrorProperty.java index 655646fc3..a2fa284b6 100644 --- a/src/main/java/org/goobi/beans/ErrorProperty.java +++ b/src/main/java/org/goobi/beans/ErrorProperty.java @@ -61,7 +61,7 @@ public class ErrorProperty implements Serializable, IGoobiProperty { @Getter @Setter private Date creationDate; - private Integer container; + private String container; public ErrorProperty() { this.istObligatorisch = false; @@ -111,17 +111,17 @@ public List getValueList() { } @Override - public Integer getContainer() { + public String getContainer() { if (this.container == null) { - return 0; + return "0"; } return this.container; } @Override - public void setContainer(Integer order) { + public void setContainer(String order) { if (order == null) { - order = 0; + order = "0"; } this.container = order; } diff --git a/src/main/java/org/goobi/beans/Masterpieceproperty.java b/src/main/java/org/goobi/beans/Masterpieceproperty.java index 28628404b..dd909140c 100644 --- a/src/main/java/org/goobi/beans/Masterpieceproperty.java +++ b/src/main/java/org/goobi/beans/Masterpieceproperty.java @@ -72,7 +72,7 @@ public class Masterpieceproperty implements Serializable, IGoobiProperty { @Getter @Setter private Date creationDate; - private Integer container; + private String container; public Masterpieceproperty() { this.istObligatorisch = false; @@ -129,17 +129,17 @@ public Masterpiece getWerkstueck() { } @Override - public Integer getContainer() { + public String getContainer() { if (this.container == null) { - return 0; + return "0"; } return this.container; } @Override - public void setContainer(Integer order) { + public void setContainer(String order) { if (order == null) { - order = 0; + order = "0"; } this.container = order; } diff --git a/src/main/java/org/goobi/beans/Processproperty.java b/src/main/java/org/goobi/beans/Processproperty.java index e5e3b177e..df9babac6 100644 --- a/src/main/java/org/goobi/beans/Processproperty.java +++ b/src/main/java/org/goobi/beans/Processproperty.java @@ -63,7 +63,7 @@ public class Processproperty implements Serializable, IGoobiProperty, Comparable @Getter @Setter private Date creationDate; - private Integer container; + private String container; @Setter private int processId; @@ -122,17 +122,17 @@ public Process getProzess() { } @Override - public Integer getContainer() { + public String getContainer() { if (this.container == null) { - return 0; + return "0"; } return this.container; } @Override - public void setContainer(Integer order) { + public void setContainer(String order) { if (order == null) { - order = 0; + order = "0"; } this.container = order; } diff --git a/src/main/java/org/goobi/beans/Templateproperty.java b/src/main/java/org/goobi/beans/Templateproperty.java index 9d4937d17..72b41a1f6 100644 --- a/src/main/java/org/goobi/beans/Templateproperty.java +++ b/src/main/java/org/goobi/beans/Templateproperty.java @@ -63,7 +63,7 @@ public class Templateproperty implements Serializable, IGoobiProperty { @Getter @Setter private Date creationDate; - private Integer container; + private String container; public Templateproperty() { this.istObligatorisch = false; @@ -125,17 +125,17 @@ public Template getVorlage() { } @Override - public Integer getContainer() { + public String getContainer() { if (this.container == null) { - return 0; + return "0"; } return this.container; } @Override - public void setContainer(Integer order) { + public void setContainer(String order) { if (order == null) { - order = 0; + order = "0"; } this.container = order; } diff --git a/src/main/java/org/goobi/beans/UserProperty.java b/src/main/java/org/goobi/beans/UserProperty.java index 157564069..41ec43088 100644 --- a/src/main/java/org/goobi/beans/UserProperty.java +++ b/src/main/java/org/goobi/beans/UserProperty.java @@ -111,12 +111,12 @@ public List getValueList() { } @Override - public Integer getContainer() { - return 0; + public String getContainer() { + return "0"; } @Override - public void setContainer(Integer order) { + public void setContainer(String order) { } diff --git a/src/main/java/org/goobi/managedbeans/ProcessBean.java b/src/main/java/org/goobi/managedbeans/ProcessBean.java index dbcb630dd..724473b9f 100644 --- a/src/main/java/org/goobi/managedbeans/ProcessBean.java +++ b/src/main/java/org/goobi/managedbeans/ProcessBean.java @@ -272,9 +272,9 @@ public class ProcessBean extends BasicBean implements Serializable { @Setter private ProcessProperty processProperty; @Getter - private Map containers = new TreeMap<>(); + private Map containers = new TreeMap<>(); @Getter - private Integer container; + private String container; @Getter @Setter private String userDisplayMode = ""; @@ -2378,7 +2378,7 @@ public int getPropertyListSize() { return this.processPropertyList.size(); } - public List getContainerList() { + public List getContainerList() { return new ArrayList<>(this.containers.keySet()); } @@ -2406,14 +2406,14 @@ public void deleteProperty() { } public void duplicateProperty() { - ProcessProperty pt = this.processProperty.getClone(0); + ProcessProperty pt = this.processProperty.getClone("0"); this.processPropertyList.add(pt); saveProcessProperties(); } - public void setContainer(Integer container) { + public void setContainer(String container) { this.container = container; - if (container != null && container > 0) { + if (container != null && !"0".equals(container)) { this.processProperty = getContainerProperties().get(0); } } @@ -2421,9 +2421,9 @@ public void setContainer(Integer container) { public List getContainerProperties() { List answer = new ArrayList<>(); - if (this.container != null && this.container > 0) { + if (this.container != null && !"0".equals(container)) { for (ProcessProperty pp : this.processPropertyList) { - if (pp.getContainer() == this.container) { + if (pp.getContainer().equals(container)) { answer.add(pp); } } @@ -2435,24 +2435,26 @@ public List getContainerProperties() { } public String duplicateContainer() { - Integer currentContainer = this.processProperty.getContainer(); + String currentContainer = this.processProperty.getContainer(); List plist = new ArrayList<>(); // search for all properties in container for (ProcessProperty pt : this.processPropertyList) { - if (pt.getContainer() == currentContainer) { + if (pt.getContainer().equals(currentContainer)) { plist.add(pt); } } - int newContainerNumber = 0; - if (currentContainer > 0) { - newContainerNumber++; + int counter = 1; + currentContainer = currentContainer.replaceAll(" - \\d+", ""); + String newContainerNumber = currentContainer; + if (!"0".equals(currentContainer)) { // find new unused container number boolean search = true; while (search) { + newContainerNumber = currentContainer + " - " + counter; if (!this.containers.containsKey(newContainerNumber)) { search = false; } else { - newContainerNumber++; + counter++; } } } @@ -2479,7 +2481,7 @@ public String duplicateContainer() { public List getContainerlessProperties() { List answer = new ArrayList<>(); for (ProcessProperty pp : this.processPropertyList) { - if (pp.getContainer() == 0) { + if ("0".equals(pp.getContainer())) { answer.add(pp); } } @@ -2492,7 +2494,7 @@ public void createNewProperty() { } ProcessProperty pp = new ProcessProperty(); pp.setType(Type.TEXT); - pp.setContainer(0); + pp.setContainer("0"); this.processProperty = pp; } diff --git a/src/main/java/org/goobi/managedbeans/StepBean.java b/src/main/java/org/goobi/managedbeans/StepBean.java index 142febd50..4acd7bd9a 100644 --- a/src/main/java/org/goobi/managedbeans/StepBean.java +++ b/src/main/java/org/goobi/managedbeans/StepBean.java @@ -162,15 +162,15 @@ public class StepBean extends BasicBean implements Serializable { @Setter private BatchStepHelper batchHelper; @Getter - private Map containers = new TreeMap<>(); + private Map containers = new TreeMap<>(); @Getter - private Integer container; + private String container; private List processPropertyList; @Getter @Setter private ProcessProperty processProperty; @Getter - private HashMap containerAccess; + private HashMap containerAccess; @Getter @Setter @@ -1183,7 +1183,7 @@ private void loadProcessProperties() { continue; } - if (pt.getContainer() != 0 && pt.getCurrentStepAccessCondition() != AccessCondition.READ) { + if (!"0".equals(pt.getContainer()) && pt.getCurrentStepAccessCondition() != AccessCondition.READ) { containerAccess.put(pt.getContainer(), true); } if (pt.getProzesseigenschaft() == null) { @@ -1275,7 +1275,7 @@ public void saveCurrentProperty() { loadProcessProperties(); } - public List getContainerList() { + public List getContainerList() { return new ArrayList<>(this.containers.keySet()); } @@ -1307,7 +1307,7 @@ public void deleteProperty() { } public void duplicateProperty() { - ProcessProperty pt = this.processProperty.getClone(0); + ProcessProperty pt = this.processProperty.getClone("0"); this.processPropertyList.add(pt); this.processProperty = pt; saveCurrentProperty(); @@ -1317,7 +1317,7 @@ public void duplicateProperty() { public List getContainerlessProperties() { List answer = new ArrayList<>(); for (ProcessProperty pp : this.processPropertyList) { - if (pp.getContainer() == 0) { + if ("0".equals(pp.getContainer())) { boolean match = true; for (ShowStepCondition cond : pp.getShowStepConditions()) { if (cond.getName().equals(mySchritt.getTitel()) && !cond.getDisplayCondition().isEmpty()) { @@ -1341,9 +1341,9 @@ public List getContainerlessProperties() { return answer; } - public void setContainer(Integer container) { + public void setContainer(String container) { this.container = container; - if (container != null && container > 0) { + if (container != null && !"0".equals(container)) { this.processProperty = getContainerProperties().get(0); } } @@ -1351,7 +1351,7 @@ public void setContainer(Integer container) { public List getContainerProperties() { List answer = new ArrayList<>(); - if (this.container != null && this.container > 0) { + if (this.container != null && !"0".equals(container)) { for (ProcessProperty pp : this.processPropertyList) { if (pp.getContainer() == this.container) { boolean match = true; @@ -1382,24 +1382,26 @@ public List getContainerProperties() { } public String duplicateContainer() { - Integer currentContainer = this.processProperty.getContainer(); + String currentContainer = this.processProperty.getContainer(); List plist = new ArrayList<>(); // search for all properties in container for (ProcessProperty pt : this.processPropertyList) { - if (pt.getContainer() == currentContainer) { + if (pt.getContainer().equals(currentContainer)) { plist.add(pt); } } - int newContainerNumber = 0; - if (currentContainer > 0) { - newContainerNumber++; + int counter = 1; + + String newContainerNumber = currentContainer; + if (!"0".equals(currentContainer)) { // find new unused container number boolean search = true; while (search) { + newContainerNumber = currentContainer + " - " + counter; if (!this.containers.containsKey(newContainerNumber)) { search = false; } else { - newContainerNumber++; + counter++; } } } diff --git a/src/main/java/org/goobi/production/cli/helper/CopyProcess.java b/src/main/java/org/goobi/production/cli/helper/CopyProcess.java index 422693715..340d29256 100644 --- a/src/main/java/org/goobi/production/cli/helper/CopyProcess.java +++ b/src/main/java/org/goobi/production/cli/helper/CopyProcess.java @@ -1290,9 +1290,9 @@ public void calcTiffheader() { } private void addProperty(Template inVorlage, Templateproperty property) { - if (property.getContainer() == 0) { + if ("0".equals(property.getContainer())) { for (Templateproperty ve : inVorlage.getEigenschaftenList()) { - if (ve.getTitel().equals(property.getTitel()) && ve.getContainer() > 0) { + if (ve.getTitel().equals(property.getTitel()) && !"0".equals(ve.getContainer())) { ve.setWert(property.getWert()); return; } @@ -1313,9 +1313,9 @@ private void addProperty(Template inVorlage, Templateproperty property) { } private void addProperty(Process inProcess, Processproperty property) { - if (property.getContainer() == 0) { + if ("0".equals(property.getContainer())) { for (Processproperty pe : inProcess.getEigenschaftenList()) { - if (pe.getTitel().equals(property.getTitel()) && pe.getContainer() > 0) { + if (pe.getTitel().equals(property.getTitel()) && !"0".equals(property.getContainer())) { pe.setWert(property.getWert()); return; } @@ -1336,9 +1336,9 @@ private void addProperty(Process inProcess, Processproperty property) { } private void addProperty(Masterpiece inWerk, Masterpieceproperty property) { - if (property.getContainer() == 0) { + if ("0".equals(property.getContainer())) { for (Masterpieceproperty we : inWerk.getEigenschaftenList()) { - if (we.getTitel().equals(property.getTitel()) && we.getContainer() > 0) { + if (we.getTitel().equals(property.getTitel()) && !"0".equals(we.getContainer())) { we.setWert(property.getWert()); return; } diff --git a/src/main/java/org/goobi/production/properties/IProperty.java b/src/main/java/org/goobi/production/properties/IProperty.java index c48ea5fc0..685fa92ff 100644 --- a/src/main/java/org/goobi/production/properties/IProperty.java +++ b/src/main/java/org/goobi/production/properties/IProperty.java @@ -34,9 +34,9 @@ public interface IProperty { public abstract void setName(String name); - public abstract int getContainer(); + public abstract String getContainer(); - public abstract void setContainer(int container); + public abstract void setContainer(String container); public abstract String getValidation(); @@ -76,7 +76,7 @@ public interface IProperty { public abstract void setPattern(String pattern); - public abstract IProperty getClone(int containerNumber); + public abstract IProperty getClone(String containerName); public abstract void transfer(); diff --git a/src/main/java/org/goobi/production/properties/ImportProperty.java b/src/main/java/org/goobi/production/properties/ImportProperty.java index 5351da543..4951139ac 100644 --- a/src/main/java/org/goobi/production/properties/ImportProperty.java +++ b/src/main/java/org/goobi/production/properties/ImportProperty.java @@ -44,7 +44,7 @@ public class ImportProperty implements IProperty { @Getter @Setter private String name = ""; - private Integer container = 0; + private String container = "0"; @Getter @Setter private String validation = ""; @@ -73,12 +73,12 @@ public ImportProperty() { } @Override - public int getContainer() { + public String getContainer() { return this.container; } @Override - public void setContainer(int container) { + public void setContainer(String container) { this.container = container; } @@ -108,7 +108,7 @@ public boolean isValid() { } @Override - public ImportProperty getClone(int containerNumber) { + public ImportProperty getClone(String containerNumber) { return new ImportProperty(); } diff --git a/src/main/java/org/goobi/production/properties/ProcessProperty.java b/src/main/java/org/goobi/production/properties/ProcessProperty.java index b607d8ee3..a8b33017e 100644 --- a/src/main/java/org/goobi/production/properties/ProcessProperty.java +++ b/src/main/java/org/goobi/production/properties/ProcessProperty.java @@ -53,7 +53,7 @@ public class ProcessProperty implements IProperty, Serializable { private String name; @Getter @Setter - private int container; + private String container; @Getter @Setter private String validation; @@ -168,9 +168,9 @@ public void save(Step step) { * @see org.goobi.production.properties.IProperty#getClone() */ @Override - public ProcessProperty getClone(int containerNumber) { + public ProcessProperty getClone(String containerName) { ProcessProperty p = new ProcessProperty(); - p.setContainer(containerNumber); + p.setContainer(containerName); p.setName(this.name); p.setValidation(this.validation); p.setType(this.type); @@ -232,7 +232,7 @@ public static class CompareProperties implements Comparator, Se @Override public int compare(ProcessProperty o1, ProcessProperty o2) { - return Integer.compare(o1.getContainer(), o2.getContainer()); + return o1.getContainer().compareTo(o2.getContainer()); } } diff --git a/src/main/java/org/goobi/production/properties/PropertyParser.java b/src/main/java/org/goobi/production/properties/PropertyParser.java index 6cc4c360d..c7ec63498 100644 --- a/src/main/java/org/goobi/production/properties/PropertyParser.java +++ b/src/main/java/org/goobi/production/properties/PropertyParser.java @@ -200,7 +200,7 @@ public List getPropertiesForStep(Step mySchritt) { // general values for property ProcessProperty pp = new ProcessProperty(); pp.setName(config.getString(property + "/@name")); - pp.setContainer(config.getInt(property + "/@container")); + pp.setContainer(config.getString(property + "/@container")); // projects int count = config.getMaxIndex(property + "/project"); @@ -340,7 +340,7 @@ public List getPropertiesForProcess(Process process) { // general values for property ProcessProperty pp = new ProcessProperty(); pp.setName(config.getString(property + "/@name")); - pp.setContainer(config.getInt(property + "/@container")); + pp.setContainer(config.getString(property + "/@container")); // workflows @@ -479,7 +479,7 @@ public List getProcessCreationProperties(Process process, Strin ProcessProperty pp = new ProcessProperty(); // general values for property pp.setName(prop.getString("@name")); - pp.setContainer(prop.getInt("@container")); + pp.setContainer(prop.getString("@container")); // projects pp.getProjects().addAll(Arrays.asList(prop.getStringArray("/project"))); // project is configured diff --git a/src/main/webapp/uii/batch_edit.xhtml b/src/main/webapp/uii/batch_edit.xhtml index af26ffdf0..815654f56 100644 --- a/src/main/webapp/uii/batch_edit.xhtml +++ b/src/main/webapp/uii/batch_edit.xhtml @@ -250,7 +250,7 @@ value="#{BatchForm.batchHelper.containerlessProperties}" rowCountVar="propCount" rowIndexVar="propInd"> - + @@ -316,12 +316,12 @@ - + + value="#{msgs[container]}" + escape="false" /> @@ -332,7 +332,7 @@ value="#{BatchForm.batchHelper.containers[container].propertyList}" rowCountVar="propCount" rowIndexVar="propInd"> - + @@ -406,13 +406,6 @@ - - @@ -749,24 +742,9 @@ value="" /> -
    - - - - - - - diff --git a/src/main/webapp/uii/templatePG/includes/process/process_properties.xhtml b/src/main/webapp/uii/templatePG/includes/process/process_properties.xhtml index 86ce083a5..879ed34ca 100644 --- a/src/main/webapp/uii/templatePG/includes/process/process_properties.xhtml +++ b/src/main/webapp/uii/templatePG/includes/process/process_properties.xhtml @@ -1,527 +1,555 @@ - - - - - - - - - - -
    -
    - - - - - - - - - - -
    - #{msgs[metadata.key]} - - - - -
    -
    -
    -
    -
    -
    -
    - - - - - -
    -
    - - - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - #{proc.name} - - - - - - - - - - - - - - - - - - - - - -
    - -
    - #{process_item.name} - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    -
    -
    -
    -
    - - - - - - - - -
    -
    - - - - - - - - - - - - - - - -
    - -
    -
    - - - -
    -
    - - - - -
    - -
    -
    - - - -
    -
    - - - - -
    - -
    -
    - - - - -
    -
    - - - - -
    - -
    -
    - - - - -
    -
    - - - - -
    - -
    -
    - - - - -
    -
    - - - - -
    - -
    -
    - - - -
    -
    - - - - -
    - -
    -
    - + + + + + + + + + + +
    +
    + + + + + + + + + + +
    + #{msgs[metadata.key]} + + + + +
    +
    +
    +
    +
    +
    +
    + + + + + +
    +
    + + + + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + #{proc.name} + + + + + + + + + + + + + + + + + + + + + +
    + +
    + #{process_item.name} + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +
    +
    + + + + + + + + +
    +
    + + + + + + + + + + + + + + + +
    + +
    +
    + + + +
    +
    + + + + +
    + +
    +
    + + + +
    +
    + + + + +
    + +
    +
    + + + + +
    +
    + + + + +
    + +
    +
    + + + + +
    +
    + + + + +
    + +
    +
    + + + + +
    +
    + + + + +
    + +
    +
    + + + +
    +
    + + + + +
    + +
    +
    + - + - -
    -
    - - - - -
    - -
    -
    - - -
    -
    - - -
    - -
    - - - - - - - - - - -
    - -
    -
    -
    -
    - -
    - - -
    + +
    +
    + + + + +
    + +
    +
    + + +
    +
    + + +
    + +
    + + + + + + + + + + +
    + +
    +
    +
    +
    + +
    + + +
    diff --git a/src/main/webapp/uii/templatePG/includes/task/box_properties.xhtml b/src/main/webapp/uii/templatePG/includes/task/box_properties.xhtml index 77381333b..ca35f5213 100644 --- a/src/main/webapp/uii/templatePG/includes/task/box_properties.xhtml +++ b/src/main/webapp/uii/templatePG/includes/task/box_properties.xhtml @@ -43,7 +43,7 @@ id="containerless"> - + @@ -145,11 +145,11 @@ - + @@ -164,7 +164,7 @@ rowIndexVar="propInd" id="container"> - + @@ -358,7 +358,9 @@ value="#{myprocess_item.value}" required="false" readonly="#{myprocess_item.currentStepAccessCondition == 'READ'}"> - + pplist = new ArrayList<>(); - pplist = new ArrayList<>(); pplist.add(pp); process.setEigenschaften(pplist); @@ -85,7 +84,6 @@ public void setUp() throws Exception { Processproperty pp2 = new Processproperty(); List pplist2 = new ArrayList<>(); - pplist2 = new ArrayList<>(); pplist2.add(pp2); process2.setEigenschaften(pplist2); @@ -102,7 +100,7 @@ public void testConstructorNullValue() { @Test(expected = IndexOutOfBoundsException.class) public void testConstructorEmptyList() { - new BatchProcessHelper(new ArrayList(), null); + new BatchProcessHelper(new ArrayList<>(), null); } @Test @@ -187,7 +185,7 @@ public void testProcessName() { public void testSaveCurrentProperty() { BatchProcessHelper helper = new BatchProcessHelper(processList, null); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(0); + pp.setContainer("0"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); @@ -199,7 +197,7 @@ public void testSaveCurrentProperty() { public void testSaveCurrentPropertyForAll() { BatchProcessHelper helper = new BatchProcessHelper(processList, null); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(0); + pp.setContainer("0"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); @@ -211,7 +209,7 @@ public void testSaveCurrentPropertyForAll() { public void testContainers() { BatchProcessHelper helper = new BatchProcessHelper(processList, null); - Map fixture = helper.getContainers(); + Map fixture = helper.getContainers(); assertEquals(2, fixture.size()); } @@ -241,15 +239,15 @@ public void testContainer() { BatchProcessHelper helper = new BatchProcessHelper(processList, null); List list = new ArrayList<>(); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(1); + pp.setContainer("1"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); list.add(pp); helper.setProcessPropertyList(list); - helper.setContainer(1); - assertEquals(1, helper.getContainer().intValue()); + helper.setContainer("1"); + assertEquals("1", helper.getContainer()); } @Test @@ -257,13 +255,13 @@ public void testDuplicateContainerForSingle() { BatchProcessHelper helper = new BatchProcessHelper(processList, null); List list = new ArrayList<>(); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(1); + pp.setContainer("1"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); list.add(pp); helper.setProcessPropertyList(list); - helper.setContainer(1); + helper.setContainer("1"); helper.duplicateContainerForSingle(); } @@ -272,17 +270,17 @@ public void testDuplicateContainerForAll() { BatchProcessHelper helper = new BatchProcessHelper(processList, null); List list = new ArrayList<>(); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(1); + pp.setContainer("1"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); list.add(pp); helper.setProcessPropertyList(list); - helper.setContainer(1); + helper.setContainer("1"); helper.duplicateContainerForAll(); } - private void prepareMocking() throws Exception { + private void prepareMocking() { PowerMock.mockStatic(PropertyManager.class); EasyMock.expect(PropertyManager.getProcessPropertiesForProcess(EasyMock.anyInt())).andReturn(new ArrayList<>()).anyTimes(); PropertyManager.saveProcessProperty(EasyMock.anyObject(Processproperty.class)); diff --git a/src/test/java/de/sub/goobi/helper/BatchStepHelperTest.java b/src/test/java/de/sub/goobi/helper/BatchStepHelperTest.java index 708c0ecd0..899f65b9c 100644 --- a/src/test/java/de/sub/goobi/helper/BatchStepHelperTest.java +++ b/src/test/java/de/sub/goobi/helper/BatchStepHelperTest.java @@ -160,7 +160,7 @@ public void testProcessName() { public void testSaveCurrentProperty() { BatchStepHelper helper = new BatchStepHelper(stepList); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(0); + pp.setContainer("0"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); @@ -172,7 +172,7 @@ public void testSaveCurrentProperty() { public void testSaveCurrentPropertyForAll() { BatchStepHelper helper = new BatchStepHelper(stepList); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(0); + pp.setContainer("0"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); @@ -184,7 +184,7 @@ public void testSaveCurrentPropertyForAll() { public void testContainers() { BatchStepHelper helper = new BatchStepHelper(stepList); - Map fixture = helper.getContainers(); + Map fixture = helper.getContainers(); assertEquals(2, fixture.size()); } @@ -214,15 +214,15 @@ public void testContainer() { BatchStepHelper helper = new BatchStepHelper(stepList); List list = new ArrayList<>(); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(1); + pp.setContainer("1"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); list.add(pp); helper.setProcessPropertyList(list); - helper.setContainer(1); - assertEquals(1, helper.getContainer().intValue()); + helper.setContainer("1"); + assertEquals("1", helper.getContainer()); } @Test @@ -230,13 +230,13 @@ public void testDuplicateContainerForSingle() { BatchStepHelper helper = new BatchStepHelper(stepList); List list = new ArrayList<>(); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(1); + pp.setContainer("1"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); list.add(pp); helper.setProcessPropertyList(list); - helper.setContainer(1); + helper.setContainer("1"); helper.duplicateContainerForSingle(); } @@ -245,17 +245,17 @@ public void testDuplicateContainerForAll() { BatchStepHelper helper = new BatchStepHelper(stepList); List list = new ArrayList<>(); ProcessProperty pp = new ProcessProperty(); - pp.setContainer(1); + pp.setContainer("1"); pp.setType(Type.TEXT); pp.setValue("value"); pp.setName("name"); list.add(pp); helper.setProcessPropertyList(list); - helper.setContainer(1); + helper.setContainer("1"); helper.duplicateContainerForAll(); } - private void prepareMocking() throws Exception { + private void prepareMocking() { PowerMock.mockStatic(PropertyManager.class); EasyMock.expect(PropertyManager.getProcessPropertiesForProcess(EasyMock.anyInt())).andReturn(new ArrayList<>()).anyTimes(); PropertyManager.saveProcessProperty(EasyMock.anyObject(Processproperty.class)); diff --git a/src/test/java/org/goobi/beans/ErrorPropertyTest.java b/src/test/java/org/goobi/beans/ErrorPropertyTest.java index 9377fac7c..e1a975a26 100644 --- a/src/test/java/org/goobi/beans/ErrorPropertyTest.java +++ b/src/test/java/org/goobi/beans/ErrorPropertyTest.java @@ -80,17 +80,15 @@ public void testValueList() { public void testContainer() { ErrorProperty property = new ErrorProperty(); - // This integer is outsourced because assertEquals() requires object type safety - Integer zero = Integer.valueOf(0); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether null is replaced with 0 property.setContainer(null); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether normal numbers work - property.setContainer(42); - assertEquals(property.getContainer(), Integer.valueOf(42)); + property.setContainer("42"); + assertEquals("42", property.getContainer()); } @Test diff --git a/src/test/java/org/goobi/beans/MasterpiecepropertyTest.java b/src/test/java/org/goobi/beans/MasterpiecepropertyTest.java index 01327a35d..eff2f304d 100644 --- a/src/test/java/org/goobi/beans/MasterpiecepropertyTest.java +++ b/src/test/java/org/goobi/beans/MasterpiecepropertyTest.java @@ -80,17 +80,15 @@ public void testValueList() { public void testContainer() { Masterpieceproperty property = new Masterpieceproperty(); - // This integer is outsourced because assertEquals() requires object type safety - Integer zero = Integer.valueOf(0); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether null is replaced with 0 property.setContainer(null); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether normal numbers work - property.setContainer(42); - assertEquals(property.getContainer(), Integer.valueOf(42)); + property.setContainer("42"); + assertEquals("42", property.getContainer()); } @Test diff --git a/src/test/java/org/goobi/beans/ProcesspropertyTest.java b/src/test/java/org/goobi/beans/ProcesspropertyTest.java index 253d8ee50..d8ecfd042 100644 --- a/src/test/java/org/goobi/beans/ProcesspropertyTest.java +++ b/src/test/java/org/goobi/beans/ProcesspropertyTest.java @@ -82,17 +82,15 @@ public void testValueList() { public void testContainer() { Processproperty property = new Processproperty(); - // This integer is outsourced because assertEquals() requires object type safety - Integer zero = Integer.valueOf(0); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether null is replaced with 0 property.setContainer(null); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether normal numbers work - property.setContainer(42); - assertEquals(property.getContainer(), Integer.valueOf(42)); + property.setContainer("42"); + assertEquals("42", property.getContainer()); } @Test @@ -133,7 +131,7 @@ public void testHashCode() { public void testEquals() { Processproperty property1 = new Processproperty(); property1.setId(1); - property1.setContainer(1); + property1.setContainer("1"); property1.setCreationDate(new Date()); property1.setType(PropertyType.BOOLEAN); property1.setProcessId(1); @@ -142,7 +140,7 @@ public void testEquals() { Processproperty property2 = new Processproperty(); property2.setId(2); Processproperty property3 = new Processproperty(); - property3.setContainer(2); + property3.setContainer("2"); Processproperty property4 = new Processproperty(); property4.setCreationDate(null); Processproperty property5 = new Processproperty(); diff --git a/src/test/java/org/goobi/beans/TemplatepropertyTest.java b/src/test/java/org/goobi/beans/TemplatepropertyTest.java index b52932f5b..5d07cb3b3 100644 --- a/src/test/java/org/goobi/beans/TemplatepropertyTest.java +++ b/src/test/java/org/goobi/beans/TemplatepropertyTest.java @@ -80,17 +80,15 @@ public void testValueList() { public void testContainer() { Templateproperty property = new Templateproperty(); - // This integer is outsourced because assertEquals() requires object type safety - Integer zero = Integer.valueOf(0); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether null is replaced with 0 property.setContainer(null); - assertEquals(property.getContainer(), zero); + assertEquals(property.getContainer(), "0"); // Test whether normal numbers work - property.setContainer(42); - assertEquals(property.getContainer(), Integer.valueOf(42)); + property.setContainer("42"); + assertEquals("42", property.getContainer()); } @Test diff --git a/src/test/java/org/goobi/beans/UserPropertyTest.java b/src/test/java/org/goobi/beans/UserPropertyTest.java index 9fc75bd81..faa76153f 100644 --- a/src/test/java/org/goobi/beans/UserPropertyTest.java +++ b/src/test/java/org/goobi/beans/UserPropertyTest.java @@ -26,7 +26,6 @@ import java.util.ArrayList; import java.util.List; -import org.junit.Ignore; import org.junit.Test; import de.sub.goobi.AbstractTest; @@ -77,25 +76,6 @@ public void testValueList() { } - // TODO: Is the non-implemented container in UserProperty a bug, or a feature? - @Ignore - @Test - public void testContainer() { - UserProperty property = new UserProperty(); - - // This integer is outsourced because assertEquals() requires object type safety - Integer zero = Integer.valueOf(0); - assertEquals(property.getContainer(), zero); - - // Test whether null is replaced with 0 - property.setContainer(null); - assertEquals(property.getContainer(), zero); - - // Test whether normal numbers work - property.setContainer(42); - assertEquals(property.getContainer(), Integer.valueOf(42)); - } - @Test public void testGetNormalizedTitle() { UserProperty property = new UserProperty(); From fa1b02adf772aa2bf552c8a0cec0f1be907266ad Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Thu, 19 Sep 2024 07:45:32 +0200 Subject: [PATCH 31/48] generate new container names on property duplication --- src/main/java/de/sub/goobi/helper/BatchProcessHelper.java | 2 ++ src/main/java/de/sub/goobi/helper/BatchStepHelper.java | 2 ++ src/main/java/org/goobi/managedbeans/StepBean.java | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java b/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java index 7ce3f84bb..b1b4acc1a 100644 --- a/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java +++ b/src/main/java/de/sub/goobi/helper/BatchProcessHelper.java @@ -292,6 +292,7 @@ public String duplicateContainerForSingle() { } } int counter = 1; + currentContainer = currentContainer.replaceAll(" - \\d+", ""); String newContainerNumber = currentContainer; if (!"0".equals(currentContainer)) { // find new unused container number @@ -328,6 +329,7 @@ public String duplicateContainerForAll() { } int counter = 1; + currentContainer = currentContainer.replaceAll(" - \\d+", ""); String newContainerNumber = currentContainer; if (!"0".equals(currentContainer)) { boolean search = true; diff --git a/src/main/java/de/sub/goobi/helper/BatchStepHelper.java b/src/main/java/de/sub/goobi/helper/BatchStepHelper.java index 145431e68..3bda2882b 100644 --- a/src/main/java/de/sub/goobi/helper/BatchStepHelper.java +++ b/src/main/java/de/sub/goobi/helper/BatchStepHelper.java @@ -383,6 +383,7 @@ public String duplicateContainerForSingle() { } } int counter = 1; + currentContainer = currentContainer.replaceAll(" - \\d+", ""); String newContainerNumber = currentContainer; if (!"0".equals(currentContainer)) { // find new unused container number @@ -435,6 +436,7 @@ public String duplicateContainerForAll() { } int counter = 1; + currentContainer = currentContainer.replaceAll(" - \\d+", ""); String newContainerNumber = currentContainer; if (!"0".equals(currentContainer)) { boolean search = true; diff --git a/src/main/java/org/goobi/managedbeans/StepBean.java b/src/main/java/org/goobi/managedbeans/StepBean.java index 4acd7bd9a..4093c79c8 100644 --- a/src/main/java/org/goobi/managedbeans/StepBean.java +++ b/src/main/java/org/goobi/managedbeans/StepBean.java @@ -1391,7 +1391,7 @@ public String duplicateContainer() { } } int counter = 1; - + currentContainer = currentContainer.replaceAll(" - \\d+", ""); String newContainerNumber = currentContainer; if (!"0".equals(currentContainer)) { // find new unused container number From b7e763f37e533cc5b1d3ef7e138b76158f3ac270 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Thu, 19 Sep 2024 11:04:41 +0200 Subject: [PATCH 32/48] s3 adjustments --- .../java/de/sub/goobi/helper/S3FileUtils.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/sub/goobi/helper/S3FileUtils.java b/src/main/java/de/sub/goobi/helper/S3FileUtils.java index 9c67d455c..a4c635360 100644 --- a/src/main/java/de/sub/goobi/helper/S3FileUtils.java +++ b/src/main/java/de/sub/goobi/helper/S3FileUtils.java @@ -77,7 +77,6 @@ import software.amazon.awssdk.services.s3.model.ListObjectsV2Response; import software.amazon.awssdk.services.s3.model.ObjectIdentifier; import software.amazon.awssdk.services.s3.model.PutObjectResponse; -import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.services.s3.model.S3Object; import software.amazon.awssdk.transfer.s3.S3TransferManager; import software.amazon.awssdk.transfer.s3.model.DirectoryDownload; @@ -236,7 +235,7 @@ private void deletePathOnS3(Path dir) { .delete(d -> d.objects(toDelete)) .build(); - s3.deleteObjects(dor); + s3.deleteObjects(dor).join(); } while (nextContinuationToken != null); @@ -583,14 +582,9 @@ public Path renameTo(Path oldName, String newNameString) throws IOException { .delete(d -> d.objects(toDelete)) .build(); - try { - s3.copyObject(copyReq); - - s3.deleteObjects(dor); + s3.copyObject(copyReq).join(); - } catch (S3Exception e) { - log.error(e); - } + s3.deleteObjects(dor).join(); return key2Path(newKey); } @@ -623,7 +617,7 @@ public void copyFile(Path srcFile, Path destFile) throws IOException { .destinationKey(path2Key(destFile)) .build(); - s3.copyObject(copyReq); + s3.copyObject(copyReq).join(); } else { // src on s3 and dest local => download file from s3 to local location @@ -778,7 +772,7 @@ public void deleteFile(Path path) throws IOException { .delete(d -> d.objects(toDelete)) .build(); - s3.deleteObjects(dor); + s3.deleteObjects(dor).join(); } From b965c5a6fa073a756533c01464303833f99a5fe5 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Thu, 19 Sep 2024 13:27:20 +0200 Subject: [PATCH 33/48] image: search for thumbs folder on s3 --- src/main/java/de/sub/goobi/metadaten/Image.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/sub/goobi/metadaten/Image.java b/src/main/java/de/sub/goobi/metadaten/Image.java index 9bd6ae05b..d2378684b 100644 --- a/src/main/java/de/sub/goobi/metadaten/Image.java +++ b/src/main/java/de/sub/goobi/metadaten/Image.java @@ -27,7 +27,6 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; -import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -428,7 +427,7 @@ public static String createIIIFUrl(Process process, String imageFolderName, Stri private static Path getImagePath(org.goobi.beans.Process process, String imageFolderName, String filename) throws IOException, SwapException { Path path = Paths.get(process.getImagesDirectory(), imageFolderName, filename); - if (!Files.exists(path)) { + if (!StorageProvider.getInstance().isFileExists(path)) { path = Paths.get(process.getThumbsDirectory(), imageFolderName, filename); } return path; @@ -495,7 +494,7 @@ public static Type getFromPath(Path path) { return Type.video; } else if (mimetype.startsWith("image/")) { return Type.image; - } else if (mimetype.equals("application/pdf")) { + } else if ("application/pdf".equals(mimetype)) { return Type.pdf; } } From c3365c14c16a0a00b8b8aed567dc7dace2ecee56 Mon Sep 17 00:00:00 2001 From: Steffen Hankiewicz Date: Thu, 19 Sep 2024 16:07:08 +0200 Subject: [PATCH 34/48] added several messages --- src/main/resources/messages_de.properties | 21 +- src/main/resources/messages_en.properties | 18 + src/main/resources/messages_es.properties | 18 + src/main/resources/messages_fr.properties | 18 + src/main/resources/messages_it.properties | 18 + src/main/resources/messages_iw.properties | 544 ++++++++++++++++++++++ src/main/resources/messages_nl.properties | 18 + src/main/resources/messages_pt.properties | 18 + 8 files changed, 671 insertions(+), 2 deletions(-) diff --git a/src/main/resources/messages_de.properties b/src/main/resources/messages_de.properties index 98d0dcd45..6172b14a4 100644 --- a/src/main/resources/messages_de.properties +++ b/src/main/resources/messages_de.properties @@ -24,6 +24,7 @@ DocketNotFound=Die angegebene Datei konnte nicht gefunden werden. Eigenschaft=Eigenschaft Error\ running\ tool\ or\ reading\ report\ file=zzz Error\ while\ loading\ metadata=Fehler beim Laden der Metadaten +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=Dateiname enth\u00E4lt Umlaute oder Datei ist passwortgesch\u00FCtzt. Bitte korrigieren und erneut versuchen. ErrorDMSExport=Vorgang {0} konnte aufgrund eines Fehlers nicht exportiert werden\: {1} ErrorLoadingValidationPlugin=Das Validierungsplugin konnte nicht geladen werden. ErrorMetadataNotUpdated=Die Metadatendatei {0} konnte nicht aktualisiert werden. @@ -31,7 +32,6 @@ ErrorMetsEditorImageRenaming=Es kam zu einem Fehler w\u00E4hrend der Umbenennung ErrorNoProcessMatch=Es konnte kein Vorgang f\u00FCr {0} gefunden werden. ErrorTemplateSelectionIsEmpty=Es wurde keine Vorlage ausgew\u00E4hlt. ErrorToManyProcessMatches=Es wurde mehr als ein Vorgang f\u00FCr {0} gefunden. -Error\=running\ tool\ or\ reading\ report\ file\=Fehler\: Dateiname enth\u00E4lt Umlaute oder Datei ist passwortgesch\u00FCtzt. Bitte korrigieren und erneut versuchen. Error_hideUser=Es ist ein Fehler aufgetreten. Der Benutzer konnte nicht ausgeblendet werden. Error_selfDelete=Es ist ein Fehler aufgetreten\: Ein Nutzer darf sich nicht selbst l\u00F6schen. Export\ der\ Daten=Export der Daten @@ -1307,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=Vokabulare intranda_metadata_changeType=Publikationstyp wechseln intranda_metadata_createStructureElements=Strukturelemente generieren +intranda_quartz_backupEadFile=Backup der Archivbest\u00E4nde als EAD-Dateien +intranda_quartz_exportEadFile=Ver\u00F6ffentlichen der Archivbest\u00E4nde als EAD-Dateien intranda_quartz_herisJob=HERIS Import intranda_statistics_allStepsPerProject=Arbeitsschritte pro Projekt intranda_statistics_file_count=Dateianzahl ermitteln @@ -2304,10 +2306,13 @@ plugin_administration_archive_DescriptionDates=Datum oder Zeitraum der Verzeichn plugin_administration_archive_Number=Archiv Nummer plugin_administration_archive_Shelfmark=Signatur(en) plugin_administration_archive_accessrestrict=Zugangsbestimmungen +plugin_administration_archive_accessrestrict_date=Datum plugin_administration_archive_accessrestrict_date=Ablaufdatum plugin_administration_archive_accessrestrict_value=Wert +plugin_administration_archive_accessrestrict_value=Wert plugin_administration_archive_accruals=Neuzug\u00E4nge plugin_administration_archive_accruals_date=Datum +plugin_administration_archive_accruals_date=Datum plugin_administration_archive_accruals_head=\u00DCberschrift plugin_administration_archive_accruals_p=Beschreibung plugin_administration_archive_acqinfo=Abgebende Stelle @@ -2319,9 +2324,12 @@ plugin_administration_archive_agent=Person/Agent plugin_administration_archive_altformavail=Kopien bzw. Reproduktionen plugin_administration_archive_altformavail_head=\u00DCberschrift plugin_administration_archive_altformavail_link=Link +plugin_administration_archive_altformavail_link=Link plugin_administration_archive_altformavail_p=Beschreibung +plugin_administration_archive_altformavail_person=Person plugin_administration_archive_altformavail_person=Person/Agent plugin_administration_archive_altformavail_shelfmark=Signatur +plugin_administration_archive_altformavail_shelfmark=Signatur plugin_administration_archive_appraisal=Bewertung und Kassation plugin_administration_archive_area_access=Zugangs- und Benutzungsbedingungen plugin_administration_archive_area_content=Inhalt und innere Ordnung @@ -2406,14 +2414,20 @@ plugin_administration_archive_oddnote=Weitere Anmerkungen plugin_administration_archive_originalsloc=Aufbewahrungsort der Originale plugin_administration_archive_originalsloc_head=\u00DCberschrift plugin_administration_archive_originalsloc_link=Link +plugin_administration_archive_originalsloc_link=Link plugin_administration_archive_originalsloc_p=Beschreibung +plugin_administration_archive_originalsloc_person=Person plugin_administration_archive_originalsloc_person=Person/Agent plugin_administration_archive_originalsloc_shelfmark=Signatur +plugin_administration_archive_originalsloc_shelfmark=Signatur plugin_administration_archive_origination=Name der Provenienzstelle plugin_administration_archive_originationcorpname=K\u00F6rperschaft der Provenienzstelle plugin_administration_archive_otherfindaid=Findhilfsmittel +plugin_administration_archive_otherfindaid_link=Link zu Findmittel plugin_administration_archive_otherfindaid_link=Link +plugin_administration_archive_otherfindaid_node=Knoten des Findmittels plugin_administration_archive_otherfindaid_node=Knoten +plugin_administration_archive_otherfindaid_type=Typ des Findmittels plugin_administration_archive_otherfindaid_type=Typ plugin_administration_archive_permission_management_new=Zum Anlegen von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung\: plugin_administration_archive_permission_management_upload=Zum Hochladen von Archivbest\u00E4nden ben\u00F6tigen Sie diese Berechtigung\: @@ -2423,7 +2437,9 @@ plugin_administration_archive_physdesc=Umfang plugin_administration_archive_physdescdimensions=Ausma\u00DFe plugin_administration_archive_physdescextent=Umfang plugin_administration_archive_physdescquantity=Anzahl +plugin_administration_archive_physdescquantity=Anzahl plugin_administration_archive_physdescstructured=Umfang (normiert) +plugin_administration_archive_physdescunittype=Typ plugin_administration_archive_physdescunittype=Einheit plugin_administration_archive_phystech=Physische Beschaffenheit und technische Anforderungen plugin_administration_archive_please_select_node=Bitte w\u00E4hlen Sie zun\u00E4chst einen Knoten aus. @@ -2441,6 +2457,7 @@ plugin_administration_archive_reviewRequired=\u00DCberpr\u00FCfung notwendig plugin_administration_archive_role=Rolle plugin_administration_archive_saveAndExit=Archivbestand speichern und verlassen plugin_administration_archive_scopecontent=Form und Inhalt +plugin_administration_archive_selection=Auswahl plugin_administration_archive_selection=Duplizieren plugin_administration_archive_selectionHeading=Archivbest\u00E4nde plugin_administration_archive_selectionText=Bitte w\u00E4hlen Sie zun\u00E4chst den Archivbestand aus, mit dem Sie arbeiten m\u00F6chten\: @@ -3677,7 +3694,7 @@ process_grid_DataMediumType=Datentr\u00E4gertyp process_grid_DigitalOrigin=Vorlageinformation process_grid_DocLanguage=Sprache process_grid_EAN=GTIN/EAN -process_grid_Edition=Auflage\, Stand oder Version +process_grid_Edition=Auflage, Stand oder Version process_grid_Editor=Editor() process_grid_FSK=Angabe zur freiwilligen Selbstkontrolle process_grid_Handle=Handle diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 9cf598baf..815328d3d 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -24,6 +24,7 @@ DocketNotFound=The specified file cannot be found. Eigenschaft=Property Error\ running\ tool\ or\ reading\ report\ file=Error\: Filename contains umlauts or file is password-protected. Please correct and try again. Error\ while\ loading\ metadata=Error while loading metadata +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=zzz ErrorDMSExport=The process {0} could not be exported due to an error\: {1} ErrorLoadingValidationPlugin=The validation plugin could not be loaded. ErrorMetadataNotUpdated=The metadata file {0} could not be updated. @@ -1306,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=Vocabularies zzz intranda_metadata_changeType=Change publication typezzz intranda_metadata_createStructureElements=Generate structure elementszzz +intranda_quartz_backupEadFile=Backup of archive holdings as EAD files zzz +intranda_quartz_exportEadFile=Publish the archive holdings as EAD files zzz intranda_quartz_herisJob=HERIS Import intranda_statistics_allStepsPerProject=Workflow steps per project intranda_statistics_file_count=Determine number of files @@ -2303,9 +2306,12 @@ plugin_administration_archive_DescriptionDates=Date(s) of descriptionszzz plugin_administration_archive_Number=Archive Number plugin_administration_archive_Shelfmark=Reference code(s) plugin_administration_archive_accessrestrict=Conditions governing access +plugin_administration_archive_accessrestrict_date=date zzz plugin_administration_archive_accessrestrict_date=Expiry datezzz +plugin_administration_archive_accessrestrict_value=Value zzz plugin_administration_archive_accessrestrict_value=Value plugin_administration_archive_accruals=Accruals +plugin_administration_archive_accruals_date=date zzz plugin_administration_archive_accruals_date=Date plugin_administration_archive_accruals_head=Headingzzz plugin_administration_archive_accruals_p=Descriptionzzz @@ -2317,9 +2323,12 @@ plugin_administration_archive_agencycode=Agency code plugin_administration_archive_agent=Person/Agentzzz plugin_administration_archive_altformavail=Existence and location of copies plugin_administration_archive_altformavail_head=Headingzzz +plugin_administration_archive_altformavail_link=Link zzz plugin_administration_archive_altformavail_link=Linkzzz plugin_administration_archive_altformavail_p=Descriptionzzz +plugin_administration_archive_altformavail_person=Person zzz plugin_administration_archive_altformavail_person=Person/Agentzzz +plugin_administration_archive_altformavail_shelfmark=Signature zzz plugin_administration_archive_altformavail_shelfmark=Shelfmarkzzz plugin_administration_archive_appraisal=Appraisal, destruction and scheduling information plugin_administration_archive_area_access=Condition of Access and Use Area @@ -2404,15 +2413,21 @@ plugin_administration_archive_numberOfNodes=Number of nodeszzz plugin_administration_archive_oddnote=Odd notes plugin_administration_archive_originalsloc=Existence and location of originals plugin_administration_archive_originalsloc_head=Headingzzz +plugin_administration_archive_originalsloc_link=Link zzz plugin_administration_archive_originalsloc_link=Linkzzz plugin_administration_archive_originalsloc_p=Descriptionzzz +plugin_administration_archive_originalsloc_person=Person zzz plugin_administration_archive_originalsloc_person=Person/Agentzzz +plugin_administration_archive_originalsloc_shelfmark=Signature zzz plugin_administration_archive_originalsloc_shelfmark=Shelfmarkzzz plugin_administration_archive_origination=Name of creator(s) plugin_administration_archive_originationcorpname=Corporate body of the provenancezzz plugin_administration_archive_otherfindaid=Finding aids +plugin_administration_archive_otherfindaid_link=Link to finding aid zzz plugin_administration_archive_otherfindaid_link=Linkzzz +plugin_administration_archive_otherfindaid_node=Nodes of the finding aid zzz plugin_administration_archive_otherfindaid_node=Nodezzz +plugin_administration_archive_otherfindaid_type=Type of finding aid zzz plugin_administration_archive_otherfindaid_type=Typezzz plugin_administration_archive_permission_management_new=To create new archive records you need this permission\: plugin_administration_archive_permission_management_upload=To upload archive records you need this permission\: @@ -2421,8 +2436,10 @@ plugin_administration_archive_person=Person plugin_administration_archive_physdesc=Extent and medium of the unit of description (quantity, bulk, or size) plugin_administration_archive_physdescdimensions=Dimensions plugin_administration_archive_physdescextent=Extent +plugin_administration_archive_physdescquantity=Quantity zzz plugin_administration_archive_physdescquantity=Quantityzzz plugin_administration_archive_physdescstructured=Standardized extent and medium of the unit of description (quantity, bulk, or size) +plugin_administration_archive_physdescunittype=Type zzz plugin_administration_archive_physdescunittype=Unitzzz plugin_administration_archive_phystech=Physical characteristics and technical requirements plugin_administration_archive_please_select_node=Please select a node first. @@ -2440,6 +2457,7 @@ plugin_administration_archive_reviewRequired=Review requiredzzz plugin_administration_archive_role=Role plugin_administration_archive_saveAndExit=Save and exit record group plugin_administration_archive_scopecontent=Scope and content +plugin_administration_archive_selection=Selection zzz plugin_administration_archive_selection=Duplicatezzz plugin_administration_archive_selectionHeading=Archive records plugin_administration_archive_selectionText=Please first select the record group you would like to work with\: diff --git a/src/main/resources/messages_es.properties b/src/main/resources/messages_es.properties index bfe16c7cc..54c58db59 100644 --- a/src/main/resources/messages_es.properties +++ b/src/main/resources/messages_es.properties @@ -24,6 +24,7 @@ DocketNotFound=No puede encontrarse el archivo indicado. Eigenschaft=Propiedad Error\ running\ tool\ or\ reading\ report\ file=zzz Error\ while\ loading\ metadata=Error al cargar los metadatos +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=zzz ErrorDMSExport=No se ha podido exportar el proceso {0} debido a un error\: {1} ErrorLoadingValidationPlugin=No se ha podido cargar el plugin de validaci\u00F3n. ErrorMetadataNotUpdated=No se ha podido actualizar el archivo de metadatos {0}. @@ -1306,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=zzz intranda_metadata_changeType=zzz intranda_metadata_createStructureElements=zzz +intranda_quartz_backupEadFile=Copia de seguridad de los fondos de archivo como ficheros EAD zzz +intranda_quartz_exportEadFile=Publicar los fondos de archivo como ficheros EAD zzz intranda_quartz_herisJob=zzz intranda_statistics_allStepsPerProject=Pasos de trabajo por proyecto zzz intranda_statistics_file_count=Determinar el n\u00FAmero de archivos zzz @@ -2303,9 +2306,12 @@ plugin_administration_archive_DescriptionDates=zzz plugin_administration_archive_Number=N\u00FAmero de archivo zzz plugin_administration_archive_Shelfmark=Firma(s) zzz plugin_administration_archive_accessrestrict=Normas de acceso zzz +plugin_administration_archive_accessrestrict_date=fecha zzz plugin_administration_archive_accessrestrict_date=zzz +plugin_administration_archive_accessrestrict_value=Valor zzz plugin_administration_archive_accessrestrict_value=zzz plugin_administration_archive_accruals=Nuevos ingresos zzz +plugin_administration_archive_accruals_date=fecha zzz plugin_administration_archive_accruals_date=zzz plugin_administration_archive_accruals_head=zzz plugin_administration_archive_accruals_p=zzz @@ -2317,9 +2323,12 @@ plugin_administration_archive_agencycode=C\u00F3digo de la agencia zzz plugin_administration_archive_agent=zzz plugin_administration_archive_altformavail=Copias o reproducciones zzz plugin_administration_archive_altformavail_head=zzz +plugin_administration_archive_altformavail_link=Enlace zzz plugin_administration_archive_altformavail_link=zzz plugin_administration_archive_altformavail_p=zzz +plugin_administration_archive_altformavail_person=Persona zzz plugin_administration_archive_altformavail_person=zzz +plugin_administration_archive_altformavail_shelfmark=Firma zzz plugin_administration_archive_altformavail_shelfmark=zzz plugin_administration_archive_appraisal=Valoraci\u00F3n y casaci\u00F3n zzz plugin_administration_archive_area_access=Condiciones de acceso y uso zzz @@ -2404,15 +2413,21 @@ plugin_administration_archive_numberOfNodes=zzz plugin_administration_archive_oddnote=Otras observaciones zzz plugin_administration_archive_originalsloc=Lugar de almacenamiento de los originales zzz plugin_administration_archive_originalsloc_head=zzz +plugin_administration_archive_originalsloc_link=Enlace zzz plugin_administration_archive_originalsloc_link=zzz plugin_administration_archive_originalsloc_p=zzz +plugin_administration_archive_originalsloc_person=Persona zzz plugin_administration_archive_originalsloc_person=zzz +plugin_administration_archive_originalsloc_shelfmark=Firma zzz plugin_administration_archive_originalsloc_shelfmark=zzz plugin_administration_archive_origination=Nombre de la oficina de origen zzz plugin_administration_archive_originationcorpname=zzz plugin_administration_archive_otherfindaid=Ayudas para la b\u00FAsqueda zzz +plugin_administration_archive_otherfindaid_link=Enlace a la ayuda para la b\u00FAsqueda zzz plugin_administration_archive_otherfindaid_link=zzz +plugin_administration_archive_otherfindaid_node=Nodos de la ayuda para la b\u00FAsqueda zzz plugin_administration_archive_otherfindaid_node=zzz +plugin_administration_archive_otherfindaid_type=Tipo de ayuda zzz plugin_administration_archive_otherfindaid_type=zzz plugin_administration_archive_permission_management_new=zzz plugin_administration_archive_permission_management_upload=zzz @@ -2421,8 +2436,10 @@ plugin_administration_archive_person=Persona zzz plugin_administration_archive_physdesc=Alcance zzz plugin_administration_archive_physdescdimensions=zzz plugin_administration_archive_physdescextent=zzz +plugin_administration_archive_physdescquantity=Cantidad zzz plugin_administration_archive_physdescquantity=zzz plugin_administration_archive_physdescstructured=\u00C1mbito de aplicaci\u00F3n (normalizado) zzz +plugin_administration_archive_physdescunittype=Tipo zzz plugin_administration_archive_physdescunittype=zzz plugin_administration_archive_phystech=Condici\u00F3n f\u00EDsica y requisitos t\u00E9cnicos zzz plugin_administration_archive_please_select_node=Por favor, seleccione primero un nodo. zzz @@ -2440,6 +2457,7 @@ plugin_administration_archive_reviewRequired=zzz plugin_administration_archive_role=Rollo zzz plugin_administration_archive_saveAndExit=Guardar y salir de las existencias del archivo zzz plugin_administration_archive_scopecontent=Forma y contenido zzz +plugin_administration_archive_selection=Selecci\u00F3n zzz plugin_administration_archive_selection=zzz plugin_administration_archive_selectionHeading=Selecci\u00F3n de los fondos de los archivos zzz plugin_administration_archive_selectionText=Seleccione primero los fondos de archivo con los que desea trabajar\: zzz diff --git a/src/main/resources/messages_fr.properties b/src/main/resources/messages_fr.properties index 0deb394ca..1833f55a2 100644 --- a/src/main/resources/messages_fr.properties +++ b/src/main/resources/messages_fr.properties @@ -24,6 +24,7 @@ DocketNotFound=Le fichier sp\u00E9cifi\u00E9 n'a pas pu \u00EAtre trouv\u00E9. z Eigenschaft=Propri\u00E9t\u00E9 zzz Error\ running\ tool\ or\ reading\ report\ file=zzz Error\ while\ loading\ metadata=Erreur lors du chargement des m\u00E9tadonn\u00E9es zzz +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=zzz ErrorDMSExport=L'op\u00E9ration {0} n'a pas pu \u00EAtre export\u00E9e en raison d'une erreur \: {1} zzz ErrorLoadingValidationPlugin=Le plugin de validation n'a pas pu \u00EAtre charg\u00E9. zzz ErrorMetadataNotUpdated=Le fichier de m\u00E9tadonn\u00E9es {0} n'a pas pu \u00EAtre mis \u00E0 jour. zzz @@ -1306,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=zzz intranda_metadata_changeType=zzz intranda_metadata_createStructureElements=zzz +intranda_quartz_backupEadFile=Sauvegarde des fonds d'archives sous forme de fichiers EAD zzz +intranda_quartz_exportEadFile=Publication des fonds d'archives sous forme de fichiers EAD zzz intranda_quartz_herisJob=zzz intranda_statistics_allStepsPerProject=Workflow steps per project zzz intranda_statistics_file_count=D\u00E9terminer le nombre de fichiers zzz @@ -2303,9 +2306,12 @@ plugin_administration_archive_DescriptionDates=zzz plugin_administration_archive_Number=Num\u00E9ro d'archive zzz plugin_administration_archive_Shelfmark=R\u00E9f\u00E9rence plugin_administration_archive_accessrestrict=Conditions d'acc\u00E8s +plugin_administration_archive_accessrestrict_date=Date zzz plugin_administration_archive_accessrestrict_date=zzz +plugin_administration_archive_accessrestrict_value=Valeur zzz plugin_administration_archive_accessrestrict_value=zzz plugin_administration_archive_accruals=Accroissements +plugin_administration_archive_accruals_date=Date zzz plugin_administration_archive_accruals_date=zzz plugin_administration_archive_accruals_head=zzz plugin_administration_archive_accruals_p=zzz @@ -2317,9 +2323,12 @@ plugin_administration_archive_agencycode=Code de l'agence zzz plugin_administration_archive_agent=zzz plugin_administration_archive_altformavail=Existence et lieu de conservation de copies plugin_administration_archive_altformavail_head=zzz +plugin_administration_archive_altformavail_link=Lien zzz plugin_administration_archive_altformavail_link=zzz plugin_administration_archive_altformavail_p=zzz +plugin_administration_archive_altformavail_person=Personne zzz plugin_administration_archive_altformavail_person=zzz +plugin_administration_archive_altformavail_shelfmark=Signature zzz plugin_administration_archive_altformavail_shelfmark=zzz plugin_administration_archive_appraisal=\u00C9valuation, tris et \u00E9liminations, sort final plugin_administration_archive_area_access=Zone des conditions d'acc\u00E8s et d'utilisation @@ -2404,15 +2413,21 @@ plugin_administration_archive_numberOfNodes=zzz plugin_administration_archive_oddnote=Autres remarques zzz plugin_administration_archive_originalsloc=Existence et lieu de conservation des originaux plugin_administration_archive_originalsloc_head=zzz +plugin_administration_archive_originalsloc_link=Lien zzz plugin_administration_archive_originalsloc_link=zzz plugin_administration_archive_originalsloc_p=zzz plugin_administration_archive_originalsloc_person=zzz +plugin_administration_archive_originalsloc_person=zzz +plugin_administration_archive_originalsloc_shelfmark=Signature zzz plugin_administration_archive_originalsloc_shelfmark=zzz plugin_administration_archive_origination=Nom du producteur plugin_administration_archive_originationcorpname=zzz plugin_administration_archive_otherfindaid=Instruments de recherche +plugin_administration_archive_otherfindaid_link=Lien vers l'instrument de recherche zzz plugin_administration_archive_otherfindaid_link=zzz +plugin_administration_archive_otherfindaid_node=N\u0153ud de l'instrument de recherche zzz plugin_administration_archive_otherfindaid_node=zzz +plugin_administration_archive_otherfindaid_type=Type d'instrument de recherche zzz plugin_administration_archive_otherfindaid_type=zzz plugin_administration_archive_permission_management_new=zzz plugin_administration_archive_permission_management_upload=zzz @@ -2421,8 +2436,10 @@ plugin_administration_archive_person=Personne zzz plugin_administration_archive_physdesc=Importance mat\u00E9rielle et support de l'unit\u00E9 de description (quantit\u00E9, volume ou dimension) plugin_administration_archive_physdescdimensions=zzz plugin_administration_archive_physdescextent=zzz +plugin_administration_archive_physdescquantity=Nombre zzz plugin_administration_archive_physdescquantity=zzz plugin_administration_archive_physdescstructured=Importance mat\u00E9rielle et support de l'unit\u00E9 de description standardis\u00E9 (quantit\u00E9, volume ou dimension) +plugin_administration_archive_physdescunittype=Type zzz plugin_administration_archive_physdescunittype=zzz plugin_administration_archive_phystech=Caract\u00E9ristiques mat\u00E9rielles et contraintes techniques plugin_administration_archive_please_select_node=Veuillez d'abord s\u00E9lectionner un n\u0153ud. zzz @@ -2440,6 +2457,7 @@ plugin_administration_archive_reviewRequired=zzz plugin_administration_archive_role=Rouleau zzz plugin_administration_archive_saveAndExit=Sauvegarde et sortie des fonds d'archives zzz plugin_administration_archive_scopecontent=Pr\u00E9sentation du contenu +plugin_administration_archive_selection=S\u00E9lection zzz plugin_administration_archive_selection=zzz plugin_administration_archive_selectionHeading=S\u00E9lection des fonds d'archives zzz plugin_administration_archive_selectionText=Veuillez d'abord s\u00E9lectionner les fonds d'archives avec lesquels vous souhaitez travailler \: zzz diff --git a/src/main/resources/messages_it.properties b/src/main/resources/messages_it.properties index b98ebe216..813e4adf9 100644 --- a/src/main/resources/messages_it.properties +++ b/src/main/resources/messages_it.properties @@ -24,6 +24,7 @@ DocketNotFound=Il file specificato non \u00E8 stato trovato. zzz Eigenschaft=Propriet\u00E0 zzz Error\ running\ tool\ or\ reading\ report\ file=zzz Error\ while\ loading\ metadata=Errore durante il caricamento dei metadati zzz +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=zzz ErrorDMSExport=L'operazione {0} non ha potuto essere esportata a causa di un errore\: {1} zzz ErrorLoadingValidationPlugin=Il plugin di validazione non poteva essere caricato. zzz ErrorMetadataNotUpdated=Il file di metadati {0} non ha potuto essere aggiornato. zzz @@ -1306,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=zzz intranda_metadata_changeType=zzz intranda_metadata_createStructureElements=zzz +intranda_quartz_backupEadFile=Backup dei fondi d'archivio come file EAD zzz +intranda_quartz_exportEadFile=Pubblicare il patrimonio archivistico come file EAD zzz intranda_quartz_herisJob=zzz intranda_statistics_allStepsPerProject=Fasi di lavoro per progetto zzz intranda_statistics_file_count=Determinare il numero di file zzz @@ -2303,9 +2306,12 @@ plugin_administration_archive_DescriptionDates=zzz plugin_administration_archive_Number=Numero d'archivio zzz plugin_administration_archive_Shelfmark=Firma(e) zzz plugin_administration_archive_accessrestrict=Regolamenti di accesso zzz +plugin_administration_archive_accessrestrict_date=data zzz plugin_administration_archive_accessrestrict_date=zzz +plugin_administration_archive_accessrestrict_value=Valore zzz plugin_administration_archive_accessrestrict_value=zzz plugin_administration_archive_accruals=Nuovi arrivi zzz +plugin_administration_archive_accruals_date=data zzz plugin_administration_archive_accruals_date=zzz plugin_administration_archive_accruals_head=zzz plugin_administration_archive_accruals_p=zzz @@ -2317,9 +2323,12 @@ plugin_administration_archive_agencycode=Codice dell'agenzia zzz plugin_administration_archive_agent=zzz plugin_administration_archive_altformavail=Copie o riproduzioni zzz plugin_administration_archive_altformavail_head=zzz +plugin_administration_archive_altformavail_link=Collegamento zzz plugin_administration_archive_altformavail_link=zzz plugin_administration_archive_altformavail_p=zzz +plugin_administration_archive_altformavail_person=Persona zzz plugin_administration_archive_altformavail_person=zzz +plugin_administration_archive_altformavail_shelfmark=Firma zzz plugin_administration_archive_altformavail_shelfmark=zzz plugin_administration_archive_appraisal=Valutazione e cassazione zzz plugin_administration_archive_area_access=Condizioni di accesso e uso zzz @@ -2404,15 +2413,21 @@ plugin_administration_archive_numberOfNodes=zzz plugin_administration_archive_oddnote=Ulteriori osservazioni zzz plugin_administration_archive_originalsloc=Luogo di conservazione degli originali zzz plugin_administration_archive_originalsloc_head=zzz +plugin_administration_archive_originalsloc_link=Collegamento zzz plugin_administration_archive_originalsloc_link=zzz plugin_administration_archive_originalsloc_p=zzz +plugin_administration_archive_originalsloc_person=Persona zzz plugin_administration_archive_originalsloc_person=zzz +plugin_administration_archive_originalsloc_shelfmark=Firma zzz plugin_administration_archive_originalsloc_shelfmark=zzz plugin_administration_archive_origination=Nome dell'ufficio di provenienza zzz plugin_administration_archive_originationcorpname=zzz plugin_administration_archive_otherfindaid=Aiuti alla ricerca zzz +plugin_administration_archive_otherfindaid_link=Link al reperto zzz plugin_administration_archive_otherfindaid_link=zzz +plugin_administration_archive_otherfindaid_node=I nodi del reperto zzz plugin_administration_archive_otherfindaid_node=zzz +plugin_administration_archive_otherfindaid_type=Tipo di aiuto alla ricerca zzz plugin_administration_archive_otherfindaid_type=zzz plugin_administration_archive_permission_management_new=zzz plugin_administration_archive_permission_management_upload=zzz @@ -2421,8 +2436,10 @@ plugin_administration_archive_person=Persona zzz plugin_administration_archive_physdesc=Portata zzz plugin_administration_archive_physdescdimensions=zzz plugin_administration_archive_physdescextent=zzz +plugin_administration_archive_physdescquantity=Quantit\u00E0 zzz plugin_administration_archive_physdescquantity=zzz plugin_administration_archive_physdescstructured=Portata (standardizzata) zzz +plugin_administration_archive_physdescunittype=Tipo zzz plugin_administration_archive_physdescunittype=zzz plugin_administration_archive_phystech=Condizione fisica e requisiti tecnici zzz plugin_administration_archive_please_select_node=Seleziona prima un nodo. zzz @@ -2440,6 +2457,7 @@ plugin_administration_archive_reviewRequired=zzz plugin_administration_archive_role=Rotolo zzz plugin_administration_archive_saveAndExit=Salvare e uscire dall'archivio zzz plugin_administration_archive_scopecontent=Forma e contenuto zzz +plugin_administration_archive_selection=Selezione zzz plugin_administration_archive_selection=zzz plugin_administration_archive_selectionHeading=Selezione dei fondi dell'archivio zzz plugin_administration_archive_selectionText=Per prima cosa seleziona i fondi dell'archivio con cui vorresti lavorare\: zzz diff --git a/src/main/resources/messages_iw.properties b/src/main/resources/messages_iw.properties index 46936beac..1a2b674ca 100644 --- a/src/main/resources/messages_iw.properties +++ b/src/main/resources/messages_iw.properties @@ -22,7 +22,9 @@ DELETE_CURRENT_STEP=Delete step zzz DocketInUse=\u05D4\u05DE\u05E2\u05D2\u05DF \u05E2\u05D3\u05D9\u05D9\u05DF \u05DE\u05EA\u05D5\u05D6\u05DB\u05E8 \u05D1\u05EA\u05D4\u05DC\u05D9\u05DB\u05D9\u05DD \u05D5\u05E2\u05DC \u05DB\u05DF \u05D0\u05D9\u05E0\u05D5 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05D9\u05DE\u05D7\u05E7. DocketNotFound=\u05D4\u05E7\u05D5\u05D1\u05E5 \u05D4\u05DE\u05D1\u05D5\u05E7\u05E9 \u05D0\u05D9\u05E0\u05D5 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05D9\u05DE\u05E6\u05D0. Eigenschaft=\u05DE\u05D0\u05E4\u05D9\u05D9\u05DF +Error\ running\ tool\ or\ reading\ report\ file=zzz Error\ while\ loading\ metadata=\u05E9\u05D2\u05D9\u05D0\u05D4 \u05D1\u05EA\u05D4\u05DC\u05D9\u05DA \u05D4\u05E2\u05DC\u05D0\u05EA \u05DE\u05D8\u05D0-\u05D3\u05D0\u05D8\u05D0 +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=zzz ErrorDMSExport=\u05D4\u05EA\u05D4\u05DC\u05D9\u05DA {0} \u05D0\u05D9\u05E0\u05D5 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05D9\u05D9\u05D5\u05E6\u05D0 \u05D1\u05E9\u05DC \u05EA\u05E7\u05DC\u05D4\: {1} ErrorLoadingValidationPlugin=\u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05DC\u05D8\u05E2\u05D5\u05DF \u05D0\u05EA \u05D4PLUGIN \u05D4\u05DE\u05D0\u05E9\u05E8. ErrorMetadataNotUpdated=\u05E7\u05D5\u05D1\u05E5 \u05D4\u05DE\u05D8\u05D0-\u05D3\u05D0\u05D8\u05D0 {0} \u05DC\u05D0 \u05D9\u05DB\u05D5\u05DC \u05D4\u05D9\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05E2\u05D5\u05D3\u05DB\u05DF. @@ -227,6 +229,7 @@ ScriptSchritt=\u05E6\u05E2\u05D3 \u05EA\u05E1\u05E8\u05D9\u05D8 SearchResultField_lastError=Last error message zzz Sicherheitskopie\ neu=\u05E9\u05D7\u05D6\u05E8 \u05D7\u05D6\u05E8 TIFF-Header\ erstellen=\u05E6\u05D5\u05E8 TIFF \u05DE\u05D5\u05D1\u05D9\u05DC (\u05E9\u05E0\u05DE\u05E6\u05D0 \u05D1\u05E8\u05D0\u05E9 \u05D4\u05E8\u05E9\u05D9\u05DE\u05D4) +The\ file\ is\ encrypted\ or\ has\ acccess\ restrictions=zzz Tiff-Header\ erstellen=\u05E6\u05D5\u05E8 Tiff \u05DE\u05D5\u05D1\u05D9\u05DC (\u05E9\u05E0\u05DE\u05E6\u05D0 \u05D1\u05E8\u05D0\u05E9 \u05D4\u05E8\u05E9\u05D9\u05DE\u05D4) Tomcat\ v9.0\ Server\ at\ localhost=zzz URI=\u05DB\u05EA\u05D5\u05D1\u05EA @@ -1264,6 +1267,7 @@ intranda_administration_config_file_editor=Editor for configuration files zzz intranda_administration_copymasteranchor=\u05D4\u05E2\u05EA\u05E7 \u05DE\u05E7\u05D5\u05E8- \u05DE\u05D9\u05D3\u05E2 \u05D4\u05DB\u05E8\u05D7\u05D9 intranda_administration_create_repository=zzz intranda_administration_data_poller=Data Poller +intranda_administration_deliveryManagement=zzz intranda_administration_duplicates_fixer=Duplicates Fixer intranda_administration_edit_repository=zzz intranda_administration_exchange=\u05D4\u05D7\u05DC\u05E4\u05EA \u05E4\u05DC\u05D0\u05D2-\u05D0\u05D9\u05DF \u05E9\u05DC Goobi @@ -1303,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=zzz intranda_metadata_changeType=zzz intranda_metadata_createStructureElements=zzz +intranda_quartz_backupEadFile=Backup of archive holdings as EAD files zzz +intranda_quartz_exportEadFile=Publish the archive holdings as EAD files zzz intranda_quartz_herisJob=zzz intranda_statistics_allStepsPerProject=\u05E9\u05DC\u05D1\u05D9 \u05DE\u05D4\u05DC\u05DA-\u05E2\u05D1\u05D5\u05D3\u05D4 \u05E4\u05E8 \u05E4\u05E8\u05D5\u05D9\u05D9\u05E7\u05D8 intranda_statistics_file_count=Determine number of files zzz @@ -1339,6 +1345,7 @@ intranda_workflow_massupload=\u05D4\u05E6\u05D8\u05D1\u05E8\u05D5\u05EA \u05D4\u intranda_workflow_metadata-enrichment=Updating vocabulary links zzz intranda_workflow_newspaper_pages_importer=Newspaper import for single pages zzz intranda_workflow_oepma_importer=\u00D6PMA Importer +intranda_workflow_processinspection=zzz intranda_workflow_projectexport=Project export zzz invalidCharacter=\u05EA\u05D5 \u05DC\u05D0 \u05D7\u05D5\u05E7\u05D9 ip=IP @@ -2299,7 +2306,13 @@ plugin_administration_archive_DescriptionDates=zzz plugin_administration_archive_Number=Archive Number zzz plugin_administration_archive_Shelfmark=Reference code(s) zzz plugin_administration_archive_accessrestrict=Conditions governing access zzz +plugin_administration_archive_accessrestrict_date=date zzz +plugin_administration_archive_accessrestrict_date=zzz +plugin_administration_archive_accessrestrict_value=Value zzz +plugin_administration_archive_accessrestrict_value=zzz plugin_administration_archive_accruals=Accruals zzz +plugin_administration_archive_accruals_date=date zzz +plugin_administration_archive_accruals_date=zzz plugin_administration_archive_accruals_head=zzz plugin_administration_archive_accruals_p=zzz plugin_administration_archive_acqinfo=Immediate source of acquisition or transfer zzz @@ -2307,9 +2320,16 @@ plugin_administration_archive_addMultipleNodes=zzz plugin_administration_archive_addNodes=zzz plugin_administration_archive_advancedSearch=zzz plugin_administration_archive_agencycode=Agency code zzz +plugin_administration_archive_agent=zzz plugin_administration_archive_altformavail=Existence and location of copies zzz plugin_administration_archive_altformavail_head=zzz +plugin_administration_archive_altformavail_link=Link zzz +plugin_administration_archive_altformavail_link=zzz plugin_administration_archive_altformavail_p=zzz +plugin_administration_archive_altformavail_person=Person zzz +plugin_administration_archive_altformavail_person=zzz +plugin_administration_archive_altformavail_shelfmark=Signature zzz +plugin_administration_archive_altformavail_shelfmark=zzz plugin_administration_archive_appraisal=Appraisal, destruction and scheduling information zzz plugin_administration_archive_area_access=Condition of Access and Use Area zzz plugin_administration_archive_area_content=Content and Structure Area zzz @@ -2353,6 +2373,9 @@ plugin_administration_archive_eadExport=zzz plugin_administration_archive_eadExportNotConfigured=zzz plugin_administration_archive_eadid=EAD ID zzz plugin_administration_archive_editorName=Editor zzz +plugin_administration_archive_eventdatetime=zzz +plugin_administration_archive_eventdescription=zzz +plugin_administration_archive_eventtype=zzz plugin_administration_archive_exit=zzz plugin_administration_archive_extref=zzz plugin_administration_archive_extrefhref=zzz @@ -2361,6 +2384,7 @@ plugin_administration_archive_generated=zzz plugin_administration_archive_langmaterial=Language | Scripts of material zzz plugin_administration_archive_linkNodeModal=zzz plugin_administration_archive_loadDatabase=Start editing zzz +plugin_administration_archive_maintenancehistory=zzz plugin_administration_archive_materialspec=Material specific data zzz plugin_administration_archive_missing_Data=Incomplete data, please select database and upload EAD file zzz plugin_administration_archive_moveHierarchyDown=Move down the hierarchy zzz @@ -2389,13 +2413,34 @@ plugin_administration_archive_numberOfNodes=zzz plugin_administration_archive_oddnote=Odd notes zzz plugin_administration_archive_originalsloc=Existence and location of originals zzz plugin_administration_archive_originalsloc_head=zzz +plugin_administration_archive_originalsloc_link=Link zzz +plugin_administration_archive_originalsloc_link=zzz plugin_administration_archive_originalsloc_p=zzz +plugin_administration_archive_originalsloc_person=Person zzz +plugin_administration_archive_originalsloc_person=zzz +plugin_administration_archive_originalsloc_shelfmark=Signature zzz +plugin_administration_archive_originalsloc_shelfmark=zzz plugin_administration_archive_origination=Name of creator(s) zzz plugin_administration_archive_originationcorpname=zzz plugin_administration_archive_otherfindaid=Finding aids zzz +plugin_administration_archive_otherfindaid_link=Link to finding aid zzz +plugin_administration_archive_otherfindaid_link=zzz +plugin_administration_archive_otherfindaid_node=Nodes of the finding aid zzz +plugin_administration_archive_otherfindaid_node=zzz +plugin_administration_archive_otherfindaid_type=Type of finding aid zzz +plugin_administration_archive_otherfindaid_type=zzz +plugin_administration_archive_permission_management_new=zzz +plugin_administration_archive_permission_management_upload=zzz +plugin_administration_archive_permission_management_write=zzz plugin_administration_archive_person=Person zzz plugin_administration_archive_physdesc=Extent and medium of the unit of description (quantity, bulk, or size) zzz +plugin_administration_archive_physdescdimensions=zzz +plugin_administration_archive_physdescextent=zzz +plugin_administration_archive_physdescquantity=Quantity zzz +plugin_administration_archive_physdescquantity=zzz plugin_administration_archive_physdescstructured=Standardized extent and medium of the unit of description (quantity, bulk, or size) zzz +plugin_administration_archive_physdescunittype=Type zzz +plugin_administration_archive_physdescunittype=zzz plugin_administration_archive_phystech=Physical characteristics and technical requirements zzz plugin_administration_archive_please_select_node=Please select a node first. zzz plugin_administration_archive_prefix=zzz @@ -2408,9 +2453,12 @@ plugin_administration_archive_removeInvalidProcessIds=zzz plugin_administration_archive_repository=zzz plugin_administration_archive_repositoryLabel=zzz plugin_administration_archive_repositoryaddressline=zzz +plugin_administration_archive_reviewRequired=zzz plugin_administration_archive_role=Role zzz plugin_administration_archive_saveAndExit=Save and exit record group zzz plugin_administration_archive_scopecontent=Scope and content zzz +plugin_administration_archive_selection=Selection zzz +plugin_administration_archive_selection=zzz plugin_administration_archive_selectionHeading=Selection of the record group zzz plugin_administration_archive_selectionText=Please first select the record group you would like to work with\: zzz plugin_administration_archive_separatedmaterial=Related units of description zzz @@ -2478,6 +2526,40 @@ plugin_administration_dataimport_selection_error=You must select at least one pr plugin_administration_dataimport_stepName=Step zzz plugin_administration_dataimport_stepRules=Step rules zzz plugin_administration_dataimport_success=Tickets created for {0} import(s). zzz +plugin_administration_deliveryManagement_accountStatus=zzz +plugin_administration_deliveryManagement_backToList=zzz +plugin_administration_deliveryManagement_details=zzz +plugin_administration_deliveryManagement_displayImports=zzz +plugin_administration_deliveryManagement_displayMode_institution=zzz +plugin_administration_deliveryManagement_displayMode_privacyPolicy=zzz +plugin_administration_deliveryManagement_displayMode_user=zzz +plugin_administration_deliveryManagement_displayMode_user_status_active=zzz +plugin_administration_deliveryManagement_displayMode_user_status_deleted=zzz +plugin_administration_deliveryManagement_displayMode_user_status_inactive=zzz +plugin_administration_deliveryManagement_displayMode_user_status_registered=zzz +plugin_administration_deliveryManagement_displayMode_user_status_rejected=zzz +plugin_administration_deliveryManagement_displayMode_zdbTitleData=zzz +plugin_administration_deliveryManagement_displayMode_zdb_status_available=zzz +plugin_administration_deliveryManagement_displayMode_zdb_status_missing=zzz +plugin_administration_deliveryManagement_downloadInstitutionData=zzz +plugin_administration_deliveryManagement_includeActiveUser=zzz +plugin_administration_deliveryManagement_includeFinishedZdbData=zzz +plugin_administration_deliveryManagement_intitution=zzz +plugin_administration_deliveryManagement_lastChangeDate=zzz +plugin_administration_deliveryManagement_name=zzz +plugin_administration_deliveryManagement_numberOfUploads=zzz +plugin_administration_deliveryManagement_openInsititution=zzz +plugin_administration_deliveryManagement_overview_emptyVal=zzz +plugin_administration_deliveryManagement_showAllUsers=zzz +plugin_administration_deliveryManagement_showNonDnbUser=zzz +plugin_administration_deliveryManagement_showOnlyDnbUser=zzz +plugin_administration_deliveryManagement_status=zzz +plugin_administration_deliveryManagement_uploadFile=zzz +plugin_administration_deliveryManagement_uploadInstitutionData=zzz +plugin_administration_delivery_additionalData=zzz +plugin_administration_delivery_configurationFileNotWritable=zzz +plugin_administration_delivery_contact=zzz +plugin_administration_delivery_institution=zzz plugin_administration_exort_selectData=Select data to export zzz plugin_administration_export_dockets=Dockets zzz plugin_administration_export_exportSelectedData=Export selected data zzz @@ -2734,6 +2816,299 @@ plugin_dashboard_batches_processesWithoutBatch=\u05EA\u05D4\u05DC\u05D9\u05DB\u0 plugin_dashboard_batches_progress=\u05E1\u05DA-\u05DB\u05D5\u05DC\u05DC \u05DE\u05E2\u05D5\u05D1\u05D3 \u05E9\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD plugin_dashboard_batches_timerange_end=\u05E1\u05D5\u05E3 plugin_dashboard_batches_timerange_start=\u05D4\u05EA\u05D7\u05DC\u05D4 +plugin_dashboard_delivery_Anmerkung_Grouplabel=zzz +plugin_dashboard_delivery_Anmerkung_helpMessage=zzz +plugin_dashboard_delivery_Anmerkung_helpMessageTitle=zzz +plugin_dashboard_delivery_Anmerkung_label=zzz +plugin_dashboard_delivery_Anmerkung_placeholderText=zzz +plugin_dashboard_delivery_Anmerkung_validationErrorText=zzz +plugin_dashboard_delivery_Anmerkung_validationExpression=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Abstract_helpMessage=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Abstract_helpMessageTitle=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Abstract_label=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Abstract_placeholderText=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Abstract_validationErrorText=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Berlin-Bezug_helpMessage=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Berlin-Bezug_helpMessageTitle=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Berlin-Bezug_label=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_GroupLabel=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Sachgruppe_helpMessage=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Sachgruppe_helpMessageTitle=zzz +plugin_dashboard_delivery_Beschreibung-Inhalt_Sachgruppe_label=zzz +plugin_dashboard_delivery_Beziehung-andere-Ressourcen_GroupLabel=zzz +plugin_dashboard_delivery_Entstehung_Edition_helpMessage=zzz +plugin_dashboard_delivery_Entstehung_Edition_helpMessageTitle=zzz +plugin_dashboard_delivery_Entstehung_Edition_label=zzz +plugin_dashboard_delivery_Entstehung_Edition_placeholderText=zzz +plugin_dashboard_delivery_Entstehung_ErschDatum_helpMessage=zzz +plugin_dashboard_delivery_Entstehung_ErschDatum_helpMessageTitle=zzz +plugin_dashboard_delivery_Entstehung_ErschDatum_label=zzz +plugin_dashboard_delivery_Entstehung_ErschDatum_placeholderText=zzz +plugin_dashboard_delivery_Entstehung_ErschDatum_validationErrorText=zzz +plugin_dashboard_delivery_Entstehung_ErschJahr_PH=zzz +plugin_dashboard_delivery_Entstehung_ErschJahr_helpMessage=zzz +plugin_dashboard_delivery_Entstehung_ErschJahr_helpMessageTitle=zzz +plugin_dashboard_delivery_Entstehung_ErschJahr_label=zzz +plugin_dashboard_delivery_Entstehung_ErschJahr_validationErrorText=zzz +plugin_dashboard_delivery_Entstehung_GroupLabel=zzz +plugin_dashboard_delivery_Entstehung_NumErstausg_helpMessage=zzz +plugin_dashboard_delivery_Entstehung_NumErstausg_helpMessageTitle=zzz +plugin_dashboard_delivery_Entstehung_NumErstausg_label=zzz +plugin_dashboard_delivery_Entstehung_NumErstausg_placeholderText=zzz +plugin_dashboard_delivery_Entstehung_NumErstausg_validationErrorText=zzz +plugin_dashboard_delivery_Ident-Nummer_GroupLabel=zzz +plugin_dashboard_delivery_Ident-Nummer_helpMessage=zzz +plugin_dashboard_delivery_Ident-Nummer_helpMessageTitle=zzz +plugin_dashboard_delivery_Ident-Nummer_label=zzz +plugin_dashboard_delivery_Ident-Nummer_placeholderText=zzz +plugin_dashboard_delivery_Journal_Sachgruppe_helpMessage=zzz +plugin_dashboard_delivery_Journal_Sachgruppe_helpMessageTitle=zzz +plugin_dashboard_delivery_Journal_Sachgruppe_label=zzz +plugin_dashboard_delivery_Journal_Verantwortliche_K\u00F6rperschaft_helpMessage=zzz +plugin_dashboard_delivery_Journal_Verantwortliche_K\u00F6rperschaft_helpMessageTitle=zzz +plugin_dashboard_delivery_Journal_Verantwortliche_K\u00F6rperschaft_label=zzz +plugin_dashboard_delivery_Journal_Verantwortliche_K\u00F6rperschaft_placeholderText=zzz +plugin_dashboard_delivery_Journal_Verantwortliche_K\u00F6rperschaft_validationErrorText=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Titel_helpMessage=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Titel_helpMessageTitle=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Titel_label=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Titel_validationErrorText=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Untertitel_helpMessage=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Untertitel_helpMessageTitle=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Untertitel_label=zzz +plugin_dashboard_delivery_Mono_Titelinfo_Untertitel_validationErrorText=zzz +plugin_dashboard_delivery_Mono_Titelinformationen_GroupLabel=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_GroupLabel=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_K\u00F6rperschaft_helpMessage=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_K\u00F6rperschaft_helpMessageTitle=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_K\u00F6rperschaft_label=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_K\u00F6rperschaft_validationErrorText=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_Organisation_helpMessage=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_Organisation_helpMessageTitle=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_Organisation_label=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-K\u00F6rperschaften_Organisation_validationErrorText=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-Personen_GroupLabel=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-Personen_Person_helpMessage=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-Personen_Person_helpMessageTitle=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-Personen_Person_label=zzz +plugin_dashboard_delivery_Mono_Verantwortliche-Personen_Person_validationErrorText=zzz +plugin_dashboard_delivery_Ort_GroupLabel=zzz +plugin_dashboard_delivery_Ort_helpMessage=zzz +plugin_dashboard_delivery_Ort_helpMessageTitle=zzz +plugin_dashboard_delivery_Ort_label=zzz +plugin_dashboard_delivery_Schlagwort_helpMessage=zzz +plugin_dashboard_delivery_Schlagwort_helpMessageTitle=zzz +plugin_dashboard_delivery_Schlagwort_label=zzz +plugin_dashboard_delivery_Schlagwort_placeholderText=zzz +plugin_dashboard_delivery_Schlagwort_validationErrorText=zzz +plugin_dashboard_delivery_Sprache_GroupLabel=zzz +plugin_dashboard_delivery_Sprache_helpMessage=zzz +plugin_dashboard_delivery_Sprache_helpMessageTitle=zzz +plugin_dashboard_delivery_Sprache_label=zzz +plugin_dashboard_delivery_TitelUnterreihe_helpMessage=zzz +plugin_dashboard_delivery_TitelUnterreihe_helpMessageTitle=zzz +plugin_dashboard_delivery_TitelUnterreihe_label=zzz +plugin_dashboard_delivery_TitelUnterreihe_placeholderText=zzz +plugin_dashboard_delivery_Zugriffs-Rechteinformation_Grouplabel=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_AccessLicense_helpMessage=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_AccessLicense_helpMessageTitle=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_AccessLicense_label=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_AccessLicense_placeholderText=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_Copyright_helpMessage=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_Copyright_helpMessageTitle=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_Copyright_label=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_Copyright_placeholderText=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_GroupLabel=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_Grouplabel=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_URL_helpMessage=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_URL_helpMessageTitle=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_URL_label=zzz +plugin_dashboard_delivery_Zugriffs_Rechteinformation_URL_placeholderText=zzz +plugin_dashboard_delivery_Z\u00E4hlung-Band_helpMessage=zzz +plugin_dashboard_delivery_Z\u00E4hlung-Band_helpMessageTitle=zzz +plugin_dashboard_delivery_Z\u00E4hlung-Band_label=zzz +plugin_dashboard_delivery_anyField=zzz +plugin_dashboard_delivery_ariaLabel_uploadForm=zzz +plugin_dashboard_delivery_backToDashboard=zzz +plugin_dashboard_delivery_buttonCopy_send=zzz +plugin_dashboard_delivery_contactPerson=zzz +plugin_dashboard_delivery_creationSuccessful=zzz +plugin_dashboard_delivery_creationSuccessful_issue=zzz +plugin_dashboard_delivery_creationSuccessful_journal=zzz +plugin_dashboard_delivery_creationSuccessful_monograph=zzz +plugin_dashboard_delivery_data1=zzz +plugin_dashboard_delivery_data2=zzz +plugin_dashboard_delivery_data3=zzz +plugin_dashboard_delivery_deliverContactPersonData=zzz +plugin_dashboard_delivery_deliverContactPersonDataButton=zzz +plugin_dashboard_delivery_deliverContactPersonDataTitle=zzz +plugin_dashboard_delivery_deliverHelp=zzz +plugin_dashboard_delivery_deliverHelpButton=zzz +plugin_dashboard_delivery_deliverHelpHeader=zzz +plugin_dashboard_delivery_deliverInstitutionData=zzz +plugin_dashboard_delivery_deliverInstitutionDataButton=zzz +plugin_dashboard_delivery_deliverInstitutionDataTitle=zzz +plugin_dashboard_delivery_deliverJournals=zzz +plugin_dashboard_delivery_deliverJournalsButton=zzz +plugin_dashboard_delivery_deliverJournalsHeader=zzz +plugin_dashboard_delivery_deliverLogout=zzz +plugin_dashboard_delivery_deliverLogoutButton=zzz +plugin_dashboard_delivery_deliverLogoutHeader=zzz +plugin_dashboard_delivery_deliverMonograph=zzz +plugin_dashboard_delivery_deliverMonographButton=zzz +plugin_dashboard_delivery_deliverMonographHeader=zzz +plugin_dashboard_delivery_deliverMonographHeader_data1=zzz +plugin_dashboard_delivery_deliverMonographHeader_data2=zzz +plugin_dashboard_delivery_deliverMonographHeader_data3=zzz +plugin_dashboard_delivery_deliverMonographHeader_overview=zzz +plugin_dashboard_delivery_deliverNewIssueTitle=zzz +plugin_dashboard_delivery_deliverNewIssueTitleButton=zzz +plugin_dashboard_delivery_deliverNewJournalIssueHeader=zzz +plugin_dashboard_delivery_deliverNewJournalTitle=zzz +plugin_dashboard_delivery_deliverNewJournalTitleButton=zzz +plugin_dashboard_delivery_deliverNewJournalTitleHeader=zzz +plugin_dashboard_delivery_deliverNoJournalTitles=zzz +plugin_dashboard_delivery_deliverShowData=zzz +plugin_dashboard_delivery_deliverShowDataButton=zzz +plugin_dashboard_delivery_deliverShowDataHeader=zzz +plugin_dashboard_delivery_deliverShowExistingData=zzz +plugin_dashboard_delivery_deliverShowExistingDataButton=zzz +plugin_dashboard_delivery_deliverShowExistingDataHeader=zzz +plugin_dashboard_delivery_deliverUserData=zzz +plugin_dashboard_delivery_deliverUserDataButton=zzz +plugin_dashboard_delivery_deliverUserDataTitle=zzz +plugin_dashboard_delivery_error_urlDownloadNotPossible=zzz +plugin_dashboard_delivery_existingData_helpBody1=zzz +plugin_dashboard_delivery_existingData_helpBody2=zzz +plugin_dashboard_delivery_existingData_helpHeader=zzz +plugin_dashboard_delivery_existingData_helpImg=zzz +plugin_dashboard_delivery_finish=zzz +plugin_dashboard_delivery_info_incompleteUserData=zzz +plugin_dashboard_delivery_info_noData=zzz +plugin_dashboard_delivery_info_uploadSuccessful=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Bandnummer/Jahrgang_helpMessage=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Bandnummer/Jahrgang_helpMessageTitle=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Bandnummer/Jahrgang_label=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Bandnummer/Jahrgang_validationErrorText=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Grouplabel=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Heftnummer_helpMessage=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Heftnummer_helpMessageTitle=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Heftnummer_label=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Jahresangabe_helpMessage=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Jahresangabe_helpMessageTitle=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Jahresangabe_label=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Jahresangabe_placeholderText=zzz +plugin_dashboard_delivery_issue_Angaben-Entstehung_Jahresangabe_validationErrorText=zzz +plugin_dashboard_delivery_issue_Erscheinungsjahr_Grouplabel=zzz +plugin_dashboard_delivery_issue_Erscheinungsjahr_helpMessage=zzz +plugin_dashboard_delivery_issue_Erscheinungsjahr_helpMessageTitle=zzz +plugin_dashboard_delivery_issue_Erscheinungsjahr_label=zzz +plugin_dashboard_delivery_issue_Erscheinungsjahr_placeholderText=zzz +plugin_dashboard_delivery_issue_Erscheinungsjahr_validationErrorText=zzz +plugin_dashboard_delivery_issue_TitelZeitschrift_Grouplabel=zzz +plugin_dashboard_delivery_issue_TitelZeitschrift_helpMessage=zzz +plugin_dashboard_delivery_issue_TitelZeitschrift_helpMessageTitle=zzz +plugin_dashboard_delivery_issue_TitelZeitschrift_label=zzz +plugin_dashboard_delivery_issue_Titelinfo_Titel_helpMessage=zzz +plugin_dashboard_delivery_issue_Titelinfo_Titel_helpMessageTitle=zzz +plugin_dashboard_delivery_issue_Titelinfo_Titel_label=zzz +plugin_dashboard_delivery_issue_Titelinformationen_Grouplabel=zzz +plugin_dashboard_delivery_issue_Zugriffs_Rechteinformation_URL_helpMessage=zzz +plugin_dashboard_delivery_issue_Zugriffs_Rechteinformation_URL_placeholderText=zzz +plugin_dashboard_delivery_journal=zzz +plugin_dashboard_delivery_journal_Berlin-Bezug_helpMessage=zzz +plugin_dashboard_delivery_journal_Berlin-Bezug_helpMessageTitle=zzz +plugin_dashboard_delivery_journal_Berlin-Bezug_label=zzz +plugin_dashboard_delivery_journal_Beschreibung-Inhalt_GroupLabel=zzz +plugin_dashboard_delivery_journal_Ident-Nummer_GroupLabel=zzz +plugin_dashboard_delivery_journal_Ident-Nummer_helpMessage=zzz +plugin_dashboard_delivery_journal_Ident-Nummer_helpMessageTitle=zzz +plugin_dashboard_delivery_journal_Ident-Nummer_label=zzz +plugin_dashboard_delivery_journal_Ident-Nummer_placeholderText=zzz +plugin_dashboard_delivery_journal_Titelinformationen_Grouplabel=zzz +plugin_dashboard_delivery_journal_TitleDocMain_helpMessage=zzz +plugin_dashboard_delivery_journal_TitleDocMain_helpMessageTitle=zzz +plugin_dashboard_delivery_journal_TitleDocMain_label=zzz +plugin_dashboard_delivery_journal_URL_helpMessage=zzz +plugin_dashboard_delivery_journal_URL_helpMessageTitle=zzz +plugin_dashboard_delivery_journal_URL_label=zzz +plugin_dashboard_delivery_journal_URL_placeholderText=zzz +plugin_dashboard_delivery_journal_Untertitel_helpMessage=zzz +plugin_dashboard_delivery_journal_Untertitel_helpMessageTitle=zzz +plugin_dashboard_delivery_journal_Untertitel_label=zzz +plugin_dashboard_delivery_journal_Verantwortliche-K\u00F6rperschaften_Grouplabel=zzz +plugin_dashboard_delivery_journals_issueupload_helpBody1=zzz +plugin_dashboard_delivery_journals_issueupload_helpBody2=zzz +plugin_dashboard_delivery_journals_issueupload_helpHeader=zzz +plugin_dashboard_delivery_journals_issueupload_helpImg=zzz +plugin_dashboard_delivery_journals_newIssue_helpBody1=zzz +plugin_dashboard_delivery_journals_newIssue_helpBody2=zzz +plugin_dashboard_delivery_journals_newIssue_helpHeader=zzz +plugin_dashboard_delivery_journals_newIssue_helpImg=zzz +plugin_dashboard_delivery_journals_newTitle_helpBody1=zzz +plugin_dashboard_delivery_journals_newTitle_helpBody2=zzz +plugin_dashboard_delivery_journals_newTitle_helpHeader=zzz +plugin_dashboard_delivery_journals_newTitle_helpImg=zzz +plugin_dashboard_delivery_journals_new_helpBody1=zzz +plugin_dashboard_delivery_journals_new_helpBody2=zzz +plugin_dashboard_delivery_journals_new_helpHeader=zzz +plugin_dashboard_delivery_journals_new_helpImg=zzz +plugin_dashboard_delivery_main_helpBody1=zzz +plugin_dashboard_delivery_main_helpBody2=zzz +plugin_dashboard_delivery_main_helpHeader=zzz +plugin_dashboard_delivery_main_helpImg=zzz +plugin_dashboard_delivery_monograph_data1_helpBody1=zzz +plugin_dashboard_delivery_monograph_data1_helpBody2=zzz +plugin_dashboard_delivery_monograph_data1_helpHeader=zzz +plugin_dashboard_delivery_monograph_data1_helpImg=zzz +plugin_dashboard_delivery_monograph_data2_helpBody1=zzz +plugin_dashboard_delivery_monograph_data2_helpBody2=zzz +plugin_dashboard_delivery_monograph_data2_helpHeader=zzz +plugin_dashboard_delivery_monograph_data2_helpImg=zzz +plugin_dashboard_delivery_monograph_data3_helpBody1=zzz +plugin_dashboard_delivery_monograph_data3_helpBody2=zzz +plugin_dashboard_delivery_monograph_data3_helpHeader=zzz +plugin_dashboard_delivery_monograph_data3_helpImg=zzz +plugin_dashboard_delivery_monograph_overview_helpBody1=zzz +plugin_dashboard_delivery_monograph_overview_helpBody2=zzz +plugin_dashboard_delivery_monograph_overview_helpHeader=zzz +plugin_dashboard_delivery_monograph_overview_helpImg=zzz +plugin_dashboard_delivery_monograph_upload=zzz +plugin_dashboard_delivery_monograph_upload_helpBody1=zzz +plugin_dashboard_delivery_monograph_upload_helpBody2=zzz +plugin_dashboard_delivery_monograph_upload_helpHeader=zzz +plugin_dashboard_delivery_monograph_upload_helpImg=zzz +plugin_dashboard_delivery_noFileUploaded=zzz +plugin_dashboard_delivery_or=zzz +plugin_dashboard_delivery_overview=zzz +plugin_dashboard_delivery_pageHelp=zzz +plugin_dashboard_delivery_requiredField=zzz +plugin_dashboard_delivery_template_title=zzz +plugin_dashboard_delivery_upload=zzz +plugin_dashboard_delivery_uploadFormBtn=zzz +plugin_dashboard_delivery_uploadFormBtn_urlUpload=zzz +plugin_dashboard_delivery_uploadFormHeader=zzz +plugin_dashboard_delivery_uploadFormLabel=zzz +plugin_dashboard_delivery_uploadFormMessage=zzz +plugin_dashboard_delivery_uploadFormSend=zzz +plugin_dashboard_delivery_urlUploadForm_helpMsg=zzz +plugin_dashboard_delivery_userdata_contact_helpBody1=zzz +plugin_dashboard_delivery_userdata_contact_helpBody2=zzz +plugin_dashboard_delivery_userdata_contact_helpHeader=zzz +plugin_dashboard_delivery_userdata_contact_helpImg=zzz +plugin_dashboard_delivery_userdata_institution_helpBody1=zzz +plugin_dashboard_delivery_userdata_institution_helpBody2=zzz +plugin_dashboard_delivery_userdata_institution_helpHeader=zzz +plugin_dashboard_delivery_userdata_institution_helpImg=zzz +plugin_dashboard_delivery_userdata_options_helpBody1=zzz +plugin_dashboard_delivery_userdata_options_helpBody2=zzz +plugin_dashboard_delivery_userdata_options_helpHeader=zzz +plugin_dashboard_delivery_userdata_options_helpImg=zzz +plugin_dashboard_delivery_userdata_user_helpBody1=zzz +plugin_dashboard_delivery_userdata_user_helpBody2=zzz +plugin_dashboard_delivery_userdata_user_helpHeader=zzz +plugin_dashboard_delivery_userdata_user_helpImg=zzz +plugin_dashboard_delivery_wellcomeMessage=zzz plugin_dashboard_extended_continueTask=Continue working on the task zzz plugin_dashboard_extended_reOpenTask=Change the status of this completed task and continue working. zzz plugin_dashboard_extended_recentlyClosedTasks=Recently completed tasks zzz @@ -2770,6 +3145,16 @@ plugin_goldenThreadAnalysis_scoreGroups=\u05E7\u05D1\u05D5\u05E6\u05EA \u05DE\u0 plugin_goldenThreadAnalysis_scoreItems=\u05E6\u05D9\u05D5\u05DF \u05E4\u05E8\u05D9\u05D8 plugin_goldenThreadAnalysis_scoreSets=\u05E7\u05D1\u05E2 \u05E6\u05D9\u05D5\u05DF plugin_imageUpload=\u05D4\u05E2\u05DC\u05D4 \u05EA\u05DE\u05D5\u05E0\u05D5\u05EA +plugin_intranda_administration_deliveryManagement_Strasse_helpMessage=zzz +plugin_intranda_administration_deliveryManagement_Strasse_label=zzz +plugin_intranda_administration_deliveryManagement_Strasse_label_validationErrorDescription=zzz +plugin_intranda_administration_deliveryManagement_Strasse_name=zzz +plugin_intranda_administration_deliveryManagement_Strasse_placeholderText=zzz +plugin_intranda_administration_deliveryManagement_Stra\u00DFe_helpMessage=zzz +plugin_intranda_administration_deliveryManagement_Stra\u00DFe_label=zzz +plugin_intranda_administration_deliveryManagement_Stra\u00DFe_label_validationErrorDescription=zzz +plugin_intranda_administration_deliveryManagement_Stra\u00DFe_name=zzz +plugin_intranda_administration_deliveryManagement_Stra\u00DFe_placeholderText=zzz plugin_intranda_administration_googlebooks_harvester_no_gui=This plugin was developed for the National Library of Israel. It does not have a graphical user interface. zzz plugin_intranda_export_pdfExport=\u05D9\u05D9\u05E6\u05D5\u05D0 PDF \u05E9\u05DC Intrada plugin_intranda_statistics_file_count_master=Master files zzz @@ -2822,6 +3207,8 @@ plugin_intranda_step_imageQA_renameDescription=\u05D0\u05E0\u05D0 \u05D4\u05D2\u plugin_intranda_step_imageQA_renameLabel=\u05E9\u05DD \u05D7\u05DC\u05E7 plugin_intranda_step_imageQA_renameSelection=\u05E9\u05E0\u05D4 \u05D0\u05EA \u05E9\u05DD \u05D4\u05EA\u05DE\u05D5\u05E0\u05D5\u05EA \u05E9\u05E0\u05D1\u05D7\u05E8\u05D5 plugin_intranda_step_imageQA_renameTitle=\u05E9\u05E0\u05D4 \u05D0\u05EA \u05E9\u05DE\u05D5\u05EA \u05D4\u05E7\u05D1\u05E6\u05D9\u05DD +plugin_intranda_step_imageQA_reorder_next=zzz +plugin_intranda_step_imageQA_reorder_previous=zzz plugin_intranda_step_imageQA_rotateLeft=\u05E1\u05D5\u05D1\u05D1 \u05EA\u05DE\u05D5\u05E0\u05D4 \u05DC\u05E9\u05DE\u05D0\u05DC\: plugin_intranda_step_imageQA_rotateLefteSelection=\u05E1\u05D5\u05D1\u05D1 \u05D0\u05EA \u05D4\u05EA\u05DE\u05D5\u05E0\u05D5\u05EA \u05E9\u05E0\u05D1\u05D7\u05E8\u05D5 \u05DC\u05E9\u05DE\u05D0\u05DC plugin_intranda_step_imageQA_rotateRight=\u05E1\u05D5\u05D1\u05D1 \u05D0\u05EA \u05D4\u05EA\u05DE\u05D5\u05E0\u05D4 \u05DC\u05D9\u05DE\u05D9\u05DF @@ -2979,6 +3366,113 @@ plugin_replaceimages_image=Image zzz plugin_replaceimages_orderLabel=Logical page number zzz plugin_replaceimages_remark=Remark zzz plugin_replaceimages_saveAndExit=Save and exit zzz +plugin_rest_usercreation_accountNameInvalid=zzz +plugin_rest_usercreation_accountNameValid=zzz +plugin_rest_usercreation_ariaLabel_elementDuplicate=zzz +plugin_rest_usercreation_ariaLabel_elementHelp=zzz +plugin_rest_usercreation_ariaLabel_helpModal=zzz +plugin_rest_usercreation_ariaLabel_pageHelp=zzz +plugin_rest_usercreation_back=zzz +plugin_rest_usercreation_backToLogin=zzz +plugin_rest_usercreation_createInstitution=zzz +plugin_rest_usercreation_dnb_data=zzz +plugin_rest_usercreation_fbLink=zzz +plugin_rest_usercreation_goToHelpPages=zzz +plugin_rest_usercreation_header_help=zzz +plugin_rest_usercreation_helpText_email=zzz +plugin_rest_usercreation_helpText_firstname=zzz +plugin_rest_usercreation_helpText_institutionName=zzz +plugin_rest_usercreation_helpText_institutionShortName=zzz +plugin_rest_usercreation_helpText_lastname=zzz +plugin_rest_usercreation_helpText_old_password=zzz +plugin_rest_usercreation_helpText_page=zzz +plugin_rest_usercreation_helpText_password=zzz +plugin_rest_usercreation_helpText_password2=zzz +plugin_rest_usercreation_helpText_privacy=zzz +plugin_rest_usercreation_helpText_userName=zzz +plugin_rest_usercreation_helpTitle_privacy=zzz +plugin_rest_usercreation_login_heading=zzz +plugin_rest_usercreation_mainTitle=zzz +plugin_rest_usercreation_new_account=zzz +plugin_rest_usercreation_new_account_activation=zzz +plugin_rest_usercreation_new_account_activationNotSet=zzz +plugin_rest_usercreation_new_account_activation_helpMessage=zzz +plugin_rest_usercreation_new_account_askForActivation=zzz +plugin_rest_usercreation_new_account_confirmEmail=zzz +plugin_rest_usercreation_new_account_confirmPasswordRight=zzz +plugin_rest_usercreation_new_account_confirmPasswordWrong=zzz +plugin_rest_usercreation_new_account_confirmPrivacyStatement=zzz +plugin_rest_usercreation_new_account_confirm_helpBody1=zzz +plugin_rest_usercreation_new_account_confirm_helpBody2=zzz +plugin_rest_usercreation_new_account_confirm_helpHeader=zzz +plugin_rest_usercreation_new_account_confirm_helpImg=zzz +plugin_rest_usercreation_new_account_createAccount=zzz +plugin_rest_usercreation_new_account_creationSuccessful=zzz +plugin_rest_usercreation_new_account_creationSuccessfulHeading=zzz +plugin_rest_usercreation_new_account_emailAddress=zzz +plugin_rest_usercreation_new_account_institutionName=zzz +plugin_rest_usercreation_new_account_institutionNameHelp=zzz +plugin_rest_usercreation_new_account_institutionNameInvalid=zzz +plugin_rest_usercreation_new_account_institutionNamePlaceholder=zzz +plugin_rest_usercreation_new_account_institutionShortName=zzz +plugin_rest_usercreation_new_account_institutionShortNameInUse=zzz +plugin_rest_usercreation_new_account_institutionShortNameInvalid=zzz +plugin_rest_usercreation_new_account_notSelected=zzz +plugin_rest_usercreation_new_account_overview_checkedCheck_ariaLabel=zzz +plugin_rest_usercreation_new_account_overview_uncheckedCheck_ariaLabel=zzz +plugin_rest_usercreation_new_account_page1_helpBody1=zzz +plugin_rest_usercreation_new_account_page1_helpBody2=zzz +plugin_rest_usercreation_new_account_page1_helpHeader=zzz +plugin_rest_usercreation_new_account_page1_helpImg=zzz +plugin_rest_usercreation_new_account_page2_helpBody1=zzz +plugin_rest_usercreation_new_account_page2_helpBody2=zzz +plugin_rest_usercreation_new_account_page2_helpHeader=zzz +plugin_rest_usercreation_new_account_page2_helpImg=zzz +plugin_rest_usercreation_new_account_page3_helpBody1=zzz +plugin_rest_usercreation_new_account_page3_helpBody2=zzz +plugin_rest_usercreation_new_account_page3_helpHeader=zzz +plugin_rest_usercreation_new_account_page3_helpImg=zzz +plugin_rest_usercreation_new_account_page4_helpBody1=zzz +plugin_rest_usercreation_new_account_page4_helpBody2=zzz +plugin_rest_usercreation_new_account_page4_helpHeader=zzz +plugin_rest_usercreation_new_account_page4_helpImg=zzz +plugin_rest_usercreation_new_account_page5_helpBody1=zzz +plugin_rest_usercreation_new_account_page5_helpBody2=zzz +plugin_rest_usercreation_new_account_page5_helpHeader=zzz +plugin_rest_usercreation_new_account_page5_helpImg=zzz +plugin_rest_usercreation_new_account_password=zzz +plugin_rest_usercreation_new_account_password2=zzz +plugin_rest_usercreation_new_account_placeholder_accountName=zzz +plugin_rest_usercreation_new_account_placeholder_streetNumber=zzz +plugin_rest_usercreation_new_account_privacyTextNotAcccepted=zzz +plugin_rest_usercreation_new_account_resetPassword=zzz +plugin_rest_usercreation_new_account_userIsContactPerson=zzz +plugin_rest_usercreation_new_account_userName=zzz +plugin_rest_usercreation_new_account_wait_helpBody1=zzz +plugin_rest_usercreation_new_account_wait_helpBody2=zzz +plugin_rest_usercreation_new_account_wait_helpHeader=zzz +plugin_rest_usercreation_new_account_wait_helpImg=zzz +plugin_rest_usercreation_new_activation=zzz +plugin_rest_usercreation_new_additionalData=zzz +plugin_rest_usercreation_new_contact=zzz +plugin_rest_usercreation_new_createNewContact=zzz +plugin_rest_usercreation_new_disableContact=zzz +plugin_rest_usercreation_new_institution=zzz +plugin_rest_usercreation_next=zzz +plugin_rest_usercreation_old_account_password=zzz +plugin_rest_usercreation_page1=zzz +plugin_rest_usercreation_page2=zzz +plugin_rest_usercreation_page3=zzz +plugin_rest_usercreation_page4=zzz +plugin_rest_usercreation_page5=zzz +plugin_rest_usercreation_password=zzz +plugin_rest_usercreation_pwReset_heading=zzz +plugin_rest_usercreation_pwReset_label=zzz +plugin_rest_usercreation_pwReset_message=zzz +plugin_rest_usercreation_requiredField=zzz +plugin_rest_usercreation_requiredFields=zzz +plugin_rest_usercreation_subTitle=zzz +plugin_rest_usercreation_userName=zzz plugin_restorearchivedimages_imagesRestored=The images were successfully restored zzz plugin_restorearchivedimages_imagesToRestore=Restore images zzz plugin_statistics_italy_currentStepTitle=Current workflow step zzz @@ -3121,6 +3615,10 @@ plugin_workflow_mnha_bestandsdatenimport=zzz plugin_workflow_mnha_bestandsdatenimport_Description=zzz plugin_workflow_mnha_bestandsdatenimport_Heading=zzz plugin_workflow_mnha_bestandsdatenimport_loadData=zzz +plugin_workflow_processinspection_executeChance=zzz +plugin_workflow_processinspection_fulltext=zzz +plugin_workflow_processinspection_image=zzz +plugin_workflow_processinspection_searchterm=zzz plugin_workflow_projectexport_emptyProject=The project '{0}' has no related processes. An export is therefore not possible. zzz plugin_workflow_projectexport_exportFinished=The export of the processes was successfully finished. zzz plugin_workflow_projectexport_includeFinishedProcesses=Include finished processes zzz @@ -3178,13 +3676,54 @@ process_generateDocket=Download the docket as PDF file zzz process_generateFilterQueryForHits=\u05E6\u05D5\u05E8 \u05E9\u05D0\u05D9\u05DC\u05EA\u05EA \u05E1\u05D9\u05E0\u05D5\u05DF \u05E2\u05D1\u05D5\u05E8 \u05E8\u05E9\u05D9\u05DE\u05EA \u05E4\u05D2\u05D9\u05E2\u05D5\u05EA process_generatePdfForEntireObject=Download a PDF file for the entire process zzz process_generateSimplifiedMetadata=Download a PDF file with all metadata zzz +process_grid_Abstract=zzz +process_grid_AccessLicense=zzz +process_grid_ActionNote=zzz process_grid_Author=\u05D9\u05D5\u05E6\u05E8 process_grid_CatalogIDDigital=\u05DE\u05D6\u05D4\u05D4 +process_grid_CatalogIDDigital_Delivery=zzz +process_grid_CatalogIDPeriodicalDB=zzz +process_grid_Classification=zzz process_grid_ContentDescription=Type zzz +process_grid_ContentType=zzz +process_grid_Copyright=zzz +process_grid_CorporateContributor=zzz +process_grid_DDC=zzz +process_grid_DOI=zzz +process_grid_DataMediumType=zzz +process_grid_DigitalOrigin=zzz +process_grid_DocLanguage=zzz +process_grid_EAN=zzz +process_grid_Edition=zzz +process_grid_Editor=zzz +process_grid_FSK=zzz +process_grid_Handle=zzz +process_grid_ISBN=zzz +process_grid_ISIL=zzz +process_grid_ISMN=zzz +process_grid_ISSN=zzz +process_grid_Identifikation=zzz +process_grid_InternalNote=zzz +process_grid_LegalBasis=zzz +process_grid_MediaType=zzz +process_grid_ModsGenre=zzz +process_grid_NoteStatementOfResponsibility=zzz +process_grid_NoteStatementOfResponsibility_ForADIS=zzz +process_grid_OrderNumber=zzz +process_grid_OtherCorporate=zzz process_grid_PlaceOfPublication=\u05DE\u05E7\u05D5\u05DD +process_grid_PublicationRun=zzz +process_grid_PublicationStart=zzz process_grid_PublicationYear=\u05E9\u05E0\u05D4 +process_grid_PublisherCorporate=zzz process_grid_PublisherName=\u05DE\u05E4\u05E8\u05E1\u05DD +process_grid_SubjectTopic=zzz process_grid_TitleDocMain=\u05DB\u05D5\u05EA\u05E8\u05EA +process_grid_TitleDocSub1=zzz +process_grid_TypeOfResource=zzz +process_grid_UPC=zzz +process_grid_URL=zzz +process_grid_URN=zzz process_grid_batch=\u05D0\u05E6\u05D5\u05D5\u05D4 process_grid_date=\u05EA\u05D0\u05E8\u05D9\u05DA process_grid_details=\u05E4\u05E8\u05D8\u05D9\u05DD @@ -3202,6 +3741,7 @@ process_log_file_exportFolder=Export zzz process_log_file_importFolder=Import zzz process_log_file_masterFolder=Master zzz process_log_file_mediaFolder=Media zzz +process_log_file_priorityComment=zzz process_log_file_saveFile=Save file zzz process_log_file_sourceFolder=Source zzz process_log_firstContent=\u05D4\u05D5\u05D3\u05E2\u05D4 @@ -3211,6 +3751,7 @@ process_log_showDebugMessages=\u05D4\u05D5\u05D3\u05E2\u05D5\u05EA \u05D3\u05D9\ process_log_showErrorMessages=\u05D4\u05D5\u05D3\u05E2\u05D5\u05EA \u05E9\u05D2\u05D9\u05D0\u05D4 process_log_showFileMessages=Uploaded files zzz process_log_showInfoMessages=\u05D4\u05D5\u05D3\u05E2\u05D5\u05EA \u05DE\u05D9\u05D3\u05E2 +process_log_showUserImportantMessages=zzz process_log_showUserMessages=\u05D4\u05D5\u05D3\u05E2\u05D5\u05EA \u05DE\u05E9\u05EA\u05DE\u05E9 process_log_showWarnMessages=\u05D4\u05D5\u05D3\u05E2\u05D5\u05EA \u05D0\u05D6\u05D4\u05E8\u05D4 process_log_thirdContent=\u05E0\u05D5\u05E1\u05E3 @@ -3712,6 +4253,9 @@ vocabularyManager_exception_InsertingNonExistingItem=zzz vocabularyManager_exception_Mapping=zzz vocabularyManager_exception_MissingRequiredAttribute=zzz vocabularyManager_exception_RecordImport=zzz +vocabularyManager_exception_RecordImportFieldCountIssue=zzz +vocabularyManager_exception_RecordImportHeaderIssues=zzz +vocabularyManager_exception_RecordImportParsingIssues=zzz vocabularyManager_exception_RecordImportUnsupportedExcelCellType=zzz vocabularyManager_exception_RecordValidation=zzz vocabularyManager_exception_RecordValidationChildrenReferencesNotAllowed=zzz diff --git a/src/main/resources/messages_nl.properties b/src/main/resources/messages_nl.properties index aadd1566a..b589507f7 100644 --- a/src/main/resources/messages_nl.properties +++ b/src/main/resources/messages_nl.properties @@ -24,6 +24,7 @@ DocketNotFound=Het opgegeven bestand kon niet worden gevonden. zzz Eigenschaft=Eigendom zzz Error\ running\ tool\ or\ reading\ report\ file=zzz Error\ while\ loading\ metadata=Fout tijdens het laden van de metagegevens zzz +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=zzz ErrorDMSExport=Operatie {0} kon niet worden ge\u00EBxporteerd vanwege een fout\: {1} zzz ErrorLoadingValidationPlugin=De validatieplugin kon niet worden geladen. zzz ErrorMetadataNotUpdated=Het metagegevensbestand {0} kon niet worden bijgewerkt. zzz @@ -1306,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=zzz intranda_metadata_changeType=zzz intranda_metadata_createStructureElements=zzz +intranda_quartz_backupEadFile=Back-up van archiefbezit als EAD-bestanden zzz +intranda_quartz_exportEadFile=Archiefbezit publiceren als EAD-bestanden zzz intranda_quartz_herisJob=zzz intranda_statistics_allStepsPerProject=Werkstappen per project zzz intranda_statistics_file_count=Bepaal het aantal bestanden zzz @@ -2303,9 +2306,12 @@ plugin_administration_archive_DescriptionDates=zzz plugin_administration_archive_Number=Archiefnummer zzz plugin_administration_archive_Shelfmark=Handtekening(en) zzz plugin_administration_archive_accessrestrict=Toegangsvoorschriften zzz +plugin_administration_archive_accessrestrict_date=datum zzz plugin_administration_archive_accessrestrict_date=zzz +plugin_administration_archive_accessrestrict_value=Waarde zzz plugin_administration_archive_accessrestrict_value=zzz plugin_administration_archive_accruals=Nieuw binnengekomen zzz +plugin_administration_archive_accruals_date=datum zzz plugin_administration_archive_accruals_date=zzz plugin_administration_archive_accruals_head=zzz plugin_administration_archive_accruals_p=zzz @@ -2317,9 +2323,12 @@ plugin_administration_archive_agencycode=Code van het agentschap zzz plugin_administration_archive_agent=zzz plugin_administration_archive_altformavail=Kopie\u00EBn of reproducties zzz plugin_administration_archive_altformavail_head=zzz +plugin_administration_archive_altformavail_link=Link zzz plugin_administration_archive_altformavail_link=zzz plugin_administration_archive_altformavail_p=zzz +plugin_administration_archive_altformavail_person=Persoon zzz plugin_administration_archive_altformavail_person=zzz +plugin_administration_archive_altformavail_shelfmark=Handtekening zzz plugin_administration_archive_altformavail_shelfmark=zzz plugin_administration_archive_appraisal=Taxatie en cassatie zzz plugin_administration_archive_area_access=Voorwaarden voor toegang en gebruik zzz @@ -2404,15 +2413,21 @@ plugin_administration_archive_numberOfNodes=zzz plugin_administration_archive_oddnote=Verdere opmerkingen zzz plugin_administration_archive_originalsloc=Bewaarplaats van de originelen zzz plugin_administration_archive_originalsloc_head=zzz +plugin_administration_archive_originalsloc_link=Link zzz plugin_administration_archive_originalsloc_link=zzz plugin_administration_archive_originalsloc_p=zzz +plugin_administration_archive_originalsloc_person=Persoon zzz plugin_administration_archive_originalsloc_person=zzz +plugin_administration_archive_originalsloc_shelfmark=Handtekening zzz plugin_administration_archive_originalsloc_shelfmark=zzz plugin_administration_archive_origination=Naam van het kantoor van herkomst zzz plugin_administration_archive_originationcorpname=zzz plugin_administration_archive_otherfindaid=Steun voor vondsten zzz +plugin_administration_archive_otherfindaid_link=Link naar vindplaats zzz plugin_administration_archive_otherfindaid_link=zzz +plugin_administration_archive_otherfindaid_node=Knooppunten van de vondstenhulp zzz plugin_administration_archive_otherfindaid_node=zzz +plugin_administration_archive_otherfindaid_type=Type vondsthulp zzz plugin_administration_archive_otherfindaid_type=zzz plugin_administration_archive_permission_management_new=zzz plugin_administration_archive_permission_management_upload=zzz @@ -2421,8 +2436,10 @@ plugin_administration_archive_person=Persoon zzz plugin_administration_archive_physdesc=Werkingssfeer zzz plugin_administration_archive_physdescdimensions=zzz plugin_administration_archive_physdescextent=zzz +plugin_administration_archive_physdescquantity=Hoeveelheid zzz plugin_administration_archive_physdescquantity=zzz plugin_administration_archive_physdescstructured=Werkingssfeer (gestandaardiseerd) zzz +plugin_administration_archive_physdescunittype=Type zzz plugin_administration_archive_physdescunittype=zzz plugin_administration_archive_phystech=Fysieke conditie en technische vereisten zzz plugin_administration_archive_please_select_node=Selecteer eerst een knooppunt. zzz @@ -2440,6 +2457,7 @@ plugin_administration_archive_reviewRequired=zzz plugin_administration_archive_role=Roll zzz plugin_administration_archive_saveAndExit=Opslaan en afsluiten van archiefbestanden zzz plugin_administration_archive_scopecontent=Vorm en inhoud zzz +plugin_administration_archive_selection=Selectie zzz plugin_administration_archive_selection=zzz plugin_administration_archive_selectionHeading=Selectie van de archiefstukken zzz plugin_administration_archive_selectionText=Selecteer eerst de archiefstukken waarmee u wilt werken\: zzz diff --git a/src/main/resources/messages_pt.properties b/src/main/resources/messages_pt.properties index a2ba6fef9..c0474ef19 100644 --- a/src/main/resources/messages_pt.properties +++ b/src/main/resources/messages_pt.properties @@ -24,6 +24,7 @@ DocketNotFound=O arquivo especificado n\u00E3o p\u00F4de ser encontrado. zzz Eigenschaft=Propriedade zzz Error\ running\ tool\ or\ reading\ report\ file=zzz Error\ while\ loading\ metadata=Erro ao carregar os metadados zzz +Error=running\ tool\ or\ reading\ report\ file=Fehler\:=zzz ErrorDMSExport=A opera\u00E7\u00E3o {0} n\u00E3o p\u00F4de ser exportada devido a um erro\: {1} zzz ErrorLoadingValidationPlugin=O plugin de valida\u00E7\u00E3o n\u00E3o p\u00F4de ser carregado. zzz ErrorMetadataNotUpdated=O arquivo de metadados {0} n\u00E3o p\u00F4de ser atualizado. zzz @@ -1306,6 +1307,8 @@ intranda_administration_snippetCreator=Snippet Creator intranda_administration_vocabularies=zzz intranda_metadata_changeType=zzz intranda_metadata_createStructureElements=zzz +intranda_quartz_backupEadFile=C\u00F3pia de seguran\u00E7a dos fundos de arquivo como ficheiros EAD zzz +intranda_quartz_exportEadFile=Publicar os fundos de arquivo como ficheiros EAD zzz intranda_quartz_herisJob=zzz intranda_statistics_allStepsPerProject=Etapas de trabalho por projeto zzz intranda_statistics_file_count=Determinar o n\u00FAmero de ficheiros zzz @@ -2303,9 +2306,12 @@ plugin_administration_archive_DescriptionDates=zzz plugin_administration_archive_Number=N\u00FAmero de arquivo zzz plugin_administration_archive_Shelfmark=Assinatura(\u00F5es) zzz plugin_administration_archive_accessrestrict=Regulamentos de acesso zzz +plugin_administration_archive_accessrestrict_date=data zzz plugin_administration_archive_accessrestrict_date=zzz +plugin_administration_archive_accessrestrict_value=Valor zzz plugin_administration_archive_accessrestrict_value=zzz plugin_administration_archive_accruals=Rec\u00E9m-chegados zzz +plugin_administration_archive_accruals_date=data zzz plugin_administration_archive_accruals_date=zzz plugin_administration_archive_accruals_head=zzz plugin_administration_archive_accruals_p=zzz @@ -2317,9 +2323,12 @@ plugin_administration_archive_agencycode=C\u00F3digo da ag\u00EAncia zzz plugin_administration_archive_agent=zzz plugin_administration_archive_altformavail=C\u00F3pias ou reprodu\u00E7\u00F5es zzz plugin_administration_archive_altformavail_head=zzz +plugin_administration_archive_altformavail_link=Liga\u00E7\u00E3o zzz plugin_administration_archive_altformavail_link=zzz plugin_administration_archive_altformavail_p=zzz +plugin_administration_archive_altformavail_person=Pessoa zzz plugin_administration_archive_altformavail_person=zzz +plugin_administration_archive_altformavail_shelfmark=Assinatura zzz plugin_administration_archive_altformavail_shelfmark=zzz plugin_administration_archive_appraisal=Valoriza\u00E7\u00E3o e cassa\u00E7\u00E3o zzz plugin_administration_archive_area_access=Condi\u00E7\u00F5es de acesso e utiliza\u00E7\u00E3o zzz @@ -2404,15 +2413,21 @@ plugin_administration_archive_numberOfNodes=zzz plugin_administration_archive_oddnote=Outras observa\u00E7\u00F5es zzz plugin_administration_archive_originalsloc=Local de armazenamento dos originais zzz plugin_administration_archive_originalsloc_head=zzz +plugin_administration_archive_originalsloc_link=Liga\u00E7\u00E3o zzz plugin_administration_archive_originalsloc_link=zzz plugin_administration_archive_originalsloc_p=zzz +plugin_administration_archive_originalsloc_person=Pessoa zzz plugin_administration_archive_originalsloc_person=zzz +plugin_administration_archive_originalsloc_shelfmark=Assinatura zzz plugin_administration_archive_originalsloc_shelfmark=zzz plugin_administration_archive_origination=Nome do escrit\u00F3rio de proveni\u00EAncia zzz plugin_administration_archive_originationcorpname=zzz plugin_administration_archive_otherfindaid=Ajudas \u00E0 procura zzz +plugin_administration_archive_otherfindaid_link=Liga\u00E7\u00E3o \u00E0 ajuda para encontrar zzz plugin_administration_archive_otherfindaid_link=zzz +plugin_administration_archive_otherfindaid_node=N\u00F3s da ajuda ao estudo zzz plugin_administration_archive_otherfindaid_node=zzz +plugin_administration_archive_otherfindaid_type=Tipo de ajuda \u00E0 pesquisa zzz plugin_administration_archive_otherfindaid_type=zzz plugin_administration_archive_permission_management_new=zzz plugin_administration_archive_permission_management_upload=zzz @@ -2421,8 +2436,10 @@ plugin_administration_archive_person=Person zzz plugin_administration_archive_physdesc=\u00C2mbito zzz plugin_administration_archive_physdescdimensions=zzz plugin_administration_archive_physdescextent=zzz +plugin_administration_archive_physdescquantity=Quantidade zzz plugin_administration_archive_physdescquantity=zzz plugin_administration_archive_physdescstructured=\u00C2mbito (estandardizado) zzz +plugin_administration_archive_physdescunittype=Tipo zzz plugin_administration_archive_physdescunittype=zzz plugin_administration_archive_phystech=Estado f\u00EDsico e requisitos t\u00E9cnicos zzz plugin_administration_archive_please_select_node=Por favor, seleccione primeiro um n\u00F3. zzz @@ -2440,6 +2457,7 @@ plugin_administration_archive_reviewRequired=zzz plugin_administration_archive_role=Rolo zzz plugin_administration_archive_saveAndExit=Save and exit record group zzz plugin_administration_archive_scopecontent=Forma e conte\u00FAdo zzz +plugin_administration_archive_selection=Sele\u00E7\u00E3o zzz plugin_administration_archive_selection=zzz plugin_administration_archive_selectionHeading=Selec\u00E7\u00E3o do acervo do arquivo zzz plugin_administration_archive_selectionText=Por favor, seleccione primeiro os arquivos com os quais gostaria de trabalhar\: zzz From 696c08d0e371fad8521285623bf187af7e7c93d2 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Fri, 20 Sep 2024 10:56:56 +0200 Subject: [PATCH 35/48] display metadata in process creation screen --- .../de/sub/goobi/forms/ProzesskopieForm.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/sub/goobi/forms/ProzesskopieForm.java b/src/main/java/de/sub/goobi/forms/ProzesskopieForm.java index 6bd1e7efe..7bac4c2bf 100644 --- a/src/main/java/de/sub/goobi/forms/ProzesskopieForm.java +++ b/src/main/java/de/sub/goobi/forms/ProzesskopieForm.java @@ -53,8 +53,6 @@ import javax.naming.NamingException; import javax.servlet.http.Part; -import io.goobi.vocabulary.exchange.FieldDefinition; -import io.goobi.vocabulary.exchange.VocabularySchema; import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.SystemUtils; @@ -114,7 +112,9 @@ import de.unigoettingen.sub.search.opac.ConfigOpac; import de.unigoettingen.sub.search.opac.ConfigOpacCatalogue; import de.unigoettingen.sub.search.opac.ConfigOpacDoctype; +import io.goobi.vocabulary.exchange.FieldDefinition; import io.goobi.vocabulary.exchange.Vocabulary; +import io.goobi.vocabulary.exchange.VocabularySchema; import io.goobi.workflow.api.vocabulary.VocabularyAPIManager; import io.goobi.workflow.api.vocabulary.helper.ExtendedVocabularyRecord; import lombok.Data; @@ -460,6 +460,11 @@ private AdditionalField readAdditionalFieldConfiguration(HierarchicalConfigurati /* Children durchlaufen und SelectItems erzeugen */ if (!parameterList.isEmpty()) { + if (item.getBoolean("@multiselect", true)) { // NOSONAR + fa.setMultiselect(true); + } else { + fa.setMultiselect(false); + } fa.setSelectList(new ArrayList<>()); } @@ -488,7 +493,8 @@ private AdditionalField readAdditionalFieldConfiguration(HierarchicalConfigurati String value = parts[1]; String finalFieldName = field; - Optional searchField = schema.getDefinitions().stream() + Optional searchField = schema.getDefinitions() + .stream() .filter(d -> d.getName().equals(finalFieldName)) .findFirst(); @@ -514,13 +520,6 @@ private AdditionalField readAdditionalFieldConfiguration(HierarchicalConfigurati .map(v -> new SelectItem(v, v)) .collect(Collectors.toList())); } - - if (item.getBoolean("@multiselect", true)) { // NOSONAR - fa.setMultiselect(true); - } else { - fa.setMultiselect(false); - } - // TODO: FIX return fa; } @@ -730,7 +729,8 @@ public String readMetadataFromTemplate() throws DAOException { DocStruct colStruct = this.myRdf.getDigitalDocument().getLogicalDocStruct(); List firstChildMetadata = - colStruct.getAllChildren() == null || colStruct.getAllChildren().isEmpty() ? Collections.emptyList() : colStruct.getAllChildren().get(0).getAllMetadata(); + colStruct.getAllChildren() == null || colStruct.getAllChildren().isEmpty() ? Collections.emptyList() + : colStruct.getAllChildren().get(0).getAllMetadata(); fillTemplateFromMetadata(colStruct.getAllMetadata(), firstChildMetadata); removeCollections(colStruct); @@ -1240,7 +1240,8 @@ private void createMetadata(DocStruct myTempStruct, MetadataType mdt, String sel private void writeJournalEntry(LoginBean loginForm) { User user = loginForm.getMyBenutzer(); JournalEntry logEntry = - new JournalEntry(prozessKopie.getId(), new Date(), user.getNachVorname(), importantWikiField ? LogType.IMPORTANT_USER : LogType.USER, addToWikiField, EntryType.PROCESS); + new JournalEntry(prozessKopie.getId(), new Date(), user.getNachVorname(), importantWikiField ? LogType.IMPORTANT_USER : LogType.USER, + addToWikiField, EntryType.PROCESS); JournalManager.saveJournalEntry(logEntry); prozessKopie.getJournal().add(logEntry); } From ccca1225365c989fa1ad505ebfa1464700d10c21 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Fri, 20 Sep 2024 11:56:14 +0200 Subject: [PATCH 36/48] fix: keep date in view when scrolling in journal --- src/main/webapp/uii/templatePG/css/src/components/_feed.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_feed.scss b/src/main/webapp/uii/templatePG/css/src/components/_feed.scss index 8781b570d..cba0f1d62 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_feed.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_feed.scss @@ -17,12 +17,15 @@ .feed-heading { align-items: center; + background: var(--bs-body-bg); display: flex; font-size: 0.875rem; font-weight: 700; gap: var(--feed-spacing-v); padding-block-start: 0.25em; padding-inline: var(--feed-spacing-h); + position: sticky; + top: 0; width: 100%; } From 39fe65bcdcd7808b8c08314cc5230f011591ed3f Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Mon, 23 Sep 2024 11:27:28 +0200 Subject: [PATCH 37/48] fix: broken reloading of vocabulary search modal --- .../metseditor/modals/inc_me_modal_vocabulary.xhtml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/uii/includes/metseditor/modals/inc_me_modal_vocabulary.xhtml b/src/main/webapp/uii/includes/metseditor/modals/inc_me_modal_vocabulary.xhtml index 4fb5037d4..258f44a35 100644 --- a/src/main/webapp/uii/includes/metseditor/modals/inc_me_modal_vocabulary.xhtml +++ b/src/main/webapp/uii/includes/metseditor/modals/inc_me_modal_vocabulary.xhtml @@ -20,13 +20,14 @@ role="dialog" aria-labelledby="vocabularySearchBoxLabel" aria-hidden="true"> - + \ No newline at end of file From f566dc2660d7a4bc3073804a2c929204930e553b Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Thu, 26 Sep 2024 09:22:59 +0200 Subject: [PATCH 38/48] fix: restore width of table search input --- .../webapp/uii/templatePG/css/src/components/_tables-custom.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss b/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss index 94c50b8d5..1298514b0 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_tables-custom.scss @@ -163,6 +163,7 @@ justify-content: flex-end; align-items: center; gap: var(--gap, 8px); + flex: 1 1 auto; &__option { background-color: var(--clr-neutral-200); From 8f94044b439dbab74890de8c57cd81db1b451a89 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Thu, 26 Sep 2024 13:11:43 +0200 Subject: [PATCH 39/48] refactor: use default BS variables for button styles --- .../css/src/base/_colors-custom.scss | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/uii/templatePG/css/src/base/_colors-custom.scss b/src/main/webapp/uii/templatePG/css/src/base/_colors-custom.scss index 3395cdae0..0144b6ec6 100644 --- a/src/main/webapp/uii/templatePG/css/src/base/_colors-custom.scss +++ b/src/main/webapp/uii/templatePG/css/src/base/_colors-custom.scss @@ -157,13 +157,23 @@ $colors-status: ( @each $name, $color in $colors { .btn-#{$name} { - background-color: var(--clr-#{$name}); - border-color: var(--clr-#{$name}); @if $name == blank { - color: #000; // bg is transparent - border: 1px solid var(--clr-neutral-400); + --bs-btn-color: #000; // bg is transparent + --bs-btn-bg: var(--clr-neutral-400); + --bs-btn-active-bg: var(--clr-neutral-200); + --bs-btn-active-border-color: var(--clr-neutral-200); + --bs-btn-active-color: #000; + --bs-btn-border-color: var(--clr-neutral-400); + --bs-btn-hover-bg: var(--clr-neutral-200); } @else { - color: #fff; // bg is a color + --bs-btn-color: #fff; // bg is a color + --bs-btn-bg: var(--clr-#{$name}); + --bs-btn-active-bg: var(--clr-#{$name}); + --bs-btn-active-border-color: var(--clr-#{$name}); + --bs-btn-active-color: #fff; + --bs-btn-border-color: var(--clr-#{$name}); + --bs-btn-hover-bg: var(--clr-#{$name}); + } } .btn-#{$name}:hover { From 90ed4886970577d5e49cc385e42d3081f3edcd0a Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Thu, 26 Sep 2024 13:12:41 +0200 Subject: [PATCH 40/48] fix: improve display of button states --- .../uii/templatePG/css/src/components/_buttons.scss | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss b/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss index 8ca567087..a1f65d54a 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss @@ -79,6 +79,16 @@ button, .fa ~ * { margin-inline-start: 0.25rem; } + &:focus-visible { + color: var(--bs-btn-color); + outline-width: 2px; + outline-style: solid; + outline-color: var(--bs-btn-bg, var(--clr-neutral-300)); + outline-offset: 2px; + } + &:active { + transform: scale(99%); + } } /* ======================================== From 293df02d0938d94fe9ca282dc9c2ad7f43aa2b68 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Thu, 26 Sep 2024 13:17:58 +0200 Subject: [PATCH 41/48] fix: improve text color of focussed buttons --- .../webapp/uii/templatePG/css/src/components/_buttons.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss b/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss index a1f65d54a..cfaa8600e 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_buttons.scss @@ -79,6 +79,9 @@ button, .fa ~ * { margin-inline-start: 0.25rem; } + &:focus { + color: var(--bs-btn-color); + } &:focus-visible { color: var(--bs-btn-color); outline-width: 2px; From 468be7f1a75a12843ad5f499b57970d8dc8e7f44 Mon Sep 17 00:00:00 2001 From: Simon Sendler Date: Thu, 26 Sep 2024 13:46:13 +0200 Subject: [PATCH 42/48] fix: remove border radius from button in form fields --- .../webapp/uii/templatePG/css/src/components/_forms-custom.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss b/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss index 9eabdbaba..61ca25a76 100644 --- a/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss +++ b/src/main/webapp/uii/templatePG/css/src/components/_forms-custom.scss @@ -363,6 +363,7 @@ fieldSet:disabled .badge > a { } > .btn { border-inline-start: 1px solid var(--clr-neutral-300); + border-radius: 0; height: 100%; justify-content: center; right: 0; From 9e8cf68f23775a48efbeb85f1abf591f172c4649 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Fri, 27 Sep 2024 07:54:29 +0200 Subject: [PATCH 43/48] ruleset: removed double export mapping --- install/rulesets/ruleset.xml | 41 +++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/install/rulesets/ruleset.xml b/install/rulesets/ruleset.xml index 5163b4bb9..e746ce68e 100644 --- a/install/rulesets/ruleset.xml +++ b/install/rulesets/ruleset.xml @@ -7562,23 +7562,6 @@ - - InventoryHistoryGroup - ./mods:mods/mods:extension/#intranda:inventoryHistory - - AcquisitionMethod - ./#intranda:method - - - AcquisitionAgent - ./intranda:agent - - - AcquisitionNotes - ./intranda:note - - - AccrualsGroup ./mods:mods/mods:extension/#intranda:accruals @@ -7875,6 +7858,30 @@ Postscript postscript + + Folder + folder + + + File + file + + + Picture + image + + + Audio + audio + + + Video + video + + + Other + other + \ No newline at end of file From f12e0e50d49193dc691da163683ac45ade345f41 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Fri, 27 Sep 2024 14:37:40 +0200 Subject: [PATCH 44/48] extent VariableReplacer test --- .../de/sub/goobi/helper/VariableReplacer.java | 3 + .../sub/goobi/helper/HelperSchritteTest.java | 2 +- .../goobi/helper/VariableReplacerTest.java | 78 ++++++++++++++++--- .../metadaten/MetadataGenerationTest.java | 2 +- .../goobi/api/rest/ProcessServiceTest.java | 2 +- .../GoobiScriptMetadataAddTest.java | 14 ++-- ...oobiScriptMetadataReplaceAdvancedTest.java | 10 +-- .../GoobiScriptMetadataReplaceTest.java | 8 +- src/test/resources/metadata/1/meta.xml | 1 + 9 files changed, 89 insertions(+), 31 deletions(-) diff --git a/src/main/java/de/sub/goobi/helper/VariableReplacer.java b/src/main/java/de/sub/goobi/helper/VariableReplacer.java index 84fb2583a..1318e2f4b 100644 --- a/src/main/java/de/sub/goobi/helper/VariableReplacer.java +++ b/src/main/java/de/sub/goobi/helper/VariableReplacer.java @@ -524,6 +524,9 @@ public String replace(String inString) { String folderName = r.group(1); try { String value = process.getConfiguredImageFolder(folderName); + if (value == null) { + value = ""; + } inString = inString.replace(r.group(), value); } catch (IllegalArgumentException | IOException | SwapException | DAOException e) { log.error(e); diff --git a/src/test/java/de/sub/goobi/helper/HelperSchritteTest.java b/src/test/java/de/sub/goobi/helper/HelperSchritteTest.java index d41a21812..48ef1e377 100644 --- a/src/test/java/de/sub/goobi/helper/HelperSchritteTest.java +++ b/src/test/java/de/sub/goobi/helper/HelperSchritteTest.java @@ -297,7 +297,7 @@ public void testExtractMetadata() throws Exception { Map> metadataPairs = new HashMap<>(); HelperSchritte.extractMetadata(Paths.get(process.getMetadataFilePath()), metadataPairs); - assertEquals(6, metadataPairs.size()); + assertEquals(7, metadataPairs.size()); assertEquals("main title", metadataPairs.get("TitleDocMain").get(0)); } diff --git a/src/test/java/de/sub/goobi/helper/VariableReplacerTest.java b/src/test/java/de/sub/goobi/helper/VariableReplacerTest.java index a3658e1f2..d06cf399c 100644 --- a/src/test/java/de/sub/goobi/helper/VariableReplacerTest.java +++ b/src/test/java/de/sub/goobi/helper/VariableReplacerTest.java @@ -23,23 +23,29 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + import org.easymock.EasyMock; +import org.goobi.beans.Masterpiece; +import org.goobi.beans.Masterpieceproperty; import org.goobi.beans.Process; +import org.goobi.beans.Template; +import org.goobi.beans.Templateproperty; import org.junit.Before; import org.junit.Test; - -import de.sub.goobi.AbstractTest; -import de.sub.goobi.mock.MockProcess; import org.junit.runner.RunWith; import org.powermock.api.easymock.PowerMock; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; + +import de.sub.goobi.AbstractTest; +import de.sub.goobi.mock.MockProcess; import ugh.dl.DigitalDocument; import ugh.dl.Prefs; -import java.time.LocalDateTime; - @RunWith(PowerMockRunner.class) @PrepareForTest({ DateTimeHelper.class }) @PowerMockIgnore({ "javax.management.*", "javax.xml.*", "org.xml.*", "org.w3c.*", "javax.net.ssl.*", "jdk.internal.reflect.*", "javax.crypto.*" }) @@ -147,13 +153,46 @@ public void testDateTimeReplacement() { assertEquals("{datetime.abcdefghijk}", replacer.replace("{datetime.abcdefghijk}")); } - // @Test + @Test public void testReplaceProperties() { - // TODO - // {product.NAME} - // {template.NAME} - // {process.NAME} - // {folder.name} + VariableReplacer replacer = new VariableReplacer(digitalDocument, prefs, process, null); + + Templateproperty tp = new Templateproperty(); + tp.setTitel("templateProperty"); + tp.setWert("template value"); + List tpl = new ArrayList<>(); + tpl.add(tp); + + List