Fixed inconsistiency of canEdit usage in authoring steps

pull/10/head
Jens Pelzetter 2021-12-09 21:02:57 +01:00
parent 5bafec04a3
commit eef4210785
11 changed files with 430 additions and 439 deletions

View File

@ -133,6 +133,7 @@ public abstract class AbstractMvcAuthoringStep implements MvcAuthoringStep {
) )
); );
documentModel.setContentItem(document); documentModel.setContentItem(document);
documentModel.setCanEdit(getCanEdit());
documentPath = itemManager.getItemPath(document); documentPath = itemManager.getItemPath(document);
final Map<String, String> values = new HashMap<>(); final Map<String, String> values = new HashMap<>();

View File

@ -45,7 +45,6 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Path;
import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriBuilder;
/** /**
@ -140,6 +139,11 @@ public class SelectedDocumentModel {
*/ */
private boolean excludeDefaultAuthoringSteps; private boolean excludeDefaultAuthoringSteps;
/**
* Can the current user edit the document.
*/
private boolean canEdit;
/** /**
* The workflow assigned to the current content item. * The workflow assigned to the current content item.
*/ */
@ -186,6 +190,14 @@ public class SelectedDocumentModel {
return excludeDefaultAuthoringSteps; return excludeDefaultAuthoringSteps;
} }
public boolean getCanEdit() {
return canEdit;
}
public void setCanEdit(final boolean canEdit) {
this.canEdit = canEdit;
}
public String getWorkflowName() { public String getWorkflowName() {
return workflowName; return workflowName;
} }
@ -348,7 +360,7 @@ public class SelectedDocumentModel {
) { ) {
final MvcAuthoringStepDef stepAnnotation = authoringStepClass final MvcAuthoringStepDef stepAnnotation = authoringStepClass
.getAnnotation(MvcAuthoringStepDef.class); .getAnnotation(MvcAuthoringStepDef.class);
final LocalizedTextsUtil textsUtil = globalizationHelper final LocalizedTextsUtil textsUtil = globalizationHelper
.getLocalizedTextsUtil(stepAnnotation.bundle()); .getLocalizedTextsUtil(stepAnnotation.bundle());
final AuthoringStepListEntry entry = new AuthoringStepListEntry(); final AuthoringStepListEntry entry = new AuthoringStepListEntry();
entry.setDescription(textsUtil.getText(stepAnnotation.descriptionKey())); entry.setDescription(textsUtil.getText(stepAnnotation.descriptionKey()));

View File

@ -127,8 +127,6 @@ public class MvcArticlePropertiesStep extends AbstractMvcAuthoringStep {
articlePropertiesStepModel.setName(getDocument().getDisplayName()); articlePropertiesStepModel.setName(getDocument().getDisplayName());
articlePropertiesStepModel.setCanEdit(getCanEdit());
final Set<Locale> titleLocales = getDocument() final Set<Locale> titleLocales = getDocument()
.getTitle() .getTitle()
.getAvailableLocales(); .getAvailableLocales();

View File

@ -37,8 +37,6 @@ public class MvcArticlePropertiesStepModel {
private String name; private String name;
private boolean canEdit;
private Map<String, String> titleValues; private Map<String, String> titleValues;
private List<String> unusedTitleLocales; private List<String> unusedTitleLocales;
@ -55,14 +53,6 @@ public class MvcArticlePropertiesStepModel {
this.name = name; this.name = name;
} }
public boolean getCanEdit() {
return canEdit;
}
public void setCanEdit(final boolean canEdit) {
this.canEdit = canEdit;
}
public Map<String, String> getTitleValues() { public Map<String, String> getTitleValues() {
return Collections.unmodifiableMap(titleValues); return Collections.unmodifiableMap(titleValues);
} }

View File

@ -222,7 +222,7 @@
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<div class="cms-editor-messages"></div> <div class="cms-editor-messages"></div>
<c:if test="#{cc.attrs.hasUnusedLocales}"> <c:if test="#{cc.attrs.hasUnusedLocales and cc.attrs.canEdit}">
<div class="mb-2"> <div class="mb-2">
<div class="text-right"> <div class="text-right">
<button <button

View File

@ -17,71 +17,75 @@
<div class="d-flex mb-3"> <div class="d-flex mb-3">
<span class="mr-2">#{CmsDefaultStepsMessageBundle['categorization.system.assigned.to']}</span> <span class="mr-2">#{CmsDefaultStepsMessageBundle['categorization.system.assigned.to']}</span>
<button class="btn btn-primary" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
data-target="#edit-categorization-#{tree.domainKey}" <button class="btn btn-primary"
data-toggle="modal" data-target="#edit-categorization-#{tree.domainKey}"
type="button"> data-toggle="modal"
<bootstrap:svgIcon icon="pen" /> type="button">
<span class="sr-only"> <bootstrap:svgIcon icon="pen" />
#{CmsDefaultStepsMessageBundle['categorization.system.assigned.edit']} <span class="sr-only">
</span> #{CmsDefaultStepsMessageBundle['categorization.system.assigned.edit']}
</button> </span>
</button>
</c:if>
</div> </div>
<div aria-labelledby="edit-categorization-#{tree.domainKey}-title" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
aria-hidden="true" <div aria-labelledby="edit-categorization-#{tree.domainKey}-title"
class="modal fade" aria-hidden="true"
id="edit-categorization-#{tree.domainKey}" class="modal fade"
tabindex="-1"> id="edit-categorization-#{tree.domainKey}"
<div class="modal-dialog modal-xl"> tabindex="-1">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@categorization/domains/#{tree.domainKey}" <div class="modal-dialog modal-xl">
class="modal-content" <form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@categorization/domains/#{tree.domainKey}"
method="post"> class="modal-content"
<div class="modal-header"> method="post">
<h3 class="modal-title" <div class="modal-header">
id="edit-categorization-#{tree.domainKey}-title"> <h3 class="modal-title"
#{CmsDefaultStepsMessageBundle.getMessage('categorization.edit.title', [tree.domainKey, CmsSelectedDocumentModel.itemTitle])} id="edit-categorization-#{tree.domainKey}-title">
#{CmsDefaultStepsMessageBundle.getMessage('categorization.edit.title', [tree.domainKey, CmsSelectedDocumentModel.itemTitle])}
</h3> </h3>
<button aria-label="#{CmsDefaultStepsMessageBundle['categorization.edit.cancel']}" <button aria-label="#{CmsDefaultStepsMessageBundle['categorization.edit.cancel']}"
class="close" class="close"
data-dismiss="modal" data-dismiss="modal"
type="button"> type="button">
<bootstrap:svgIcon icon="x-circle" /> <bootstrap:svgIcon icon="x-circle" />
</button> </button>
</div> </div>
<div class="modal-body categorizationtree"> <div class="modal-body categorizationtree">
<ul class="" <ul class=""
id="#{node.categoryUuid}-subcategories"> id="#{node.categoryUuid}-subcategories">
<ui:include src="categorization-tree-node.xhtml"> <ui:include src="categorization-tree-node.xhtml">
<ui:param name="node" <ui:param name="node"
value="#{tree.root}" /> value="#{tree.root}" />
<ui:param name="isRoot" <ui:param name="isRoot"
value="true" /> value="true" />
</ui:include> </ui:include>
</ul> </ul>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button class="btn btn-warning" <button class="btn btn-warning"
data-dismiss="modal" data-dismiss="modal"
type="button"> type="button">
#{CmsDefaultStepsMessageBundle['categorization.edit.cancel']} #{CmsDefaultStepsMessageBundle['categorization.edit.cancel']}
</button> </button>
<button class="btn btn-success" <button class="btn btn-success"
type="submit"> type="submit">
#{CmsDefaultStepsMessageBundle['categorization.edit.apply']} #{CmsDefaultStepsMessageBundle['categorization.edit.apply']}
</button> </button>
</div> </div>
</form> </form>
</div>
</div> </div>
</div> </c:if>
<c:choose> <c:choose>
<c:when test="#{tree.root.assigned or tree.root.subCategoryAssigned}"> <c:when test="#{tree.root.assigned or tree.root.subCategoryAssigned}">
<ul> <ul>
<c:forEach items="#{tree.assignedCategories}" <c:forEach items="#{tree.assignedCategories}"
var="assigned"> var="assigned">
<li>#{assigned}</li> <li>#{assigned}</li>
</c:forEach> </c:forEach>
</ul> </ul>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
@ -91,7 +95,6 @@
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</c:forEach> </c:forEach>
</ui:define> </ui:define>

View File

@ -22,88 +22,92 @@
#{CmsDefaultStepsMessageBundle['media.sortmedia.errors.save']} #{CmsDefaultStepsMessageBundle['media.sortmedia.errors.save']}
</div> </div>
</template> </template>
<div class="text-right"> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<button class="btn btn-primary" <div class="text-right">
data-toggle="modal" <button class="btn btn-primary"
data-target="#add-media-list-dialog" data-toggle="modal"
type="button"> data-target="#add-media-list-dialog"
<bootstrap:svgIcon icon="plus-circle" /> type="button">
<span>#{CmsDefaultStepsMessageBundle['media.medialists.add.button.label']}</span> <bootstrap:svgIcon icon="plus-circle" />
</button> <span>#{CmsDefaultStepsMessageBundle['media.medialists.add.button.label']}</span>
</div> </button>
<div aria-hidden="true"
aria-labelledby="add-media-list-dialog-title"
class="modal fade"
id="add-media-list-dialog"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/@add"
class="modal-content"
method="post">
<div class="modal-header">
<h3 class="modal-title"
id="add-media-list-dialog-title">#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.title']}</h3>
<button aria-label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.close']}"
class="close"
data-dismiss="modal"
type="button">
<bootstrap:svgIcon icon="x-circle" />
</button>
</div>
<div class="modal-body">
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.name.help']}"
inputId="#add-media-list-name"
label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.name.label']}"
name="listName"
pattern="[A-Za-z0-9\-_]*"
required="true"
/>
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.title.help']}"
inputId="#add-media-list-title"
label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.title.label']}"
name="listTitle"
/>
<bootstrap:formGroupTextarea
help="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.description.help']}"
inputId="#add-media-list-name"
label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.description.label']}"
name="listDescription"
/>
</div>
<div class="modal-footer">
<button class="btn btn-warning"
data-dismiss="modal"
type="button">
#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.close']}
</button>
<button class="btn btn-success"
type="submit">
#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.add_list']}
</button>
</div>
</form>
</div> </div>
</div> <div aria-hidden="true"
aria-labelledby="add-media-list-dialog-title"
class="modal fade"
id="add-media-list-dialog"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/@add"
class="modal-content"
method="post">
<div class="modal-header">
<h3 class="modal-title"
id="add-media-list-dialog-title">#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.title']}</h3>
<button aria-label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.close']}"
class="close"
data-dismiss="modal"
type="button">
<bootstrap:svgIcon icon="x-circle" />
</button>
</div>
<div class="modal-body">
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.name.help']}"
inputId="#add-media-list-name"
label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.name.label']}"
name="listName"
pattern="[A-Za-z0-9\-_]*"
required="true"
/>
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.title.help']}"
inputId="#add-media-list-title"
label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.title.label']}"
name="listTitle"
/>
<div> <bootstrap:formGroupTextarea
<button class="btn btn-secondary media-save-order-button" help="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.description.help']}"
disabled="disabled" inputId="#add-media-list-name"
type="button"> label="#{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.description.label']}"
<span class="save-icon"> name="listDescription"
<bootstrap:svgIcon icon="save" /> />
</span> </div>
<span class="save-spinner d-none"> <div class="modal-footer">
<span aria-hidden="true" <button class="btn btn-warning"
class="spinner-border spinner-border-sm" data-dismiss="modal"
role="status"></span> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.order.save.inprogress']}</span> #{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.close']}
</span> </button>
<span>#{CmsDefaultStepsMessageBundle['media.medialists.order.save']}</span> <button class="btn btn-success"
</button> type="submit">
</div> #{CmsDefaultStepsMessageBundle['media.medialists.add.dialog.add_list']}
</button>
</div>
</form>
</div>
</div>
</c:if>
<c:if test="#{CmsSelectedDocumentModel.canEdit}">
<div>
<button class="btn btn-secondary media-save-order-button"
disabled="disabled"
type="button">
<span class="save-icon">
<bootstrap:svgIcon icon="save" />
</span>
<span class="save-spinner d-none">
<span aria-hidden="true"
class="spinner-border spinner-border-sm"
role="status"></span>
<span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.order.save.inprogress']}</span>
</span>
<span>#{CmsDefaultStepsMessageBundle['media.medialists.order.save']}</span>
</button>
</div>
</c:if>
<div id="messages"></div> <div id="messages"></div>
<ul class="cms-media-lists mt-3 list-group" <ul class="cms-media-lists mt-3 list-group"
data-baseUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media-service/save-order"> data-baseUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media-service/save-order">
@ -114,28 +118,30 @@
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<div>#{list.name}</div> <div>#{list.name}</div>
<div class="cms-medialist-buttons d-flex"> <div class="cms-medialist-buttons d-flex">
<button class="btn btn-secondary cms-sort-handle mr-2" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
type="button"> <button class="btn btn-secondary cms-sort-handle mr-2"
<bootstrap:svgIcon icon="arrows-move" /> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.move.button']}"</span> <bootstrap:svgIcon icon="arrows-move" />
</button> <span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.move.button']}"</span>
</button>
</c:if>
<button class="btn btn-secondary mx-2" <button class="btn btn-secondary mx-2"
data-toggle="modal" data-toggle="modal"
data-target="#media-list-#{list.name}-info" data-target="#media-list-#{list.uuid}-info"
type="button"> type="button">
<bootstrap:svgIcon icon="info-circle" /> <bootstrap:svgIcon icon="info-circle" />
<span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.info.button']}"</span> <span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.info.button']}"</span>
</button> </button>
<div aria-hidden="true" <div aria-hidden="true"
aria-labelledby="medialist-#{list.name}-info-title" aria-labelledby="medialist-#{list.uuid}-info-title"
class="modal fade" class="modal fade"
id="media-list-#{list.name}-info" id="media-list-#{list.uuid}-info"
tabindex="-1"> tabindex="-1">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h3 class="modal-title" <h3 class="modal-title"
id="medialist-#{list.name}-info-title"> id="medialist-#{list.uuid}-info-title">
#{CmsDefaultStepsMessageBundle.getMessage('media.medialists.info.dialog.title', [list.name])} #{CmsDefaultStepsMessageBundle.getMessage('media.medialists.info.dialog.title', [list.name])}
</h3> </h3>
<button <button
@ -164,35 +170,37 @@
</div> </div>
</div> </div>
</div> </div>
<a class="btn btn-primary mx-2" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/@details"> <a class="btn btn-primary mx-2"
<bootstrap:svgIcon icon="pen" /> href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/@details">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.edit.button']}"</span> <bootstrap:svgIcon icon="pen" />
</a> <span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.edit.button']}"</span>
<librecms:assetPickerButton </a>
assetPickerId="attach-media-picker-#{list.uuid}" <librecms:assetPickerButton
buttonIcon="file-earmark-plus" assetPickerId="attach-media-picker-#{list.uuid}"
buttonText="#{CmsDefaultStepsMessageBundle['media.medialists.media.add.label']}" buttonIcon="file-earmark-plus"
/> buttonText="#{CmsDefaultStepsMessageBundle['media.medialists.media.add.label']}"
<libreccm:deleteDialog />
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/@remove" <libreccm:deleteDialog
buttonLabelClass="sr-only" actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/@remove"
buttonText="#{CmsDefaultStepsMessageBundle['media.medialists.remove.label']}" buttonLabelClass="sr-only"
buttonTextClass="ml-2" buttonText="#{CmsDefaultStepsMessageBundle['media.medialists.remove.label']}"
cancelLabel="#{CmsDefaultStepsMessageBundle['media.medialists.remove.cancel']}" buttonTextClass="ml-2"
confirmLabel="#{CmsDefaultStepsMessageBundle['media.medialists.remove.confirm']}" cancelLabel="#{CmsDefaultStepsMessageBundle['media.medialists.remove.cancel']}"
dialogId="medialist-delete-#{list.uuid}" confirmLabel="#{CmsDefaultStepsMessageBundle['media.medialists.remove.confirm']}"
dialogTitle="#{CmsDefaultStepsMessageBundle['media.medialists.remove.title']}" dialogId="medialist-delete-#{list.uuid}"
message="#{CmsDefaultStepsMessageBundle.getMessage('media.medialists.remove.message', [list.name])}" dialogTitle="#{CmsDefaultStepsMessageBundle['media.medialists.remove.title']}"
/> message="#{CmsDefaultStepsMessageBundle.getMessage('media.medialists.remove.message', [list.name])}"
<librecms:assetPicker />
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/media/@create" <librecms:assetPicker
assetType="#{CmsMediaStep.audioAssetType},#{CmsMediaStep.externalAudioAssetType},#{CmsMediaStep.externalVideoAssetType},#{CmsMediaStep.imageType},#{CmsMediaStep.videoAssetType}" actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/media/@create"
assetPickerId="attach-media-picker-#{list.uuid}" assetType="#{CmsMediaStep.audioAssetType},#{CmsMediaStep.externalAudioAssetType},#{CmsMediaStep.externalVideoAssetType},#{CmsMediaStep.imageType},#{CmsMediaStep.videoAssetType}"
baseUrl="#{CmsMediaStep.mediaAssetPickerBaseUrl}" assetPickerId="attach-media-picker-#{list.uuid}"
contentSection="#{CmsMediaStep.sectionName}" baseUrl="#{CmsMediaStep.mediaAssetPickerBaseUrl}"
formParamName="mediaIdentifier" contentSection="#{CmsMediaStep.sectionName}"
/> formParamName="mediaIdentifier"
/>
</c:if>
</div> </div>
</div> </div>
<ul class="cms-medias mt-3 list-group" <ul class="cms-medias mt-3 list-group"
@ -234,11 +242,13 @@
<span class="cms-media-label">#{media.title}</span> <span class="cms-media-label">#{media.title}</span>
</div> </div>
<div class="cms-media-buttons d-flex"> <div class="cms-media-buttons d-flex">
<button class="btn btn-secondary cms-sort-handle mr-2" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
type="button"> <button class="btn btn-secondary cms-sort-handle mr-2"
<bootstrap:svgIcon icon="arrows-move" /> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.media.move.button']}"</span> <bootstrap:svgIcon icon="arrows-move" />
</button> <span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.media.move.button']}"</span>
</button>
</c:if>
<button class="btn btn-secondary mx-2" <button class="btn btn-secondary mx-2"
data-toggle="modal" data-toggle="modal"
data-target="#media-#{media.uuid}-info-dialog" data-target="#media-#{media.uuid}-info-dialog"
@ -286,17 +296,19 @@
</div> </div>
</div> </div>
</div> </div>
<libreccm:deleteDialog <c:if test="#{CmsSelectedDocumentModel.canEdit}">
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/media/#{media.uuid}/@remove" <libreccm:deleteDialog
buttonLabelClass="sr-only" actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@media/medialists/#{list.name}/media/#{media.uuid}/@remove"
buttonText="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.label']}" buttonLabelClass="sr-only"
buttonTextClass="ml-2" buttonText="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.label']}"
cancelLabel="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.cancel']}" buttonTextClass="ml-2"
confirmLabel="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.confirm']}" cancelLabel="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.cancel']}"
dialogId="media-delete-#{media.uuid}" confirmLabel="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.confirm']}"
dialogTitle="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.title']}" dialogId="media-delete-#{media.uuid}"
message="#{CmsDefaultStepsMessageBundle.getMessage('media.medialists.media.remove.message', [list.name, media.title])}" dialogTitle="#{CmsDefaultStepsMessageBundle['media.medialists.media.remove.title']}"
/> message="#{CmsDefaultStepsMessageBundle.getMessage('media.medialists.media.remove.message', [list.name, media.title])}"
/>
</c:if>
</div> </div>
</li> </li>
</c:forEach> </c:forEach>
@ -305,22 +317,24 @@
</c:forEach> </c:forEach>
</ul> </ul>
<div> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<button class="btn btn-secondary media-save-order-button" <div>
disabled="disabled" <button class="btn btn-secondary media-save-order-button"
type="button"> disabled="disabled"
<span class="save-icon"> type="button">
<bootstrap:svgIcon icon="save" /> <span class="save-icon">
</span> <bootstrap:svgIcon icon="save" />
<span class="save-spinner d-none"> </span>
<span aria-hidden="true" <span class="save-spinner d-none">
class="spinner-border spinner-border-sm" <span aria-hidden="true"
role="status"></span> class="spinner-border spinner-border-sm"
<span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.order.save.inprogress']}</span> role="status"></span>
</span> <span class="sr-only">#{CmsDefaultStepsMessageBundle['media.medialists.order.save.inprogress']}</span>
<span>#{CmsDefaultStepsMessageBundle['media.medialists.order.save']}</span> </span>
</button> <span>#{CmsDefaultStepsMessageBundle['media.medialists.order.save']}</span>
</div> </button>
</div>
</c:if>
</ui:define> </ui:define>
</ui:composition> </ui:composition>

