Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
179 lines (170 sloc)
6.36 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @copyright Copyright © Kartik Visweswaran, Krajee.com, 2015 - 2022 | |
* @package yii2-dynagrid | |
* @version 1.5.4 | |
*/ | |
use kartik\base\Config; | |
use kartik\base\Lib; | |
use kartik\base\Widget; | |
use kartik\dynagrid\models\DynaGridConfig; | |
use kartik\dynagrid\Module; | |
use kartik\form\ActiveForm; | |
use kartik\select2\Select2; | |
use kartik\sortable\Sortable; | |
use yii\helpers\ArrayHelper; | |
use yii\helpers\Html; | |
/** | |
* @var string $id | |
* @var yii\web\View $this | |
* @var DynaGridConfig $model | |
* @var ActiveForm $form | |
* @var Module $module | |
* @var string $moduleId | |
* @var boolean $allowPageSetting | |
* @var boolean $allowThemeSetting | |
* @var boolean $allowFilterSetting | |
* @var boolean $allowSortSetting | |
* @var string $iconPersonalize | |
* @var string $iconSortableSeparator | |
* @var array $toggleButtonGrid | |
* @var boolean $notBs3 | |
* @var Widget $modalClass | |
*/ | |
$dynagridId = Lib::substr($model->id, 0, -9); | |
$options1 = ArrayHelper::merge( | |
$model->widgetOptions, | |
[ | |
'items' => $model->visibleColumns, | |
'connected' => true, | |
'options' => ['class' => 'sortable-visible'], | |
] | |
); | |
$options2 = ArrayHelper::merge( | |
$model->widgetOptions, | |
[ | |
'items' => $model->hiddenColumns, | |
'connected' => true, | |
'options' => ['class' => 'sortable-hidden'], | |
] | |
); | |
/** @noinspection PhpUnhandledExceptionInspection */ | |
$module = Config::getModule($moduleId, Module::class); | |
$cols = (int)$allowPageSetting + (int)$allowThemeSetting + (int)$allowFilterSetting + (int)$allowSortSetting; | |
$col = $cols == 0 ? 0 : 12 / $cols; | |
?> | |
<?php | |
$hdr = $iconPersonalize.' '.Yii::t('kvdynagrid', 'Personalize Grid Configuration'); | |
$modalOpts = [ | |
'footer' => $model->footer, | |
'toggleButton' => $toggleButtonGrid, | |
'size' => $modalClass::SIZE_LARGE, | |
'options' => ['id' => $id], | |
]; | |
if ($notBs3) { | |
$modalOpts['title'] = $hdr; | |
} else { | |
$modalOpts['header'] = '<h3 class="modal-title">'.$hdr.'</h3>'; | |
} | |
$modalClass::begin($modalOpts); | |
?> | |
<div class="dynagrid-config-form"> | |
<?php | |
$form = ActiveForm::begin(['options' => ['data-pjax' => false]]); ?> | |
<?php | |
if ($col > 0) : ?> | |
<div class="row"> | |
<?php | |
if ($allowPageSetting) : ?> | |
<div class="col-sm-<?= $col ?>"> | |
<?= $form->field($model, 'pageSize', [ | |
'addon' => ['append' => ['content' => Yii::t('kvdynagrid', 'rows per page')]], | |
])->textInput(['class' => 'form-control', 'id' => "pageSize-{$dynagridId}"])->hint( | |
Yii::t( | |
'kvdynagrid', | |
'Integer between {min} to {max}', | |
['min' => $module->minPageSize, 'max' => $module->maxPageSize] | |
) | |
); | |
?> | |
</div> | |
<?php | |
endif; ?> | |
<?php | |
if ($allowThemeSetting) : ?> | |
<div class="col-sm-<?= $col ?>"> | |
<?= $form->field($model, 'theme')->widget( | |
Select2::class, | |
[ | |
'data' => $model->themeList, | |
'options' => [ | |
'placeholder' => Yii::t('kvdynagrid', 'Select a theme...'), | |
'id' => "theme-{$dynagridId}", | |
], | |
'pluginOptions' => ['allowClear' => true], | |
] | |
)->hint(Yii::t('kvdynagrid', 'Select theme to style grid')); | |
?> | |
</div> | |
<?php | |
endif; ?> | |
<?php | |
if ($allowFilterSetting) : ?> | |
<div class="col-sm-<?= $col ?>"> | |
<?= $form->field($model, 'filterId')->widget( | |
Select2::class, | |
[ | |
'data' => $model->filterList, | |
'options' => [ | |
'placeholder' => Yii::t('kvdynagrid', 'Select a filter...'), | |
'id' => "filterId-{$dynagridId}", | |
], | |
'pluginOptions' => ['allowClear' => true], | |
] | |
)->hint(Yii::t('kvdynagrid', 'Set default grid filter criteria')) ?> | |
</div> | |
<?php | |
endif; ?> | |
<?php | |
if ($allowSortSetting) : ?> | |
<div class="col-sm-<?= $col ?>"> | |
<?= $form->field($model, 'sortId')->widget( | |
Select2::class, | |
[ | |
'data' => $model->sortList, | |
'options' => [ | |
'placeholder' => Yii::t('kvdynagrid', 'Select a sort...'), | |
'id' => "sortId-{$dynagridId}", | |
], | |
'pluginOptions' => ['allowClear' => true], | |
] | |
)->hint(Yii::t('kvdynagrid', 'Set default grid sort criteria')) ?> | |
</div> | |
<?php | |
endif; ?> | |
</div> | |
<?php | |
endif; ?> | |
<div class="dynagrid-column-label"> | |
<?= Yii::t('kvdynagrid', 'Configure Order and Display of Grid Columns') ?> | |
</div> | |
<div class="row"> | |
<div class="col-sm-5"> | |
<?= Sortable::widget($options1); ?> | |
</div> | |
<div class="col-sm-2 text-center"> | |
<div class="dynagrid-sortable-separator"><?= $iconSortableSeparator ?></div> | |
</div> | |
<div class="col-sm-5"> | |
<?= Sortable::widget($options2); ?> | |
</div> | |
</div> | |
<?= $allowThemeSetting ? '' : Html::activeHiddenInput($model, 'theme', ['id' => "theme-{$dynagridId}"]) ?> | |
<?= Html::hiddenInput('deleteFlag', 0) ?> | |
<?= Html::hiddenInput($model->id, 1) ?> | |
<?= Html::hiddenInput('visibleKeys') ?> | |
<?php | |
ActiveForm::end(); ?> | |
</div> <!-- .dynagrid-config-form --> | |
<?php | |
$modalClass::end(); ?> |