function browseAction() { $visit = CerberusApplication::getVisit(); /* @var $visit CerberusVisit */ $request = DevblocksPlatform::getHttpRequest(); $stack = $request->path; array_shift($stack); // tasks array_shift($stack); // browse @($id = array_shift($stack)); if (null == ($task = DAO_Task::get($id))) { echo "<H1>Invalid Organization ID.</H1>"; return; } // Display series support (inherited paging from Display) @($view_id = array_shift($stack)); if (!empty($view_id)) { $view = C4_AbstractViewLoader::getView($view_id); $range = 250; $block_size = 250; $page = floor($view->renderLimit * $view->renderPage / $block_size); list($series, $series_count) = DAO_Task::search($view->view_columns, $view->params, $block_size, $page, $view->renderSortBy, $view->renderSortAsc, false); $series_info = array('title' => $view->name, 'total' => count($series), 'series' => array_flip(array_keys($series))); $visit->set('ch_task_series', $series_info); } DevblocksPlatform::redirect(new DevblocksHttpResponse(array('tasks', 'display', $task->id))); exit; }
private function _getListAction($path, $params = array()) { @($p_page = DevblocksPlatform::importGPC($_REQUEST['p'], 'integer', 0)); list($tasks, $null) = DAO_Task::search(array(), $params, 50, $p_page, SearchFields_Task::DUE_DATE, true, false); $this->_renderResults($tasks, SearchFields_Task::getFields(), 'task', 'tasks'); }
function doBulkUpdate($filter, $do, $ids = array()) { @set_time_limit(600); // [TODO] Temp! $change_fields = array(); $custom_fields = array(); // Make sure we have actions if (empty($do)) { return; } // Make sure we have checked items if we want a checked list if (0 == strcasecmp($filter, "checks") && empty($ids)) { return; } if (is_array($do)) { foreach ($do as $k => $v) { switch ($k) { case 'due': @($date = strtotime($v)); $change_fields[DAO_Task::DUE_DATE] = intval($date); break; case 'status': if (1 == intval($v)) { // completed $change_fields[DAO_Task::IS_COMPLETED] = 1; $change_fields[DAO_Task::COMPLETED_DATE] = time(); } else { // active $change_fields[DAO_Task::IS_COMPLETED] = 0; $change_fields[DAO_Task::COMPLETED_DATE] = 0; } break; case 'worker_id': $change_fields[DAO_Task::WORKER_ID] = intval($v); break; default: // Custom fields if (substr($k, 0, 3) == "cf_") { $custom_fields[substr($k, 3)] = $v; } } } } $pg = 0; if (empty($ids)) { do { list($objects, $null) = DAO_Task::search(array(), $this->params, 100, $pg++, SearchFields_Task::ID, true, false); $ids = array_merge($ids, array_keys($objects)); } while (!empty($objects)); } $batch_total = count($ids); for ($x = 0; $x <= $batch_total; $x += 100) { $batch_ids = array_slice($ids, $x, 100); DAO_Task::update($batch_ids, $change_fields); // Custom Fields self::_doBulkSetCustomFields(ChCustomFieldSource_Task::ID, $custom_fields, $batch_ids); unset($batch_ids); } unset($ids); }