PHP Classes

File: web/bundles/Raptor/js/DoctrineGenerator/DoctrineGenerator.js

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/bundles/Raptor/js/DoctrineGenerator/DoctrineGenerator.js   Download  
File: web/bundles/Raptor/js/DoctrineGenerator/DoctrineGenerator.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 15,028 bytes
 

Contents

Class file image Download
Ext.onReady(function() { new Generator.View(); }); Raptor.Animated(); /* * To change this template, choose Tools | Templates * and open the template in the editor. */ Ext.define('Generator.View', { extend: 'Ext.Viewport', layout: 'fit', initComponent: function() { this.items=new Generator.Panel(); this.callParent(); } }); Ext.define('Generator.Panel',{ extend:'Ext.Panel', layout: { type: 'border', padding: 5 }, title: "", header:false, initComponent:function(){ this.adicionar=new Ext.Button({disabled:true,iconCls: 'icon-add', text: 'Generate', handler: this.questionModel,scope:this}); this.modificar=new Ext.Button({disabled:true, iconCls: 'btn', text: 'Modificar', handler: this.mostrarModificar,scope:this}); this.eliminar=new Ext.Button({ disabled:true,iconCls: 'icon-del', text: 'Delete', handler:this.eliminarOrganismo,scope:this}); // this.grid=new Generator.Grid(); this.out=new Generator.OutPut(); this.grid=new Generator.Grid({ tbar:[this.adicionar] }); this.arbol=new Generator.Tree({ }); this.items=[this.arbol,this.grid]; // this.grid.tbar=[this.adicionar,this.modificar,this.eliminar]; this.win=new Generator.Window(); //Para enviar tanto adicionar como modificar this.win.on('enviado',this.sendEntidad,this); this.callParent(); this.arbol.on('nodeSelected',function (record){ },this) this.arbol.getSelectionModel().on('beforeselect', function(smodel, record) { if(record.get('vendor')===false){ if(this.grid.getSelectionModel().hasSelection()) this.adicionar.enable(); } }, this); this.grid.getSelectionModel().on('beforeselect', function(smodel, record) { if(this.arbol.getSelectionModel().hasSelection() && this.arbol.getSelectionModel().getLastSelected().get('vendor')===false) this.adicionar.enable(); }, this); this.arbol.getSelectionModel().on('beforedeselect', function(smodel, record) { this.adicionar.disable(); }, this); this.grid.getSelectionModel().on('deselect', function(smodel, record) { if(!this.grid.getSelectionModel().hasSelection()) this.adicionar.disable(); }, this); }, mostrarAdicionar:function(){ this.win.mostrar(true); this.win.form.query('#vendor')[0].enable(); if(this.arbol.getSelectionModel().getLastSelected().get('vendor')==true){ this.win.form.query('#vendor')[0].disable(); this.win.form.query('#vendor')[0].setValue(this.arbol.getSelectionModel().getLastSelected().get('text')); } }, mostrarModificar:function(){ this.win.mostrar(false); this.win.form.loadRecord( this.grid.getSelectionModel().getLastSelected()); }, sendEntidad:function(url){ var winForm=this.win; var me=this; if (this.win.form.getForm().isValid()) { this.win.form.getForm().submit({ url: url, waitMsg: 'Wait for this action....', params:{vendor:winForm.getVendor(),definition:winForm.getDefinition()}, failure: function(form, action) { switch (action.failureType) { case Ext.form.action.Action.CLIENT_INVALID: Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values'); break; case Ext.form.action.Action.CONNECT_FAILURE: Ext.Msg.alert('Failure', 'Ajax communication failed'); break; case Ext.form.action.Action.SERVER_INVALID: Ext.Msg.alert('Failure', action.result.msg); } }, }); } }, questionModel:function(){ var Entities=''; for(var i=0;i<this.grid.getSelectionModel().getSelection().length;i++){ Entities+='- '+this.grid.getSelectionModel().getSelection()[i].get('table')+'<br>'; } var question="<div style='height:200px;overflow-y: auto;width:100%'><b>To generate:</b><br><br>"+ "<b>Entities:</b> "+this.grid.getSelectionModel().getSelection().length+"<br>"+ "<b>Repositories:</b> "+this.grid.getSelectionModel().getSelection().length+"<br>"+ "<b>Bundle Entity Directory:</b> <br>"+Entities+"<br>"+ "<b>Bundle Repository Directory:</b> <br>"+Entities+"<br>"+ "<b>Will use the Anotation Code, the setter and </b> <br>"+ "<b> getter methods is the best for you !!</b> <br><br>"+ "<b>Are you shure?</b></div>"; Raptor.msg.show(2,question,this.createModels,this); }, createModels:function(){ var me=this; var Entities=new Array(); for(var i=0;i<this.grid.getSelectionModel().getSelection().length;i++){ Entities.push(this.grid.getSelectionModel().getSelection()[i].get('table')); } var wait=Raptor.msg.show(4,'Wait please .....'); Ext.Ajax.request({ url: 'model/create', method: 'POST', params: {name: me.arbol.getSelectionModel().getLastSelected().get('text'),tables:Ext.encode(Entities)}, success: function(response) { var resp=Ext.decode(response.responseText); if(resp.cod!=3) Raptor.msg.show(resp.cod,resp.msg) me.grid.getSelectionModel().deselectAll(); wait.close(); }, failure: function(form, action) { switch (action.failureType) { case Ext.form.action.Action.CLIENT_INVALID: Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values'); break; case Ext.form.action.Action.CONNECT_FAILURE: Ext.Msg.alert('Failure', 'Ajax communication failed'); break; case Ext.form.action.Action.SERVER_INVALID: Ext.Msg.alert('Failure', action.result.msg); } wait.close(); } }); } }) Ext.define('Generator.Window',{ extend:'Ext.Window', width:370, autoHeight:true, modal:true, closeAction:'hide', layout:'fit', initComponent:function(){ this.items=this.createFormulario(); this.aceptar=new Ext.Button({ iconCls: 'icon-acept', text: 'Acept', handler: this.aceptar,scope:this}); this.cancelar=new Ext.Button({ iconCls: 'icon-cancel', text: 'Cancel', handler: this.cerrar,scope:this}); this.buttons=[this.cancelar,this.aceptar]; this.addEvents('enviado'); this.form.query('#vendor')[0].on('keyup',function(){ this.createDefinition() },this); this.form.query('#bundle')[0].on('keyup',function(){ this.createDefinition() },this); this.form.query('#vendor')[0].on('change',function(){ this.createDefinition() },this); this.callParent(); }, aceptar:function(){ this.fireEvent('enviado','generate/create') }, getVendor:function(){ return this.form.query('#vendor')[0].getValue(); }, getBundle:function(){ return this.form.query('#bundle')[0].getValue(); }, getDefinition:function(){ return this.definition; }, createDefinition:function(){ var vendor=this.form.query('#vendor')[0].getValue(); var bundle=this.form.query('#bundle')[0].getValue(); this.definition="\\"+vendor+'\\'+bundle+'Bundle'; var definitionView='<b style="color:black">Bundle Definition:&nbsp;&nbsp;<br></b><b style="color:black">\\</b><b style="color:green">'+vendor+'</b><b style="color:black">\\</b><b style="color:black">'+bundle+'</b><b style="color:blue">Bundle</b>'; this.form.query('#definition')[0].setText(definitionView,false); }, cerrar:function(){ this.hide(); }, mostrar:function(arg){ if(arg){ this.mod=false; this.setTitle("Create Bundle"); }else{ this.setTitle("Create Bundle"); this.mod=true; } this.form.getForm().reset(); this.show(); }, createFormulario:function(){ this.form= new Ext.FormPanel({ labelAlign: 'top', frame: true, autoHeight:true, layout:'anchor', bodyStyle: 'padding:5px 5px 5px 5px', items: [{ xtype: 'textfield', fieldLabel: 'Vendor Name', itemId:'vendor', allowBlank: false, maxLength: 15, regex:/^[a-zA-Z0-9]+$/, enableKeyEvents:true, width:'100%', anchor: '100%', labelAlign: 'top', name: 'vendor' },{ xtype: 'textfield', fieldLabel: 'Bundle Name', itemId:'bundle', allowBlank: false, maxLength: 30, enableKeyEvents:true, regex:/^[a-zA-Z0-9]+$/, blankText: 'The Bundle need a name', width:'100%', anchor: '100%', labelAlign: 'top', name: 'bundle' },{ xtype: 'label', text: '', itemId:'definition', margin: '10 10 10 10' }] }); return this.form; } }) Ext.define('Generator.Tree', { extend:'Ext.tree.Panel', title: 'Vendor/Bundle', width:400, margin:'0 5 0 0', region: 'west', root:{text:'src',expanded:true}, rootVisible: true, initComponent:function(){ this.store=this.createStore(); this.loadMask={store: this.getStore()}; this.bbar=new Ext.Button({ disabled:false,iconCls: 'icon-update', text: '', handler:this.refresh,scope:this}); this.callParent(); }, listeners:{ afterrender:function(store){ this.setLoading(true); }, beforeitemexpand:function(n){ }, load:function(){ }, select:function( obj, record, index, eOpts ){ this.fireEvent('nodeSelected',record); }, }, refresh:function(){ var me=this; this.getStore().reload({ callback: function() { me.collapseNode(me.getRootNode(), false, function() { me.expandNode(me.getRootNode()) }); }, scope:this }); }, createStore:function(){ var me=this; return Ext.create('Ext.data.TreeStore', { fields: [ {name: 'text'}, {name: 'id'}, {name: 'namespace'}, {name: 'vendor'} ], proxy: { type: 'ajax', url: 'bundles', actionMethods: { //Esta Linea es necesaria para el metodo de llamada POST o GET read: 'POST' }, reader: { totalProperty: "cantidad_filas" } }, listeners:{ beforeload:function(){ me.setLoading(true); }, load:function(){ // me.setLoading(false); } } }) } }); Ext.define('Generator.OutPut',{ extend:'Ext.Panel', layout: { type: 'border', padding: 5 }, title:'Output', region:'center', bodyStyle:'background:white;padding:20px;overflow: scroll-y', header:true, initComponent:function(){ this.callParent(); }, html:'<b style="color:gray">>> Ouput Console - RAPTOR NEMESIS</b>' }) Ext.define('Generator.Grid',{ extend:'Ext.grid.GridPanel', frame: false, region: 'center', iconCls: 'icon-table', title:'Model Generator', columns: [ {header: 'Table', width: 200, flex: 1, dataIndex: 'table'} ], initComponent: function() { this.store=this.createStore(); var me=this; this.loadMask={store: this.getStore()}; // this.bbar= new Ext.PagingToolbar({ // pageSize: 100, // id: 'ptbaux', // store: me.getStore(), // displayInfo: true // // }); this.selModel=this.createSm() ; this.callParent(); this.store.on('load',function(){ this.getSelectionModel().deselectAll(); },this) }, createSm:function(){ return Ext.create('Ext.selection.CheckboxModel', {mode: 'MULTI'}); }, getStore:function(){ return this.store; }, createStore:function(){ return new Ext.data.Store({ autoLoad:true, fields: [ {name: 'table'} ], proxy: { type: 'ajax', url: 'model/listSchema', actionMethods: { //Esta Linea es necesaria para el metodo de llamada POST o GET read: 'POST' }, reader: { totalProperty: "cantidad_filas" } } }) } });