Bugfixes for authoring steps of Proceedings and InProceedings

pull/1/head
Jens Pelzetter 2022-08-18 19:59:21 +02:00
parent c620cba76e
commit eb9cd0b4ea
10 changed files with 106 additions and 75 deletions

View File

@ -45,28 +45,32 @@ public class ProceedingsManager {
@Transactional(Transactional.TxType.REQUIRED) @Transactional(Transactional.TxType.REQUIRED)
public void removeArticleFromProceedings( public void removeArticleFromProceedings(
final InProceedings paper, final InProceedings paper,
final Proceedings collectedVolume final Proceedings proceedings
) { ) {
Objects.requireNonNull(paper); Objects.requireNonNull(paper);
Objects.requireNonNull(collectedVolume); Objects.requireNonNull(proceedings);
if (!collectedVolume.equals(paper.getProceedings()) if (paper.getProceedings() == null) {
|| !collectedVolume.getPapers().contains(paper)) { return;
}
if (!proceedings.getUuid().equals(paper.getProceedings().getUuid())
|| !proceedings.getPapers().contains(paper)) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
String.format( String.format(
"The provided paper %s is not a paper of the " "The provided paper %s is not a paper of the "
+ "provided proceedings %s.", + "provided proceedings %s.",
paper.getUuid(), paper.getUuid(),
collectedVolume.getUuid() proceedings.getUuid()
) )
); );
} }
paper.setProceedings(null); paper.setProceedings(null);
collectedVolume.removePaper(paper); proceedings.removePaper(paper);
publicationRepository.save(paper); publicationRepository.save(paper);
publicationRepository.save(collectedVolume); publicationRepository.save(proceedings);
} }
} }

View File

