Skip to content

Commit

Permalink
5.5.3
Browse files Browse the repository at this point in the history
  • Loading branch information
skeeks-semenov committed Apr 9, 2019
1 parent 6f0ac30 commit 663a4e0
Show file tree
Hide file tree
Showing 5 changed files with 197 additions and 25 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
@@ -1,8 +1,9 @@
CHANGELOG
==============

5.5.3.pre
5.5.3
-----------------
* В настройках компонентов, можно использовать сложные формы с логикой 'elementOptions' => [ 'data' => [ 'form-reload' => 'true', ], ],
* Валидация code RelatedProperty теперь допускает "_"
* Removed I18N

Expand Down
56 changes: 36 additions & 20 deletions src/controllers/AdminComponentSettingsController.php
Expand Up @@ -8,6 +8,7 @@

namespace skeeks\cms\controllers;

use skeeks\cms\backend\actions\THasActiveForm;
use skeeks\cms\base\Component;
use skeeks\cms\components\Cms;
use skeeks\cms\helpers\RequestResponse;
Expand All @@ -30,6 +31,7 @@
*/
class AdminComponentSettingsController extends AdminController
{
use THasActiveForm;
/**
* @return string
*/
Expand Down Expand Up @@ -173,17 +175,23 @@ public function actionIndex()
}

if (\Yii::$app->request->isPost && \Yii::$app->request->isPjax) {
if ($component->load(\Yii::$app->request->post()) && $component->validate()) {
$component->override = Component::OVERRIDE_DEFAULT;
if ($component->save()) {
\Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');

if (!\Yii::$app->request->post($this->reloadFormParam)) {
if ($component->load(\Yii::$app->request->post()) && $component->validate()) {
$component->override = Component::OVERRIDE_DEFAULT;
if ($component->save()) {
\Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');
} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
}

} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
}

} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
$component->load(\Yii::$app->request->post());
}

}

return $this->render($this->action->id, [
Expand Down Expand Up @@ -220,17 +228,21 @@ public function actionSite()


if (\Yii::$app->request->isPost && \Yii::$app->request->isPjax) {
if ($component->load(\Yii::$app->request->post()) && $component->validate()) {
$component->override = Component::OVERRIDE_SITE;
$component->cmsSite = $site;
if ($component->save()) {
\Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');
if (!\Yii::$app->request->post($this->reloadFormParam)) {
if ($component->load(\Yii::$app->request->post()) && $component->validate()) {
$component->override = Component::OVERRIDE_SITE;
$component->cmsSite = $site;
if ($component->save()) {
\Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');
} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
}

} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
}

} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
$component->load(\Yii::$app->request->post());
}
}

Expand Down Expand Up @@ -265,17 +277,21 @@ public function actionUser()
}

if (\Yii::$app->request->isPost && \Yii::$app->request->isPjax) {
if ($component->load(\Yii::$app->request->post()) && $component->validate()) {
$component->override = Component::OVERRIDE_USER;
$component->cmsUser = $user;
if ($component->save()) {
\Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');
if (!\Yii::$app->request->post($this->reloadFormParam)) {
if ($component->load(\Yii::$app->request->post()) && $component->validate()) {
$component->override = Component::OVERRIDE_USER;
$component->cmsUser = $user;
if ($component->save()) {
\Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');
} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
}

} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
}

} else {
\Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
$component->load(\Yii::$app->request->post());
}
}

Expand Down
47 changes: 46 additions & 1 deletion src/views/admin-component-settings/index.php
Expand Up @@ -6,8 +6,10 @@
* @date 27.03.2015
*
* @var $component \skeeks\cms\base\Component
* @var $controller \skeeks\cms\controllers\AdminComponentSettingsController
*/
/* @var $this yii\web\View */
$controller = $this->context;
?>

