Bugfixes for LegalMetaData assets

pull/10/head
Jens Pelzetter 2021-05-24 18:40:20 +02:00
parent c8bf618eb1
commit b083446c71
3 changed files with 45 additions and 18 deletions

View File

@ -26,6 +26,7 @@ import org.librecms.ui.contentsections.AssetPermissionsChecker;
import org.librecms.ui.contentsections.ContentSectionNotFoundException; import org.librecms.ui.contentsections.ContentSectionNotFoundException;
import java.util.Locale; import java.util.Locale;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
@ -104,6 +105,17 @@ public class LegalMetadataEditStep extends AbstractMvcAssetEditStep {
) )
) )
); );
final Set<Locale> rightsLocales = legalMetadata
.getRights()
.getAvailableLocales();
editStepModel.setUnusedRightsLocales(
globalizationHelper
.getAvailableLocales()
.stream()
.filter(locale -> !rightsLocales.contains(locale))
.map(Locale::toString)
.collect(Collectors.toList())
);
editStepModel.setRightsHolder(legalMetadata.getRightsHolder()); editStepModel.setRightsHolder(legalMetadata.getRightsHolder());
} else { } else {
throw new AssetNotFoundException( throw new AssetNotFoundException(

View File

@ -39,6 +39,8 @@ public class LegalMetadataEditStepModel {
private Map<String, String> rights; private Map<String, String> rights;
private List<String> unusedRightsLocales;
private String publisher; private String publisher;
private String creator; private String creator;
@ -49,10 +51,20 @@ public class LegalMetadataEditStepModel {
return rightsHolder; return rightsHolder;
} }
protected void setRightsHolder(final String rightsHolder) { protected void setRightsHolder(final String rightsHolder) {
this.rightsHolder = rightsHolder; this.rightsHolder = rightsHolder;
} }
public List<String> getUnusedRightsLocales() {
return Collections.unmodifiableList(unusedRightsLocales);
}
public void setUnusedRightsLocales(final List<String> unusedRightsLocales) {
this.unusedRightsLocales = new ArrayList<>(unusedRightsLocales);
}
public Map<String, String> getRights() { public Map<String, String> getRights() {
return Collections.unmodifiableMap(rights); return Collections.unmodifiableMap(rights);
} }

View File

@ -16,7 +16,7 @@
<h3>#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.properties.header']}</h3> <h3>#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.properties.header']}</h3>
<c:if test="#{CmsLegalMetadataEditStep.canEdit}"> <c:if test="#{MvcAssetEditStepModel.canEdit}">
<div class="text-right"> <div class="text-right">
<button class="btn btn-primary" <button class="btn btn-primary"
data-toggle="modal" data-toggle="modal"
@ -55,22 +55,25 @@
label="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.rightsholder.label']}" label="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.rightsholder.label']}"
name="rightsHolder" name="rightsHolder"
required="false" required="false"
value="#{CmsLegalMetadataEditStepModel.rightsHolder}"
/> />
<bootstrap:formGroupText <bootstrap:formGroupText
help="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.publisher.help']}" help="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.publisher.help']}"
inputId="rightsHolder" inputId="publisher"
label="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.publisher.label']}" label="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.publisher.label']}"
name="rightsHolder" name="publisher"
required="false" required="false"
value="#{CmsLegalMetadataEditStepModel.publisher}"
/> />
<bootstrap:formGroupText <bootstrap:formGroupText
help="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.creator.help']}" help="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.creator.help']}"
inputId="rightsHolder" inputId="creator"
label="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.creator.label']}" label="#{CmsAssetsStepsDefaultMessagesBundle['editform.legalmetadata.creator.label']}"
name="rightsHolder" name="creator"
required="false" required="false"
value="#{CmsLegalMetadataEditStepModel.creator}"
/> />
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
@ -112,34 +115,34 @@
addDialogTitle="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.add.header']}" addDialogTitle="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.add.header']}"
addDialogValueHelp="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.add.value.help']}" addDialogValueHelp="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.add.value.help']}"
addDialogValueLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.add.value.label']}" addDialogValueLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.add.value.label']}"
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/rights/@add" addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/rights/add"
editButtonLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit']}" editButtonLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit']}"
editDialogCancelLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.cancel']}" editDialogCancelLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.cancel']}"
editDialogSubmitLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.submit']}" editDialogSubmitLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.submit']}"
editDialogTitle="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.header']}" editDialogTitle="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.header']}"
editDialogValueHelp="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.value.help']}" editDialogValueHelp="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.value.help']}"
editDialogValueLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.value.label']}" editDialogValueLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.edit.value.label']}"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/rights/@edit" editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/rights/edit"
editorId="rights-editor" editorId="rights-editor"
hasUnusedLocales="#{!CmsLegalMetadataEditStep.unusedTitleLocales.isEmpty()}" hasUnusedLocales="#{!CmsLegalMetadataEditStepModel.unusedRightsLocales.isEmpty()}"
headingLevel="3" headingLevel="3"
objectIdentifier="#{CmsSelectedAssetModel.assetPath}" objectIdentifier="#{CmsSelectedAssetModel.assetPath}"
readOnly="#{!CmsLegalMetadataEditStep.canEdit}" readOnly="#{!MvcAssetEditStepModel.canEdit}"
removeButtonLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove']}" removeButtonLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove']}"
removeDialogCancelLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.cancel']}" removeDialogCancelLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.cancel']}"
removeDialogSubmitLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.submit']}" removeDialogSubmitLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.submit']}"
removeDialogText="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.text']}" removeDialogText="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.text']}"
removeDialogTitle="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.rights']}" removeDialogTitle="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.remove.rights']}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/rights/@remove" removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/rights/remove"
title="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.header']}" title="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.rights.header']}"
unusedLocales="#{CmsLegalMetadataEditStep.unusedTitleLocales}" unusedLocales="#{CmsLegalMetadataEditStepModel.unusedRightsLocales}"
useTextarea="true" useTextarea="true"
values="#{CmsLegalMetadataEditStep.rightsValues}" values="#{CmsLegalMetadataEditStepModel.rights}"
/> />
<h3>#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.header']}</h3> <h3>#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.header']}</h3>
<c:if test="#{CmsLegalMetadataEditStepModel.contributors}"> <c:if test="#{MvcAssetEditStepModel.canEdit}">
<div class="text-right"> <div class="text-right">
<button class="btn btn-primary" <button class="btn btn-primary"
data-toggle="modal" data-toggle="modal"
@ -149,7 +152,7 @@
<span class="sr-only">#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.add.button.label']}</span> <span class="sr-only">#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.add.button.label']}</span>
</button> </button>
</div> </div>
<div class="aria-hidden" <div aria-hidden="true"
aria-labelledby="contributors-add-dialog" aria-labelledby="contributors-add-dialog"
class="modal fade" class="modal fade"
id="contributors-add-dialog" id="contributors-add-dialog"
@ -204,17 +207,17 @@
<tbody> <tbody>
<c:forEach items="#{CmsLegalMetadataEditStepModel.contributors}" <c:forEach items="#{CmsLegalMetadataEditStepModel.contributors}"
var="contributor" var="contributor"
varStatus="index"> varStatus="status">
<tr> <tr>
<td>#{contributor}</td> <td>#{contributor}</td>
<td> <td>
<c:if test="#{CmsLegalMetadataEditStep.canEdit}"> <c:if test="#{MvcAssetEditStepModel.canEdit}">
<libreccm:deleteDialog <libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/contributors/remove/#{index}" actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@legalmetadata-edit/contributors/remove/#{status.index}"
buttonText="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.remove.label']}" buttonText="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.remove.label']}"
cancelLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.remove.cancel']}" cancelLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.remove.cancel']}"
confirmLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.remove.confirm']}" confirmLabel="#{CmsAssetsStepsDefaultMessagesBundle['editstep.legalmetadata.contributors.remove.confirm']}"
dialogId="remove-contributor-#{index}" dialogId="remove-contributor-#{status.index}"
dialogTitle="#{CmsAssetsStepsDefaultMessagesBundle.getMessage('editstep.legalmetadata.contributors.remove.title', [contributor])}" dialogTitle="#{CmsAssetsStepsDefaultMessagesBundle.getMessage('editstep.legalmetadata.contributors.remove.title', [contributor])}"
message="#{CmsAssetsStepsDefaultMessagesBundle.getMessage('editstep.legalmetadata.contributors.remove.message', [contributor])}" message="#{CmsAssetsStepsDefaultMessagesBundle.getMessage('editstep.legalmetadata.contributors.remove.message', [contributor])}"
/> />