index.php 2.59 KB
<?php
    
    use artbox\order\models\Order;
    use yii\helpers\Html;
    use yii\grid\GridView;
    use yiister\gentelella\widgets\Panel;
    
    /**
     * @var \yii\web\View                    $this
     * @var \artbox\order\models\OrderSearch $searchModel
     * @var \yii\data\ActiveDataProvider     $dataProvider
     * @var array                            $labels
     */
    
    $this->title = Yii::t('order', 'Orders');
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>
<div class="order-index">
    
    <?php
        $xPanel = Panel::begin(
            [
                'header' => $this->title,
            ]
        );
    ?>
  <p>
      <?= Html::a(Yii::t('order', 'Create Order'), [ 'create' ], [ 'class' => 'btn btn-success' ]) ?>
  </p>
    <?= GridView::widget(
        [
            'dataProvider' => $dataProvider,
            'filterModel'  => $searchModel,
            'columns'      => [
                [ 'class' => 'yii\grid\SerialColumn' ],
    
                'id',
                'user_id',
                'name',
                'phone',
                'email:email',
                [
                    'attribute' => 'label_id',
                    'value'     => 'label.lang.title',
                    'filter'    => $labels,
                ],
                [
                    'attribute' => 'created_at',
                    'value'     => function ($model) {
                        /**
                         * @var Order $model
                         */
                        if (empty($model->created_at)) {
                            return \Yii::$app->formatter->asText('');
                        } else {
                            return date('d M, Y H:i:s', $model->created_at);
                        }
                    },
                ],
                [
                    'attribute' => 'count',
                    'value'     => function ($model) {
                        /**
                         * @var \artbox\order\models\Order $model
                         */
                        return count($model->orderProducts);
                    },
                ],
    
                [ 'class'    => 'yii\grid\ActionColumn',
                  'template' => '{view} {update} {delete} {print}',
                  'buttons'  => [
                      'print' => function ($url) {
                    return Html::a(
                    '<span class="glyphicon glyphicon-print"></span>',
                    $url);
                },
                  ]
                ],
            ],
        ]
    ); ?>
    <?php
        $xPanel::end();
    ?>
</div>