From d7dd75dfe08530ce3e9beb73dd7047cfc4bc9756 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sat, 6 Mar 2021 17:37:38 +0100 Subject: [PATCH] Views for managing lifecycles and workflows for content sections Former-commit-id: a745419bc0d71c2450982753cf5437813433ba10 --- .../ConfigurationLifecyclesController.java | 159 ++++++--- .../ConfigurationWorkflowController.java | 185 ++++++++++- .../librecms/ui/contentsections/Duration.java | 62 ++++ .../LifecycleDefinitionListModel.java | 2 +- .../contentsections/PhaseDefinitionModel.java | 58 +--- .../SelectedLifecycleDefinitionModel.java | 45 ++- .../SelectedPhaseDefinitionModel.java | 57 +++- .../SelectedWorkflowTaskTemplateModel.java | 68 +++- .../SelectedWorkflowTemplateModel.java | 48 ++- .../configuration/documenttypes.xhtml | 2 +- .../configuration/lifecycle-not-found.xhtml | 27 ++ .../configuration/lifecycle-phase.xhtml | 203 ++++++++++++ .../configuration/lifecycle.xhtml | 308 ++++++++++++++++++ .../lifecyclephase-not-found.xhtml | 28 ++ .../configuration/lifecycles.xhtml | 179 ++++++++++ .../configuration/workflow-not-found.xhtml | 28 ++ .../workflow-task-circular-dependency.xhtml | 28 ++ .../workflow-task-not-found.xhtml | 29 ++ .../configuration/workflow-task.xhtml | 180 ++++++++++ .../configuration/workflow.xhtml | 252 ++++++++++++++ .../configuration/workflows.xhtml | 178 ++++++++++ .../org/librecms/CmsAdminMessages.properties | 266 +++++++++++++++ .../librecms/CmsAdminMessages_de.properties | 266 +++++++++++++++ 23 files changed, 2552 insertions(+), 106 deletions(-) create mode 100644 ccm-cms/src/main/java/org/librecms/ui/contentsections/Duration.java rename ccm-cms/src/main/java/org/librecms/{contentsection => ui/contentsections}/LifecycleDefinitionListModel.java (96%) create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-not-found.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-phase.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecyclephase-not-found.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycles.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-not-found.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-circular-dependency.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-not-found.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow.xhtml create mode 100644 ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflows.xhtml diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationLifecyclesController.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationLifecyclesController.java index 95b7d2207..56b532ec9 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationLifecyclesController.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationLifecyclesController.java @@ -11,15 +11,16 @@ import org.libreccm.l10n.GlobalizationHelper; import org.libreccm.security.AuthorizationRequired; import org.librecms.contentsection.ContentSection; import org.librecms.contentsection.ContentSectionManager; -import org.librecms.contentsection.LifecycleDefinitionListModel; import org.librecms.lifecycle.LifecycleDefinition; import org.librecms.lifecycle.LifecycleDefinitionRepository; import org.librecms.lifecycle.LifecycleManager; import org.librecms.lifecycle.PhaseDefinition; import org.librecms.lifecycle.PhaseDefinititionRepository; +import java.util.List; import java.util.Locale; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import javax.enterprise.context.RequestScoped; @@ -133,7 +134,16 @@ public class ConfigurationLifecyclesController { ); } final LifecycleDefinition definition = definitionResult.get(); + selectedLifecycleDefModel.setDisplayLabel( + globalizationHelper.getValueFromLocalizedString( + definition.getLabel() + ) + ); selectedLifecycleDefModel.setUuid(definition.getUuid()); + + final List availableLocales = globalizationHelper + .getAvailableLocales(); + selectedLifecycleDefModel.setLabel( definition .getLabel() @@ -147,6 +157,16 @@ public class ConfigurationLifecyclesController { ) ) ); + final Set labelLocales = definition + .getLabel() + .getAvailableLocales(); + selectedLifecycleDefModel.setUnusedLabelLocales( + availableLocales + .stream() + .filter(locale -> !labelLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); selectedLifecycleDefModel.setDescription( definition .getDescription() @@ -160,6 +180,16 @@ public class ConfigurationLifecyclesController { ) ) ); + final Set descriptionLocales = definition + .getDescription() + .getAvailableLocales(); + selectedLifecycleDefModel.setUnusedDescriptionLocales( + availableLocales + .stream() + .filter(locale -> !descriptionLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); selectedLifecycleDefModel.setPhaseDefinitions( definition .getPhaseDefinitions() @@ -487,8 +517,12 @@ public class ConfigurationLifecyclesController { @PathParam("sectionIdentifier") final String sectionIdentifierParam, @PathParam("lifecycleIdentifier") final String lifecycleIdentiferParam, @FormParam("label") final String label, - @FormParam("defaultDelay") final long defaultDelay, - @FormParam("defaultDuration") final long defaultDuration + @FormParam("defaultDelayDays") final long defaultDelayDays, + @FormParam("defaultDelayHours") final long defaultDelayHours, + @FormParam("defaultDelayMinutes") final long defaultDelayMinutes, + @FormParam("defaultDurationDays") final long defaultDurationDays, + @FormParam("defaultDurationHours") final long defaultDurationHours, + @FormParam("defaultDurationMinutes") final long defaultDurationMinutes ) { final Optional sectionResult = sectionsUi .findContentSection(sectionIdentifierParam); @@ -512,8 +546,19 @@ public class ConfigurationLifecyclesController { final LifecycleDefinition definition = definitionResult.get(); final PhaseDefinition phaseDefinition = new PhaseDefinition(); - phaseDefinition.setDefaultDelay(defaultDelay); - phaseDefinition.setDefaultDuration(defaultDuration); + + final Duration defaultDelay = new Duration(); + defaultDelay.setDays(defaultDelayDays); + defaultDelay.setHours(defaultDelayHours); + defaultDelay.setMinutes(defaultDelayMinutes); + phaseDefinition.setDefaultDelay(defaultDelay.toMinutes()); + + final Duration defaultDuration = new Duration(); + defaultDuration.setDays(defaultDurationDays); + defaultDuration.setHours(defaultDurationHours); + defaultDuration.setMinutes(defaultDurationMinutes); + phaseDefinition.setDefaultDuration(defaultDuration.toMinutes()); + phaseDefinition .getLabel() .addValue(globalizationHelper.getNegotiatedLocale(), label); @@ -555,6 +600,13 @@ public class ConfigurationLifecyclesController { ); } final LifecycleDefinition definition = definitionResult.get(); + selectedLifecycleDefModel.setDisplayLabel( + globalizationHelper.getValueFromLocalizedString( + definition.getLabel() + ) + ); + selectedLifecycleDefModel.setUuid(definition.getUuid()); + final Optional phaseDefinitionResult = findPhaseDefinition(definition, sectionIdentifierParam); if (!phaseDefinitionResult.isPresent()) { @@ -564,12 +616,24 @@ public class ConfigurationLifecyclesController { phaseIdentifierParam ); } + final PhaseDefinition phaseDefinition = phaseDefinitionResult.get(); - selectedPhaseDefModel.setDefaultDelay(phaseDefinition.getDefaultDelay()); + selectedPhaseDefModel.setDefaultDelay( + Duration.fromMinutes( + phaseDefinition.getDefaultDelay() + ) + ); selectedPhaseDefModel.setDefaultDuration( - phaseDefinition.getDefaultDuration() + Duration.fromMinutes( + phaseDefinition.getDefaultDuration() + ) ); selectedPhaseDefModel.setDefinitionId(phaseDefinition.getDefinitionId()); + final List availableLocales + = globalizationHelper.getAvailableLocales(); + final Set descriptionLocales = phaseDefinition + .getDescription() + .getAvailableLocales(); selectedPhaseDefModel.setDescription( phaseDefinition .getDescription() @@ -583,6 +647,16 @@ public class ConfigurationLifecyclesController { ) ) ); + selectedPhaseDefModel.setUnusedDescriptionLocales( + availableLocales + .stream() + .filter(locale -> !descriptionLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + final Set labelLocales = phaseDefinition + .getLabel() + .getAvailableLocales(); selectedPhaseDefModel.setLabel( phaseDefinition .getLabel() @@ -596,6 +670,19 @@ public class ConfigurationLifecyclesController { ) ) ); + selectedPhaseDefModel.setUnusedLabelLocales( + availableLocales + .stream() + .filter(locale -> !labelLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + selectedPhaseDefModel.setDisplayLabel( + globalizationHelper.getValueFromLocalizedString( + phaseDefinition.getLabel() + ) + ); + return "org/librecms/ui/contentsection/configuration/lifecycle-phase.xhtml"; } @@ -607,8 +694,12 @@ public class ConfigurationLifecyclesController { @PathParam("sectionIdentifier") final String sectionIdentifierParam, @PathParam("lifecycleIdentifier") final String lifecycleIdentiferParam, @PathParam("phaseIdentifier") final String phaseIdentifierParam, - @FormParam("defaultDelay") final long defaultDelay, - @FormParam("defaultDuration") final long defaultDuration + @FormParam("defaultDelayDays") final long defaultDelayDays, + @FormParam("defaultDelayHours") final long defaultDelayHours, + @FormParam("defaultDelayMinutes") final long defaultDelayMinutes, + @FormParam("defaultDurationDays") final long defaultDurationDays, + @FormParam("defaultDurationHours") final long defaultDurationHours, + @FormParam("defaultDurationMinutes") final long defaultDurationMinutes ) { final Optional sectionResult = sectionsUi .findContentSection(sectionIdentifierParam); @@ -640,8 +731,18 @@ public class ConfigurationLifecyclesController { ); } final PhaseDefinition phaseDefinition = phaseDefinitionResult.get(); - phaseDefinition.setDefaultDelay(defaultDelay); - phaseDefinition.setDefaultDuration(defaultDuration); + + final Duration defaultDelay = new Duration(); + defaultDelay.setDays(defaultDelayDays); + defaultDelay.setHours(defaultDelayHours); + defaultDelay.setMinutes(defaultDelayMinutes); + phaseDefinition.setDefaultDelay(defaultDelay.toMinutes()); + + final Duration defaultDuration = new Duration(); + defaultDuration.setDays(defaultDurationDays); + defaultDuration.setHours(defaultDurationHours); + defaultDuration.setMinutes(defaultDurationMinutes); + phaseDefinition.setDefaultDuration(defaultDuration.toMinutes()); phaseDefinititionRepo.save(phaseDefinition); @@ -1079,43 +1180,21 @@ public class ConfigurationLifecyclesController { final PhaseDefinition definition ) { final PhaseDefinitionModel model = new PhaseDefinitionModel(); - model.setDefaultDelay(definition.getDefaultDelay()); - model.setDefaultDuration(definition.getDefaultDuration()); + model.setDefaultDelay( + Duration.fromMinutes(definition.getDefaultDelay()) + ); + model.setDefaultDuration( + Duration.fromMinutes(definition.getDefaultDuration()) + ); model.setDefinitionId(definition.getDefinitionId()); model.setDescription( - definition - .getDescription() - .getValues() - .entrySet() - .stream() - .collect( - Collectors.toMap( - entry -> entry.getKey().toString(), - entry -> entry.getValue() - ) - ) - ); - model.setDisplayDescription( globalizationHelper .getValueFromLocalizedString(definition.getDescription()) ); - model.setDisplayLabel( + model.setLabel( globalizationHelper .getValueFromLocalizedString(definition.getLabel()) ); - model.setLabel( - definition - .getLabel() - .getValues() - .entrySet() - .stream() - .collect( - Collectors.toMap( - entry -> entry.getKey().toString(), - entry -> entry.getValue() - ) - ) - ); return model; } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationWorkflowController.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationWorkflowController.java index 160d10459..888eed706 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationWorkflowController.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/ConfigurationWorkflowController.java @@ -19,8 +19,10 @@ import org.libreccm.workflow.WorkflowRepository; import org.librecms.contentsection.ContentSection; import org.librecms.contentsection.ContentSectionManager; +import java.util.List; import java.util.Locale; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import javax.enterprise.context.RequestScoped; @@ -136,6 +138,14 @@ public class ConfigurationWorkflowController { return showWorkflowTemplateNotFound(section, workflowIdentiferParam); } final Workflow workflow = workflowResult.get(); + selectedWorkflowTemplateModel.setDisplayName( + globalizationHelper.getValueFromLocalizedString( + workflow.getName() + ) + ); + + final List availableLocales = globalizationHelper + .getAvailableLocales(); selectedWorkflowTemplateModel.setDescription( workflow .getDescription() @@ -149,6 +159,18 @@ public class ConfigurationWorkflowController { ) ) ); + final Set descriptionLocales = workflow + .getDescription() + .getAvailableLocales(); + selectedWorkflowTemplateModel + .setUnusedDescriptionLocales( + availableLocales + .stream() + .filter(locale -> !descriptionLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + selectedWorkflowTemplateModel.setName( workflow .getName() @@ -162,6 +184,18 @@ public class ConfigurationWorkflowController { ) ) ); + final Set nameLocales = workflow + .getName() + .getAvailableLocales(); + selectedWorkflowTemplateModel + .setUnusedNameLocales( + availableLocales + .stream() + .filter(locale -> !nameLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + selectedWorkflowTemplateModel.setTasks( workflow .getTasks() @@ -478,6 +512,152 @@ public class ConfigurationWorkflowController { ); } + @GET + @Path("/{workflowIdentifier}/tasks") + @AuthorizationRequired + @Transactional(Transactional.TxType.REQUIRED) + public String showTask( + @PathParam("sectionIdentifier") final String sectionIdentifierParam, + @PathParam("workflowIdentifier") final String workflowIdentiferParam, + @PathParam("taskIdentifier") final String taskIdentifierParam + ) { + final Optional sectionResult = sectionsUi + .findContentSection(sectionIdentifierParam); + if (!sectionResult.isPresent()) { + sectionsUi.showContentSectionNotFound(sectionIdentifierParam); + } + final ContentSection section = sectionResult.get(); + if (!adminPermissionsChecker.canAdministerLifecycles(section)) { + return sectionsUi.showAccessDenied( + "sectionIdentifier", sectionIdentifierParam + ); + } + + final Optional workflowResult = findWorkflowTemplate( + section, workflowIdentiferParam + ); + if (!workflowResult.isPresent()) { + return showWorkflowTemplateNotFound(section, workflowIdentiferParam); + } + final Workflow workflow = workflowResult.get(); + final Optional taskResult = findTaskTemplate( + workflow, taskIdentifierParam + ); + if (!taskResult.isPresent()) { + return showWorkflowTaskTemplateNotFound( + section, workflowIdentiferParam, taskIdentifierParam + ); + } + final Task task = taskResult.get(); + selectedWorkflowTaskTemplateModel.setTaskId(task.getTaskId()); + selectedWorkflowTaskTemplateModel.setUuid(task.getUuid()); + selectedWorkflowTaskTemplateModel.setDisplayLabel( + globalizationHelper.getValueFromLocalizedString( + task.getLabel() + ) + ); + + selectedWorkflowTemplateModel.setUuid(workflow.getUuid()); + selectedWorkflowTemplateModel.setDisplayName( + globalizationHelper.getValueFromLocalizedString( + workflow.getName() + ) + ); + + final List availableLocales = globalizationHelper + .getAvailableLocales(); + + selectedWorkflowTaskTemplateModel.setLabel( + task + .getLabel() + .getValues() + .entrySet() + .stream() + .collect( + Collectors.toMap( + entry -> entry.getKey().toString(), + entry -> entry.getValue() + ) + ) + ); + final Set labelLocales = task.getLabel().getAvailableLocales(); + selectedWorkflowTaskTemplateModel + .setUnusedLabelLocales( + availableLocales + .stream() + .filter(locale -> !labelLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + + selectedWorkflowTaskTemplateModel.setDescription( + task + .getDescription() + .getValues() + .entrySet() + .stream() + .collect( + Collectors.toMap( + entry -> entry.getKey().toString(), + entry -> entry.getValue() + ) + ) + ); + final Set descriptionLocales = task + .getDescription() + .getAvailableLocales(); + selectedWorkflowTaskTemplateModel.setUnusedDescriptionLocales( + availableLocales + .stream() + .filter(locale -> !descriptionLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + + selectedWorkflowTaskTemplateModel.setBlockedTasks( + task + .getBlockedTasks() + .stream() + .map(dependency -> dependency.getBlockedTask()) + .map(this::buildWorkflowTaskTemplateListModel) + .collect(Collectors.toList()) + ); + final List blockingTasks = task + .getBlockingTasks() + .stream() + .map(dependency -> dependency.getBlockingTask()) + .collect(Collectors.toList()); + selectedWorkflowTaskTemplateModel.setBlockingTasks( + blockingTasks + .stream() + .map(this::buildWorkflowTaskTemplateListModel) + .collect(Collectors.toList()) + ); + + selectedWorkflowTaskTemplateModel.setNoneBlockingTasks( + workflow + .getTasks() + .stream() + .filter(workflowTask -> !workflowTask.equals(task)) + .filter( + workflowTask -> !blockingTasks.contains(workflowTask) + ) + .collect( + Collectors.toMap( + workflowTask -> String.format( + "UUID-%s", workflowTask.getUuid() + ), + workflowTask -> globalizationHelper + .getValueFromLocalizedString( + workflowTask.getLabel() + ) + ) + ) + ); + + return "org/librecms/ui/contentsection/configuration/workflow-task.xhtml"; + } + @POST @Path("/{workflowIdentifier}/tasks/@add") @AuthorizationRequired @@ -869,7 +1049,7 @@ public class ConfigurationWorkflowController { @POST @Path( - "/{workflowIdentifier}/tasks/{taskIdentifier}/blockingTasks/@add") + "/{workflowIdentifier}/tasks/{taskIdentifier}/blocking-tasks/@add") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) public String addBlockingTask( @@ -923,7 +1103,8 @@ public class ConfigurationWorkflowController { models.put("workflowTemplateIdentifier", workflowIdentiferParam); models.put("blockedTaskIdentifier", taskIdentifierParam); models.put("blockingTaskIdentifier", blockingTaskParam); - return "org/librecms/ui/contentsection/configuration/workflowtask-circular-dependency.xhtml"; + + return "org/librecms/ui/contentsection/configuration/workflow-task-circular-dependency.xhtml"; } return String.format( diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/Duration.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/Duration.java new file mode 100644 index 000000000..42c1a9fd2 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/Duration.java @@ -0,0 +1,62 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.ui.contentsections; + +/** + * + * @author Jens Pelzetter + */ +public class Duration { + + private long days; + + private long hours; + + private long minutes; + + public static Duration fromMinutes(final long value) { + final long days = value / (24 * 60); + final long daysReminder = value % (24 * 60); + final long hours = daysReminder / 60; + final long minutes = daysReminder % 60; + + final Duration result = new Duration(); + result.setDays(days); + result.setHours(hours); + result.setMinutes(minutes); + return result; + } + + public long getDays() { + return days; + } + + public void setDays(final long days) { + this.days = days; + } + + public long getHours() { + return hours; + } + + public void setHours(final long hours) { + this.hours = hours; + } + + public long getMinutes() { + return minutes; + } + + public void setMinutes(final long minutes) { + this.minutes = minutes; + } + + public long toMinutes() { + return days * 24 * 60 + hours * 60 + minutes; + } + + +} diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/LifecycleDefinitionListModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/LifecycleDefinitionListModel.java similarity index 96% rename from ccm-cms/src/main/java/org/librecms/contentsection/LifecycleDefinitionListModel.java rename to ccm-cms/src/main/java/org/librecms/ui/contentsections/LifecycleDefinitionListModel.java index 23a828ab9..70c281ab3 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/LifecycleDefinitionListModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/LifecycleDefinitionListModel.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package org.librecms.contentsection; +package org.librecms.ui.contentsections; /** * diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/PhaseDefinitionModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/PhaseDefinitionModel.java index 7ca10e808..7e47f7bb1 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/PhaseDefinitionModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/PhaseDefinitionModel.java @@ -5,10 +5,6 @@ */ package org.librecms.ui.contentsections; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - /** * * @author Jens Pelzetter @@ -16,18 +12,14 @@ import java.util.Map; public class PhaseDefinitionModel { private long definitionId; + + private String label; - private String displayLabel; + private String description; - private Map label; + private Duration defaultDelay; - private String displayDescription; - - private Map description; - - private long defaultDelay; - - private long defaultDuration; + private Duration defaultDuration; public long getDefinitionId() { return definitionId; @@ -37,51 +29,35 @@ public class PhaseDefinitionModel { this.definitionId = definitionId; } - public String getDisplayLabel() { - return displayLabel; + public String getLabel() { + return label; } - public void setDisplayLabel(final String displayLabel) { - this.displayLabel = displayLabel; + public void setLabel(final String label) { + this.label = label; } - public Map getLabel() { - return Collections.unmodifiableMap(label); + public String getDescription() { + return description; } - public void setLabel(final Map label) { - this.label = new HashMap<>(label); + public void setDescription(final String description) { + this.description = description; } - public String getDisplayDescription() { - return displayDescription; - } - - public void setDisplayDescription(final String displayDescription) { - this.displayDescription = displayDescription; - } - - public Map getDescription() { - return Collections.unmodifiableMap(description); - } - - public void setDescription(final Map description) { - this.description = new HashMap<>(description); - } - - public long getDefaultDelay() { + public Duration getDefaultDelay() { return defaultDelay; } - public void setDefaultDelay(final long defaultDelay) { + public void setDefaultDelay(final Duration defaultDelay) { this.defaultDelay = defaultDelay; } - public long getDefaultDuration() { + public Duration getDefaultDuration() { return defaultDuration; } - public void setDefaultDuration(final long defaultDuration) { + public void setDefaultDuration(final Duration defaultDuration) { this.defaultDuration = defaultDuration; } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedLifecycleDefinitionModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedLifecycleDefinitionModel.java index dc4cb3247..a824df44a 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedLifecycleDefinitionModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedLifecycleDefinitionModel.java @@ -23,13 +23,19 @@ import javax.inject.Named; public class SelectedLifecycleDefinitionModel { private String uuid; - + + private String displayLabel; + private Map label; - private Map description; + private List unusedLabelLocales; + private Map description; + private List phaseDefinitions; + private List unusedDescriptionLocales; + public Map getLabel() { return Collections.unmodifiableMap(label); } @@ -64,4 +70,39 @@ public class SelectedLifecycleDefinitionModel { this.uuid = uuid; } + public String getDisplayLabel() { + return displayLabel; + } + + public void setDisplayLabel(final String displayLabel) { + this.displayLabel = displayLabel; + } + + public List getUnusedLabelLocales() { + return Collections.unmodifiableList(unusedLabelLocales); + } + + public void setUnusedLabelLocales(final List unusedLabelLocales) { + this.unusedLabelLocales = new ArrayList<>(unusedLabelLocales); + } + + public boolean getHasUnusedLabelLocales() { + return !unusedLabelLocales.isEmpty(); + } + + public List getUnusedDescriptionLocales() { + return Collections.unmodifiableList(unusedDescriptionLocales); + } + + public void setUnusedDescriptionLocales( + final List unusedDescriptionLocales + ) { + this.unusedDescriptionLocales + = new ArrayList<>(unusedDescriptionLocales); + } + + public boolean getHasUnusedDescriptionLocales() { + return !unusedDescriptionLocales.isEmpty(); + } + } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedPhaseDefinitionModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedPhaseDefinitionModel.java index 1f2e6dce0..a25fece65 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedPhaseDefinitionModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedPhaseDefinitionModel.java @@ -5,8 +5,10 @@ */ package org.librecms.ui.contentsections; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.enterprise.context.RequestScoped; @@ -21,14 +23,20 @@ import javax.inject.Named; public class SelectedPhaseDefinitionModel { private long definitionId; - + private Map label; + + private String displayLabel; + + private List unusedLabelLocales; private Map description; - private long defaultDelay; + private List unusedDescriptionLocales; - private long defaultDuration; + private Duration defaultDelay; + + private Duration defaultDuration; public long getDefinitionId() { return definitionId; @@ -54,20 +62,55 @@ public class SelectedPhaseDefinitionModel { this.description = new HashMap<>(description); } - public long getDefaultDelay() { + public Duration getDefaultDelay() { return defaultDelay; } - public void setDefaultDelay(final long defaultDelay) { + public void setDefaultDelay(final Duration defaultDelay) { this.defaultDelay = defaultDelay; } - public long getDefaultDuration() { + public Duration getDefaultDuration() { return defaultDuration; } - public void setDefaultDuration(final long defaultDuration) { + public void setDefaultDuration(final Duration defaultDuration) { this.defaultDuration = defaultDuration; } + public List getUnusedLabelLocales() { + return Collections.unmodifiableList(unusedLabelLocales); + } + + public void setUnusedLabelLocales(final List unusedLabelLocales) { + this.unusedLabelLocales = new ArrayList<>(unusedLabelLocales); + } + + public List getUnusedDescriptionLocales() { + return Collections.unmodifiableList(unusedDescriptionLocales); + } + + public void setUnusedDescriptionLocales( + final List unusedDescriptionLocales + ) { + this.unusedDescriptionLocales = new ArrayList<>(unusedDescriptionLocales); + } + + public boolean getHasUnusedLabelLocales() { + return !unusedLabelLocales.isEmpty(); + } + + public boolean getHasUnusedDescriptionLocales() { + return !unusedDescriptionLocales.isEmpty(); + } + + public String getDisplayLabel() { + return displayLabel; + } + + public void setDisplayLabel(final String displayLabel) { + this.displayLabel = displayLabel; + } + + } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTaskTemplateModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTaskTemplateModel.java index 0d8be3728..74a601ce0 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTaskTemplateModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTaskTemplateModel.java @@ -21,20 +21,28 @@ import javax.inject.Named; @RequestScoped @Named("SelectedWorkflowTaskTemplateModel") public class SelectedWorkflowTaskTemplateModel { - + private long taskId; - + private String uuid; - + + private String displayLabel; + private Map label; - + + private List unusedLabelLocales; + private Map description; - + + private List unusedDescriptionLocales; + private List blockedTasks; private List blockingTasks; - - public long getTaskId() { + + private Map noneBlockingTasks; + + public long getTaskId() { return taskId; } @@ -86,5 +94,49 @@ public class SelectedWorkflowTaskTemplateModel { this.blockingTasks = new ArrayList<>(blockingTasks); } - + public List getUnusedLabelLocales() { + return Collections.unmodifiableList(unusedLabelLocales); + } + + public void setUnusedLabelLocales(final List unusedLabelLocales) { + this.unusedLabelLocales = new ArrayList<>(unusedLabelLocales); + } + + public List getUnusedDescriptionLocales() { + return Collections.unmodifiableList(unusedDescriptionLocales); + } + + public void setUnusedDescriptionLocales( + final List unusedDescriptionLocales + ) { + this.unusedDescriptionLocales + = new ArrayList<>(unusedDescriptionLocales); + } + + public boolean getHasUnusedLabelLocales() { + return !unusedLabelLocales.isEmpty(); + } + + public boolean getHasUnusedDescriptionLocales() { + return !unusedDescriptionLocales.isEmpty(); + } + + public String getDisplayLabel() { + return displayLabel; + } + + public void setDisplayLabel(final String displayLabel) { + this.displayLabel = displayLabel; + } + + public Map getNoneBlockingTasks() { + return Collections.unmodifiableMap(noneBlockingTasks); + } + + public void setNoneBlockingTasks( + final Map noneBlockingTasks + ) { + this.noneBlockingTasks = new HashMap<>(noneBlockingTasks); + } + } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTemplateModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTemplateModel.java index 03713519d..17c33b161 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTemplateModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/SelectedWorkflowTemplateModel.java @@ -21,15 +21,21 @@ import javax.inject.Named; @RequestScoped @Named("SelectedWorkflowTemplateModel") public class SelectedWorkflowTemplateModel { - + private long workflowId; - + private String uuid; + private String displayName; + private Map name; - + + private List unusedNameLocales; + private Map description; - + + private List unusedDescriptionLocales; + private List tasks; public long getWorkflowId() { @@ -71,7 +77,41 @@ public class SelectedWorkflowTemplateModel { public void setTasks(final List tasks) { this.tasks = new ArrayList<>(tasks); } + + public List getUnusedNameLocales() { + return Collections.unmodifiableList(unusedNameLocales); + } + + public void setUnusedNameLocales(final List unusedNameLocales) { + this.unusedNameLocales = new ArrayList<>(unusedNameLocales); + } + + public List getUnusedDescriptionLocales() { + return Collections.unmodifiableList(unusedDescriptionLocales); + } + + public void setUnusedDescriptionLocales( + final List unusedDescriptionLocales + ) { + this.unusedDescriptionLocales + = new ArrayList<>(unusedDescriptionLocales); + } + public boolean getHasUnusedNameLocales() { + return !unusedNameLocales.isEmpty(); + } + public boolean getHasUnusedDescriptionLocales() { + return !unusedDescriptionLocales.isEmpty(); + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(final String displayName) { + this.displayName = displayName; + } + } diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/documenttypes.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/documenttypes.xhtml index da3fdfcd3..298a57ffb 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/documenttypes.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/documenttypes.xhtml @@ -299,7 +299,7 @@ buttonText="#{CmsAdminMessages['contentsection.configuration.documenttypes.remove_button.label']}" cancelLabel="#{CmsAdminMessages['contentsection.configuration.documenttypes.remove_dialog.cancel']}" confirmLabel="#{CmsAdminMessages['contentsection.configuration.documenttypes.remove_dialog.confirm']}" - dialogId="documenttype-#{type.uuid}-remove-dialog-title" + dialogId="documenttype-#{type.uuid}-remove-dialog" dialogTitle="#{CmsAdminMessages['contentsection.configuration.documenttypes.remove_dialog.title']}" message="#{CmsAdminMessages.getMessage('contentsection.configuration.documenttypes.remove_dialog.message', [ContentSectionModel.sectionName, type.label])}" /> diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-not-found.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-not-found.xhtml new file mode 100644 index 000000000..d7744c820 --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-not-found.xhtml @@ -0,0 +1,27 @@ +]> + + + + + + + + + + +
+ +
+
+
+ + + diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-phase.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-phase.xhtml new file mode 100644 index 000000000..644e65d54 --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle-phase.xhtml @@ -0,0 +1,203 @@ +]> + + + + + + + + + + + + + + + +
+ + + + + + + + + + +

#{CmsAdminMessages.getMessage('contentsection.configuration.lifecycle.phase_details.title', [SelectedLifecycleDefinitionModel.displayLabel ,SelectedPhaseDefinitionModel.displayLabel])}

+ +

#{CmsAdminMessages['contentsection.configuration.lifecycle.phase_details.properties']}

+
+
+
+ #{CmsAdminMessages['contentsection.configuration.lifecycles.phase_details.default_delay.label']} +
+
+ #{SelectedPhaseDefinitionModel.defaultDelay} +
+
+
+
+ #{CmsAdminMessages['contentsection.configuration.lifecycles.phase_details.default_duration.label']} +
+
+ #{SelectedPhaseDefinitionModel.defaultDuration} +
+
+
+ + + + + + + + +
+ +
+ +
+ diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle.xhtml new file mode 100644 index 000000000..3b5c0a294 --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycle.xhtml @@ -0,0 +1,308 @@ +]> + + + + + + + + + + + + + +
+ + + + + + + + + + +

#{CmsAdminMessages.getMessage('contentsection.configuration.lifecycles.lifecycle_details.title', [SelectedLifecycleDefinitionModel.displayLabel])}

+ + + + + +

#{CmsAdminMessages['contentsection.configuration.lifecycles.lifecycle_details.phases.title']}

+ +
+
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + +
+ #{CmsAdminMessages['contentsection.configuration.lifecycle.phases.table.cols.label']} + + #{CmsAdminMessages['contentsection.configuration.lifecycle.phases.table.cols.default_delay']} + + #{CmsAdminMessages['contentsection.configuration.lifecycle.phases.table.cols.default_duration']} + + #{CmsAdminMessages['contentsection.configuration.lifecycle.phases.table.cols.actions']} +
+ + #{phaseDef.label} + + #{phaseDef.defaultDelay}#{phaseDef.defaultDuration} + + + + +
+
+
+ +
+ diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecyclephase-not-found.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecyclephase-not-found.xhtml new file mode 100644 index 000000000..ae6215ffc --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecyclephase-not-found.xhtml @@ -0,0 +1,28 @@ +]> + + + + + + + + + + +
+ +
+
+
+ + + + diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycles.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycles.xhtml new file mode 100644 index 000000000..857bc523f --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/lifecycles.xhtml @@ -0,0 +1,179 @@ +]> + + + + + + + + + + + + +
+ + + + +

#{CmsAdminMessages['contentsection.configuration.lifecycles.title']}

+ + + + + + + +
+
+ +
+ + +
+ + + + + + + + + + + + + + + + +
+ #{CmsAdminMessages['contentsection.configuration.lifecycles.table.cols.label']} + + #{CmsAdminMessages['contentsection.configuration.lifecycles.table.cols.actions']} +
+ + #{lifecycleDef.label} + + + + + + +
+
+
+ +
+ diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-not-found.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-not-found.xhtml new file mode 100644 index 000000000..3d5b131d4 --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-not-found.xhtml @@ -0,0 +1,28 @@ +]> + + + + + + + + + + +
+ +
+
+
+ + + + diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-circular-dependency.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-circular-dependency.xhtml new file mode 100644 index 000000000..c39a95e0d --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-circular-dependency.xhtml @@ -0,0 +1,28 @@ +]> + + + + + + + + + + +
+ +
+
+
+ + + + diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-not-found.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-not-found.xhtml new file mode 100644 index 000000000..4040a4bde --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task-not-found.xhtml @@ -0,0 +1,29 @@ +]> + + + + + + + + + + +
+ +
+
+
+ + + + + diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task.xhtml new file mode 100644 index 000000000..9449920f6 --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow-task.xhtml @@ -0,0 +1,180 @@ +]> + + + + + + + + + + + + + + + +
+ + + + + + + + + + +

#{CmsAdminMessages.getMessage('contentsection.configuration.workflow.task_details.title', [SelectedWorkflowTemplateModel.displayName ,SelectedWorkflowTaskTemplateModel.displayLabel])}

+ + + + + +

#{CmsAdminMessages['contentsection.configuration.workflows.task_details.blocking_tasks.title']}

+ +
+
+ +
+ + +
+
+ +
+ +
+ + \ No newline at end of file diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow.xhtml new file mode 100644 index 000000000..634db0020 --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflow.xhtml @@ -0,0 +1,252 @@ +]> + + + + + + + + + + + + + +
+ + + + + + + + + + +

#{CmsAdminMessages.getMessage('contentsection.configuration.workflows.workflow_details.title', [SelectedWorkflowTemplateModel.displayName])}

+
+ + + + + +

#{CmsAdminMessages['contentsection.configuration.workflows.workflow_details.tasks.title']}

+ +
+
+ +
+ + + + + + + + + + + + + + + + + + +
+ #{CmsAdminMessages['contentsection.configuration.workflow.tasks.table.cols.label']} + + #{CmsAdminMessages['contentsection.configuration.workflow.tasks.table.cols.actions']} +
+ + #{task.label} + + + + + + +
+ +
+ +
+ +
+ diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflows.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflows.xhtml new file mode 100644 index 000000000..20238485b --- /dev/null +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/configuration/workflows.xhtml @@ -0,0 +1,178 @@ +]> + + + + + + + + + + + + +
+ + + + +

#{CmsAdminMessages['contentsection.configuration.workflows.title']}

+ + + + + + + +
+
+ +
+ + +
+ + + + + + + + + + + + + + + + +
+ #{CmsAdminMessages['contentsection.configuration.workflows.table.cols.name']} + + #{CmsAdminMessages['contentsection.configuration.workflows.table.cols.actions']} +
+ + #{workflowTemplate.name} + + + + + + +
+
+
+
+ diff --git a/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages.properties b/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages.properties index 96554b109..724d17546 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages.properties @@ -424,3 +424,269 @@ contentsection.configuration.documenttypes.remove_dialog.cancel=Cancel contentsection.configuration.documenttypes.remove_dialog.confirm=Remove Document Type contentsection.configuration.documenttypes.remove_dialog.title=Confirm Document Type removal contentsection.configuration.documenttypes.remove_dialog.message=Are you sure to remove the document type {1} from content section {0}? +contentsection.configuration.lifecycles.add=Add lifecycle definition +contentsection.configuration.lifecycles.add.dialog.title=Add a lifecycle definition to content section {0} +'contentsection.configuration.lifecycles.add.dialog.close=Cancel +contentsection.configuration.lifecycles.add.dialog.label.help=Label for the new lifecycle definition +contentsection.configuration.lifecycles.add.dialog.label.label=Label +contentsection.configuration.lifecycles.add.dialog.submit=Add lifecycle definition +contentsection.configuration.lifecycles.table.cols.label=Label +contentsection.configuration.lifecycles.table.cols.actions=Actions +contentsection.configuration.lifecycles.table.info_button.label=Show description +contentsection.configuration.lifecycles.info.dialog.title=Description of lifecycle definition {0} +contentsection.configuration.lifecycles.info.dialog.close=Close +contentsection.configuration.lifecycles.delete_button.label=Delete +contentsection.configuration.lifecycles.delete_dialog.cancel=Cancel +contentsection.configuration.lifecycles.delete_dialog.confirm=Delete lifecycle definition +'contentsection.configuration.lifecycles.delete_dialog.title=Confirm lifecycle definition deletion +contentsection.configuration.lifecycles.delete_dialog.message=Are your sure to delete the lifecycle definition {1} for Content Section {0}? +contentsection.configuration.lifecycles.lifecycle_details.title=Details of Lifecycle Definition {0} +contentsection.configuration.lifecycles.lifecycle_details.label.add.button=Add localized label +contentsection.configuration.lifecycles.lifecycle_details.label.add.cancel=Cancel +contentsection.configuration.lifecycles.lifecycle_details.label.add.locale.help=Language of label +contentsection.configuration.lifecycles.lifecycle_details.label.add.locale.label=Locale +contentsection.configuration.lifecycles.lifecycle_details.label.locale.add.submit=Add label +contentsection.configuration.lifecycles.lifecycle_details.label.add.title=Add localized label +contentsection.configuration.lifecycles.lifecycle_details.label.add.value.help=The localized label +contentsection.configuration.lifecycles.lifecycle_details.label.add.value.label=Label +contentsection.configuration.lifecycles.lifecycle_details.label.edit.button=Edit +contentsection.configuration.lifecycles.lifecycle_details.label.edit.cancel=Cancel +contentsection.configuration.lifecycles.lifecycle_details.label.edit.submit=Save +contentsection.configuration.lifecycles.lifecycle_details.label.edit.title=Edit localized label +contentsection.configuration.lifecycles.lifecycle_details.label.edit.value.help=The localized label +contentsection.configuration.lifecycles.lifecycle_details.label.edit.value.label=Label +contentsection.configuration.lifecycles.lifecycle_details.label.remove.button=Remove +contentsection.configuration.lifecycles.lifecycle_details.label.remove.cancel=Cancel +contentsection.configuration.lifecycles.lifecycle_details.label.remove.submit=Remove +contentsection.configuration.lifecycles.lifecycle_details.label.remove.text=Are you sure to remove this localized label? +contentsection.configuration.lifecycles.lifecycle_details.label.remove.title=Confirm localized label removal +contentsection.configuration.lifecycles.lifecycle_details.label.title=Label +contentsection.configuration.lifecycles.lifecycle_details.description.add.button=Add localized description +contentsection.configuration.lifecycles.lifecycle_details.description.add.cancel=Cancel +contentsection.configuration.lifecycles.lifecycle_details.description.add.locale.help=The locale of the localized description +contentsection.configuration.lifecycles.lifecycle_details.description.add.locale.description=Locale +contentsection.configuration.lifecycles.lifecycle_details.description.locale.add.submit=Add +contentsection.configuration.lifecycles.lifecycle_details.description.add.title=Add localized description +contentsection.configuration.lifecycles.lifecycle_details.description.add.value.help=The localized description +contentsection.configuration.lifecycles.lifecycle_details.description.add.value.description=Description +contentsection.configuration.lifecycles.lifecycle_details.description.edit.button=Edit +contentsection.configuration.lifecycles.lifecycle_details.description.edit.cancel=Cancel +contentsection.configuration.lifecycles.lifecycle_details.description.edit.submit=Save +contentsection.configuration.lifecycles.lifecycle_details.description.edit.title=Edit localized description +contentsection.configuration.lifecycles.lifecycle_details.description.edit.value.help=The localized description +contentsection.configuration.lifecycles.lifecycle_details.description.edit.value.description=Description +contentsection.configuration.lifecycles.lifecycle_details.description.remove.button=Remove +contentsection.configuration.lifecycles.lifecycle_details.description.remove.cancel=Cancel +contentsection.configuration.lifecycles.lifecycle_details.description.remove.submit=Remove +contentsection.configuration.lifecycles.lifecycle_details.description.remove.text=Are your sure to remove this localized description? +contentsection.configuration.lifecycles.lifecycle_details.description.remove.title=Confirm localized description removal +contentsection.configuration.lifecycles.lifecycle_details.description.title=Description +contentsection.configuration.lifecycle.phases.add=Add a new phase definition +contentsection.configuration.lifecycle.phases.add.dialog.title=Add a phase definition to lifecycle definition {1} of content section {0} +contentsection.configuration.lifecycle.phases.add.dialog.close=Abbrechen +contentsection.configuration.lifecycle.phases.add.dialog.label.help=The label of the new phase definition +contentsection.configuration.lifecycle.phases.add.dialog.label.label=Label +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.help=Default value for delayed start +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.label=Default delay +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help=Default value for the duration of the phase. 0 means that the phase lasts forever. +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label=Default duration +contentsection.configuration.lifecycle.phases.add.dialog.submit=Add phase definition +contentsection.configuration.lifecycle.phases.table.cols.label=Label +contentsection.configuration.lifecycle.phases.table.cols.default_delay=Default Delay +contentsection.configuration.lifecycle.phases.table.cols.default_duration=Default duration +contentsection.configuration.lifecycle.phases.table.cols.actions=Actions +contentsection.configuration.lifecycle.phases.table.info_button.label=Show description +contentsection.configuration.lifecycle.phases.info.dialog.title=Description of phase definition {2} of lifecycle definition {1} of Content Section {0} +contentsection.configuration.lifecycle.phases.info.dialog.close=Close +contentsection.configuration.lifecycle.phases.remove.button.label=Delete +contentsection.configuration.lifecycle.phases.remove.dialog.close=Cancel +contentsection.configuration.lifecycle.phases.remove.dialog.confirm=Delete +contentsection.configuration.lifecycle.phases.remove.dialog.title=Confirm phase definition deletion +contentsection.configuration.lifecycle.phases.remove.dialog.message=Are you sure to delete the phase definition {2} of the lifecycle definition {1} of the Content Section {0}? +contentsection.configuration.lifecycle.phase_details.title=Details Phase Definition {1} of Lifecycle Definition {0} +contentsection.configuration.lifecycle.phase_details.properties=Properties +contentsection.configuration.lifecycles.phase_details.default_delay.label=Default Delay +contentsection.configuration.lifecycles.phase_details.default_duration.label=Default duration +contentsection.configuration.lifecycle.phase_details.properties.edit=Edit Phase Definition Properties +contentsection.configuration.lifecycle.phase_details.properties.edit.title=Edit properties of phase definition {2} of lifecycle definition {1} of content section {0} +contentsection.configuration.lifecycle.phase_details.properties.edit.close=Cancel +contentsection.configuration.lifecycle.phase_details.properties.edit.submit=Save +contentsection.configuration.lifecycles.phase_details.label.add.button=Add localized label +contentsection.configuration.lifecycles.phase_details.label.add.cancel=Cancel +contentsection.configuration.lifecycles.phase_details.label.add.locale.help=The locale of the localized label +contentsection.configuration.lifecycles.phase_details.label.add.locale.label=Locale +contentsection.configuration.lifecycles.phase_details.label.locale.add.submit=Add +contentsection.configuration.lifecycles.phase_details.label.add.title=Add localized label +contentsection.configuration.lifecycles.phase_details.label.add.value.help=The localized label +contentsection.configuration.lifecycles.phase_details.label.add.value.label=Label +contentsection.configuration.lifecycles.phase_details.label.edit.button=Edit +contentsection.configuration.lifecycles.phase_details.label.edit.cancel=Cancel +contentsection.configuration.lifecycles.phase_details.label.edit.submit=Save +contentsection.configuration.lifecycles.phase_details.label.edit.title=Edit localized label +contentsection.configuration.lifecycles.phase_details.label.edit.value.help=The localized label +contentsection.configuration.lifecycles.phase_details.label.edit.value.label=Label +contentsection.configuration.lifecycles.phase_details.label.remove.button=Remove +contentsection.configuration.lifecycles.phase_details.label.remove.cancel=Cancel +contentsection.configuration.lifecycles.phase_details.label.remove.submit=Remove +contentsection.configuration.lifecycles.phase_details.label.remove.text=Are you sure to remove this localized label? +contentsection.configuration.lifecycles.phase_details.label.remove.title=Confirm removal of localized label +contentsection.configuration.lifecycles.phase_details.label.title=Label +contentsection.configuration.lifecycles.phase_details.description.add.button=Add +contentsection.configuration.lifecycles.phase_details.description.add.cancel=Cancel +contentsection.configuration.lifecycles.phase_details.description.add.locale.help=The locale of the localized description +contentsection.configuration.lifecycles.phase_details.description.add.locale.description=Description +contentsection.configuration.lifecycles.phase_details.description.locale.add.submit=Add +contentsection.configuration.lifecycles.phase_details.description.add.title=Add localized description +contentsection.configuration.lifecycles.phase_details.description.add.value.help=The localized description +contentsection.configuration.lifecycles.phase_details.description.add.value.description=Description +contentsection.configuration.lifecycles.phase_details.description.edit.button=Edit +contentsection.configuration.lifecycles.phase_details.description.edit.cancel=Cancel +contentsection.configuration.lifecycles.phase_details.description.edit.submit=Save +contentsection.configuration.lifecycles.phase_details.description.edit.title=Edit localized description +contentsection.configuration.lifecycles.phase_details.description.edit.value.help=The localized description +contentsection.configuration.lifecycles.phase_details.description.edit.value.description=Description +contentsection.configuration.lifecycles.phase_details.description.remove.button=Remove +contentsection.configuration.lifecycles.phase_details.description.remove.cancel=Cancel +contentsection.configuration.lifecycles.phase_details.description.remove.submit=Remove +contentsection.configuration.lifecycles.phase_details.description.remove.text=Are your sure to remove this localized description? +contentsection.configuration.lifecycles.phase_details.description.remove.title=Confirm removal of localized description +contentsection.configuration.lifecycles.phase_details.description.title=Description +contentsection.lifecycle.not_found=No lifecycle identified by {1} was found for Content Section {0}. +contentsection.lifecycle_phase.not_found=No phase definition identified by {2} for the lifecycle definition {1} of the Content Section {0} found. +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.days.help=Delay days +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.days.label=Days +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.hours.help=Deply hours +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.hours.label=Hours +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.minutes.help=Delay minutes +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.minutes.label=Minutes +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help.days=Duration days +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label.days=Days +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help.hours=Duration hours +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label.hours=Hours +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help.minutes=Duration minutes +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label.minutes=Minutes +contentsection.configuration.workflows.add=Add workflow +contentsection.configuration.workflows.add.dialog.title=Add Workflow to Content Section {0} +contentsection.configuration.workflows.add.dialog.close=Cancel +contentsection.configuration.workflows.add.dialog.label.help=The name of the new workflow +contentsection.configuration.workflows.add.dialog.label.label=Name +contentsection.configuration.workflows.add.dialog.submit=Add workflow +contentsection.configuration.workflows.table.cols.name=Name +contentsection.configuration.workflows.table.cols.actions=Actions +contentsection.configuration.workflows.table.info_button.label=Show workflow description +contentsection.configuration.workflows.info.dialog.title=Description of Workflow {0} +contentsection.configuration.workflows.info.dialog.close=Close +contentsection.configuration.workflows.delete_button.label=Delete +contentsection.configuration.workflows.delete_dialog.cancel=Abbrechen +contentsection.configuration.workflows.delete_dialog.confirm=Delete workflow +contentsection.configuration.workflows.delete_dialog.title=Confirm Deletion of Workflow +contentsection.configuration.workflows.delete_dialog.message=Are you sure to delete the workflow {1} of Content Section {0}? +contentsection.configuration.workflows.workflow_details.title=Details of Workflow {1} of Content Section {0} +contentsection.configuration.workflows.workflow_details.name.add.button=Add localized name +contentsection.configuration.workflows.workflow_details.name.add.cancel=Cancel +contentsection.configuration.workflows.workflow_details.name.add.locale.help=The locale of the localized name +contentsection.configuration.workflows.workflow_details.name.add.locale.label=Locale +contentsection.configuration.workflows.workflow_details.name.locale.add.submit=Add +contentsection.configuration.workflows.workflow_details.name.add.title=Add localized name +contentsection.configuration.workflows.workflow_details.name.add.value.help=The localized name +contentsection.configuration.workflows.workflow_details.name.add.value.label=Name +contentsection.configuration.workflows.workflow_details.name.edit.button=Edit +contentsection.configuration.workflows.workflow_details.name.edit.cancel=Cancel +contentsection.configuration.workflows.workflow_details.name.edit.submit=Save +contentsection.configuration.workflows.workflow_details.name.edit.title=Edit localized name +contentsection.configuration.workflows.workflow_details.name.edit.value.help=The localized name +contentsection.configuration.workflows.workflow_details.name.edit.value.label=Name +contentsection.configuration.workflows.workflow_details.name.remove.button=Remove +contentsection.configuration.workflows.workflow_details.name.remove.cancel=Cancel +contentsection.configuration.workflows.workflow_details.name.remove.submit=Remove +contentsection.configuration.workflows.workflow_details.name.remove.text=Are you sure to remove this localized name? +contentsection.configuration.workflows.workflow_details.name.remove.title=Confirm removal of localized name +contentsection.configuration.workflows.workflow_details.name.title=Name +contentsection.configuration.workflows.workflow_details.description.add.button=Add localized description +contentsection.configuration.workflows.workflow_details.description.add.cancel=Cancel +contentsection.configuration.workflows.workflow_details.description.add.locale.help=The locale of the localized description +contentsection.configuration.workflows.workflow_details.description.add.locale.label=Locale +contentsection.configuration.workflows.workflow_details.description.locale.add.submit=Add +contentsection.configuration.workflows.workflow_details.description.add.title=Add localized decription +contentsection.configuration.workflows.workflow_details.description.add.value.help=The localized description +contentsection.configuration.workflows.workflow_details.description.add.value.label=Description +contentsection.configuration.workflows.workflow_details.description.edit.button=Edit +contentsection.configuration.workflows.workflow_details.description.edit.cancel=Cancel +contentsection.configuration.workflows.workflow_details.description.edit.submit=Save +contentsection.configuration.workflows.workflow_details.description.edit.title=Edit localized description +contentsection.configuration.workflows.workflow_details.description.edit.value.help=The localized description +contentsection.configuration.workflows.workflow_details.description.edit.value.description=Description +contentsection.configuration.workflows.workflow_details.description.remove.button=Remove +contentsection.configuration.workflows.workflow_details.description.remove.cancelq=Cancel +contentsection.configuration.workflows.workflow_details.description.remove.submit=Remove +contentsection.configuration.workflows.workflow_details.description.remove.text=Are you sure to remove this localized description? +contentsection.configuration.workflows.workflow_details.description.remove.title=Confirm removal of localized description +contentsection.configuration.workflows.workflow_details.description.title=Description +contentsection.configuration.workflows.workflow_details.tasks.title=Tasks +contentsection.configuration.workflow.tasks.add=Add task +contentsection.configuration.workflow.tasks.add.dialog.close=Cancel +contentsection.configuration.workflow.tasks.add.dialog.label.help=The label for the new task +contentsection.configuration.workflow.tasks.add.dialog.label.label=Label +contentsection.configuration.workflow.tasks.add.dialog.submit=Add task +contentsection.configuration.workflow.tasks.table.cols.label=Label +contentsection.configuration.workflow.tasks.table.cols.actions=Actions +contentsection.configuration.workflow.tasks.table.info_button.label=Show description of task +contentsection.configuration.workflow.tasks.info.dialog.title=Description of task {2} of workflow {1} of Content Section {0} +contentsection.configuration.workflow.tasks.info.dialog.close=Close +contentsection.configuration.workflow.tasks.remove.button.label=Delete +contentsection.configuration.workflow.tasks.remove.dialog.close=Cancel +contentsection.configuration.workflow.tasks.remove.dialog.confirm=Delete task +contentsection.configuration.workflow.tasks.remove.dialog.title=Confirm delation of the task +contentsection.configuration.workflow.tasks.remove.dialog.message=Are you sure to delete task {2} of workflow {1} of Content Section {0}? +contentsection.configuration.workflows.tasks.title=Workflow Tasks +contentsection.configuration.workflow.task_details.title=Details of task {2} of workflow {1} of Content Section {0} +contentsection.configuration.workflows.task_details.label.add.button=Add localized label +contentsection.configuration.workflows.task_details.label.add.cancel=Cancel +contentsection.configuration.workflows.task_details.label.add.locale.help=The locale of the localized label +contentsection.configuration.workflows.task_details.label.add.locale.label=Locale +contentsection.configuration.workflows.task_details.label.locale.add.submit=Add +contentsection.configuration.workflows.task_details.label.add.title=Add localized label +contentsection.configuration.workflows.task_details.label.add.value.help=The localized label +contentsection.configuration.workflows.task_details.label.add.value.label=Label +contentsection.configuration.workflows.task_details.label.edit.button=Edit +contentsection.configuration.workflows.task_details.label.edit.cancel=Cancel +contentsection.configuration.workflows.task_details.label.edit.submit=Save +contentsection.configuration.workflows.task_details.label.edit.title=Edit localized label +contentsection.configuration.workflows.task_details.label.edit.value.help=The localized label +contentsection.configuration.workflows.task_details.label.edit.value.label=Label +contentsection.configuration.workflows.task_details.label.remove.button=Remove +contentsection.configuration.workflows.task_details.label.remove.cancel=Cancel +contentsection.configuration.workflows.task_details.label.remove.submit=Remove +contentsection.configuration.workflows.task_details.label.remove.text=Are you sure to remove this localized lable? +contentsection.configuration.workflows.task_details.label.remove.title=Confirm removal of localized label +contentsection.configuration.workflows.task_details.label.title=Label +contentsection.configuration.workflows.task_details.description.add.button=Add localized decription +contentsection.configuration.workflows.task_details.description.add.cancel=Cancel +contentsection.configuration.workflows.task_details.description.add.locale.help=The locale of the localized description +contentsection.configuration.workflows.task_details.description.add.locale.description=Description +contentsection.configuration.workflows.task_details.description.locale.add.submit=Add +contentsection.configuration.workflows.task_details.description.add.title=Add localized decription +contentsection.configuration.workflows.task_details.description.add.value.help=The localized description +contentsection.configuration.workflows.task_details.description.add.value.label=Description +contentsection.configuration.workflows.task_details.description.edit.button=Edit +contentsection.configuration.workflows.task_details.description.edit.cancel=Cancel +contentsection.configuration.workflows.task_details.description.edit.submit=Save +contentsection.configuration.workflows.task_details.description.edit.title=Edit localized description +contentsection.configuration.workflows.task_details.description.edit.value.help=The localized description +contentsection.configuration.workflows.task_details.description.edit.value.label=Description +contentsection.configuration.workflows.task_details.description.remove.button=Remove +contentsection.configuration.workflows.task_details.description.remove.cancel=Cancel +contentsection.configuration.workflows.task_details.description.remove.submit=Remove +contentsection.configuration.workflows.task_details.description.remove.text=Are you sure to remove this localized description? +contentsection.configuration.workflows.task_details.description.remove.title=Confirm removal of localized description +contentsection.configuration.workflows.task_details.description.title=Description +contentsection.configuration.workflows.task_details.blocking_tasks.title=Blocking tasks +contentsection.configuration.workflows.task_details.blocking_tasks.add=Add blocking tasks +contentsection.configuration.workflows.task_details.blocking_tasks.add.dialog.title=Add blocking task +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.close=Cancel +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.task_select.help=Select the blocking task +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.task_select.label=Blocking task +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.submit=Add blocking task +contentsection.workflow.tasks.circular_dependency=Adding the task {3} as blocking task to task {2} of workflow {1} of Content Section {0} would create a circular dependency. +contentsection.workflow.not_found=Content Section {0} has not workflow {1}. +contentsection.workflow_tasks.not_found=No task {2} found for workflow {1} of Content Section {0}. diff --git a/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages_de.properties b/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages_de.properties index 5a56d96ba..a6ac63def 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages_de.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsAdminMessages_de.properties @@ -425,3 +425,269 @@ contentsection.configuration.documenttypes.remove_dialog.cancel=Abbrechen contentsection.configuration.documenttypes.remove_dialog.confirm=Dokumenttyp entfernen contentsection.configuration.documenttypes.remove_dialog.title=Entfernen des Dokumenttyps best\u00e4tigen contentsection.configuration.documenttypes.remove_dialog.message=Sind Sie sicher, dass Sie den Dokumenttyp {1} aus der Content Section {0} entfernen wollen? +contentsection.configuration.lifecycles.add=Lebenszyklus-Definition hinzuf\u00fcgen +contentsection.configuration.lifecycles.add.dialog.title=Einen Lebenszyklus-Definition der Content Section {0} hinzuf\u00fcgen +'contentsection.configuration.lifecycles.add.dialog.close=Abbrechen +contentsection.configuration.lifecycles.add.dialog.label.help=Bezeichnung der neuen Lebenszyklus-Definition +contentsection.configuration.lifecycles.add.dialog.label.label=Bezeichnung +contentsection.configuration.lifecycles.add.dialog.submit=Lebenszyklus-Definition hinzf\u00fcgen +contentsection.configuration.lifecycles.table.cols.label=Bezeichnung +contentsection.configuration.lifecycles.table.cols.actions=Aktionen +contentsection.configuration.lifecycles.table.info_button.label=Beschreibung anzeigen +contentsection.configuration.lifecycles.info.dialog.title=Beschreibung der Lebenszyklus-Definition {0} +contentsection.configuration.lifecycles.info.dialog.close=Schlie\u00dfen +contentsection.configuration.lifecycles.delete_button.label=L\u00f6schen +contentsection.configuration.lifecycles.delete_dialog.cancel=Abbrechen +contentsection.configuration.lifecycles.delete_dialog.confirm=Lebenszyklus-Definition l\u00f6schen +'contentsection.configuration.lifecycles.delete_dialog.title=L\u00f6schen der Lebenszyklus-Definition best\u00e4tigen +contentsection.configuration.lifecycles.delete_dialog.message=Sind Sie sicher, dass Sie die Lebenszyklus-Definition {1} f\u00fcr die Content Section {0} l\u00f6schen wollen? +contentsection.configuration.lifecycles.lifecycle_details.title=Details der Lebenszyklus Definition {0} +contentsection.configuration.lifecycles.lifecycle_details.label.add.button=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.label.add.cancel=Abbrechen +contentsection.configuration.lifecycles.lifecycle_details.label.add.locale.help=Sprache der Bezeichnung +contentsection.configuration.lifecycles.lifecycle_details.label.add.locale.label=Sprache +contentsection.configuration.lifecycles.lifecycle_details.label.locale.add.submit=Bezeichnung hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.label.add.title=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.label.add.value.help=Die lokalisierte Beschreibung +contentsection.configuration.lifecycles.lifecycle_details.label.add.value.label=Bezeichnung +contentsection.configuration.lifecycles.lifecycle_details.label.edit.button=Bearbeiten +contentsection.configuration.lifecycles.lifecycle_details.label.edit.cancel=Abbrechen +contentsection.configuration.lifecycles.lifecycle_details.label.edit.submit=Speichern +contentsection.configuration.lifecycles.lifecycle_details.label.edit.title=Lokalisierte Beschreibung bearbeiten +contentsection.configuration.lifecycles.lifecycle_details.label.edit.value.help=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.label.edit.value.label=Bezeichnung +contentsection.configuration.lifecycles.lifecycle_details.label.remove.button=Entfernen +contentsection.configuration.lifecycles.lifecycle_details.label.remove.cancel=Abbrechen +contentsection.configuration.lifecycles.lifecycle_details.label.remove.submit=Entfernen +contentsection.configuration.lifecycles.lifecycle_details.label.remove.text=Sind Sie sicher, dass Sie diese lokalisierte Bezeichnung entfernen wollen? +contentsection.configuration.lifecycles.lifecycle_details.label.remove.title=Entfernen einer lokalisierten Beschreibung best\u00e4tigen +contentsection.configuration.lifecycles.lifecycle_details.label.title=Bezeichnung +contentsection.configuration.lifecycles.lifecycle_details.description.add.button=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.description.add.cancel=Abbrechen +contentsection.configuration.lifecycles.lifecycle_details.description.add.locale.help=Die Sprache der lokalisierten Beschreibung +contentsection.configuration.lifecycles.lifecycle_details.description.add.locale.description=Sprache +contentsection.configuration.lifecycles.lifecycle_details.description.locale.add.submit=Hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.description.add.title=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.description.add.value.help=Die lokalisierte Beschreibung +contentsection.configuration.lifecycles.lifecycle_details.description.add.value.description=Beschreibung +contentsection.configuration.lifecycles.lifecycle_details.description.edit.button=Bearbeiten +contentsection.configuration.lifecycles.lifecycle_details.description.edit.cancel=Abbrechen +contentsection.configuration.lifecycles.lifecycle_details.description.edit.submit=Speichern +contentsection.configuration.lifecycles.lifecycle_details.description.edit.title=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.lifecycle_details.description.edit.value.help=Die lokalisierte Beschreibung +contentsection.configuration.lifecycles.lifecycle_details.description.edit.value.description=Bescchreibung +contentsection.configuration.lifecycles.lifecycle_details.description.remove.button=Entfernen +contentsection.configuration.lifecycles.lifecycle_details.description.remove.cancel=Abbrechen +contentsection.configuration.lifecycles.lifecycle_details.description.remove.submit=Entfernen +contentsection.configuration.lifecycles.lifecycle_details.description.remove.text=Sind Sie sicher, dass Sie diese lokalisierte Beschreibung entfernen wollen? +contentsection.configuration.lifecycles.lifecycle_details.description.remove.title=Entfernen einer lokalisierten Beschreibung best\u00e4tigen +contentsection.configuration.lifecycles.lifecycle_details.description.title=Beschreibung +contentsection.configuration.lifecycle.phases.add=Neue Definition einer Phase hinzuf\u00fcgen +contentsection.configuration.lifecycle.phases.add.dialog.title=Der Lebenszyklus-Definition {1} der Content Section {0} eine Phase hinzuf\u00fcgen +contentsection.configuration.lifecycle.phases.add.dialog.close=Abbrechen +contentsection.configuration.lifecycle.phases.add.dialog.label.help=Die Bezeichnung der neuen Phase +contentsection.configuration.lifecycle.phases.add.dialog.label.label=Bezeichnung +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.help=Vorgabewerte f\u00fcr den verz\u00f6gerten Start der Phase +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.label=Verz\u00f6gerung +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help=Standardwert f\u00fcr die Dauer der Phase. 0 bedeutet das die Phase kein Ende hat. +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label=Dauer +contentsection.configuration.lifecycle.phases.add.dialog.submit=Phasen-Definition hinzuf\u00fcgen +contentsection.configuration.lifecycle.phases.table.cols.label=Bezeichnung +contentsection.configuration.lifecycle.phases.table.cols.default_delay=Verz\u00f6gerung +contentsection.configuration.lifecycle.phases.table.cols.default_duration=Dauer +contentsection.configuration.lifecycle.phases.table.cols.actions=Aktionen +contentsection.configuration.lifecycle.phases.table.info_button.label=Beschreibung anzeigen +contentsection.configuration.lifecycle.phases.info.dialog.title=Beschreibung der Phasen-Definition {2} der Lebenszyklus-Definition {1} der Content Section {0} +contentsection.configuration.lifecycle.phases.info.dialog.close=Schlie\u00dfen +contentsection.configuration.lifecycle.phases.remove.button.label=L\u00f6schen +contentsection.configuration.lifecycle.phases.remove.dialog.close=Abbrechen +contentsection.configuration.lifecycle.phases.remove.dialog.confirm=L\u00f6schen +contentsection.configuration.lifecycle.phases.remove.dialog.title=L\u00f6schen einer Lebenszyklus-Phase best\u00e4tigen +contentsection.configuration.lifecycle.phases.remove.dialog.message=Sind Sie sicher, dass die die Phase-Definition {2} der Lebenszyklus-Definition {1} der Content Section {0} l\u00f6schen wollen? +contentsection.configuration.lifecycle.phase_details.title=Details Phase Definition {1} of Lifecycle Definition {0} +contentsection.configuration.lifecycle.phase_details.properties=Eigenschaften +contentsection.configuration.lifecycles.phase_details.default_delay.label=Voreingestellte Verz\u00f6gerung +contentsection.configuration.lifecycles.phase_details.default_duration.label=Voreingestellte Dauer +contentsection.configuration.lifecycle.phase_details.properties.edit=Eigenschaften der Phasen Definition bearbeiten +contentsection.configuration.lifecycle.phase_details.properties.edit.title=Eigenschaften der Phasen-Definition {2} der Lebenszyklus-Definition {1} der Content Section {0} bearbeiten +contentsection.configuration.lifecycle.phase_details.properties.edit.close=Abbrechen +contentsection.configuration.lifecycle.phase_details.properties.edit.submit=Speichern +contentsection.configuration.lifecycles.phase_details.label.add.button=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.phase_details.label.add.cancel=Abbrechen +contentsection.configuration.lifecycles.phase_details.label.add.locale.help=Die Sprache der lokalisierten Beschreibung +contentsection.configuration.lifecycles.phase_details.label.add.locale.label=Sprache +contentsection.configuration.lifecycles.phase_details.label.locale.add.submit=Hinzuf\u00fcgen +contentsection.configuration.lifecycles.phase_details.label.add.title=Lokaliserte Bezeichnung hinzuf\u00fcgen +contentsection.configuration.lifecycles.phase_details.label.add.value.help=Die lokalisierte Bezeichnung +contentsection.configuration.lifecycles.phase_details.label.add.value.label=Bezeichnung +contentsection.configuration.lifecycles.phase_details.label.edit.button=Bearbeiten +contentsection.configuration.lifecycles.phase_details.label.edit.cancel=Abbrechen +contentsection.configuration.lifecycles.phase_details.label.edit.submit=Speichern +contentsection.configuration.lifecycles.phase_details.label.edit.title=Lokalisierte Bezeichnung bearbeiten +contentsection.configuration.lifecycles.phase_details.label.edit.value.help=Die lokalisierte Bezeichnung +contentsection.configuration.lifecycles.phase_details.label.edit.value.label=Bezeichnung +contentsection.configuration.lifecycles.phase_details.label.remove.button=Entfernen +contentsection.configuration.lifecycles.phase_details.label.remove.cancel=Abbrechen +contentsection.configuration.lifecycles.phase_details.label.remove.submit=Entfernen +contentsection.configuration.lifecycles.phase_details.label.remove.text=Sind Sie sicher, dass Sie diese lokaliserte Beschreibung entfernen wollen? +contentsection.configuration.lifecycles.phase_details.label.remove.title=Entfernen einer lokalisierten Beschreibung best\u00e4tigen +contentsection.configuration.lifecycles.phase_details.label.title=Bezeichnung +contentsection.configuration.lifecycles.phase_details.description.add.button=Hinzuf\u00fcgen +contentsection.configuration.lifecycles.phase_details.description.add.cancel=Abbrechen +contentsection.configuration.lifecycles.phase_details.description.add.locale.help=Die Sprache der lokalisierten Beschreibung +contentsection.configuration.lifecycles.phase_details.description.add.locale.description=Beschreibung +contentsection.configuration.lifecycles.phase_details.description.locale.add.submit=Hinzuf\u00fcgen +contentsection.configuration.lifecycles.phase_details.description.add.title=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.lifecycles.phase_details.description.add.value.help=Die lokalisierte Beschreibung +contentsection.configuration.lifecycles.phase_details.description.add.value.description=Beschreibung +contentsection.configuration.lifecycles.phase_details.description.edit.button=Bearbeiten +contentsection.configuration.lifecycles.phase_details.description.edit.cancel=Abbrechen +contentsection.configuration.lifecycles.phase_details.description.edit.submit=Speichern +contentsection.configuration.lifecycles.phase_details.description.edit.title=Lokalisierte Beschreibung bearbeiten +contentsection.configuration.lifecycles.phase_details.description.edit.value.help=Die lokalisierte Beschreibung +contentsection.configuration.lifecycles.phase_details.description.edit.value.description=Beschreibung +contentsection.configuration.lifecycles.phase_details.description.remove.button=Entfernen +contentsection.configuration.lifecycles.phase_details.description.remove.cancel=Abbrechen +contentsection.configuration.lifecycles.phase_details.description.remove.submit=Entfernen +contentsection.configuration.lifecycles.phase_details.description.remove.text=Sind Sie sicher, dass Sie diese lokaliserte Beschreibung entfernen wollen? +contentsection.configuration.lifecycles.phase_details.description.remove.title=Entfernen einer lokaliserten Beschreibung best\u00e4tigen +contentsection.configuration.lifecycles.phase_details.description.title=Beschreibung +contentsection.lifecycle.not_found=F\u00fcr die Content Section {0} wurde keine Lebenszyklus-Definition {1} gefunden. +contentsection.lifecycle_phase.not_found=F\u00fcr die Lebenszyklus-Definition {1} der Content-Section {0} wurde keine Phase-Definition {2} gefunden. +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.days.help=Verz\u00f6gerung um Tage +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.days.label=Tage +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.hours.help=Verz\u00f6gerung um Stunden +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.hours.label=Stunden +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.minutes.help=Verz\u00f6gerung um Minuten +contentsection.configuration.lifecycle.phases.add.dialog.default_delay.minutes.label=Minuten +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help.days=Dauer Tage +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label.days=Tage +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help.hours=Dauer Stunden +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label.hours=Stunden +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.help.minutes=Dauer Minuten +contentsection.configuration.lifecycle.phases.add.dialog.default_duration.label.minutes=Minuten +contentsection.configuration.workflows.add=Arbeitsablauf hinzuf\u00fcgen +contentsection.configuration.workflows.add.dialog.title=Arbeitsablauf der Content Section {0} hinzuf\u00fcgen +contentsection.configuration.workflows.add.dialog.close=Abbrechen +contentsection.configuration.workflows.add.dialog.label.help=Der Name des neuen Arbeitsablaufs +contentsection.configuration.workflows.add.dialog.label.label=Name +contentsection.configuration.workflows.add.dialog.submit=Arbeitsablauf hinzuf\u00fcgen +contentsection.configuration.workflows.table.cols.name=Name +contentsection.configuration.workflows.table.cols.actions=Aktionen +contentsection.configuration.workflows.table.info_button.label=Beschreibung des Arbeitsablaufs anzeigen +contentsection.configuration.workflows.info.dialog.title=Beschreibung Arbeitsablauf {0} +contentsection.configuration.workflows.info.dialog.close=Schlie\u00dfen +contentsection.configuration.workflows.delete_button.label=L\u00f6schen +contentsection.configuration.workflows.delete_dialog.cancel=Abbrechen +contentsection.configuration.workflows.delete_dialog.confirm=Arbeitsablauf l\u00f6schen +contentsection.configuration.workflows.delete_dialog.title=L\u00f6schen des Arbeitsablaufs best\u00e4tigen +contentsection.configuration.workflows.delete_dialog.message=Sind Sie sicher, dass Sie den Arbeitsablauf {1} der Content Section {0} l\u00f6schen wollen? +contentsection.configuration.workflows.workflow_details.title=Details Arbeitsablauf {1} der Content Section {0} +contentsection.configuration.workflows.workflow_details.name.add.button=Lokalisierten Namen hinzuf\u00fcgen +contentsection.configuration.workflows.workflow_details.name.add.cancel=Abbrechen +contentsection.configuration.workflows.workflow_details.name.add.locale.help=Die Sprache des lokalisierten Namens +contentsection.configuration.workflows.workflow_details.name.add.locale.label=Sprache +contentsection.configuration.workflows.workflow_details.name.locale.add.submit=Hinzuf\u00fcgen +contentsection.configuration.workflows.workflow_details.name.add.title=Lokalisierten Namen hinzuf\u00fcgen +contentsection.configuration.workflows.workflow_details.name.add.value.help=Der lokalisierte Name +contentsection.configuration.workflows.workflow_details.name.add.value.label=Name +contentsection.configuration.workflows.workflow_details.name.edit.button=Bearbeiten +contentsection.configuration.workflows.workflow_details.name.edit.cancel=Abbrechen +contentsection.configuration.workflows.workflow_details.name.edit.submit=Speichern +contentsection.configuration.workflows.workflow_details.name.edit.title=Lokalisierten Namen bearbeiten +contentsection.configuration.workflows.workflow_details.name.edit.value.help=Der lokalisierte Name +contentsection.configuration.workflows.workflow_details.name.edit.value.label=Name +contentsection.configuration.workflows.workflow_details.name.remove.button=Entfernen +contentsection.configuration.workflows.workflow_details.name.remove.cancel=Abbrechen +contentsection.configuration.workflows.workflow_details.name.remove.submit=Entfernen +contentsection.configuration.workflows.workflow_details.name.remove.text=Sind Sie sicher, dass Sie diesen lokalisierten Name entfernen wollen? +contentsection.configuration.workflows.workflow_details.name.remove.title=Entfernen eines lokalisierten Names best\u00e4tigen +contentsection.configuration.workflows.workflow_details.name.title=Name +contentsection.configuration.workflows.workflow_details.description.add.button=Lokalisierte Beschreibung entfernen +contentsection.configuration.workflows.workflow_details.description.add.cancel=Abbrechen +contentsection.configuration.workflows.workflow_details.description.add.locale.help=Die Sprache der lokalisierten Beschreibung +contentsection.configuration.workflows.workflow_details.description.add.locale.label=Sprache +contentsection.configuration.workflows.workflow_details.description.locale.add.submit=Hinzuf\u00fcgen +contentsection.configuration.workflows.workflow_details.description.add.title=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.workflows.workflow_details.description.add.value.help=Die lokaliserte Beschreibung +contentsection.configuration.workflows.workflow_details.description.add.value.label=Beschreibung +contentsection.configuration.workflows.workflow_details.description.edit.button=Bearbeiten +contentsection.configuration.workflows.workflow_details.description.edit.cancel=Abbrechen +contentsection.configuration.workflows.workflow_details.description.edit.submit=Speichern +contentsection.configuration.workflows.workflow_details.description.edit.title=Lokaliserte Beschreibung bearbeiten +contentsection.configuration.workflows.workflow_details.description.edit.value.help=Die lokaliserte Beschreibung +contentsection.configuration.workflows.workflow_details.description.edit.value.description=Beschreibung +contentsection.configuration.workflows.workflow_details.description.remove.button=Entfernen +contentsection.configuration.workflows.workflow_details.description.remove.cancelq=Abbrechen +contentsection.configuration.workflows.workflow_details.description.remove.submit=Entfernen +contentsection.configuration.workflows.workflow_details.description.remove.text=Sind Sie sicher, dass Sie diese lokalisierte Beschreibung entfernen wollen? +contentsection.configuration.workflows.workflow_details.description.remove.title=Entfernen einer lokaliserten Beschreibung best\u00e4tigen +contentsection.configuration.workflows.workflow_details.description.title=Beschreibung +contentsection.configuration.workflows.workflow_details.tasks.title=Aufgaben +contentsection.configuration.workflow.tasks.add=Aufgabe hinzuf\u00fcgen +contentsection.configuration.workflow.tasks.add.dialog.close=Abbrechen +contentsection.configuration.workflow.tasks.add.dialog.label.help=Bezeichnung der neuen Aufgabe +contentsection.configuration.workflow.tasks.add.dialog.label.label=Bezeichnung +contentsection.configuration.workflow.tasks.add.dialog.submit=Aufgabe hinzuf\u00fcgen +contentsection.configuration.workflow.tasks.table.cols.label=Bezeichnung +contentsection.configuration.workflow.tasks.table.cols.actions=Aktionen +contentsection.configuration.workflow.tasks.table.info_button.label=Beschreibung der Aufgabe anzeigen +contentsection.configuration.workflow.tasks.info.dialog.title=Beschreibung der Aufgabe {2} des Arbeitsablaufs {1} der Content Section {0} +contentsection.configuration.workflow.tasks.info.dialog.close=Schlie\u00dfen +contentsection.configuration.workflow.tasks.remove.button.label=L\u00f6schen +contentsection.configuration.workflow.tasks.remove.dialog.close=Abbrechen +contentsection.configuration.workflow.tasks.remove.dialog.confirm=Aufgabe l\u00f6schen +contentsection.configuration.workflow.tasks.remove.dialog.title=L\u00f6schen der Aufgabe best\u00e4tigen +contentsection.configuration.workflow.tasks.remove.dialog.message=Sind Sie sicher, dass Sie die Aufgabe {2} des Arbeitsablaufs {1} der Content Section {0} l\u00f6schen wollen? +contentsection.configuration.workflows.tasks.title=Arbeitsablauf Aufgaben +contentsection.configuration.workflow.task_details.title=Details der Aufgabe {2} des Arbeitsablaufs {1} der Content Section {0} +contentsection.configuration.workflows.task_details.label.add.button=Lokalisierte Bezeichnung hinzuf\u00fcgen +contentsection.configuration.workflows.task_details.label.add.cancel=Abbrechen +contentsection.configuration.workflows.task_details.label.add.locale.help=Die Sprache der lokalisierten Bezeichnung +contentsection.configuration.workflows.task_details.label.add.locale.label=Sprache +contentsection.configuration.workflows.task_details.label.locale.add.submit=Hinzuf\u00fcgen +contentsection.configuration.workflows.task_details.label.add.title=Lokalisierte Bezeichnung hinzuf\u00fcgen +contentsection.configuration.workflows.task_details.label.add.value.help=Die lokaliserte Beschreibung +contentsection.configuration.workflows.task_details.label.add.value.label=Bezeichnung +contentsection.configuration.workflows.task_details.label.edit.button=Bearbeiten +contentsection.configuration.workflows.task_details.label.edit.cancel=Abbrechen +contentsection.configuration.workflows.task_details.label.edit.submit=Speichern +contentsection.configuration.workflows.task_details.label.edit.title=Lokalisierte Bezeichnung bearbeiten +contentsection.configuration.workflows.task_details.label.edit.value.help=Die lokaliserte Beschreibung +contentsection.configuration.workflows.task_details.label.edit.value.label=Bezeichnung +contentsection.configuration.workflows.task_details.label.remove.button=Entfernen +contentsection.configuration.workflows.task_details.label.remove.cancel=Abbrechen +contentsection.configuration.workflows.task_details.label.remove.submit=Entfernen +contentsection.configuration.workflows.task_details.label.remove.text=Sind Sie sicher, dass Sie diese lokalisierte Bezeichnung entfernen wollen? +contentsection.configuration.workflows.task_details.label.remove.title=Entfernen einer lokaliserten Bezeichnung best\u00e4tigen +contentsection.configuration.workflows.task_details.label.title=Bezeichnung +contentsection.configuration.workflows.task_details.description.add.button=Add localized decription +contentsection.configuration.workflows.task_details.description.add.cancel=Abbrechen +contentsection.configuration.workflows.task_details.description.add.locale.help=Die Sprache der lokalisierten Beschreibung +contentsection.configuration.workflows.task_details.description.add.locale.description=Beschreibung +contentsection.configuration.workflows.task_details.description.locale.add.submit=Hinzuf\u00fcgen +contentsection.configuration.workflows.task_details.description.add.title=Lokalisierte Beschreibung hinzuf\u00fcgen +contentsection.configuration.workflows.task_details.description.add.value.help=Die lokalisierte Beschreibung +contentsection.configuration.workflows.task_details.description.add.value.label=Beschreibung +contentsection.configuration.workflows.task_details.description.edit.button=Bearbeiten +contentsection.configuration.workflows.task_details.description.edit.cancel=Abbrechen +contentsection.configuration.workflows.task_details.description.edit.submit=Speichern +contentsection.configuration.workflows.task_details.description.edit.title=Lokalisierte Beschreibung bearbeiten +contentsection.configuration.workflows.task_details.description.edit.value.help=Die lokalisierte Beschreibung +contentsection.configuration.workflows.task_details.description.edit.value.label=Beschreibung +contentsection.configuration.workflows.task_details.description.remove.button=Entfernen +contentsection.configuration.workflows.task_details.description.remove.cancel=Abbrechen +contentsection.configuration.workflows.task_details.description.remove.submit=Entfernen +contentsection.configuration.workflows.task_details.description.remove.text=Sind Sie sicher, dass Sie diese lokalisierte Beschreibung entfernen wollen? +contentsection.configuration.workflows.task_details.description.remove.title=Entfernen einer lokaliserten Beschreibung best\u00e4tigen +contentsection.configuration.workflows.task_details.description.title=Description +contentsection.configuration.workflows.task_details.blocking_tasks.title=Wird von folgenden Aufgaben blockiert +contentsection.configuration.workflows.task_details.blocking_tasks.add=Blockierende Aufgabe hinzuf\u00fcgen +contentsection.configuration.workflows.task_details.blocking_tasks.add.dialog.title=Blockierende Aufgabe hinzuf\u00fcgen +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.close=Abbrechen +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.task_select.help=W\u00e4hlen Sie die blockierende Aufgabe aus +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.task_select.label=Blockierende Aufgabe +contentsection.configuration.workflow.task_details.blocking_tasks.add.dialog.submit=Blockierende Aufgabe hinzuf\u00fcgen +contentsection.workflow.tasks.circular_dependency=Das Hinzuf\u00fcgen der Aufgabe {3} als blockierende Aufgabe zur Aufgabe {2} des Arbeitsablaufs {1} der Content Section {0} w\u00fcrde eine zirkul\u00e4re Abh\u00e4nigkeit erzeugen. +contentsection.workflow.not_found=Keine Arbeitsablauf {1} f\u00fcr Content Section {0} gefunden. +contentsection.workflow_tasks.not_found=Arbeitsablauf {1} der Content Section {0} hat keine Aufgabe {2}.