<% # encoding: utf-8 # # Redmine plugin for Document Management System "Features" # # Copyright © 2011-20 Karel Pičman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> <% options = {} %> <% if dmsf_pages %> <% options[:offset] = dmsf_pages.offset %> <% options[:limit] = dmsf_pages.per_page %> <% end %> <% query.dmsf_nodes(options).each do |node| %> <% system = node.title =~ /^\./ %> <% id = (node.type == 'folder') ? "#{node.id}span" : "#{node.id}item" %> <% @idnt ||= 0 %> "> <%= check_box_tag('ids[]', "#{node.type}-#{node.id}", false, id: nil) unless system %> <% query.inline_columns.each do |column| %> <%= content_tag 'td', column_content(column, node), class: column.css_classes %> <% end %> <% unless system %> <% if defined?(EasyExtensions) %> <%= link_to '', '#', title: l(:button_actions), class: 'icon-only icon-actions js-contextmenu' %> <% else %> <%= link_to_context_menu %> <% end %> <% end %> <% end %> <% unless query.deleted %> <%= late_javascript_tag do %> $(function() { $("table.dmsf tr").removeClass("ui-draggable-dragging ui-droppable-active ui-droppable-hover ui-draggable-handle"); $(".dmsf-draggable").draggable({ helper: function(event, ui) { var ret = $(this).clone(); var width = $(this)[0].offsetWidth; var myHelper = []; myHelper.push(''); myHelper.push(ret.html()); myHelper.push('
'); helper = myHelper.join(''); return helper; }, axis: "y", revert: "invalid" }); $(".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 = {}; handle.addClass("ui-state-highlight ajax-loading") data['dmsf_folder'] = { drag_id: dragObjectId, drop_id: dropObjectId}; $.ajax({ url: '<%= dmsf_folder_url(query.project) %>', type: 'put', dataType: 'script', data: data, error: function(jqXHR, textStatus, errorThrown){ alert(errorThrown); ui.draggable.animate(ui.draggable.data("ui-draggable").originalPosition, "slow"); }, complete: function(jqXHR, textStatus, errorThrown){ handle.removeClass("ui-state-highlight ajax-loading") if(textStatus == 'success'){ if(!handle.hasClass('dmsf-not-loaded')){ var m = handle.attr("id").match(/^(\d+)span$/); if(m){ $('.' + m[1]).remove(); handle.removeClass("dmsf-expanded"); handle.addClass("dmsf-collapsed dmsf-not-loaded"); } ui.draggable.remove(); } window.location.reload(); } } }); } }); }); <% end %> <% end %>