From 995d3ed63a724452cf0121a99a3ede251df144d8 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Thu, 30 Jun 2022 20:06:47 +0200 Subject: [PATCH] Some bugfixes --- ...ractPublicationExtentedPropertiesStep.java | 50 ++++++-- ...onWithPublisherExtendedPropertiesStep.java | 10 +- .../MonographExtendedPropertiesStep.java | 121 +++++++++++++++++- ...ublicationExtendedPropertiesStepModel.java | 6 +- ...hPublisherExtendedPropertiesStepModel.java | 18 +-- .../monograph/edit-extended-properties.xhtml | 2 +- 6 files changed, 170 insertions(+), 37 deletions(-) diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationExtentedPropertiesStep.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationExtentedPropertiesStep.java index d917c44..304ff96 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationExtentedPropertiesStep.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/AbstractPublicationExtentedPropertiesStep.java @@ -50,7 +50,7 @@ public abstract class AbstractPublicationExtentedPropertiesStep new IllegalArgumentException( + String.format( + "PublicationItem %s has no associated publication", + getPublicationItem().getUuid() + ) + ) + ); } + + protected abstract Class

getPublicationClass(); @Override @Transactional(Transactional.TxType.REQUIRED) @@ -81,9 +96,16 @@ public abstract class AbstractPublicationExtentedPropertiesStep lang.toString()) + .orElse(null) + ); + propertiesStepModel.setPeerReviewed( + Optional + .ofNullable(publication.getPeerReviewed()) + .orElse(false) ); - propertiesStepModel.setPeerReviewed(publication.getPeerReviewed()); propertiesStepModel.setVolumeInSeries( publication .getSeries() @@ -92,12 +114,12 @@ public abstract class AbstractPublicationExtentedPropertiesStep !param.isBlank()) .map(param -> new Locale(param)) .orElse(null); - + final boolean peerReviewed = Optional .ofNullable(peerReviewedParam) .map(param -> "true".equals(param) || "on".equals(param)) .orElse(false); - + final Integer yearFirstPublished = Optional .ofNullable(yearFirstPublishedParam) .filter(param -> !param.isBlank()) .filter(param -> param.matches("\\d*")) .map(param -> Integer.parseInt(param)) .orElse(null); - + final P publication = getPublication(); if (languageOfPublication != null) { - publication.setLanguageOfPublication(languageOfPublication); + publication.setLanguageOfPublication(languageOfPublication); } publication.setPeerReviewed(peerReviewed); - + if (yearFirstPublished != null) { publication.setYearOfPublication(yearFirstPublished); } - + publicationRepo.save(publication); - + return buildRedirectPathForStep(); } else { return documentUi.showAccessDenied( 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 f895e71..c4427cc 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 @@ -94,8 +94,6 @@ public abstract class AbstractPublicationWithPublisherExtendedPropertiesStep getPublicationClass() { + return Monograph.class; + } + @Override protected String getStepTemplatePath() { - return "/org/scientificcms/contenttypes/monograph/ui/edit-extended.xhtml"; + return "org/scientificcms/contenttypes/ui/monograph/edit-extended-properties.xhtml"; + } + + @GET + @Path("/") + @AuthorizationRequired + @Transactional(Transactional.TxType.REQUIRED) + @Override + public String showStep( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath + ) { + return super.showStep(sectionIdentifier, documentPath); + } + + @POST + @Path("/properties") + @AuthorizationRequired + @Transactional(Transactional.TxType.REQUIRED) + @Override + public String updateProperties( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @FormParam("languageOfPublication") + final String languageOfPublicationParam, + @FormParam("peerReviewed") + final String peerReviewedParam, + @FormParam("yearFirstPublished") + final String yearFirstPublishedParam, + @FormParam("isbn10") + final String isbn10, + @FormParam("isbn13") + final String isbn13, + @FormParam("numberOfPages") + final String numberOfPagesParam, + @FormParam("numberOfVolumes") + final String numberOfVolumesParam, + @FormParam("volume") + final String volumeParam + ) { + return super.updateProperties( + sectionIdentifier, + documentPath, + languageOfPublicationParam, + peerReviewedParam, + yearFirstPublishedParam, + isbn10, + isbn13, + numberOfPagesParam, + numberOfVolumesParam, + volumeParam + ); + } + + @POST + @Path("/edition/@add") + @AuthorizationRequired + @Transactional(Transactional.TxType.REQUIRED) + @Override + public String addEditionValue( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @FormParam("locale") final String localeParam, + @FormParam("value") final String value + ) { + return super.addEditionValue( + sectionIdentifier, documentPath, localeParam, value + ); + } + + @POST + @Path("/edition/@edit/{locale}") + @AuthorizationRequired + @Transactional(Transactional.TxType.REQUIRED) + @Override + public String editEditionValue( + @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 + ) { + return super.editEditionValue( + sectionIdentifier, documentPath, localeParam, value + ); + } + + @POST + @Path("/edition/@remove/{locale}") + @AuthorizationRequired + @Transactional(Transactional.TxType.REQUIRED) + @Override + public String removeEditionValue( + @PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM) + final String sectionIdentifier, + @PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME) + final String documentPath, + @PathParam("locale") final String localeParam + ) { + return super.removeEditionValue( + sectionIdentifier, documentPath, localeParam + ); } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationExtendedPropertiesStepModel.java b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationExtendedPropertiesStepModel.java index 32e3f9a..6d487b8 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationExtendedPropertiesStepModel.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ui/contenttypes/PublicationExtendedPropertiesStepModel.java @@ -17,7 +17,7 @@ public class PublicationExtendedPropertiesStepModel { private boolean peerReviewed; - private int yearFirstPublished; + private Integer yearFirstPublished; private String languageOfPublication; @@ -31,11 +31,11 @@ public class PublicationExtendedPropertiesStepModel { this.peerReviewed = peerReviewed; } - public int getYearFirstPublished() { + public Integer getYearFirstPublished() { return yearFirstPublished; } - public void setYearFirstPublished(final int yearFirstPublished) { + public void setYearFirstPublished(final Integer yearFirstPublished) { this.yearFirstPublished = yearFirstPublished; } 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 aaf5ae9..159be1c 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 @@ -21,11 +21,11 @@ public class PublicationWithPublisherExtendedPropertiesStepModel { private String isbn13; - private int volume; + private Integer volume; - private int numberOfVolumes; + private Integer numberOfVolumes; - private int numberOfPages; + private Integer numberOfPages; private Map editionValues; @@ -47,27 +47,27 @@ public class PublicationWithPublisherExtendedPropertiesStepModel { this.isbn13 = isbn13; } - public int getVolume() { + public Integer getVolume() { return volume; } - public void setVolume(final int volume) { + public void setVolume(final Integer volume) { this.volume = volume; } - public int getNumberOfVolumes() { + public Integer getNumberOfVolumes() { return numberOfVolumes; } - public void setNumberOfVolumes(final int numberOfVolumes) { + public void setNumberOfVolumes(final Integer numberOfVolumes) { this.numberOfVolumes = numberOfVolumes; } - public int getNumberOfPages() { + public Integer getNumberOfPages() { return numberOfPages; } - public void setNumberOfPages(final int numberOfPages) { + public void setNumberOfPages(final Integer numberOfPages) { this.numberOfPages = numberOfPages; } diff --git a/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/edit-extended-properties.xhtml b/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/edit-extended-properties.xhtml index ad0597c..7f97958 100644 --- a/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/edit-extended-properties.xhtml +++ b/sci-publications/src/main/resources/WEB-INF/views/org/scientificcms/contenttypes/ui/monograph/edit-extended-properties.xhtml @@ -5,7 +5,7 @@ xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm" xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - +