aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authormistic100 <mistic@piwigo.org>2014-05-18 10:58:53 +0000
committermistic100 <mistic@piwigo.org>2014-05-18 10:58:53 +0000
commit97ffdb2edc14c12502f75efef9622cecd89a3020 (patch)
tree942c99b9493aaf6a73092b89d87ce725e660dfe7 /admin
parent914b6d96d2cae67507ef848a7a229fd5319d7968 (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')
-rw-r--r--admin/batch_manager_global.php4
-rw-r--r--admin/batch_manager_unit.php22
-rw-r--r--admin/history.php2
-rw-r--r--admin/picture_modify.php25
-rw-r--r--admin/themes/default/js/datepicker.js73
-rw-r--r--admin/themes/default/template/batch_manager_global.tpl2
-rw-r--r--admin/themes/default/template/batch_manager_unit.tpl2
-rw-r--r--admin/themes/default/template/include/datepicker.inc.tpl13
-rw-r--r--admin/themes/default/template/picture_modify.tpl3
9 files changed, 76 insertions, 70 deletions
diff --git a/admin/batch_manager_global.php b/admin/batch_manager_global.php
index 1d72e2e2d..c8bc38dad 100644
--- a/admin/batch_manager_global.php
+++ b/admin/batch_manager_global.php
@@ -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
diff --git a/admin/batch_manager_unit.php b/admin/batch_manager_unit.php
index 068182050..bbbe4810c 100644
--- a/admin/batch_manager_unit.php
+++ b/admin/batch_manager_unit.php
@@ -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,
)
));
diff --git a/admin/history.php b/admin/history.php
index 29f59b6b2..68b997736 100644
--- a/admin/history.php
+++ b/admin/history.php
@@ -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'] =
diff --git a/admin/picture_modify.php b/admin/picture_modify.php
index d476c560f..1b99e5f55 100644
--- a/admin/picture_modify.php
+++ b/admin/picture_modify.php
@@ -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
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>