Bugfixes for editing the extended properties of a publication.

pull/1/head
Jens Pelzetter 2022-07-12 20:27:44 +02:00
parent 4344e3406b
commit 10789bc7a5
8 changed files with 34 additions and 26 deletions

View File

@ -320,7 +320,7 @@ public class PublicationManager {
public void addSeries( public void addSeries(
final Series series, final Series series,
final Publication publication, final Publication publication,
final String volumeInSeries final String volumeOfSeries
) { ) {
Objects.requireNonNull(series); Objects.requireNonNull(series);
Objects.requireNonNull(publication); Objects.requireNonNull(publication);
@ -342,11 +342,13 @@ public class PublicationManager {
} }
final VolumeInSeries volume = new VolumeInSeries(); final VolumeInSeries volume = new VolumeInSeries();
volume.setUuid(UUID.randomUUID().toString());
volume.setPublication(publication); volume.setPublication(publication);
volume.setSeries(series); volume.setSeries(series);
volume.setVolumeOfSeries(volumeInSeries); volume.setVolumeOfSeries(volumeOfSeries);
publication.addSeries(volume); publication.addSeries(volume);
series.addVolume(volume); series.addVolume(volume);
entityManager.persist(volume);
seriesRepository.save(series); seriesRepository.save(series);
publicationRepository.save(publication); publicationRepository.save(publication);
} }

View File

@ -33,6 +33,7 @@ import java.util.stream.Collectors;
import javax.inject.Inject; import javax.inject.Inject;
import javax.mvc.Models; import javax.mvc.Models;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import javax.ws.rs.FormParam; import javax.ws.rs.FormParam;
@ -58,6 +59,9 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
@Inject @Inject
private DocumentUi documentUi; private DocumentUi documentUi;
@Inject
private EntityManager entityManager;
@Inject @Inject
private GlobalizationHelper globalizationHelper; private GlobalizationHelper globalizationHelper;
@ -163,6 +167,10 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
propertiesStepModel.setLanguages( propertiesStepModel.setLanguages(
Arrays Arrays
.stream(Locale.getAvailableLocales()) .stream(Locale.getAvailableLocales())
.filter(
locale -> locale.getCountry() == null
|| locale.getCountry().isEmpty()
)
.sorted( .sorted(
Comparator Comparator
.comparing(this::toLocalizedDisplayName) .comparing(this::toLocalizedDisplayName)
@ -185,6 +193,7 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
// ) // )
) )
); );
propertiesStepModel.setEditStepUrlFragment(getEditStepUrlFragment()); propertiesStepModel.setEditStepUrlFragment(getEditStepUrlFragment());
propertiesStepModel.setBaseUrl(baseUrl.getBaseUrl(request)); propertiesStepModel.setBaseUrl(baseUrl.getBaseUrl(request));
@ -357,8 +366,8 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
final String documentPath, final String documentPath,
@PathParam("volumeInSeriesUuid") @PathParam("volumeInSeriesUuid")
final String volumeInSeriesUuid, final String volumeInSeriesUuid,
@FormParam("volumeInSeries") @FormParam("volumeOfSeries")
final String volumeInSeriesValue final String volumeOfSeries
) { ) {
try { try {
init(); init();
@ -390,7 +399,8 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
} }
final VolumeInSeries volumeInSeries = volumeInSeriesResult.get(); final VolumeInSeries volumeInSeries = volumeInSeriesResult.get();
volumeInSeries.setVolumeOfSeries(volumeInSeriesValue); volumeInSeries.setVolumeOfSeries(volumeOfSeries);
entityManager.merge(volumeInSeries);
publicationRepo.save(getPublication()); publicationRepo.save(getPublication());

View File

@ -64,7 +64,7 @@ public abstract class AbstractPublicationWithPublisherExtendedPropertiesStep<T e
publication.getNumberOfVolumes() publication.getNumberOfVolumes()
); );
propertiesStepModel.setVolume(publication.getVolume()); propertiesStepModel.setVolume(publication.getVolume());
propertiesStepModel.setEditionValues( propertiesStepModel.setEditionValues(
publication publication
.getEdition() .getEdition()

View File

@ -194,19 +194,19 @@ public class MonographExtendedPropertiesStep extends AbstractPublicationWithPubl
final String documentPath, final String documentPath,
@PathParam("volumeInSeriesUuid") @PathParam("volumeInSeriesUuid")
final String volumeInSeriesUuid, final String volumeInSeriesUuid,
@FormParam("volumeInSeries") @FormParam("volumeOfSeries")
final String volumeInSeriesValue final String volumeOfSeries
) { ) {
return super.editVolumeInSeries( return super.editVolumeInSeries(
sectionIdentifier, sectionIdentifier,
documentPath, documentPath,
volumeInSeriesUuid, volumeInSeriesUuid,
volumeInSeriesValue volumeOfSeries
); );
} }
@POST @POST
@Path("/series/{seriesUuid}/remove") @Path("/series/{volumeInSeriesUuid}/remove")
@AuthorizationRequired @AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED) @Transactional(Transactional.TxType.REQUIRED)
@Override @Override

View File

