Since: 1.0
Author: Kartik Visweswaran (kartikv2@gmail.com)
Inheritance: extends kartik\base\AssetBundle
Beispiel #1
0
 /**
  * Registers client assets needed for Export Menu widget
  *
  * @return void
  */
 protected function registerAssets()
 {
     $view = $this->getView();
     ExportMenuAsset::register($view);
     $this->messages += ['allowPopups' => Yii::t('kvexport', 'Disable any popup blockers in your browser to ensure proper download.'), 'confirmDownload' => Yii::t('kvexport', 'Ok to proceed?'), 'downloadProgress' => Yii::t('kvexport', 'Generating the export file. Please wait...'), 'downloadComplete' => Yii::t('kvexport', 'Request submitted! You may safely close this dialog after saving your downloaded file.')];
     $formId = $this->exportFormOptions['id'];
     $options = Json::encode(['formId' => $formId, 'messages' => $this->messages]);
     $menu = 'kvexpmenu_' . hash('crc32', $options);
     $view->registerJs("var {$menu} = {$options};\n", View::POS_HEAD);
     $script = "";
     foreach ($this->exportConfig as $format => $setting) {
         if (empty($setting) || $setting === false) {
             continue;
         }
         $id = $this->options['id'] . '-' . strtolower($format);
         $options = ['settings' => new JsExpression($menu), 'alertMsg' => $setting['alertMsg'], 'target' => $this->target, 'showConfirmAlert' => $this->showConfirmAlert];
         if ($this->_columnSelectorEnabled) {
             $options['columnSelectorId'] = $this->columnSelectorOptions['id'];
         }
         $options = Json::encode($options);
         $script .= "jQuery('#{$id}').exportdata({$options});\n";
     }
     if ($this->_columnSelectorEnabled) {
         $id = $this->columnSelectorMenuOptions['id'];
         ExportColumnAsset::register($view);
         $script .= "jQuery('#{$id}').exportcolumns({});\n";
     }
     if (!empty($script) && isset($this->pjaxContainerId)) {
         $script .= "jQuery('#{$this->pjaxContainerId}').on('pjax:complete', function() {\n                {$script}\n            });\n";
     }
     $view->registerJs($script);
 }