Editing names for articles

pull/10/head
Jens Pelzetter 2021-04-28 20:44:35 +02:00
parent e010e5a653
commit 12a3d14233
9 changed files with 162 additions and 102 deletions

View File

@ -39,7 +39,6 @@ public class CmsMvcAuthoringSteps implements MvcAuthoringSteps {
classes.add(ExampleAuthoringStep.class); classes.add(ExampleAuthoringStep.class);
classes.add(CategorizationStep.class); classes.add(CategorizationStep.class);
classes.add(PublishStep.class);
classes.add(RelatedInfoStep.class); classes.add(RelatedInfoStep.class);
classes.add(MvcArticlePropertiesStep.class); classes.add(MvcArticlePropertiesStep.class);
classes.add(MvcArticleTextBodyStep.class); classes.add(MvcArticleTextBodyStep.class);

View File

@ -31,6 +31,7 @@ import java.util.Optional;
import javax.enterprise.context.Dependent; import javax.enterprise.context.Dependent;
import javax.inject.Inject; import javax.inject.Inject;
import javax.mvc.Models;
import javax.ws.rs.Path; import javax.ws.rs.Path;
/** /**
@ -58,6 +59,9 @@ public class MvcAuthoringStepService {
@Inject @Inject
private GlobalizationHelper globalizationHelper; private GlobalizationHelper globalizationHelper;
@Inject
private Models models;
@Inject @Inject
private SelectedDocumentModel documentModel; private SelectedDocumentModel documentModel;
@ -166,6 +170,12 @@ public class MvcAuthoringStepService {
documentModel.setContentItem(document); documentModel.setContentItem(document);
this.documentPath = itemManager.getItemPath(document); this.documentPath = itemManager.getItemPath(document);
models.put("activeDocumentTab", "editTab");
}
public void updateDocumentPath() {
documentPath = itemManager.getItemPath(document);
} }
/** /**
@ -193,8 +203,9 @@ public class MvcAuthoringStepService {
section.getLabel() section.getLabel()
) )
.replace( .replace(
String.format("{%s}", String.format(
MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME "{%s}",
MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM
), ),
documentPath documentPath
) )

View File

@ -357,7 +357,7 @@ public class SelectedDocumentModel {
.replace( .replace(
String.format( String.format(
"{%s}", "{%s}",
MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM
), ),
itemPath itemPath
); );

View File

@ -60,7 +60,7 @@ import javax.ws.rs.PathParam;
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a> * @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/ */
@RequestScoped @RequestScoped
@Path(MvcAuthoringSteps.PATH_PREFIX + "basicproperties") @Path(MvcAuthoringSteps.PATH_PREFIX + "article-basicproperties")
@Controller @Controller
@Named("CmsArticlePropertiesStep") @Named("CmsArticlePropertiesStep")
@MvcAuthoringStep( @MvcAuthoringStep(
@ -242,13 +242,17 @@ public class MvcArticlePropertiesStep {
stepService.getDocument().setDisplayName(name); stepService.getDocument().setDisplayName(name);
itemRepo.save(stepService.getDocument()); itemRepo.save(stepService.getDocument());
stepService.updateDocumentPath();
return stepService.buildRedirectPathForStep(getClass()); return stepService.buildRedirectPathForStep(
MvcArticlePropertiesStep.class
);
} else { } else {
return documentUi.showAccessDenied( return documentUi.showAccessDenied(
stepService.getContentSection(), stepService.getContentSection(),
stepService.getDocument(), stepService.getDocument(),
stepService.getLabel(getClass()) stepService.getLabel(MvcArticlePropertiesStep.class)
); );
} }
} }

View File

