From e4ea2388c4435ffe176a92117f5c9d5a282a3a79 Mon Sep 17 00:00:00 2001 From: Karel Picman Date: Tue, 16 Jan 2018 09:15:27 +0100 Subject: [PATCH] Javascript on pages is loaded asynchronously --- CHANGELOG.md | 1 + Gemfile | 6 ++++-- app/views/dmsf/edit.html.erb | 10 +++++----- app/views/dmsf/show.html.erb | 18 ++++++++--------- app/views/dmsf/trash.html.erb | 16 +++++++-------- app/views/dmsf_files/show.html.erb | 16 ++++++--------- .../dmsf_folder_permissions/_new.html.erb | 5 ++--- app/views/dmsf_folders_copy/_form.html.erb | 10 ++++------ app/views/dmsf_links/_form.html.erb | 15 +++++++------- app/views/dmsf_upload/_multi_upload.html.erb | 20 ++++++------------- app/views/dmsf_workflows/_action.html.erb | 4 ++-- .../dmsf_workflows/_new_step_form.html.erb | 2 +- app/views/dmsf_workflows/_steps.html.erb | 2 +- app/views/dmsf_workflows/new.html.erb | 4 ++-- assets/javascripts/attachments_dmsf.js | 4 ++-- .../hooks/views/issue_view_hooks.rb | 4 +++- 16 files changed, 61 insertions(+), 76 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3828935..ff156667 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Changelog for Redmine DMSF ------------------ WebDAV caching optionable in the plugin settings. Default is off. + Javascript on pages is loaded asynchronously. 1.6.0 *2017-09-12* ------------------ diff --git a/Gemfile b/Gemfile index edeb2ba5..ffc5305c 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ # # Copyright (C) 2011 Vít Jonáš # Copyright (C) 2012 Daniel Munn -# Copyright (C) 2011-17 Karel Pičman +# Copyright (C) 2011-18 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 @@ -28,4 +28,6 @@ gem 'simple_enum' gem 'uuidtools' gem 'dav4rack' gem 'dalli' -gem 'redmine_extensions' unless Dir.exist?(File.expand_path('../../easyproject', __FILE__)) +unless %w(easyproject easy_gantt).any? { |plugin| Dir.exist?(File.expand_path("../../#{plugin}", __FILE__)) } + gem 'redmine_extensions', '~> 0.2.5' +end diff --git a/app/views/dmsf/edit.html.erb b/app/views/dmsf/edit.html.erb index edb0dca8..cda067f4 100644 --- a/app/views/dmsf/edit.html.erb +++ b/app/views/dmsf/edit.html.erb @@ -5,7 +5,7 @@ # # Copyright (C) 2011 Vít Jonáš # Copyright (C) 2012 Daniel Munn -# Copyright (C) 2011-17 Karel Pičman +# Copyright (C) 2011-18 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 @@ -111,7 +111,7 @@ <% end %> <%= wikitoolbar_for 'dmsf_folder_description' %> - - + +<%= late_javascript_tag do %> + $('#dmsf_folder_dmsf_folder_id').select2(); +<% end %> diff --git a/app/views/dmsf/show.html.erb b/app/views/dmsf/show.html.erb index e7c5096c..af7a2502 100644 --- a/app/views/dmsf/show.html.erb +++ b/app/views/dmsf/show.html.erb @@ -5,7 +5,7 @@ # # Copyright (C) 2011 Vít Jonáš # Copyright (C) 2012 Daniel Munn - # Copyright (C) 2011-17 Karel Pičman + # Copyright (C) 2011-18 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 @@ -119,23 +119,21 @@ <% end %> - +<% end %> <% content_for :header_tags do %> <%= javascript_include_tag 'bowser.min.js', :plugin => 'redmine_dmsf' %> @@ -153,8 +151,8 @@ <% size = DmsfFolder.get_column_position('size') %> <% modified = DmsfFolder.get_column_position('modified') %> - + <% end %> <% end %> <% if (@file_manipulation_allowed && !@locked_for_user && !@system_folder) %> diff --git a/app/views/dmsf/trash.html.erb b/app/views/dmsf/trash.html.erb index 6dcb1c1b..fd208b21 100644 --- a/app/views/dmsf/trash.html.erb +++ b/app/views/dmsf/trash.html.erb @@ -3,7 +3,7 @@ # # Redmine plugin for Document Management System "Features" # -# Copyright (C) 2011-17 Karel Pičman +# Copyright (C) 2011-18 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 @@ -162,23 +162,21 @@ <% end %> - +<% end %> <% content_for :header_tags do %> <%= stylesheet_link_tag 'jquery.dataTables/jquery-ui.dataTables.css', :plugin => 'redmine_dmsf' %> @@ -195,9 +193,9 @@ <% size = DmsfFolder.get_column_position('size') %> <% modified = DmsfFolder.get_column_position('modified') %> - + <% end %> <% end %> diff --git a/app/views/dmsf_files/show.html.erb b/app/views/dmsf_files/show.html.erb index 872c50c2..df4513e8 100644 --- a/app/views/dmsf_files/show.html.erb +++ b/app/views/dmsf_files/show.html.erb @@ -5,7 +5,7 @@ # # Copyright (C) 2011 Vít Jonáš # Copyright (C) 2012 Daniel Munn -# Copyright (C) 2011-17 Karel Pičman +# Copyright (C) 2011-18 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 @@ -179,26 +179,23 @@ <%= pagination_links_full @revision_pages, @file.dmsf_file_revisions.visible.count %> - +<% end %> <% if @revision.valid? && @file.valid? %> - + <% end %> <% end %> <% content_for :header_tags do %> <%= stylesheet_link_tag 'jquery.dataTables/jquery-ui.dataTables.css', :plugin => 'redmine_dmsf' %> <%= javascript_include_tag 'jquery.dataTables/jquery.dataTables.min.js', :plugin => 'redmine_dmsf' %> -<% end %> \ No newline at end of file +<% end %> diff --git a/app/views/dmsf_folder_permissions/_new.html.erb b/app/views/dmsf_folder_permissions/_new.html.erb index 76f68cf3..efac3dc9 100644 --- a/app/views/dmsf_folder_permissions/_new.html.erb +++ b/app/views/dmsf_folder_permissions/_new.html.erb @@ -7,9 +7,8 @@ <%= hidden_field_tag :project_id, @project.id %>

