From a5667df9be683b3e5c3129e9d0c8495f56fb589a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gon=C3=A7alo=20Queir=C3=B3s?= Date: Mon, 3 Aug 2009 11:23:35 +0200 Subject: [PATCH] Fix toggling tasks. --- kronolith/js/kronolith.js | 10 +++++----- nag/lib/api.php | 6 +++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/kronolith/js/kronolith.js b/kronolith/js/kronolith.js index 3e5126bbf..020158151 100644 --- a/kronolith/js/kronolith.js +++ b/kronolith/js/kronolith.js @@ -1458,12 +1458,12 @@ KronolithCore = { */ _toggleCompletionClass: function(taskId) { - var row = $(taskId); - if (row.length == 0) { + var row = $$('tr[taskId=' + taskId + ']'); + if (row.length != 1) { // FIXME: Show some error? return; } - var col = row.down('td.kronolithTaskCol', 0), div = col.down('div.kronolithTaskCheckbox', 0); + var col = row[0].down('td.kronolithTaskCol', 0), div = col.down('div.kronolithTaskCheckbox', 0); col.toggleClassName('kronolithTask'); col.toggleClassName('kronolithTaskCompleted'); @@ -1943,7 +1943,7 @@ KronolithCore = { e.stop(); return; } else if (elt.hasClassName('kronolithTaskCheckbox')) { - var taskId = elt.up('tr.kronolithTaskRow', 0).readAttribute('id'), + var taskId = elt.up('tr.kronolithTaskRow', 0).readAttribute('taskId'), taskList = elt.up('tr.kronolithTaskRow', 0).readAttribute('tasklist'); this._toggleCompletionClass(taskId); this.doAction('ToggleCompletion', @@ -1981,7 +1981,7 @@ KronolithCore = { if (calClass == 'remote' || calClass == 'external') { if (calClass == 'external' && calendar.startsWith('tasks/')) { var taskList = calendar.substr(6); - if (typeof this.tcache.get(taskList) == 'undefined' && + if (Object.isUndefined(this.tcache.get(taskList)) && this.view == 'tasks') { this._loadTasks(this.taskType,[taskList]); } else { diff --git a/nag/lib/api.php b/nag/lib/api.php index 8bfb04c42..8950d7c33 100644 --- a/nag/lib/api.php +++ b/nag/lib/api.php @@ -116,7 +116,7 @@ $_services['listTimeObjects'] = array( 'type' => '{urn:horde}hashHash' ); -$_services['completeTask'] = array( +$_services['toggleCompletion'] = array( 'args' => array('task_id' => 'string', 'tasklist_id' => 'string'), 'type' => 'boolean' ); @@ -1079,6 +1079,10 @@ function _nag_toggleCompletion($task_id, $tasklist_id) } $task = Nag::getTask($tasklist_id, $task_id); + if (is_a($task, 'PEAR_Error')) { + return $task; + } + $task->completed = !$task->completed; if ($task->completed) { $task->completed_date = time(); -- 2.11.0