public function validateModelName($attr)
 {
     $value = $this->{$attr};
     $modules = MobileModule::supportedModules(new CDbCriteria(array('condition' => 'editable')));
     $validNames = array_map(function ($module) {
         return X2Model::getModelName($module->name);
     }, $modules);
     if (!in_array($value, $validNames)) {
         $this->addError($attr, Yii::t('app', 'Invalid model name'));
     }
 }
Esempio n. 2
0
 public function getModuleItems()
 {
     $modules = MobileModule::supportedModules();
     $modules = array_filter($modules, function ($module) {
         if ($module->name === 'users') {
             $action = 'ProfileMobileIndex';
         } else {
             $action = ucfirst($module->name) . 'Index';
         }
         $authItem = Yii::app()->authManager->getAuthItem($action);
         return Yii::app()->params->isAdmin || is_null($authItem) || Yii::app()->user->checkAccess($action);
     });
     return array_map(function ($module) {
         $item = new ModulePanelItem();
         $item->module = $module;
         return $item;
     }, $modules);
 }
Esempio n. 3
0
 public function actionEditMobileForms()
 {
     Yii::import('application.modules.mobile.models.*');
     Yii::import('application.modules.mobile.*');
     Yii::import('application.models.formModels.*');
     $model = new EditMobileFormsFormModel();
     if (isset($_POST['EditMobileFormsFormModel'])) {
         $model->setAttributes($_POST['EditMobileFormsFormModel']);
         if ($model->validate()) {
             Yii::app()->db->createCommand()->delete('x2_mobile_layouts', 'modelName=:modelName', array(':modelName' => $model->modelName));
             foreach (array('defaultView', 'defaultForm') as $layoutName) {
                 $layout = new MobileLayouts();
                 $layout->modelName = $model->modelName;
                 $layout->layout = $model->{$layoutName};
                 $layout->defaultView = $layoutName === 'defaultView';
                 $layout->defaultForm = $layoutName === 'defaultForm';
                 $layout->save();
             }
             Yii::app()->user->setFlash('success', Yii::t('app', 'Layout updated'));
         }
     }
     $modules = MobileModule::supportedModules(new CDbCriteria(array('condition' => 'editable')));
     $modelList = array('' => '---');
     foreach ($modules as $module) {
         if ($module->name == 'marketing') {
             $modelList['Campaign'] = Yii::t('marketing', 'Campaign');
         } elseif ($module->name == 'opportunities') {
             $modelList['Opportunity'] = Yii::t('opportunities', 'Opportunity');
         } elseif ($module->name == 'products') {
             $modelList['Product'] = Yii::t('products', 'Product');
         } elseif ($module->name == 'quotes') {
             $modelList['Quote'] = Yii::t('quotes', 'Quote');
         } else {
             $modelList[ucfirst($module->name)] = Yii::t('app', $module->title);
         }
     }
     $this->render('editMobileForms', array('model' => $model, 'recordTypes' => $modelList));
 }