index.php 2.51 KB
<?php
    
    use artbox\core\models\Feedback;
    use yii\data\ActiveDataProvider;
    use yii\helpers\Html;
    use yii\web\View;
    use yiister\gentelella\widgets\grid\GridView;
    use yiister\gentelella\widgets\Panel;
    
    /**
     * @var View               $this
     * @var ActiveDataProvider $dataProvider
     */
    
    $this->title = Yii::t('core', 'Feedbacks');
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>

<?php $panel = Panel::begin(
    [
        'header'  => $this->title,
        'options' => [
            'class' => 'x_panel feedback-index',
        ],
    ]
) ?>

<?= GridView::widget(
    [
        'dataProvider' => $dataProvider,
        'rowOptions'   => function (Feedback $model) {
            if ($model->status) {
                return [];
            } else {
                return [
                    'class' => 'success',
                ];
            }
        },
        'columns'      => [
            [ 'class' => 'yii\grid\SerialColumn' ],

            'name',
            'email',
            'phone',
            [
                'attribute' => 'created_at',
                'format'    => [
                    'datetime',
                    'php:d.m.Y H:i',
                ],
            ],
            [
                'class'    => 'yii\grid\ActionColumn',
                'buttons'  => [
                    'viewed' => function (string $url, Feedback $model) {
                        if ($model->status) {
                            return Html::tag(
                                'span',
                                '',
                                [
                                    'class' => 'glyphicon glyphicon-ok',
                                ]
                            );
                        } else {
                            return Html::a(
                                Html::tag(
                                    'span',
                                    '',
                                    [
                                        'class' => 'glyphicon glyphicon-flag',
                                    ]
                                ),
                                $url,
                                [
                                    'class' => 'viewed-toggle',
                                ]
                            );
                        }
                    },
                ],
                'template' => '{viewed} {view} {update} {delete}',
            ],
        ],
    ]
); ?>

<?php $panel::end(); ?>