Redmine CCS

This commit is contained in:
Karel Picman 2016-03-16 14:46:25 +01:00
parent 0d81267abd
commit 9b0dc9822c
21 changed files with 278 additions and 290 deletions

View File

@ -23,19 +23,19 @@
<% locked_for_user = subfolder && subfolder.locked_for_user? %> <% locked_for_user = subfolder && subfolder.locked_for_user? %>
<% locked = subfolder && subfolder.locked? %> <% locked = subfolder && subfolder.locked? %>
<td class="dmsf_check"><%= check_box_tag(name, id, false, <td class="checkbox"><%= check_box_tag(name, id, false,
:title => l(:title_check_for_zip_download_or_email), :id => "subfolder_#{id}") %></td> :title => l(:title_check_for_zip_download_or_email), :id => "subfolder_#{id}") %></td>
<td class="dmsf_title"> <td class="dmsf_title">
<%= link_to(h(title), <%= link_to(h(title),
dmsf_folder_path(:id => project, :folder_id => subfolder), dmsf_folder_path(:id => project, :folder_id => subfolder),
:class => 'icon icon-folder') %> :class => 'icon icon-folder') %>
<% if link %> <% if link %>
<div class="filename" title="<%= l(:label_target_folder)%>"><%= link.path %></div> <div class="dmsf_filename" title="<%= l(:label_target_folder)%>"><%= link.path %></div>
<% else %> <% else %>
<div class="filename" title="<%= l(:title_items)%>">[<%= subfolder.items %>]</div> <div class="dmsf_filename" title="<%= l(:title_items)%>">[<%= subfolder.items %>]</div>
<% end %> <% end %>
</td> </td>
<td class="size"></td> <td class="dmsf_size"></td>
<td class="dmsf_modified"><%= format_time(subfolder.modified) if subfolder %> <td class="dmsf_modified"><%= format_time(subfolder.modified) if subfolder %>
<% if locked_for_user %> <% if locked_for_user %>
<% if subfolder.lock.reverse[0].user %> <% if subfolder.lock.reverse[0].user %>
@ -51,9 +51,9 @@
:title => l(:title_locked_by_you)) %> :title => l(:title_locked_by_you)) %>
<% end %> <% end %>
</td> </td>
<td class="version"></td> <td class="dmsf_version"></td>
<td class="workflow"></td> <td class="dmsf_workflow"></td>
<td class="author"><%= h(subfolder.user) if subfolder %></td> <td class="dmsf_author"><%= h(subfolder.user) if subfolder %></td>
<td class="dmsf_buttons"> <td class="dmsf_buttons">
<% if @folder_manipulation_allowed %> <% if @folder_manipulation_allowed %>
<% unless locked_for_user %> <% unless locked_for_user %>
@ -106,7 +106,7 @@
<% end %> <% end %>
<% end %> <% end %>
</td> </td>
<td class="invisible">0</td> <td class="dmsf_invisible">0</td>
<td class="invisible">0</td> <td class="dmsf_invisible">0</td>
<td class="invisible"><%= subfolder.modified.to_i if subfolder %></td> <td class="dmsf_invisible"><%= subfolder.modified.to_i if subfolder %></td>
<td class="invisible">0</td> <td class="dmsf_invisible">0</td>

View File

@ -3,7 +3,7 @@
# #
# Redmine plugin for Document Management System "Features" # Redmine plugin for Document Management System "Features"
# #
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontron.com> # Copyright (C) 2011-16 Karel Pičman <karel.picman@kontron.com>
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@ -20,25 +20,25 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%> %>
<td class="dmsf_check"><%= check_box_tag(name, id, false, <td class="checkbox"><%= check_box_tag(name, id, false,
:title => l(:title_check_for_restore_or_delete), :id => "subfolder_#{id}") %></td> :title => l(:title_check_for_restore_or_delete), :id => "subfolder_#{id}") %></td>
<td class="dmsf_title"> <td class="dmsf_title">
<%= content_tag(:span, h(title), <%= content_tag(:span, h(title),
:title => h(title), :title => h(title),
:class => 'icon icon-folder') %> :class => 'icon icon-folder') %>
<% if link %> <% if link %>
<div class="filename" title="<%= l(:label_target_folder)%>"><%= link.path %></div> <div class="dmsf_filename" title="<%= l(:label_target_folder)%>"><%= link.path %></div>
<% else %> <% else %>
<div class="filename" title="<%= l(:title_items)%>">[<%= subfolder.items %>]</div> <div class="dmsf_filename" title="<%= l(:title_items)%>">[<%= subfolder.items %>]</div>
<% end %> <% end %>
</td> </td>
<td class="size"></td> <td class="dmsf_size"></td>
<td class="dmsf_modified"> <td class="dmsf_modified">
<%= format_time(subfolder.modified) if subfolder %> <%= format_time(subfolder.modified) if subfolder %>
</td> </td>
<td class="version"></td> <td class="dmsf_version"></td>
<td class="workflow"></td> <td class="dmsf_workflow"></td>
<td class="author"><%= h(subfolder.user) %></td> <td class="dmsf_author"><%= h(subfolder.user) %></td>
<td class="dmsf_buttons"> <td class="dmsf_buttons">
<% if @folder_manipulation_allowed %> <% if @folder_manipulation_allowed %>
<%= link_to(image_tag('restore.png', :plugin => 'redmine_dmsf'), <%= link_to(image_tag('restore.png', :plugin => 'redmine_dmsf'),
@ -50,7 +50,7 @@
:title => l(:title_delete)) %> :title => l(:title_delete)) %>
<% end %> <% end %>
</td> </td>
<td class="invisible">0</td> <td class="dmsf_invisible">0</td>
<td class="invisible">0</td> <td class="dmsf_invisible">0</td>
<td class="invisible"><%= subfolder.modified.to_i if subfolder %></td> <td class="dmsf_invisible"><%= subfolder.modified.to_i if subfolder %></td>
<td class="invisible">0</td> <td class="dmsf_invisible">0</td>

View File