<%= label_tag 'user_search', l(:label_user_search) %><%= text_field_tag 'user_search', nil %>

- <%= javascript_tag "observeSearchfield('user_search', 'users_for_users', '#{ escape_javascript url_for(:controller => 'dmsf_folder_permissions', - :action => 'autocomplete_for_user', - :project_id => @project) }')" %> + <%= late_javascript_tag "observeSearchfield('user_search', 'users_for_users', '#{ escape_javascript url_for( + :controller => 'dmsf_folder_permissions', :action => 'autocomplete_for_user', :project_id => @project) }')" %>
<%= render_principals_for_new_folder_permissions(@principals) %> diff --git a/app/views/dmsf_folders_copy/_form.html.erb b/app/views/dmsf_folders_copy/_form.html.erb index 27d0723f..6ef57208 100644 --- a/app/views/dmsf_folders_copy/_form.html.erb +++ b/app/views/dmsf_folders_copy/_form.html.erb @@ -3,7 +3,7 @@ # # Redmine plugin for Document Management System "Features" # -# Copyright (C) 2011-17 Karel Pičman +# Copyright (C) 2011-18 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 @@ -43,16 +43,14 @@ <% end %> <% end %> - +<% end %> diff --git a/app/views/dmsf_links/_form.html.erb b/app/views/dmsf_links/_form.html.erb index 5d9df1e1..91eca119 100644 --- a/app/views/dmsf_links/_form.html.erb +++ b/app/views/dmsf_links/_form.html.erb @@ -3,7 +3,7 @@ # # Redmine plugin for Document Management System "Features" # -# Copyright (C) 2011-17 Karel Pičman +# Copyright (C) 2011-18 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 @@ -46,7 +46,7 @@ <%= select_tag('dmsf_link[target_project_id]', project_tree_options_for_select(DmsfFile.allowed_target_projects_on_copy, :selected => @dmsf_link.target_project), :style => "width=100%") %> - <%= javascript_tag do %> + <%= late_javascript_tag do %> $('#dmsf_link_target_project_id').change(function(){ $.ajax({ url: '<%= autocomplete_for_project_dmsf_link_path(@project, :format => 'js') %>', @@ -65,7 +65,7 @@ <%= select_tag('dmsf_link[target_folder_id]', folder_tree_options_for_select(DmsfFolder.directory_tree(@dmsf_link.target_project), :selected => @target_folder_id)) %> - <%= javascript_tag do %> + <%= late_javascript_tag do %> $('#dmsf_link_target_folder_id').change(function(){ $.ajax({ url: '<%= autocomplete_for_folder_dmsf_link_path(@project, :format => 'js') %>', @@ -104,7 +104,7 @@