@ -5,92 +5,94 @@
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/contentsection.xhtml"> <ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/contentsection.xhtml">
<ui:define name="main"> <ui:define name="main">
<div class="row">
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link #{activeDocumentTab == 'editTab' ? 'active' : ''}" <a class="nav-link #{activeDocumentTab == 'editTab' ? 'active' : ''}"
href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}"> href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}">
#{CmsAdminMessages['contentsection.document.tabs.edit.title']} #{CmsAdminMessages['contentsection.document.tabs.edit.title']}
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link #{activeDocumentTab == 'history' ? 'active' : ''}" <a class="nav-link #{activeDocumentTab == 'history' ? 'active' : ''}"
href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@history"> href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@history">
#{CmsAdminMessages['contentsection.document.tabs.history.title']} #{CmsAdminMessages['contentsection.document.tabs.history.title']}
</a> </a>
</li> </li>
</ul> </ul>
<div class="row p-3">
<div class="col-sm-3"> <div class="col-sm-3">
<!-- Workflow widget --> <!-- Workflow widget -->
<h2>#{CmsAdminMessages['contentsection.document.authoring.workflow.title']}</h2> <h2>#{CmsAdminMessages['contentsection.document.authoring.workflow.title']}</h2>
<p> <p>
#{CmsAdminMessages['contentsection.document.authoring.workflow.active_workflow_label']}: #{CmsAdminMessages['contentsection.document.authoring.workflow.active_workflow_label']}:
#{CmsSelectedDocumentModel.workflowName} #{CmsSelectedDocumentModel.workflowName}
<button class="btn btn-secondary" <button class="btn btn-secondary btn-sm"
disabled="#{!CmsSelectedDocumentModel.canChangeWorkflow ? 'disabled': ''}" disabled="#{!CmsSelectedDocumentModel.canChangeWorkflow ? 'disabled': ''}"
type="button"> type="button">
#{CmsAdminMessages['contentsection.document.authoring.workflow.change_workflow']}: #{CmsAdminMessages['contentsection.document.authoring.workflow.change_workflow']}
</button> </button>
</p> </p>
<p> <p>
#{CmsAdminMessages['contentsection.document.authoring.workflow.active_task']}: } #{CmsAdminMessages['contentsection.document.authoring.workflow.active_task']}
<c:choose> <c:choose>
<c:when test="#{CmsSelectedDocumentModel.currentTask != null}"> <c:when test="#{CmsSelectedDocumentModel.currentTask != null}">
#{CmsSelectedDocumentModel.currentTask.label} #{CmsSelectedDocumentModel.currentTask.label}
</c:when> </c:when>
<c:otherwise> <c:otherwise>
#{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.none']}: } #{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.none']}
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<c:choose> <c:if test="#{CmsSelectedDocumentModel.currentTask != null}">
<c:when test="#{CmsSelectedDocumentModel.currentTask.assignedToCurrentUser and CmsSelectedDocumentModel.currentTask.locked}"> <c:choose>
<form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@unlock" <c:when test="#{CmsSelectedDocumentModel.currentTask.assignedToCurrentUser and CmsSelectedDocumentModel.currentTask.locked}">
method="post"> <form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@unlock"
<input name="returnUrl" method="post">
type="hidden" <input name="returnUrl"
value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" /> type="hidden"
<button class="btn btn-secondary" value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" />
type="submit"> <button class="btn btn-secondary btn-sm"
#{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.release']} type="submit">
</button> #{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.release']}
</form> </button>
<form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@finish" </form>
method="post"> <form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@finish"
<input name="returnUrl" method="post">
type="hidden" <input name="returnUrl"
value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" /> type="hidden"
<button class="btn btn-secondary" value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" />
type="submit"> <button class="btn btn-secondary btn-sm"
#{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.finish']} type="submit">
</button> #{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.finish']}
</form> </button>
</c:when> </form>
<c:when test="#{CmsSelectedDocumentModel.currentTask.locked and CmsSelectedDocumentModel.canChangeWorkflow}"> </c:when>
<form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@lock" <c:when test="#{CmsSelectedDocumentModel.currentTask.locked and CmsSelectedDocumentModel.canChangeWorkflow}">
method="post"> <form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@lock"
<input name="returnUrl" method="post">
type="hidden" <input name="returnUrl"
value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" /> type="hidden"
<button class="btn btn-secondary" value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" />
type="submit"> <button class="btn btn-secondary btn-sm"
#{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.takeover']} type="submit">
</button> #{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.takeover']}
</form> </button>
</c:when> </form>
<c:when test="#{CmsSelectedDocumentModel.currentTask.assignedToCurrentUser or CmsSelectedDocumentModel.canChangeWorkflow}"> </c:when>
<form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@lock"> <c:when test="#{CmsSelectedDocumentModel.currentTask.assignedToCurrentUser or CmsSelectedDocumentModel.canChangeWorkflow}">
<input name="returnUrl" <form action="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@workflow/tasks/UUID-#{CmsSelectedDocumentModel.currentTask.taskUuid}/@lock">
type="hidden" <input name="returnUrl"
value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" /> type="hidden"
<button class="btn btn-secondary" value="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/#{authoringStep}" />
type="button"> <button class="btn btn-secondary btn-sm"
#{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.lock']}: } type="button">
</button> #{CmsAdminMessages['contentsection.document.authoring.workflow.active_task.lock']}
</form> </button>
</c:when> </form>
</c:choose> </c:when>
</c:choose>
</c:if>
</p> </p>
<!-- Authoring steps --> <!-- Authoring steps -->
@ -111,14 +113,14 @@
<li aria-current="#{'categorize' == authoringStep ? 'true' : ''}" <li aria-current="#{'categorize' == authoringStep ? 'true' : ''}"
class="list-group-item #{'categorize' == authoringStep ? 'active' : ''}"> class="list-group-item #{'categorize' == authoringStep ? 'active' : ''}">
<a class="list-group-item-action" <a class="list-group-item-action"
href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/categorize"> href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@categorization">
#{CmsAdminMessages['contentsection.document.authoring.steps.categorize.label']} #{CmsAdminMessages['contentsection.document.authoring.steps.categorize.label']}
</a> </a>
</li> </li>
<li aria-current="#{'relatedInfo' == authoringStep ? 'true' : ''}" <li aria-current="#{'relatedInfo' == authoringStep ? 'true' : ''}"
class="list-group-item #{'relatedInfo' == authoringStep ? 'active' : ''}"> class="list-group-item #{'relatedInfo' == authoringStep ? 'active' : ''}">
<a class="list-group-item-action" <a class="list-group-item-action"
href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/relatedInfo"> href="#{mvc.basePath}/documents/#{CmsSelectedDocumentModel.itemPath}/@relatedinfo">
#{CmsAdminMessages['contentsection.document.authoring.steps.relatedInfo.label']} #{CmsAdminMessages['contentsection.document.authoring.steps.relatedInfo.label']}
</a> </a>
</li> </li>

