return el.retrieve('tasklist') == list &&
el.retrieve('taskid') == task;
}).invoke('remove');
+ this.removeEvent('_tasks' + task, 'tasklists|tasks/' + list);
},
/**
}
var tasklist = $F('kronolithTaskOldList'),
- taskid = $F('kronolithTaskId');
+ target = $F('kronolithTaskList'),
+ taskid = $F('kronolithTaskId'),
+ viewDates = this.viewDates(this.date, this.view),
+ start = viewDates[0].dateString(),
+ end = viewDates[1].dateString();
$('kronolithTaskSave').disable();
+ this.startLoading('tasklists|tasks/' + target, start + end);
this.loading++;
$('kronolithLoading').show();
this.doAction('saveTask',
$H($('kronolithTaskForm').serialize({ hash: true }))
- .merge({ sig: this.tasktype }),
+ .merge({
+ sig: this.tasktype,
+ view: this.view,
+ view_start: start,
+ view_end: end
+ }),
function(r) {
if (r.response.tasks && taskid) {
this.removeTask(taskid, tasklist);
}
this.loadTasksCallback(r, false);
+ this.loadEventsCallback(r, false);
if (r.response.tasks) {
this.closeRedBox();
window.history.back();
}
unset($task['alarm_methods']);
- $result = new stdClass;
+ $result = $this->_signedResponse('tasklists|tasks/' . $task['tasklist']);
try {
$ids = ($id && $list)
? $GLOBALS['registry']->tasks->updateTask($list, $id, $task)
$result->list = $task->tasklist;
} catch (Exception $e) {
$GLOBALS['notification']->push($e, 'horde.error');
+ return $result;
+ }
+
+ if ($kronolith_driver = $this->_getDriver('tasklists|tasks/' . $task->tasklist)) {
+ try {
+ $event = $kronolith_driver->getEvent('_tasks' . $id);
+ $end = new Horde_Date($this->_vars->view_end);
+ $end->hour = 23;
+ $end->min = $end->sec = 59;
+ Kronolith::addEvents($events, $event,
+ new Horde_Date($this->_vars->view_start),
+ $end, true, true);
+ if (count($events)) {
+ $result->events = $events;
+ }
+ } catch (Horde_Exception_NotFound $e) {
+ $GLOBALS['notification']->push(_("The requested event was not found."), 'horde.error');
+ } catch (Exception $e) {
+ $GLOBALS['notification']->push($e, 'horde.error');
+ }
}
return $result;