View File

@ -22,88 +22,92 @@
#{CmsDefaultStepsMessageBundle['relatedinfo.sortattachments.errors.save']} #{CmsDefaultStepsMessageBundle['relatedinfo.sortattachments.errors.save']}
</div> </div>
</template> </template>
<div class="text-right"> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<button class="btn btn-primary" <div class="text-right">
data-toggle="modal" <button class="btn btn-primary"
data-target="#add-attachment-list-dialog" data-toggle="modal"
type="button"> data-target="#add-attachment-list-dialog"
<bootstrap:svgIcon icon="plus-circle" /> type="button">
<span>#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.button.label']}</span> <bootstrap:svgIcon icon="plus-circle" />
</button> <span>#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.button.label']}</span>
</div> </button>
<div aria-hidden="true"
aria-labelledby="add-attachment-list-dialog-title"
class="modal fade"
id="add-attachment-list-dialog"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/@add"
class="modal-content"
method="post">
<div class="modal-header">
<h3 class="modal-title"
id="add-attachment-list-dialog-title">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.title']}</h3>
<button aria-label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.close']}"
class="close"
data-dismiss="modal"
type="button">
<bootstrap:svgIcon icon="x-circle" />
</button>
</div>
<div class="modal-body">
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.name.help']}"
inputId="#add-attachment-list-name"
label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.name.label']}"
name="listName"
pattern="[A-Za-z0-9\-_]*"
required="true"
/>
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.title.help']}"
inputId="#add-attachment-list-title"
label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.title.label']}"
name="listTitle"
/>
<bootstrap:formGroupTextarea
help="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.description.help']}"
inputId="#add-attachment-list-name"
label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.description.label']}"
name="listDescription"
/>
</div>
<div class="modal-footer">
<button class="btn btn-warning"
data-dismiss="modal"
type="button">
#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.close']}
</button>
<button class="btn btn-success"
type="submit">
#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.add_list']}
</button>
</div>
</form>
</div> </div>
</div> <div aria-hidden="true"
aria-labelledby="add-attachment-list-dialog-title"
class="modal fade"
id="add-attachment-list-dialog"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/@add"
class="modal-content"
method="post">
<div class="modal-header">
<h3 class="modal-title"
id="add-attachment-list-dialog-title">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.title']}</h3>
<button aria-label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.close']}"
class="close"
data-dismiss="modal"
type="button">
<bootstrap:svgIcon icon="x-circle" />
</button>
</div>
<div class="modal-body">
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.name.help']}"
inputId="#add-attachment-list-name"
label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.name.label']}"
name="listName"
pattern="[A-Za-z0-9\-_]*"
required="true"
/>
<bootstrap:formGroupText
help="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.title.help']}"
inputId="#add-attachment-list-title"
label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.title.label']}"
name="listTitle"
/>
<div> <bootstrap:formGroupTextarea
<button class="btn btn-secondary attachments-save-order-button" help="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.description.help']}"
disabled="disabled" inputId="#add-attachment-list-name"
type="button"> label="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.description.label']}"
<span class="save-icon"> name="listDescription"
<bootstrap:svgIcon icon="save" /> />
</span> </div>
<span class="save-spinner d-none"> <div class="modal-footer">
<span aria-hidden="true" <button class="btn btn-warning"
class="spinner-border spinner-border-sm" data-dismiss="modal"
role="status"></span> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save.inprogress']}</span> #{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.close']}
</span> </button>
<span>#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save']}</span> <button class="btn btn-success"
</button> type="submit">
</div> #{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.add.dialog.add_list']}
</button>
</div>
</form>
</div>
</div>
</c:if>
<c:if test="#{CmsSelectedDocumentModel.canEdit}">
<div>
<button class="btn btn-secondary attachments-save-order-button"
disabled="disabled"
type="button">
<span class="save-icon">
<bootstrap:svgIcon icon="save" />
</span>
<span class="save-spinner d-none">
<span aria-hidden="true"
class="spinner-border spinner-border-sm"
role="status"></span>
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save.inprogress']}</span>
</span>
<span>#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save']}</span>
</button>
</div>
</c:if>
<div id="messages"></div> <div id="messages"></div>
<ul class="cms-attachment-lists mt-3 list-group" <ul class="cms-attachment-lists mt-3 list-group"
data-baseUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo-service/save-order"> data-baseUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo-service/save-order">
@ -114,28 +118,30 @@
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<div>#{list.name}</div> <div>#{list.name}</div>
<div class="cms-attachmentlist-buttons d-flex"> <div class="cms-attachmentlist-buttons d-flex">
<button class="btn btn-secondary cms-sort-handle mr-2" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
type="button"> <button class="btn btn-secondary cms-sort-handle mr-2"
<bootstrap:svgIcon icon="arrows-move" /> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.move.button']}"</span> <bootstrap:svgIcon icon="arrows-move" />
</button> <span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.move.button']}"</span>
</button>
</c:if>
<button class="btn btn-secondary mx-2" <button class="btn btn-secondary mx-2"
data-toggle="modal" data-toggle="modal"
data-target="#attachment-list-#{list.name}-info" data-target="#attachment-list-#{list.uuid}-info"
type="button"> type="button">
<bootstrap:svgIcon icon="info-circle" /> <bootstrap:svgIcon icon="info-circle" />
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.info.button']}"</span> <span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.info.button']}"</span>
</button> </button>
<div aria-hidden="true" <div aria-hidden="true"
aria-labelledby="attachmentlist-#{list.name}-info-title" aria-labelledby="attachmentlist-#{list.uuid}-info-title"
class="modal fade" class="modal fade"
id="attachment-list-#{list.name}-info" id="attachment-list-#{list.uuid}-info"
tabindex="-1"> tabindex="-1">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h3 class="modal-title" <h3 class="modal-title"
id="attachmentlist-#{list.name}-info-title"> id="attachmentlist-#{list.uuid}-info-title">
#{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachmentlists.info.dialog.title', [list.name])} #{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachmentlists.info.dialog.title', [list.name])}
</h3> </h3>
<button <button
@ -164,41 +170,43 @@
</div> </div>
</div> </div>
</div> </div>
<a class="btn btn-primary mx-2" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/@details"> <a class="btn btn-primary mx-2"
<bootstrap:svgIcon icon="pen" /> href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/@details">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.edit.button']}"</span> <bootstrap:svgIcon icon="pen" />
</a> <span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.edit.button']}"</span>
<librecms:assetPickerButton </a>
assetPickerId="attach-file-picker-#{list.uuid}" <librecms:assetPickerButton
buttonIcon="file-earmark-plus" assetPickerId="attach-file-picker-#{list.uuid}"
buttonText="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.attachment.add.label']}" buttonIcon="file-earmark-plus"
/> buttonText="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.attachment.add.label']}"
<a class="btn btn-primary mx-2" />
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/links/@create" <a class="btn btn-primary mx-2"
type="button"> href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/links/@create"
<bootstrap:svgIcon icon="bookmark-plus" /> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.link.add.label']}</span> <bootstrap:svgIcon icon="bookmark-plus" />
</a> <span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.link.add.label']}</span>
<libreccm:deleteDialog </a>
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/@remove" <libreccm:deleteDialog
buttonLabelClass="sr-only" actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/@remove"
buttonText="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.label']}" buttonLabelClass="sr-only"
buttonTextClass="ml-2" buttonText="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.label']}"
cancelLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.cancel']}" buttonTextClass="ml-2"
confirmLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.confirm']}" cancelLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.cancel']}"
dialogId="attachmentlist-delete-#{list.uuid}" confirmLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.confirm']}"
dialogTitle="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.title']}" dialogId="attachmentlist-delete-#{list.uuid}"
message="#{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachmentlists.remove.message', [list.name])}" dialogTitle="#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.remove.title']}"
/> message="#{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachmentlists.remove.message', [list.name])}"
<librecms:assetPicker />
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/attachments/@create" <librecms:assetPicker
assetType="#{CmsRelatedInfoStep.fileAssetType}" actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/attachments/@create"
assetPickerId="attach-file-picker-#{list.uuid}" assetType="#{CmsRelatedInfoStep.fileAssetType}"
baseUrl="#{CmsRelatedInfoStep.fileAssetPickerBaseUrl}" assetPickerId="attach-file-picker-#{list.uuid}"
contentSection="#{CmsRelatedInfoStep.sectionName}" baseUrl="#{CmsRelatedInfoStep.fileAssetPickerBaseUrl}"
formParamName="assetIdentifier" contentSection="#{CmsRelatedInfoStep.sectionName}"
/> formParamName="assetIdentifier"
/>
</c:if>
</div> </div>
</div> </div>
<ul class="cms-attachments mt-3 list-group" <ul class="cms-attachments mt-3 list-group"
@ -222,11 +230,13 @@
<span class="cms-attachment-label">#{attachment.title}</span> <span class="cms-attachment-label">#{attachment.title}</span>
</div> </div>
<div class="cms-attachment-buttons d-flex"> <div class="cms-attachment-buttons d-flex">
<button class="btn btn-secondary cms-sort-handle mr-2" <c:if test="#{CmsSelectedDocumentModel.canEdit}">
type="button"> <button class="btn btn-secondary cms-sort-handle mr-2"
<bootstrap:svgIcon icon="arrows-move" /> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachments.move.button']}"</span> <bootstrap:svgIcon icon="arrows-move" />
</button> <span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachments.move.button']}"</span>
</button>
</c:if>
<button class="btn btn-secondary mx-2" <button class="btn btn-secondary mx-2"
data-toggle="modal" data-toggle="modal"
data-target="#attachment-#{attachment.uuid}-info-dialog" data-target="#attachment-#{attachment.uuid}-info-dialog"
@ -274,25 +284,27 @@
</div> </div>
</div> </div>
</div> </div>
<c:if test="#{attachment.assetType.equals(CmsRelatedInfoStep.relatedLinkType)}"> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<a class="btn btn-primary mx-2" <c:if test="#{attachment.assetType.equals(CmsRelatedInfoStep.relatedLinkType)}">
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/links/#{attachment.assetUuid}/@details" <a class="btn btn-primary mx-2"
type="button"> href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/links/#{attachment.assetUuid}/@details"
<bootstrap:svgIcon icon="pen" /> type="button">
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachments.edit.button']}"</span> <bootstrap:svgIcon icon="pen" />
</a> <span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachments.edit.button']}"</span>
</a>
</c:if>
<libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/attachments/#{attachment.uuid}/@remove"
buttonLabelClass="sr-only"
buttonText="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.label']}"
buttonTextClass="ml-2"
cancelLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.cancel']}"
confirmLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.confirm']}"
dialogId="attachment-delete-#{attachment.uuid}"
dialogTitle="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.title']}"
message="#{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachment.remove.message', [list.name, attachment.title])}"
/>
</c:if> </c:if>
<libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo/attachmentlists/#{list.name}/attachments/#{attachment.uuid}/@remove"
buttonLabelClass="sr-only"
buttonText="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.label']}"
buttonTextClass="ml-2"
cancelLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.cancel']}"
confirmLabel="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.confirm']}"
dialogId="attachment-delete-#{attachment.uuid}"
dialogTitle="#{CmsDefaultStepsMessageBundle['relatedinfo.attachment.remove.title']}"
message="#{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachment.remove.message', [list.name, attachment.title])}"
/>
</div> </div>
</li> </li>
</c:forEach> </c:forEach>
@ -301,22 +313,24 @@
</c:forEach> </c:forEach>
</ul> </ul>
<div> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<button class="btn btn-secondary attachments-save-order-button" <div>
disabled="disabled" <button class="btn btn-secondary attachments-save-order-button"
type="button"> disabled="disabled"
<span class="save-icon"> type="button">
<bootstrap:svgIcon icon="save" /> <span class="save-icon">
</span> <bootstrap:svgIcon icon="save" />
<span class="save-spinner d-none"> </span>
<span aria-hidden="true" <span class="save-spinner d-none">
class="spinner-border spinner-border-sm" <span aria-hidden="true"
role="status"></span> class="spinner-border spinner-border-sm"
<span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save.inprogress']}</span> role="status"></span>
</span> <span class="sr-only">#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save.inprogress']}</span>
<span>#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save']}</span> </span>
</button> <span>#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.order.save']}</span>
</div> </button>
</div>
</c:if>
</ui:define> </ui:define>

