示例#1
0
 protected function createComponentGrid($name)
 {
     $grid = new \App\Grids\baseGrid($this, $name);
     if ($this->user->isInRole("administrator")) {
         $grid->setModel($this->model);
     } else {
         //$grid->setModel($this->model);
         $grid->setModel($this->model->getSelection()->where("(user_id = " . $this->user->id . " OR public = 1)"));
     }
     $grid->addColumnText('original', 'Název')->setSortable()->setFilterText();
     $grid->addColumnText('extension', 'Typ')->setSortable()->setFilterText();
     $grid->addColumnText('firstname', 'Jméno vlastníka')->setSortable()->setFilterText();
     $grid->addColumnText('lastname', 'Příjmení vlastníka')->setSortable()->setFilterText();
     $grid->addColumnText('public', 'Veřejný')->setSortable()->setReplacement($grid::$booleanReplacements)->setFilterSelect($grid::$booleanFilters);
     $grid->addColumnText('uploaded', 'Nahráno')->setSortable()->setFilterDate();
     $grid->addColumnText('size', 'Velikost')->setSortable()->setFilterNumber();
     $grid->addActionHref("id", "Detail");
     $grid->addActionHref("download", "Uložit")->setDisable(function ($item) {
         if (!($this->user->isInRole("administrator") || $this->user->id == $item->user_id || $item->public)) {
             return true;
         }
         return false;
     });
     $grid->addActionHref("delete", "Odstranit")->setDisable(function ($item) {
         if ($item->locked) {
             return true;
         }
         if (!($this->user->isInRole("administrator") || $this->user->id == $item->user_id)) {
             return true;
         }
         return false;
     })->setConfirm(function ($item) {
         return "Opravdu chcete odstranit soubor {$item->original}?";
     });
     $operations = array('delete' => 'Odstranit');
     $grid->setOperation($operations, callback($this, 'gridOperationsHandler'))->setConfirm('delete', 'Opravdu chcete smazat všech %i souborů?');
     return $grid;
 }