php7 fixes
[Pman.Builder] / Pman.Dialog.BuilderAddTable.js
index 382488a..eec49a3 100644 (file)
@@ -39,9 +39,10 @@ Pman.Dialog.BuilderAddTable = {
             closable : false,
             collapsible : false,
             height : 500,
+            modal : true,
             resizable : false,
             title : "Select columns to use",
-            width : 700,
+            width : 900,
             items : [
                 {
                     xtype: 'GridPanel',
@@ -61,7 +62,7 @@ Pman.Dialog.BuilderAddTable = {
                     tableName : 'Images',
                     title : "Images",
                     grid : {
-                        xtype: 'Grid',
+                        xtype: 'EditorGrid',
                         xns: Roo.grid,
                         listeners : {
                             render : function() 
@@ -86,6 +87,7 @@ Pman.Dialog.BuilderAddTable = {
                             }
                         },
                         autoExpandColumn : 'desc',
+                        clicksToEdit : 1,
                         loadMask : true,
                         dataSource : {
                             xtype: 'Store',
@@ -103,11 +105,37 @@ Pman.Dialog.BuilderAddTable = {
                                 load : function (_self, records, options)
                                 {
                                     // after load, if we have configuration already, overlay that 
-                                    if (typeof(this.data.cols) == 'undefined') {
+                                    if (typeof(_this.data.cols) == 'undefined') {
                                         return;
                                     }
-                                       
+                                    _this.data.cols_ex = _this.data.cols_ex || [];
+                                    var cmap = {}
+                                    Roo.each(_this.data.cols, function (col) {
+                                        cmap[col.column] = col;
+                                    
+                                    });
+                                    Roo.each(records, function (col) {
+                                        col.set('use_ex', _this.data.cols_ex.indexOf(col.data.column) > -1 ? 1 : 0);
+                                
+                                        if (typeof(cmap[col.data.column]) != 'undefined') {
+                                
+                                            col.set('title',  typeof(cmap[col.data.column].title) == 'undefined' ? '' : cmap[col.data.column].title);
+                                            col.set('use', 1);
+                                        }
+                                        if (!col.data.title.length) {
                                         
+                                            if (col.data.columnshort.substring(0, col.data.table.length) == col.data.table) {
+                                                // it's prefixed with table name..
+                                                col.set('title', col.data.columnshort.substring(col.data.table.length+1));
+                                            } else {
+                                                col.set('title', col.data.columnshort);
+                                            }
+                                        } 
+                                       
+                                
+                                        // what about descption..
+                                    });
+                                      
                                         
                                         
                                 }
@@ -129,7 +157,7 @@ Pman.Dialog.BuilderAddTable = {
                                 fields : [
                                     { name: 'use', type: 'int'} , 
                                     { name: 'use_ex', type: 'int'}, 
-                                    'table', 'column', 'ctype', 'desc', 'columnshort'
+                                    'table', 'column', 'ctype', 'desc', 'columnshort', 'title'
                                 ]
                             }
                         },
@@ -194,23 +222,37 @@ Pman.Dialog.BuilderAddTable = {
                             {
                                 xtype: 'ColumnModel',
                                 xns: Roo.grid,
-                                dataIndex : 'table',
-                                header : 'Table',
-                                width : 100,
-                                renderer : function(v) { return String.format('{0}', v); }
+                                dataIndex : 'column',
+                                header : 'Column',
+                                width : 150,
+                                renderer : function(v,x,r) { 
+                                    if (r.data.table == _this.data.table) {
+                                    
+                                        return String.format('<B>{0}</B>', v); 
+                                    }
+                                    return String.format('{0}...{1}', r.data.table, r.data.columnshort); 
+                                }
                             },
                             {
                                 xtype: 'ColumnModel',
                                 xns: Roo.grid,
-                                dataIndex : 'column',
-                                header : 'Column',
+                                dataIndex : 'title',
+                                header : 'Title',
                                 width : 150,
                                 renderer : function(v,x,r) { 
-                                    if (r.data.table == _this.data.table) {
+                                     
+                                    var u = r.data.use * 1;
+                                     u += (r.data.use_ex*1);
                                     
-                                        return String.format('{0}', v); 
+                                    return String.format('{0}', u ? v : ''); 
+                                },
+                                editor : {
+                                    xtype: 'GridEditor',
+                                    xns: Roo.grid,
+                                    field : {
+                                        xtype: 'TextField',
+                                        xns: Roo.form
                                     }
-                                    return String.format('.....{0}', r.data.columnshort); 
                                 }
                             },
                             {
@@ -258,12 +300,16 @@ Pman.Dialog.BuilderAddTable = {
                     listeners : {
                         click : function (_self, e)
                         {
-                             var ret = Roo.apply({ cols : [], cols_ex: [] },  _this.data);
-                             
+                             var ret = Roo.applyIf({ cols : [], cols_ex: [] },  _this.data);
+                              
                              _this.grid.ds.each(function(r) {
                              
                                 if (r.data.use*1) {
-                                        ret.cols.push(r.data);
+                                
+                                    var d = Roo.apply({}, r.json);
+                                    Roo.apply(d, r.data);
+                                    ret.cols.push(d);
+                                        
                                 }
                                  if (r.data.use_ex*1) {
                                      ret.cols_ex.push( r.data.column );
@@ -276,8 +322,10 @@ Pman.Dialog.BuilderAddTable = {
                                 return;
                             }
                              Roo.log(ret);
+                        
+                            _this.dialog.hide();
                              _this.callback(ret);
-                             _this.dialog.hide();
+                             
                         
                         }
                     },