View File

@ -15,7 +15,7 @@
<h3>#{CmsArticleMessageBundle.getMessage('basicproperties.name.header')}</h3> <h3>#{CmsArticleMessageBundle.getMessage('basicproperties.name.header')}</h3>
<div class="d-flex"> <div class="d-flex">
<pre class="mr-2">#{CmsArticlePropertiesStep.name}</pre> <pre class="mr-2">#{CmsArticlePropertiesStep.name}</pre>
<c:if test="#{CmsArticlePropertiesStep.canEdit}"> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<button class="btn btn-primary btn-sm" <button class="btn btn-primary btn-sm"
data-toggle="modal" data-toggle="modal"
data-target="#name-edit-dialog" data-target="#name-edit-dialog"
@ -28,7 +28,7 @@
</c:if> </c:if>
</div> </div>
<c:if test="#{CmsArticlePropertiesStep.canEdit}"> <c:if test="#{CmsSelectedDocumentModel.canEdit}">
<div aria-hidden="true" <div aria-hidden="true"
aria-labelledby="name-edit-dialog-title" aria-labelledby="name-edit-dialog-title"
class="modal fade" class="modal fade"
@ -98,7 +98,7 @@
hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedTitleLocales.isEmpty()}" hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedTitleLocales.isEmpty()}"
headingLevel="3" headingLevel="3"
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}" objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
readOnly="#{!CmsArticlePropertiesStep.canEdit}" readOnly="#{!CmsSelectedDocumentModel.canEdit}"
removeButtonLabel="#{CmsArticleMessageBundle['basicproperties.title.remove']}" removeButtonLabel="#{CmsArticleMessageBundle['basicproperties.title.remove']}"
removeDialogCancelLabel="#{CmsArticleMessageBundle['basicproperties.title.remove.cancel']}" removeDialogCancelLabel="#{CmsArticleMessageBundle['basicproperties.title.remove.cancel']}"
removeDialogSubmitLabel="#{CmsArticleMessageBundle['basicproperties.title.remove.submit']}" removeDialogSubmitLabel="#{CmsArticleMessageBundle['basicproperties.title.remove.submit']}"
@ -132,7 +132,7 @@
hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedDescriptionLocales.isEmpty()}" hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedDescriptionLocales.isEmpty()}"
headingLevel="3" headingLevel="3"
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}" objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
readOnly="#{!CmsArticlePropertiesStep.canEdit}" readOnly="#{!CmsSelectedDocumentModel.canEdit}"
removeButtonLabel="#{CmsArticleMessageBundle['basicproperties.description.remove']}" removeButtonLabel="#{CmsArticleMessageBundle['basicproperties.description.remove']}"
removeDialogCancelLabel="#{CmsArticleMessageBundle['basicproperties.description.remove.cancel']}" removeDialogCancelLabel="#{CmsArticleMessageBundle['basicproperties.description.remove.cancel']}"
removeDialogSubmitLabel="#{CmsArticleMessageBundle['basicproperties.description.remove.submit']}" removeDialogSubmitLabel="#{CmsArticleMessageBundle['basicproperties.description.remove.submit']}"

