Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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');
 }
Ejemplo n.º 3
0
 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);
 }