#1207 drag & drop, on/off
This commit is contained in:
parent
6065f9baad
commit
37de665053
@ -402,7 +402,7 @@ class DmsfController < ApplicationController
|
||||
if params[:dmsf_folder][:drag_id] =~ /(.+)-(\d+)/
|
||||
type = $1
|
||||
id = $2
|
||||
if params[:dmsf_folder][:drop_id] =~ /^folder.*-(\d+)/
|
||||
if params[:dmsf_folder][:drop_id] =~ /^(\d+)(p|f)span$/
|
||||
case type
|
||||
when 'file'
|
||||
object = DmsfFile.find_by(id: id)
|
||||
@ -411,14 +411,25 @@ class DmsfController < ApplicationController
|
||||
when 'file-link', 'folder-link', 'url-link'
|
||||
object = DmsfLink.find_by(id: id)
|
||||
end
|
||||
dmsf_folder = DmsfFolder.find_by(id: $1)
|
||||
if object && dmsf_folder
|
||||
if dmsf_folder == object.dmsf_folder
|
||||
object.errors[:base] << l(:error_target_folder_same)
|
||||
elsif object.dmsf_folder&.locked_for_user?
|
||||
object.errors[:base] << l(:error_folder_is_locked)
|
||||
else
|
||||
result = object.move_to(dmsf_folder.project, dmsf_folder)
|
||||
if object
|
||||
case $2
|
||||
when 'p'
|
||||
project = Project.find_by(id: $1)
|
||||
if project && User.current.allowed_to?(:file_manipulation, project) &&
|
||||
User.current.allowed_to?(:folder_manipulation, project)
|
||||
result = object.move_to(project, nil)
|
||||
end
|
||||
when 'f'
|
||||
dmsf_folder = DmsfFolder.find_by(id: $1)
|
||||
if dmsf_folder
|
||||
if dmsf_folder == object.dmsf_folder
|
||||
object.errors[:base] << l(:error_target_folder_same)
|
||||
elsif object.dmsf_folder&.locked_for_user?
|
||||
object.errors[:base] << l(:error_folder_is_locked)
|
||||
else
|
||||
result = object.move_to(dmsf_folder.project, dmsf_folder)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -578,7 +578,7 @@ class DmsfFolder < ActiveRecord::Base
|
||||
classes << 'hascontextmenu'
|
||||
classes << 'dmsf-draggable'
|
||||
end
|
||||
if type =~ /^folder/
|
||||
if %(project folder).include?(type)
|
||||
classes << 'dmsf-droppable'
|
||||
end
|
||||
if type =~ /link$/
|
||||
|
||||
@ -83,7 +83,7 @@ class DmsfQuery < Query
|
||||
def base_scope
|
||||
unless @scope
|
||||
@scope = [dmsf_folders_scope, dmsf_folder_links_scope, dmsf_projects_scope, dmsf_files_scope, dmsf_file_links_scope, dmsf_url_links_scope].
|
||||
inject(:union_all)
|
||||
compact.inject(:union_all)
|
||||
end
|
||||
@scope
|
||||
end
|
||||
@ -192,6 +192,7 @@ class DmsfQuery < Query
|
||||
private
|
||||
|
||||
def dmsf_projects_scope
|
||||
return nil unless Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders']
|
||||
cf_columns = +''
|
||||
if statement.present?
|
||||
DmsfFileRevisionCustomField.visible.order(:position).pluck(:id).each do |id|
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
<%= content_tag 'td', column_content(column, node), class: column.css_classes %>
|
||||
<% end %>
|
||||
<td class="buttons">
|
||||
<% unless system %>
|
||||
<% unless (system || (node.type == 'project')) %>
|
||||
<% if defined?(EasyExtensions) %>
|
||||
<%= link_to '', '#', title: l(:button_actions), class: 'icon-only icon-actions js-contextmenu icon-more-horiz' %>
|
||||
<% else %>
|
||||
@ -75,10 +75,10 @@
|
||||
});
|
||||
$(".dmsf-droppable" ).droppable({
|
||||
drop: function(event, ui) {
|
||||
var handle = $(this);
|
||||
var dragObjectId = ui.draggable.find("td").find("input").val()
|
||||
var dropObjectId = handle.find("td").find("input").val();
|
||||
var data = {};
|
||||
let handle = $(this);
|
||||
let dragObjectId = ui.draggable.find("td").find("input").val()
|
||||
let dropObjectId = handle.attr('id');
|
||||
let data = {};
|
||||
handle.addClass("ui-state-highlight ajax-loading")
|
||||
data['dmsf_folder'] = { drag_id: dragObjectId, drop_id: dropObjectId};
|
||||
$.ajax({
|
||||
|
||||
@ -150,6 +150,15 @@
|
||||
</em>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= content_tag :label, l(:label_dmsf_projects_as_subfolders) %>
|
||||
<%= check_box_tag 'settings[dmsf_projects_as_subfolders]', true, @settings['dmsf_projects_as_subfolders'] %>
|
||||
<em class="info">
|
||||
<%= l(:note_dmsf_projects_as_subfolders) %><br/>
|
||||
<%= l(:label_default) %>: <%= l(:general_text_Yes) %>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
<em class="info">
|
||||
<%= l(:menu_dmsf) %> <%= l(:field_column_names) %>
|
||||
|
||||
@ -418,6 +418,8 @@ cs:
|
||||
|
||||
dmsf_copy: "Kopie (%{n})"
|
||||
label_empty_trash_bin: Vysypat koš
|
||||
label_dmsf_projects_as_subfolders: Podprojekty jako podaresáře
|
||||
note_dmsf_projects_as_subfolders: Přidá podprojekty jako podadresáře do pohledu DMS
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -417,6 +417,8 @@ de:
|
||||
|
||||
dmsf_copy: "Kopie (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ en:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ es:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ fr:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -417,6 +417,8 @@ hu:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ it: # Italian strings thx 2 Matteo Arceci!
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ ja:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -417,6 +417,8 @@ ko:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ nl:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ pl:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ pt-BR:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ ru:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ sl:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -417,6 +417,8 @@ zh-TW:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
@ -418,6 +418,8 @@ zh:
|
||||
|
||||
dmsf_copy: "Copy (%{n})"
|
||||
label_empty_trash_bin: Empty Trash
|
||||
label_dmsf_projects_as_subfolders: Sub-projects as sub-folders
|
||||
note_dmsf_projects_as_subfolders: Add sub-projects as sub-folders into DMS view
|
||||
|
||||
easy_pages:
|
||||
modules:
|
||||
|
||||
3
init.rb
3
init.rb
@ -59,7 +59,8 @@ Redmine::Plugin.register :redmine_dmsf do
|
||||
'dmsf_documents_email_links_only' => nil,
|
||||
'dmsf_enable_cjk_ngrams' => nil,
|
||||
'dmsf_webdav_use_project_names' => Redmine::Plugin.installed?(:easy_extensions) ? '1' : nil,
|
||||
'dmsf_webdav_ignore_1b_file_for_authentication' => '1'
|
||||
'dmsf_webdav_ignore_1b_file_for_authentication' => '1',
|
||||
'dmsf_projects_as_subfolders' => Redmine::Plugin.installed?(:easy_extensions) ? '1' : nil,
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ module RedmineDmsf
|
||||
@children = []
|
||||
if project
|
||||
# Sub-projects
|
||||
load_projects project.children
|
||||
load_projects(project.children) if Setting.plugin_redmine_dmsf['dmsf_projects_as_subfolders']
|
||||
if project.module_enabled?(:dmsf)
|
||||
# Folders
|
||||
if User.current.allowed_to?(:view_dmsf_folders, project)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user