users.php 3.95 KB
<?php
    use backend\models\UserSearch;
    use common\models\User;
    use yii\bootstrap\BootstrapAsset;
    use yii\bootstrap\BootstrapPluginAsset;
    use yii\bootstrap\BootstrapThemeAsset;
    use yii\data\ActiveDataProvider;
    use yii\grid\ActionColumn;
    use yii\grid\GridView;
    use yii\helpers\ArrayHelper;
    use yii\helpers\Html;
    use yii\web\View;
    use yii\widgets\Pjax;

    /**
     * @var View               $this
     * @var ActiveDataProvider $dataProvider
     * @var UserSearch         $model
     */
?>
<?php
    BootstrapPluginAsset::register($this);
    $pjax = Pjax::begin([
        'enablePushState' => false,
        'id' => 'pjax-user_'.\Yii::$app->security->generateRandomString(3),
    ]);
    $js = "$('.user_search_modal_input').tooltip({placement: 'top', title: function() { return $(this).data('error'); }, trigger: 'manual'});
        $('.user_search_modal_input').tooltip('show');";
    $this->registerJs($js);
    echo GridView::widget([
        'id' => 'grid-user',
        'dataProvider' => $dataProvider,
        'filterModel'  => $model,
        'summary' => '<div class="title_addUsers">Найдено пользователей: {totalCount}</div>',
        'rowOptions' => [
            'class' => 'user_search_modal_row',
        ],
        'columns'      => [
            [
                'attribute' => 'id',
                'filter'    => Html::activeInput('number', $model, 'id', [
                    'class'      => 'user_search_modal_input user_search_modal_input_id',
                    'data-error' => $model->hasErrors('id') ? $model->getFirstError('id') : '',
                ]),
            ],
            [
                'attribute' => 'userInfo.image',
                'contentOptions' => ['class' => 'fix_add_user_img_'],
                'content'   => function($model, $key, $index, $column) {
                    /**
                     * @var User $model
                     */
                    if(!empty( $model->userInfo->image )) {
                        return Html::tag('div', Html::img($model->userInfo->image, [ 'width' => '100px' ]), [ 'class' => 'user_search_modal_item_image' ]);
                    } else {
                        return Html::tag('div', Html::img('/images/avatar-bg.png'), [ 'class' => 'user_search_modal_item_image' ]);
                    }
                },
            ],
            [
                'attribute' => 'firstname',
                'content' => function($model, $key, $index, $column) {
                    return Html::a($model->firstname, ['performer/common', 'performer_id' => $model->id], ['target' => '_blank', 'data-pjax' => 0]);
                },
                'filter' => Html::activeInput('text', $model, 'name_search'),
            ],
            [
                'attribute' => 'lastname',
                'filter' => Html::activeInput('text', $model, 'surname_search'),
            ],
            [
                'attribute' => 'specialization',
                'content' => function($model, $key, $index, $column) {
                    if(!empty($model->specializations)) {
                        return implode(', ', ArrayHelper::getColumn($model->specializations, 'specialization_name'));
                    } else {
                        return false;
                    }
                },
                'filterOptions' => [
                    'class' => 'user_search_modal_specialization',
                ],
                'label' => Yii::t('app', 'Специализация'),
            ],
            [
                'class' => ActionColumn::className(),
                'buttons' => [
                    'apply' => function($url, $model, $key) {
                        return Html::tag('span', '', ['class' => 'user_search_modal_tick']);
                    }
                ],
                'template' => '{apply}',
            ]
        ],
        'options'      => [
            'class' => 'grid-view user_search_modal_grid',
        ],
    ]);
    Pjax::end();
?>