Controllers and models of authorings steps for ArticleInJournal

pull/1/head
Jens Pelzetter 2022-08-19 14:35:38 +02:00
parent bec3a90529
commit 35a72236a1
9 changed files with 835 additions and 1 deletions

View File

@ -8,7 +8,13 @@ package org.scientificcms.publications.contenttypes;
import org.hibernate.envers.Audited; import org.hibernate.envers.Audited;
import org.librecms.contenttypes.ContentTypeDescription; import org.librecms.contenttypes.ContentTypeDescription;
import org.librecms.ui.contentsections.documents.MvcAuthoringKit;
import org.scientificcms.publications.ArticleInJournal; import org.scientificcms.publications.ArticleInJournal;
import org.scientificcms.publications.ui.contenttypes.ArticleInJournalExtendedPropertiesStep;
import org.scientificcms.publications.ui.contenttypes.ArticleInJournalItemCreateStep;
import org.scientificcms.publications.ui.contenttypes.ArticleInJournalPropertiesStep;
import org.scientificcms.publications.ui.contenttypes.PublicationAbstractStep;
import org.scientificcms.publications.ui.contenttypes.PublicationMiscStep;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.Table; import javax.persistence.Table;
@ -26,6 +32,15 @@ import static org.scientificcms.publications.SciPublicationsConstants.*;
labelBundle = "org.scientificcms.publications.contenttypes.ArticleInJournal", labelBundle = "org.scientificcms.publications.contenttypes.ArticleInJournal",
descriptionBundle = "org.scientificcms.publications.contenttypes.ArticleInJournal" descriptionBundle = "org.scientificcms.publications.contenttypes.ArticleInJournal"
) )
@MvcAuthoringKit(
createStep = ArticleInJournalItemCreateStep.class,
authoringSteps = {
ArticleInJournalPropertiesStep.class,
ArticleInJournalExtendedPropertiesStep.class,
PublicationAbstractStep.class,
PublicationMiscStep.class
}
)
public class ArticleInJournalItem extends PublicationItem<ArticleInJournal> { public class ArticleInJournalItem extends PublicationItem<ArticleInJournal> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -29,7 +29,7 @@ import javax.ws.rs.PathParam;
bundle = SciPublicationsUiConstants.BUNDLE, bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.extendedproperties.description", descriptionKey = "authoringsteps.extendedproperties.description",
labelKey = "authoringsteps.extendedproperties.label", labelKey = "authoringsteps.extendedproperties.label",
supportedDocumentType = MonographItem.class supportedDocumentType = ArticleInCollectedVolumeItem.class
) )
public class ArticleInCollectedVolumeExtendedPropertiesStep public class ArticleInCollectedVolumeExtendedPropertiesStep
extends AbstractPublicationExtendedPropertiesStep<ArticleInCollectedVolumeItem, ArticleInCollectedVolume> { extends AbstractPublicationExtendedPropertiesStep<ArticleInCollectedVolumeItem, ArticleInCollectedVolume> {

View File

@ -0,0 +1,161 @@
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.ArticleInJournal;
import org.scientificcms.publications.contenttypes.ArticleInJournalItem;
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 + "articleinjournal-extendedproperties")
@Controller
@MvcAuthoringStepDef(
bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.extendedproperties.description",
labelKey = "authoringsteps.extendedproperties.label",
supportedDocumentType = ArticleInJournalItem.class
)
public class ArticleInJournalExtendedPropertiesStep
extends AbstractPublicationExtendedPropertiesStep<ArticleInJournalItem, ArticleInJournal> {
@Override
public Class<ArticleInJournalExtendedPropertiesStep> getStepClass() {
return ArticleInJournalExtendedPropertiesStep.class;
}
@Override
protected Class<ArticleInJournal> getPublicationClass() {
return ArticleInJournal.class;
}
@Override
public String getEditStepUrlFragment() {
return "articleinjournal-extendedproperties";
}
@Override
protected String getStepTemplatePath() {
return "org/scientificcms/contenttypes/ui/articleinjournal/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
);
}
}

View File

