Beispiel #1
0
 public function handleRequest(Request $request = null)
 {
     if ($this->query !== null) {
         if ($request === null) {
             $request = Icinga::app()->getFrontController()->getRequest();
         }
         if ($sort = $request->getParam('sort')) {
             $this->query->order($sort, $request->getParam('dir'));
         }
     }
     return $this;
 }
Beispiel #2
0
 /**
  * Return the default sort rule for the query
  *
  * @param   string  $column     An optional column
  *
  * @return  array               An array of two values: $column, $direction
  */
 protected function getSortDefaults($column = null)
 {
     $direction = null;
     if ($this->query !== null && $this->query instanceof SortRules) {
         $sortRules = $this->query->getSortRules();
         if ($column === null) {
             $column = key($sortRules);
         }
         if ($column !== null && isset($sortRules[$column]['order'])) {
             $direction = strtoupper($sortRules[$column]['order']) === Sortable::SORT_DESC ? 'desc' : 'asc';
         }
     }
     return array($column, $direction);
 }
Beispiel #3
0
 /**
  * Apply the sort rules from the given or current request on the query
  *
  * @param   Request     $request
  *
  * @return  $this
  */
 public function handleRequest(Request $request = null)
 {
     if ($this->query !== null) {
         if ($request === null) {
             $request = Icinga::app()->getRequest();
         }
         if (!($sort = $request->getParam('sort'))) {
             list($sort, $dir) = $this->getSortDefaults();
         } else {
             list($_, $dir) = $this->getSortDefaults($sort);
         }
         $this->query->order($sort, $request->getParam('dir', $dir));
     }
     return $this;
 }