<?= $this->render('_header', [
Expand All @@ -30,7 +32,50 @@
?>
</div>

<?php $form = \skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab::begin(); ?>
<?php $form = \skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab::begin([
'enableAjaxValidation' => false,
'enableClientValidation' => false,
]); ?>

<?php $this->registerJs(<<<JS
(function(sx, $, _)
{
sx.classes.DynamicForm = sx.classes.Component.extend({
_onDomReady: function()
{
var self = this;
$("[" + this.get('formreload') + "=true]").on('change', function()
{
self.update();
});
},
update: function()
{
var self = this;
_.delay(function()
{
var jForm = $("#" + self.get('id'));
jForm.append($('<input>', {'type': 'hidden', 'name' : self.get('nosubmit'), 'value': 'true'}));
jForm.submit();
}, 200);
}
});
sx.DynamicForm = new sx.classes.DynamicForm({
'id' : '{$form->id}',
'formreload' : '{$controller->reloadFieldParam}',
'nosubmit' : '{$controller->reloadFormParam}',
});
})(sx, sx.$, sx._);
JS
); ?>

<?= $form->errorSummary(\yii\helpers\ArrayHelper::merge(
[$component], $component->getConfigFormModels()
Expand Down
46 changes: 45 additions & 1 deletion src/views/admin-component-settings/site.php
Expand Up @@ -9,6 +9,7 @@
* @var $site \skeeks\cms\models\CmsSite
*/
/* @var $this yii\web\View */
$controller = $this->context;
?>

<?= $this->render('_header', [
Expand All @@ -33,7 +34,50 @@
</div>


<?php $form = \skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab::begin(); ?>
<?php $form = \skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab::begin([
'enableAjaxValidation' => false,
'enableClientValidation' => false,
]); ?>

<?php $this->registerJs(<<<JS
(function(sx, $, _)
{
sx.classes.DynamicForm = sx.classes.Component.extend({
_onDomReady: function()
{
var self = this;
$("[" + this.get('formreload') + "=true]").on('change', function()
{
self.update();
});
},
update: function()
{
var self = this;
_.delay(function()
{
var jForm = $("#" + self.get('id'));
jForm.append($('<input>', {'type': 'hidden', 'name' : self.get('nosubmit'), 'value': 'true'}));
jForm.submit();
}, 200);
}
});
sx.DynamicForm = new sx.classes.DynamicForm({
'id' : '{$form->id}',
'formreload' : '{$controller->reloadFieldParam}',
'nosubmit' : '{$controller->reloadFormParam}',
});
})(sx, sx.$, sx._);
JS
); ?>

<?= $form->errorSummary(\yii\helpers\ArrayHelper::merge(
[$component], $component->getConfigFormModels()
Expand Down
70 changes: 68 additions & 2 deletions src/views/admin-component-settings/user.php
Expand Up @@ -9,6 +9,7 @@
* @var $user \skeeks\cms\models\User
*/
/* @var $this yii\web\View */
$controller = $this->context;
?>

<?= $this->render('_header', [
Expand All @@ -32,9 +33,74 @@
?>
</div>

<?php $form = \skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab::begin(); ?>
<?= $component->renderConfigForm($form); ?>
<?php $form = \skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab::begin([
'enableAjaxValidation' => false,
'enableClientValidation' => false,
]); ?>

<?php $this->registerJs(<<<JS
(function(sx, $, _)
{
sx.classes.DynamicForm = sx.classes.Component.extend({
_onDomReady: function()
{
var self = this;
$("[" + this.get('formreload') + "=true]").on('change', function()
{
self.update();
});
},
update: function()
{
var self = this;
_.delay(function()
{
var jForm = $("#" + self.get('id'));
jForm.append($('<input>', {'type': 'hidden', 'name' : self.get('nosubmit'), 'value': 'true'}));
jForm.submit();
}, 200);
}
});
sx.DynamicForm = new sx.classes.DynamicForm({
'id' : '{$form->id}',
'formreload' : '{$controller->reloadFieldParam}',
'nosubmit' : '{$controller->reloadFormParam}',
});
})(sx, sx.$, sx._);
JS
); ?>


<?= $form->errorSummary(\yii\helpers\ArrayHelper::merge(
[$component], $component->getConfigFormModels()
)); ?>

<? if ($fields = $component->getConfigFormFields()) : ?>
<? echo (new \skeeks\yii2\form\Builder([
'models' => $component->getConfigFormModels(),
'model' => $component,
'activeForm' => $form,
'fields' => $fields,
]))->render(); ?>
<? elseif ($formContent = $component->renderConfigForm($form)) : ?>
<?= $formContent; ?>
<? else : ?>
Нет редактируемых настроек для данного компонента
<? endif; ?>

<?= $form->buttonsStandart($component); ?>
<?= $form->errorSummary(\yii\helpers\ArrayHelper::merge(
[$component], $component->getConfigFormModels()
)); ?>

<?php \skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab::end(); ?>


Expand Down

0 comments on commit 663a4e0

Please sign in to comment.