Editable::registerAssets PHP Method

registerAssets() public method

public registerAssets ( )
    public function registerAssets()
    {
        $am = Yii::app()->getAssetManager();
        $cs = Yii::app()->getClientScript();
        $form = yii::app()->editable->form;
        $mode = $this->mode ? $this->mode : yii::app()->editable->defaults['mode'];
        // YII bootstrap
        if ($form === EditableConfig::FORM_YII_BOOTSTRAP) {
            $assetsUrl = $am->publish(Yii::getPathOfAlias('editable.assets.bootstrap-editable'));
            $js = 'bootstrap-editable.js';
            $css = 'bootstrap-editable.css';
            // bootstrap
        } elseif ($form === EditableConfig::FORM_BOOTSTRAP) {
            if ($bootstrap = yii::app()->getComponent('bootstrap')) {
                $bootstrap->registerCoreCss();
                $bootstrap->registerCoreScripts();
            } else {
                throw new CException('You need to setup Yii-bootstrap extension first.');
            }
            $assetsUrl = $am->publish(Yii::getPathOfAlias('editable.assets.bootstrap-editable'));
            $js = 'bootstrap-editable.js';
            $css = 'bootstrap-editable.css';
            // jqueryui
        } elseif ($form === EditableConfig::FORM_JQUERYUI) {
            if ($mode === EditableConfig::POPUP && Yii::getVersion() < '1.1.13') {
                throw new CException('jQuery UI editable popup supported from Yii 1.1.13+');
            }
            //register jquery ui
            $this->registerJQueryUI();
            $assetsUrl = $am->publish(Yii::getPathOfAlias('editable.assets.jqueryui-editable'));
            $js = 'jqueryui-editable.js';
            $css = 'jqueryui-editable.css';
            // plain jQuery
        } else {
            $assetsUrl = $am->publish(Yii::getPathOfAlias('editable.assets.jquery-editable'));
            $js = 'jquery-editable-poshytip.js';
            $css = 'jquery-editable.css';
            //publish & register poshytip for popup version
            if ($mode === EditableConfig::POPUP) {
                $poshytipUrl = $am->publish(Yii::getPathOfAlias('editable.assets.poshytip'));
                $cs->registerScriptFile($poshytipUrl . '/jquery.poshytip.js');
                $cs->registerCssFile($poshytipUrl . '/tip-yellowsimple/tip-yellowsimple.css');
            }
            //register jquery ui for datepicker
            if ($this->type == 'date' || $this->type == 'dateui') {
                $this->registerJQueryUI();
            }
        }
        //register assets
        $cs->registerCssFile($assetsUrl . '/css/' . $css);
        $cs->registerScriptFile($assetsUrl . '/js/' . $js, CClientScript::POS_END);
        //include moment.js for combodate
        if ($this->type == 'combodate') {
            $momentUrl = $am->publish(Yii::getPathOfAlias('editable.assets.moment'));
            $cs->registerScriptFile($momentUrl . '/moment.min.js');
        }
        //include select2 lib for select2 type
        if ($this->type == 'select2') {
            $select2Url = $am->publish(Yii::getPathOfAlias('editable.assets.select2'));
            $cs->registerScriptFile($select2Url . '/select2.min.js');
            $cs->registerCssFile($select2Url . '/select2.css');
        }
        //include bootstrap-datetimepicker
        if ($this->type == 'datetime') {
            $url = $am->publish(Yii::getPathOfAlias('editable.assets.bootstrap-datetimepicker'));
            $cs->registerScriptFile($url . '/js/bootstrap-datetimepicker.js');
            $cs->registerCssFile($url . '/css/datetimepicker.css');
        }
        //TODO: include locale for datepicker
        //may be do it manually?
        /*
        if ($this->type == 'date' && $this->language && substr($this->language, 0, 2) != 'en') {
             //todo: check compare dp locale name with yii's
             $localesUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('ext.editable.assets.js.locales'));
             Yii::app()->clientScript->registerScriptFile($localesUrl . '/bootstrap-datepicker.'. str_replace('_', '-', $this->language).'.js', CClientScript::POS_END);
        }
        */
    }