From beef038b62e80f50a60735862a65dbbe1dead2cc Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Thu, 3 Dec 2020 21:10:31 +0100 Subject: [PATCH] Form for configuring export --- .../ui/admin/imexport/ImExportController.java | 30 +++++++++-- .../libreccm/web/ApplicationImExporter.java | 3 +- .../libreccm/ui/admin/imexport/export.xhtml | 34 +++++++++--- .../libreccm/ui/admin/imexport/imexport.xhtml | 53 ++++++++++++++++++- .../org/libreccm/ui/admin/themes/themes.xhtml | 30 +++++------ .../org/libreccm/ui/AdminBundle.properties | 10 ++++ .../org/libreccm/ui/AdminBundle_de.properties | 10 ++++ 7 files changed, 141 insertions(+), 29 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/ImExportController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/ImExportController.java index 51e40a6dc..ffdde63fa 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/ImExportController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/imexport/ImExportController.java @@ -21,15 +21,20 @@ package org.libreccm.ui.admin.imexport; import com.arsdigita.ui.admin.importexport.ImportExportMonitor; import org.libreccm.core.CoreConstants; +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.EntityImExporterTreeNode; import org.libreccm.imexport.ImportExport; import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.RequiresPrivilege; +import java.util.stream.Collectors; + import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.mvc.Controller; import javax.mvc.Models; import javax.ws.rs.GET; +import javax.ws.rs.NotFoundException; import javax.ws.rs.Path; /** @@ -46,7 +51,7 @@ public class ImExportController { @Inject private ImportExportMonitor importExportMonitor; - + @Inject private Models models; @@ -63,8 +68,27 @@ public class ImExportController { @AuthorizationRequired @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) public String exportEntities() { - models.put("exportables", importExport.getExportableEntityTypes()); - + models.put( + "exportableEntities", + importExport + .getExportableEntityTypes() + .stream() + .map(EntityImExporterTreeNode::getEntityImExporter) + .map(AbstractEntityImExporter::getEntityClass) + .map(Class::getName) + .sorted() + .collect(Collectors.toList()) + ); + return "org/libreccm/ui/admin/imexport/export.xhtml"; } + + @GET + @Path("/import") + @AuthorizationRequired + @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) + public String importEntities() { + throw new NotFoundException(); + } + } diff --git a/ccm-core/src/main/java/org/libreccm/web/ApplicationImExporter.java b/ccm-core/src/main/java/org/libreccm/web/ApplicationImExporter.java index a32fdf5b4..35038e547 100644 --- a/ccm-core/src/main/java/org/libreccm/web/ApplicationImExporter.java +++ b/ccm-core/src/main/java/org/libreccm/web/ApplicationImExporter.java @@ -43,8 +43,7 @@ public class ApplicationImExporter private ApplicationRepository applicationRepository; @Override - protected Class getEntityClass() { - + public Class getEntityClass() { return CcmApplication.class; } diff --git a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/export.xhtml b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/export.xhtml index e02320160..81b18b118 100644 --- a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/export.xhtml +++ b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/export.xhtml @@ -1,7 +1,9 @@ @@ -24,14 +26,32 @@

#{AdminMessages['imexport.export.label']}

-

Exportable classes

-
    - -
  • ${exportable}
  • -
    -
+
+

#{AdminMessages['imexport.export.help']}

-

Placeholder

+ + + + + + + + #{AdminMessages['imexport.export.cancel']} + + +
diff --git a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/imexport.xhtml b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/imexport.xhtml index 0910af948..848ebcebe 100644 --- a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/imexport.xhtml +++ b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/imexport/imexport.xhtml @@ -2,7 +2,8 @@ + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:xlink="http://www.w3.org/1999/xlink"> @@ -17,7 +18,55 @@

#{AdminMessages['imexport.label']}

-

Placeholder

+
+
+
+ +
+

+ + #{AdminMessages['import.label']} + +

+

+ #{import.description} +

+
+
+
+ +
+
+ +
+

+ + #{AdminMessages['export.label']} + +

+

+ #{export.description} +

+
+
+
+
diff --git a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/themes/themes.xhtml b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/themes/themes.xhtml index c14dd1ee0..8cd0203c7 100644 --- a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/themes/themes.xhtml +++ b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/themes/themes.xhtml @@ -41,14 +41,14 @@ - - + + @@ -81,7 +81,7 @@ diff --git a/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle.properties b/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle.properties index ca1a32d5b..cd568dd92 100644 --- a/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle.properties +++ b/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle.properties @@ -526,3 +526,13 @@ themes.table.actions.delete.cancel=Cancel themes.table.actions.delete.confirm=Delete theme themes.table.actions.delete.title=Confirm theme deletion themes.table.actions.delete.message=Are you sure to delete the theme {0}? +imexport.export.label=Export +import.label=Import +import.description=Import entities from import archives +export.label=Export +export.description=Export entities +imexport.export.help=Export the following entities +imexport.export.export_name.help=Name of the export archive +imexport.export.export_name.label=to +imexport.export.submit=Export +imexport.export.cancel=Cancel diff --git a/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle_de.properties b/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle_de.properties index e82e6aa5c..6b488ba9d 100644 --- a/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle_de.properties +++ b/ccm-core/src/main/resources/org/libreccm/ui/AdminBundle_de.properties @@ -526,3 +526,13 @@ themes.table.actions.delete.cancel=Abbrechen themes.table.actions.delete.confirm=Theme l\u00f6schen themes.table.actions.delete.title=L\u00f6schen des Themes best\u00e4tigen themes.table.actions.delete.message=Sind Sie sicher, dass Sie das Theme {0} l\u00f6schen wollen? +imexport.export.label=Export +import.label=Import +import.description=Entities aus Import-Archiven importieren +export.label=Export +export.description=Entitities exportieren +imexport.export.help=Export the following entities +imexport.export.export_name.help=Name des Export Archives +imexport.export.export_name.label=nach +imexport.export.submit=Exportieren +imexport.export.cancel=Abbrechen
@@ -154,7 +154,7 @@ dialogId="theme-#{theme.name}-unpublish" dialogTitle="#{AdminMessages['themes.table.actions.delete.title']}" message="#{AdminMessages.getMessage('themes.table.actions.delete.message', [theme.name])}" - /> + />