View File

@ -1,42 +0,0 @@
<!DOCTYPE html [<!ENTITY times '&#215;'>]>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
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/librecms/ui/contentsection/documents/authoringstep.xhtml">
<ui:param name="authoringStep"
value="/libreccm/@contentsections/info/documents/test-article/@article-text" />
<ui:define name="authoringStep">
<h2>#{CmsArticleMessageBundle['textstep.header']}</h2>
<librecms:cmsEditor addButtonLabel="#{CmsArticleMessageBundle['text.editor.add_variant']}"
addDialogLocaleSelectHelp="#{CmsAdminMessages['text.editor.add.locale.help']}"
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/add"
editDialogValueHelp="#{CmsAdminMessages['text.editor.edit.value.help']}"
editDialogValueLabel="#{CmsAdminMessages['text.editor.edit.value.label']}"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/edit"
editorId="article-text-editor"
hasUnusedLocales="#{!CmsArticleTextBodyStep.unusedLocales.isEmpty()}"
headingLevel="3"
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/remove"
title="#{CmsArticleMessageBundle['text.editor.header']}"
unusedLocales="#{CmsArticleTextBodyStep.unusedLocales}"
variantUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text-resources/variants"
variants="#{CmsArticleTextBodyStep.variants}"
wordCountUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text-resources/variants/wordcount"
/>
</ui:define>
<ui:define name="scripts">
<script src="#{request.contextPath}/assets/@content-sections/cms-editor.js"></script>
</ui:define>
</ui:composition>
</html>

View File

@ -17,6 +17,7 @@
addButtonLabel="#{CmsArticleMessageBundle['text.editor.add_variant']}" addButtonLabel="#{CmsArticleMessageBundle['text.editor.add_variant']}"
addDialogLocaleSelectHelp="#{CmsAdminMessages['text.editor.add.locale.help']}" addDialogLocaleSelectHelp="#{CmsAdminMessages['text.editor.add.locale.help']}"
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/add" addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/add"
canEdit="#{CmsSelectedDocumentModel.canEdit}"
editorPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/edit" editorPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/edit"
hasUnusedLocales="#{!CmsArticleTextBodyStep.unusedLocales.isEmpty()}" hasUnusedLocales="#{!CmsArticleTextBodyStep.unusedLocales.isEmpty()}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/remove" removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-text/remove"