<?php 
echo Html::a('<i class="fa fa-eye"></i>', ['view'], ['class' => 'btn btn-default btn-sm', 'title' => Module::t('timetable-admin', 'View')]);
?>
                <?php 
echo Html::a('<i class="fa fa-leanpub"></i>', ['publish'], ['class' => 'btn btn-warning btn-sm', 'title' => Module::t('timetable-admin', 'Publish')]);
?>
                <?php 
echo Html::a('<i class="fa fa-plus"></i>', ['create'], ['class' => 'btn btn-primary btn-sm', 'title' => Module::t('timetable-admin', 'Create')]);
?>
                <?php 
echo Html::a('<i class="fa fa-ban"></i>', ['cancel-lessons'], ['class' => 'btn btn-danger btn-sm', 'title' => Module::t('timetable-admin', 'Cancel lessons')]);
?>
                <?php 
echo Html::a('<i class="fa fa-trash"></i>', ['batch-delete'], ['class' => 'btn btn-danger btn-sm', 'id' => 'batch-delete', 'title' => Module::t('timetable-admin', 'Delete selected')]);
?>
            </div>
        </div>
        <div class="box-body">
            <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'id' => $gridId, 'filterModel' => $searchModel, 'export' => false, 'columns' => [['class' => CheckboxColumn::classname()], ['attribute' => 'week_day', 'pageSummary' => true, 'class' => 'kartik\\grid\\EditableColumn', 'editableOptions' => ['inputType' => 'dropDownList', 'type' => 'post', 'formOptions' => ['action' => Url::toRoute('edit'), 'id' => 'timetable-form'], 'data' => Timetable::getWeekArray()], 'value' => function ($model) {
    return $model->weekArray[$model->week_day];
}, 'filter' => Html::activeDropDownList($searchModel, 'week_day', Timetable::getWeekArray(), ['class' => 'form-control', 'prompt' => ''])], ['attribute' => 'start', 'filter' => false, 'class' => 'kartik\\grid\\EditableColumn', 'editableOptions' => ['inputType' => 'textInput', 'type' => 'post', 'formOptions' => ['action' => Url::toRoute('edit'), 'id' => 'timetable-form']]], ['attribute' => 'end', 'filter' => false, 'class' => 'kartik\\grid\\EditableColumn', 'editableOptions' => ['inputType' => 'textInput', 'type' => 'post', 'formOptions' => ['action' => Url::toRoute('edit'), 'id' => 'timetable-form']]], ['attribute' => 'group_id', 'class' => 'kartik\\grid\\EditableColumn', 'format' => 'html', 'editableOptions' => ['inputType' => 'dropDownList', 'data' => Group::getGroupArray(), 'type' => 'post', 'formOptions' => ['action' => Url::toRoute('edit'), 'id' => 'timetable-form']], 'value' => function ($model) {
    return Group::getGroupArray()[$model->group_id];
}, 'filter' => Html::activeDropDownList($searchModel, 'group_id', Group::getGroupArray(), ['class' => 'form-control', 'prompt' => ''])], ['class' => 'yii\\grid\\ActionColumn', 'buttons' => ['clone' => function ($url) {
    return Html::a('<i class="fa fa-files-o"></i>', $url, ['title' => Module::t('timetable-admin', 'Clone row'), 'class' => 'btn btn-default btn-xs']);
}], 'template' => '{clone} {update} {delete}', 'buttonOptions' => ['class' => 'btn btn-default btn-xs'], 'headerOptions' => ['style' => 'width:100px;'], 'header' => Module::t('timetable-admin', 'Actions')]]]);
?>
        </div>
    </div>
</div>
 /**
  * Updates an existing Timetable model.
  * If update is successful, the browser will be redirected to the 'view' page
  * @return mixed
  */
 public function actionEdit()
 {
     if (Yii::$app->request->post('hasEditable') && Yii::$app->request->post('editableKey')) {
         $model = $this->findModel(Yii::$app->request->post('editableKey'));
         $model->setScenario('timetable-edit');
         $postEditableIndex = Yii::$app->request->post('editableIndex');
         $postTimetable = Yii::$app->request->post('Timetable')[$postEditableIndex];
         $output = '';
         $message = '';
         if (is_array($postTimetable)) {
             foreach ($postTimetable as $key => $value) {
                 if (isset($model->{$key})) {
                     $model->{$key} = $output = $value;
                     if ('week_day' === (string) $key) {
                         $output = Timetable::getWeekArray()[$value];
                     }
                     if ('group_id' === (string) $key) {
                         $output = Group::getGroupArray()[$value];
                     }
                     if (!$model->validate() || !$model->save(false)) {
                         echo Json::encode(['output' => $output, 'message' => $model->errors[$key]]);
                     } else {
                         echo Json::encode(['output' => $output, 'message' => '']);
                     }
                     break;
                 }
             }
         }
     }
 }