From 4f0381f48431c867ecaecb6f9092ecdefffca88f Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Fri, 30 Jul 2021 15:10:28 +0800 Subject: [PATCH] MOVED Roo/bootstrap/FieldLabel.js to Roo/bootstrap/form/FieldLabel.js Roo/bootstrap/FieldLabel.js --- Roo/bootstrap/form/FieldLabel.js | 210 +++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 Roo/bootstrap/form/FieldLabel.js diff --git a/Roo/bootstrap/form/FieldLabel.js b/Roo/bootstrap/form/FieldLabel.js new file mode 100644 index 0000000000..c59405c8ab --- /dev/null +++ b/Roo/bootstrap/form/FieldLabel.js @@ -0,0 +1,210 @@ +/* + * - LGPL + * + * FieldLabel + * + */ + +/** + * @class Roo.bootstrap.FieldLabel + * @extends Roo.bootstrap.Component + * Bootstrap FieldLabel class + * @cfg {String} html contents of the element + * @cfg {String} tag tag of the element default label + * @cfg {String} cls class of the element + * @cfg {String} target label target + * @cfg {Boolean} allowBlank (true|false) target allowBlank default true + * @cfg {String} invalidClass DEPRICATED - BS4 uses is-invalid + * @cfg {String} validClass DEPRICATED - BS4 uses is-valid + * @cfg {String} iconTooltip default "This field is required" + * @cfg {String} indicatorpos (left|right) default left + * + * @constructor + * Create a new FieldLabel + * @param {Object} config The config object + */ + +Roo.bootstrap.FieldLabel = function(config){ + Roo.bootstrap.Element.superclass.constructor.call(this, config); + + this.addEvents({ + /** + * @event invalid + * Fires after the field has been marked as invalid. + * @param {Roo.form.FieldLabel} this + * @param {String} msg The validation message + */ + invalid : true, + /** + * @event valid + * Fires after the field has been validated with no errors. + * @param {Roo.form.FieldLabel} this + */ + valid : true + }); +}; + +Roo.extend(Roo.bootstrap.FieldLabel, Roo.bootstrap.Component, { + + tag: 'label', + cls: '', + html: '', + target: '', + allowBlank : true, + invalidClass : 'has-warning', + validClass : 'has-success', + iconTooltip : 'This field is required', + indicatorpos : 'left', + + getAutoCreate : function(){ + + var cls = ""; + if (!this.allowBlank) { + cls = "visible"; + } + + var cfg = { + tag : this.tag, + cls : 'roo-bootstrap-field-label ' + this.cls, + for : this.target, + cn : [ + { + tag : 'i', + cls : 'roo-required-indicator left-indicator text-danger fa fa-lg fa-star ' + cls, + tooltip : this.iconTooltip + }, + { + tag : 'span', + html : this.html + } + ] + }; + + if(this.indicatorpos == 'right'){ + var cfg = { + tag : this.tag, + cls : 'roo-bootstrap-field-label ' + this.cls, + for : this.target, + cn : [ + { + tag : 'span', + html : this.html + }, + { + tag : 'i', + cls : 'roo-required-indicator right-indicator text-danger fa fa-lg fa-star '+ cls, + tooltip : this.iconTooltip + } + ] + }; + } + + return cfg; + }, + + initEvents: function() + { + Roo.bootstrap.Element.superclass.initEvents.call(this); + + this.indicator = this.indicatorEl(); + + if(this.indicator){ + this.indicator.removeClass('visible'); + this.indicator.addClass('invisible'); + } + + Roo.bootstrap.FieldLabel.register(this); + }, + + indicatorEl : function() + { + var indicator = this.el.select('i.roo-required-indicator',true).first(); + + if(!indicator){ + return false; + } + + return indicator; + + }, + + /** + * Mark this field as valid + */ + markValid : function() + { + if(this.indicator){ + this.indicator.removeClass('visible'); + this.indicator.addClass('invisible'); + } + if (Roo.bootstrap.version == 3) { + this.el.removeClass(this.invalidClass); + this.el.addClass(this.validClass); + } else { + this.el.removeClass('is-invalid'); + this.el.addClass('is-valid'); + } + + + this.fireEvent('valid', this); + }, + + /** + * Mark this field as invalid + * @param {String} msg The validation message + */ + markInvalid : function(msg) + { + if(this.indicator){ + this.indicator.removeClass('invisible'); + this.indicator.addClass('visible'); + } + if (Roo.bootstrap.version == 3) { + this.el.removeClass(this.validClass); + this.el.addClass(this.invalidClass); + } else { + this.el.removeClass('is-valid'); + this.el.addClass('is-invalid'); + } + + + this.fireEvent('invalid', this, msg); + } + + +}); + +Roo.apply(Roo.bootstrap.FieldLabel, { + + groups: {}, + + /** + * register a FieldLabel Group + * @param {Roo.bootstrap.FieldLabel} the FieldLabel to add + */ + register : function(label) + { + if(this.groups.hasOwnProperty(label.target)){ + return; + } + + this.groups[label.target] = label; + + }, + /** + * fetch a FieldLabel Group based on the target + * @param {string} target + * @returns {Roo.bootstrap.FieldLabel} the CheckBox group + */ + get: function(target) { + if (typeof(this.groups[target]) == 'undefined') { + return false; + } + + return this.groups[target] ; + } +}); + + + + \ No newline at end of file -- 2.39.2