<% end %> - +<% end %> diff --git a/app/views/dmsf_upload/_multi_upload.html.erb b/app/views/dmsf_upload/_multi_upload.html.erb index f3bd3ddb..dee8fe05 100644 --- a/app/views/dmsf_upload/_multi_upload.html.erb +++ b/app/views/dmsf_upload/_multi_upload.html.erb @@ -45,12 +45,11 @@
<% end %> - + var dmsfFileFieldCount = 1; +<% end %> <% content_for :header_tags do %> <%= stylesheet_link_tag 'plupload/jquery.ui.plupload.css', :plugin => 'redmine_dmsf' %> <%= javascript_include_tag 'plupload/js/plupload.full.min.js', :plugin => 'redmine_dmsf' %> <%= javascript_include_tag 'plupload/js/jquery.ui.plupload/jquery.ui.plupload.js', :plugin => 'redmine_dmsf' %> <%= javascript_include_tag(js_url, :plugin => 'redmine_dmsf') %> - - + <% end %> <% end %> diff --git a/app/views/dmsf_workflows/_action.html.erb b/app/views/dmsf_workflows/_action.html.erb index f88a2bd4..845ddd1c 100644 --- a/app/views/dmsf_workflows/_action.html.erb +++ b/app/views/dmsf_workflows/_action.html.erb @@ -44,7 +44,7 @@

<%= label_tag 'delegate', l(:label_dmsf_wokflow_action_delegate) %>
<%= text_field_tag 'user_search', nil %> - <%= javascript_tag "observeSearchfield('user_search', null, '#{ 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]) }')" %> + <%= late_javascript_tag "observeSearchfield('user_search', null, '#{ 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]) }')" %>

<%= render_principals_for_new_dmsf_workflow_users( @dmsf_workflow, params[:dmsf_workflow_step_assignment_id], params[:dmsf_file_revision_id]) %> @@ -55,4 +55,4 @@ <%= submit_tag l(:button_submit), :name => 'commit', :onclick => 'hideModal(this);' %> <%= submit_tag l(:button_cancel), :name => 'commit', :onclick => 'hideModal(this);' %>

-<% end %> \ No newline at end of file +<% end %> diff --git a/app/views/dmsf_workflows/_new_step_form.html.erb b/app/views/dmsf_workflows/_new_step_form.html.erb index 434bde75..5e691817 100644 --- a/app/views/dmsf_workflows/_new_step_form.html.erb +++ b/app/views/dmsf_workflows/_new_step_form.html.erb @@ -23,7 +23,7 @@
<%= l(:label_dmsf_workflow_add_approver) %>

<%= label_tag 'user_search', l(:label_user_search) %><%= text_field_tag 'user_search', nil %>

- <%= javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, :dmsf_workflow_step_assignment_id => nil, :dmsf_file_revision_id => nil, :project_id => @project ? @project.id : nil) }')" %> + <%= late_javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, :dmsf_workflow_step_assignment_id => nil, :dmsf_file_revision_id => nil, :project_id => @project ? @project.id : nil) }')" %>
<%= render_principals_for_new_dmsf_workflow_users(@dmsf_workflow) %>
diff --git a/app/views/dmsf_workflows/_steps.html.erb b/app/views/dmsf_workflows/_steps.html.erb index 76d65a11..0b292164 100644 --- a/app/views/dmsf_workflows/_steps.html.erb +++ b/app/views/dmsf_workflows/_steps.html.erb @@ -125,6 +125,6 @@ <% end %>
-<%= javascript_tag do %> +<%= late_javascript_tag do %> $(function() { $("table.steps tbody").positionedItems(); }); <% end %> diff --git a/app/views/dmsf_workflows/new.html.erb b/app/views/dmsf_workflows/new.html.erb index 157c309a..7293241a 100644 --- a/app/views/dmsf_workflows/new.html.erb +++ b/app/views/dmsf_workflows/new.html.erb @@ -45,9 +45,9 @@ <%= f.submit l(:button_create) %> <% end %> - +<% end %> diff --git a/assets/javascripts/attachments_dmsf.js b/assets/javascripts/attachments_dmsf.js index 6000118b..decd6d20 100644 --- a/assets/javascripts/attachments_dmsf.js +++ b/assets/javascripts/attachments_dmsf.js @@ -285,7 +285,7 @@ function dmsfSetupFileDrop() { } } -$(document).ready(dmsfSetupFileDrop); -$(document).on("erui_new_dom", function() { +EASY.schedule.late(function () { dmsfSetupFileDrop(); + $(document).on("erui_new_dom", dmsfSetupFileDrop); }); diff --git a/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb b/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb index b28cf1ad..1da3fea0 100644 --- a/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb +++ b/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb @@ -48,7 +48,9 @@ module RedmineDmsf html << l(:label_dmsf_attachments) html << '' html << '

' - html << "" if User.current.pref.dmsf_attachments_upload_choice == 'DMSF' + if User.current.pref.dmsf_attachments_upload_choice == 'DMSF' + html << late_javascript_tag("$(document).ready(function() {$('.attachments-container:not(.dmsf_uploader)').parent().hide();})") + end end # Upload form html.html_safe + attach_documents_form(context, false,