Javascript on pages is loaded asynchronously

This commit is contained in:
Karel Picman 2018-01-16 09:15:27 +01:00
parent 80efa44749
commit e4ea2388c4
16 changed files with 61 additions and 76 deletions

View File

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

View File

@ -4,7 +4,7 @@
#
# Copyright (C) 2011 Vít Jonáš <vit.jonas@gmail.com>
# Copyright (C) 2012 Daniel Munn <dan.munn@munnster.co.uk>
# Copyright (C) 2011-17 Karel Pičman <karel.picman@kontron.com>
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
#
# 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

View File

@ -5,7 +5,7 @@
#
# Copyright (C) 2011 Vít Jonáš <vit.jonas@gmail.com>
# Copyright (C) 2012 Daniel Munn <dan.munn@munnster.co.uk>
# Copyright (C) 2011-17 Karel Pičman <karel.picman@kontron.com>
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
#
# 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' %>
<script type="text/javascript">
$('#dmsf_folder_dmsf_folder_id').select2();
</script>
<%= late_javascript_tag do %>
$('#dmsf_folder_dmsf_folder_id').select2();
<% end %>

View File

@ -5,7 +5,7 @@
#
# Copyright (C) 2011 Vít Jonáš <vit.jonas@gmail.com>
# Copyright (C) 2012 Daniel Munn <dan.munn@munnster.co.uk>
# Copyright (C) 2011-17 Karel Pičman <karel.picman@kontron.com>
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
#
# 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 @@
</div>
<% end %>
<script type="text/javascript">
$('#entries_delete_button').click(function() {
if(window.confirm("<%= l(:text_are_you_sure) %>")) {
<%= late_javascript_tag do %>
$('#entries_delete_button').click(function () {
if (window.confirm("<%= l(:text_are_you_sure) %>")) {
$('#entries_form').attr('action', "<%= delete_entries_path(:id => @project, :folder_id => @folder) %>");
$('#entries_form').submit();
}
});
$('.list_cf').change(function() {
$('#entries_form').attr('action', "<%= tag_changed_path(:id => @project, :folder_id => @folder) %>");
$('#entries_form').submit();
});
$('#check_all_entries').click(function() {
$('input[type=checkbox]', $('#browser > tbody')).prop('checked', this.checked);
});
</script>
<% 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') %>
<script type="text/javascript">
$(document).ready(function() {
<%= late_javascript_tag do %>
EASY.schedule.main(function() {
$('#browser').dataTable({
'bJQueryUI': true,
'oLanguage': {
@ -211,7 +209,7 @@
$(this).removeAttr('data-submitted');
});
});
</script>
<% end %>
<% end %>
<% if (@file_manipulation_allowed && !@locked_for_user && !@system_folder) %>

View File

@ -3,7 +3,7 @@
#
# Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011-17 Karel Pičman <karel.picman@kontron.com>
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
#
# 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 @@
</div>
<% end %>
<script type="text/javascript">
<%= late_javascript_tag do %>
$('#entries_delete_button').click(function() {
if(window.confirm("<%= l(:text_are_you_sure) %>")) {
$('#entries_form').attr('action', "<%= delete_entries_path(:id => @project, :folder_id => @folder) %>");
$('#entries_form').submit();
}
});
$('.list_cf').change(function() {
$('#entries_form').attr('action', "<%= tag_changed_path(:id => @project, :folder_id => @folder) %>");
$('#entries_form').submit();
});
$('#check_all_entries').click(function() {
$('input[type=checkbox]', $('#browser > tbody')).prop('checked', this.checked);
});
</script>
<% 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') %>
<script type="text/javascript">
$(document).ready(function() {
$('#browser').dataTable({
<%= late_javascript_tag do %>
EASY.schedule.main(function() {
$('#browser').dataTable({
'bJQueryUI': true,
'oLanguage': {
'sUrl': "<%= plugin_asset_path(:redmine_dmsf, 'javascripts', json_url) %>"
@ -233,5 +231,5 @@
$(this).removeAttr('data-submitted');
});
});
</script>
<% end %>
<% end %>

View File

@ -5,7 +5,7 @@
#
# Copyright (C) 2011 Vít Jonáš <vit.jonas@gmail.com>
# Copyright (C) 2012 Daniel Munn <dan.munn@munnster.co.uk>
# Copyright (C) 2011-17 Karel Pičman <karel.picman@kontron.com>
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
#
# 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 @@
<span class="pagination"><%= pagination_links_full @revision_pages, @file.dmsf_file_revisions.visible.count %></span>
<script type="text/javascript">
<%= late_javascript_tag do %>
$('a.delete-revision').click(function(event) {
if(!window.confirm('<%= l(:text_are_you_sure) %>')) {
event.preventDefault();
}
});
$('a.delete-entry').click(function(event) {
if(!window.confirm('<%= l(:text_are_you_sure) %>')) {
event.preventDefault();
}
});
$('#file_upload_box').change(function() {
if($("input[name='version']:checked").val() == '0') {
$('#version_1').prop('checked', true);
}
$('#version_0').prop('disabled', true);
});
$('#newRevisionFormContentToggle').click(function() {
if($('#newRevisionFormContent').is(':visible')) {
$(this).text('[+]');
@ -209,22 +206,21 @@
$('#newRevisionFormContent').show();
}
});
$('.dmsf_list').dataTable({
'bJQueryUI': true,
'oLanguage': {
'sUrl': "<%= plugin_asset_path(:redmine_dmsf, 'javascripts', json_url) %>"
}
});
</script>
<% end %>
<% if @revision.valid? && @file.valid? %>
<script type="text/javascript">
<%= late_javascript_tag do %>
$('#newRevisionFormContentToggle').text('[+]');
$('#newRevisionFormContent').hide();
</script>
<% 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 %>
<% end %>

View File

@ -7,9 +7,8 @@
<%= hidden_field_tag :project_id, @project.id %>
<p><%= label_tag 'user_search', l(:label_user_search) %><%= text_field_tag 'user_search', nil %></p>
<%= 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) }')" %>
<div id="users_for_watcher">
<%= render_principals_for_new_folder_permissions(@principals) %>

View File

@ -3,7 +3,7 @@
#
# Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011-17 Karel Pičman <karel.picman@kontron.com>
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
#
# 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 %>
<script type="text/javascript">
<%= late_javascript_tag do %>
$('#move_button').click(function(event) {
$('#copyForm').attr('action', "<%= url_for(:action => 'move', :id => file_or_folder) %>");
$('#copyForm').submit();
});
$('#target_project_id').change(function () {
$('#content').load("<%= url_for(:action => 'new') %>", $('#copyForm').serialize());
$('#content').load("<%= url_for(:action => 'new') %>", $('#copyForm').serialize());
});
$('#target_project_id').select2();
$('#target_folder_id').select2();
</script>
<% end %>

View File

@ -3,7 +3,7 @@
#
# Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011-17 Karel Pičman <karel.picman@kontron.com>
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
#
# 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 @@
</p>
<% end %>
<script type="text/javascript">
<%= late_javascript_tag do %>
<%# Select2 extension, TODO: in case of a modal window, select2 makes problems %>
<% unless modal %>
$('#dmsf_link_target_project_id').select2();
@ -115,9 +115,8 @@
$('#dmsf_link_target_file_id').change(function () {
var linkName = $('#dmsf_link_name');
var name = linkName.val();
if(name == '') {
linkName.val($('#dmsf_link_target_file_id option:selected').text().replace(/\./g, ''));
linkName.val($('#dmsf_link_target_file_id option:selected').text().replace(/\./g, ''));
}
});
<%# Internal/External link switch %>
@ -128,7 +127,7 @@
var labelUrl = $('label[for="dmsf_link_external_url"]');
labelUrl.toggleClass('required', $(this).val());
if(labelUrl.find(".required").length == 0){
labelUrl.append('<span class="required"> *</span>');
labelUrl.append('<span class="required"> *</span>');
}
});
</script>
<% end %>

View File

@ -45,12 +45,11 @@
</div>
<% end %>
<script type="text/javascript">
<%# TODO: late_javascript_tag is not working here %>
<%= javascript_tag do %>
var originalUploaderContent;
var uploader = $('#dmsf_uploader');
originalUploaderContent = uploader.html();
$('#uploader_select').change(function() {
if($(this).val() === '2') {
uploader.html(originalUploaderContent);
@ -59,19 +58,16 @@
initPlUploader(uploader);
}
});
initPlUploader(uploader);
var dmsfFileFieldCount = 1;
</script>
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') %>
<script type="text/javascript">
<%= javascript_tag do %>
function initPlUploader(uploader) {
uploader.html('<div></div>');
uploader = $('div', uploader);
@ -84,20 +80,16 @@
// Enable ability to drag'n'drop files onto the widget (currently only HTML5 supports that)
dragdrop: true,
multipart_params : { authenticity_token : $('input[name=authenticity_token]').val() },
// Rename files by clicking on their titles
rename: true,
// Views to activate
views: {
list: true,
thumbs: true, // Show thumbs
active: 'thumbs'
},
// Flash settings
flash_swf_url : '<%= plugin_asset_path(:redmine_dmsf, 'javascripts', 'plupload/js/Moxie.swf') %>',
// Silverlight settings
silverlight_xap_url : '<%= plugin_asset_path(:redmine_dmsf, 'javascripts', 'plupload/js/Moxie.xap') %>'
});
@ -142,5 +134,5 @@
return true;
});
}
</script>
<% end %>
<% end %>

View File

@ -44,7 +44,7 @@
<p>
<%= label_tag 'delegate', l(:label_dmsf_wokflow_action_delegate) %><br/>
<%= 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]) }')" %>
<div id="dmsf_users_for_delegate">
<%= 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);' %>
</p>
<% end %>
<% end %>

