better context menu's when minor version is not zero

This commit is contained in:
wolfc01 2021-04-05 19:35:25 +02:00
parent af2f9e0a3e
commit 85f41efd18
2 changed files with 30 additions and 5 deletions

View File

@ -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 %>

View File

@ -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
only_approval_zero_minor_version: only approval zero minor version