Bugfixes for editing extended properties

pull/1/head
Jens Pelzetter 2022-07-11 20:35:44 +02:00
parent 7a887eeb36
commit 4344e3406b
7 changed files with 77 additions and 30 deletions

View File

@ -23,9 +23,12 @@ import org.scientificcms.publications.contenttypes.PublicationItem;
import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle;
import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Objects;
import java.util.Optional;
import java.util.TreeMap;
import java.util.stream.Collectors;
import javax.inject.Inject;
@ -156,17 +159,30 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
.ofNullable(publication.getYearFirstPublished())
.orElse(null)
);
propertiesStepModel.setLanguages(
Arrays
.stream(Locale.getAvailableLocales())
.sorted()
.sorted(
Comparator
.comparing(this::toLocalizedDisplayName)
.thenComparing(Locale::toString)
)
.collect(
Collectors.toMap(
Locale::toString,
locale -> locale.getDisplayName(
LinkedHashMap::new,
(map, locale) -> map.put(
locale.toString(),
locale.getDisplayName(
globalizationHelper.getNegotiatedLocale()
)
)
),
LinkedHashMap::putAll
// Collectors.toMap(
// Locale::toString,
// locale -> locale.getDisplayName(
// globalizationHelper.getNegotiatedLocale()
// )
// )
)
);
propertiesStepModel.setEditStepUrlFragment(getEditStepUrlFragment());
@ -251,7 +267,7 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
publication.setPeerReviewed(peerReviewed);
if (yearFirstPublished != null) {
publication.setYearOfPublication(yearFirstPublished);
publication.setYearFirstPublished(yearFirstPublished);
}
publicationRepo.save(publication);
@ -480,4 +496,8 @@ public abstract class AbstractPublicationExtendedPropertiesStep<T extends Public
return showStep(sectionIdentifier, documentPath);
}
private String toLocalizedDisplayName(final Locale locale) {
return locale.getDisplayName(globalizationHelper.getNegotiatedLocale());
}
}

View File

