feature 2679 : allow to change creation time

git-svn-id: http://piwigo.org/svn/trunk@28500 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
mistic100
2014-05-18 10:58:53 +00:00
parent 914b6d96d2
commit 97ffdb2edc
51 changed files with 3107 additions and 71 deletions
+54 -19
View File
@@ -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);
}
});
};
@@ -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();
@@ -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 --> *}
@@ -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' path=$datepicker_language}
{combine_script id="jquery.ui.datepicker-$lang_info.code" load='footer' require='jquery.ui.datepicker' path=$datepicker_language}
{/if}
{combine_css path="themes/default/js/ui/theme/jquery.ui.datepicker.css"}
{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}
{/if}
{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"}
@@ -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>