@ -22,7 +22,7 @@
<% wf = DmsfWorkflow.find_by_id(file.last_revision.dmsf_workflow_id) %> <% wf = DmsfWorkflow.find_by_id(file.last_revision.dmsf_workflow_id) %>
<td class="dmsf_check"><%= check_box_tag(name, id, false, <td class="checkbox"><%= check_box_tag(name, id, false,
:title => l(:title_check_for_zip_download_or_email), :id => "file_#{id}") %></td> :title => l(:title_check_for_zip_download_or_email), :id => "file_#{id}") %></td>
<td class="dmsf_title"> <td class="dmsf_title">
<% file_view_url = url_for({:controller => :dmsf_files, :action => 'view', :id => file}) %> <% file_view_url = url_for({:controller => :dmsf_files, :action => 'view', :id => file}) %>
@ -32,9 +32,9 @@
:class => "icon icon-file #{DmsfHelper.filetype_css(file.name)}", :class => "icon icon-file #{DmsfHelper.filetype_css(file.name)}",
:title => l(:title_title_version_version_download, :title => h(file.title), :version => file.version), :title => l(:title_title_version_version_download, :title => h(file.title), :version => file.version),
'data-downloadurl' => "#{file.last_revision.detect_content_type}:#{h(file.name)}:#{file_view_url}") %> 'data-downloadurl' => "#{file.last_revision.detect_content_type}:#{h(file.name)}:#{file_view_url}") %>
<div class="filename" title="<%= l(:title_filename_for_download)%>"><%= h(link ? link.path : file.display_name) %></div> <div class="dmsf_filename" title="<%= l(:title_filename_for_download)%>"><%= h(link ? link.path : file.display_name) %></div>
</td> </td>
<td class="size"><%= number_to_human_size(file.last_revision.size) %></td> <td class="dmsf_size"><%= number_to_human_size(file.last_revision.size) %></td>
<td class="dmsf_modified"> <td class="dmsf_modified">
<%= format_time(file.last_revision.updated_at) %> <%= format_time(file.last_revision.updated_at) %>
<% if file.locked_for_user? %> <% if file.locked_for_user? %>
@ -51,8 +51,8 @@
:title => l(:title_locked_by_you)) %> :title => l(:title_locked_by_you)) %>
<% end %> <% end %>
</td> </td>
<td class="version" title="<%= file.last_revision.comment %>"><%= file.last_revision.version %></td> <td class="dmsf_version" title="<%= file.last_revision.comment %>"><%= file.last_revision.version %></td>
<td class="workflow"> <td class="dmsf_workflow">
<% if wf && @file_approval_allowed %> <% if wf && @file_approval_allowed %>
<%= link_to( <%= link_to(
file.last_revision.workflow_str(false), file.last_revision.workflow_str(false),
@ -66,7 +66,7 @@
<%= file.last_revision.workflow_str(false) %> <%= file.last_revision.workflow_str(false) %>
<% end %> <% end %>
</td> </td>
<td class="author"><%= h(file.last_revision.user) %></td> <td class="dmsf_author"><%= h(file.last_revision.user) %></td>
<td class="dmsf_buttons"> <td class="dmsf_buttons">
<% if @file_manipulation_allowed %> <% if @file_manipulation_allowed %>
<%= link_to(image_tag('filedetails.png', :plugin => 'redmine_dmsf'), <%= link_to(image_tag('filedetails.png', :plugin => 'redmine_dmsf'),
@ -160,7 +160,7 @@
title => l(:label_dmsf_wokflow_action_start)) %> title => l(:label_dmsf_wokflow_action_start)) %>
<% end %> <% end %>
<% when DmsfWorkflow::STATE_REJECTED %> <% when DmsfWorkflow::STATE_REJECTED %>
<%= content_tag(:span, image_tag('assigned.png', :plugin => 'redmine_dmsf'), <%= content_tag(:span, image_tag('rejected.png', :plugin => 'redmine_dmsf'),
:title => l(:title_rejected)) %> :title => l(:title_rejected)) %>
<% else %> <% else %>
<% if @workflows_available && !file.locked_for_user? %> <% if @workflows_available && !file.locked_for_user? %>
@ -174,7 +174,7 @@
<% end %> <% end %>
<% end %> <% end %>
</td> </td>
<td class="invisible">1</td> <td class="dmsf_invisible">1</td>
<td class="invisible"><%= file.last_revision.size %></td> <td class="dmsf_invisible"><%= file.last_revision.size %></td>
<td class="invisible"><%= file.last_revision.updated_at.to_i %></td> <td class="dmsf_invisible"><%= file.last_revision.updated_at.to_i %></td>
<td class="invisible"><%= file.last_revision.iversion %></td> <td class="dmsf_invisible"><%= file.last_revision.iversion %></td>

View File

@ -20,23 +20,23 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%> %>
<td class="dmsf_check"><%= check_box_tag(name, id, false, <td class="checkbox"><%= check_box_tag(name, id, false,
:title => l(:title_check_for_restore_or_delete), :id => "file_#{id}") %></td> :title => l(:title_check_for_restore_or_delete), :id => "file_#{id}") %></td>
<td class="dmsf_title"> <td class="dmsf_title">
<%= content_tag(:span, h(title), <%= content_tag(:span, h(title),
:title => h(title), :title => h(title),
:class => "icon icon-file #{DmsfHelper.filetype_css(file.name)}") %> :class => "icon icon-file #{DmsfHelper.filetype_css(file.name)}") %>
<div class="filename" title="<%= l(:title_filename_for_download)%>"><%= h(link ? link.path : file.display_name) %></div> <div class="dmsf_filename" title="<%= l(:title_filename_for_download)%>"><%= h(link ? link.path : file.display_name) %></div>
</td> </td>
<td class="size"><%= number_to_human_size(file.last_revision.size) %></td> <td class="dmsf_size"><%= number_to_human_size(file.last_revision.size) %></td>
<td class="dmsf_modified"> <td class="dmsf_modified">
<%= format_time(file.last_revision.updated_at) %> <%= format_time(file.last_revision.updated_at) %>
</td> </td>
<td class="version" title="<%= file.last_revision.comment %>"><%= file.last_revision.version %></td> <td class="dmsf_version" title="<%= file.last_revision.comment %>"><%= file.last_revision.version %></td>
<td class="workflow"> <td class="dmsf_workflow">
<%= file.last_revision.workflow_str(false) %> <%= file.last_revision.workflow_str(false) %>
</td> </td>
<td class="author"><%= h(file.last_revision.user) %></td> <td class="dmsf_author"><%= h(file.last_revision.user) %></td>
<td class="dmsf_buttons"> <td class="dmsf_buttons">
<% if @file_manipulation_allowed %> <% if @file_manipulation_allowed %>
<% if link %> <% if link %>
@ -60,7 +60,7 @@
<% end %> <% end %>
<% end %> <% end %>
</td> </td>
<td class="invisible">1</td> <td class="dmsf_invisible">1</td>
<td class="invisible"><%= file.last_revision.size %></td> <td class="dmsf_invisible"><%= file.last_revision.size %></td>
<td class="invisible"><%= file.last_revision.updated_at.to_i %></td> <td class="dmsf_invisible"><%= file.last_revision.updated_at.to_i %></td>
<td class="invisible"><%= file.last_revision.iversion %></td> <td class="dmsf_invisible"><%= file.last_revision.iversion %></td>

View File

@ -20,21 +20,21 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%> %>
<td class="dmsf_check"></td> <td class="checkbox"></td>
<td class="dmsf_title"> <td class="dmsf_title">
<%= link_to(h(title), <%= link_to(h(title),
link.external_url, link.external_url,
:target => '_blank', :target => '_blank',
:class => 'icon icon-link') %> :class => 'icon dmsf_icon-link') %>
<div class="filename" title="<%= l(:label_target_folder)%>"> <div class="dmsf_filename" title="<%= l(:label_target_folder)%>">
<%= link.external_url %> <%= link.external_url %>
</div> </div>
</td> </td>
<td class="size"></td> <td class="dmsf_size"></td>
<td class="dmsf_modified"><%= format_time(link.updated_at) %></td> <td class="dmsf_modified"><%= format_time(link.updated_at) %></td>
<td class="version"></td> <td class="dmsf_version"></td>
<td class="workflow"></td> <td class="dmsf_workflow"></td>
<td class="author"><%= h(link.user) %></td> <td class="dmsf_author"><%= h(link.user) %></td>
<td class="dmsf_buttons"> <td class="dmsf_buttons">
<span class="icon"></span> <span class="icon"></span>
<span class="icon"></span> <span class="icon"></span>
@ -49,7 +49,7 @@
<span class="icon"></span> <span class="icon"></span>
<% end %> <% end %>
</td> </td>
<td class="invisible">1</td> <td class="dmsf_invisible">1</td>
<td class="invisible"></td> <td class="dmsf_invisible"></td>
<td class="invisible">link.updated_at.to_i</td> <td class="dmsf_invisible">link.updated_at.to_i</td>
<td class="invisible"></td> <td class="dmsf_invisible"></td>

View File

@ -20,20 +20,20 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%> %>
<td class="dmsf_check"><%= check_box_tag(name, id, false, <td class="checkbox"><%= check_box_tag(name, id, false,
:title => l(:title_check_for_restore_or_delete)) %></td> :title => l(:title_check_for_restore_or_delete)) %></td>
<td class="dmsf_title"> <td class="dmsf_title">
<%= link_to(h(title), <%= link_to(h(title),
link.external_url, link.external_url,
:target => "_blank", :target => '_blank',
:class => 'icon icon-link') %> :class => 'icon dmsf_icon-link') %>
<div class="filename" title="<%= l(:label_target_folder)%>"><%= link.external_url %></div> <div class="dmsf_filename" title="<%= l(:label_target_folder)%>"><%= link.external_url %></div>
</td> </td>
<td class="size"></td> <td class="dmsf_size"></td>
<td class="dmsf_modified"><%= format_time(link.updated_at) %></td> <td class="dmsf_modified"><%= format_time(link.updated_at) %></td>
<td class="version"></td> <td class="dmsf_version"></td>
<td class="workflow"></td> <td class="dmsf_workflow"></td>
<td class="author"><%= h(link.user) %></td> <td class="dmsf_author"><%= h(link.user) %></td>
<td class="dmsf_buttons"> <td class="dmsf_buttons">
<% if @file_manipulation_allowed %> <% if @file_manipulation_allowed %>
<%= link_to(image_tag('restore.png', :plugin => 'redmine_dmsf'), <%= link_to(image_tag('restore.png', :plugin => 'redmine_dmsf'),
@ -46,7 +46,7 @@
:title => l(:title_delete)) %> :title => l(:title_delete)) %>
<% end %> <% end %>
</td> </td>
<td class="invisible">1</td> <td class="dmsf_invisible">1</td>
<td class="invisible"></td> <td class="dmsf_invisible"></td>
<td class="invisible">link.updated_at.to_i</td> <td class="dmsf_invisible">link.updated_at.to_i</td>
<td class="invisible"></td> <td class="dmsf_invisible"></td>

View File

@ -30,26 +30,26 @@
<% unless @folder.locked? %> <% unless @folder.locked? %>
<%= link_to(l(:button_lock), <%= link_to(l(:button_lock),
lock_dmsf_path(:id => @project, :folder_id => @folder), lock_dmsf_path(:id => @project, :folder_id => @folder),
:title => l(:title_lock_file), :class => 'icon icon-dmsf-lock') %> :title => l(:title_lock_file), :class => 'icon dmsf_icon-lock') %>
<% else %> <% else %>
<%= link_to_if(@folder.unlockable?, l(:button_unlock), <%= link_to_if(@folder.unlockable?, l(:button_unlock),
unlock_dmsf_path(:id => @project, :folder_id => @folder), unlock_dmsf_path(:id => @project, :folder_id => @folder),
:title => l(:title_unlock_file), :class => 'icon icon-dmsf-unlock')%> :title => l(:title_unlock_file), :class => 'icon dmsf_icon-unlock')%>
<% end %> <% end %>
<% if @folder.notification %> <% if @folder.notification %>
<%= link_to(l(:label_notifications_off), <%= link_to(l(:label_notifications_off),
notify_deactivate_dmsf_path(:id => @project, :folder_id => @folder), notify_deactivate_dmsf_path(:id => @project, :folder_id => @folder),
:title => l(:title_notifications_active_deactivate), :title => l(:title_notifications_active_deactivate),
:class => 'icon icon-notification-on') %> :class => 'icon dmsf_icon-notification-on') %>
<% else %> <% else %>
<%= link_to(l(:label_notifications_on), <%= link_to(l(:label_notifications_on),
notify_activate_dmsf_path(:id => @project, :folder_id => @folder), notify_activate_dmsf_path(:id => @project, :folder_id => @folder),
:title => l(:title_notifications_not_active_activate), :title => l(:title_notifications_not_active_activate),
:class => 'icon icon-notification-off') %> :class => 'icon dmsf_icon-notification-off') %>
<% end %> <% end %>
<%= link_to(l(:label_link_to), <%= link_to(l(:label_link_to),
new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @folder.id, :type => 'link_to'), new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @folder.id, :type => 'link_to'),
:title => l(:title_create_link), :class => 'icon icon-link') %> :title => l(:title_create_link), :class => 'icon dmsf_icon-link') %>
<%= link_to(l(:button_copy), copy_folder_path(:id => @folder), <%= link_to(l(:button_copy), copy_folder_path(:id => @folder),
:title => l(:title_copy), :class => 'icon icon-copy') %> :title => l(:title_copy), :class => 'icon icon-copy') %>
<%= link_to(l(:button_delete), <%= link_to(l(:button_delete),
@ -59,7 +59,7 @@
<% elsif @force_file_unlock_allowed %> <% elsif @force_file_unlock_allowed %>
<%= link_to_if(@folder.unlockable?, l(:button_unlock), <%= link_to_if(@folder.unlockable?, l(:button_unlock),
unlock_dmsf_path(:id => @project, :folder_id => @folder), unlock_dmsf_path(:id => @project, :folder_id => @folder),
:title => l(:title_unlock_file), :class => 'icon icon-dmsf-unlock')%> :title => l(:title_unlock_file), :class => 'icon dmsf_icon-unlock')%>
<% end %> <% end %>
<% end %> <% end %>
</div> </div>

View File

@ -30,12 +30,12 @@
<%= link_to(l(:label_notifications_off), <%= link_to(l(:label_notifications_off),
notify_deactivate_dmsf_path(:id => @project), notify_deactivate_dmsf_path(:id => @project),
:title => l(:title_notifications_active_deactivate), :title => l(:title_notifications_active_deactivate),
:class => 'icon icon-notification-on') %> :class => 'icon dmsf_icon-notification-on') %>
<% else %> <% else %>
<%= link_to(l(:label_notifications_on), <%= link_to(l(:label_notifications_on),
notify_activate_dmsf_path(:id => @project), notify_activate_dmsf_path(:id => @project),
:title => l(:title_notifications_active_deactivate), :title => l(:title_notifications_active_deactivate),
:class => 'icon icon-notification-off') %> :class => 'icon dmsf_icon-notification-off') %>
<% end %> <% end %>
<% end %> <% end %>
</div> </div>

View File

@ -39,28 +39,28 @@
<% if @folder.locked? %> <% if @folder.locked? %>
<%= link_to_if(@folder.unlockable?, l(:button_unlock), <%= link_to_if(@folder.unlockable?, l(:button_unlock),
unlock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url), unlock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url),
:title => l(:title_unlock_folder), :class => 'icon icon-dmsf-unlock') %> :title => l(:title_unlock_folder), :class => 'icon dmsf_icon-unlock') %>
<% else %> <% else %>
<%= link_to(l(:button_lock), <%= link_to(l(:button_lock),
lock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url), lock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url),
:title => l(:title_lock_folder), :class => 'icon icon-dmsf-lock') %> :title => l(:title_lock_folder), :class => 'icon dmsf_icon-lock') %>
<% end %> <% end %>
<% end %> <% end %>
<% if !@locked_for_user && ((@folder && @folder.notification) || (!@folder && @project.dmsf_notification)) %> <% if !@locked_for_user && ((@folder && @folder.notification) || (!@folder && @project.dmsf_notification)) %>
<%= link_to(l(:label_notifications_off), <%= link_to(l(:label_notifications_off),
notify_deactivate_dmsf_path(:id => @project, :folder_id => @folder), notify_deactivate_dmsf_path(:id => @project, :folder_id => @folder),
:title => l(:title_notifications_active_deactivate), :title => l(:title_notifications_active_deactivate),
:class => 'icon icon-notification-on') %> :class => 'icon dmsf_icon-notification-on') %>
<% else %> <% else %>
<%= link_to(l(:label_notifications_on), <%= link_to(l(:label_notifications_on),
notify_activate_dmsf_path(:id => @project, :folder_id => @folder), notify_activate_dmsf_path(:id => @project, :folder_id => @folder),
:title => l(:title_notifications_not_active_activate), :title => l(:title_notifications_not_active_activate),
:class => 'icon icon-notification-off') %> :class => 'icon dmsf_icon-notification-off') %>
<% end %> <% end %>
<% if @file_manipulation_allowed && !@locked_for_user %> <% if @file_manipulation_allowed && !@locked_for_user %>
<%= link_to(l(:label_link_from), <%= link_to(l(:label_link_from),
new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @folder ? @folder.id : @folder, :type => 'link_from'), new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @folder ? @folder.id : @folder, :type => 'link_from'),
:title => l(:title_create_link), :class => 'icon icon-link') %> :title => l(:title_create_link), :class => 'icon dmsf_icon-link') %>
<% end %> <% end %>
<%= link_to(l(:link_create_folder), <%= link_to(l(:link_create_folder),
new_dmsf_path(:id => @project, :parent_id => @folder), new_dmsf_path(:id => @project, :parent_id => @folder),
@ -85,7 +85,7 @@
<%= form_tag({:action => :entries_operation, :id => @project, :folder_id => @folder}, :method => :post, <%= form_tag({:action => :entries_operation, :id => @project, :folder_id => @folder}, :method => :post,
:class => 'dmfs_entries', :id => 'entries_form') do %> :class => 'dmfs_entries', :id => 'entries_form') do %>
<%= hidden_field_tag('action') %> <%= hidden_field_tag('action') %>
<div class="controls" style="float: left"> <div class="dmsf_controls" style="float: left">
<%= submit_tag(l(:button_download), :title => l(:title_download_checked), :name => 'download_entries') if @file_view_allowed %> <%= submit_tag(l(:button_download), :title => l(:title_download_checked), :name => 'download_entries') if @file_view_allowed %>
<%= submit_tag(l(:field_mail), :title => l(:title_send_checked_by_email), :name => 'email_entries') if (@file_view_allowed && User.current.allowed_to?(:email_documents, @project)) %> <%= submit_tag(l(:field_mail), :title => l(:title_send_checked_by_email), :name => 'email_entries') if (@file_view_allowed && User.current.allowed_to?(:email_documents, @project)) %>
<% if @file_delete_allowed%> <% if @file_delete_allowed%>
@ -94,30 +94,30 @@
</div> </div>
<% values = @folder ? @folder.custom_field_values : @parent ? @parent.custom_field_values : DmsfFolder.new(:project => @project).custom_field_values %> <% values = @folder ? @folder.custom_field_values : @parent ? @parent.custom_field_values : DmsfFolder.new(:project => @project).custom_field_values %>
<% unless values.empty? %> <% unless values.empty? %>
<div class="controls" style="float: right"> <div class="dmsf_controls" style="float: right">
<%= custom_field_tag_with_label( <%= custom_field_tag_with_label(
:dmsf_folder, :dmsf_folder,
CustomValue.new(:custom_field_id => params[:custom_field_id].present? ? params[:custom_field_id] : values.first.custom_field_id, :value => params[:custom_value])) %> CustomValue.new(:custom_field_id => params[:custom_field_id].present? ? params[:custom_field_id] : values.first.custom_field_id, :value => params[:custom_value])) %>
</div> </div>
<% end %> <% end %>
<div class="autoscroll"> <div class="autoscroll">
<table class="display list" id="browser"> <table class="display list dmsf_list" id="browser">
<thead> <thead>
<tr id="root"> <tr>
<th class="dmsf_check"> <th class="dmsf_checkbox dmsf_th">
<input id="check_all_entries" title="<%= l(:title_check_uncheck_all_for_zip_download_or_email) %>" type="checkbox" /> <input id="check_all_entries" title="<%= l(:title_check_uncheck_all_for_zip_download_or_email) %>" type="checkbox" />
</th> </th>
<th><%= l(:link_title) %></th> <th class ="dmsf_th"><%= l(:link_title) %></th>
<th><%= l(:link_size) %></th> <th class ="dmsf_th"><%= l(:link_size) %></th>
<th><%= l(:link_modified) %></th> <th class ="dmsf_th"><%= l(:link_modified) %></th>
<th title="<%= l(:label_version) %>"><%= l(:link_ver) %></th> <th title="<%= l(:label_version) %>" class ="dmsf_th"><%= l(:link_ver) %></th>
<th><%= l(:link_workflow) %></th> <th class ="dmsf_th"><%= l(:link_workflow) %></th>
<th><%= l(:link_author) %></th> <th class ="dmsf_th"><%= l(:link_author) %></th>
<th></th> <th class ="dmsf_th"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -138,7 +138,7 @@
<% Rails.logger.error "Error: dmsf_link id #{link.id} has no target!" %> <% Rails.logger.error "Error: dmsf_link id #{link.id} has no target!" %>
<% next %> <% next %>
<% end %> <% end %>
<tr class="gray"> <tr class="dmsf_gray">
<%= render(:partial => 'dir', <%= render(:partial => 'dir',
:locals => { :locals => {
:project => link.target_project, :project => link.target_project,
@ -169,7 +169,7 @@
<% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %> <% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %>
<% next %> <% next %>
<% end %> <% end %>
<tr class="gray"> <tr class="dmsf_gray">
<%= render(:partial => 'file', :locals => { <%= render(:partial => 'file', :locals => {
:project => link.target_project, :project => link.target_project,
:file => link.target_file, :file => link.target_file,
@ -180,7 +180,7 @@
</tr> </tr>
<% end %> <% end %>
<% @url_links.each do |link| %> <% @url_links.each do |link| %>
<tr class="gray"> <tr class="dmsf_gray">
<%= render(:partial => 'url', :locals => { <%= render(:partial => 'url', :locals => {
:project => link.target_project, :project => link.target_project,
:file => link.target_file, :file => link.target_file,
@ -242,7 +242,7 @@
{ 'iDataSort': 11, 'aTargets': [ 4 ] } { 'iDataSort': 11, 'aTargets': [ 4 ] }
], ],
'fnInitComplete': function() { 'fnInitComplete': function() {
jQuery('div.controls').prependTo(jQuery('#browser_wrapper div.fg-toolbar')[0]); jQuery('div.dmsf_controls').prependTo(jQuery('#browser_wrapper div.fg-toolbar')[0]);
}, },
'fnInfoCallback': function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) { 'fnInfoCallback': function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) {
return "<%= l(:label_number_of_folders)%>: <%= @subfolders.count + @dir_links.count %>, <%= l(:label_number_of_documents)%>: <%= @files.count + @file_links.count + @url_links.count %>"; return "<%= l(:label_number_of_folders)%>: <%= @subfolders.count + @dir_links.count %>, <%= l(:label_number_of_documents)%>: <%= @files.count + @file_links.count + @url_links.count %>";

View File

@ -35,7 +35,7 @@
<%= form_tag({:action => :entries_operation, :id => @project, :folder_id => @folder}, :method => :post, <%= form_tag({:action => :entries_operation, :id => @project, :folder_id => @folder}, :method => :post,
:class => 'dmfs_entries', :id => 'entries_form') do %> :class => 'dmfs_entries', :id => 'entries_form') do %>
<%= hidden_field_tag('action') %> <%= hidden_field_tag('action') %>
<div class="controls" style="float: left"> <div class="dmsf_controls" style="float: left">
<% if @file_manipulation_allowed && @folder_manipulation_allowed %> <% if @file_manipulation_allowed && @folder_manipulation_allowed %>
<%= submit_tag(l(:title_restore), :title => l(:title_restore_checked), :name => 'restore_entries') %> <%= submit_tag(l(:title_restore), :title => l(:title_restore_checked), :name => 'restore_entries') %>
<% if @file_delete_allowed%> <% if @file_delete_allowed%>
@ -44,23 +44,23 @@
<% end %> <% end %>
</div> </div>
<div class="autoscroll"> <div class="autoscroll">
<table class="display list" id="browser"> <table class="display list dmsf_list" id="browser">
<thead> <thead>
<tr id="root"> <tr>
<th class="dmsf_check"> <th class="dmsf_checkbox dmsf_th">
<input id="check_all_entries" title="<%= l(:title_check_uncheck_all_for_restore_or_delete) %>" type="checkbox" /> <input id="check_all_entries" title="<%= l(:title_check_uncheck_all_for_restore_or_delete) %>" type="checkbox" />
</th> </th>
<th><%= l(:link_title) %></th> <th class="dmsf_th"><%= l(:link_title) %></th>
<th><%= l(:link_size) %></th> <th class="dmsf_th"><%= l(:link_size) %></th>
<th><%= l(:link_modified) %></th> <th class="dmsf_th"><%= l(:link_modified) %></th>
<th title="<%= l(:label_version) %>"><%= l(:link_ver) %></th> <th title="<%= l(:label_version) %>" class="dmsf_th"><%= l(:link_ver) %></th>
<th><%= l(:link_workflow) %></th> <th class="dmsf_th"><%= l(:link_workflow) %></th>
<th><%= l(:link_author) %></th> <th class="dmsf_th"><%= l(:link_author) %></th>
<th></th> <th class="dmsf_th"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
<th class="invisible"></th> <th class="dmsf_invisible"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -77,7 +77,7 @@
</tr> </tr>
<% end %> <% end %>
<% @dir_links.each do |link| %> <% @dir_links.each do |link| %>
<tr class="gray"> <tr class="dmsf_gray">
<%= render(:partial => 'dir_trash', <%= render(:partial => 'dir_trash',
:locals => { :locals => {
:project => link.target_project, :project => link.target_project,
@ -108,7 +108,7 @@
<% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %> <% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %>
<% next %> <% next %>
<% end %> <% end %>
<tr class="gray"> <tr class="dmsf_gray">
<%= render(:partial => 'file_trash', :locals => { <%= render(:partial => 'file_trash', :locals => {
:project => link.target_project, :project => link.target_project,
:file => link.target_file, :file => link.target_file,
@ -119,7 +119,7 @@
</tr> </tr>
<% end %> <% end %>
<% @url_links.each do |link| %> <% @url_links.each do |link| %>
<tr class="gray"> <tr class="dmsf_gray">
<%= render(:partial => 'url_trash', :locals => { <%= render(:partial => 'url_trash', :locals => {
:project => link.target_project, :project => link.target_project,
:file => link.target_file, :file => link.target_file,
@ -180,7 +180,7 @@
{ 'iDataSort': 11, 'aTargets': [ 4 ] } { 'iDataSort': 11, 'aTargets': [ 4 ] }
], ],
'fnInitComplete': function() { 'fnInitComplete': function() {
jQuery('div.controls').prependTo(jQuery('#browser_wrapper div.fg-toolbar')[0]); jQuery('div.dmsf_controls').prependTo(jQuery('#browser_wrapper div.fg-toolbar')[0]);
}, },
'fnInfoCallback': function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) { 'fnInfoCallback': function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) {
return "<%= l(:label_number_of_folders)%>: <%= @subfolders.count + @dir_links.count %>, <%= l(:label_number_of_documents)%>: <%= @files.count + @file_links.count + @url_links.count %>"; return "<%= l(:label_number_of_folders)%>: <%= @subfolders.count + @dir_links.count %>, <%= l(:label_number_of_documents)%>: <%= @files.count + @file_links.count + @url_links.count %>";

View File

@ -35,7 +35,7 @@
<% revision.access_grouped.each do |access| %> <% revision.access_grouped.each do |access| %>
<tr> <tr>
<td><%= link_to_user(access.user) %></td> <td><%= link_to_user(access.user) %></td>
<td class="version"><%= access['count'] %></td> <td class="dmsf_version"><%= access['count'] %></td>
<td class="dmsf_modified"><%= format_time(DmsfHelper::to_time(access.first_at)) %></td> <td class="dmsf_modified"><%= format_time(DmsfHelper::to_time(access.first_at)) %></td>
<td class="dmsf_modified"><%= format_time(DmsfHelper::to_time(access.last_at)) %></td> <td class="dmsf_modified"><%= format_time(DmsfHelper::to_time(access.last_at)) %></td>
</tr> </tr>

View File

@ -29,33 +29,33 @@
<% unless @file.locked_for_user? %> <% unless @file.locked_for_user? %>
<% unless @file.locked? %> <% unless @file.locked? %>
<%= link_to(l(:button_lock), lock_dmsf_files_path(:id => @file), <%= link_to(l(:button_lock), lock_dmsf_files_path(:id => @file),
:title => l(:title_lock_file), :class => 'icon icon-dmsf-lock') %> :title => l(:title_lock_file), :class => 'icon dmsf_icon-lock') %>
<% else %> <% else %>
<%= link_to_if(@file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(:id => @file), <%= link_to_if(@file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(:id => @file),
:title => l(:title_unlock_file), :class => 'icon icon-dmsf-unlock') %> :title => l(:title_unlock_file), :class => 'icon dmsf_icon-unlock') %>
<% end %> <% end %>
<% if @file.notification %> <% if @file.notification %>
<%= link_to(l(:label_notifications_off), <%= link_to(l(:label_notifications_off),
notify_deactivate_dmsf_files_path(:id => @file), notify_deactivate_dmsf_files_path(:id => @file),
:title => l(:title_notifications_active_deactivate), :title => l(:title_notifications_active_deactivate),
:class => 'icon icon-notification-on') %> :class => 'icon dmsf_icon-notification-on') %>
<% else %> <% else %>
<%= link_to(l(:label_notifications_on), <%= link_to(l(:label_notifications_on),
notify_activate_dmsf_files_path(:id => @file), notify_activate_dmsf_files_path(:id => @file),
:title => l(:title_notifications_not_active_activate), :title => l(:title_notifications_not_active_activate),
:class => 'icon icon-notification-off') %> :class => 'icon dmsf_icon-notification-off') %>
<% end %> <% end %>
<%= link_to(l(:label_link_to), <%= link_to(l(:label_link_to),
new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @file.folder ? @file.folder.id : nil, :dmsf_file_id => @file.id, :type => 'link_to'), new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @file.folder ? @file.folder.id : nil, :dmsf_file_id => @file.id, :type => 'link_to'),
:title => l(:title_create_link), :title => l(:title_create_link),
:class => 'icon icon-link') %> :class => 'icon dmsf_icon-link') %>
<%= link_to("#{l(:button_copy)}/#{l(:button_move)}", copy_file_path(:id => @file), <%= link_to("#{l(:button_copy)}/#{l(:button_move)}", copy_file_path(:id => @file),
:title => l(:title_copy), :class => 'icon icon-copy') %> :title => l(:title_copy), :class => 'icon icon-copy') %>
<%= delete_link @file if @file_delete_allowed %> <%= delete_link @file if @file_delete_allowed %>
<% else %> <% else %>
<% if User.current.allowed_to?(:force_file_unlock, @project) %> <% if User.current.allowed_to?(:force_file_unlock, @project) %>
<%= link_to_if(@file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(:id => @file), <%= link_to_if(@file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(:id => @file),
:title => l(:title_unlock_file), :class => 'icon icon-dmsf-unlock')%> :title => l(:title_unlock_file), :class => 'icon dmsf_icon-unlock')%>
<% end %> <% end %>
<% end %> <% end %>
<% end %> <% end %>
@ -77,10 +77,10 @@
<h3><%= l(:heading_revisions) %></h3> <h3><%= l(:heading_revisions) %></h3>
<% @file.revisions.visible[@revision_pages.offset, @revision_pages.per_page].each do |revision| %> <% @file.revisions.visible[@revision_pages.offset, @revision_pages.per_page].each do |revision| %>
<div class="revision_box tabular dataTables_wrapper"> <div class="dmsf_revision_box tabular dataTables_wrapper">
<div class="fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"> <div class="fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix">
<div class="dataTables_lenght"> <div class="dataTables_lenght">
<div class="controls" style="float: right"> <div class="dmsf_controls" style="float: right">
<%= link_to_function image_tag('rev_downloads.png', :plugin => 'redmine_dmsf'), <%= link_to_function image_tag('rev_downloads.png', :plugin => 'redmine_dmsf'),
"$('#revision_access-#{revision.id}').toggle()", "$('#revision_access-#{revision.id}').toggle()",
:title => l(:title_download_entries) %> :title => l(:title_download_entries) %>

View File

@ -25,7 +25,7 @@
<div class="box"> <div class="box">
<%= form_tag({:controller => 'dmsf_upload', :action => 'upload_files', :id => @project, :folder_id => @folder}, <%= form_tag({:controller => 'dmsf_upload', :action => 'upload_files', :id => @project, :folder_id => @folder},
:id => 'uploadform', :method => :post, :multipart => true) do %> :id => 'uploadform', :method => :post, :multipart => true) do %>
<div class="upload_select"> <div class="dmsf_upload_select">
<select id="uploader_select"> <select id="uploader_select">
<option value="1"> <option value="1">
<%= l(:label_drag_drop) %> <%= l(:label_drag_drop) %>

View File

@ -1,6 +1,9 @@
<%# Redmine plugin for Document Management System "Features" <%
# encoding: utf-8
# #
# Copyright (C) 2013 Karel Pičman <karel.picman@kontron.com> # Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011-16 Karel Pičman <karel.picman@kontron.com>
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@ -14,32 +17,39 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%>
<h3 class="title"><%= l(:field_label_dmsf_workflow) %></h3> <h3 class="title"><%= l(:field_label_dmsf_workflow) %></h3>
<%= form_tag({:controller => 'dmsf_workflows', :action => 'new_action'}, <%= form_tag({:controller => 'dmsf_workflows', :action => 'new_action'},
:method => :post, :method => :post, :id => 'new-action-form') do %>
:id => 'new-action-form') do %>
<%= hidden_field_tag :dmsf_workflow_step_assignment_id, params[:dmsf_workflow_step_assignment_id] %> <%= hidden_field_tag :dmsf_workflow_step_assignment_id, params[:dmsf_workflow_step_assignment_id] %>
<%= hidden_field_tag :dmsf_file_revision_id, params[:dmsf_file_revision_id] %> <%= hidden_field_tag :dmsf_file_revision_id, params[:dmsf_file_revision_id] %>
<p><label><%= radio_button_tag 'step_action', DmsfWorkflowStepAction::ACTION_APPROVE, true %> <%= l(:label_dmsf_wokflow_action_approve) %></label><br/></p>
<p> <p>
<label><%= radio_button_tag 'step_action', DmsfWorkflowStepAction::ACTION_REJECT %> <%= l(:label_dmsf_wokflow_action_reject) %></label><br/> <label>
<%= text_area_tag :note, '', :placeholder => l(:message_dmsf_wokflow_note), :size => '38x2' %> <%= radio_button_tag 'step_action', DmsfWorkflowStepAction::ACTION_APPROVE, true %>
<%= l(:label_dmsf_wokflow_action_approve) %>
</label>
</p>
<p>
<label>
<%= radio_button_tag 'step_action', DmsfWorkflowStepAction::ACTION_REJECT %>
<%= l(:label_dmsf_wokflow_action_reject) %>
</label>
<br/>
<%= text_area_tag :note, '', :placeholder => l(:message_dmsf_wokflow_note), :style => 'width: 90%' %>
</p> </p>
<p> <p>
<%= label_tag 'delegate', l(:label_dmsf_wokflow_action_delegate) %><br/> <%= label_tag 'delegate', l(:label_dmsf_wokflow_action_delegate) %><br/>
<%= text_field_tag 'user_search', nil %> <%= text_field_tag 'user_search', nil %>
<%= javascript_tag "observeSearchfield('user_search', 'users_for_delegate', '#{ escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, :dmsf_workflow_step_assignment_id => params[:dmsf_workflow_step_assignment_id], :dmsf_file_revision_id => params[:dmsf_file_revision_id]) }')" %> <%= javascript_tag "observeSearchfield('user_search', 'dmsf_users_for_delegate', '#{ escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, :dmsf_workflow_step_assignment_id => params[:dmsf_workflow_step_assignment_id], :dmsf_file_revision_id => params[:dmsf_file_revision_id]) }')" %>
<%= content_tag('div', principals_radio_button_tags('step_action', @dmsf_workflow.delegates(nil, params[:dmsf_workflow_step_assignment_id], params[:dmsf_file_revision_id])), :id => 'users_for_delegate') %> <%= content_tag('div', principals_radio_button_tags('step_action', @dmsf_workflow.delegates(nil, params[:dmsf_workflow_step_assignment_id], params[:dmsf_file_revision_id])), :id => 'dmsf_users_for_delegate') %>
</p> </p>
<p class="buttons"> <p class="buttons">
<%= submit_tag l(:button_submit), :name => 'commit', :onclick => 'hideModal(this);' %> <%= submit_tag l(:button_submit), :name => 'commit', :onclick => 'hideModal(this);' %>
<%= submit_tag l(:button_cancel), :name => 'commit', :onclick => 'hideModal(this);' %> <%= submit_tag l(:button_cancel), :name => 'commit', :onclick => 'hideModal(this);' %>
</p> </p>
<% end %> <% end %>

View File

@ -1,6 +1,9 @@
<%# Redmine plugin for Document Management System "Features" <%
# encoding: utf-8
# #
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontron.com> # Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011-16 Karel Pičman <karel.picman@kontron.com>
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@ -14,16 +17,17 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%>
<h3 class="title"><%= l(:title_dmsf_workflow_log) %></h3> <h3 class="title"><%= l(:title_dmsf_workflow_log) %></h3>
<p> <p>
<% if params[:dmsf_file_revision_id].present? %> <% if params[:dmsf_file_revision_id].present? %>
<% revision = DmsfFileRevision.find_by_id(params[:dmsf_file_revision_id]) %> <% revision = DmsfFileRevision.find_by_id(params[:dmsf_file_revision_id]) %>
<% if revision %> <% if revision %>
<div class="log_header_box"> <div class="dmsf_log_header_box">
<div class="log_header_left"> <div class="dmsf_log_header_left">
<%= label_tag 'workflow_name', "#{l(:link_workflow)} #{l(:field_name).downcase}: " %> <%= label_tag 'workflow_name', "#{l(:link_workflow)} #{l(:field_name).downcase} " %>
<% if User.current.allowed_to?(:manage_workflows, @dmsf_workflow.project) %> <% if User.current.allowed_to?(:manage_workflows, @dmsf_workflow.project) %>
<%= link_to @dmsf_workflow.name, dmsf_workflow_path(@dmsf_workflow) %> <%= link_to @dmsf_workflow.name, dmsf_workflow_path(@dmsf_workflow) %>
<% else %> <% else %>
@ -31,7 +35,7 @@
<% end %> <% end %>
</div> </div>
<div> <div>
<%= label_tag 'workflow_status', "#{l(:field_status)}: " %> <%= label_tag 'workflow_status', l(:field_status) %>
<%= revision.workflow_str false %> <%= revision.workflow_str false %>
</div> </div>
</div> </div>
@ -47,34 +51,34 @@
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr id="step-0" class="even"> <tr id="step-0" class="even">
<td class="step"/> <td class="id"/>
<td/> <td/>
<td/> <td/>
<td><%= DmsfWorkflowStepAction.workflow_str(0) %></td> <td><%= DmsfWorkflowStepAction.workflow_str(0) %></td>
<td class="note"></td> <td class="dmsf_note"></td>
<td/> <td/>
</tr> </tr>
<tr id="step-1" class="odd"> <tr id="step-1" class="odd">
<td class="step"></td> <td class="id"></td>
<td><%= link_to_user User.find_by_id(revision.dmsf_workflow_assigned_by) if revision.dmsf_workflow_assigned_by %></td> <td><%= link_to_user User.find_by_id(revision.dmsf_workflow_assigned_by) if revision.dmsf_workflow_assigned_by %></td>
<td><%= DmsfWorkflowStepAction.action_str(DmsfWorkflowStepAction::ACTION_ASSIGN) %></td> <td><%= DmsfWorkflowStepAction.action_str(DmsfWorkflowStepAction::ACTION_ASSIGN) %></td>
<td><%= DmsfWorkflowStepAction.workflow_str(DmsfWorkflowStepAction::ACTION_ASSIGN) %></td> <td><%= DmsfWorkflowStepAction.workflow_str(DmsfWorkflowStepAction::ACTION_ASSIGN) %></td>
<td class="note"></td> <td class="dmsf_note"></td>
<td><%= format_time(revision.dmsf_workflow_assigned_at) if revision.dmsf_workflow_assigned_at %></td> <td><%= format_time(revision.dmsf_workflow_assigned_at) if revision.dmsf_workflow_assigned_at %></td>
</tr> </tr>
<tr id="step-2" class="even"> <tr id="step-2" class="even">
<td class="step"></td> <td class="id"></td>
<td><%= link_to_user User.find_by_id(revision.dmsf_workflow_started_by) if revision.dmsf_workflow_started_by %></td> <td><%= link_to_user User.find_by_id(revision.dmsf_workflow_started_by) if revision.dmsf_workflow_started_by %></td>
<td><%= DmsfWorkflowStepAction.action_str(DmsfWorkflowStepAction::ACTION_START) %></td> <td><%= DmsfWorkflowStepAction.action_str(DmsfWorkflowStepAction::ACTION_START) %></td>
<td><%= DmsfWorkflowStepAction.workflow_str(DmsfWorkflowStepAction::ACTION_START) if revision.dmsf_workflow_started_by %></td> <td><%= DmsfWorkflowStepAction.workflow_str(DmsfWorkflowStepAction::ACTION_START) if revision.dmsf_workflow_started_by %></td>
<td class="note"></td> <td class="dmsf_note"></td>
<td><%= format_time(revision.dmsf_workflow_started_at) if revision.dmsf_workflow_started_at %></td> <td><%= format_time(revision.dmsf_workflow_started_at) if revision.dmsf_workflow_started_at %></td>
</tr> </tr>
<% sql = "SELECT c.action, c.note, c.created_at, c.author_id, a.user_id, s.step FROM dmsf_workflow_step_actions c RIGHT JOIN dmsf_workflow_step_assignments a ON a.id = c.dmsf_workflow_step_assignment_id RIGHT JOIN dmsf_workflow_steps s ON s.id = a.dmsf_workflow_step_id WHERE a.dmsf_file_revision_id = #{revision.id} ORDER BY s.step, c.action DESC, c.created_at" %> <% sql = "SELECT c.action, c.note, c.created_at, c.author_id, a.user_id, s.step FROM dmsf_workflow_step_actions c RIGHT JOIN dmsf_workflow_step_assignments a ON a.id = c.dmsf_workflow_step_assignment_id RIGHT JOIN dmsf_workflow_steps s ON s.id = a.dmsf_workflow_step_id WHERE a.dmsf_file_revision_id = #{revision.id} ORDER BY s.step, c.action DESC, c.created_at" %>
<% result = DmsfWorkflowStep.connection.exec_query sql %> <% result = DmsfWorkflowStep.connection.exec_query sql %>
<% result.each_with_index do |row, i| %> <% result.each_with_index do |row, i| %>
<tr id="step-<%= i + 3 %> " class="<%= cycle 'odd', 'even' %>"> <tr id="step-<%= i + 3 %> " class="<%= cycle 'odd', 'even' %>">
<td class="step"><%= row['step'] %></td> <td class="id"><%= row['step'] %></td>
<td><%= link_to_user User.find_by_id(row['author_id'].present? ? row['author_id'] : row['user_id']) %></td> <td><%= link_to_user User.find_by_id(row['author_id'].present? ? row['author_id'] : row['user_id']) %></td>
<td><%= DmsfWorkflowStepAction.action_str(row['action']) %></td> <td><%= DmsfWorkflowStepAction.action_str(row['action']) %></td>
<td> <td>
@ -84,7 +88,7 @@
<%= DmsfWorkflowStepAction.workflow_str(row['action']) %> <%= DmsfWorkflowStepAction.workflow_str(row['action']) %>
<% end %> <% end %>
</td> </td>
<td class="note"><%= row['note'] %></td> <td class="dmsf_note"><%= row['note'] %></td>
<td><%= format_time(row['created_at']) if row['created_at'].present? %></td> <td><%= format_time(row['created_at']) if row['created_at'].present? %></td>
</tr> </tr>
<% end %> <% end %>
@ -93,5 +97,4 @@
</div> </div>
<% end %> <% end %>
<% end %> <% end %>
</p> </p>

View File

@ -17,7 +17,8 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%>
<% @workflows = DmsfWorkflow.active.sorted.where(:project_id => @project.id) if @project && @workflows.nil? %> <% @workflows = DmsfWorkflow.active.sorted.where(:project_id => @project.id) if @project && @workflows.nil? %>
@ -46,7 +47,7 @@
</tr></thead> </tr></thead>
<tbody> <tbody>
<% for workflow in @workflows %> <% for workflow in @workflows %>
<tr id="workflow-<%= workflow.id %>" class="workflow <%= workflow.active? ? 'active' : 'locked' %> <%= cycle('odd', 'even') %>"> <tr id="workflow-<%= workflow.id %>" class="dmsf_workflow <%= workflow.active? ? 'active' : 'locked' %> <%= cycle('odd', 'even') %>">
<td class="name"><%= link_to(h(workflow.name), dmsf_workflow_path(workflow)) %></td> <td class="name"><%= link_to(h(workflow.name), dmsf_workflow_path(workflow)) %></td>
<td class="buttons"> <td class="buttons">
<%= change_status_link(workflow) unless @project %> <%= change_status_link(workflow) unless @project %>

View File

@ -52,7 +52,7 @@
<tbody> <tbody>
<% steps.each do |i|%> <% steps.each do |i|%>
<tr id="step-<%= i %>" class="<%= cycle 'odd', 'even' %> step"> <tr id="step-<%= i %>" class="<%= cycle 'odd', 'even' %> step">
<td class="step"><%= i %></td> <td class="id"><%= i %></td>
<td class="approval"> <td class="approval">
<% @dmsf_workflow.dmsf_workflow_steps.collect{|s| (s.step == i) ? s : nil}.compact.each_with_index do |step, j| %> <% @dmsf_workflow.dmsf_workflow_steps.collect{|s| (s.step == i) ? s : nil}.compact.each_with_index do |step, j| %>
<% if j != 0 %> <% if j != 0 %>

View File

@ -1,6 +1,9 @@
<%# Redmine plugin for Document Management System "Features" <%
# encoding: utf-8
# #
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontron.com> # Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011-16 Karel Pičman <karel.picman@kontron.com>
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@ -14,7 +17,8 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%>
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'action', :locals => {:workflow => @dmsf_workflow}) %>'); $('#ajax-modal').html('<%= escape_javascript(render :partial => 'action', :locals => {:workflow => @dmsf_workflow}) %>');
showModal('ajax-modal', '35%'); showModal('ajax-modal', '35%');

View File

@ -1,6 +1,9 @@
<%# Redmine plugin for Document Management System "Features" <%
# encoding: utf-8
# #
# Copyright (C) 2013 Karel Pičman <karel.picman@kontron.com> # Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011-16 Karel Pičman <karel.picman@kontron.com>
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@ -14,6 +17,7 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%>
<%= render 'main' %> <%= render 'main' %>

View File

@ -19,14 +19,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
button {
vertical-align: middle;
margin-top: 1px;
margin-bottom: 1px;
}
/* DMSF table.list modifications */ /* DMSF table.list modifications */
table.list th.ui-state-default {
table.dmsf_list th.dmsf_th {
border: none; border: none;
} }
@ -34,6 +29,11 @@ table.list td.dmsf_modified {
min-width: 127px; min-width: 127px;
width: 127px; width: 127px;
font-size: 0.8em; font-size: 0.8em;
text-align: left;
}
td.dmsf_modified img {
vertical-align:text-top;
} }
table.list td.dmsf_title { table.list td.dmsf_title {
@ -47,108 +47,83 @@ table.list td.dmsf_buttons {
text-align: left; text-align: left;
} }
table.list th.dmsf_check, table.list td.dmsf_check { table.list th.dmsf_checkbox {
width: 17px; width: 15px;
padding: 2px; padding: 2px 0 0 0;
text-align: left;
} }
table.list th.dmsf_check div.DataTables_sort_wrapper { table.list th.dmsf_checkbox input {
padding:0px;
}
table.list th.dmsf_checkbox div.DataTables_sort_wrapper {
padding: 0; padding: 0;
} }
table.list td.note {
width: 20%;
}
table.list td.reorder {
width: 15%;
}
table.list td.step {
text-align: center;
width: 16px;
}
form.dmfs_entries { form.dmfs_entries {
margin-bottom: 10px; margin-bottom: 10px;
display: block; display: block;
} }
div.dataTables_wrapper div.fg-toolbar input, div.dataTables_wrapper div.fg-toolbar button, div.dmsf_controls,
div.dataTables_wrapper div.fg-toolbar select, div.dataTables_wrapper div.fg-toolbar { div.dmsf_controls input,
div.dmsf_controls select,
form.dmfs_entries #browser_filter.dataTables_filter,
form.dmfs_entries #browser_filter.dataTables_filter input{
font-size: 0.9em; font-size: 0.9em;
} }
input[type="checkbox"] { div.dmsf_filename {
margin: 1px; padding: 0 10px 0 10px;
} float: right;
font-size: 0.8em;
div.filename {
padding: 0 10px 0 10px; float: right; font-size: 0.8em;
white-space: nowrap; white-space: nowrap;
} }
td.size { td.dmsf_size {
font-size: 0.8em; font-size: 0.8em;
white-space: nowrap; white-space: nowrap;
} }
td.modified img { td.dmsf_author {
font-size: 0.8em;
white-space: nowrap;
}
td.dmsf_version {
font-size: 0.8em;
white-space: nowrap;
}
td.dmsf_version img {
vertical-align:text-top; vertical-align:text-top;
} }
td.author { td.dmsf_workflow {
font-size: 0.8em;
}
td.version {
font-size: 0.8em; font-size: 0.8em;
white-space: nowrap; white-space: nowrap;
} }
td.version img { .dmsf_invisible {
vertical-align:text-top;
}
td.workflow {
font-size: 0.8em;
white-space: nowrap;
}
#uploader div.flash {
border: none;
}
.invisible {
display: none; display: none;
} }
div.upload_select { div.dmsf_upload_select {
float: right; float: right;
font-size: 0.9em; font-size: 0.9em;
} }
div.upload_select input, div.upload_select select { div.dmsf_upload_select input, div.dmsf_upload_select select {
font-size: 0.9em; font-size: 0.9em;
} }
.plupload_scroll {
max-height: 1000px;
min-height: 175px;
}
.ui-resizable-s {
bottom: 0px;
}
/* Approval workflow */ /* Approval workflow */
#admin-menu a.approvalworkflows { background-image: url(../../../images/ticket_go.png); } #admin-menu a.dmsf-approvalworkflows { background-image: url(../../../images/ticket_go.png); }
#users_for_delegate { height: 200px; overflow:auto; } #dmsf_users_for_delegate { height: 200px; overflow:auto; }
#users_for_delegate label { display: block; } #dmsf_users_for_delegate label { display: block; }
tr.workflow.locked a { color: #aaa; } tr.dmsf_workflow.locked a { color: #aaa; }
.revision_box { .dmsf_revision_box {
padding: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;
margin-bottom: 10px; margin-bottom: 10px;
background-color:#f6f6f6; background-color:#f6f6f6;
@ -169,40 +144,35 @@ tr.workflow.locked a { color: #aaa; }
padding-left: 10px; padding-left: 10px;
} }
div.revision_box .ui-widget-header { div.dmsf_revision_box .ui-widget-header {
font-weight: normal; font-weight: normal;
} }
.log_header_box{ .dmsf_log_header_box{
padding:6px; padding:6px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.log_header_left { .dmsf_log_header_left {
width: 50%; width: 50%;
float: left; float: left;
} }
.log_header_box label{ .dmsf_log_header_box label{
font-weight: bold; font-weight: bold;
margin-left: 0px; margin-left: 0px;
margin-right: 3px; margin-right: 3px;
padding: 3px 0 3px 0; padding: 3px 0 3px 0;
} }
.modal a, .modal a:link, .modal a:visited{ color: #169; text-decoration: none; }
.modal a:hover, .modal a:active{ color: #c61a1a; text-decoration: underline;}
.modal{ font-size: 12px}
/* Command icons */ /* Command icons */
.icon-link { background-image: url(../images/link.png); } .dmsf_icon-link { background-image: url(../images/link.png); }
.icon-notification-on { background-image: url(../images/notify.png); margin-left: 3px; } .dmsf_icon-notification-on { background-image: url(../images/notify.png); margin-left: 3px; }
.icon-notification-off { background-image: url(../images/notifynot.png); margin-left: 3px; } .dmsf_icon-notification-off { background-image: url(../images/notifynot.png); margin-left: 3px; }
.icon-dmsf-lock { background-image: url(../images/lock.png); } .dmsf_icon-lock { background-image: url(../images/lock.png); }
.icon-dmsf-unlock { background-image: url(../images/unlock.png); } .dmsf_icon-unlock { background-image: url(../images/unlock.png); }
.icon-dmsf-locked { background-image: url(../images/locked.png); margin-left: 2px }
/* File types */ /* File types */
tr.gray .icon-folder { background-image: url(../images/folder_gray.png); } tr.dmsf_gray .icon-folder { background-image: url(../images/folder_gray.png); }
.icon-file.filetype-doc, .icon-file.filetype-docx { background-image: url(../images/filetypes/doc.png); } .icon-file.filetype-doc, .icon-file.filetype-docx { background-image: url(../images/filetypes/doc.png); }
.icon-file.filetype-xls, .icon-file.filetype-xlsx { background-image: url(../images/filetypes/xls.png); } .icon-file.filetype-xls, .icon-file.filetype-xlsx { background-image: url(../images/filetypes/xls.png); }
@ -214,45 +184,41 @@ tr.gray .icon-folder { background-image: url(../images/folder_gray.png); }
.icon-file.filetype-odp { background-image: url(../images/filetypes/odp.png); } .icon-file.filetype-odp { background-image: url(../images/filetypes/odp.png); }
.icon-file.filetype-odg { background-image: url(../images/filetypes/odg.png); } .icon-file.filetype-odg { background-image: url(../images/filetypes/odg.png); }
tr.gray .icon-file.filetype-doc { background-image: url(../images/filetypes/doc_gray.png); } tr.dmsf_gray .icon-file.filetype-doc { background-image: url(../images/filetypes/doc_gray.png); }
tr.gray .icon-file.filetype-docx { background-image: url(../images/filetypes/doc_gray.png); } tr.dmsf_gray .icon-file.filetype-docx { background-image: url(../images/filetypes/doc_gray.png); }
tr.gray .icon-file.filetype-xls { background-image: url(../images/filetypes/xls_gray.png); } tr.dmsf_gray .icon-file.filetype-xls { background-image: url(../images/filetypes/xls_gray.png); }
tr.gray .icon-file.filetype-xlsx { background-image: url(../images/filetypes/xls_gray.png); } tr.dmsf_gray .icon-file.filetype-xlsx { background-image: url(../images/filetypes/xls_gray.png); }
tr.gray .icon-file.filetype-ppt { background-image: url(../images/filetypes/ppt_gray.png); } tr.dmsf_gray .icon-file.filetype-ppt { background-image: url(../images/filetypes/ppt_gray.png); }
tr.gray .icon-file.filetype-pptx { background-image: url(../images/filetypes/ppt_gray.png); } tr.dmsf_gray .icon-file.filetype-pptx { background-image: url(../images/filetypes/ppt_gray.png); }
tr.gray .icon-file.filetype-vsd { background-image: url(../images/filetypes/vsd_gray.png); } tr.dmsf_gray .icon-file.filetype-vsd { background-image: url(../images/filetypes/vsd_gray.png); }
tr.gray .icon-file.filetype-vsdx { background-image: url(../images/filetypes/vsd_gray.png); } tr.dmsf_gray .icon-file.filetype-vsdx { background-image: url(../images/filetypes/vsd_gray.png); }
tr.gray .icon-file.filetype-mpp { background-image: url(../images/filetypes/mpp_gray.png); } tr.dmsf_gray .icon-file.filetype-mpp { background-image: url(../images/filetypes/mpp_gray.png); }
tr.gray .icon-file.filetype-odt { background-image: url(../images/filetypes/odt_gray.png); } tr.dmsf_gray .icon-file.filetype-odt { background-image: url(../images/filetypes/odt_gray.png); }
tr.gray .icon-file.filetype-ods { background-image: url(../images/filetypes/ods_gray.png); } tr.dmsf_gray .icon-file.filetype-ods { background-image: url(../images/filetypes/ods_gray.png); }
tr.gray .icon-file.filetype-odp { background-image: url(../images/filetypes/odp_gray.png); } tr.dmsf_gray .icon-file.filetype-odp { background-image: url(../images/filetypes/odp_gray.png); }
tr.gray .icon-file.filetype-odg { background-image: url(../images/filetypes/odg_gray.png); } tr.dmsf_gray .icon-file.filetype-odg { background-image: url(../images/filetypes/odg_gray.png); }
tr.gray .icon-file.text-x-c { background-image: url(../images/filetypes/c_gray.png); } tr.dmsf_gray .icon-file.text-x-c { background-image: url(../images/filetypes/c_gray.png); }
tr.gray .icon-file.text-x-csharp { background-image: url(../images/filetypes/csharp_gray.png); } tr.dmsf_gray .icon-file.text-x-csharp { background-image: url(../images/filetypes/csharp_gray.png); }
tr.gray .icon-file.text-x-java { background-image: url(../images/files/filetypes/java_gray.png); } tr.dmsf_gray .icon-file.text-x-java { background-image: url(../images/files/filetypes/java_gray.png); }
tr.gray .icon-file.text-x-javascript { background-image: url(../images/filetypes/js_gray.png); } tr.dmsf_gray .icon-file.text-x-javascript { background-image: url(../images/filetypes/js_gray.png); }
tr.gray .icon-file.text-x-php { background-image: url(../images/filetypes/php_gray.png); } tr.dmsf_gray .icon-file.text-x-php { background-image: url(../images/filetypes/php_gray.png); }
tr.gray .icon-file.text-x-ruby { background-image: url(../images/filetypes/ruby_gray.png); } tr.dmsf_gray .icon-file.text-x-ruby { background-image: url(../images/filetypes/ruby_gray.png); }
tr.gray .icon-file.text-xml { background-image: url(../images/filetypes/xml_gray.png); } tr.dmsf_gray .icon-file.text-xml { background-image: url(../images/filetypes/xml_gray.png); }
tr.gray .icon-file.text-css { background-image: url(../images/filetypes/css_gray.png); } tr.dmsf_gray .icon-file.text-css { background-image: url(../images/filetypes/css_gray.png); }
tr.gray .icon-file.text-html { background-image: url(../images/filetypes/html_gray.png); } tr.dmsf_gray .icon-file.text-html { background-image: url(../images/filetypes/html_gray.png); }
tr.gray .icon-file.image-gif { background-image: url(../images/filetypes/image_gray.png); } tr.dmsf_gray .icon-file.image-gif { background-image: url(../images/filetypes/image_gray.png); }
tr.gray .icon-file.image-jpeg { background-image: url(../images/filetypes/image_gray.png); } tr.dmsf_gray .icon-file.image-jpeg { background-image: url(../images/filetypes/image_gray.png); }
tr.gray .icon-file.image-png { background-image: url(../images/filetypes/image_gray.png); } tr.dmsf_gray .icon-file.image-png { background-image: url(../images/filetypes/image_gray.png); }
tr.gray .icon-file.image-tiff { background-image: url(../images/filetypes/image_gray.png); } tr.dmsf_gray .icon-file.image-tiff { background-image: url(../images/filetypes/image_gray.png); }
tr.gray .icon-file.application-pdf { background-image: url(../images/filetypes/pdf_gray.png); } tr.dmsf_gray .icon-file.application-pdf { background-image: url(../images/filetypes/pdf_gray.png); }
tr.gray .icon-file.application-zip { background-image: url(../images/filetypes/zip_gray.png); } tr.dmsf_gray .icon-file.application-zip { background-image: url(../images/filetypes/zip_gray.png); }
tr.gray .icon-file.application-x-gzip { background-image: url(../images/filetypes/zip_gray.png); } tr.dmsf_gray .icon-file.application-x-gzip { background-image: url(../images/filetypes/zip_gray.png); }
/* Links */ /* Links */
.gray { color: #AAA } .dmsf_gray { color: #AAA }
.gray a, .gray a:link, .gray a:visited{ color: #484848; text-decoration: none; } .dmsf_gray a, .dmsf_gray a:link, .dmsf_gray a:visited{ color: #484848; text-decoration: none; }
/* Search results */ /* Search results */
dt.dmsf-file { background-image: url(../../../images/document.png); } dt.dmsf-file { background-image: url(../../../images/document.png); }
dt.dmsf-folder { background-image: url(../../../images/folder.png); } dt.dmsf-folder { background-image: url(../../../images/folder.png); }
.select2-selection{height: 100% !important; min-height: 30px;}
.select2-selection__rendered{overflow: visible !important; min-height: 30px;}
.select2-results__options {max-height: 600px !important;}

View File

@ -93,7 +93,7 @@ Redmine::Plugin.register :redmine_dmsf do
# Administration menu extension # Administration menu extension
Redmine::MenuManager.map :admin_menu do |menu| Redmine::MenuManager.map :admin_menu do |menu|
menu.push :approvalworkflows, menu.push :dmsf_approvalworkflows,
{:controller => 'dmsf_workflows', :action => 'index'}, {:controller => 'dmsf_workflows', :action => 'index'},
:caption => :label_dmsf_workflow_plural :caption => :label_dmsf_workflow_plural
end end