@ -0,0 +1,54 @@
package org.scientificcms.publications.ui.contenttypes;
import org.libreccm.l10n.GlobalizationHelper;
import org.scientificcms.publications.ArticleInJournal;
import org.scientificcms.publications.contenttypes.ArticleInJournalItem;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@RequestScoped
@Named("SciPublicationsArticleInJournalCreateStep")
public class ArticleInJournalItemCreateStep
extends AbstractPublicationItemCreateStep<ArticleInJournalItem, ArticleInJournal> {
@Inject
private GlobalizationHelper globalizationHelper;
@Override
public String getDocumentType() {
return ArticleInJournalItem.class.getName();
}
@Override
public String getDescription() {
return globalizationHelper
.getLocalizedTextsUtil(getBundle())
.getText("b");
}
@Override
public String showCreateStep() {
return "org/scientificcms/contenttypes/ui/articleinjournal/create-articleinjournal.xhtml";
}
@Override
public Class<ArticleInJournalItem> getPublicationItemClass() {
return ArticleInJournalItem.class;
}
@Override
public ArticleInJournal createPublication() {
return new ArticleInJournal();
}
@Override
public String getEditStepName() {
return ArticleInJournalPropertiesStep.EDIT_STEP_URL_FRAGMENT;
}
}

View File

