Ejemplo n.º 1
0
 public static function edit($id, $historyLink = false, $settings = false)
 {
     $ajaxRequest = \Request::ajax() && \Request::get('getIgnore_isAjax') ? true : false;
     if ($settings) {
         AdminHistoryManager::clearHistory();
     } else {
         AdminHistoryManager::addHistoryLink($historyLink, self::$entity, true);
     }
     /** @var \App\BaseModel $entity */
     $entity = self::$entity;
     /** @var \App\BaseModel $fullEntity */
     $fullEntity = self::$modelConfig->myFullEntityName();
     if (config('gtcms.premium') && $entity == "GtcmsSetting") {
         $object = GtcmsSetting::createSettingsObject();
     } else {
         /** @var \App\BaseModel $object */
         if ($id == "new") {
             $object = new $fullEntity();
         } else {
             $object = $fullEntity::find($id);
         }
     }
     $validator = NULL;
     $action = $object->id ? 'edit' : 'add';
     $quickEdit = false;
     if (config('gtcms.premium')) {
         $quickEdit = GtcmsPremium::getQuickEditVar();
     }
     if (!empty($_POST) && $ajaxRequest) {
         $validator = \Validator::make(\Request::all(), AdminHelper::validationRules(self::$modelConfig, $object, $quickEdit));
         if ($validator->fails()) {
             $message = trans('gtcms.validationFailed');
             $data = array('success' => false, 'errors' => $validator->getMessageBag()->getMessages(), 'errorMsg' => $message, 'quickEdit' => $quickEdit);
             return \Response::json($data);
         } else {
             if ($entity == "GtcmsSetting") {
                 AdminEntityHandler::editSettings(self::$modelConfig);
             } else {
                 if ($object->isEditable()) {
                     $object = AdminEntityHandler::edit($object, self::$modelConfig);
                 }
             }
             return self::ajaxRedirect($object, $action, $quickEdit);
         }
     }
     $viewData = array('active' => $entity, 'modelConfig' => self::$modelConfig, 'object' => $object, 'ajaxRequest' => $ajaxRequest, 'action' => $action, 'quickEdit' => $quickEdit);
     $setUrl = false;
     if (!$settings) {
         $setUrl = '/admin/' . self::$modelConfig->name . '/edit/' . ($object->id ? $object->id : 'new') . Tools::getGets();
     }
     if ($ajaxRequest) {
         $view = \View::make('gtcms.admin.elements.editContent')->with($viewData);
         $data = array('success' => true, 'view' => $view->render(), 'setUrl' => $setUrl, 'history' => AdminHistoryManager::getHistory(), 'setHistoryLinks' => true, 'modelConfigName' => self::$modelConfig->name, 'replaceCurrentHistory' => false);
         return \Response::json($data);
     } else {
         return \View::make('gtcms.admin.elements.edit')->with($viewData);
     }
 }