Roo/form/ComboBoxArray.js
[roojs1] / roojs-bootstrap-debug.js
index 3dddac2..5592037 100644 (file)
@@ -2950,6 +2950,11 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component,  {
         
         Roo.log('initEvents with ds!!!!');
         
+        var _this = this;
+        
+        Roo.each(this.el.select('thead th.sortable', true).elements, function(e){
+            e.on('click', _this.sort, _this);
+        });
 //        this.maskEl = Roo.DomHelper.append(this.el.select('.TableGrid', true).first(), {tag: "div", cls:"x-dlg-mask"}, true);
 //        this.maskEl.enableDisplayMode("block");
 //        this.maskEl.show();
@@ -2963,6 +2968,26 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component,  {
         
     },
     
+    sort : function(e,el)
+    {
+        var col = Roo.get(el)
+        
+        if(!col.hasClass('sortable')){
+            return;
+        }
+        
+        var sort = col.attr('sort');
+        var dir = 'ASC';
+        
+        if(col.hasClass('glyphicon-arrow-up')){
+            dir = 'DESC';
+        }
+        
+        this.store.sortInfo = {field : sort, direction : dir};
+        
+        this.store.load();
+    },
+    
     renderHeader : function()
     {
         var header = {
@@ -2973,10 +2998,27 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component,  {
         var cm = this.cm;
         
         for(var i = 0, len = cm.getColumnCount(); i < len; i++){
-            header.cn.push({
+            
+            var config = cm.config[i];
+            
+            var c = {
                 tag: 'th',
                 html: cm.getColumnHeader(i)
-            })
+            };
+            
+            if(typeof(config.dataIndex) != 'undefined'){
+                c.sort = config.dataIndex;
+            }
+            
+            if(typeof(config.sortable) != 'undefined' && config.sortable){
+                c.cls = 'sortable';
+            }
+            
+            if(typeof(config.width) != 'undefined'){
+                c.style = 'width:' + config.width + 'px';
+            }
+            
+            header.cn.push(c)
         }
         
         return header;
@@ -3006,8 +3048,21 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component,  {
     {
         Roo.log('ds onload');
         
+        var _this = this;
         var cm = this.cm;
         
+        Roo.each(this.el.select('thead th.sortable', true).elements, function(e){
+            e.removeClass(['glyphicon', 'glyphicon-arrow-up', 'glyphicon-arrow-down']);
+            
+            if(e.hasClass('sortable') && e.attr('sort') == _this.store.sortInfo.field && _this.store.sortInfo.direction.toUpperCase() == 'ASC'){
+                e.addClass(['glyphicon', 'glyphicon-arrow-up']);
+            }
+            
+            if(e.hasClass('sortable') && e.attr('sort') == _this.store.sortInfo.field && _this.store.sortInfo.direction.toUpperCase() == 'DESC'){
+                e.addClass(['glyphicon', 'glyphicon-arrow-down']);
+            }
+        });
+        
         var tbody = this.el.select('tbody', true).first();
         
         var renders = [];
@@ -3043,7 +3098,7 @@ Roo.extend(Roo.bootstrap.Table, Roo.bootstrap.Component,  {
                     };
                     
                     if(typeof(config.width) != 'undefined'){
-                        td.width = config.width;
+                        td.style = 'width:' +  config.width + 'px';
                     }
                     
                     row.cn.push(td);
@@ -12923,6 +12978,8 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component,  {
     iframePad:3,
     hideMode:'offsets',
     
+    clearUp: true,
+    
      
     
 
@@ -13741,7 +13798,8 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component,  {
     cleanUpPaste :  function()
     {
         // cleans up the whole document..
-         Roo.log('cleanuppaste');
+        Roo.log('cleanuppaste');
+        
         this.cleanUpChildren(this.doc.body);
         var clean = this.cleanWordChars(this.doc.body.innerHTML);
         if (clean != this.doc.body.innerHTML) {
@@ -13791,7 +13849,7 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component,  {
             return; 
         }
         
-        if (Roo.HtmlEditorCore.black.indexOf(node.tagName.toLowerCase()) > -1) {
+        if (Roo.HtmlEditorCore.black.indexOf(node.tagName.toLowerCase()) > -1 && this.clearUp) {
             // remove node.
             node.parentNode.removeChild(node);
             return;
@@ -13862,7 +13920,6 @@ Roo.extend(Roo.HtmlEditorCore, Roo.Component,  {
                 var l = p.split(':').shift().replace(/\s+/g,'');
                 l = l.replace(/^\s+/g,'').replace(/\s+$/g,'');
                 
-                
                 if ( cblack.indexOf(l) > -1) {
 //                    Roo.log('(REMOVE CSS)' + node.tagName +'.' + n + ':'+l + '=' + v);
                     //node.removeAttribute(n);