Skip to content

Commit

Permalink
dev
Browse files Browse the repository at this point in the history
  • Loading branch information
skeeks-semenov committed May 20, 2018
1 parent caa4784 commit 96ed625
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 3 deletions.
6 changes: 6 additions & 0 deletions src/controllers/AdminUserController.php
Expand Up @@ -134,6 +134,12 @@ public function actions()
'logged_at' => SORT_DESC,
'created_at' => SORT_DESC,
],
'dialogCallbackData' => function(CmsUser $model) {
return \yii\helpers\ArrayHelper::merge($model->toArray(), [
'image' => $model->image ? $model->image->src : "",
'displayName' => $model->displayName
]);
},
'visibleColumns' => [
'checkbox',
'actions',
Expand Down
5 changes: 3 additions & 2 deletions src/views/admin-settings/index.php
Expand Up @@ -9,20 +9,21 @@
* @var $component \skeeks\cms\base\Component
*/
/* @var $this yii\web\View */

$r = new ReflectionClass($component);
?>

<?php /* \skeeks\cms\modules\admin\widgets\Pjax::begin([
'id' => 'widget-select-component'
]) */ ?>
<form id="selector-component" action="" method="get" data-pjax>
<label><?= \Yii::t('skeeks/cms', 'Component settings') ?></label>

<?=
\skeeks\widget\chosen\Chosen::widget([
'name' => 'component',
'items' => $loadedForSelect,
'allowDeselect' => false,
'value' => $component->className()
'value' => $r->getName()
])
?>
<?php if (\Yii::$app->admin->isEmptyLayout()) : ?>
Expand Down
107 changes: 106 additions & 1 deletion src/widgets/GridView.php
Expand Up @@ -8,6 +8,7 @@

namespace skeeks\cms\widgets;

use skeeks\cms\backend\helpers\BackendUrlHelper;
use skeeks\cms\helpers\PaginationConfig;
use skeeks\yii2\config\ConfigBehavior;
use skeeks\yii2\config\ConfigTrait;
Expand Down Expand Up @@ -313,8 +314,9 @@ public function init()

//Сбор результирующего конфига колонок
$this->_preInitColumns();
//Получение настроек из хранилища

$this->_initDialogCallbackData();
//Получение настроек из хранилища
parent::init();

//Применение включенных/выключенных колонок
Expand All @@ -332,6 +334,64 @@ public function init()
}
}


protected function _initDialogCallbackData() {

if ($callbackEventName = BackendUrlHelper::createByParams()->setBackendParamsByCurrentRequest()->callbackEventName) {
$this->view->registerJs(<<<JS
(function(sx, $, _)
{
sx.classes.SelectCmsElement = sx.classes.Component.extend({
_onDomReady: function()
{
$('table tr').on('dblclick', function()
{
$(".sx-row-action", $(this)).click();
});
},
submit: function(data)
{
if (window.opener)
{
if (window.opener.sx)
{
window.opener.sx.EventManager.trigger('{$callbackEventName}', data);
return this;
}
} else if (window.parent)
{
if (window.parent.sx)
{
window.parent.sx.EventManager.trigger('{$callbackEventName}', data);
return this;
}
}
return this;
}
});
sx.SelectCmsElement = new sx.classes.SelectCmsElement();
})(sx, sx.$, sx._);
JS
);

$this->columns = ArrayHelper::merge([

'sx-choose' => $this->getDialogCallbackDataColumn(),

], $this->columns);

if ($this->visibleColumns) {
$this->visibleColumns = ArrayHelper::merge(['sx-choose'], $this->visibleColumns);
}
}
}


/**
* @param DataProviderInterface $dataProvider
* @return $this
Expand Down Expand Up @@ -602,4 +662,49 @@ public function getEditData()
'sortAttributes' => $sort,
];
}





protected $_dialogCallbackDataColumn = null;

/**
* @var null
*/
public $dialogCallbackData = null;

public function setdialogCallbackDataColumn($column)
{
$this->_dialogCallbackDataColumn = $column;
return $this;
}

public function getDialogCallbackDataColumn()
{
if ($this->_dialogCallbackDataColumn === null) {
$this->_dialogCallbackDataColumn = [
'class' => \yii\grid\DataColumn::className(),
'value' => function ($model) {
$data = $model->toArray();

if ($this->dialogCallbackData && is_callable($this->dialogCallbackData)) {
$callback = $this->dialogCallbackData;
$data = $callback($model);
}

return \yii\helpers\Html::a('<i class="glyphicon glyphicon-circle-arrow-left"></i> ' . \Yii::t('skeeks/cms',
'Choose'), '#', [
'class' => 'btn btn-primary sx-row-action',
'onclick' => 'sx.SelectCmsElement.submit(' . \yii\helpers\Json::encode($data) . '); return false;',
'data-pjax' => 0
]);
},
'label' => '',
'format' => 'raw'
];
}
return $this->_dialogCallbackDataColumn;
}

}

0 comments on commit 96ed625

Please sign in to comment.