From 85f41efd18040eaffe1077c15e8a669cd278cd64 Mon Sep 17 00:00:00 2001 From: wolfc01 Date: Mon, 5 Apr 2021 19:35:25 +0200 Subject: [PATCH] better context menu's when minor version is not zero --- .../_approval_workflow.html.erb | 30 ++++++++++++++++--- config/locales/en.yml | 5 +++- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/views/dmsf_context_menus/_approval_workflow.html.erb b/app/views/dmsf_context_menus/_approval_workflow.html.erb index 5d743d77..e205a87d 100644 --- a/app/views/dmsf_context_menus/_approval_workflow.html.erb +++ b/app/views/dmsf_context_menus/_approval_workflow.html.erb @@ -22,8 +22,9 @@ <% workflows_available = DmsfWorkflow.where(['project_id = ? OR project_id IS NULL', project.id]).exists? %> <% wf = DmsfWorkflow.find_by(id: dmsf_file.last_revision.dmsf_workflow_id) if dmsf_file.last_revision.dmsf_workflow_id %> -<% file_approval_allowed = User.current.allowed_to?(:file_approval, project) && (dmsf_file.approval_allowed_zero_minor)%> +<% file_approval_allowed = User.current.allowed_to?(:file_approval, project) %> <% allowed = User.current && (dmsf_file.last_revision.dmsf_workflow_assigned_by_user == User.current) && wf %> +<% allowed_minor = dmsf_file.approval_allowed_zero_minor %> <% if file_approval_allowed %> <% case dmsf_file.last_revision.workflow %> @@ -32,22 +33,43 @@ <% assignments = wf.next_assignments(dmsf_file.last_revision.id) %> <% index = assignments.find_index{ |assignment| assignment.user_id == User.current.id } if assignments %> <% assignment_id = (index && assignments && assignments[index]) ? assignments[index].id : nil %> - <%= context_menu_link l(:title_approval), action_dmsf_workflow_path(project_id: project.id, id: wf.id, + <% if allowd_minor %> + <%= context_menu_link l(:title_approval), action_dmsf_workflow_path(project_id: project.id, id: wf.id, dmsf_workflow_step_assignment_id: assignment_id, dmsf_file_revision_id: dmsf_file.last_revision.id), remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', disabled: !assignments || !index %> + <% else %> + <%= context_menu_link l(:title_approval_minor), action_dmsf_workflow_path(project_id: project.id, id: wf.id, + dmsf_workflow_step_assignment_id: assignment_id, + dmsf_file_revision_id: dmsf_file.last_revision.id), + remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', + disabled: true %> + <% end %> <% end %> <% when DmsfWorkflow::STATE_ASSIGNED %> - <%= context_menu_link l(:title_start), start_dmsf_workflow_path(id: dmsf_file.last_revision.dmsf_workflow_id, + <% if allowd_minor %> + <%= context_menu_link l(:title_start), start_dmsf_workflow_path(id: dmsf_file.last_revision.dmsf_workflow_id, dmsf_file_revision_id: dmsf_file.last_revision.id), class: 'icon icon-ok', disabled: !allowed %> + <% else %> + <%= context_menu_link l(:title_start_minor), start_dmsf_workflow_path(id: dmsf_file.last_revision.dmsf_workflow_id, + dmsf_file_revision_id: dmsf_file.last_revision.id), + class: 'icon icon-ok', disabled: true %> + <% end %> <% when DmsfWorkflow::STATE_APPROVED, DmsfWorkflow::STATE_REJECTED, DmsfWorkflow::STATE_OBSOLETE %> <%# %> <% else %> - <%= context_menu_link l(:title_assignment), assign_dmsf_workflow_path(id: project.id, project_id: project.id, + <% if allowed_minor %> + <%= context_menu_link l(:title_assignment), assign_dmsf_workflow_path(id: project.id, project_id: project.id, dmsf_file_revision_id: dmsf_file.last_revision.id), remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', disabled: locked || !workflows_available %> + <% else %> + <%= context_menu_link l(:title_assignment_minor), assign_dmsf_workflow_path(id: project.id, project_id: project.id, + dmsf_file_revision_id: dmsf_file.last_revision.id), + remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', + disabled: true %> + <% end %> <% end %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 04dc3f84..dc0b379d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -254,10 +254,13 @@ en: title_rejection: Rejection title_delegation: Delegation title_assignment: Assignment + title_assignment_minor: Assignment not allowed, minor != 0 title_start: Start + title_start_minor: Start not allowed, minor != 0 title_dmsf_workflow_log: Approval Workflow Log title_assigned: Assigned title_approval: Approval + title_approval_minor: Approval not allowed, minor != 0 title_rejected: Rejected title_obsolete: Obsolete dmsf_and: AND @@ -422,4 +425,4 @@ en: errors: messages: error_contains_invalid_character: contains invalid character(s) - only_approval_zero_minor_version: only approval zero minor version \ No newline at end of file + only_approval_zero_minor_version: only approval zero minor version