Tasks: Add due property handling
This commit is contained in:
parent
921fc59d8f
commit
c75bbb59a9
|
@ -21,6 +21,21 @@ switch($property) {
|
||||||
$summary = $_POST['summary'];
|
$summary = $_POST['summary'];
|
||||||
$vtodo->setString('SUMMARY', $summary);
|
$vtodo->setString('SUMMARY', $summary);
|
||||||
break;
|
break;
|
||||||
|
case 'due':
|
||||||
|
$due = $_POST['due'];
|
||||||
|
if ($due != 'false') {
|
||||||
|
try {
|
||||||
|
$timezone = OC_Preferences::getValue(OC_User::getUser(), 'calendar', 'timezone', date_default_timezone_get());
|
||||||
|
$timezone = new DateTimeZone($timezone);
|
||||||
|
$due = new DateTime('@'.$due);
|
||||||
|
$due->setTimezone($timezone);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
OC_JSON::error(array('data'=>array('message'=>OC_Task_App::$l10n->t('Invalid date/time'))));
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$vtodo->setDateTime('DUE', $due);
|
||||||
|
break;
|
||||||
case 'complete':
|
case 'complete':
|
||||||
$checked = $_POST['checked'];
|
$checked = $_POST['checked'];
|
||||||
OC_Task_App::setComplete($vtodo, $checked ? '100' : '0', null);
|
OC_Task_App::setComplete($vtodo, $checked ? '100' : '0', null);
|
||||||
|
|
|
@ -53,3 +53,6 @@
|
||||||
.task .more{display:none;}
|
.task .more{display:none;}
|
||||||
|
|
||||||
.task .description{position:relative;left:4em;}
|
.task .description{position:relative;left:4em;}
|
||||||
|
.task .due{position:absolute;right:0.3em;}
|
||||||
|
.task .due .date{width:6em;}
|
||||||
|
.task .due .time{width:6em;}
|
||||||
|
|
|
@ -18,6 +18,8 @@ if( count($calendars) == 0 ) {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OC_Util::addScript('3rdparty/timepicker', 'jquery.ui.timepicker');
|
||||||
|
OC_Util::addStyle('3rdparty/timepicker', 'jquery.ui.timepicker');
|
||||||
OC_UTIL::addScript('tasks', 'tasks');
|
OC_UTIL::addScript('tasks', 'tasks');
|
||||||
OC_UTIL::addStyle('tasks', 'style');
|
OC_UTIL::addStyle('tasks', 'style');
|
||||||
OC_Util::addScript('contacts','jquery.multi-autocomplete');
|
OC_Util::addScript('contacts','jquery.multi-autocomplete');
|
||||||
|
|
|
@ -65,9 +65,32 @@ OC.Tasks = {
|
||||||
var description = $('<textarea>')
|
var description = $('<textarea>')
|
||||||
.addClass('description')
|
.addClass('description')
|
||||||
.text(task.description);
|
.text(task.description);
|
||||||
|
var due = $('<span>')
|
||||||
|
.addClass('due')
|
||||||
|
.append(t('tasks', 'Due'));
|
||||||
|
due
|
||||||
|
.append($('<input type="date">')
|
||||||
|
.addClass('date')
|
||||||
|
.datepicker({
|
||||||
|
dateFormat: 'dd-mm-yy',
|
||||||
|
onClose: OC.Tasks.dueUpdateHandler
|
||||||
|
}),
|
||||||
|
$('<input type="time">')
|
||||||
|
.addClass('time')
|
||||||
|
.timepicker({
|
||||||
|
showPeriodLabels:false,
|
||||||
|
onClose: OC.Tasks.dueUpdateHandler
|
||||||
|
})
|
||||||
|
);
|
||||||
|
if (task.due){
|
||||||
|
var date = new Date(parseInt(task.due)*1000);
|
||||||
|
due.find('.date').datepicker('setDate', date);
|
||||||
|
due.find('.time').timepicker('setTime', date.getHours()+':'+date.getMinutes());
|
||||||
|
}
|
||||||
$('<div>')
|
$('<div>')
|
||||||
.addClass('more')
|
.addClass('more')
|
||||||
.append(description)
|
.append(description)
|
||||||
|
.append(due)
|
||||||
.appendTo(task_container);
|
.appendTo(task_container);
|
||||||
return task_container;
|
return task_container;
|
||||||
},
|
},
|
||||||
|
@ -156,6 +179,27 @@ OC.Tasks = {
|
||||||
input.focus();
|
input.focus();
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
dueUpdateHandler:function(){
|
||||||
|
var task = $(this).closest('.task').data('task');
|
||||||
|
var old_due = task.due;
|
||||||
|
var $date = $(this).parent().children('.date');
|
||||||
|
var $time = $(this).parent().children('.time');
|
||||||
|
var date = $date.datepicker('getDate');
|
||||||
|
var time = $time.timepicker('getTime').split(':');
|
||||||
|
var due;
|
||||||
|
if (!date || time.length<2){
|
||||||
|
due = false;
|
||||||
|
} else {
|
||||||
|
date.setHours(time[0]);
|
||||||
|
date.setMinutes(time[1]);
|
||||||
|
due = date.getTime()/1000;
|
||||||
|
}
|
||||||
|
$.post('ajax/update_property.php', {id:task.id, type:'due', due:due}, function(jsondata){
|
||||||
|
if(jsondata.status != 'success') {
|
||||||
|
task.due = old_due;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
moreClickHandler:function(event){
|
moreClickHandler:function(event){
|
||||||
var $task = $(this).closest('.task'),
|
var $task = $(this).closest('.task'),
|
||||||
task = $task.data('task');
|
task = $task.data('task');
|
||||||
|
|
|
@ -54,7 +54,7 @@ class OC_Task_App {
|
||||||
if ($due) {
|
if ($due) {
|
||||||
$due = $due->getDateTime();
|
$due = $due->getDateTime();
|
||||||
$due->setTimezone(new DateTimeZone($user_timezone));
|
$due->setTimezone(new DateTimeZone($user_timezone));
|
||||||
$task['due'] = $due->format('Y-m-d H:i:s');
|
$task['due'] = $due->format('U');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$task['due'] = false;
|
$task['due'] = false;
|
||||||
|
|
Loading…
Reference in New Issue