@ -4,9 +4,9 @@ import org.scientificcms.publications.assets.SeriesAsset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@ -33,7 +33,7 @@ public class PublicationExtendedPropertiesStepModel {
private List<VolumeInSeriesRow> volumeInSeries;
private Map<String, String> languages;
private LinkedHashMap<String, String> languages;
public String getBaseUrl() {
return baseUrl;
@ -63,6 +63,10 @@ public class PublicationExtendedPropertiesStepModel {
return languageOfPublication;
}
public List<String> getLanguageOfPublicationSelectedOptions() {
return List.of(languageOfPublication);
}
public void setLanguageOfPublication(final String languageOfPublication) {
this.languageOfPublication = languageOfPublication;
}
@ -75,12 +79,12 @@ public class PublicationExtendedPropertiesStepModel {
this.volumeInSeries = new ArrayList<>(volumeInSeries);
}
public Map<String, String> getLanguages() {
return Collections.unmodifiableMap(languages);
public LinkedHashMap<String, String> getLanguages() {
return new LinkedHashMap<>(languages);
}
public void setLanguages(final Map<String, String> languages) {
this.languages = new HashMap<>(languages);
public void setLanguages(final LinkedHashMap<String, String> languages) {
this.languages = new LinkedHashMap<>(languages);
}
public String getLanguageOfPublicationDisplayName() {

View File

@ -45,10 +45,10 @@
</div>
<div class="modal-body">
<bootstrap:formCheck
checked="#{SciCmsPublicationExtendedPropertiesStepModel.peerReviewed}"
inputId="peer-reviewed"
label="#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.label']}"
name="peerReviewed"
value="#{SciCmsPublicationExtendedPropertiesStepModel.peerReviewed}"
/>
<bootstrap:formGroupNumber
@ -65,9 +65,16 @@
label="#{SciPublicationsUiMessageBundle['extendedproperties.languageofpublication.label']}"
name="languageOfPublication"
options="#{SciCmsPublicationExtendedPropertiesStepModel.languages}"
selectedOptions="#{List.of(SciCmsPublicationExtendedPropertiesStepModel.languageOfPublication)}"
selectedOptions="#{List.of(SciCmsPublicationExtendedPropertiesStepModel.languageOfPublicationSelectedOptions)}"
/>
<pre>
<c:forEach items="#{SciCmsPublicationExtendedPropertiesStepModel.languageOfPublicationSelectedOptions}"
var="lang">
#{lang},
</c:forEach>
</pre>
<ui:insert name="publicationExtendedPropertiesFormElements" />
</div>
<div class="modal-footer">
@ -88,7 +95,17 @@
<dl>
<div>
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.label']}</dt>
<dd>#{SciCmsPublicationExtendedPropertiesStepModel.peerReviewed}</dd>
<dd>
<c:choose>
<c:when test="#{SciCmsPublicationExtendedPropertiesStepModel.peerReviewed}">
#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.yes']}
</c:when>
<c:otherwise>
#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.no']}
</c:otherwise>
</c:choose>
</dd>
</div>
<div>
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.yearfirstpublished.label']}</dt>

View File

@ -57,9 +57,9 @@
/>
<bootstrap:formGroupNumber
help="#{SciPublicationsUiMessageBundle['extendedproeprties.volume.help']}"
help="#{SciPublicationsUiMessageBundle['extendedproperties.volume.help']}"
inputId="volume"
label="#{SciPublicationsUiMessageBundle['extendedproeprties.volume.label']}"
label="#{SciPublicationsUiMessageBundle['extendedproperties.volume.label']}"
name="volume"
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.volume}"
/>
@ -67,15 +67,15 @@
<bootstrap:formGroupNumber
help="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofvolumes.help']}"
inputId="number-of-volumes"
label="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofvolumes.label']}"
label="#{SciPublicationsUiMessageBundle['extendedproperties.numberofvolumes.label']}"
name="numberOfVolumes"
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.numberOfVolumes}"
/>
<bootstrap:formGroupNumber
help="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofpages.help']}"
help="#{SciPublicationsUiMessageBundle['extendedproperties.numberofpages.help']}"
inputId="number-of-pages"
label="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofpages.label']}"
label="#{SciPublicationsUiMessageBundle['extendedproperties.numberofpages.label']}"
name="numberOfPages"
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.numberOfPages}"
/>

View File

@ -11,7 +11,7 @@
value="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@monograph-extendedproperties" />
<ui:param name="authoringStepTitle"
value="#{SciPublicationsUiMessageBundle.getMessage('monograph.extendedproperties.header', [SciCmsPublicationPropertiesStepModel.name])}" />
value="#{SciPublicationsUiMessageBundle.getMessage('monograph.extendedproperties.header', [CmsSelectedDocumentModel.itemName])}" />
<ui:param name="editStepUrlFragement"
value="monograph-extendedproperties" />

View File

@ -389,7 +389,7 @@ extendedproperties.yearfirstpublished.label=Year first published
extendedproperties.languageofpublication.help=The language of the publication.
extendedproperties.languageofpublication.label=Language of the publication
publication.editstep.extendedproperties.edit.submit=Save
extendedproeprties.volumeinseries.header=Published as volume in series
extendedproperties.volumeinseries.header=Published as volume in series
extendedproperties.volumeinseries.add.label=Add volume
extendedproperties.volumeinseries.add.dialog.title=Add volume
extendedproperties.volumeinseries.volumeinseries.help=The label of the volume as which the publication was published as part of the series.
@ -413,7 +413,10 @@ extendedproperties.numberofvolumes.label=Number of volumes
extendedproperties.numberofpages.label=Number of pages
extendedproperties.isbn10.help=The ISBN-10 of the publication, if available.
extendedproperties.isbn13.help=The ISBN-13 of the publication.
extendedproeprties.volume.help=The volume of the publication if the publication is part of a multi-volume publication.
extendedproeprties.numberofvolumes.help=Number of volumes of the publication.
extendedproeprties.numberofpages.help=Number of pages
extendedproperties.volume.help=The volume of the publication if the publication is part of a multi-volume publication.
extendedproperties.numberofvolumes.help=Number of volumes of the publication.
extendedproperties.numberofpages.help=Number of pages
extendedproperties.edition.editdialog.title=Edition
monograph.extendedproperties.header=Extended properties of monograph {0}
extendedproperties.peerreviewed.yes=Yes
extendedproperties.peerreviewed.no=No

View File

@ -389,7 +389,7 @@ extendedproperties.yearfirstpublished.label=Ersterscheinungsjahr
extendedproperties.languageofpublication.help=Die Sprache der Publikation.
extendedproperties.languageofpublication.label=Sprache der Publikation
publication.editstep.extendedproperties.edit.submit=Speichern
extendedproeprties.volumeinseries.header=Erschienen als Band der Reihe
extendedproperties.volumeinseries.header=Erschienen als Band der Reihe
extendedproperties.volumeinseries.add.label=Band hinzuf\u00fcgen
extendedproperties.volumeinseries.add.dialog.title=Band hinzuf\u00fcgen
extendedproperties.volumeinseries.volumeinseries.help=Die Bezeichnung des Bandes in dem die Publikation als Teil der Serie ver\u00f6ffentlicht wurde.
@ -413,7 +413,10 @@ extendedproperties.numberofvolumes.label=Anzahl der B\u00e4nde
extendedproperties.numberofpages.label=Anzahl der Seiten
extendedproperties.isbn10.help=Die ISBN-10 der Publikation.
extendedproperties.isbn13.help=Die ISBN-13 der Publikation.
extendedproeprties.volume.help=Der Band der Publikation, falls die Publikation Teil eines mehrb\u00e4ndiges Werkes ist.
extendedproeprties.numberofvolumes.help=Anzahl der B\u00e4nde des Werkes.
extendedproeprties.numberofpages.help=Anzahl der Seiten
extendedproperties.volume.help=Der Band der Publikation, falls die Publikation Teil eines mehrb\u00e4ndiges Werkes ist.
extendedproperties.numberofvolumes.help=Anzahl der B\u00e4nde des Werkes.
extendedproperties.numberofpages.help=Anzahl der Seiten
extendedproperties.edition.editdialog.title=Ausgabe
monograph.extendedproperties.header=Erweiterte Eigenschaften der Monographie {0}
extendedproperties.peerreviewed.yes=Ja
extendedproperties.peerreviewed.no=Nein