+++ /dev/null
-/*
- * - LGPL
- *
- * RadioSet
- *
- *
- */
-
-/**
- * @class Roo.bootstrap.RadioSet
- * @extends Roo.bootstrap.Input
- * @children Roo.bootstrap.Radio
- * Bootstrap RadioSet class
- * @cfg {String} indicatorpos (left|right) default left
- * @cfg {Boolean} inline (true|false) inline the element (default true)
- * @cfg {String} weight (primary|warning|info|danger|success) The text that appears beside the radio
- * @constructor
- * Create a new RadioSet
- * @param {Object} config The config object
- */
-
-Roo.bootstrap.RadioSet = function(config){
-
- Roo.bootstrap.RadioSet.superclass.constructor.call(this, config);
-
- this.radioes = [];
-
- Roo.bootstrap.RadioSet.register(this);
-
- this.addEvents({
- /**
- * @event check
- * Fires when the element is checked or unchecked.
- * @param {Roo.bootstrap.RadioSet} this This radio
- * @param {Roo.bootstrap.Radio} item The checked item
- */
- check : true,
- /**
- * @event click
- * Fires when the element is click.
- * @param {Roo.bootstrap.RadioSet} this This radio set
- * @param {Roo.bootstrap.Radio} item The checked item
- * @param {Roo.EventObject} e The event object
- */
- click : true
- });
-
-};
-
-Roo.extend(Roo.bootstrap.RadioSet, Roo.bootstrap.Input, {
-
- radioes : false,
-
- inline : true,
-
- weight : '',
-
- indicatorpos : 'left',
-
- getAutoCreate : function()
- {
- var label = {
- tag : 'label',
- cls : 'roo-radio-set-label',
- cn : [
- {
- tag : 'span',
- html : this.fieldLabel
- }
- ]
- };
- if (Roo.bootstrap.version == 3) {
-
-
- if(this.indicatorpos == 'left'){
- label.cn.unshift({
- tag : 'i',
- cls : 'roo-required-indicator left-indicator text-danger fa fa-lg fa-star',
- tooltip : 'This field is required'
- });
- } else {
- label.cn.push({
- tag : 'i',
- cls : 'roo-required-indicator right-indicator text-danger fa fa-lg fa-star',
- tooltip : 'This field is required'
- });
- }
- }
- var items = {
- tag : 'div',
- cls : 'roo-radio-set-items'
- };
-
- var align = (!this.labelAlign) ? this.parentLabelAlign() : this.labelAlign;
-
- if (align === 'left' && this.fieldLabel.length) {
-
- items = {
- cls : "roo-radio-set-right",
- cn: [
- items
- ]
- };
-
- if(this.labelWidth > 12){
- label.style = "width: " + this.labelWidth + 'px';
- }
-
- if(this.labelWidth < 13 && this.labelmd == 0){
- this.labelmd = this.labelWidth;
- }
-
- if(this.labellg > 0){
- label.cls += ' col-lg-' + this.labellg;
- items.cls += ' col-lg-' + (12 - this.labellg);
- }
-
- if(this.labelmd > 0){
- label.cls += ' col-md-' + this.labelmd;
- items.cls += ' col-md-' + (12 - this.labelmd);
- }
-
- if(this.labelsm > 0){
- label.cls += ' col-sm-' + this.labelsm;
- items.cls += ' col-sm-' + (12 - this.labelsm);
- }
-
- if(this.labelxs > 0){
- label.cls += ' col-xs-' + this.labelxs;
- items.cls += ' col-xs-' + (12 - this.labelxs);
- }
- }
-
- var cfg = {
- tag : 'div',
- cls : 'roo-radio-set',
- cn : [
- {
- tag : 'input',
- cls : 'roo-radio-set-input',
- type : 'hidden',
- name : this.name,
- value : this.value ? this.value : ''
- },
- label,
- items
- ]
- };
-
- if(this.weight.length){
- cfg.cls += ' roo-radio-' + this.weight;
- }
-
- if(this.inline) {
- cfg.cls += ' roo-radio-set-inline';
- }
-
- var settings=this;
- ['xs','sm','md','lg'].map(function(size){
- if (settings[size]) {
- cfg.cls += ' col-' + size + '-' + settings[size];
- }
- });
-
- return cfg;
-
- },
-
- initEvents : function()
- {
- this.labelEl = this.el.select('.roo-radio-set-label', true).first();
- this.labelEl.setVisibilityMode(Roo.Element.DISPLAY);
-
- if(!this.fieldLabel.length){
- this.labelEl.hide();
- }
-
- this.itemsEl = this.el.select('.roo-radio-set-items', true).first();
- this.itemsEl.setVisibilityMode(Roo.Element.DISPLAY);
-
- this.indicator = this.indicatorEl();
-
- if(this.indicator){
- this.indicator.addClass('invisible');
- }
-
- this.originalValue = this.getValue();
-
- },
-
- inputEl: function ()
- {
- return this.el.select('.roo-radio-set-input', true).first();
- },
-
- getChildContainer : function()
- {
- return this.itemsEl;
- },
-
- register : function(item)
- {
- this.radioes.push(item);
-
- },
-
- validate : function()
- {
- if(this.getVisibilityEl().hasClass('hidden')){
- return true;
- }
-
- var valid = false;
-
- Roo.each(this.radioes, function(i){
- if(!i.checked){
- return;
- }
-
- valid = true;
- return false;
- });
-
- if(this.allowBlank) {
- return true;
- }
-
- if(this.disabled || valid){
- this.markValid();
- return true;
- }
-
- this.markInvalid();
- return false;
-
- },
-
- markValid : function()
- {
- if(this.labelEl.isVisible(true) && this.indicatorEl()){
- this.indicatorEl().removeClass('visible');
- this.indicatorEl().addClass('invisible');
- }
-
-
- if (Roo.bootstrap.version == 3) {
- this.el.removeClass([this.invalidClass, this.validClass]);
- this.el.addClass(this.validClass);
- } else {
- this.el.removeClass(['is-invalid','is-valid']);
- this.el.addClass(['is-valid']);
- }
- this.fireEvent('valid', this);
- },
-
- markInvalid : function(msg)
- {
- if(this.allowBlank || this.disabled){
- return;
- }
-
- if(this.labelEl.isVisible(true) && this.indicatorEl()){
- this.indicatorEl().removeClass('invisible');
- this.indicatorEl().addClass('visible');
- }
- if (Roo.bootstrap.version == 3) {
- this.el.removeClass([this.invalidClass, this.validClass]);
- this.el.addClass(this.invalidClass);
- } else {
- this.el.removeClass(['is-invalid','is-valid']);
- this.el.addClass(['is-invalid']);
- }
-
- this.fireEvent('invalid', this, msg);
-
- },
-
- setValue : function(v, suppressEvent)
- {
- if(this.value === v){
- return;
- }
-
- this.value = v;
-
- if(this.rendered){
- this.inputEl().dom.value = (v === null || v === undefined ? '' : v);
- }
-
- Roo.each(this.radioes, function(i){
- i.checked = false;
- i.el.removeClass('checked');
- });
-
- Roo.each(this.radioes, function(i){
-
- if(i.value === v || i.value.toString() === v.toString()){
- i.checked = true;
- i.el.addClass('checked');
-
- if(suppressEvent !== true){
- this.fireEvent('check', this, i);
- }
-
- return false;
- }
-
- }, this);
-
- this.validate();
- },
-
- clearInvalid : function(){
-
- if(!this.el || this.preventMark){
- return;
- }
-
- this.el.removeClass([this.invalidClass]);
-
- this.fireEvent('valid', this);
- }
-
-});
-
-Roo.apply(Roo.bootstrap.RadioSet, {
-
- groups: {},
-
- register : function(set)
- {
- this.groups[set.name] = set;
- },
-
- get: function(name)
- {
- if (typeof(this.groups[name]) == 'undefined') {
- return false;
- }
-
- return this.groups[name] ;
- }
-
-});