Exemple #1
0
 /**
  * Augment query filters
  *
  * Here we're basically modifying what we get from the database,
  * either by changing the display column (ex: 'user_id' => 'User'),
  * or by changing the display value (ex: '1' to 'yes', or '1000' to Sam Wilson)
  *
  * @param  $q - query arguments
  * @return void
  */
 public static function filtersMap($q = array())
 {
     // Initialize variables
     $filters = [];
     $return = [];
     $dcolumn = '';
     $doperator = '';
     $dvalue = '';
     // First, make sure we have something to iterate over
     if (!empty($q[0])) {
         // Go through query filters
         foreach ($q as $val) {
             // Make sure we're not deleting this filter
             if (!array_key_exists('delete', $val)) {
                 // Add an if statement here if you want to augment a fields 'human readable' value
                 // Augment user_id information
                 if ($val['column'] == 'user_id') {
                     $val['human_column'] = 'User';
                     $val['o'] = self::translateOperator($val['operator']);
                     $val['human_operator'] = self::mapOperator($val['o']);
                     $val['human_value'] = User::getInstance($val['value'])->name;
                     $filters[] = $val;
                 } elseif ($val['column'] == 'assignee_id' || $val['column'] == 'liaison_id') {
                     $val['human_column'] = ucwords(str_replace('_id', '', $val['column']));
                     $val['o'] = self::translateOperator($val['operator']);
                     $val['human_operator'] = self::mapOperator($val['o']);
                     $val['human_value'] = User::getInstance($val['value'])->name;
                     if (is_null($val['human_value'])) {
                         $val['human_value'] = 'Unidentified';
                     }
                     $filters[] = $val;
                 } elseif ($val['column'] == 'task_id') {
                     $val['human_column'] = 'Task';
                     $val['o'] = self::translateOperator($val['operator']);
                     $val['human_operator'] = self::mapOperator($val['o']);
                     $val['human_value'] = Task::oneOrFail($val['value'])->name;
                     $filters[] = $val;
                 } elseif ($val['column'] == 'active') {
                     $val['human_column'] = ucwords($val['column']);
                     $val['o'] = self::translateOperator($val['operator']);
                     $val['human_operator'] = self::mapOperator($val['o']);
                     $val['human_value'] = $val['value'] == 1 ? 'yes' : 'no';
                     $filters[] = $val;
                 } elseif ($val['column'] == 'hub_id') {
                     $val['human_column'] = 'Hub';
                     $val['o'] = self::translateOperator($val['operator']);
                     $val['human_operator'] = self::mapOperator($val['o']);
                     $val['human_value'] = Hub::oneOrFail($val['value'])->name;
                     $filters[] = $val;
                 } else {
                     $val['human_column'] = ucwords(str_replace("_", " ", $val['column']));
                     $val['o'] = self::translateOperator($val['operator']);
                     $val['human_operator'] = self::mapOperator($val['o']);
                     $val['human_value'] = $val['value'];
                     $filters[] = $val;
                 }
             } else {
                 // Values to delete
                 $dcolumn = $val['column'];
                 $doperator = $val['operator'];
                 $dvalue = $val['value'];
             }
         }
     }
     // Distil down the results to only unique filters
     $filters = array_map("unserialize", array_unique(array_map("serialize", $filters)));
     // Now go through them again and only keep ones not marked for deletion (there's probably a much better way to do this)
     foreach ($filters as $filter) {
         if (!($filter['column'] == $dcolumn && $filter['operator'] == $doperator && $filter['value'] == $dvalue)) {
             $return[] = $filter;
         }
     }
     return $return;
 }
Exemple #2
0
 /**
  * Toggle a task's active status
  *
  * @return void
  */
 public function toggleActiveTask()
 {
     $task = Task::oneOrFail(Request::getInt('id'));
     $task->set('active', $task->active == 0 ? 1 : 0);
     if (!$task->save()) {
         App::abort(500, implode('<br />', $task->getErrors()));
         return;
     }
     // Set the redirect
     App::redirect(Route::url($this->base . $this->start($task)), Lang::txt('COM_TIME_TASKS_ACTIVE_STATUS_CHANGED'), 'passed');
 }