mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-05-18 07:16:11 +02:00
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:
@@ -292,7 +292,7 @@ DELETE
|
||||
}
|
||||
else
|
||||
{
|
||||
$date_creation = $_POST['date_creation'].' 00:00:00';
|
||||
$date_creation = $_POST['date_creation'];
|
||||
}
|
||||
|
||||
$datas = array();
|
||||
@@ -565,7 +565,7 @@ if (count($page['cat_elements_id']) > 0)
|
||||
|
||||
// creation date
|
||||
$template->assign('DATE_CREATION',
|
||||
empty($_POST['date_creation']) ? date('y-n-j') : $_POST['date_creation']
|
||||
empty($_POST['date_creation']) ? date('Y-m-d').' 00:00:00' : $_POST['date_creation']
|
||||
);
|
||||
|
||||
// image level options
|
||||
|
||||
@@ -78,15 +78,7 @@ SELECT id, date_creation
|
||||
|
||||
if (!empty($_POST['date_creation-'.$row['id']]))
|
||||
{
|
||||
if (!empty($row['date_creation']))
|
||||
{
|
||||
list(, $time) = explode(' ', $row['date_creation']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$time = '00:00:00';
|
||||
}
|
||||
$data['date_creation'] = $_POST['date_creation-'.$row['id']].' '.$time;
|
||||
$data['date_creation'] = $_POST['date_creation-'.$row['id']];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -222,16 +214,6 @@ SELECT *
|
||||
|
||||
$src_image = new SrcImage($row);
|
||||
|
||||
// creation date
|
||||
if (!empty($row['date_creation']))
|
||||
{
|
||||
list($date) = explode(' ', $row['date_creation']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$date = '';
|
||||
}
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
id,
|
||||
@@ -260,7 +242,7 @@ SELECT
|
||||
'AUTHOR' => htmlspecialchars(@$row['author']),
|
||||
'LEVEL' => !empty($row['level'])?$row['level']:'0',
|
||||
'DESCRIPTION' => htmlspecialchars(@$row['comment']),
|
||||
'DATE_CREATION' => $date,
|
||||
'DATE_CREATION' => $row['date_creation'],
|
||||
'TAGS' => $tag_selection,
|
||||
)
|
||||
));
|
||||
|
||||
+1
-1
@@ -570,7 +570,7 @@ else
|
||||
{
|
||||
// by default, at page load, we want the selected date to be the current
|
||||
// date
|
||||
$form['start'] = $form['end'] = date('Y-n-j');
|
||||
$form['start'] = $form['end'] = date('Y-m-d');
|
||||
$form['types'] = $types;
|
||||
// Hoverbox by default
|
||||
$form['display_thumbnail'] =
|
||||
|
||||
@@ -127,7 +127,7 @@ if (isset($_POST['submit']))
|
||||
|
||||
if (!empty($_POST['date_creation']))
|
||||
{
|
||||
$data['date_creation'] = $_POST['date_creation'].' '.$_POST['date_creation_time'];
|
||||
$data['date_creation'] = $_POST['date_creation'];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -255,6 +255,8 @@ $template->assign(
|
||||
: @$row['author']
|
||||
),
|
||||
|
||||
'DATE_CREATION' => $row['date_creation'],
|
||||
|
||||
'DESCRIPTION' =>
|
||||
htmlspecialchars( isset($_POST['description']) ?
|
||||
stripslashes($_POST['description']) : @$row['comment'] ),
|
||||
@@ -316,26 +318,7 @@ $template->assign(
|
||||
)
|
||||
);
|
||||
|
||||
// creation date
|
||||
unset($day, $month, $year);
|
||||
|
||||
if (!empty($row['date_creation']))
|
||||
{
|
||||
list($date, $time) = explode(' ', $row['date_creation']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$date = '';
|
||||
$time = '00:00:00';
|
||||
}
|
||||
|
||||
$template->assign(
|
||||
array(
|
||||
'DATE_CREATION' => $date,
|
||||
'DATE_CREATION_TIME' => $time,
|
||||
)
|
||||
);
|
||||
|
||||
// categories
|
||||
$query = '
|
||||
SELECT category_id, uppercats
|
||||
FROM '.IMAGE_CATEGORY_TABLE.' AS ic
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user