/** * Initial render view * * @return (string) view contents */ public static function render() { // Load language Lang::load('plg_time_summary', __DIR__); // Create view $view = new \Hubzero\Plugin\View(array('folder' => 'time', 'element' => 'summary', 'name' => 'overview')); // Get vars from request $permissions = new Permissions('com_time'); $view->hub_id = Request::getInt('hub_id', null); $view->task_id = Request::getInt('task_id', null); $view->start = Request::getCmd('start_date', Date::of(strtotime('today - 1 month'))->format('Y-m-d')); $view->end = Request::getCmd('end_date', Date::format('Y-m-d')); $view->hubs = array(); $records = Record::where('date', '>=', Date::of($view->start . ' 00:00:00', Config::get('offset'))->toSql())->where('date', '<=', Date::of($view->end . ' 23:59:59', Config::get('offset'))->toSql()); if (isset($view->task_id) && $view->task_id > 0) { $records->whereEquals('task_id', $view->task_id); } else { if (isset($view->hub_id) && $view->hub_id > 0) { $hub_id = $view->hub_id; $records->whereRelatedHas('task', function ($task) use($hub_id) { $task->whereEquals('hub_id', $hub_id); }); } } foreach ($records->including('task.hub', 'user') as $record) { if (isset($view->hubs[$record->task->hub_id])) { $view->hubs[$record->task->hub_id]['total'] += $record->time; if (isset($view->hubs[$record->task->hub_id]['tasks'][$record->task_id])) { $view->hubs[$record->task->hub_id]['tasks'][$record->task_id]['total'] += $record->time; $view->hubs[$record->task->hub_id]['tasks'][$record->task_id]['records'][] = $record; } else { $view->hubs[$record->task->hub_id]['tasks'][$record->task_id] = ['name' => $record->task->name, 'total' => $record->time, 'records' => array($record)]; } } else { if ($permissions->can('view.report', 'hub', $record->task->hub_id)) { $view->hubs[$record->task->hub_id] = ['name' => $record->task->hub->name, 'tasks' => array($record->task_id => ['name' => $record->task->name, 'total' => $record->time, 'records' => [$record]]), 'total' => $record->time]; } } } // Pass permissions to view $view->permissions = $permissions; return $view->loadTemplate(); }