From 9ab3e1a42c6bd621330fc98e2b7949c2684fae68 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sat, 11 Jun 2022 17:45:50 +0200 Subject: [PATCH] More work on the authoring steps for publications. --- .../contenttypes/MonographItem.java | 15 + .../AbstractPublicationPropertiesStep.java | 1 - ...onWithPublisherExtendedPropertiesStep.java | 139 +++++++ .../MonographExtendedPropertiesStep.java | 38 ++ .../contenttypes/MonographItemCreateStep.java | 4 + .../contenttypes/MonographPropertiesStep.java | 4 +- .../contenttypes/PublicationAbstractStep.java | 24 +- .../PublicationAuthoringSteps.java | 34 ++ .../ui/contenttypes/PublicationMiscStep.java | 342 ++++++++++++++++++ ...hPublisherExtendedPropertiesStepModel.java | 28 ++ .../contenttypes/ui/create-publication.xhtml | 76 ++++ .../ui/monograph/create-monograph.xhtml | 46 +++ .../ui/SciPublicationsBundle.properties | 22 +- .../ui/SciPublicationsBundle_de.properties | 20 + 14 files changed, 777 insertions(+), 16 deletions(-) create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographExtendedPropertiesStep.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAuthoringSteps.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationMiscStep.java create mode 100644 sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/create-publication.xhtml create mode 100644 sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/create-monograph.xhtml diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java index 368100e..79e1609 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java @@ -6,7 +6,13 @@ package org.scientificcms.publications.contenttypes; import org.librecms.contenttypes.ContentTypeDescription; +import org.librecms.ui.contentsections.documents.MvcAuthoringKit; import org.scientificcms.publications.Monograph; +import org.scientificcms.publications.ui.contenttypes.MonographExtendedPropertiesStep; +import org.scientificcms.publications.ui.contenttypes.MonographItemCreateStep; +import org.scientificcms.publications.ui.contenttypes.MonographPropertiesStep; +import org.scientificcms.publications.ui.contenttypes.PublicationAbstractStep; +import org.scientificcms.publications.ui.contenttypes.PublicationMiscStep; import javax.persistence.Entity; import javax.persistence.Table; @@ -23,6 +29,15 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; labelBundle = "org.scientificcms.publications.contenttypes.Monograph", descriptionBundle = "org.scientificcms.publications.contenttypes.Monograph" ) +@MvcAuthoringKit( + createStep = MonographItemCreateStep.class, + authoringSteps = { + MonographPropertiesStep.class, + MonographExtendedPropertiesStep.class, + PublicationAbstractStep.class, + PublicationMiscStep.class + } +) public class MonographItem extends PublicationWithPublisherItem { private static final long serialVersionUID = 1L; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationPropertiesStep.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationPropertiesStep.java index 33a2c13..42fc8bb 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationPropertiesStep.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationPropertiesStep.java @@ -161,7 +161,6 @@ public abstract class AbstractPublicationPropertiesStep shortDescriptionLocales = publication .getShortDescription() .getAvailableLocales(); - propertiesStepModel.setUnusedShortDescriptionLocales( globalizationHelper .getAvailableLocales() diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationWithPublisherExtendedPropertiesStep.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationWithPublisherExtendedPropertiesStep.java index af6bbb3..f895e71 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationWithPublisherExtendedPropertiesStep.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationWithPublisherExtendedPropertiesStep.java @@ -1,5 +1,6 @@ package org.scientificcms.publications.ui.contenttypes; +import org.libreccm.l10n.GlobalizationHelper; import org.libreccm.security.AuthorizationRequired; import org.librecms.ui.contentsections.ContentSectionNotFoundException; import org.librecms.ui.contentsections.ItemPermissionChecker; @@ -11,7 +12,10 @@ import org.scientificcms.publications.PublicationWithPublisher; import org.scientificcms.publications.contenttypes.PublicationWithPublisherItem; import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle; +import java.util.Locale; import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import javax.inject.Inject; import javax.transaction.Transactional; @@ -32,6 +36,9 @@ public abstract class AbstractPublicationWithPublisherExtendedPropertiesStep entry.getKey().toString(), + entry -> entry.getValue() + ) + ) + ); + + final Set editionLocales = publication + .getEdition() + .getAvailableLocales(); + propertiesStepModel.setUnusedEditionLocales( + globalizationHelper + .getAvailableLocales() + .stream() + .filter(locale -> !editionLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); } @POST @@ -146,4 +179,110 @@ public abstract class AbstractPublicationWithPublisherExtendedPropertiesStepJens Pelzetter + */ +@RequestScoped +@Path(MvcAuthoringSteps.PATH_PREFIX + "publication-extendedproperties") +@Controller +@MvcAuthoringStepDef( + bundle = SciPublicationsConstants.BUNDLE, + descriptionKey = "authoringsteps.extendedproperties.description", + labelKey = "authoringsteps.extendedproperties.label", + supportedDocumentType = MonographItem.class +) +public class MonographExtendedPropertiesStep extends AbstractPublicationWithPublisherExtendedPropertiesStep { + + @Override + public Class getStepClass() { + return MonographExtendedPropertiesStep.class; + } + + @Override + protected String getStepTemplatePath() { + return "/org/scientificcms/contenttypes/monograph/ui/edit-extended.xhtml"; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographItemCreateStep.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographItemCreateStep.java index 2ed9568..cb6462d 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographItemCreateStep.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographItemCreateStep.java @@ -4,12 +4,16 @@ import org.libreccm.l10n.GlobalizationHelper; import org.scientificcms.publications.Monograph; import org.scientificcms.publications.contenttypes.MonographItem; +import javax.enterprise.context.RequestScoped; import javax.inject.Inject; +import javax.inject.Named; /** * * @author Jens Pelzetter */ +@RequestScoped +@Named("SciPublicationsMonographCreateStep") public class MonographItemCreateStep extends AbstractPublicationItemCreateStep { @Inject diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographPropertiesStep.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographPropertiesStep.java index f529bb5..7cae7e1 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographPropertiesStep.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/MonographPropertiesStep.java @@ -32,8 +32,8 @@ import javax.ws.rs.PathParam; @Controller @MvcAuthoringStepDef( bundle = EventStepsConstants.BUNDLE, - descriptionKey = "monograph.authoringsteps.basicproperties.description", - labelKey = "monograph.authoringsteps.basicproperties.label", + descriptionKey = "authoringsteps.basicproperties.description", + labelKey = "authoringsteps.basicproperties.label", supportedDocumentType = MonographItem.class ) public class MonographPropertiesStep extends AbstractPublicationWithPublisherPropertiesStep { diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAbstractStep.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAbstractStep.java index cb37046..02b860a 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAbstractStep.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAbstractStep.java @@ -319,19 +319,19 @@ public class PublicationAbstractStep extends AbstractMvcAuthoringStep { .map(CmsEditorUtil::buildVariantRow) .collect(Collectors.toList()) ); - } - final Set abstractLocales = getPublication() - .getPublicationAbstract() - .getAvailableLocales(); - abstractStepModel.setUnusedLocales( - globalizationHelper - .getAvailableLocales() - .stream() - .filter(locale -> !abstractLocales.contains(locale)) - .map(Locale::toString) - .collect(Collectors.toList()) - ); + final Set abstractLocales = getPublication() + .getPublicationAbstract() + .getAvailableLocales(); + abstractStepModel.setUnusedLocales( + globalizationHelper + .getAvailableLocales() + .stream() + .filter(locale -> !abstractLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + } } private PublicationItem getPublicationItem() { diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAuthoringSteps.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAuthoringSteps.java new file mode 100644 index 0000000..8b6d10c --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationAuthoringSteps.java @@ -0,0 +1,34 @@ +package org.scientificcms.publications.ui.contenttypes; + +import org.librecms.ui.contentsections.documents.MvcAuthoringSteps; + +import java.util.Set; + +import javax.enterprise.context.ApplicationScoped; + +/** + * + * @author Jens Pelzetter + */ +@ApplicationScoped +public class PublicationAuthoringSteps implements MvcAuthoringSteps { + + @Override + public Set> getClasses() { + return Set.of( + MonographPropertiesStep.class, + MonographExtendedPropertiesStep.class, + PublicationAbstractStep.class, + PublicationMiscStep.class + ); + } + + @Override + public Set> getResourceClasses() { + return Set.of( + PublicationAbstractStepResources.class, + PublicationMiscStepResources.class + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationMiscStep.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationMiscStep.java new file mode 100644 index 0000000..923b603 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationMiscStep.java @@ -0,0 +1,342 @@ +package org.scientificcms.publications.ui.contenttypes; + +import org.libreccm.l10n.GlobalizationHelper; +import org.libreccm.security.AuthorizationRequired; +import org.librecms.ui.contentsections.ContentSectionNotFoundException; +import org.librecms.ui.contentsections.ItemPermissionChecker; +import org.librecms.ui.contentsections.documents.AbstractMvcAuthoringStep; +import org.librecms.ui.contentsections.documents.CmsEditorUtil; +import org.librecms.ui.contentsections.documents.DocumentNotFoundException; +import org.librecms.ui.contentsections.documents.DocumentUi; +import org.librecms.ui.contentsections.documents.MvcAuthoringStepDef; +import org.librecms.ui.contentsections.documents.MvcAuthoringSteps; +import org.scientificcms.publications.Publication; +import org.scientificcms.publications.PublicationRepository; +import org.scientificcms.publications.SciPublicationsConstants; +import org.scientificcms.publications.contenttypes.PublicationItem; +import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle; + +import java.util.Locale; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.mvc.Controller; +import javax.transaction.Transactional; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Path(MvcAuthoringSteps.PATH_PREFIX + "publication-misc") +@Controller +@MvcAuthoringStepDef( + bundle = SciPublicationsConstants.BUNDLE, + descriptionKey = "authoringsteps.misc.description", + labelKey = "authoringsteps.misc.label", + supportedDocumentType = PublicationItem.class +) +public class PublicationMiscStep extends AbstractMvcAuthoringStep { + + @Inject + private DocumentUi documentUi; + + @Inject + private GlobalizationHelper globalizationHelper; + + @Inject + private ItemPermissionChecker itemPermissionChecker; + + @Inject + private SciPublicationsUiMessageBundle messageBundle; + + @Inject + private PublicationMiscStepModel miscStepModel; + + @Inject + private PublicationRepository publicationRepo; + + @Override + public Class getStepClass() { + return PublicationMiscStep.class; + } + + @GET + @Path("/") + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public String showStep( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath + ) { + try { + init(); + } catch (ContentSectionNotFoundException ex) { + return ex.showErrorMessage(); + } catch (DocumentNotFoundException ex) { + return ex.showErrorMessage(); + } + + if (itemPermissionChecker.canEditItem(getPublicationItem())) { + return "/org/scientificcms/contenttypes/publications/ui/publication/misc.xhtml"; + } else { + return documentUi.showAccessDenied( + getContentSection(), + getPublicationItem(), + messageBundle.getMessage("publication.edit.denied") + ); + } + } + + @GET + @Path("/misc/view/{locale}") + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public String viewMisc( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @PathParam("locale") final String localeParam + ) { + try { + init(); + } catch (ContentSectionNotFoundException ex) { + return ex.showErrorMessage(); + } catch (DocumentNotFoundException ex) { + return ex.showErrorMessage(); + } + + if (itemPermissionChecker.canEditItem(getPublicationItem())) { + try { + init(); + } catch (ContentSectionNotFoundException ex) { + return ex.showErrorMessage(); + } catch (DocumentNotFoundException ex) { + return ex.showErrorMessage(); + } + + miscStepModel.setSelectedLocale( + new Locale(localeParam).toString() + ); + + return "/org/scientificcms/contenttypes/publications/ui/publication/misc/view.xhtml"; + } else { + return documentUi.showAccessDenied( + getContentSection(), + getPublicationItem(), + messageBundle.getMessage("publication.edit.denied") + ); + } + } + + @POST + @Path("/misc/add") + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public String addMiscValue( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @FormParam("locale") final String localeParam + ) { + try { + init(); + } catch (ContentSectionNotFoundException ex) { + return ex.showErrorMessage(); + } catch (DocumentNotFoundException ex) { + return ex.showErrorMessage(); + } + + if (itemPermissionChecker.canEditItem(getPublicationItem())) { + final String value; + if (getPublication().getMisc().getAvailableLocales().isEmpty()) { + value = ""; + } else { + value = globalizationHelper.getValueFromLocalizedString( + getPublication().getMisc() + ); + } + + final Locale locale = new Locale(localeParam); + getPublication().getMisc().putValue(locale, value); + publicationRepo.save(getPublication()); + + return buildRedirectPathForStep(); + } else { + return documentUi.showAccessDenied( + getContentSection(), + getPublicationItem(), + messageBundle.getMessage("publication.edit.denied") + ); + } + } + + @GET + @Path("/misc/edit/{locale}") + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public String editMiscValue( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @PathParam("locale") final String localeParam + ) { + try { + init(); + } catch (ContentSectionNotFoundException ex) { + return ex.showErrorMessage(); + } catch (DocumentNotFoundException ex) { + return ex.showErrorMessage(); + } + + if (itemPermissionChecker.canEditItem(getPublicationItem())) { + miscStepModel.setSelectedLocale(new Locale(localeParam).toString()); + + return "/org/scientificcms/contenttypes/publications/ui/publication/misc/edit.xhtml"; + } else { + return documentUi.showAccessDenied( + getContentSection(), + getPublicationItem(), + messageBundle.getMessage("publication.edit.denied") + ); + } + } + + @POST + @Path("/misc/edit/{locale}") + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public String editMiscValue( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @PathParam("locale") final String localeParam, + @FormParam("value") + final String value + ) { + try { + init(); + } catch (ContentSectionNotFoundException ex) { + return ex.showErrorMessage(); + } catch (DocumentNotFoundException ex) { + return ex.showErrorMessage(); + } + + if (itemPermissionChecker.canEditItem(getPublicationItem())) { + final Locale locale = new Locale(localeParam); + getPublication().getMisc().putValue(locale, value); + publicationRepo.save(getPublication()); + + return buildRedirectPathForStep(); + } else { + return documentUi.showAccessDenied( + getContentSection(), + getPublicationItem(), + messageBundle.getMessage("publication.edit.denied") + ); + } + } + + @POST + @Path("/misc/remove/{locale}") + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public String removeMiscValue( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @PathParam("locale") final String localeParam + ) { + try { + init(); + } catch (ContentSectionNotFoundException ex) { + return ex.showErrorMessage(); + } catch (DocumentNotFoundException ex) { + return ex.showErrorMessage(); + } + + if (itemPermissionChecker.canEditItem(getPublicationItem())) { + final Locale locale = new Locale(localeParam); + getPublication().getMisc().removeValue(locale); + publicationRepo.save(getPublication()); + + return buildRedirectPathForStep(); + } else { + return documentUi.showAccessDenied( + getContentSection(), + getPublicationItem(), + messageBundle.getMessage("publication.edit.denied") + ); + } + } + + @Override + public void init() throws ContentSectionNotFoundException, + DocumentNotFoundException { + super.init(); + + final boolean canEdit = itemPermissionChecker.canEditItem( + getPublicationItem() + ); + if (canEdit) { + miscStepModel.setCanEdit(canEdit); + miscStepModel.setMiscValues( + getPublication() + .getMisc() + .getValues() + .entrySet() + .stream() + .collect( + Collectors.toMap( + entry -> entry.getKey().toString(), + entry -> entry.getValue() + ) + ) + ); + miscStepModel.setVariants( + getPublication() + .getMisc() + .getValues() + .entrySet() + .stream() + .map(CmsEditorUtil::buildVariantRow) + .collect(Collectors.toList()) + ); + } + + final Set miscLocales = getPublication() + .getMisc() + .getAvailableLocales(); + miscStepModel.setUnusedLocales( + globalizationHelper + .getAvailableLocales() + .stream() + .filter(locale -> !miscLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + } + + private PublicationItem getPublicationItem() { + return (PublicationItem) getDocument(); + } + + private Publication getPublication() { + return getPublicationItem().getPublication(); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationWithPublisherExtendedPropertiesStepModel.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationWithPublisherExtendedPropertiesStepModel.java index 1e2ceb8..aaf5ae9 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationWithPublisherExtendedPropertiesStepModel.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationWithPublisherExtendedPropertiesStepModel.java @@ -1,5 +1,11 @@ package org.scientificcms.publications.ui.contenttypes; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import javax.enterprise.context.RequestScoped; import javax.inject.Named; @@ -21,6 +27,10 @@ public class PublicationWithPublisherExtendedPropertiesStepModel { private int numberOfPages; + private Map editionValues; + + private List unusedEditionLocales; + public String getIsbn10() { return isbn10; } @@ -61,4 +71,22 @@ public class PublicationWithPublisherExtendedPropertiesStepModel { this.numberOfPages = numberOfPages; } + public Map getEditionValues() { + return Collections.unmodifiableMap(editionValues); + } + + public void setEditionValues(final Map editionValues) { + this.editionValues = new HashMap<>(editionValues); + } + + public List getUnusedEditionLocales() { + return Collections.unmodifiableList(unusedEditionLocales); + } + + public void setUnusedEditionLocales( + final List unusedEditionLocales + ) { + this.unusedEditionLocales = new ArrayList<>(unusedEditionLocales); + } + } diff --git a/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/create-publication.xhtml b/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/create-publication.xhtml new file mode 100644 index 0000000..77b07f6 --- /dev/null +++ b/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/create-publication.xhtml @@ -0,0 +1,76 @@ +]> + + + + +
+

#{publicationCreateStepTitle}

+ + + + + +
+ + + + + + + + + + #{SciPublicationsUiMessageBundle['createform.cancel']} + + + +
+
+ +
+ + diff --git a/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/create-monograph.xhtml b/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/create-monograph.xhtml new file mode 100644 index 0000000..d0dc556 --- /dev/null +++ b/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/create-monograph.xhtml @@ -0,0 +1,46 @@ +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle.properties b/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle.properties index e6fdd29..4f83bc3 100644 --- a/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle.properties +++ b/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle.properties @@ -253,4 +253,24 @@ proceedings.editstep.shortdescription.remove.text=Are you sure to remove the fol proceedings.editstep.shortdescription.remove.title=Confirm removal of localized description proceedings.editstep.shortdescription.title=Description proceedings.editstep.properties.edit.submit=Save -monographitem.createstep.description=Create new monograph item. +monographitem.createstep.description=Create a new monograph item. +authoringsteps.abstract.description=An abstract of the publication (blurb). +authoringsteps.abstract.label=Abstract +authoringsteps.misc.description=Additional information about the publication. +authoringsteps.misc.label=Misc +publication.edit.denied=Access denied +authoringsteps.extendedproperties.description=Optional properties for publications +authoringsteps.extendedproperties.label=Extended properties +authoringsteps.basicproperties.description=Basic properties of the publication +authoringsteps.basicproperties.label=Properties +monograph.createform.title=Create a new monograph +createstep.name.help=The name (URL fragment) of the publication item. Can only contain the letters a to z, A to Z, numbers, the dash ("-") and the underscore ("_"). +createstep.name.label=Name +createform.initial_locale.help=Initial locale for the new publication item. +createform.initial_locale.label=Locale +createform.title.help=The title of the publication. +createform.title.label=Title +createform.workflow.help=The workflow to use for the new publication item. +createform.workflow.label=Workflow +createform.cancel=Cancel +monograph.createform.submit=Create monograph diff --git a/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle_de.properties b/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle_de.properties index aeaf5df..ffe9bd7 100644 --- a/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle_de.properties +++ b/sci-publications/src/main/resources/org/scientificcms/publications/ui/SciPublicationsBundle_de.properties @@ -254,3 +254,23 @@ proceedings.editstep.shortdescription.remove.title=Entfernen einer lokalisierten proceedings.editstep.shortdescription.title=Beschreibung proceedings.editstep.properties.edit.submit=Speichern monographitem.createstep.description=Legt ein neues Item f\u00fcr eine Monographie an. +authoringsteps.abstract.description=Eine Zusammenfassung der Publikation (Klappentext). +authoringsteps.abstract.label=Zusammenfassung +authoringsteps.misc.description=Zus\u00e4tzliche Informationen \u00fcber die Publikation. +authoringsteps.misc.label=Zus\u00e4tzliche Informationen +publication.edit.denied=Zugriff verweigert +authoringsteps.extendedproperties.description=Optionale Eigenschaften f\u00fcr Publikationen +authoringsteps.extendedproperties.label=Erweiterte Eigenschaften +authoringsteps.basicproperties.description=Basiseigenschaften der Publikation +authoringsteps.basicproperties.label=Eigenschaften +monograph.createform.title=Neue Monographie anlegen +createstep.name.help=Der Name (URL-Fragment) des Publikations-Items. Darf nur die Buchstaben A bis Z und a bis z, Zahlen, den Bindestrich ("-") und den Unterstrich ("_") enthalten. +createstep.name.label=Name +createform.initial_locale.help=Initiale Sprache des neuen Publikations-Items. +createform.initial_locale.label=Sprache +createform.title.help=Der Titel der Publikation. +createform.title.label=Titel +createform.workflow.help=Der Arbeitsablauf, der f\u00fcr das neuen Publikations-Item verwendet werden soll. +createform.workflow.label=Arbeitsablauf +createform.cancel=Abbrechen +monograph.createform.submit=Monographie anlegen