View File

@ -7,57 +7,89 @@
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml"> <ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
<ui:define name="authoringStep"> <ui:define name="authoringStep">
<h2>#{CmsArticleMessageBundle['basicproperties.name.header']}</h2> <h2>#{CmsArticleMessageBundle.getMessage('basicproperties.header', [CmsArticlePropertiesStep.name])}</h2>
<h3>#{CmsArticleMessageBundle.getMessage('basicproperties.name.header')}</h3>
<div class="d-flex"> <div class="d-flex">
<pre> <pre class="mr-2">#{CmsArticlePropertiesStep.name}</pre>
#{CmsArticlePropertiesStep.name} <button class="btn btn-primary btn-sm"
</pre>
<button class="btn btn-primary"
data-toggle="modal" data-toggle="modal"
data-target="name-edit-dialog" data-target="#name-edit-dialog"
type="button"> type="button">
<bootstrap:svgIcon icon="pen" /> <bootstrap:svgIcon icon="pen" />
<span class="sr-only"> <span class="sr-only">
#{CmsArticleMessageBundle['basicproperties.name.edit']} #{CmsArticleMessageBundle['basicproperties.name.edit']}
</span> </span>
</button> </button>
<div aria-hidden="true" </div>
aria-labelledby="name-edit-dialog-title" <div aria-hidden="true"
class="modal fade" aria-labelledby="name-edit-dialog-title"
id="name-edit-dialog" class="modal fade"
tabindex="-1"> id="name-edit-dialog"
<div class="modal-dialog"> tabindex="-1">
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/basicproperties/name" <div class="modal-dialog">
class="modal-content" <form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents#{CmsSelectedDocumentModel.itemPath}/@article-basicproperties/name"
method="post"> class="modal-content"
method="post">
</form> <div class="modal-header">
</div> <h4 class="modal-title"
id="name-edit-dialog-title">
#{CmsArticleMessageBundle['basicproperties.name.edit.title']}
</h4>
<button aria-label="#{CmsArticleMessageBundle['basicproperties.name.edit.close']}"
class="close"
data-dismiss="modal"
type="button">
<bootstrap:svgIcon icon="x-circle" />
</button>
</div>
<div class="modal-body">
<bootstrap:formGroupText
help="#{CmsArticleMessageBundle['basicproperties.name.help']}"
inputId="name"
label="#{CmsArticleMessageBundle['basicproperties.name.label']}"
name="name"
pattern="^([a-zA-Z0-9_-]*)$"
required="true"
value="#{CmsArticlePropertiesStep.name}"/>
</div>
<div class="modal-footer">
<button class="btn btn-warning"
data-dismiss="modal"
type="button">
#{CmsArticleMessageBundle['basicproperties.name.edit.close']}
</button>
<button class="btn btn-success"
type="submit">
#{CmsArticleMessageBundle['basicproperties.name.edit.submit']}
</button>
</div>
</form>
</div> </div>
</div> </div>
<libreccm:localizedStringEditor <libreccm:localizedStringEditor
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/basicproperties/title/@add" addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-basicproperties/title/@add"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/basicproperties/title/@edit" editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-basicproperties/title/@edit"
editorId="title-editor" editorId="title-editor"
hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedTitleLocales.isEmpty()}" hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedTitleLocales.isEmpty()}"
headingLevel="3" headingLevel="3"
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}" objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/basicproperties/title/@remove" removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-basicproperties/title/@remove"
title="#{CmsArticleMessageBundle['basicproperties.title.header']}" title="#{CmsArticleMessageBundle['basicproperties.title.header']}"
unusedLocales="#{CmsArticlePropertiesStep.unusedTitleLocales}" unusedLocales="#{CmsArticlePropertiesStep.unusedTitleLocales}"
values="#{CmsArticlePropertiesStep.titleValues}" values="#{CmsArticlePropertiesStep.titleValues}"
/> />
<libreccm:localizedStringEditor <libreccm:localizedStringEditor
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/basicproperties/description/@add" addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-basicproperties/description/@add"
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/basicproperties/description/@edit" editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-basicproperties/description/@edit"
editorId="description-editor" editorId="description-editor"
hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedTitleLocales.isEmpty()}" hasUnusedLocales="#{!CmsArticlePropertiesStep.unusedTitleLocales.isEmpty()}"
headingLevel="3" headingLevel="3"
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}" objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@authoringsteps/basicproperties/description/@remove" removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@article-basicproperties/description/@remove"
title="#{CmsArticleMessageBundle['basicproperties.description.header']}" title="#{CmsArticleMessageBundle['basicproperties.description.header']}"
unusedLocales="#{CmsArticlePropertiesStep.unusedTitleLocales}" unusedLocales="#{CmsArticlePropertiesStep.unusedTitleLocales}"
values="#{CmsArticlePropertiesStep.descriptionValues}" values="#{CmsArticlePropertiesStep.descriptionValues}"

