From 72e7ede0e3e2c10fe6f8d141d02e4315014f23c2 Mon Sep 17 00:00:00 2001 From: Arved Solth Date: Tue, 2 Jan 2024 15:32:56 +0100 Subject: [PATCH 1/3] Catch import configuration errors during mass import --- .../forms/massimport/MassImportForm.java | 15 +++++ .../resources/messages/errors_de.properties | 1 + .../resources/messages/errors_en.properties | 1 + .../massImport/dialogs/configError.xhtml | 58 +++++++++++++++++++ Kitodo/src/main/webapp/pages/massImport.xhtml | 1 + 5 files changed, 76 insertions(+) create mode 100644 Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml diff --git a/Kitodo/src/main/java/org/kitodo/production/forms/massimport/MassImportForm.java b/Kitodo/src/main/java/org/kitodo/production/forms/massimport/MassImportForm.java index 84955931a18..d7dbed06d75 100644 --- a/Kitodo/src/main/java/org/kitodo/production/forms/massimport/MassImportForm.java +++ b/Kitodo/src/main/java/org/kitodo/production/forms/massimport/MassImportForm.java @@ -30,6 +30,7 @@ import org.kitodo.data.database.beans.ImportConfiguration; import org.kitodo.data.database.beans.Template; import org.kitodo.data.database.exceptions.DAOException; +import org.kitodo.exceptions.ConfigException; import org.kitodo.exceptions.ImportException; import org.kitodo.production.forms.BaseForm; import org.kitodo.production.forms.CsvRecord; @@ -62,6 +63,7 @@ public class MassImportForm extends BaseForm { private HashMap importSuccessMap = new HashMap<>(); private Integer progress = 0; private Boolean rulesetConfigurationForOpacImportComplete = null; + private String configurationError = null; /** * Prepare mass import. @@ -157,6 +159,11 @@ public void startMassImport() { PrimeFaces.current().ajax().update("massImportResultDialog"); } catch (ImportException e) { Helper.setErrorMessage(e.getLocalizedMessage(), logger, e); + } catch (ConfigException e) { + configurationError = e.getLocalizedMessage(); + PrimeFaces.current().executeScript("PF('massImportProgressBar').cancel();"); + PrimeFaces.current().executeScript("PF('configErrorDialog').show();"); + PrimeFaces.current().ajax().update("configErrorDialog"); } } @@ -443,4 +450,12 @@ public int getNumberOfProcessesRecords() { public Boolean getRulesetConfigurationForOpacImportComplete() { return rulesetConfigurationForOpacImportComplete; } + + /** + * Get ConfigurationError value. + * @return configuration error value + */ + public String getConfigurationError() { + return configurationError; + } } diff --git a/Kitodo/src/main/resources/messages/errors_de.properties b/Kitodo/src/main/resources/messages/errors_de.properties index a46d24328c8..76ebeafe477 100644 --- a/Kitodo/src/main/resources/messages/errors_de.properties +++ b/Kitodo/src/main/resources/messages/errors_de.properties @@ -25,6 +25,7 @@ calendar.upload.missingMandatoryElement=Ein erforderliches XML-Element konnte ni calendar.upload.missingMandatoryValue=Ein erforderlicher Wert konnte nicht gefunden werden. calendar.upload.overlappingDateRanges=Der Erscheinungsverlauf konnte nicht importiert werden, da sich Datumsbereiche von Bl\u00F6cken \u00FCberlappen\: catalogError=Fehler bei Abfrage von Katalog \u201E{0}\u201C +configurationError=Konfigurationsfehler copyDataError=Fehler beim Kopieren der Daten createProcessForm.createNewProcess.noInsertionPositionSelected=Es wurde keine Position f\u00FCr die Titelsatzverkn\u00FCpfung ausgew\u00E4hlt. createProcessForm.createNewProcess.recordIdentifierMissing.caption='recordIdentifier'-Metadaten nicht gefunden diff --git a/Kitodo/src/main/resources/messages/errors_en.properties b/Kitodo/src/main/resources/messages/errors_en.properties index 8d641c11b44..7c8072160d0 100644 --- a/Kitodo/src/main/resources/messages/errors_en.properties +++ b/Kitodo/src/main/resources/messages/errors_en.properties @@ -25,6 +25,7 @@ calendar.upload.missingMandatoryElement=A mandatory XML element could not be fou calendar.upload.missingMandatoryValue=A mandatory value could not be found. calendar.upload.overlappingDateRanges=Due to overlapping date ranges of blocks, the course of appearance could not be imported\: catalogError=Error querying OPAC \u201E{0}\u201C +configurationError=Configuration error copyDataError=Error while copying the data createProcessForm.createNewProcess.noInsertionPositionSelected=No title record linking position was selected. createProcessForm.createNewProcess.recordIdentifierMissing.caption='recordIdentifier' metadata missing diff --git a/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml b/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml new file mode 100644 index 00000000000..0c27e28376e --- /dev/null +++ b/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml @@ -0,0 +1,58 @@ + + + + + +

#{err['configurationError']} - #{MassImportForm.importConfigurationId.title}

+
+ +
+
+ + + + + + + + + +
+
diff --git a/Kitodo/src/main/webapp/pages/massImport.xhtml b/Kitodo/src/main/webapp/pages/massImport.xhtml index 80b750a11a5..8daea698c5d 100644 --- a/Kitodo/src/main/webapp/pages/massImport.xhtml +++ b/Kitodo/src/main/webapp/pages/massImport.xhtml @@ -70,6 +70,7 @@ + From 043d86fdcd146e28ee022b0540fe12b3bbce70b2 Mon Sep 17 00:00:00 2001 From: Arved Solth Date: Mon, 8 Jan 2024 09:49:22 +0100 Subject: [PATCH 2/3] Use correct icon --- .../templates/includes/massImport/dialogs/configError.xhtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml b/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml index 0c27e28376e..698edc7caf5 100644 --- a/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml +++ b/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml @@ -46,7 +46,7 @@ outcome="importConfigurationEdit" title="#{msgs.editImportConfiguration}" value="#{msgs.editImportConfiguration}" - icon="fa fa-pencil-square fa-lg" + icon="fa fa-pencil-square-o fa-lg" iconPos="right" styleClass="secondary-button secondary right" rendered="#{SecurityAccessController.hasAuthorityToEditImportConfiguration()}"> From fe8cd34a2e4b6ccb64bdd56cbbc51e2e72d9b5ef Mon Sep 17 00:00:00 2001 From: Arved Solth Date: Wed, 10 Jan 2024 11:17:43 +0100 Subject: [PATCH 3/3] Display 'Close' button as 'primary' button --- .../templates/includes/massImport/dialogs/configError.xhtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml b/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml index 698edc7caf5..8c9dbf87482 100644 --- a/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml +++ b/Kitodo/src/main/webapp/WEB-INF/templates/includes/massImport/dialogs/configError.xhtml @@ -41,7 +41,7 @@ onclick="PF('configErrorDialog').hide();" icon="fa fa-times fa-lg" iconPos="right" - styleClass="secondary right"/> + styleClass="primary right"/>