projects.php 5.21 KB
<?php
    /**
     * @var ProjectSearch    $searchModel
     * @var ActiveDataProvider $dataProvider
     */
    use common\models\Project;
    use common\models\ProjectSearch;
    use yii\data\ActiveDataProvider;
    use yii\grid\ActionColumn;
    use yii\grid\GridView;
    use yii\helpers\Html;
    use yii\jui\DatePicker;
    use yii\widgets\ActiveField;

    $this->title = Yii::t('app', 'Projects');
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>
<div class="login-left-column-title"><?= $this->title ?></div>
<div class="admin-all-pages-add">
    <?= Html::a(Yii::t('app', 'add'), [ 'projects-create' ], [ 'class' => 'btn btn-success' ]) ?>
</div>
<div class="admin-table-portfolio">
    <?= GridView::widget([
        'options' => ['class'=>'style admin-all-pages-wr'],
        'dataProvider' => $dataProvider,
        'filterModel'  => $searchModel,
        'columns'      => [
            [
                'attribute' => 'project_id',
                'label'     => 'ID',
            ],
            'name',
            [
                'attribute' => 'date_add',
                'filter' => "<div class=\"input-group input-group-xs input-daterange\">
<span class='field-teamsearch-experience_from_from'>".
                    DatePicker::widget([
                        'model' => $searchModel,
                        'attribute' => 'date_add_from',
                        'language' => 'ru',
                        'dateFormat' => 'yyyy-MM-dd',
                        'clientOptions' => [
                            'changeYear' => true,
                            'changeMonth' => true,
                        ],
                    ]).
                    "</span>
<span class=\"input-group-addon kv-field-separator\">
<i class=\"glyphicon glyphicon-resize-horizontal\"></i>
</span>
<span class='field-teamsearch-experience_from_to'>".
                    DatePicker::widget([
                        'model' => $searchModel,
                        'attribute' => 'date_add_to',
                        'language' => 'ru',
                        'dateFormat' => 'yyyy-MM-dd',
                        'clientOptions' => [
                            'changeYear' => true,
                            'changeMonth' => true,
                        ],
                    ])
                    ."</span>
</div>",
                'format' => 'html',
            ],
            [
                'attribute' => 'budget',
                'filter' => Html::activeInput('text', $searchModel, 'budget_approx', ['class'=>'form-control']),
                'content' => function($model, $key, $index, $column) {
                    /**
                     * @var Project $model
                     */
                    if($model->contractual) {
                        return 'Договорной';
                    } elseif(empty($model->budget)) {
                        return 'Не задано';
                    } else {
                        return $model->budget;
                    }
                },
                'label' => $searchModel->getAttributeLabel('budget').' +/- 10%',
            ],
            [
                'attribute' => 'contractual',
                'filter' => Html::activeDropDownList($searchModel, 'contractual',[1 => 'Только договорные', 2 => 'Без договорных'], ['prompt' => 'Все', 'class'=>'form-control']),
                'value' => function($model) {
                    return \Yii::$app->formatter->asBoolean($model->contractual);
                }
            ],
            'city',
            [
                'attribute' => 'specializationString',
            ],
            'view_count',
            [
                'value' => function($model, $key, $index, $column) {
                    return count($model->comments);
                },
                'label' => 'Отклики',
            ],
            [
                'class'    => ActionColumn::className(),
                'buttons'  => [
                    'update' => function($url, $model, $key) {
                        return Html::a('<img src="/images/ico_pencil.png" alt="">', [
                            'projects-update',
                            'id' => $model->project_id,
                        ],[
                            'title'        => 'Редактировать',
                        ]);
                    },
                    'delete' => function($url, $model, $key) {
                        return Html::a('<img src="/images/delete-ico.png" alt="">', [
                            'projects-delete',
                            'id' => $model->project_id,
                        ], [
                            'title'        => Yii::t('app', 'delete'),
                            'aria-label'   => Yii::t('app', 'delete'),
                            'data-confirm' =>  Yii::t('app', 'delete_confirm'),
                            'data-method'  => 'post',
                            'data-pjax'    => '0',
                        ]);
                    },
                ],
                'template' => '{update} {delete}',
            ],
        ],
    ]); ?>
</div>