@ -0,0 +1,526 @@
package org.scientificcms.publications.ui.contenttypes;
import org.libreccm.api.Identifier;
import org.libreccm.api.IdentifierParser;
import org.libreccm.security.AuthorizationRequired;
import org.librecms.ui.contentsections.ContentSectionNotFoundException;
import org.librecms.ui.contentsections.ItemPermissionChecker;
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.ArticleInJournal;
import org.scientificcms.publications.ArticleInJournalManager;
import org.scientificcms.publications.Journal;
import org.scientificcms.publications.JournalRepository;
import org.scientificcms.publications.contenttypes.ArticleInJournalItem;
import org.scientificcms.publications.ui.SciPublicationsUiConstants;
import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Optional;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.mvc.Controller;
import javax.mvc.Models;
import javax.transaction.Transactional;
import javax.ws.rs.DefaultValue;
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
+ ArticleInJournalPropertiesStep.EDIT_STEP_URL_FRAGMENT
)
@Controller
@MvcAuthoringStepDef(
bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.basicproperties.description",
labelKey = "authoringsteps.basicproperties.label",
supportedDocumentType = ArticleInJournalItem.class
)
public class ArticleInJournalPropertiesStep
extends AbstractPublicationPropertiesStep<ArticleInJournalItem, ArticleInJournal> {
public static final String EDIT_STEP_URL_FRAGMENT
= "articleinjournal-basicproperties";
@Inject
private ArticleInJournalManager articleManager;
@Inject
private DocumentUi documentUi;
@Inject
private IdentifierParser identifierParser;
@Inject
private ItemPermissionChecker itemPermissionChecker;
@Inject
private JournalRepository journalRepository;
@Inject
private Models models;
@Inject
private ArticleInJournalPropertiesStepModel propertiesStepModel;
@Inject
private SciPublicationsUiMessageBundle messageBundle;
@Override
public Class<ArticleInJournalPropertiesStep> getStepClass() {
return ArticleInJournalPropertiesStep.class;
}
@Override
public String getEditStepUrlFragment() {
return EDIT_STEP_URL_FRAGMENT;
}
@Override
protected String getStepTemplatePath() {
return "org/scientificcms/contenttypes/ui/articleinjournal/edit-articleinjournal.xhtml";
}
@Override
public Class<ArticleInJournal> getPublicationClass() {
return ArticleInJournal.class;
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
protected void init() throws ContentSectionNotFoundException,
DocumentNotFoundException {
super.init();
propertiesStepModel.setEndPage(getPublication().getEndPage());
propertiesStepModel.setIssue(getPublication().getIssue());
propertiesStepModel.setJournalTitle(
Optional
.ofNullable(getPublication().getJournal())
.map(Journal::getTitle)
.orElse(null)
);
propertiesStepModel.setPublicationDate(
Optional
.ofNullable(getPublication().getPublicationDate())
.map(date -> DateTimeFormatter.ISO_DATE.format(date))
.orElse(null)
);
propertiesStepModel.setStartPage(getPublication().getStartPage());
propertiesStepModel.setVolume(getPublication().getVolume());
}
@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("/name")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String updateName(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@FormParam("name") @DefaultValue("")
final String name
) {
return super.updateName(sectionIdentifier, documentPath, name);
}
@POST
@Path("/title/@add")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String addTitle(
@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.addTitle(
sectionIdentifier,
documentPath,
localeParam,
value
);
}
@POST
@Path("/title/@edit/{locale}")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String editTitle(
@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.editTitle(
sectionIdentifier,
documentPath,
localeParam,
value
);
}
@POST
@Path("/title/@remove/{locale}")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String removeTitle(
@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.removeTitle(sectionIdentifier, documentPath, localeParam);
}
@POST
@Path("/shortdescription/@add")
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String addShortDescription(
@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.addShortDescription(
sectionIdentifier,
documentPath,
localeParam,
value
);
}
@POST
@Path("/shortdescription/@edit/{locale}")
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String editShortDescription(
@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.editShortDescription(
sectionIdentifier,
documentPath,
localeParam,
value
);
}
@POST
@Path("/shortdescription/@remove/{locale}")
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String removeShortDescription(
@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.removeShortDescription(
sectionIdentifier,
documentPath,
localeParam
);
}
@POST
@Path("/authors")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String addAuthor(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@FormParam("authorIdentifier")
final String authorIdentifier,
@FormParam("editor")
final String editorParam
) {
return super.addAuthor(
sectionIdentifier,
documentPath,
authorIdentifier,
editorParam
);
}
@POST
@Path("/authors/{authorshipUuid}")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String editAuthorship(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@PathParam("authorshipUuid")
final String authorshipUuid,
@FormParam("editor")
final String editorParam
) {
return super.editAuthorship(
sectionIdentifier,
documentPath,
authorshipUuid,
editorParam
);
}
@POST
@Path("/authors/{authorshipUuid}/remove")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String removeAuthorship(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@PathParam("authorshipUuid")
final String authorshipUuid
) {
return super.removeAuthorship(
sectionIdentifier,
documentPath,
authorshipUuid
);
}
@POST
@Path("/journal")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String setJournal(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM)
final String documentPath,
@FormParam("journalIdentifier")
final String journalIdentifer
) {
try {
init();
} catch (ContentSectionNotFoundException ex) {
return ex.showErrorMessage();
} catch (DocumentNotFoundException ex) {
return ex.showErrorMessage();
}
if (itemPermissionChecker.canEditItem(getDocument())) {
final Identifier identifier = identifierParser.parseIdentifier(
journalIdentifer
);
final Optional<Journal> journalResult;
switch (identifier.getType()) {
case ID:
journalResult = journalRepository.findById(
Long.parseLong(
identifier.getIdentifier()
)
);
break;
case UUID:
journalResult = journalRepository.findByUuid(
identifier.getIdentifier()
);
break;
default:
journalResult = Optional.empty();
break;
}
if (journalResult.isEmpty()) {
return showJournalNotFound(
sectionIdentifier,
documentPath,
journalIdentifer
);
}
final Journal journal = journalResult.get();
articleManager.setJournal(getPublication(), journal);
return buildRedirectPathForStep();
} else {
return documentUi.showAccessDenied(
getContentSection(),
getDocument(),
getLabel()
);
}
}
@POST
@Path("/journal/remove")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String removeCollectedVolume(
@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(getDocument())) {
articleManager.unsetJournal(getPublication());
return buildRedirectPathForStep();
} else {
return documentUi.showAccessDenied(
getContentSection(),
getDocument(),
getLabel()
);
}
}
@POST
@Path("/properties")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String updateProperties(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@FormParam("yearOfPublication")
final String yearOfPublicationParam,
@FormParam("endPage")
final String endPageParam,
@FormParam("issue")
final String issue,
@FormParam("publicationDate")
final String publicationDateParam,
@FormParam("startPage")
final String startPageParam,
@FormParam("volume")
final String volumeParam
) {
try {
init();
} catch (ContentSectionNotFoundException ex) {
return ex.showErrorMessage();
} catch (DocumentNotFoundException ex) {
return ex.showErrorMessage();
}
if (itemPermissionChecker.canEditItem(getDocument())) {
updateProperties(
sectionIdentifier,
documentPath,
yearOfPublicationParam
);
if (endPageParam.matches("\\d*")) {
getPublication().setEndPage(Integer.parseInt(endPageParam));
}
getPublication().setIssue(issue);
final LocalDate publicationDate;
try {
publicationDate = LocalDate.parse(
publicationDateParam,
DateTimeFormatter.ISO_DATE
);
} catch (DateTimeParseException ex) {
return showInvalidPublicationDate(
sectionIdentifier,
documentPath,
publicationDateParam
);
}
if (startPageParam.matches("\\d*")) {
getPublication().setStartPage(Integer.parseInt(startPageParam));
}
if (volumeParam.matches("\\d*")) {
getPublication().setVolume(Integer.parseInt(volumeParam));
}
return buildRedirectPathForStep();
} else {
return documentUi.showAccessDenied(
getContentSection(),
getDocument(),
messageBundle.getMessage("publication.edit.denied")
);
}
}
private String showJournalNotFound(
final String sectionIdentifier,
final String documentPath,
final String journalIdentifier
) {
models.put("journalNotFound", journalIdentifier);
return showStep(sectionIdentifier, documentPath);
}
private String showInvalidPublicationDate(
final String sectionIdentifier,
final String documentPath,
final String publicationDateParam
) {
models.put("invalidPublicationDate", publicationDateParam);
return showStep(sectionIdentifier, documentPath);
}
}

