Partial Fix #5681 - fix bootstrap4 detection
[roojs1] / Roo / bootstrap / Column.js
index 0628537..504d61d 100644 (file)
@@ -9,7 +9,24 @@
  * @class Roo.bootstrap.Column
  * @extends Roo.bootstrap.Component
  * Bootstrap Column class
- * @cfg {number} colspan  Number of columsn to span
+ * @cfg {Number} xs colspan out of 12 for mobile-sized screens or 0 for hidden
+ * @cfg {Number} sm colspan out of 12 for tablet-sized screens or 0 for hidden
+ * @cfg {Number} md colspan out of 12 for computer-sized screens or 0 for hidden
+ * @cfg {Number} lg colspan out of 12 for large computer-sized screens or 0 for hidden
+ * @cfg {Number} xsoff colspan offset out of 12 for mobile-sized screens or 0 for hidden
+ * @cfg {Number} smoff colspan offset out of 12 for tablet-sized screens or 0 for hidden
+ * @cfg {Number} mdoff colspan offset out of 12 for computer-sized screens or 0 for hidden
+ * @cfg {Number} lgoff colspan offset out of 12 for large computer-sized screens or 0 for hidden
+ *
+ * 
+ * @cfg {Boolean} hidden (true|false) hide the element
+ * @cfg {String} alert (success|info|warning|danger) type alert (changes background / border...)
+ * @cfg {String} fa (ban|check|...) font awesome icon
+ * @cfg {Number} fasize (1|2|....) font awsome size
+
+ * @cfg {String} icon (info-sign|check|...) glyphicon name
+
+ * @cfg {String} html content of column.
  * 
  * @constructor
  * Create a new Column
@@ -22,29 +39,77 @@ Roo.bootstrap.Column = function(config){
 
 Roo.extend(Roo.bootstrap.Column, Roo.bootstrap.Component,  {
     
-    xs: null,
-    sm: null,
-    md: null,
-    lg: null,
-    
+    xs: false,
+    sm: false,
+    md: false,
+    lg: false,
+    xsoff: false,
+    smoff: false,
+    mdoff: false,
+    lgoff: false,
+    html: '',
     offset: 0,
+    alert: false,
+    fa: false,
+    icon : false,
+    hidden : false,
+    fasize : 1,
     
     getAutoCreate : function(){
         var cfg = Roo.apply({}, Roo.bootstrap.Column.superclass.getAutoCreate.call(this));
-       
-       cfg = {
-           tag: 'div',
-           cls: 'column'
-       }
-       
-       var settings=this;
-       var sizes=['xs','sm','md','lg'];
-       sizes.map(function(size){
-           if (settings[size]) {
-               cfg.cls += ' col-' + size + '-' + settings[size];
-           }
-       })
-       
+        
+        cfg = {
+            tag: 'div',
+            cls: 'column'
+        };
+        
+        var settings=this;
+        ['xs','sm','md','lg'].map(function(size){
+            //Roo.log( size + ':' + settings[size]);
+            
+            if (settings[size+'off'] !== false) {
+                cfg.cls += ' col-' + size + '-offset-' + settings[size+'off'] ;
+            }
+            
+            if (settings[size] === false) {
+                return;
+            }
+            
+            if (!settings[size]) { // 0 = hidden
+                cfg.cls += ' hidden-' + size + ' hidden' + size + '-down';;
+                return;
+            }
+            cfg.cls += ' col-' + size + '-' + settings[size] + (
+                size == 'xs' ? (' col-' + settings[size] ) : '' // bs4 col-{num} replaces col-xs
+            );
+            
+        });
+        
+        if (this.hidden) {
+            cfg.cls += ' hidden';
+        }
+        
+        if (this.alert && ["success","info","warning", "danger"].indexOf(this.alert) > -1) {
+            cfg.cls +=' alert alert-' + this.alert;
+        }
+        
+        
+        if (this.html.length) {
+            cfg.html = this.html;
+        }
+        if (this.fa) {
+            var fasize = '';
+            if (this.fasize > 1) {
+                fasize = ' fa-' + this.fasize + 'x';
+            }
+            cfg.html = '<i class="fa fa-'+this.fa + fasize + '"></i>' + (cfg.html || '');
+            
+            
+        }
+        if (this.icon) {
+            cfg.html = '<i class="glyphicon glyphicon-'+this.icon + '"></i>' +  (cfg.html || '');
+        }
+        
         return cfg;
     }