Bugfixes for editing publications

pull/1/head
Jens Pelzetter 2022-06-28 20:42:55 +02:00
parent e9d983247e
commit 30a01f2df3
14 changed files with 405 additions and 126 deletions

View File

@ -11,9 +11,14 @@ import org.librecms.assets.Person;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Stream;
import javax.enterprise.context.RequestScoped;
import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import javax.transaction.Transactional;
/**
@ -56,14 +61,21 @@ public class PublicationRepository
public <T extends Publication> Optional<T> findByIdAndType(
final long publicationId, final Class<T> type
) {
try {
return Optional.of(
getEntityManager()
.createNamedQuery("Publication.findByIdAndType", type)
.setParameter("publicationId", publicationId)
.setParameter("type", type)
.getSingleResult()
final CriteriaBuilder criteriaBuilder = getEntityManager()
.getCriteriaBuilder();
final CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(type);
final Root<T> from = criteriaQuery.from(type);
criteriaQuery.where(
criteriaBuilder.equal(from.get("publicationId"), publicationId)
);
final TypedQuery<T> query = getEntityManager().createQuery(
criteriaQuery
);
try {
return Optional.of(query.getSingleResult());
} catch (NoResultException ex) {
return Optional.empty();
}

View File

@ -31,17 +31,21 @@ import static org.scientificcms.publications.SciPublicationsConstants.*;
@NamedQueries({
@NamedQuery(
name = "PublicationItem.findForPublication",
query = "SELECT i FROM PublicationItem i WHERE i.publication = :publication"
query
= "SELECT i FROM PublicationItem i WHERE i.publication = :publication"
)
})
public class PublicationItem<T extends Publication> extends ContentItem {
private static final long serialVersionUID = 1L;
@OneToOne(cascade = {CascadeType.DETACH,
@OneToOne(
cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH},
CascadeType.REFRESH
},
fetch = FetchType.LAZY,
targetEntity = Publication.class
)

View File

@ -97,8 +97,23 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
return (T) getDocument();
}
protected abstract Class<P> getPublicationClass();
protected P getPublication() {
return getPublicationItem().getPublication();
final long publicationId = getPublicationItem()
.getPublication()
.getPublicationId();
return publicationRepo
.findByIdAndType(publicationId, getPublicationClass())
.orElseThrow(
() -> new IllegalArgumentException(
String.format(
"PublicationItem %s has no associated publication",
getPublicationItem().getUuid()
)
)
);
}
@Override
@ -156,7 +171,7 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
.collect(Collectors.toList())
);
propertiesStepModel.setShortDecriptionValues(
propertiesStepModel.setShortDescriptionValues(
publication
.getShortDescription()
.getValues()
@ -191,9 +206,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
);
}
@GET
@Path("/")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String showStep(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -229,9 +241,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
*
* @return A redirect to this authoring step.
*/
@POST
@Path("/name")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String updateName(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -271,9 +280,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
}
}
@POST()
@Path("/properties")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String updateProperties(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -294,7 +300,7 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
if (itemPermissionChecker.canEditItem(getDocument())) {
final Integer yearOfPublication = Optional
.ofNullable(yearOfPublicationParam)
.filter(param -> param.isBlank())
.filter(param -> !param.isBlank())
.filter(param -> param.matches("\\d*"))
.map(param -> Integer.parseInt(param))
.orElse(null);
@ -324,9 +330,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
*
* @return A redirect to this authoring step.
*/
@POST
@Path("/title/@add")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String addTitle(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -372,9 +375,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
*
* @return A redirect to this authoring step.
*/
@POST
@Path("/title/@edit/{locale}")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String editTitle(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -419,9 +419,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
*
* @return A redirect to this authoring step.
*/
@POST
@Path("/title/@remove/{locale}")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
public String removeTitle(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -457,8 +454,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
}
}
@POST
@Path("/shortdescription/add")
@Transactional(Transactional.TxType.REQUIRED)
public String addShortDescription(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -491,8 +486,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
}
}
@POST
@Path("/shortdescription/add/{locale}")
@Transactional(Transactional.TxType.REQUIRED)
public String editShortDescription(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -525,8 +518,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
}
}
@POST
@Path("/shortdescription/remove/{locale}")
@Transactional(Transactional.TxType.REQUIRED)
public String removeShortDescription(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
@ -558,10 +549,7 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
}
}
@POST
@Path("/authors")
@AuthorizationRequired
@Transactional
@Transactional(Transactional.TxType.REQUIRED)
public String addAuthor(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@ -633,10 +621,7 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
}
}
@POST
@Path("/authors/{authorshipUuid}")
@AuthorizationRequired
@Transactional
@Transactional(Transactional.TxType.REQUIRED)
public String editAuthorship(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@ -688,10 +673,7 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
}
}
@POST
@Path("/authors/{authorshipUuid}/remove")
@AuthorizationRequired
@Transactional
@Transactional(Transactional.TxType.REQUIRED)
public String removeAuthorship(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,

View File

@ -2,6 +2,7 @@ package org.scientificcms.publications.ui.contenttypes;
import org.libreccm.api.Identifier;
import org.libreccm.api.IdentifierParser;
import org.libreccm.security.AuthorizationRequired;
import org.librecms.contentsection.Asset;
import org.librecms.contentsection.AssetRepository;
import org.librecms.ui.contentsections.ContentSectionNotFoundException;
@ -13,7 +14,6 @@ import org.scientificcms.publications.PublicationWithPublisher;
import org.scientificcms.publications.Publisher;
import org.scientificcms.publications.PublisherManager;
import org.scientificcms.publications.assets.PublisherAsset;
import org.scientificcms.publications.contenttypes.PublicationItem;
import org.scientificcms.publications.contenttypes.PublicationWithPublisherItem;
import java.util.Optional;
@ -22,6 +22,8 @@ import javax.inject.Inject;
import javax.mvc.Models;
import javax.transaction.Transactional;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
/**
@ -60,7 +62,7 @@ public abstract class AbstractPublicationWithPublisherPropertiesStep<T extends P
DocumentNotFoundException {
super.init();
if (!(getDocument() instanceof PublicationItem)) {
if (!(getDocument() instanceof PublicationWithPublisherItem)) {
throw new DocumentNotFoundException(
documentUi.showDocumentNotFound(
getContentSection(),
@ -70,13 +72,25 @@ public abstract class AbstractPublicationWithPublisherPropertiesStep<T extends P
}
final P publication = getPublication();
final Publisher publisher = publication.getPublisher();
final Optional<Publisher> publisherResult = Optional.ofNullable(
publication.getPublisher()
);
propertiesStepModel.setPublisherUuid(publication.getUuid());
propertiesStepModel.setPublisherName(publisher.getName());
propertiesStepModel.setPublisherPlace(publisher.getPlace());
publisherResult.ifPresent(
publisher -> propertiesStepModel.setPublisherName(
publisher.getName()
)
);
publisherResult.ifPresent(
publisher -> propertiesStepModel.setPublisherPlace(
publisher.getPlace()
)
);
}
@Transactional(Transactional.TxType.REQUIRED)
public String setPublisher(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@ -150,6 +164,7 @@ public abstract class AbstractPublicationWithPublisherPropertiesStep<T extends P
}
}
@Transactional(Transactional.TxType.REQUIRED)
public String removePublisher(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,

View File

@ -3,8 +3,8 @@ package org.scientificcms.publications.ui.contenttypes;
import org.librecms.ui.contentsections.documents.MvcAuthoringStepDef;
import org.librecms.ui.contentsections.documents.MvcAuthoringSteps;
import org.scientificcms.publications.Monograph;
import org.scientificcms.publications.SciPublicationsConstants;
import org.scientificcms.publications.contenttypes.MonographItem;
import org.scientificcms.publications.ui.SciPublicationsUiConstants;
import javax.enterprise.context.RequestScoped;
import javax.mvc.Controller;
@ -18,7 +18,7 @@ import javax.ws.rs.Path;
@Path(MvcAuthoringSteps.PATH_PREFIX + "monograph-extendedproperties")
@Controller
@MvcAuthoringStepDef(
bundle = SciPublicationsConstants.BUNDLE,
bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.extendedproperties.description",
labelKey = "authoringsteps.extendedproperties.label",
supportedDocumentType = MonographItem.class

View File

@ -33,7 +33,7 @@ public class MonographItemCreateStep extends AbstractPublicationItemCreateStep<M
@Override
public String showCreateStep() {
return "org/scientificccms/contenttypes/ui/monograph/create-monograph.xhtml";
return "org/scientificcms/contenttypes/ui/monograph/create-monograph.xhtml";
}
@Override

View File

@ -10,6 +10,7 @@ import org.librecms.ui.contentsections.documents.MvcAuthoringSteps;
import org.librecms.ui.contenttypes.event.EventStepsConstants;
import org.scientificcms.publications.Monograph;
import org.scientificcms.publications.contenttypes.MonographItem;
import org.scientificcms.publications.ui.SciPublicationsUiConstants;
import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle;
import java.util.Optional;
@ -18,7 +19,9 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.mvc.Controller;
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;
@ -31,7 +34,7 @@ import javax.ws.rs.PathParam;
@Path(MvcAuthoringSteps.PATH_PREFIX + "monograph-basicproperties")
@Controller
@MvcAuthoringStepDef(
bundle = EventStepsConstants.BUNDLE,
bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.basicproperties.description",
labelKey = "authoringsteps.basicproperties.label",
supportedDocumentType = MonographItem.class
@ -60,6 +63,11 @@ public class MonographPropertiesStep extends AbstractPublicationWithPublisherPro
return "monograph-basicproperties";
}
@Override
public Class<Monograph> getPublicationClass() {
return Monograph.class;
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
protected void init() throws ContentSectionNotFoundException,
@ -67,13 +75,262 @@ public class MonographPropertiesStep extends AbstractPublicationWithPublisherPro
super.init();
propertiesStepModel.setReviewed(
getPublication().getReviewed()
Optional
.ofNullable(getPublication().getReviewed())
.orElse(false)
);
}
@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
@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
@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
@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("/publisher")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String setPublisher(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath,
@FormParam("publisherIdentifier")
final String publisherIdentifier
) {
return super.setPublisher(
sectionIdentifier,
documentPath,
publisherIdentifier
);
}
@POST
@Path("/publisher/@remove")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@Override
public String removePublisher(
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
final String sectionIdentifier,
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
final String documentPath
) {
return super.removePublisher(sectionIdentifier, documentPath);
}
@Override
protected String getStepTemplatePath() {
return "/org/scientificcms/contenttypes/monograph/ui/edit-monograph.xhtml";
return "org/scientificcms/contenttypes/ui/monograph/edit-monograph.xhtml";
}
@POST()
@ -108,7 +365,7 @@ public class MonographPropertiesStep extends AbstractPublicationWithPublisherPro
getPublication().setReviewed(
Optional
.ofNullable(reviewedParam)
.map(param -> "true".equals(param) || "on".equals("param"))
.map(param -> "true".equals(param) || "on".equals(param))
.orElse(false)
);

View File

@ -27,9 +27,9 @@ public class PublicationPropertiesStepModel {
private List<String> unusedTitleLocales;
private int yearOfPublication;
private Integer yearOfPublication;
private Map<String, String> shortDecriptionValues;
private Map<String, String> shortDescriptionValues;
private List<String> unusedShortDescriptionLocales;
@ -69,22 +69,22 @@ public class PublicationPropertiesStepModel {
this.unusedTitleLocales = new ArrayList<>(unusedTitleLocales);
}
public int getYearOfPublication() {
public Integer getYearOfPublication() {
return yearOfPublication;
}
public void setYearOfPublication(final int yearOfPublication) {
public void setYearOfPublication(final Integer yearOfPublication) {
this.yearOfPublication = yearOfPublication;
}
public Map<String, String> getShortDecriptionValues() {
return Collections.unmodifiableMap(shortDecriptionValues);
public Map<String, String> getShortDescriptionValues() {
return Collections.unmodifiableMap(shortDescriptionValues);
}
public void setShortDecriptionValues(
final Map<String, String> shortDecriptionValues
public void setShortDescriptionValues(
final Map<String, String> shortDescriptionValues
) {
this.shortDecriptionValues = new HashMap<>(shortDecriptionValues);
this.shortDescriptionValues = new HashMap<>(shortDescriptionValues);
}
public List<String> getUnusedShortDescriptionLocales() {

View File

@ -1,5 +1,7 @@
package org.scientificcms.publications.ui.contenttypes;
import org.scientificcms.publications.assets.PublisherAsset;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@ -17,6 +19,8 @@ public class PublicationWithPublisherPropertiesStepModel {
private String publisherPlace;
public String getPublisherUuid() {
return publisherUuid;
}
@ -41,4 +45,8 @@ public class PublicationWithPublisherPropertiesStepModel {
this.publisherPlace = publisherPlace;
}
public String getPublisherType() {
return PublisherAsset.class.getName();
}
}

View File

@ -19,8 +19,7 @@
</c:forEach>
<form action="#{mvc.basePath}/#{contentSection}/documents/#{folderPath}@create/#{documentType}"
method="post
">
method="post">
<bootstrap:formGroupText
help="#{SciPublicationsUiMessageBundle['createstep.name.help']}"
inputId="name"

View File

@ -63,7 +63,7 @@
id="name-edit-dialog"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/name"
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/name"
class="modal-content"
method="post">
<div class="modal-header">
@ -86,7 +86,7 @@
name="name"
pattern="^([a-zA-Z0-9_-]*)$"
required="true"
value="#{SciProjectPropertiesStep.name}"/>
value="#{SciCmsPublicationPropertiesStepModel.name}"/>
</div>
<div class="modal-footer">
<button class="btn btn-warning"
@ -113,14 +113,14 @@
addDialogTitle="#{SciPublicationsUiMessageBundle['basicproperties.title.header']}"
addDialogValueHelp="#{SciPublicationsUiMessageBundle['basicproperties.title.add.value.help']}"
addDialogValueLabel="#{SciPublicationsUiMessageBundle['basicproperties.title.add.value.label']}"
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/title/@add"
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/title/@add"
editButtonLabel="#{SciPublicationsUiMessageBundle['basicproperties.title.edit']}"
editDialogCancelLabel="#{SciPublicationsUiMessageBundle['basicproperties.title.edit.cancel']}"
editDialogSubmitLabel="#{SciPublicationsUiMessageBundle['basicproperties.title.edit.submit']}"
editDialogTitle="#{SciPublicationsUiMessageBundle['basicproperties.title.edit.header']}"
editDialogValueHelp="#{SciPublicationsUiMessageBundle['basicproperties.title.edit.value.help']}"
editDialogValueLabel="#{SciPublicationsUiMessageBundle['basicproperties.title.edit.value.label']}"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/title/@edit"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/title/@edit"
editorId="title-editor"
hasUnusedLocales="#{!SciCmsPublicationPropertiesStepModel.unusedTitleLocales.isEmpty()}"
headingLevel="3"
@ -131,7 +131,7 @@
removeDialogSubmitLabel="#{SciPublicationsUiMessageBundle['basicproperties.title.remove.submit']}"
removeDialogText="#{SciPublicationsUiMessageBundle['basicproperties.title.remove.text']}"
removeDialogTitle="#{SciPublicationsUiMessageBundle['basicproperties.title.remove.header']}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/title/@remove"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/title/@remove"
title="#{SciPublicationsUiMessageBundle['basicproperties.title.header']}"
unusedLocales="#{SciCmsPublicationPropertiesStepModel.unusedTitleLocales}"
values="#{SciCmsPublicationPropertiesStepModel.titleValues}"
@ -152,7 +152,7 @@
id="properties-edit-dialog"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/properties"
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/properties"
class="modal-content"
method="post">
<div class="modal-header">
@ -210,16 +210,16 @@
addDialogTitle="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.header']}"
addDialogValueHelp="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.add.value.help']}"
addDialogValueLabel="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.add.value.label']}"
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/shortdescription/@add"
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/shortdescription/@add"
editButtonLabel="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.edit']}"
editDialogCancelLabel="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.edit.cancel']}"
editDialogSubmitLabel="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.edit.submit']}"
editDialogTitle="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.edit.header']}"
editDialogValueHelp="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.edit.value.help']}"
editDialogValueLabel="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.edit.value.label']}"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/shortdescription/@edit"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/shortdescription/@edit"
editorId="shortdescription-editor"
hasUnusedLocales="#{!SciCmsPublicationPropertiesStepModel.unusedTitleLocales.isEmpty()}"
hasUnusedLocales="#{!SciCmsPublicationPropertiesStepModel.unusedShortDescriptionLocales.isEmpty()}"
headingLevel="3"
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
readOnly="#{!CmsSelectedDocumentModel.canEdit}"
@ -228,11 +228,11 @@
removeDialogSubmitLabel="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.remove.submit']}"
removeDialogText="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.remove.text']}"
removeDialogTitle="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.remove.header']}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/shortdescription/@remove"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/shortdescription/@remove"
title="#{SciPublicationsUiMessageBundle['basicproperties.shortdescription.header']}"
unusedLocales="#{SciCmsPublicationPropertiesStepModel.unusedTitleLocales}"
unusedLocales="#{SciCmsPublicationPropertiesStepModel.unusedShortDescriptionLocales}"
useTextarea="true"
values="#{SciCmsPublicationPropertiesStepModel.shortdescriptionValues}"
values="#{SciCmsPublicationPropertiesStepModel.shortDescriptionValues}"
/>
<c:if test="#{CmsSelectedDocumentModel.canEdit}">
@ -276,7 +276,7 @@
<span>#{SciPublicationsUiMessageBundle['authors.order.save']}</span>
</button>
<table id="authors-table"
data-saveUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}-authors/save-order">
data-saveUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}-authors/save-order">
<thead>
<tr>
<th>#{SciPublicationsUiMessageBundle['basicproperties.authors.table.name']}</th>
@ -328,7 +328,7 @@
id="authorship-edit-#{author.authorshipUuid}"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/authors/#{author.authorshipUuid}"
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/authors/#{author.authorshipUuid}"
class="modal-content"
method="post">
<div class="modal-header">
@ -369,7 +369,7 @@
</td>
<td>
<libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationsPropertiesStep.editStepUrlFragment}/authors/#{author.authorshipUuid}/remove"
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationPropertiesStepModel.editStepUrlFragment}/authors/#{author.authorshipUuid}/remove"
buttonText="#{SciPublicationsUiMessageBundle['basicproperties.authors.remove.label']}"
cancelLabel="#{SciPublicationsUiMessageBundle['basicproperties.authors.remove.cancel']}"
confirmLabel="#{SciPublicationsUiMessageBundle['basicproperties.authors.remove.confirm']}"

View File

@ -1,2 +1,2 @@
label = Monograph
descripition = A monograph
description = A monograph

View File

@ -0,0 +1,2 @@
label = Monographie
description = Eine Monographie