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 c58e61db2..6494b6f00 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 @@ -11,6 +11,7 @@ import org.libreccm.l10n.GlobalizationHelper; import org.libreccm.security.AuthorizationRequired; import org.libreccm.workflow.CircularTaskDependencyException; import org.libreccm.workflow.Task; +import org.libreccm.workflow.TaskDependency; import org.libreccm.workflow.TaskManager; import org.libreccm.workflow.TaskRepository; import org.libreccm.workflow.Workflow; @@ -19,6 +20,7 @@ import org.libreccm.workflow.WorkflowRepository; import org.librecms.contentsection.ContentSection; import org.librecms.contentsection.ContentSectionManager; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Optional; @@ -757,7 +759,6 @@ public class ConfigurationWorkflowController { } final Task task = taskResult.get(); taskManager.removeTask(workflow, task); - taskRepo.delete(task); return String.format( "redirect:/%s/configuration/workflows/%s", @@ -1291,6 +1292,7 @@ public class ConfigurationWorkflowController { workflow.getDescription() ) ); + model.setHasTasks(!workflow.getTasks().isEmpty()); model.setName( globalizationHelper.getValueFromLocalizedString(workflow.getName()) ); @@ -1309,6 +1311,10 @@ public class ConfigurationWorkflowController { task.getDescription() ) ); + model.setHasDependencies( + !task.getBlockedTasks().isEmpty() + || !task.getBlockingTasks().isEmpty() + ); model.setLabel( globalizationHelper.getValueFromLocalizedString( task.getLabel() diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTaskTemplateListModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTaskTemplateListModel.java index 6d8116804..816f90e64 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTaskTemplateListModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTaskTemplateListModel.java @@ -24,6 +24,8 @@ public class WorkflowTaskTemplateListModel { private String label; private String description; + + private boolean hasDependencies; public long getTaskId() { return taskId; @@ -57,4 +59,14 @@ public class WorkflowTaskTemplateListModel { this.description = description; } + public boolean getHasDependencies() { + return hasDependencies; + } + + public void setHasDependencies(final boolean hasDependencies) { + this.hasDependencies = hasDependencies; + } + + + } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTemplateListModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTemplateListModel.java index 9bda62eb1..a8031c7cd 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTemplateListModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/WorkflowTemplateListModel.java @@ -19,6 +19,8 @@ public class WorkflowTemplateListModel { private String description; + private boolean hasTasks; + public long getWorkflowId() { return workflowId; } @@ -51,4 +53,12 @@ public class WorkflowTemplateListModel { this.description = description; } + public boolean getHasTasks() { + return hasTasks; + } + + public void setHasTasks(boolean hasTasks) { + this.hasTasks = hasTasks; + } + } 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 index 2ae3a6e5f..b9d4ab33a 100644 --- 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 @@ -229,15 +229,17 @@ - + + + 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 index 7dd7d6599..ccbf88410 100644 --- 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 @@ -159,6 +159,7 @@ + + diff --git a/ccm-cms/src/main/scss/content-sections/_custom.scss b/ccm-cms/src/main/scss/content-sections/_custom.scss index cf17b02ba..8ccd5c8cb 100644 --- a/ccm-cms/src/main/scss/content-sections/_custom.scss +++ b/ccm-cms/src/main/scss/content-sections/_custom.scss @@ -117,7 +117,7 @@ table.contentsection-roles-table { table.lifecycles-table, table.workflows-table, -table.workflow-tasks-table { +table.wor{ td.info-col { width: 3em; } diff --git a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowRepository.java b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowRepository.java index db7f34d7b..f696c10fa 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowRepository.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowRepository.java @@ -24,9 +24,12 @@ import org.libreccm.core.CcmObject; import javax.enterprise.context.RequestScoped; import javax.persistence.NoResultException; import javax.persistence.TypedQuery; + import java.util.Optional; import java.util.UUID; +import javax.transaction.Transactional; + /** * Repository for {@link Workflow}s. * @@ -36,7 +39,7 @@ import java.util.UUID; public class WorkflowRepository extends AbstractEntityRepository { private static final long serialVersionUID = -8811728904958517569L; - + @Override public Class getEntityClass() { return Workflow.class; @@ -62,6 +65,8 @@ public class WorkflowRepository extends AbstractEntityRepository super.initNewEntity(workflow); workflow.setUuid(UUID.randomUUID().toString()); } + + /** * Find a {@link Workflow} by its UUID.