render('list/header'); ?> tabs; ?> browser; ?> tasks->hasTasks()): ?>

render('list/task_headers'); ?> tasks->each()): $due = $task->due ? $task->getNextDue() : null; if (!empty($task->completed)) { $style = 'linedRow closed'; } elseif ($due && $due->before($_SERVER['REQUEST_TIME'])) { $style = 'linedRow overdue'; } else { $style = ''; } if ($task->tasklist == '**EXTERNAL**') { $share = $GLOBALS['nag_shares']->newShare($GLOBALS['registry']->getAuth(), '**EXTERNAL**', $task->tasklist_name); $owner = $task->tasklist_name; } else { try { $share = $GLOBALS['nag_shares']->getShare($task->tasklist); $owner = Nag::getLabel($share); } catch (Horde_Share_Exception $e) { $owner = $task->tasklist; } } $locals = array( 'style' => $style, 'have_read' => $share->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::READ), 'have_edit' => $share->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::EDIT), 'owner' => $owner, 'task' => $task, 'due' => $due, 'columns' => $this->columns, 'dynamic_sort' => $this->dynamic_sort &= !$task->hasSubTasks(), 'dateFormat' => $GLOBALS['prefs']->getValue('date_format')); ?> renderPartial('list/task', array('locals' => $locals)) ?>
dynamic_sort) $GLOBALS['page_output']->addScriptFile('tables.js', 'horde') ?>