9d5d3b44cbe4ba38b65fd8da9719f6e9ffaac1a0
[Pman.Builder] / Pman.Tab.BuilderDatabase.js
1 //<script type="text/javascript">
2
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
4
5 Pman.Tab.BuilderDatabase = new Roo.XComponent({
6     part     :  ["Builder","Database"],
7     order    : '999-Pman.Tab.BuilderDatabase',
8     region   : 'center',
9     parent   : 'Pman.Tab.Builder',
10     name     : "Pman.Tab.BuilderDatabase",
11     disabled : false, 
12     permname : '', 
13     _tree : function()
14     {
15         var _this = this;
16         var MODULE = this;
17         return {
18             xtype: 'NestedLayoutPanel',
19             xns: Roo,
20             listeners : {
21                 activate : function (_self)
22                 {
23                  _this.treepanel.tree.root.reload();
24                 }
25             },
26             background : true,
27             region : 'center',
28             title : "Manage Database",
29             layout : {
30                 xtype: 'BorderLayout',
31                 xns: Roo,
32                 items : [
33                     {
34                         xtype: 'TreePanel',
35                         xns: Roo,
36                         listeners : {
37                             render : function (_self)
38                             {
39                                _this.treepanel = _self;
40                             }
41                         },
42                         region : 'west',
43                         toolbar : {
44                             xtype: 'Toolbar',
45                             xns: Roo,
46                             items : [
47                                 {
48                                     xtype: 'SplitButton',
49                                     xns: Roo.Toolbar,
50                                     listeners : {
51                                         click : function (_self, e)
52                                         {
53                                          _this.treepanel.tree.root.reload();
54                                         }
55                                     },
56                                     text : "Refresh/Manage Tables",
57                                     menu : {
58                                         xtype: 'Menu',
59                                         xns: Roo.menu,
60                                         items : [
61                                             {
62                                                 xtype: 'Item',
63                                                 xns: Roo.menu,
64                                                 text : "Add Table/Container"
65                                             },
66                                             {
67                                                 xtype: 'Separator',
68                                                 xns: Roo.menu
69                                             },
70                                             {
71                                                 xtype: 'Item',
72                                                 xns: Roo.menu,
73                                                 listeners : {
74                                                     click : function (_self, e)
75                                                     {
76                                                         new Pman.Request({
77                                                             method: 'GET',
78                                                             url: baseURL + '/Roo/Builder_tables.php',
79                                                             params : {
80                                                                  _sync : 1
81                                                             }
82                                                         });
83                                                             
84                                                     }
85                                                 },
86                                                 text : "Sync Tables"
87                                             },
88                                             {
89                                                 xtype: 'Separator',
90                                                 xns: Roo.menu
91                                             },
92                                             {
93                                                 xtype: 'Item',
94                                                 xns: Roo.menu,
95                                                 listeners : {
96                                                     click : function (_self, e)
97                                                     {
98                                                     /*
99                                                         var node = _this.treepanel.tree.getSelectionModel().getSelectedNode();   
100                                                         
101                                                         if(!node){
102                                                             Roo.MessageBox.alert('Error', 'Please select a table');
103                                                             return;
104                                                         } 
105                                                         
106                                                         Roo.log(node.attributes.name);
107                                                         */
108                                                         new Pman.Download({
109                                                             url : baseURL + '/Roo/Builder_tables.php',
110                                                             params : {
111                                                                 _dump : 1
112                                                             },
113                                                             method : 'GET',
114                                                             success : function() {
115                                                             
116                                                             }
117                                                         });
118                                                     }
119                                                 },
120                                                 text : "Export Data"
121                                             }
122                                         ]
123                                     }
124                                 }
125                             ]
126                         },
127                         tree : {
128                             xtype: 'TreePanel',
129                             xns: Roo.tree,
130                             listeners : {
131                                 beforeload : function (node)
132                                 {
133                                     if (!_this.panel.active) {
134                                         return false;
135                                     }
136                                 },
137                                 contextmenu : function (node, e)
138                                 {
139                                     if (!node.expanded || node.leaf) {
140                                         return;
141                                     }
142                                 
143                                    _this.treepanel.menu = Roo.factory(_this.treepanel.menu);
144                                    _this.treepanel.menu.show(node.ui.anchor,'tr');
145                                    _this.cxnode = node;
146                                 },
147                                 beforenodedrop : function (dropEvent)
148                                 {
149                                     Roo.log(dropEvent);
150                                     var node = dropEvent.dropNode;
151                                     var targ = dropEvent.target;
152                                     var parent = dropEvent.target;
153                                     switch(dropEvent.point) {
154                                         case 'below': 
155                                          case 'above':  
156                                             parent = dropEvent.target.parentNode;
157                                             break;
158                                         default:
159                                             break;
160                                     }
161                                     // technically you should not be able to drag tables into other modules..
162                                     if (parent.attributes.id < 1) {
163                                         dropEvent.cancel = 1;
164                                     }
165                                     new Pman.Request({
166                                         url : baseURL + '/Roo/Builder_tables',
167                                         params : {
168                                             id : node.attributes.id,
169                                             parent_id : parent.attributes.id
170                                         }
171                                     });
172                                     
173                                     
174                                 }
175                             },
176                             containerScroll : true,
177                             ddGroup : 'dbtree',
178                             enableDD : true,
179                             rootVisible : false,
180                             loader : {
181                                 xtype: 'TreeLoader',
182                                 xns: Roo.tree,
183                                 listeners : {
184                                     create : function (_self, attr)
185                                     {
186                                         Roo.log("CREATE");
187                                         try {
188                                             attr.text = attr.name.length ? attr.name : attr.descrip;
189                                             
190                                             attr.leaf = attr.name.length ? true : false;
191                                             attr.html = String.format('<B>{0}</B><i>{1}</i>',
192                                                 attr.name,
193                                                 attr.descrip
194                                             );
195                                         } catch(e) {
196                                             Roo.log(e);
197                                         }
198                                         Roo.log(attr);
199                                     
200                                     }
201                                 },
202                                 queryParam : 'parent_id',
203                                 requestMethod : 'GET',
204                                 root : 'data',
205                                 baseParams : { _tree: 1, 'sort': 'name', dir: 'ASC', limit : 9999 },
206                                 dataUrl : baseURL + '/Roo/Builder_tables.php'
207                             },
208                             sm : {
209                                 xtype: 'MultiSelectionModel',
210                                 xns: Roo.tree
211                             },
212                             root : {
213                                 xtype: 'AsyncTreeNode',
214                                 xns: Roo.tree,
215                                 text : "TOP LEVEL"
216                             },
217                             editor : {
218                                 xtype: 'TreeEditor',
219                                 xns: Roo.tree,
220                                 listeners : {
221                                     beforenodeedit : function (_self,node)
222                                     {
223                                         Roo.log('before start edit');
224                                         Roo.log(this.editNode);
225                                         if (node.attributes.name.length) {
226                                             return false;
227                                         }
228                                         return true;
229                                         
230                                     },
231                                     complete : function (_self, value, startValue)
232                                     {
233                                         Roo.log(this.editNode);
234                                     
235                                         var attr = this.editNode.attributes;
236                                         
237                                         var pa = this.editNode.parentNode.attributes;
238                                         Roo.log(pa);
239                                         var pr =  {
240                                      
241                                             parent_id : pa.id,
242                                             descrip : value,
243                                             name : '',
244                                             dbschema : ''
245                                         };
246                                             
247                                         if (attr.id > 0) {
248                                             pr.id = attr.id;
249                                         }
250                                         
251                                         new Pman.Request({
252                                             url : baseURL + '/Roo/Builder_tables',
253                                             method : 'POST',
254                                             params : pr
255                                         });
256                                         
257                                         
258                                         
259                                     }
260                                 }
261                             }
262                         },
263                         menu : {
264                             xtype: 'Menu',
265                             xns: Roo.menu,
266                             items : [
267                                 {
268                                     xtype: 'Item',
269                                     xns: Roo.menu,
270                                     listeners : {
271                                         click : function (_self, e)
272                                         {
273                                             _this.nIndex =     _this.nIndex || 0;
274                                             
275                                             var m = _this.cxnode.firstChild ? 'insertBefore' : 'appendChild';
276                                             var tree =  _this.treepanel.tree;
277                                             
278                                             var n = tree.loader.createNode({
279                                                 id : -1,
280                                                 descrip :'New Group ' + (++_this.nIndex), 
281                                                 name : ''
282                                             }); 
283                                             
284                                             var node = _this.cxnode[m]( n , _this.cxnode.firstChild);
285                                             setTimeout(function(){
286                                                     tree.editor.editNode = node;
287                                                     tree.editor.startEdit(node.ui.textNode);
288                                                 }, 10);
289                                         }
290                                     },
291                                     text : "Add Group"
292                                 },
293                                 {
294                                     xtype: 'Separator',
295                                     xns: Roo.menu
296                                 },
297                                 {
298                                     xtype: 'Item',
299                                     xns: Roo.menu,
300                                     listeners : {
301                                         click : function (_self, e)
302                                         {
303                                             _this.nIndex =     _this.nIndex || 0;
304                                             
305                                             _this.cxnode;
306                                             // try and delete it..
307                                             new Pman.Request({
308                                                 url : baseURL + '/Roo/Builder_tables',
309                                                 params : {
310                                                     _delete : _this.cxnode.attributes.id
311                                                 },
312                                                 success : function() {
313                                                     _this.cxnode.parentNode.removeChild(_this.cxnode);
314                                                     _this.cxnode = false;
315                                                 
316                                                 }
317                                             });
318                                             
319                                         }
320                                     },
321                                     text : "Remove Group"
322                                 }
323                             ]
324                         }
325                     },
326                     {
327                         xtype: 'GridPanel',
328                         xns: Roo,
329                         listeners : {
330                             activate : function() {
331                                 _this.panel = this;
332                                 if (_this.grid) {
333                                     _this.grid.footer.onClick('first');
334                                 }
335                             }
336                         },
337                         background : true,
338                         fitContainer : true,
339                         fitToframe : true,
340                         region : 'center',
341                         tableName : 'Tables',
342                         title : "Tables",
343                         grid : {
344                             xtype: 'Grid',
345                             xns: Roo.grid,
346                             listeners : {
347                                 render : function() 
348                                 {
349                                     _this.grid = this; 
350                                     //_this.dialog = Pman.Dialog.FILL_IN
351                                     if (_this.panel.active) {
352                                        this.footer.onClick('first');
353                                     }
354                                 },
355                                 rowdblclick : function (_self, rowIndex, e)
356                                 {
357                                     if (!_this.dialog) return;
358                                     _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {
359                                         _this.grid.footer.onClick('first');
360                                     }); 
361                                 }
362                             },
363                             autoExpandColumn : 'table',
364                             loadMask : true,
365                             dataSource : {
366                                 xtype: 'Store',
367                                 xns: Roo.data,
368                                 remoteSort : true,
369                                 sortInfo : { field : 'filename', direction: 'ASC' },
370                                 proxy : {
371                                     xtype: 'HttpProxy',
372                                     xns: Roo.data,
373                                     method : 'GET',
374                                     url : baseURL + '/Builder/ERM.php'
375                                 },
376                                 reader : {
377                                     xtype: 'JsonReader',
378                                     xns: Roo.data,
379                                     totalProperty : 'total',
380                                     root : 'data',
381                                     id : 'id',
382                                     fields : [
383                                         {
384                                             'name': 'id',
385                                             'type': 'int'
386                                         },
387                                         {
388                                             'name': 'filename',
389                                             'type': 'string'
390                                         },
391                                         {
392                                             'name': 'ontable',
393                                             'type': 'string'
394                                         },
395                                         {
396                                             'name': 'onid',
397                                             'type': 'int'
398                                         },
399                                         {
400                                             'name': 'mimetype',
401                                             'type': 'string'
402                                         },
403                                         {
404                                             'name': 'width',
405                                             'type': 'int'
406                                         },
407                                         {
408                                             'name': 'height',
409                                             'type': 'int'
410                                         },
411                                         {
412                                             'name': 'filesize',
413                                             'type': 'int'
414                                         },
415                                         {
416                                             'name': 'displayorder',
417                                             'type': 'int'
418                                         },
419                                         {
420                                             'name': 'language',
421                                             'type': 'string'
422                                         },
423                                         {
424                                             'name': 'parent_image_id',
425                                             'type': 'int'
426                                         },
427                                         {
428                                             'name': 'created',
429                                             'type': 'date',
430                                             'dateFormat': 'Y-m-d'
431                                         },
432                                         {
433                                             'name': 'imgtype',
434                                             'type': 'string'
435                                         },
436                                         {
437                                             'name': 'linkurl',
438                                             'type': 'string'
439                                         },
440                                         {
441                                             'name': 'descript',
442                                             'type': 'string'
443                                         },
444                                         {
445                                             'name': 'title',
446                                             'type': 'string'
447                                         },
448                                         {
449                                             'name': 'credit',
450                                             'type': 'string'
451                                         },
452                                         {
453                                             'name': 'source',
454                                             'type': 'string'
455                                         },
456                                         {
457                                             'name': 'parent_image_id_id',
458                                             'type': 'int'
459                                         },
460                                         {
461                                             'name': 'parent_image_id_filename',
462                                             'type': 'string'
463                                         },
464                                         {
465                                             'name': 'parent_image_id_ontable',
466                                             'type': 'string'
467                                         },
468                                         {
469                                             'name': 'parent_image_id_onid',
470                                             'type': 'int'
471                                         },
472                                         {
473                                             'name': 'parent_image_id_mimetype',
474                                             'type': 'string'
475                                         },
476                                         {
477                                             'name': 'parent_image_id_width',
478                                             'type': 'int'
479                                         },
480                                         {
481                                             'name': 'parent_image_id_height',
482                                             'type': 'int'
483                                         },
484                                         {
485                                             'name': 'parent_image_id_filesize',
486                                             'type': 'int'
487                                         },
488                                         {
489                                             'name': 'parent_image_id_displayorder',
490                                             'type': 'int'
491                                         },
492                                         {
493                                             'name': 'parent_image_id_language',
494                                             'type': 'string'
495                                         },
496                                         {
497                                             'name': 'parent_image_id_parent_image_id',
498                                             'type': 'int'
499                                         },
500                                         {
501                                             'name': 'parent_image_id_created',
502                                             'type': 'date'
503                                         },
504                                         {
505                                             'name': 'parent_image_id_imgtype',
506                                             'type': 'string'
507                                         },
508                                         {
509                                             'name': 'parent_image_id_linkurl',
510                                             'type': 'string'
511                                         },
512                                         {
513                                             'name': 'parent_image_id_descript',
514                                             'type': 'string'
515                                         },
516                                         {
517                                             'name': 'parent_image_id_title',
518                                             'type': 'string'
519                                         },
520                                         {
521                                             'name': 'parent_image_id_credit',
522                                             'type': 'string'
523                                         },
524                                         {
525                                             'name': 'parent_image_id_source',
526                                             'type': 'string'
527                                         }
528                                     ]
529                                 }
530                             },
531                             footer : {
532                                 xtype: 'PagingToolbar',
533                                 xns: Roo,
534                                 pageSize : 25,
535                                 displayInfo : true,
536                                 displayMsg : "Displaying Images{0} - {1} of {2}",
537                                 emptyMsg : "No Images found"
538                             },
539                             toolbar : {
540                                 xtype: 'Toolbar',
541                                 xns: Roo,
542                                 items : [
543                                     {
544                                         xtype: 'Button',
545                                         xns: Roo.Toolbar,
546                                         listeners : {
547                                             click : function()
548                                             {
549                                                 Roo.MessageBox.alert("Updating", "Updating the cache");
550                                                 new Pman.Request({
551                                                     url : baseURL + '/Core/RefreshDatabaseCache',
552                                                     method : 'GET',
553                                                     success : function() {
554                                                         Roo.MessageBox.hide();
555                                                     }
556                                                 });
557                                             }
558                                         },
559                                         cls : 'x-btn-text-icon',
560                                         text : "Refresh Schema",
561                                         icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
562                                     }
563                                 ]
564                             },
565                             colModel : [
566                                 {
567                                     xtype: 'ColumnModel',
568                                     xns: Roo.grid,
569                                     dataIndex : 'table',
570                                     header : 'Table',
571                                     width : 200,
572                                     renderer : function(v) { return String.format('{0}', v); }
573                                 }
574                             ]
575                         }
576                     }
577                 ],
578                 west : {
579                     xtype: 'LayoutRegion',
580                     xns: Roo,
581                     split : true,
582                     width : 150
583                 },
584                 center : {
585                     xtype: 'LayoutRegion',
586                     xns: Roo
587                 }
588             }
589         };
590     }
591 });