Builder/Provider/GtkUsage.txt
[app.Builder.js] / dbgenerate.js
index d856eb8..5737442 100644 (file)
@@ -96,10 +96,11 @@ Gda.DataSelect.prototype.fetchAll = function()
 
 var map = {
     'date' : 'date',
-    'datetime' : 'string',
+    'datetime' : 'date',
+    'time' : 'string', //bogus
     'int' : 'int',
     'bigint' : 'int',
-    
+    'double' : 'float',
     'tinyint' : 'int',
     'decimal' : 'float',
     'float' : 'float',
@@ -217,7 +218,7 @@ tables.forEach(function(table) {
        
     var firstTxtCol = '';
     
-    print(JSON.stringify(schema, null,4));
+    //print(JSON.stringify(schema, null,4));
     
     schema.forEach(function(e)  {
         var type = e.Type.match(/([^(]+)\(([^\)]+)\)/);
@@ -279,9 +280,9 @@ tables.forEach(function(table) {
         if (e.Type == 'text') {
             xtype = 'TextArea';
         }
-        if (e.name == 'id') {
+        if (row.name == 'id') {
             xtype = 'Hidden';
-        }
+        } 
         // what about booleans.. -> checkboxes..
         
         
@@ -296,7 +297,10 @@ tables.forEach(function(table) {
         if (xtype == 'TextArea') {
             form[row.name].height = 100;
         }
-        
+        if (xtype == 'Hidden') {
+            delete form[row.name].fieldLabel;
+            delete form[row.name].width;
+        }
         
     });
     
@@ -455,6 +459,7 @@ readers.forEach(function(reader) {
 
     var dir = GLib.get_home_dir() + '/.Builder/Roo.data.JsonReader'; 
     if (!File.isDirectory(dir)) {
+        print("mkdir " + dir);
         File.mkdir(dir);
     }
     
@@ -469,6 +474,7 @@ readers.forEach(function(reader) {
         root : "data",
         '*prop' : "reader",
         id : 'id', // maybe no..
+       
         '|fields' :  JSON.stringify(reader.reader, null,4).replace(/"/g,"'")
     };
     
@@ -481,6 +487,7 @@ readers.forEach(function(reader) {
     // GRIDS
     dir = GLib.get_home_dir() + '/.Builder/Roo.GridPanel'; 
     if (!File.isDirectory(dir)) {
+        print("mkdir " + dir);
         File.mkdir(dir);
     }
     
@@ -499,6 +506,7 @@ readers.forEach(function(reader) {
             "fitContainer": true,
             "tableName": reader.table,
             "background": true,
+            "region" : 'center',
             "listeners": {
                 "|activate": "function() {\n    _this.panel = this;\n    if (_this.grid) {\n        _this.grid.footer.onClick('first');\n    }\n}"
             },
@@ -511,12 +519,19 @@ readers.forEach(function(reader) {
                     "listeners": {
                         "|render": "function() \n" +
                             "{\n" +
-                            "   _this.grid = this; \n" +
+                            "    _this.grid = this; \n" +
                             "    //_this.dialog = Pman.Dialog.FILL_IN\n" +
                             "    if (_this.panel.active) {\n" +
                             "       this.footer.onClick('first');\n" +
                             "    }\n" +
-                            "}"
+                            "}",
+                        "|rowdblclick": "function (_self, rowIndex, e)\n" + 
+                            "{\n" + 
+                            "    if (!_this.dialog) return;\n" + 
+                            "    _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n" + 
+                            "        _this.grid.footer.onClick('first');\n" + 
+                            "    }); \n" + 
+                            "}\n"
                     },
                     "|xns": "Roo.grid",
 
@@ -524,7 +539,8 @@ readers.forEach(function(reader) {
                         {
                             "*prop": "dataSource",
                             "xtype": "Store",
-                            
+                             remoteSort : true,
+                            '|sortInfo' : "{ field : '" + reader.firstTxtCol  +  "', direction: 'ASC' }", 
                             "|xns": "Roo.data",
                             "items": [
                                 
@@ -560,9 +576,10 @@ readers.forEach(function(reader) {
                                     "listeners": {
                                         "|click": "function()\n"+
                                             "{\n"+
-                                            "   //yourdialog.show( { id : 0 } , function() {\n"+
-                                            "   //  _this.grid.footer.onClick('first');\n"+
-                                            "   //}); \n"+
+                                            "    if (!_this.dialog) return;\n" +
+                                            "    _this.dialog.show( { id : 0 } , function() {\n"+
+                                            "        _this.grid.footer.onClick('first');\n"+
+                                            "   }); \n"+
                                             "}\n"
                                     },
                                     "|xns": "Roo.Toolbar"
@@ -580,10 +597,10 @@ readers.forEach(function(reader) {
                                             "        Roo.MessageBox.alert(\"Error\", s.length ? \"Select only one Row\" : \"Select a Row\");\n"+
                                             "        return;\n"+
                                             "    }\n"+
-                                            "    \n"+
-                                            "    //_this.dialog.show(s[0].data, function() {\n"+
-                                            "    //    _this.grid.footer.onClick('first');\n"+
-                                            "    //   }); \n"+
+                                            "    if (!_this.dialog) return;\n" +
+                                            "    _this.dialog.show(s[0].data, function() {\n"+
+                                            "        _this.grid.footer.onClick('first');\n"+
+                                            "    }); \n"+
                                             "    \n"+
                                             "}\n" 
                                         
@@ -598,7 +615,7 @@ readers.forEach(function(reader) {
                                     "listeners": {
                                         "|click": "function()\n"+
                                             "{\n"+
-                                            "   //Pman.genericDelete(_this, _this.grid.tableName); \n"+
+                                            "     Pman.genericDelete(_this, '" + reader.table + "'); \n"+
                                             "}\n"+
                                             "        "
                                     },
@@ -618,61 +635,71 @@ readers.forEach(function(reader) {
     
     dir = GLib.get_home_dir() + '/.Builder/Roo.form.Form'; 
     if (!File.isDirectory(dir)) {
+        print("mkdir " + dir);
         File.mkdir(dir);
     }
     var formElements = [];
+    var formHeight = 50;
     for (var k in reader.form) {
         if (k == 'id') { // should really do primary key testing..
             continue;
         }
+        formHeight += reader.form[k].xtype == 'TextArea' ? 100 : 30;
+        
         formElements.push(reader.form[k]);
     }
-    formElements.push(reader.form['id']);
+    if (reader.form['id']) {
+        formElements.push(reader.form['id']);
+    }
+    
 
     print("WRITE: " +  dir + '/' + cfg.DBNAME + '_' + reader.table + '.json');
+    var frmCfg = 
+    {
+        '|xns' : 'Roo.form',
+        xtype : "Form",
+        listeners : {
+            "|actioncomplete" : "function(_self,action)\n"+
+                "{\n"+
+                "    if (action.type == 'setdata') {\n"+
+                "       //_this.dialog.el.mask(\"Loading\");\n"+
+                "       //this.load({ method: 'GET', params: { '_id' : _this.data.id }});\n"+
+                "       return;\n"+
+                "    }\n"+
+                "    if (action.type == 'load') {\n"+
+                "        _this.dialog.el.unmask();\n"+
+                "        return;\n"+
+                "    }\n"+
+                "    if (action.type =='submit') {\n"+
+                "    \n"+
+                "        _this.dialog.el.unmask();\n"+
+                "        _this.dialog.hide();\n"+
+                "    \n"+
+                "         if (_this.callback) {\n"+
+                "            _this.callback.call(_this, _this.form.getValues());\n"+
+                "         }\n"+
+                "         _this.form.reset();\n"+
+                "         return;\n"+
+                "    }\n"+
+                "}\n",
+            
+            "|rendered" : "function (form)\n"+
+                "{\n"+
+                "    _this.form= form;\n"+
+                "}\n"
+        },
+        method : "POST",
+        style : "margin:10px;",
+        "|url" : "baseURL + '/Roo/" + reader.table + ".php'",
+        items : formElements
+    };
+    
     
     File.write(
         dir + '/' + cfg.DBNAME + '_' + reader.table + '.json',
             
        
-        JSON.stringify({
-            '|xns' : 'Roo.form',
-            xtype : "Form",
-            listeners : {
-                "|actioncomplete" : "function(_self,action)\n"+
-                    "{\n"+
-                    "    if (action.type == 'setdata') {\n"+
-                    "       //_this.dialog.el.mask(\"Loading\");\n"+
-                    "       //this.load({ method: 'GET', params: { '_id' : _this.data.id }});\n"+
-                    "       return;\n"+
-                    "    }\n"+
-                    "    if (action.type == 'load') {\n"+
-                    "        _this.dialog.el.unmask();\n"+
-                    "        return;\n"+
-                    "    }\n"+
-                    "    if (action.type =='submit') {\n"+
-                    "    \n"+
-                    "        _this.dialog.el.unmask();\n"+
-                    "        _this.dialog.hide();\n"+
-                    "    \n"+
-                    "         if (_this.callback) {\n"+
-                    "            _this.callback.call(_this, _this.form.getValues());\n"+
-                    "         }\n"+
-                    "         _this.form.reset();\n"+
-                    "         return;\n"+
-                    "    }\n"+
-                    "}\n",
-                
-                "|rendered" : "function (form)\n"+
-                    "{\n"+
-                    "    _this.form= form;\n"+
-                    "}\n"
-            },
-            method : "POST",
-            style : "margin:10px;",
-            "|url" : "baseURL + '/Roo/" + reader.table + ".php'",
-            items : formElements
-        }, null, 4)
+        JSON.stringify( frmCfg, null, 4)
     );
             
             
@@ -683,6 +710,7 @@ readers.forEach(function(reader) {
     
     dir = GLib.get_home_dir() + '/.Builder/Roo.form.ComboBox'; 
     if (!File.isDirectory(dir)) {
+        print("mkdir " + dir);
         File.mkdir(dir);
     }
    
@@ -700,12 +728,78 @@ readers.forEach(function(reader) {
    
    
    
+    // DIALOG.
    
    
+    dir = GLib.get_home_dir() + '/.Builder/Roo.LayoutDialog'; 
+    if (!File.isDirectory(dir)) {
+        print("mkdir " + dir);
+        File.mkdir(dir);
+    }
+    var formElements = [];
+    for (var k in reader.form) {
+        if (k == 'id') { // should really do primary key testing..
+            continue;
+        }
+        formElements.push(reader.form[k]);
+    }
+    formElements.push(reader.form['id']);
+
+    print("WRITE: " +  dir + '/' + cfg.DBNAME + '_' + reader.table + '.json');
+    
+    File.write(
+        dir + '/' + cfg.DBNAME + '_' + reader.table + '.json',
+            
+       
+        JSON.stringify({
+       
+            "closable": false,
+            "collapsible": false,
+            "height": formHeight,
+            "resizable": false,
+            "title": "Edit / Create " + reader.table,
+            "width": 400,
+            "xtype": "LayoutDialog",
+            "|xns": "Roo",
+            "items": [
+                {
+                    "|xns": "Roo",
+                    "xtype": "LayoutRegion",
+                    "*prop": "center"
+                },
+                {
+                    "region": "center",
+                    "xtype": "ContentPanel",
+                    "|xns": "Roo",
+                    "items": [
+                        frmCfg
+                    ]
+                },
+                
+                {
+                    "listeners": {
+                        "click": "function (_self, e)\n{\n    _this.dialog.hide();\n}"
+                    },
+                    "*prop": "buttons[]",
+                    "text": "Cancel",
+                    "xtype": "Button",
+                    "|xns": "Roo"
+                },
+                {
+                    "listeners": {
+                        "click": "function (_self, e)\n{\n    // do some checks?\n     \n    \n    _this.dialog.el.mask(\"Saving\");\n    _this.form.doAction(\"submit\");\n\n}"
+                    },
+                    "*prop": "buttons[]",
+                    "text": "Save",
+                    "xtype": "Button",
+                    "|xns": "Roo"
+                }
+            ]
+        }, null,4)
+    );
    
    
-});              
-
-
+   
+});