View File

@ -742,7 +742,7 @@ contentsection.document.authoring.workflow.active_task.none=Keine aktive Aufgabe
contentsection.document.authoring.workflow.active_task.release=Freigeben contentsection.document.authoring.workflow.active_task.release=Freigeben
contentsection.document.authoring.workflow.active_task.finish=Abschlie\u00dfen contentsection.document.authoring.workflow.active_task.finish=Abschlie\u00dfen
contentsection.document.authoring.workflow.active_task.takeover=\u00dcbernehmen contentsection.document.authoring.workflow.active_task.takeover=\u00dcbernehmen
contentsection.document.authoring.workflow.active_task.lock=Reserveren contentsection.document.authoring.workflow.active_task.lock=Reservieren
contentsection.document.authoring.steps.title=Bearbeitungsschritte contentsection.document.authoring.steps.title=Bearbeitungsschritte
contentsection.document.authoring.steps.categorize.label=Dokument kategorisieren contentsection.document.authoring.steps.categorize.label=Dokument kategorisieren
contentsection.document.authoring.steps.relatedInfo.label=Weiterf\u00fchrende Informationen contentsection.document.authoring.steps.relatedInfo.label=Weiterf\u00fchrende Informationen

View File

@ -24,10 +24,16 @@ createform.cancel=Cancel
createform.submit=Create Article createform.submit=Create Article
textstep.header=Text of the Article textstep.header=Text of the Article
text.editor.header=Main Text text.editor.header=Main Text
basicproperties.name.header=Basic Properties basicproperties.name.header=Name of the article
basicproperties.name.edit=Edit basicproperties.name.edit=Edit
basicproperties.title.header=Title basicproperties.title.header=Title
basicproperties.description.header=Summary basicproperties.description.header=Summary
createform.title=Create new article createform.title=Create new article
createform.summary.label=Summary createform.summary.label=Summary
createstep.workflow.none_selected=No workflow selected createstep.workflow.none_selected=No workflow selected
basicproperties.name.help=The name of the article. Must only constain the letters a to z, A to Z, numbers, the dash and the underscore.
basicproperties.name.label=Name
basicproperties.header=Basic Properties of Article {0}
basicproperties.name.edit.title=Edit name
basicproperties.name.edit.close=Cancel
basicproperties.name.edit.submit=Save

View File

@ -24,10 +24,16 @@ createform.cancel=Abbrechen
createform.submit=Artikel anlegen createform.submit=Artikel anlegen
textstep.header=Haupttext des Artikels textstep.header=Haupttext des Artikels
text.editor.header=Haupttext text.editor.header=Haupttext
basicproperties.name.header=Basiseigenschaften basicproperties.name.header=Name des Artikels
basicproperties.name.edit=Bearbeiten basicproperties.name.edit=Bearbeiten
basicproperties.title.header=Titel basicproperties.title.header=Titel
basicproperties.description.header=Zusammenfassung basicproperties.description.header=Zusammenfassung
createform.title=Neuen Artikel anlegen createform.title=Neuen Artikel anlegen
createform.summary.label=Zusammenfassung createform.summary.label=Zusammenfassung
createstep.workflow.none_selected=Es wurde keine Arbeitsablauf ausgew\u00e4hlt createstep.workflow.none_selected=Es wurde keine Arbeitsablauf ausgew\u00e4hlt
basicproperties.name.help=Der Name des Artikels. Darf nur die Buchstaben A bis Z, a bis z, Ziffern, den Bindestrich und den Unterstrich enthalten.
basicproperties.name.label=Name
basicproperties.header=Basiseigenschaften des Artikels {0}
basicproperties.name.edit.title=Name bearbeiten
basicproperties.name.edit.close=Abbrechen
basicproperties.name.edit.submit=Speichern