Esempio n. 1
0
FIXME quickSearch is disabled in relations because it doesn't work. Quick search input should have unique id
     (with relation name) and this should be properly parsed when preparing the dataProvider to add filters.
   <div class="col-md-2">{quickSearch}</div>
*/
$layout = <<<HTML
<div class="row">
    <div class="col-md-12">{buttons}</div>
</div>
{items}
<div class="row">
    <div class="col-md-4">{pager}</div>
    <div class="col-md-4 summary">{summary}</div>
    <div class="col-md-4">{lengthPicker}</div>
</div>
HTML;
if (!isset($relation['pjax']) || $relation['pjax']) {
    $pjax = Pjax::begin(['id' => $relationName . 'Pjax', 'linkSelector' => false]);
    $fieldId = \yii\helpers\Html::getInputId($model, $relationName);
    $script = <<<JavaScript
\$('#{$relationName}Pjax').data('selectionFields', {'add': '#{$fieldId}-add', 'remove': '#{$fieldId}-remove'});
\$(document).pjax('#{$relationName}Pjax a', '#{$relationName}Pjax');
\$(document).on('pjax:beforeSend', '#{$relationName}Pjax', function(event, xhr, options) {
  var container = \$(event.target);
  xhr.setRequestHeader('X-Selection-add', \$(container.data('selectionFields').add).val());
  xhr.setRequestHeader('X-Selection-remove', \$(container.data('selectionFields').remove).val());
});
JavaScript;
    $this->registerJs($script);
}
echo GridView::widget(['id' => $relationName . 'Grid', 'dataProvider' => $relation['dataProvider'], 'filterSelector' => "#{$relationName}Grid-quickSearch", 'columns' => $relation['columns'], 'layout' => isset($relation['layout']) ? $relation['layout'] : $layout, 'buttons' => isset($relation['buttons']) ? $relation['buttons'] : []]);
$pjax !== null && Pjax::end();
Esempio n. 2
0
    <div class="col-md-4 summary">{summary}</div>
    <div class="col-md-4">{lengthPicker}</div>
</div>
HTML;
if (!isset($showTitle) || $showTitle) {
    echo '<h1><span>' . Html::encode($this->title) . '</span></h1>';
}
echo netis\crud\web\Alerts::widget();
if ($searchModes & IndexAction::SEARCH_ADVANCED_FORM) {
    echo $this->render('_search', ['model' => $searchModel, 'fields' => $searchFields]);
} elseif ($searchModes & IndexAction::SEARCH_COLUMN_HEADERS) {
    FormBuilder::registerSelect($this);
    echo FormBuilder::registerRelations($this);
}
Pjax::begin(['id' => 'indexPjax']);
echo GridView::widget(array_merge(['id' => $gridId, 'dataProvider' => $dataProvider, 'columns' => $controller->action->addColumnFilters($columns, $searchFields), 'layout' => $layout], $gridOptions));
Pjax::end();
if ($searchModes & IndexAction::SEARCH_COLUMN_HEADERS) {
    //@todo implement filtering on keyup after timeout.
    //@todo move this to separate js file and make library from it.
    $script = <<<JavaScript
var enterPressed = false;
\$(document)
    .off('change.yiiGridView keydown.yiiGridView', '#{$gridId}-filters input, #{$gridId}-filters select')
    .on('change.yiiGridView keydown.yiiGridView', '#{$gridId}-filters input.form-control', function (event) {
        if (event.type === 'keydown') {
            if (event.keyCode !== 13) {
                return; // only react to enter key
            } else {
                enterPressed = true;
            }
Esempio n. 3
0
<?php

use netis\crud\widgets\GridView;
use yii\widgets\Pjax;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
/* @var $columns array */
$layout = <<<HTML
{quickSearch}
{items}
<div class="row">
    <div class="col-md-6">{pager}</div>
    <div class="col-md-6 summary">{summary}</div>
</div>
HTML;
?>

<?php 
Pjax::begin(['timeout' => 6000, 'enablePushState' => false]);
echo GridView::widget(['id' => 'relationGrid', 'dataProvider' => $dataProvider, 'filterSelector' => '#relationGrid-quickSearch', 'columns' => $columns, 'layout' => $layout, 'options' => ['class' => 'grid-view', 'style' => 'overflow: auto;']]);
Pjax::end();