Ejemplo n.º 1
0
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $searchModel app\models\UsersSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = Yii::t('app', 'Users');
?>
<div class="user-index">
    <br>
    <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['class' => 'yii\\grid\\SerialColumn'], ['attribute' => 'email', 'format' => 'raw', 'value' => function ($data) {
    return Html::a($data->email, Url::to(['update', 'id' => $data->id]));
}], ['class' => \dosamigos\grid\EditableColumn::className(), 'filter' => Users::$statuses, 'format' => 'raw', 'attribute' => 'status', 'url' => ['ajax-update'], 'type' => 'select', 'display' => 'colors', 'value' => function ($data) {
    return Users::getStatus($data->status);
}, 'editableOptions' => function ($model) {
    return ['source' => Users::$statuses, 'value' => $model->status];
}], ['class' => \dosamigos\grid\EditableColumn::className(), 'filter' => Users::roles(), 'format' => 'raw', 'attribute' => 'role', 'url' => ['ajax-update'], 'value' => function ($data) {
    return Users::getRole($data->role);
}, 'type' => 'select', 'editableOptions' => function ($model) {
    return ['source' => Yii::$app->user->identity->getEditableRoles($model->id), 'sourceCache' => false];
}], ['class' => 'yii\\grid\\ActionColumn']]]);
?>

</div>
<script>
    function colors(value, sourceData) {
        var selected = $.grep(sourceData, function (o) {
                return value == o.value;
            }),
            colors = <?php 
echo json_encode(Users::$status_colors);
?>