public function create(AdminAction $adminAction)
{
$modelClassName = $this->modelClassName;
$model = new $modelClassName();
$model->loadDefaultValues();
$relatedModel = $model->relatedPropertiesModel;
$relatedModel->loadDefaultValues();
$passwordChange = new PasswordChangeForm(['user' => $model]);
$rr = new RequestResponse();
if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
$model->load(\Yii::$app->request->post());
$relatedModel->load(\Yii::$app->request->post());
$passwordChange->load(\Yii::$app->request->post());
return \yii\widgets\ActiveForm::validateMultiple([$model, $relatedModel, $passwordChange]);
}
if ($rr->isRequestPjaxPost()) {
$model->load(\Yii::$app->request->post());
$relatedModel->load(\Yii::$app->request->post());
if ($model->save() && $relatedModel->save()) {
if ($passwordChange->new_password) {
if (!$passwordChange->changePassword()) {
\Yii::$app->getSession()->setFlash('error', "Пароль не изменен");
}
}
\Yii::$app->getSession()->setFlash('success', \Yii::t('skeeks/cms', 'Saved'));
if (\Yii::$app->request->post('submit-btn') == 'apply') {
return $this->redirect(UrlHelper::constructCurrent()->setCurrentRef()->enableAdmin()->setRoute($this->modelDefaultAction)->normalizeCurrentRoute()->addData([$this->requestPkParamName => $model->{$this->modelPkAttribute}])->toString());
} else {
return $this->redirect($this->indexUrl);
}
} else {
\Yii::$app->getSession()->setFlash('error', \Yii::t('skeeks/cms', 'Could not save'));
}
}
return $this->render('_form', ['model' => $model, 'relatedModel' => $relatedModel, 'passwordChange' => $passwordChange]);
}