@ -65,15 +65,8 @@
label="#{SciPublicationsUiMessageBundle['extendedproperties.languageofpublication.label']}" label="#{SciPublicationsUiMessageBundle['extendedproperties.languageofpublication.label']}"
name="languageOfPublication" name="languageOfPublication"
options="#{SciCmsPublicationExtendedPropertiesStepModel.languages}" options="#{SciCmsPublicationExtendedPropertiesStepModel.languages}"
selectedOptions="#{List.of(SciCmsPublicationExtendedPropertiesStepModel.languageOfPublicationSelectedOptions)}" selectedOptions="#{SciCmsPublicationExtendedPropertiesStepModel.languageOfPublicationSelectedOptions}"
/> />
<pre>
<c:forEach items="#{SciCmsPublicationExtendedPropertiesStepModel.languageOfPublicationSelectedOptions}"
var="lang">
#{lang},
</c:forEach>
</pre>
<ui:insert name="publicationExtendedPropertiesFormElements" /> <ui:insert name="publicationExtendedPropertiesFormElements" />
</div> </div>
@ -104,7 +97,7 @@
#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.no']} #{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.no']}
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</dd> </dd>
</div> </div>
<div> <div>
@ -120,7 +113,7 @@
</dl> </dl>
<c:if test="#{CmsSelectedDocumentModel.canEdit}"> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<h3>#{SciPublicationsUiMessageBundle['extendedproeprties.volumeinseries.header']}</h3> <h3>#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.header']}</h3>
<div class="mb-2"> <div class="mb-2">
<div class="text-right"> <div class="text-right">
<librecms:assetPickerButton <librecms:assetPickerButton
@ -141,9 +134,9 @@
> >
<bootstrap:formGroupText <bootstrap:formGroupText
help="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.help']}" help="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.help']}"
inputId="volume-in-series" inputId="volume-of-series"
label="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.label']}" label="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.label']}"
name="volumeInSeries" name="volumeOfSeries"
/> />
</librecms:assetPicker> </librecms:assetPicker>
</c:if> </c:if>
@ -202,7 +195,7 @@
help="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.help']}" help="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.help']}"
inputId="#{volume.volumeInSeriesUuid}-volumeinseries" inputId="#{volume.volumeInSeriesUuid}-volumeinseries"
label="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.label']}" label="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.label']}"
name="volumeInSeries" name="volumeOfSeries"
value="#{volume.volumeInSeries}" value="#{volume.volumeInSeries}"
/> />
</div> </div>
@ -223,7 +216,7 @@
</td> </td>
<td> <td>
<libreccm:deleteDialog <libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/#{volume.volumeInSeriesUuid}/remove" actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/series/#{volume.volumeInSeriesUuid}/remove"
buttonText="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.label']}" buttonText="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.label']}"
cancelLabel="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.cancel']}" cancelLabel="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.cancel']}"
confirmLabel="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.confirm']}" confirmLabel="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.confirm']}"

View File

@ -65,7 +65,7 @@
/> />
<bootstrap:formGroupNumber <bootstrap:formGroupNumber
help="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofvolumes.help']}" help="#{SciPublicationsUiMessageBundle['extendedproperties.numberofvolumes.help']}"
inputId="number-of-volumes" inputId="number-of-volumes"
label="#{SciPublicationsUiMessageBundle['extendedproperties.numberofvolumes.label']}" label="#{SciPublicationsUiMessageBundle['extendedproperties.numberofvolumes.label']}"
name="numberOfVolumes" name="numberOfVolumes"
@ -87,9 +87,10 @@
<libreccm:localizedStringEditor <libreccm:localizedStringEditor
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@add" addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@add"
readOnly="#{!CmsSelectedDocumentModel.canEdit}"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@edit" editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@edit"
editorId="edition-editor" editorId="edition-editor"
hasUnusedLocales="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.unusedEditionLocales.isEmpty()}" hasUnusedLocales="#{!SciCmsPublicationWithPublisherExtendedPropertiesStep.unusedEditionLocales.isEmpty()}"
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}" objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@remove" removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@remove"
title="#{SciPublicationsUiMessageBundle['extendedproperties.edition.editdialog.title']}" title="#{SciPublicationsUiMessageBundle['extendedproperties.edition.editdialog.title']}"

View File

@ -420,3 +420,4 @@ extendedproperties.edition.editdialog.title=Edition
monograph.extendedproperties.header=Extended properties of monograph {0} monograph.extendedproperties.header=Extended properties of monograph {0}
extendedproperties.peerreviewed.yes=Yes extendedproperties.peerreviewed.yes=Yes
extendedproperties.peerreviewed.no=No extendedproperties.peerreviewed.no=No
extendedproperties.volumeinseries.volumeinseries.label=Volume

View File

@ -420,3 +420,4 @@ extendedproperties.edition.editdialog.title=Ausgabe
monograph.extendedproperties.header=Erweiterte Eigenschaften der Monographie {0} monograph.extendedproperties.header=Erweiterte Eigenschaften der Monographie {0}
extendedproperties.peerreviewed.yes=Ja extendedproperties.peerreviewed.yes=Ja
extendedproperties.peerreviewed.no=Nein extendedproperties.peerreviewed.no=Nein
extendedproperties.volumeinseries.volumeinseries.label=Band