View File

@ -0,0 +1,74 @@
package org.scientificcms.publications.ui.contenttypes;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@RequestScoped
@Named("SciCmsArticleInJournalPropertiesStepModel")
public class ArticleInJournalPropertiesStepModel {
private String journalTitle;
private Integer volume;
private String issue;
private Integer startPage;
private Integer endPage;
private String publicationDate;
public String getJournalTitle() {
return journalTitle;
}
public void setJournalTitle(final String journalTitle) {
this.journalTitle = journalTitle;
}
public Integer getVolume() {
return volume;
}
public void setVolume(final Integer volume) {
this.volume = volume;
}
public String getIssue() {
return issue;
}
public void setIssue(final String issue) {
this.issue = issue;
}
public Integer getStartPage() {
return startPage;
}
public void setStartPage(final Integer startPage) {
this.startPage = startPage;
}
public Integer getEndPage() {
return endPage;
}
public void setEndPage(final Integer endPage) {
this.endPage = endPage;
}
public String getPublicationDate() {
return publicationDate;
}
public void setPublicationDate(final String publicationDate) {
this.publicationDate = publicationDate;
}
}

View File

@ -18,6 +18,8 @@ public class PublicationAuthoringSteps implements MvcAuthoringSteps {
return Set.of( return Set.of(
ArticleInCollectedVolumePropertiesStep.class, ArticleInCollectedVolumePropertiesStep.class,
ArticleInCollectedVolumeExtendedPropertiesStep.class, ArticleInCollectedVolumeExtendedPropertiesStep.class,
ArticleInJournalPropertiesStep.class,
ArticleInJournalExtendedPropertiesStep.class,
CollectedVolumePropertiesStep.class, CollectedVolumePropertiesStep.class,
CollectedVolumeExtendedPropertiesStep.class, CollectedVolumeExtendedPropertiesStep.class,
InProceedingsPropertiesStep.class, InProceedingsPropertiesStep.class,

View File

@ -536,3 +536,4 @@ basicproperties.errors.paper_not_found=The selected paper {0} was not found.
basicproperties.errors.paper_not_part_of_proceedings=The paper {0} was selected for removal from these Proceeedings, but is not part of these Proceedings. basicproperties.errors.paper_not_part_of_proceedings=The paper {0} was selected for removal from these Proceeedings, but is not part of these Proceedings.
basicproperties.errors.organizer_not_found=The selected organizer {0} was found. basicproperties.errors.organizer_not_found=The selected organizer {0} was found.
inproceedings.basicproperties.errors.proceedings_not_found=The selected Proceedings {0} were not found. inproceedings.basicproperties.errors.proceedings_not_found=The selected Proceedings {0} were not found.
articleinjournal.createstep.description=Create a new article in a journal.

View File

@ -536,3 +536,4 @@ basicproperties.errors.paper_not_found=Der ausgew\u00e4hlte Beitrag {0} wurde ni
basicproperties.errors.paper_not_part_of_proceedings=Der Beitrag {0} soll aus diesem Tagungsband entfernt werden, ist aber nicht Teil dieses Tagungsbandes. basicproperties.errors.paper_not_part_of_proceedings=Der Beitrag {0} soll aus diesem Tagungsband entfernt werden, ist aber nicht Teil dieses Tagungsbandes.
basicproperties.errors.organizer_not_found=Der ausgew\u00e4hlte Organisator wurde nicht gefunden. basicproperties.errors.organizer_not_found=Der ausgew\u00e4hlte Organisator wurde nicht gefunden.
inproceedings.basicproperties.errors.proceedings_not_found=Der ausgew\u00e4hlte Tagungsband {0} wurde nicht gefunden. inproceedings.basicproperties.errors.proceedings_not_found=Der ausgew\u00e4hlte Tagungsband {0} wurde nicht gefunden.
articleinjournal.createstep.description=Einen neuen Zeitschriftenartikel anlegen.