mirror of
https://github.com/nextcloud/server.git
synced 2026-04-01 23:25:47 -04:00
Tasks: Mark task as complete when checking the checkbox
This commit is contained in:
parent
19d81068f6
commit
947d2e5705
4 changed files with 55 additions and 4 deletions
24
apps/tasks/ajax/complete.php
Normal file
24
apps/tasks/ajax/complete.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
// Init owncloud
|
||||
require_once('../../../lib/base.php');
|
||||
OC_JSON::checkLoggedIn();
|
||||
OC_JSON::checkAppEnabled('tasks');
|
||||
|
||||
$id = $_POST['id'];
|
||||
$checked = $_POST['checked'];
|
||||
$vcalendar = OC_Calendar_App::getVCalendar( $id );
|
||||
|
||||
$vtodo = $vcalendar->VTODO;
|
||||
OC_Task_App::setComplete($vtodo, $checked ? '100' : '0', null);
|
||||
OC_Calendar_Object::edit($id, $vcalendar->serialize());
|
||||
|
||||
$user_timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get());
|
||||
$task_info = OC_Task_App::arrayForJSON($id, $vtodo, $user_timezone);
|
||||
OC_JSON::success(array('data' => $task_info));
|
||||
|
|
@ -24,6 +24,7 @@
|
|||
.task .completed {position:absolute;left:3em;top:0.3em;}
|
||||
|
||||
.task .summary{padding-left:4em;}
|
||||
.task.done .summary{text-decoration:line-through;}
|
||||
|
||||
.task .tag{border-radius:0.4em;display:inline-block;opacity:0.2;margin:0 0.2em;border:1px solid transparent;padding:0 0.4em;}
|
||||
.task .tag:hover{opacity:0.5;}
|
||||
|
|
|
|||
|
|
@ -24,9 +24,11 @@ OC.Tasks = {
|
|||
)
|
||||
//.append(actions.clone().removeAttr('id'))
|
||||
;
|
||||
var checkbox = $('<input type="checkbox">');
|
||||
var checkbox = $('<input type="checkbox">')
|
||||
.click(OC.Tasks.complete_task);
|
||||
if (task.completed) {
|
||||
checkbox.attr('checked', 'checked');
|
||||
task_container.addClass('done');
|
||||
}
|
||||
$('<div>')
|
||||
.addClass('completed')
|
||||
|
|
@ -112,6 +114,26 @@ OC.Tasks = {
|
|||
}
|
||||
container.append(this);
|
||||
});
|
||||
},
|
||||
complete_task:function() {
|
||||
var $task = $(this).closest('.task'),
|
||||
task = $task.data('task'),
|
||||
checked = $(this).is(':checked');
|
||||
$.post('ajax/complete.php', {id:task.id, checked:checked?1:0}, function(jsondata){
|
||||
if(jsondata.status == 'success') {
|
||||
task = jsondata.data;
|
||||
$task.data('task', task)
|
||||
if (task.completed) {
|
||||
$task.addClass('done');
|
||||
}
|
||||
else {
|
||||
$task.removeClass('done');
|
||||
}
|
||||
}
|
||||
else{
|
||||
alert(jsondata.data.message);
|
||||
}
|
||||
}, 'json');
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -154,6 +154,13 @@ class OC_Task_App {
|
|||
unset($vtodo->DUE);
|
||||
}
|
||||
|
||||
self::setComplete($vtodo, $percent_complete, $completed);
|
||||
|
||||
return $vcalendar;
|
||||
}
|
||||
|
||||
public static function setComplete($vtodo, $percent_complete, $completed)
|
||||
{
|
||||
if (!empty($percent_complete)) {
|
||||
$vtodo->setString('PERCENT-COMPLETE', $percent_complete);
|
||||
}else{
|
||||
|
|
@ -175,8 +182,5 @@ class OC_Task_App {
|
|||
} else {
|
||||
unset($vtodo->COMPLETED);
|
||||
}
|
||||
|
||||
return $vcalendar;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue