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)); }
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)); }
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(); } }
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(); } }
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)); }
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(); } }
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(); } }