sync
[roojs1] / Roo / bootstrap / CheckBox.js
diff --git a/Roo/bootstrap/CheckBox.js b/Roo/bootstrap/CheckBox.js
deleted file mode 100644 (file)
index 9602dce..0000000
+++ /dev/null
@@ -1,728 +0,0 @@
-/*
- * - LGPL
- *
- * CheckBox
- * 
- */
-
-/**
- * @class Roo.bootstrap.CheckBox
- * @extends Roo.bootstrap.Input
- * Bootstrap CheckBox class
- * 
- * @cfg {String} valueOff The value that should go into the generated input element's value when unchecked.
- * @cfg {String} inputValue The value that should go into the generated input element's value when checked.
- * @cfg {String} boxLabel The text that appears beside the checkbox
- * @cfg {String} weight (primary|warning|info|danger|success) The text that appears beside the checkbox
- * @cfg {Boolean} checked initnal the element
- * @cfg {Boolean} inline inline the element (default false)
- * @cfg {String} groupId the checkbox group id // normal just use for checkbox
- * @cfg {String} tooltip label tooltip
- * 
- * @constructor
- * Create a new CheckBox
- * @param {Object} config The config object
- */
-
-Roo.bootstrap.CheckBox = function(config){
-    Roo.bootstrap.CheckBox.superclass.constructor.call(this, config);
-   
-    this.addEvents({
-        /**
-        * @event check
-        * Fires when the element is checked or unchecked.
-        * @param {Roo.bootstrap.CheckBox} this This input
-        * @param {Boolean} checked The new checked value
-        */
-       check : true,
-       /**
-        * @event click
-        * Fires when the element is click.
-        * @param {Roo.bootstrap.CheckBox} this This input
-        */
-       click : true
-    });
-    
-};
-
-Roo.extend(Roo.bootstrap.CheckBox, Roo.bootstrap.Input,  {
-  
-    inputType: 'checkbox',
-    inputValue: 1,
-    valueOff: 0,
-    boxLabel: false,
-    checked: false,
-    weight : false,
-    inline: false,
-    tooltip : '',
-    
-    // checkbox success does not make any sense really.. 
-    invalidClass : "",
-    validClass : "",
-    
-    
-    getAutoCreate : function()
-    {
-        var align = (!this.labelAlign) ? this.parentLabelAlign() : this.labelAlign;
-        
-        var id = Roo.id();
-        
-        var cfg = {};
-        
-        cfg.cls = 'form-group form-check ' + this.inputType; //input-group
-        
-        if(this.inline){
-            cfg.cls += ' ' + this.inputType + '-inline  form-check-inline';
-        }
-        
-        var input =  {
-            tag: 'input',
-            id : id,
-            type : this.inputType,
-            value : this.inputValue,
-            cls : 'roo-' + this.inputType, //'form-box',
-            placeholder : this.placeholder || ''
-            
-        };
-        
-        if(this.inputType != 'radio'){
-            var hidden =  {
-                tag: 'input',
-                type : 'hidden',
-                cls : 'roo-hidden-value',
-                value : this.checked ? this.inputValue : this.valueOff
-            };
-        }
-        
-            
-        if (this.weight) { // Validity check?
-            cfg.cls += " " + this.inputType + "-" + this.weight;
-        }
-        
-        if (this.disabled) {
-            input.disabled=true;
-        }
-        
-        if(this.checked){
-            input.checked = this.checked;
-        }
-        
-        if (this.name) {
-            
-            input.name = this.name;
-            
-            if(this.inputType != 'radio'){
-                hidden.name = this.name;
-                input.name = '_hidden_' + this.name;
-            }
-        }
-        
-        if (this.size) {
-            input.cls += ' input-' + this.size;
-        }
-        
-        var settings=this;
-        
-        ['xs','sm','md','lg'].map(function(size){
-            if (settings[size]) {
-                cfg.cls += ' col-' + size + '-' + settings[size];
-            }
-        });
-        
-        var inputblock = input;
-         
-        if (this.before || this.after) {
-            
-            inputblock = {
-                cls : 'input-group',
-                cn :  [] 
-            };
-            
-            if (this.before) {
-                inputblock.cn.push({
-                    tag :'span',
-                    cls : 'input-group-addon',
-                    html : this.before
-                });
-            }
-            
-            inputblock.cn.push(input);
-            
-            if(this.inputType != 'radio'){
-                inputblock.cn.push(hidden);
-            }
-            
-            if (this.after) {
-                inputblock.cn.push({
-                    tag :'span',
-                    cls : 'input-group-addon',
-                    html : this.after
-                });
-            }
-            
-        }
-        var boxLabelCfg = false;
-        
-        if(this.boxLabel){
-           
-            boxLabelCfg = {
-                tag: 'label',
-                //'for': id, // box label is handled by onclick - so no for...
-                cls: 'box-label',
-                html: this.boxLabel
-            };
-            if(this.tooltip){
-                boxLabelCfg.tooltip = this.tooltip;
-            }
-             
-        }
-        
-        
-        if (align ==='left' && this.fieldLabel.length) {
-//                Roo.log("left and has label");
-            cfg.cn = [
-                {
-                    tag: 'label',
-                    'for' :  id,
-                    cls : 'control-label',
-                    html : this.fieldLabel
-                },
-                {
-                    cls : "", 
-                    cn: [
-                        inputblock
-                    ]
-                }
-            ];
-            
-            if (boxLabelCfg) {
-                cfg.cn[1].cn.push(boxLabelCfg);
-            }
-            
-            if(this.labelWidth > 12){
-                cfg.cn[0].style = "width: " + this.labelWidth + 'px';
-            }
-            
-            if(this.labelWidth < 13 && this.labelmd == 0){
-                this.labelmd = this.labelWidth;
-            }
-            
-            if(this.labellg > 0){
-                cfg.cn[0].cls += ' col-lg-' + this.labellg;
-                cfg.cn[1].cls += ' col-lg-' + (12 - this.labellg);
-            }
-            
-            if(this.labelmd > 0){
-                cfg.cn[0].cls += ' col-md-' + this.labelmd;
-                cfg.cn[1].cls += ' col-md-' + (12 - this.labelmd);
-            }
-            
-            if(this.labelsm > 0){
-                cfg.cn[0].cls += ' col-sm-' + this.labelsm;
-                cfg.cn[1].cls += ' col-sm-' + (12 - this.labelsm);
-            }
-            
-            if(this.labelxs > 0){
-                cfg.cn[0].cls += ' col-xs-' + this.labelxs;
-                cfg.cn[1].cls += ' col-xs-' + (12 - this.labelxs);
-            }
-            
-        } else if ( this.fieldLabel.length) {
-//                Roo.log(" label");
-                cfg.cn = [
-                   
-                    {
-                        tag: this.boxLabel ? 'span' : 'label',
-                        'for': id,
-                        cls: 'control-label box-input-label',
-                        //cls : 'input-group-addon',
-                        html : this.fieldLabel
-                    },
-                    
-                    inputblock
-                    
-                ];
-                if (boxLabelCfg) {
-                    cfg.cn.push(boxLabelCfg);
-                }
-
-        } else {
-            
-//                Roo.log(" no label && no align");
-                cfg.cn = [  inputblock ] ;
-                if (boxLabelCfg) {
-                    cfg.cn.push(boxLabelCfg);
-                }
-
-                
-        }
-        
-       
-        
-        if(this.inputType != 'radio'){
-            cfg.cn.push(hidden);
-        }
-        
-        return cfg;
-        
-    },
-    
-    /**
-     * return the real input element.
-     */
-    inputEl: function ()
-    {
-        return this.el.select('input.roo-' + this.inputType,true).first();
-    },
-    hiddenEl: function ()
-    {
-        return this.el.select('input.roo-hidden-value',true).first();
-    },
-    
-    labelEl: function()
-    {
-        return this.el.select('label.control-label',true).first();
-    },
-    /* depricated... */
-    
-    label: function()
-    {
-        return this.labelEl();
-    },
-    
-    boxLabelEl: function()
-    {
-        return this.el.select('label.box-label',true).first();
-    },
-    
-    initEvents : function()
-    {
-//        Roo.bootstrap.CheckBox.superclass.initEvents.call(this);
-        
-        this.inputEl().on('click', this.onClick,  this);
-        
-        if (this.boxLabel) { 
-            this.el.select('label.box-label',true).first().on('click', this.onClick,  this);
-        }
-        
-        this.startValue = this.getValue();
-        
-        if(this.groupId){
-            Roo.bootstrap.CheckBox.register(this);
-        }
-    },
-    
-    onClick : function(e)
-    {   
-        if(this.fireEvent('click', this, e) !== false){
-            this.setChecked(!this.checked);
-        }
-        
-    },
-    
-    setChecked : function(state,suppressEvent)
-    {
-        this.startValue = this.getValue();
-
-        if(this.inputType == 'radio'){
-            
-            Roo.each(this.el.up('form').select('input[name='+this.name+']', true).elements, function(e){
-                e.dom.checked = false;
-            });
-            
-            this.inputEl().dom.checked = true;
-            
-            this.inputEl().dom.value = this.inputValue;
-            
-            if(suppressEvent !== true){
-                this.fireEvent('check', this, true);
-            }
-            
-            this.validate();
-            
-            return;
-        }
-        
-        this.checked = state;
-        
-        this.inputEl().dom.checked = state;
-        
-        
-        this.hiddenEl().dom.value = state ? this.inputValue : this.valueOff;
-        
-        if(suppressEvent !== true){
-            this.fireEvent('check', this, state);
-        }
-        
-        this.validate();
-    },
-    
-    getValue : function()
-    {
-        if(this.inputType == 'radio'){
-            return this.getGroupValue();
-        }
-        
-        return this.hiddenEl().dom.value;
-        
-    },
-    
-    getGroupValue : function()
-    {
-        if(typeof(this.el.up('form').child('input[name='+this.name+']:checked', true)) == 'undefined'){
-            return '';
-        }
-        
-        return this.el.up('form').child('input[name='+this.name+']:checked', true).value;
-    },
-    
-    setValue : function(v,suppressEvent)
-    {
-        if(this.inputType == 'radio'){
-            this.setGroupValue(v, suppressEvent);
-            return;
-        }
-        
-        this.setChecked(((typeof(v) == 'undefined') ? this.checked : (String(v) === String(this.inputValue))), suppressEvent);
-        
-        this.validate();
-    },
-    
-    setGroupValue : function(v, suppressEvent)
-    {
-        this.startValue = this.getValue();
-        
-        Roo.each(this.el.up('form').select('input[name='+this.name+']', true).elements, function(e){
-            e.dom.checked = false;
-            
-            if(e.dom.value == v){
-                e.dom.checked = true;
-            }
-        });
-        
-        if(suppressEvent !== true){
-            this.fireEvent('check', this, true);
-        }
-
-        this.validate();
-        
-        return;
-    },
-    
-    validate : function()
-    {
-        if(this.getVisibilityEl().hasClass('hidden')){
-            return true;
-        }
-        
-        if(
-                this.disabled || 
-                (this.inputType == 'radio' && this.validateRadio()) ||
-                (this.inputType == 'checkbox' && this.validateCheckbox())
-        ){
-            this.markValid();
-            return true;
-        }
-        
-        this.markInvalid();
-        return false;
-    },
-    
-    validateRadio : function()
-    {
-        if(this.getVisibilityEl().hasClass('hidden')){
-            return true;
-        }
-        
-        if(this.allowBlank){
-            return true;
-        }
-        
-        var valid = false;
-        
-        Roo.each(this.el.up('form').select('input[name='+this.name+']', true).elements, function(e){
-            if(!e.dom.checked){
-                return;
-            }
-            
-            valid = true;
-            
-            return false;
-        });
-        
-        return valid;
-    },
-    
-    validateCheckbox : function()
-    {
-        if(!this.groupId){
-            return (this.getValue() == this.inputValue || this.allowBlank) ? true : false;
-            //return (this.getValue() == this.inputValue) ? true : false;
-        }
-        
-        var group = Roo.bootstrap.CheckBox.get(this.groupId);
-        
-        if(!group){
-            return false;
-        }
-        
-        var r = false;
-        
-        for(var i in group){
-            if(group[i].el.isVisible(true)){
-                r = false;
-                break;
-            }
-            
-            r = true;
-        }
-        
-        for(var i in group){
-            if(r){
-                break;
-            }
-            
-            r = (group[i].getValue() == group[i].inputValue) ? true : false;
-        }
-        
-        return r;
-    },
-    
-    /**
-     * Mark this field as valid
-     */
-    markValid : function()
-    {
-        var _this = this;
-        
-        this.fireEvent('valid', this);
-        
-        var label = Roo.bootstrap.FieldLabel.get(this.name + '-group');
-        
-        if(this.groupId){
-            label = Roo.bootstrap.FieldLabel.get(this.groupId + '-group');
-        }
-        
-        if(label){
-            label.markValid();
-        }
-
-        if(this.inputType == 'radio'){
-            Roo.each(this.el.up('form').select('input[name='+this.name+']', true).elements, function(e){
-                var fg = e.findParent('.form-group', false, true);
-                if (Roo.bootstrap.version == 3) {
-                    fg.removeClass([_this.invalidClass, _this.validClass]);
-                    fg.addClass(_this.validClass);
-                } else {
-                    fg.removeClass(['is-valid', 'is-invalid']);
-                    fg.addClass('is-valid');
-                }
-            });
-            
-            return;
-        }
-
-        if(!this.groupId){
-            var fg = this.el.findParent('.form-group', false, true);
-            if (Roo.bootstrap.version == 3) {
-                fg.removeClass([this.invalidClass, this.validClass]);
-                fg.addClass(this.validClass);
-            } else {
-                fg.removeClass(['is-valid', 'is-invalid']);
-                fg.addClass('is-valid');
-            }
-            return;
-        }
-        
-        var group = Roo.bootstrap.CheckBox.get(this.groupId);
-        
-        if(!group){
-            return;
-        }
-        
-        for(var i in group){
-            var fg = group[i].el.findParent('.form-group', false, true);
-            if (Roo.bootstrap.version == 3) {
-                fg.removeClass([this.invalidClass, this.validClass]);
-                fg.addClass(this.validClass);
-            } else {
-                fg.removeClass(['is-valid', 'is-invalid']);
-                fg.addClass('is-valid');
-            }
-        }
-    },
-    
-     /**
-     * Mark this field as invalid
-     * @param {String} msg The validation message
-     */
-    markInvalid : function(msg)
-    {
-        if(this.allowBlank){
-            return;
-        }
-        
-        var _this = this;
-        
-        this.fireEvent('invalid', this, msg);
-        
-        var label = Roo.bootstrap.FieldLabel.get(this.name + '-group');
-        
-        if(this.groupId){
-            label = Roo.bootstrap.FieldLabel.get(this.groupId + '-group');
-        }
-        
-        if(label){
-            label.markInvalid();
-        }
-            
-        if(this.inputType == 'radio'){
-            
-            Roo.each(this.el.up('form').select('input[name='+this.name+']', true).elements, function(e){
-                var fg = e.findParent('.form-group', false, true);
-                if (Roo.bootstrap.version == 3) {
-                    fg.removeClass([_this.invalidClass, _this.validClass]);
-                    fg.addClass(_this.invalidClass);
-                } else {
-                    fg.removeClass(['is-invalid', 'is-valid']);
-                    fg.addClass('is-invalid');
-                }
-            });
-            
-            return;
-        }
-        
-        if(!this.groupId){
-            var fg = this.el.findParent('.form-group', false, true);
-            if (Roo.bootstrap.version == 3) {
-                fg.removeClass([_this.invalidClass, _this.validClass]);
-                fg.addClass(_this.invalidClass);
-            } else {
-                fg.removeClass(['is-invalid', 'is-valid']);
-                fg.addClass('is-invalid');
-            }
-            return;
-        }
-        
-        var group = Roo.bootstrap.CheckBox.get(this.groupId);
-        
-        if(!group){
-            return;
-        }
-        
-        for(var i in group){
-            var fg = group[i].el.findParent('.form-group', false, true);
-            if (Roo.bootstrap.version == 3) {
-                fg.removeClass([_this.invalidClass, _this.validClass]);
-                fg.addClass(_this.invalidClass);
-            } else {
-                fg.removeClass(['is-invalid', 'is-valid']);
-                fg.addClass('is-invalid');
-            }
-        }
-        
-    },
-    
-    clearInvalid : function()
-    {
-        Roo.bootstrap.Input.prototype.clearInvalid.call(this);
-        
-        // this.el.findParent('.form-group', false, true).removeClass([this.invalidClass, this.validClass]);
-        
-        var label = Roo.bootstrap.FieldLabel.get(this.name + '-group');
-        
-        if (label && label.iconEl) {
-            label.iconEl.removeClass([ label.validClass, label.invalidClass ]);
-            label.iconEl.removeClass(['is-invalid', 'is-valid']);
-        }
-    },
-    
-    disable : function()
-    {
-        if(this.inputType != 'radio'){
-            Roo.bootstrap.CheckBox.superclass.disable.call(this);
-            return;
-        }
-        
-        var _this = this;
-        
-        if(this.rendered){
-            Roo.each(this.el.up('form').select('input[name='+this.name+']', true).elements, function(e){
-                _this.getActionEl().addClass(this.disabledClass);
-                e.dom.disabled = true;
-            });
-        }
-        
-        this.disabled = true;
-        this.fireEvent("disable", this);
-        return this;
-    },
-
-    enable : function()
-    {
-        if(this.inputType != 'radio'){
-            Roo.bootstrap.CheckBox.superclass.enable.call(this);
-            return;
-        }
-        
-        var _this = this;
-        
-        if(this.rendered){
-            Roo.each(this.el.up('form').select('input[name='+this.name+']', true).elements, function(e){
-                _this.getActionEl().removeClass(this.disabledClass);
-                e.dom.disabled = false;
-            });
-        }
-        
-        this.disabled = false;
-        this.fireEvent("enable", this);
-        return this;
-    },
-    
-    setBoxLabel : function(v)
-    {
-        this.boxLabel = v;
-        
-        if(this.rendered){
-            this.el.select('label.box-label',true).first().dom.innerHTML = (v === null || v === undefined ? '' : v);
-        }
-    }
-
-});
-
-Roo.apply(Roo.bootstrap.CheckBox, {
-    
-    groups: {},
-    
-     /**
-    * register a CheckBox Group
-    * @param {Roo.bootstrap.CheckBox} the CheckBox to add
-    */
-    register : function(checkbox)
-    {
-        if(typeof(this.groups[checkbox.groupId]) == 'undefined'){
-            this.groups[checkbox.groupId] = {};
-        }
-        
-        if(this.groups[checkbox.groupId].hasOwnProperty(checkbox.name)){
-            return;
-        }
-        
-        this.groups[checkbox.groupId][checkbox.name] = checkbox;
-       
-    },
-    /**
-    * fetch a CheckBox Group based on the group ID
-    * @param {string} the group ID
-    * @returns {Roo.bootstrap.CheckBox} the CheckBox group
-    */
-    get: function(groupId) {
-        if (typeof(this.groups[groupId]) == 'undefined') {
-            return false;
-        }
-        
-        return this.groups[groupId] ;
-    }
-    
-    
-});