From ec03d115a998e057667fb5800e574e961b2bbe31 Mon Sep 17 00:00:00 2001 From: rvelices Date: Thu, 26 Jun 2014 20:23:50 +0000 Subject: moved around 100k of javascript from synchronous loading to async... (a lot more could be done...) git-svn-id: http://piwigo.org/svn/trunk@28806 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/themes/default/js/batchManagerGlobal.js | 51 ++++++++++++++++ .../default/template/batch_manager_global.tpl | 68 ++++------------------ .../default/template/include/add_album.inc.tpl | 5 +- .../default/template/include/colorbox.inc.tpl | 3 +- .../default/template/include/datepicker.inc.tpl | 9 +-- 5 files changed, 72 insertions(+), 64 deletions(-) create mode 100644 admin/themes/default/js/batchManagerGlobal.js diff --git a/admin/themes/default/js/batchManagerGlobal.js b/admin/themes/default/js/batchManagerGlobal.js new file mode 100644 index 000000000..c83f134f7 --- /dev/null +++ b/admin/themes/default/js/batchManagerGlobal.js @@ -0,0 +1,51 @@ + +/* Shift-click: select all photos between the click and the shift+click */ +jQuery(document).ready(function() { + var last_clicked=0, + last_clickedstatus=true; + jQuery.fn.enableShiftClick = function() { + var inputs = [], + count=0; + this.find('input[type=checkbox]').each(function() { + var pos=count; + inputs[count++]=this; + $(this).bind("shclick", function (dummy,event) { + if (event.shiftKey) { + var first = last_clicked; + var last = pos; + if (first > last) { + first=pos; + last=last_clicked; + } + + for (var i=first; i<=last;i++) { + input = $(inputs[i]); + $(input).prop('checked', last_clickedstatus); + if (last_clickedstatus) + { + $(input).siblings("span.wrap2").addClass("thumbSelected"); + } + else + { + $(input).siblings("span.wrap2").removeClass("thumbSelected"); + } + } + } + else { + last_clicked = pos; + last_clickedstatus = this.checked; + } + return true; + }); + $(this).click(function(event) { $(this).triggerHandler("shclick",event)}); + }); + } + $('ul.thumbnails').enableShiftClick(); +}); + +jQuery('[data-datepicker]').pwgDatepicker({ + showTimepicker: true, + cancelButton: lang.Cancel +}); + +jQuery("a.preview-box").colorbox(); diff --git a/admin/themes/default/template/batch_manager_global.tpl b/admin/themes/default/template/batch_manager_global.tpl index 6425f49e9..bc5738a40 100644 --- a/admin/themes/default/template/batch_manager_global.tpl +++ b/admin/themes/default/template/batch_manager_global.tpl @@ -1,6 +1,5 @@ -{include file='include/tag_selection.inc.tpl'} -{include file='include/datepicker.inc.tpl'} -{include file='include/colorbox.inc.tpl'} +{include file='include/datepicker.inc.tpl' load_mode='async'} +{include file='include/colorbox.inc.tpl' load_mode='async'} {include file='include/add_album.inc.tpl'} {combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} @@ -14,63 +13,18 @@ {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.`$selectizeTheme`.css"} -{combine_script id='jquery.progressBar' load='footer' path='themes/default/js/plugins/jquery.progressbar.min.js'} -{combine_script id='jquery.ajaxmanager' load='footer' path='themes/default/js/plugins/jquery.ajaxmanager.js'} +{combine_script id='jquery.progressBar' load='async' path='themes/default/js/plugins/jquery.progressbar.min.js'} +{combine_script id='jquery.ajaxmanager' load='async' path='themes/default/js/plugins/jquery.ajaxmanager.js'} -{footer_script}{literal} -/* Shift-click: select all photos between the click and the shift+click */ -jQuery(document).ready(function() { - var last_clicked=0; - var last_clickedstatus=true; - jQuery.fn.enableShiftClick = function() { - var inputs = []; - var count=0; - this.find('input[type=checkbox]').each(function() { - var pos=count; - inputs[count++]=this; - $(this).bind("shclick", function (dummy,event) { - if (event.shiftKey) { - var first = last_clicked; - var last = pos; - if (first > last) { - first=pos; - last=last_clicked; - } - - for (var i=first; i<=last;i++) { - input = $(inputs[i]); - $(input).prop('checked', last_clickedstatus); - if (last_clickedstatus) - { - $(input).siblings("span.wrap2").addClass("thumbSelected"); - } - else - { - $(input).siblings("span.wrap2").removeClass("thumbSelected"); - } - } - } - else { - last_clicked = pos; - last_clickedstatus = this.checked; - } - return true; - }); - $(this).click(function(event) { $(this).triggerHandler("shclick",event)}); - }); - } - $('ul.thumbnails').enableShiftClick(); -}); -{/literal} +{combine_script id='batchManagerGlobal' load='async' require='jquery,datepicker,jquery.colorbox,addAlbum' path='admin/themes/default/js/batchManagerGlobal.js'} -jQuery(document).ready(function() {ldelim} - jQuery('[data-datepicker]').pwgDatepicker({ - showTimepicker: true, - cancelButton: '{'Cancel'|translate}' - }); +{footer_script} +var lang = { + Cancel: '{'Cancel'|translate|escape:'javascript'}' +}; + +jQuery(document).ready(function() { - jQuery("a.preview-box").colorbox(); - {* *} var tagsCache = new TagsCache({ serverKey: '{$CACHE_KEYS.tags}', diff --git a/admin/themes/default/template/include/add_album.inc.tpl b/admin/themes/default/template/include/add_album.inc.tpl index 0d3cd9533..d31cd2da9 100644 --- a/admin/themes/default/template/include/add_album.inc.tpl +++ b/admin/themes/default/template/include/add_album.inc.tpl @@ -1,10 +1,11 @@ -{include file='include/colorbox.inc.tpl'} +{if empty($load_mode)}{$load_mode='footer'}{/if} +{include file='include/colorbox.inc.tpl' load_mode=$load_mode} {assign var="selectizeTheme" value=($themeconf.name=='roma')|ternary:'dark':'default'} {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.`$selectizeTheme`.css"} -{combine_script id='addAlbum.js' load='footer' require='jquery.colorbox' path='admin/themes/default/js/addAlbum.js'} +{combine_script id='addAlbum' load=$load_mode path='admin/themes/default/js/addAlbum.js'}
diff --git a/admin/themes/default/template/include/colorbox.inc.tpl b/admin/themes/default/template/include/colorbox.inc.tpl index 01a28a089..be91064e4 100644 --- a/admin/themes/default/template/include/colorbox.inc.tpl +++ b/admin/themes/default/template/include/colorbox.inc.tpl @@ -1,2 +1,3 @@ -{combine_script id='jquery.colorbox' load='footer' require='jquery' path='themes/default/js/plugins/jquery.colorbox.min.js'} +{if empty($load_mode)}{$load_mode='footer'}{/if} +{combine_script id='jquery.colorbox' load=$load_mode require='jquery' path='themes/default/js/plugins/jquery.colorbox.min.js'} {combine_css id='jquery.colorbox' path="themes/default/js/plugins/colorbox/style2/colorbox.css"} diff --git a/admin/themes/default/template/include/datepicker.inc.tpl b/admin/themes/default/template/include/datepicker.inc.tpl index 2b4d20179..2d901762d 100644 --- a/admin/themes/default/template/include/datepicker.inc.tpl +++ b/admin/themes/default/template/include/datepicker.inc.tpl @@ -1,14 +1,15 @@ -{combine_script id='jquery.ui.timepicker-addon' load='footer' require='jquery.ui.datepicker,jquery.ui.slider' path="themes/default/js/ui/jquery.ui.timepicker-addon.js"} -{combine_script id='datepicker.js' load='footer' require='jquery.ui.timepicker-addon' path='admin/themes/default/js/datepicker.js'} +{if empty($load_mode)}{$load_mode='footer'}{/if} +{combine_script id='jquery.ui.timepicker-addon' load=$load_mode require='jquery.ui.datepicker,jquery.ui.slider' path="themes/default/js/ui/jquery.ui.timepicker-addon.js"} +{combine_script id='datepicker' load=$load_mode require='jquery.ui.timepicker-addon' path='admin/themes/default/js/datepicker.js'} {assign var="datepicker_language" value="themes/default/js/ui/i18n/jquery.ui.datepicker-`$lang_info.code`.js"} {if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists} -{combine_script id="jquery.ui.datepicker-$lang_info.code" load='footer' require='jquery.ui.datepicker' path=$datepicker_language} +{combine_script id="jquery.ui.datepicker-$lang_info.code" load=$load_mode require='jquery.ui.datepicker' path=$datepicker_language} {/if} {assign var="timepicker_language" value="themes/default/js/ui/i18n/jquery.ui.timepicker-`$lang_info.code`.js"} {if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists} -{combine_script id="jquery.ui.timepicker-$lang_info.code" load='footer' require='jquery.ui.timepicker-addon' path=$timepicker_language} +{combine_script id="jquery.ui.timepicker-$lang_info.code" load=$load_mode require='jquery.ui.timepicker-addon' path=$timepicker_language} {/if} {combine_css path="themes/default/js/ui/theme/jquery.ui.theme.css"} -- cgit v1.2.3