Example #1
0
 public static function index($loginRedirect)
 {
     $startUrl = "";
     AdminHistoryManager::clearHistory();
     if ($loginRedirect) {
         $defaultModel = AdminController::getDefaultModelForUser();
         $startUrl = "/admin/" . $defaultModel;
         AdminHistoryManager::addHistoryLink($startUrl, $defaultModel);
     } else {
         AdminHistoryManager::addHistoryLink();
     }
     $ajaxRequest = \Request::ajax() && \Request::get('getIgnore_isAjax') ? true : false;
     $getSearchResults = isset($_GET['getIgnore_getSearchResults']) && $ajaxRequest ? true : false;
     $searchIsOpen = isset($_GET['getIgnore_searchIsOpen']) && $ajaxRequest ? true : false;
     /** @var \App\BaseModel $entity */
     $entity = self::$entity;
     /** @var \App\BaseModel $fullEntity */
     $fullEntity = self::$modelConfig->myFullEntityName();
     $indexType = self::$modelConfig->index ? ucfirst(self::$modelConfig->index) : '';
     $searchParams = array();
     $searchDataWithFieldValues = array();
     $ordering = Tools::getSearchAndOrderGets(false, false, false, true);
     if ($indexType == 'Tree') {
         $objects = $fullEntity::where('depth', 0)->orderBy('position', 'asc')->get();
     } else {
         $searchDataWithFieldValues = AdminHelper::getSearchData(self::$modelConfig, true);
         $input = array();
         AdminHelper::standaloneCheck(self::$modelConfig, 'index', $input);
         $orderAndDirection = AdminHelper::getOrderParams(self::$modelConfig);
         $objects = $fullEntity::searchResultsEntities(self::$modelConfig)->where(function ($query) {
             if (self::$modelConfig->name == 'User' && !\Auth::user()->is_superadmin) {
                 $query->where('is_superadmin', 0);
             }
         })->orderBy($orderAndDirection['orderBy'], $orderAndDirection['direction'])->paginate(self::$modelConfig->perPage);
     }
     $addEntity = true;
     if ($indexType == 'Tree' && self::$modelConfig->maxFirstLevelItems && $fullEntity::where('depth', 0)->count() >= self::$modelConfig->maxFirstLevelItems) {
         $addEntity = false;
     }
     $viewData = array('active' => $entity, 'modelConfig' => self::$modelConfig, 'objects' => $objects, 'addEntity' => $addEntity, 'searchParams' => $searchParams, 'searchDataWithFieldValues' => $searchDataWithFieldValues, 'ordering' => $ordering, 'ajaxRequest' => $ajaxRequest, 'loginRedirect' => $loginRedirect, 'getSearchResults' => $getSearchResults, 'searchIsOpen' => $searchIsOpen, 'indexType' => $indexType);
     if ($ajaxRequest) {
         $view = \View::make('gtcms.admin.elements.index' . $indexType . 'Content')->with($viewData);
         if ($loginRedirect) {
             $data = array('success' => true, 'setUrl' => $startUrl, 'view' => $view->render());
             return \Response::json($data);
         }
         $data = array('success' => true, 'view' => $view->render(), 'setHistoryLinks' => false, 'modelConfigName' => self::$modelConfig->name, 'indexView' => true, 'setUrl' => "/admin/" . $entity . Tools::getGets(), 'getParams' => Tools::getGets(), 'entity' => $entity, 'searchDataWithFieldValues' => $searchDataWithFieldValues || $ordering ? true : false);
         return \Response::json($data);
     } else {
         return \View::make('gtcms.admin.elements.index')->with($viewData);
     }
 }