Author: Medz Seven (lovevipdsw@vip.qq.com)
Inheritance: extends AdministratorAction
Exemplo n.º 1
0
 public function run()
 {
     parent::beforeRun();
     $modelClass = $this->controller->modelClass;
     $model = new $modelClass();
     if (isset($_POST[$modelClass])) {
         $model->setX2Fields($_POST[$modelClass]);
         if ($model->asa('ContactsNameBehavior')) {
             $model->setName();
         }
         if ($model instanceof Topics && isset($_POST['Topics']['upload'])) {
             $model->upload = $_POST['Topics']['upload'];
         }
         $this->controller->setFileFields($model, true);
         // TODO: handle duplicates, possibly by adding a mobile duplicate handling page
         if ($model->save()) {
             if (isset($_FILES[$modelClass])) {
                 echo CJSON::encode(array('redirectUrl' => $model->getUrl()));
                 Yii::app()->end();
             } else {
                 $this->controller->redirect(array('mobileView', 'id' => $model->id));
             }
         } elseif (isset($_FILES[$modelClass])) {
             throw new CException(400, Yii::t('app', 'Upload failed'));
         }
     }
     $this->controller->pageClass = $this->pageClass;
     $model->setInputRenderer('application.modules.mobile.components.formatters.MobileFieldInputRenderer');
     $this->controller->render($this->pathAliasBase . 'views.mobile.' . $this->viewFile, array('model' => $model));
 }
Exemplo n.º 2
0
 public function run()
 {
     parent::beforeRun();
     $pageSize = 30;
     $modelClass = $this->controller->modelClass;
     $model = new $modelClass('search', null, false, true);
     $dataProvider = $model->search($pageSize);
     // reset pagination state
     Yii::app()->user->setState($dataProvider->asa('SmartDataProviderBehavior')->getSessionPageKey(), null);
     $this->controller->render($this->pathAliasBase . 'views.mobile.recordIndex', array('dataProvider' => $dataProvider, 'model' => $model));
 }
Exemplo n.º 3
0
 public function run($id)
 {
     parent::beforeRun();
     $model = $this->controller->loadModel($id);
     $modelClass = $this->controller->modelClass;
     if ($this->controller->checkPermissions($model, 'delete')) {
         if ($model->delete()) {
             Yii::app()->user->setFlash('success', Yii::t('app', 'Record deleted'));
             $this->controller->redirect(array('mobileIndex'));
         } else {
             throw new CHttpException(500, Yii::t('app', 'Failed to delete record.'));
         }
     } else {
         $this->controller->denied();
     }
 }
Exemplo n.º 4
0
 public function run($id)
 {
     parent::beforeRun();
     $model = $this->getModel($id);
     $this->controller->pageClass = $this->pageClass;
     $this->controller->dataUrl = $model->getUrl();
     $this->controller->pageId .= '-' . $model->id;
     if ($this->controller->checkPermissions($model, 'view')) {
         User::addRecentItem(get_class($model), $id);
         //if (!($model instanceof X2Model))
         $model->setFormatter($this->pathAliasBase . 'components.formatters.MobileFieldFormatter');
         $this->controller->render($this->pathAliasBase . 'views.mobile.recordView', array('model' => $model));
     } else {
         $this->controller->denied();
     }
 }
 public function run($id)
 {
     parent::beforeRun();
     $model = TopicReplies::model()->findByPk($id);
     $topic = $model->topic;
     $modelClass = $this->controller->modelClass;
     if ($this->controller->checkPermissions($model, 'delete')) {
         if ($model->delete()) {
             Yii::app()->user->setFlash('success', Yii::t('app', 'Reply deleted'));
             $this->controller->redirect(array('mobileView', 'id' => $topic->id));
         } else {
             throw new CHttpException(500, Yii::t('app', 'Failed to delete record.'));
         }
     } else {
         $this->controller->denied();
     }
 }
Exemplo n.º 6
0
 public function run()
 {
     parent::beforeRun();
     $modelClass = $this->controller->modelClass;
     $model = new $modelClass();
     if (isset($_POST[$modelClass])) {
         $model->setX2Fields($_POST[$modelClass]);
         if ($model->asa('ContactsNameBehavior')) {
             $model->setName();
         }
         // TODO: handle duplicates, possibly by adding a mobile duplicate handling page
         if ($model->save()) {
             $this->controller->redirect(array('mobileView', 'id' => $model->id));
         }
     }
     $this->controller->pageClass = 'record-create';
     $model->setInputRenderer('application.modules.mobile.components.formatters.MobileFieldInputRenderer');
     $this->controller->render($this->pathAliasBase . 'views.mobile.recordCreate', array('model' => $model));
 }
Exemplo n.º 7
0
 public function run($id)
 {
     parent::beforeRun();
     $model = $this->controller->loadModel($id);
     $modelClass = $this->controller->modelClass;
     $this->controller->dataUrl = $this->controller->createAbsoluteUrl('mobileUpdate', array('id' => $model->id));
     $this->controller->pageId .= '-' . $model->id;
     if ($this->controller->checkPermissions($model, 'edit')) {
         if (isset($_POST[$modelClass])) {
             $model->setX2Fields($_POST[$modelClass]);
             if ($model->save()) {
                 $this->controller->redirect(array('mobileView', 'id' => $model->id));
             }
         }
         $this->controller->pageClass = 'record-update';
         $model->setInputRenderer('application.modules.mobile.components.formatters.MobileFieldInputRenderer');
         $this->controller->render($this->pathAliasBase . 'views.mobile.recordUpdate', array('model' => $model));
     } else {
         $this->controller->denied();
     }
 }
Exemplo n.º 8
0
 public function run($id)
 {
     parent::beforeRun();
     $model = $this->loadModel($id);
     $modelClass = get_class($model);
     $this->controller->dataUrl = $this->controller->createAbsoluteUrl($this->getId(), array('id' => $model->id));
     $this->controller->pageId .= '-' . $model->id;
     if ($this->controller->checkPermissions($model, 'edit')) {
         if (isset($_POST[$modelClass])) {
             if ($model instanceof X2Model) {
                 $model->setX2Fields($_POST[$modelClass]);
             } else {
                 $model->setAttributes($_POST[$modelClass]);
             }
             // special case. Shouldn't need to add a fields db record just to get setX2Fields
             // to set an attribute
             if (($model instanceof Topics || $model instanceof TopicReplies) && isset($_POST[get_class($model)]['upload'])) {
                 $model->upload = $_POST[get_class($model)]['upload'];
             }
             $this->controller->setFileFields($model, true);
             if ($model->save()) {
                 if (isset($_FILES[get_class($model)])) {
                     // this is an ajax file upload request
                     echo CJSON::encode(array('redirectUrl' => $this->getRedirectUrl($model)));
                     Yii::app()->end();
                 } else {
                     $this->controller->redirect($this->getRedirectUrl($model));
                 }
             } elseif (isset($_FILES[$modelClass])) {
                 throw new CException(400, Yii::t('app', 'Upload failed'));
             }
         }
         $this->controller->pageClass = $this->pageClass;
         $model->setInputRenderer('application.modules.mobile.components.formatters.MobileFieldInputRenderer');
         $this->controller->render($this->pathAliasBase . 'views.mobile.' . $this->viewFile, array('model' => $model));
     } else {
         $this->controller->denied();
     }
 }