Author: Antonio Ramirez (amigo.cobos@gmail.com)
Inheritance: extends yii\web\AssetBundle
 /**
  * Registers required script for the plugin to work as DatePicker
  */
 public function registerClientScript()
 {
     $js = [];
     $view = $this->getView();
     // @codeCoverageIgnoreStart
     if ($this->language !== null) {
         $this->clientOptions['language'] = $this->language;
         DatePickerLanguageAsset::register($view)->js[] = 'bootstrap-datepicker.' . $this->language . '.min.js';
     } else {
         DatePickerAsset::register($view);
     }
     // @codeCoverageIgnoreEnd
     $id = $this->options['id'];
     $selector = ";jQuery('#{$id}')";
     if ($this->addon || $this->inline) {
         $selector .= ".parent()";
     }
     $options = !empty($this->clientOptions) ? Json::encode($this->clientOptions) : '';
     if ($this->inline) {
         $this->clientEvents['changeDate'] = "function (e){ jQuery('#{$id}').val(e.format());}";
     }
     $js[] = "{$selector}.datepicker({$options});";
     if (!empty($this->clientEvents)) {
         foreach ($this->clientEvents as $event => $handler) {
             $js[] = "{$selector}.on('{$event}', {$handler});";
         }
     }
     $view->registerJs(implode("\n", $js));
 }
示例#2
0
 /**
  * Registers required script for the plugin to work as DateRangePicker
  */
 public function registerClientScript()
 {
     $js = [];
     $view = $this->getView();
     // @codeCoverageIgnoreStart
     if ($this->language !== null) {
         $this->clientOptions['language'] = $this->language;
         DatePickerLanguageAsset::register($view)->js[] = 'bootstrap-datepicker.' . $this->language . '.min.js';
     } else {
         DateRangePickerAsset::register($view);
     }
     // @codeCoverageIgnoreEnd
     $id = $this->options['id'];
     $selector = ";jQuery('#{$id}').parent()";
     if ($this->form && $this->hasModel()) {
         // @codeCoverageIgnoreStart
         $selector .= '.parent()';
         $class = "field-" . Html::getInputId($this->model, $this->attribute);
         $js[] = "{$selector}.closest('.{$class}').removeClass('{$class}');";
         // @codeCoverageIgnoreEnd
     }
     $options = !empty($this->clientOptions) ? Json::encode($this->clientOptions) : '';
     $js[] = "{$selector}.datepicker({$options});";
     // @codeCoverageIgnoreStart
     if (!empty($this->clientEvents)) {
         foreach ($this->clientEvents as $event => $handler) {
             $js[] = "{$selector}.on('{$event}', {$handler});";
         }
     }
     // @codeCoverageIgnoreEnd
     $view->registerJs(implode("\n", $js));
 }