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)
public void removeArticleFromProceedings(
final InProceedings paper,
final Proceedings collectedVolume
final Proceedings proceedings
) {
Objects.requireNonNull(paper);
Objects.requireNonNull(collectedVolume);
Objects.requireNonNull(proceedings);
if (!collectedVolume.equals(paper.getProceedings())
|| !collectedVolume.getPapers().contains(paper)) {
if (paper.getProceedings() == null) {
return;
}
if (!proceedings.getUuid().equals(paper.getProceedings().getUuid())
|| !proceedings.getPapers().contains(paper)) {
throw new IllegalArgumentException(
String.format(
"The provided paper %s is not a paper of the "
+ "provided proceedings %s.",
paper.getUuid(),
collectedVolume.getUuid()
proceedings.getUuid()
)
);
}
paper.setProceedings(null);
collectedVolume.removePaper(paper);
proceedings.removePaper(paper);
publicationRepository.save(paper);
publicationRepository.save(collectedVolume);
publicationRepository.save(proceedings);
}
}

View File

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

View File

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

View File

@ -29,7 +29,7 @@ import javax.ws.rs.PathParam;
bundle = SciPublicationsUiConstants.BUNDLE,
descriptionKey = "authoringsteps.extendedproperties.description",
labelKey = "authoringsteps.extendedproperties.label",
supportedDocumentType = CollectedVolumeItem.class
supportedDocumentType = ProceedingsItem.class
)
public class ProceedingsExtendedPropertiesStep extends AbstractPublicationWithPublisherExtendedPropertiesStep<ProceedingsItem, Proceedings> {

View File

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

View File

@ -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">
<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"
value="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@inproceedings-extendedproperties" />

View File

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

View File

@ -79,37 +79,7 @@
</c:otherwise>
</c:choose>
<h3 class="mt-5">#{SciPublicationsUiMessageBundle['proceedings.basicproperties.conference.header']}</h3>
<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>
<h4 class="mt-5">#{SciPublicationsUiMessageBundle['proceedings.basicproperties.organizer.header']}</h4>
<div class="mb-2">
<div class="text-right">
<librecms:assetPickerButton
@ -120,31 +90,86 @@
</div>
</div>
<librecms:assetPicker
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@proceedings-basicproperties/organizer"
assetType="#{SciCmsProceedingsPropertiesStepModel.organizerType}"
assetPickerId="organizer-picker"
baseUrl="#{SciCmsPublicationPropertiesStepModel.baseUrl}"
contentSection="#{ContentSectionModel.sectionName}"
dialogTitle="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.select.dialog.title']}"
formParamName="organizerIdentifier"
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@proceedings-basicproperties/organizer"
assetType="#{SciCmsProceedingsPropertiesStepModel.organizerType}"
assetPickerId="organizer-picker"
baseUrl="#{SciCmsPublicationPropertiesStepModel.baseUrl}"
contentSection="#{ContentSectionModel.sectionName}"
dialogTitle="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.select.dialog.title']}"
formParamName="organizerIdentifier"
/>
<p>
#{SciCmsProceedingsPropertiesStepModel.organizer}
</p>
<c:if test="#{SciCmsProceedingsPropertiesStepModel.organizerUuid != null}">
<libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@proceedings-basicproperties/organizer/@remove"
buttonText="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.remove.label']}"
cancelLabel="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.cancel']}"
confirmLabel="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.confirm']}"
dialogId="organizer-remove"
dialogTitle="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.title']}"
message="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.message']}"
/>
<p>
#{SciCmsProceedingsPropertiesStepModel.organizer}
</p>
<c:if test="#{SciCmsProceedingsPropertiesStepModel.organzierUuid != null}">
<libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@proceedings-basicproperties/organizer/@remove"
buttonText="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.remove.label']}"
cancelLabel="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.cancel']}"
confirmLabel="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.confirm']}"
dialogId="organizer-remove"
dialogTitle="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.title']}"
message="#{SciPublicationsUiMessageBundle['proceedings.editstep.organizer.message']}"
/>
</c:if>
</c:if>
</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">
<script src="#{request.contextPath}/assets/@scipublications/publication-picker.js" />
</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.message=Are you sure to remove the paper {0} from the Proceedings {1}?
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.message=Sind Sie sicher, dass Sie den Beitrag {0} aus dem Tagungsband {1} entfernen wollen?
inproceedings.extendedproperties.header=Tagungsbandbeitrag {0} bearbeiten
proceedings.extendedproperties.header=Erweiterte Eigenschaften des Tagungsbandes {0}