diff options
author | mistic100 <mistic@piwigo.org> | 2014-05-18 10:58:53 +0000 |
---|---|---|
committer | mistic100 <mistic@piwigo.org> | 2014-05-18 10:58:53 +0000 |
commit | 97ffdb2edc14c12502f75efef9622cecd89a3020 (patch) | |
tree | 942c99b9493aaf6a73092b89d87ce725e660dfe7 /admin/themes | |
parent | 914b6d96d2cae67507ef848a7a229fd5319d7968 (diff) |
feature 2679 : allow to change creation time
git-svn-id: http://piwigo.org/svn/trunk@28500 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'admin/themes')
5 files changed, 67 insertions, 26 deletions
diff --git a/admin/themes/default/js/datepicker.js b/admin/themes/default/js/datepicker.js index ace38da13..eb6f31a6f 100644 --- a/admin/themes/default/js/datepicker.js +++ b/admin/themes/default/js/datepicker.js @@ -1,45 +1,69 @@ +jQuery.timepicker.log = jQuery.noop; // that's ugly, but the timepicker is acting weird and throws parsing errors + jQuery.fn.pwgDatepicker = function(options) { options = options || {}; return this.each(function() { var $this = jQuery(this), $target = jQuery('[name="'+ jQuery(this).data('datepicker') +'"]'), - value = $target.val().split('-'); + linked = !!$target.length; - function set(date) { - $this.datepicker('setDate', date); + if (linked) { // get value before init + var value = $target.val().split(' '); + } + + // custom setter + function set(date, init) { + $this.datetimepicker('setDate', date); if ($this.data('datepicker-start')) { - $start.datepicker('option', 'maxDate', date); + $start.datetimepicker('option', 'maxDate', date); } else if ($this.data('datepicker-end')) { - $end.datepicker('option', 'minDate', date); + if (!init) { // on init, "end" is not initialized yet (assuming "start" is before "end" in the DOM) + $end.datetimepicker('option', 'minDate', date); + } + } + + if (!date && linked) { + $target.val(''); } } // init picker - $this.datepicker(jQuery.extend({ - dateFormat: 'DD d MM yy', - altField: $target, + $this.datetimepicker(jQuery.extend({ + dateFormat: linked ? 'DD d MM yy' : 'yy-mm-dd', + timeFormat: 'HH:mm', + + altField: linked ? $target : null, altFormat: 'yy-mm-dd', + altTimeFormat: options.showTimepicker ? 'HH:mm:ss' : '', + autoSize: true, changeMonth : true, - changeYear: true + changeYear: true, + showTimepicker: false, + altFieldTimeOnly: false, + showSecond: false, + alwaysSetTime: false, + stepMinute: 5 }, options)); - // attach linked picker (for ranges) + // attach range pickers if ($this.data('datepicker-start')) { var $start = jQuery('[data-datepicker="'+ jQuery(this).data('datepicker-start') +'"]'); - $this.datepicker('option', 'onClose', function(date) { - $start.datepicker('option', 'maxDate', date); + $this.datetimepicker('option', 'onClose', function(date) { + $start.datetimepicker('option', 'maxDate', date); }); + + $this.datetimepicker('option', 'minDate', $start.datetimepicker('getDate')); } else if ($this.data('datepicker-end')) { var $end = jQuery('[data-datepicker="'+ jQuery(this).data('datepicker-end') +'"]'); - $this.datepicker('option', 'onClose', function(date) { - $end.datepicker('option', 'minDate', date); + $this.datetimepicker('option', 'onClose', function(date) { + $end.datetimepicker('option', 'minDate', date); }); } @@ -47,15 +71,26 @@ jQuery.fn.pwgDatepicker = function(options) { if ($this.data('datepicker-unset')) { jQuery('#'+ $this.data('datepicker-unset')).on('click', function(e) { e.preventDefault(); - - $target.val(''); - set(null); + set(null, false); }); } // set value from linked input - if (value.length == 3) { - set(new Date(value[0], value[1]-1, value[2])); + if (linked) { + if (value[0].length == 10 && !options.showTimepicker) { + set(jQuery.datepicker.parseDate('yy-mm-dd', value[0]), true); + } + else if (value.length == 2 && options.showTimepicker) { + set(jQuery.datepicker.parseDateTime('yy-mm-dd', 'HH:mm:ss', value.join(' ')), true); + } + else { + set(null, true); + } + } + + // autoSize not handled by timepicker + if (options.showTimepicker) { + $this.attr('size', parseInt($this.attr('size'))+6); } }); };
\ No newline at end of file diff --git a/admin/themes/default/template/batch_manager_global.tpl b/admin/themes/default/template/batch_manager_global.tpl index 148f48735..631a00f0d 100644 --- a/admin/themes/default/template/batch_manager_global.tpl +++ b/admin/themes/default/template/batch_manager_global.tpl @@ -60,7 +60,7 @@ jQuery(document).ready(function() { {footer_script require='jquery.tokeninput'} jQuery(document).ready(function() {ldelim} - jQuery('[data-datepicker]').pwgDatepicker(); + jQuery('[data-datepicker]').pwgDatepicker({ showTimepicker: true }); jQuery("a.preview-box").colorbox(); diff --git a/admin/themes/default/template/batch_manager_unit.tpl b/admin/themes/default/template/batch_manager_unit.tpl index e282a5e0b..d0d06e11d 100644 --- a/admin/themes/default/template/batch_manager_unit.tpl +++ b/admin/themes/default/template/batch_manager_unit.tpl @@ -51,7 +51,7 @@ tagsCache.get(function(tags) { {* <!-- DATEPICKER --> *} jQuery(function(){ {* <!-- onLoad needed to wait localization loads --> *} - jQuery('[data-datepicker]').pwgDatepicker(); + jQuery('[data-datepicker]').pwgDatepicker({ showTimepicker: true }); }); {* <!-- THUMBNAILS --> *} diff --git a/admin/themes/default/template/include/datepicker.inc.tpl b/admin/themes/default/template/include/datepicker.inc.tpl index d8202703d..92e40aa3a 100644 --- a/admin/themes/default/template/include/datepicker.inc.tpl +++ b/admin/themes/default/template/include/datepicker.inc.tpl @@ -1,9 +1,16 @@ -{combine_script id='datepicker.js' load='footer' require='jquery.ui.datepicker' path='admin/themes/default/js/datepicker.js'} +{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'} {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} +{/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.datepicker-$lang_info.code" load='footer' path=$datepicker_language} +{combine_script id="jquery.ui.timepicker-$lang_info.code" load='footer' require='jquery.ui.timepicker-addon' path=$timepicker_language} {/if} -{combine_css path="themes/default/js/ui/theme/jquery.ui.datepicker.css"}
\ No newline at end of file +{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} +{combine_css path="themes/default/js/ui/theme/jquery.ui.datepicker.css"} +{combine_css path="themes/default/js/ui/theme/jquery.ui.timepicker-addon.css"}
\ No newline at end of file diff --git a/admin/themes/default/template/picture_modify.tpl b/admin/themes/default/template/picture_modify.tpl index 99a53b247..f48a152d6 100644 --- a/admin/themes/default/template/picture_modify.tpl +++ b/admin/themes/default/template/picture_modify.tpl @@ -77,7 +77,7 @@ tagsCache.get(function(tags) { {* <!-- DATEPICKER --> *} jQuery(function(){ {* <!-- onLoad needed to wait localization loads --> *} - jQuery('[data-datepicker]').pwgDatepicker(); + jQuery('[data-datepicker]').pwgDatepicker({ showTimepicker: true }); }); }()); {/footer_script} @@ -140,7 +140,6 @@ jQuery(function(){ {* <!-- onLoad needed to wait localization loads --> *} <p> <strong>{'Creation date'|@translate}</strong> <br> - <input type="hidden" name="date_creation_time" value="{$DATE_CREATION_TIME}"> <input type="hidden" name="date_creation" value="{$DATE_CREATION}"> <label> <i class="icon-calendar"></i> |