@ -30,7 +30,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 = InProceedingsItem.class
) )
public class InProceedingsExtendedPropertiesStep public class InProceedingsExtendedPropertiesStep
extends AbstractPublicationExtendedPropertiesStep<InProceedingsItem, InProceedings> { extends AbstractPublicationExtendedPropertiesStep<InProceedingsItem, InProceedings> {

View File

@ -47,7 +47,7 @@ import javax.ws.rs.PathParam;
bundle = SciPublicationsUiConstants.BUNDLE, bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.basicproperties.description", descriptionKey = "authoringsteps.basicproperties.description",
labelKey = "authoringsteps.basicproperties.label", labelKey = "authoringsteps.basicproperties.label",
supportedDocumentType = ArticleInCollectedVolumeItem.class supportedDocumentType = InProceedingsItem.class
) )
public class InProceedingsPropertiesStep public class InProceedingsPropertiesStep
extends AbstractPublicationPropertiesStep<InProceedingsItem, InProceedings> { extends AbstractPublicationPropertiesStep<InProceedingsItem, InProceedings> {

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 = CollectedVolumeItem.class supportedDocumentType = ProceedingsItem.class
) )
public class ProceedingsExtendedPropertiesStep extends AbstractPublicationWithPublisherExtendedPropertiesStep<ProceedingsItem, Proceedings> { public class ProceedingsExtendedPropertiesStep extends AbstractPublicationWithPublisherExtendedPropertiesStep<ProceedingsItem, Proceedings> {

View File

@ -423,7 +423,7 @@ public class ProceedingsPropertiesStep
final String placeOfConference, final String placeOfConference,
@FormParam("startDate") @FormParam("startDate")
final String startDateParam, final String startDateParam,
@FormParam("endDateParam") @FormParam("endDate")
final String endDateParam final String endDateParam
) { ) {
super.updateProperties( super.updateProperties(

View File

@ -5,7 +5,7 @@
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm" xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms" xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition template="/WEB-INF/views/org/scientificcms/contenttypes/ui/edit-publication-extented-properties.xhtml"> <ui:composition template="/WEB-INF/views/org/scientificcms/contenttypes/ui/edit-publication-extended-properties.xhtml">
<ui:param name="authoringStep" <ui:param name="authoringStep"
value="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@inproceedings-extendedproperties" /> value="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@inproceedings-extendedproperties" />

View File

@ -78,7 +78,8 @@
#{SciCmsInProceedingsPropertiesStepModel.proceedingsTitle} #{SciCmsInProceedingsPropertiesStepModel.proceedingsTitle}
</p> </p>
</c:otherwise> </c:otherwise>
<c:if test="#{CmsSelectedDocumentModel.canEdit and SciCmsInProceedingsPropertiesStepModel.proceedingsTitle == null}"> </c:choose>
<c:if test="#{CmsSelectedDocumentModel.canEdit and SciCmsInProceedingsPropertiesStepModel.proceedingsTitle != null}">
<libreccm:deleteDialog <libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@inproceedings-basicproperties/proceedings/remove" actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@inproceedings-basicproperties/proceedings/remove"
buttonText="#{SciPublicationsUiMessageBundle['inproceedings.basicproperties.proceedings.remove']}" buttonText="#{SciPublicationsUiMessageBundle['inproceedings.basicproperties.proceedings.remove']}"
@ -86,10 +87,9 @@
confirmLabel="#{SciPublicationsUiMessageBundle['inproceedings.basicproperties.proceedings.remove.confirm']}" confirmLabel="#{SciPublicationsUiMessageBundle['inproceedings.basicproperties.proceedings.remove.confirm']}"
dialogId="remove-proceedings-dialog" dialogId="remove-proceedings-dialog"
dialogTitle="#{SciPublicationsUiMessageBundle['inproceedings.basicproperties.proceedings.remove.title']}" dialogTitle="#{SciPublicationsUiMessageBundle['inproceedings.basicproperties.proceedings.remove.title']}"
message="#{SciPublicationsUiMessageBundle.getMessage('inproceedings.basicproperties.proceedings.remove.message', [CmsSelectedDocumentModel.name, SciCmsInProceedingsPropertiesStepModel.proceedingsTitle])}" message="#{SciPublicationsUiMessageBundle.getMessage('inproceedings.basicproperties.proceedings.remove.message', [CmsSelectedDocumentModel.itemName, SciCmsInProceedingsPropertiesStepModel.proceedingsTitle])}"
/> />
</c:if> </c:if>
</c:choose>
</ui:define> </ui:define>

View File

@ -79,37 +79,7 @@
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<h3 class="mt-5">#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.header']}</h3> <h4 class="mt-5">#{SciPublicationsUiMessageBundle['proceedings.basicproperties.organizer.header']}</h4>
<bootstrap:formGroupText
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.name.help']}"
inputId="name-of-conference"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.name.label']}"
name="nameOfConference"
/>
<bootstrap:formGroupText
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.place.help']}"
inputId="place-of-conference"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.place.label']}"
name="placeOfConference"
/>
<bootstrap:formGroupDate
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.startdate.help']}"
inputId="startdate"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.startdate.label']}"
name="startDate"
/>
<bootstrap:formGroupDate
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.enddate.help']}"
inputId="end"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.enddate.label']}"
name="endDate"
/>
<h4 class="mt-5">#{SciPublicationsUiMessageBundle['proceedings.basicproperties.organizer.header']}</h3>
<div class="mb-2"> <div class="mb-2">
<div class="text-right"> <div class="text-right">
<librecms:assetPickerButton <librecms:assetPickerButton
@ -131,7 +101,7 @@
<p> <p>
#{SciCmsProceedingsPropertiesStepModel.organizer} #{SciCmsProceedingsPropertiesStepModel.organizer}
</p> </p>
<c:if test="#{SciCmsProceedingsPropertiesStepModel.organzierUuid != null}"> <c:if test="#{SciCmsProceedingsPropertiesStepModel.organizerUuid != null}">
<libreccm:deleteDialog <libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@proceedings-basicproperties/organizer/@remove" actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@proceedings-basicproperties/organizer/@remove"
buttonText="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.remove.label']}" buttonText="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.remove.label']}"
@ -145,6 +115,61 @@
</ui:define> </ui:define>
<ui:define name="publicationBasicPropertiesForm">
<bootstrap:formGroupText
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.name.help']}"
inputId="name-of-conference"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.name.label']}"
name="nameOfConference"
value="#{SciCmsProceedingsPropertiesStepModel.nameOfConference}"
/>
<bootstrap:formGroupText
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.place.help']}"
inputId="place-of-conference"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.place.label']}"
name="placeOfConference"
value="#{SciCmsProceedingsPropertiesStepModel.placeOfConference}"
/>
<bootstrap:formGroupDate
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.startdate.help']}"
inputId="startdate"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.startdate.label']}"
name="startDate"
value="#{SciCmsProceedingsPropertiesStepModel.startDate}"
/>
<bootstrap:formGroupDate
help="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.enddate.help']}"
inputId="enddate"
label="#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.enddate.label']}"
name="endDate"
value="#{SciCmsProceedingsPropertiesStepModel.endDate}"
/>
</ui:define>
<ui:define name="publicationBasicPropertiesDl">
<div>
<dt>#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.name.label']}</dt>
<dd>#{SciCmsProceedingsPropertiesStepModel.nameOfConference}</dd>
</div>
<div>
<dt>#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.place.label']}</dt>
<dd>#{SciCmsProceedingsPropertiesStepModel.placeOfConference}</dd>
</div>
<div>
<dt>#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.startdate.label']}</dt>
<dd>#{SciCmsProceedingsPropertiesStepModel.startDate}</dd>
</div>
<div>
<dt>#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.enddate.label']}</dt>
<dd>#{SciCmsProceedingsPropertiesStepModel.endDate}</dd>
</div>
</ui:define>
<ui:define name="publicationScripts"> <ui:define name="publicationScripts">
<script src="#{request.contextPath}/assets/@scipublications/publication-picker.js" /> <script src="#{request.contextPath}/assets/@scipublications/publication-picker.js" />
</ui:define> </ui:define>

View File

@ -526,3 +526,4 @@ inproceedings.basicproperties.proceedings.remove.confirm=Remove
inproceedings.basicproperties.proceedings.remove.title=Remove paper from Proceedings inproceedings.basicproperties.proceedings.remove.title=Remove paper from Proceedings
inproceedings.basicproperties.proceedings.remove.message=Are you sure to remove the paper {0} from the Proceedings {1}? inproceedings.basicproperties.proceedings.remove.message=Are you sure to remove the paper {0} from the Proceedings {1}?
inproceedings.extendedproperties.header=Edit extended properties of Inproceedings {0} inproceedings.extendedproperties.header=Edit extended properties of Inproceedings {0}
proceedings.extendedproperties.header=Extended Properties of Proceedings {0}

View File

@ -526,3 +526,4 @@ inproceedings.basicproperties.proceedings.remove.confirm=Entfernen
inproceedings.basicproperties.proceedings.remove.title=Beitrag aus Tagungsband entfernen inproceedings.basicproperties.proceedings.remove.title=Beitrag aus Tagungsband entfernen
inproceedings.basicproperties.proceedings.remove.message=Sind Sie sicher, dass Sie den Beitrag {0} aus dem Tagungsband {1} entfernen wollen? inproceedings.basicproperties.proceedings.remove.message=Sind Sie sicher, dass Sie den Beitrag {0} aus dem Tagungsband {1} entfernen wollen?
inproceedings.extendedproperties.header=Tagungsbandbeitrag {0} bearbeiten inproceedings.extendedproperties.header=Tagungsbandbeitrag {0} bearbeiten
proceedings.extendedproperties.header=Erweiterte Eigenschaften des Tagungsbandes {0}