protected function beginPjax()
{
if (!$this->pjax) {
return;
}
$view = $this->getView();
if (empty($this->pjaxSettings['options']['id'])) {
$this->pjaxSettings['options']['id'] = $this->options['id'] . '-pjax';
}
$container = 'jQuery("#' . $this->pjaxSettings['options']['id'] . '")';
$js = $container;
if (ArrayHelper::getValue($this->pjaxSettings, 'neverTimeout', true)) {
$js .= ".on('pjax:timeout', function(e){e.preventDefault()})";
}
$loadingCss = ArrayHelper::getValue($this->pjaxSettings, 'loadingCssClass', 'kv-grid-loading');
$postPjaxJs = "setTimeout({$this->_gridClientFunc}, 2500);";
if ($loadingCss !== false) {
$grid = 'jQuery("#' . $this->containerOptions['id'] . '")';
if ($loadingCss === true) {
$loadingCss = 'kv-grid-loading';
}
$js .= ".on('pjax:send', function(){{$grid}.addClass('{$loadingCss}')})";
$postPjaxJs .= "{$grid}.removeClass('{$loadingCss}');";
}
$postPjaxJs .= "\n" . $this->_toggleScript;
if (!empty($postPjaxJs)) {
$event = 'pjax:complete.' . hash('crc32', $postPjaxJs);
$js .= ".off('{$event}').on('{$event}', function(){{$postPjaxJs}})";
}
if ($js != $container) {
$view->registerJs("{$js};");
}
Pjax::begin($this->pjaxSettings['options']);
echo ArrayHelper::getValue($this->pjaxSettings, 'beforeGrid', '');
}