Controller for the extended properties step of an InProceedings

publication
pull/1/head
Jens Pelzetter 2022-08-13 14:59:42 +02:00
parent 458b1b21fd
commit bc3b5e81b1
1 changed files with 167 additions and 0 deletions

View File

@ -0,0 +1,167 @@
package org.scientificcms.publications.ui.contenttypes;
import org.libreccm.security.AuthorizationRequired;
import org.librecms.ui.contentsections.documents.MvcAuthoringStepDef;
import org.librecms.ui.contentsections.documents.MvcAuthoringSteps;
import org.scientificcms.publications.InProceedings;
import org.scientificcms.publications.contenttypes.InProceedingsItem;
import org.scientificcms.publications.contenttypes.MonographItem;
import org.scientificcms.publications.ui.SciPublicationsUiConstants;
import javax.enterprise.context.RequestScoped;
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 <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@RequestScoped
@Path(MvcAuthoringSteps.PATH_PREFIX
+ InProceedingsExtendedPropertiesStep.EDIT_STEP_URL_FRAGMENT
)
@Controller
@MvcAuthoringStepDef(
bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.extendedproperties.description",
labelKey = "authoringsteps.extendedproperties.label",
supportedDocumentType = MonographItem.class
)
public class InProceedingsExtendedPropertiesStep
extends AbstractPublicationExtendedPropertiesStep<InProceedingsItem, InProceedings> {
public static final String EDIT_STEP_URL_FRAGMENT
= "inproceeedings-extendedproperties";
@Override
public Class<InProceedingsExtendedPropertiesStep> getStepClass() {
return InProceedingsExtendedPropertiesStep.class;
}
@Override
protected Class<InProceedings> getPublicationClass() {
return InProceedings.class;
}
@Override
protected String getEditStepUrlFragment() {
return EDIT_STEP_URL_FRAGMENT;
}
@Override
protected String getStepTemplatePath() {
return "org/scientificcms/contenttypes/ui/inproceedings/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
) {
return super.updateProperties(
sectionIdentifier,
documentPath,
languageOfPublicationParam,
peerReviewedParam,
yearFirstPublishedParam
);
}
@POST
@Path("/series")
@AuthorizationRequired
@Transactional
@Override
public String addSeries(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@FormParam("seriesIdentifier")
final String seriesIdentifier,
@FormParam("volumeOfSeries")
final String volumeOfSeries
) {
return super.addSeries(
sectionIdentifier,
documentPath,
seriesIdentifier,
volumeOfSeries
);
}
@POST
@Path("/series/{volumeInSeriesUuid}")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String editVolumeInSeries(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@PathParam("volumeInSeriesUuid")
final String volumeInSeriesUuid,
@FormParam("volumeOfSeries")
final String volumeOfSeries
) {
return super.editVolumeInSeries(
sectionIdentifier,
documentPath,
volumeInSeriesUuid,
volumeOfSeries
);
}
@POST
@Path("/series/{volumeInSeriesUuid}/remove")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String removeVolumeInSeries(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@PathParam("volumeInSeriesUuid")
final String volumeInSeriesUuid
) {
return super.removeVolumeInSeries(
sectionIdentifier,
documentPath,
volumeInSeriesUuid
);
}
}