From 12aab8dd1a937177c72ddc7c6d81ef4664fbe10a Mon Sep 17 00:00:00 2001 From: Egorka Date: Wed, 22 Aug 2018 22:07:18 +0300 Subject: [PATCH] Backend language select in profile --- backend/controllers/SettingsController.php | 150 --------------------- backend/controllers/UserController.php | 5 +- backend/controllers/settings/ListController.php | 150 +++++++++++++++++++++ backend/messages/ru/main.php | 4 +- backend/messages/ru/user.php | 1 + backend/views/layouts/header.php | 17 +++ backend/views/layouts/left.php | 11 +- backend/views/settings/_form.php | 43 ------ backend/views/settings/create.php | 24 ---- backend/views/settings/index.php | 70 ---------- backend/views/settings/list/_form.php | 43 ++++++ backend/views/settings/list/create.php | 24 ++++ backend/views/settings/list/index.php | 70 ++++++++++ backend/views/settings/list/update.php | 29 ++++ backend/views/settings/list/view.php | 60 +++++++++ backend/views/settings/update.php | 29 ---- backend/views/settings/view.php | 60 --------- backend/views/user/profile.php | 4 + common/bootstrap/SetUp.php | 5 + .../m180822_182716_add_users_languages_fields.php | 27 ++++ core/entities/user/User.php | 5 +- core/forms/user/ProfileEditForm.php | 5 +- core/services/user/ProfileService.php | 2 +- 23 files changed, 450 insertions(+), 388 deletions(-) delete mode 100644 backend/controllers/SettingsController.php create mode 100644 backend/controllers/settings/ListController.php delete mode 100644 backend/views/settings/_form.php delete mode 100644 backend/views/settings/create.php delete mode 100644 backend/views/settings/index.php create mode 100644 backend/views/settings/list/_form.php create mode 100644 backend/views/settings/list/create.php create mode 100644 backend/views/settings/list/index.php create mode 100644 backend/views/settings/list/update.php create mode 100644 backend/views/settings/list/view.php delete mode 100644 backend/views/settings/update.php delete mode 100644 backend/views/settings/view.php create mode 100644 console/migrations/m180822_182716_add_users_languages_fields.php diff --git a/backend/controllers/SettingsController.php b/backend/controllers/SettingsController.php deleted file mode 100644 index 25b7b2b..0000000 --- a/backend/controllers/SettingsController.php +++ /dev/null @@ -1,150 +0,0 @@ -service = $service; - } - - public function behaviors() - { - return [ - 'verbs' => [ - 'class' => VerbFilter::className(), - 'actions' => [ - 'delete' => ['POST'], - ], - ], - 'access' => [ - 'class' => AccessControl::className(), - 'rules' => [ - [ - 'actions' => ['create','view','index', 'update', 'delete', 'toggle'], - 'allow' => true, - 'roles' => ['SettingsManagement'], - ], - [ // all the action are accessible to admin - 'allow' => true, - 'roles' => ['admin'], - ], - ], - ], - ]; - } - - public function actions() - { - return [ - 'toggle' => [ - 'class' => ToggleAction::className(), - 'modelClass' => Settings::class, - //'setFlash' => true, - ] - ]; - } - - public function actionIndex() - { - $searchModel = new SettingsSearch(); - $dataProvider = $searchModel->search(Yii::$app->request->queryParams); - return $this->render( - 'index', - [ - 'searchModel' => $searchModel, - 'dataProvider' => $dataProvider, - ] - ); - } - - public function actionView($id) - { - return $this->render( - 'view', - [ - 'model' => $this->findModel($id), - ] - ); - } - - public function actionCreate() - { - $form = new SettingsForm(); - if ($form->load(Yii::$app->request->post()) && $form->validate()) { - try { - $settings = $this->service->create($form); - return $this->redirect(['view', 'id' => $settings->id]); - } catch (\DomainException $e) { - Yii::$app->errorHandler->logException($e); - Yii::$app->session->setFlash('error', $e->getMessage()); - } - } - else { - $form->active = 1; - } - return $this->render( - 'create', - [ - 'model' => $form, - ] - ); - } - - public function actionUpdate($id) - { - $settings = $this->findModel($id); - - $form = new SettingsForm($settings); - if ($form->load(Yii::$app->request->post()) && $form->validate()) { - try { - $this->service->edit($settings->id, $form); - return $this->redirect(['view', 'id' => $settings->id]); - } catch (\DomainException $e) { - Yii::$app->errorHandler->logException($e); - Yii::$app->session->setFlash('error', $e->getMessage()); - } - } - return $this->render( - 'update', - [ - 'model' => $form, - 'settings' => $settings, - ] - ); - } - - public function actionDelete($id) - { - $this->service->remove($id); - return $this->redirect(['index']); - } - - protected function findModel($id) - { - if (($model = Settings::findOne($id)) !== null) { - return $model; - } else { - throw new NotFoundHttpException('The requested page does not exist.'); - } - } -} \ No newline at end of file diff --git a/backend/controllers/UserController.php b/backend/controllers/UserController.php index b47b564..cc4e60b 100644 --- a/backend/controllers/UserController.php +++ b/backend/controllers/UserController.php @@ -37,7 +37,7 @@ class UserController extends Controller { return [ 'access' => [ - 'class' => AccessControl::className(), + 'class' => AccessControl::class, 'rules' => [ [ 'actions' => ['create','view','index', 'update', 'delete'], @@ -56,7 +56,7 @@ class UserController extends Controller ], ], 'verbs' => [ - 'class' => VerbFilter::className(), + 'class' => VerbFilter::class, 'actions' => [ 'delete' => ['POST'], ], @@ -162,6 +162,7 @@ class UserController extends Controller $form->user_pic = UploadedFile::getInstance($form, 'user_pic'); $this->profile_service->edit(Yii::$app->user->id, $form); Yii::$app->session->setFlash('success', Yii::t('user', 'Profile is saved.')); + return $this->redirect(['/user/profile']); } catch (\DomainException $e) { Yii::$app->errorHandler->logException($e); Yii::$app->session->setFlash('error', $e->getMessage()); diff --git a/backend/controllers/settings/ListController.php b/backend/controllers/settings/ListController.php new file mode 100644 index 0000000..da83f0f --- /dev/null +++ b/backend/controllers/settings/ListController.php @@ -0,0 +1,150 @@ +service = $service; + } + + public function behaviors() + { + return [ + 'verbs' => [ + 'class' => VerbFilter::class, + 'actions' => [ + 'delete' => ['POST'], + ], + ], + 'access' => [ + 'class' => AccessControl::class, + 'rules' => [ + [ + 'actions' => ['create','view','index', 'update', 'delete', 'toggle'], + 'allow' => true, + 'roles' => ['SettingsManagement'], + ], + [ // all the action are accessible to admin + 'allow' => true, + 'roles' => ['admin'], + ], + ], + ], + ]; + } + + public function actions() + { + return [ + 'toggle' => [ + 'class' => ToggleAction::class, + 'modelClass' => Settings::class, + //'setFlash' => true, + ] + ]; + } + + public function actionIndex() + { + $searchModel = new SettingsSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + return $this->render( + 'index', + [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider, + ] + ); + } + + public function actionView($id) + { + return $this->render( + 'view', + [ + 'model' => $this->findModel($id), + ] + ); + } + + public function actionCreate() + { + $form = new SettingsForm(); + if ($form->load(Yii::$app->request->post()) && $form->validate()) { + try { + $settings = $this->service->create($form); + return $this->redirect(['view', 'id' => $settings->id]); + } catch (\DomainException $e) { + Yii::$app->errorHandler->logException($e); + Yii::$app->session->setFlash('error', $e->getMessage()); + } + } + else { + $form->active = 1; + } + return $this->render( + 'create', + [ + 'model' => $form, + ] + ); + } + + public function actionUpdate($id) + { + $settings = $this->findModel($id); + + $form = new SettingsForm($settings); + if ($form->load(Yii::$app->request->post()) && $form->validate()) { + try { + $this->service->edit($settings->id, $form); + return $this->redirect(['view', 'id' => $settings->id]); + } catch (\DomainException $e) { + Yii::$app->errorHandler->logException($e); + Yii::$app->session->setFlash('error', $e->getMessage()); + } + } + return $this->render( + 'update', + [ + 'model' => $form, + 'settings' => $settings, + ] + ); + } + + public function actionDelete($id) + { + $this->service->remove($id); + return $this->redirect(['index']); + } + + protected function findModel($id) + { + if (($model = Settings::findOne($id)) !== null) { + return $model; + } else { + throw new NotFoundHttpException('The requested page does not exist.'); + } + } +} \ No newline at end of file diff --git a/backend/messages/ru/main.php b/backend/messages/ru/main.php index 70d7c09..d0ef37f 100644 --- a/backend/messages/ru/main.php +++ b/backend/messages/ru/main.php @@ -35,5 +35,7 @@ return [ 'Modules' => 'Модули', 'Find modules' => 'Поиск модулей', 'Enable' => 'Включить', - 'Disable' => 'Отключить' + 'Disable' => 'Отключить', + 'Settings List' => 'Все настройки', + 'Create Setting' => 'Новый параметр', ]; \ No newline at end of file diff --git a/backend/messages/ru/user.php b/backend/messages/ru/user.php index 7c9a5ed..6e19f35 100644 --- a/backend/messages/ru/user.php +++ b/backend/messages/ru/user.php @@ -38,4 +38,5 @@ return [ 'User Picture' => 'Аватар', 'Registered: {date}' => 'Дата регистрации: {date}', 'Remember Me' => 'Запомнить меня', + 'Dashboard Language' => 'Язык панели управления', ]; \ No newline at end of file diff --git a/backend/views/layouts/header.php b/backend/views/layouts/header.php index 58d56d7..10ab7af 100644 --- a/backend/views/layouts/header.php +++ b/backend/views/layouts/header.php @@ -193,6 +193,23 @@ use core\components\avatar_generator\AvatarGenerator; --> + + +