View File

@ -23,7 +23,7 @@
<fieldset class="box">
<legend><%= l(:label_dmsf_workflow_add_approver) %></legend>
<p><%= label_tag 'user_search', l(:label_user_search) %><%= text_field_tag 'user_search', nil %></p>
<%= 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) }')" %>
<div id="dmsf_users_for_delegate">
<%= render_principals_for_new_dmsf_workflow_users(@dmsf_workflow) %>
</div>

View File

@ -125,6 +125,6 @@
<% end %>
</div>
<%= javascript_tag do %>
<%= late_javascript_tag do %>
$(function() { $("table.steps tbody").positionedItems(); });
<% end %>

View File

@ -45,9 +45,9 @@
<%= f.submit l(:button_create) %>
<% end %>
<script type="text/javascript">
<%= late_javascript_tag do %>
$('#dmsf_workflow_id').change(function () {
$('#content').load("<%= @project ? url_for(:action => 'new', :project_id => @project.id) : url_for(:action => 'new') %>", $('#new_dmsf_workflow').serialize());
});
$('#dmsf_workflow_id').select2();
</script>
<% end %>

View File

@ -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);
});

View File

@ -48,7 +48,9 @@ module RedmineDmsf
html << l(:label_dmsf_attachments)
html << '</label>'
html << '</p>'
html << "<script>$( document ).ready(function() {$('.attachments-container:not(.dmsf_uploader)').parent().hide();})</script>" 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,