From d6e658b38863443660be93bbe849709088d8a3f7 Mon Sep 17 00:00:00 2001
From: Renaud Le Gac <renaud.legac@free.fr>
Date: Wed, 15 Dec 2010 18:45:47 +0000
Subject: [PATCH] Add the minified version of the javascript library.

---
 static/plugin_dbui/dbui.min.js | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 static/plugin_dbui/dbui.min.js

diff --git a/static/plugin_dbui/dbui.min.js b/static/plugin_dbui/dbui.min.js
new file mode 100644
index 00000000..0b8e92fb
--- /dev/null
+++ b/static/plugin_dbui/dbui.min.js
@@ -0,0 +1 @@
+Ext.namespace("App");App.dburl="/"+App.name+"/plugin_dbui/database";App.cfgSvcMethods={url:"/"+App.name+"/plugin_dbui/configuration",type:"remoting",actions:{cfgSvc:[{name:"getFormModel",len:1},{name:"getGridModel",len:1},{name:"getTables",len:0}]}};App.loadMathJax=function(callback,scope){var path="/"+App.name+"/static/plugin_mathjax/MathJax.js";Ext.Loader.load([path],callback,scope)};Ext.namespace("App.form");App.form.ComboBox=Ext.extend(Ext.form.ComboBox,{model:null,mode:"remote",editable:false,selectOnFocus:true,triggerAction:"all",typeAhead:true,initComponent:function(){if(this.fieldLabel&&!this.emptyText){this.emptyText="Select a "+this.fieldLabel+" ..."}if(!this.store){this.store=new App.data.JsonStore({url:App.dburl,model:this.model.store,debug:App.debug,sortInfo:{field:this.displayField},autoLoad:true,})}App.form.ComboBox.superclass.initComponent.call(this);this.store.on("load",function(){this.setValue(this.getValue())},this)},});Ext.reg("xcombobox",App.form.ComboBox);Ext.namespace("App.form");App.form.FormPanel=Ext.extend(Ext.form.FormPanel,{autoScroll:true,bodyStyle:"padding:5px 5px 0",buttons:[{text:"Clear",ref:"../buttonClear",},{text:"Create",ref:"../buttonCreate"},{text:"Update",ref:"../buttonUpdate",hidden:true},{text:"Delete",ref:"../buttonDelete",hidden:true}],defaults:{anchor:"100%"},defaultType:"textfield",frame:true,initComponent:function(){App.form.FormPanel.superclass.initComponent.call(this);this.buttonClear.on("click",function(){this.reset()},this.getForm())},setFieldsDisable:function(bool){var form=this.getForm();for(var i=0;i<form.items.length;i++){form.items.itemAt(i).setDisabled(bool)}},showButtonDelete:function(){this.buttonDelete.show();this.buttonCreate.hide();this.buttonUpdate.hide()},showButtonCreate:function(){this.buttonDelete.hide();this.buttonCreate.show();this.buttonUpdate.hide()},showButtonUpdate:function(){this.buttonDelete.hide();this.buttonCreate.hide();this.buttonUpdate.show()},});Ext.reg("xform",App.form.FormPanel);Ext.namespace("App.form");App.form.EntryFormPanel=Ext.extend(App.form.FormPanel,{model:null,initComponent:function(){if(!this.model){throw new Error("the property model is missing !!!")}this.items=this.model.items;this.url=App.dburl;App.form.EntryFormPanel.superclass.initComponent.call(this);this.buttonCreate.on("click",this.onSubmit,this);var fields=this.findByType("field");for(var i=0;i<fields.length;i++){var field=fields[i];if(field.tipText){field.on("render",function(c){new Ext.ToolTip({target:c.getEl(),title:c.fieldLabel,anchor:"left",trackMouse:false,html:Ext.util.Format.htmlEncode(c.tipText),})})}}},onSubmit:function(){this.getForm().submit({clientValidation:true,url:this.url,method:"POST",params:{debug:App.debug,table:this.model.table,xaction:"create"},reset:true,waitMsg:"Saving Record...",failure:function(form,action){if(action.response){if(action.response.status!=200){Ext.MessageBox.alert("Error",action.response.responseText)}}},})},});Ext.reg("xentry",App.form.EntryFormPanel);Ext.namespace("App.grid");App.grid.Grid=Ext.extend(Ext.grid.GridPanel,{model:null,iconCls:"silk-grid",frame:false,viewConfig:{forceFit:true},editor:null,initComponent:function(){if(!this.model){throw new Error("the property model is missing !!!")}this.title=this.model.title;this.store=new App.data.JsonStore({url:App.dburl,model:this.model.store,debug:App.debug});this.columns=this.model.colModel;this.tbar=[];this.bbar=new Ext.PagingToolbar();this.bbar.hide();App.grid.Grid.superclass.initComponent.call(this);this.on("beforerender",this.onBeforeRender)},onBeforeRender:function(grid){var isPagingPlugin=false;if("plugins" in grid){for(var i=0;i<grid.plugins.length;i++){if("ptype" in grid.plugins[i]){if(grid.plugins[i].ptype=="pGridPaging"){isPagingPlugin=true;break}}}}if(isPagingPlugin){grid.store.load({params:{start:0,limit:1}})}else{grid.store.load()}return true}});Ext.reg("xgrid",App.grid.Grid);Ext.namespace("App.grid");App.grid.GridFilter=Ext.extend(Ext.form.FieldSet,{filterConditions:{},initialFilterConditions:[],pagingToolbar:null,store:null,defaults:{anchor:"100%",enableKeyEvents:true},initComponent:function(){App.grid.GridFilter.superclass.initComponent.call(this);var fields=this.findByType("field");for(var i=0;i<fields.length;i++){field=fields[i];if(field.xtype=="xcombobox"){field.on("select",this.onChange,this)}else{field.on("keyup",this.onChange,this,{buffer:500})}}},bind:function(grid){this.store=grid.getStore();if(grid.pagingInitialized){this.pagingToolbar=grid.getBottomToolbar()}var baseParams=this.store.baseParams;for(var i=0;i<baseParams.where.length;i++){this.initialFilterConditions.push(baseParams.where[i])}},onChange:function(field){this.setupCondition(field)},onReset:function(){var fields=this.findByType("field");for(var i=0;i<fields.length;i++){fields[i].reset()}this.filterConditions={};this.store.baseParams.where=this.initialFilterConditions;this.updateStore()},setupCondition:function(field){var value=field.getValue();var where=field.name+" "+field.filterOperator+" '"+value+"'";if(value==""){delete this.filterConditions[field.name]}else{this.filterConditions[field.name]=where}var conditions=[];for(var i=0;i<this.initialFilterConditions.length;i++){conditions.push(this.initialFilterConditions[i])}for(k in this.filterConditions){conditions.push(this.filterConditions[k])}this.store.baseParams.where=conditions;this.updateStore()},updateStore:function(){if(this.pagingToolbar){this.pagingToolbar.doRefresh()}else{this.store.load()}}});Ext.reg("xgridfilter",App.grid.GridFilter);Ext.namespace("App.grid");App.grid.MathJax=Ext.extend(Object,{init:function(grid){grid.getView().on("refresh",function(){MathJax.Hub.PreProcess();MathJax.Hub.Process()})},});Ext.preg("pGridMathJax",App.grid.MathJax);Ext.namespace("App.grid");App.grid.Paging=Ext.extend(Object,{ptype:"pGridPaging",init:function(grid){grid.pagingInitialized=false;var bbar=grid.getBottomToolbar();bbar.bindStore(grid.store);bbar.add("-","Rows per page",{xtype:"slider",plugins:new Ext.slider.Tip(),listeners:{changecomplete:this.onChangePageSize,scope:bbar},minValue:1,width:100,},"->",{xtype:"button",text:"Export to CSV",listeners:{click:this.onExport},});bbar.show();grid.store.on("load",this.onStoreLoad,grid)},onChangePageSize:function(slider,newValue,thumb){var bbar=this;bbar.pageSize=newValue;bbar.moveFirst()},onExport:function(button,event){Ext.Msg.alert("Warning","Functionality not yet implemented")},onStoreLoad:function(store,records,options){var grid=this;if(grid.pagingInitialized){return }grid.pagingInitialized=true;var bbar=grid.getBottomToolbar();var slider=bbar.findByType("slider")[0];var nRows=10;slider.maxValue=store.totalLength;slider.setValue(nRows);bbar.pageSize=nRows;bbar.moveFirst()},});Ext.preg("pGridPaging",App.grid.Paging);Ext.namespace("App.grid");App.grid.RowEditor=Ext.extend(Ext.Window,{formModel:null,ptype:"pgridroweditor",autoScroll:true,closeAction:"hide",constrainHeader:true,defaults:{autoScroll:true},modal:true,plain:true,initComponent:function(){this.items=[this.formModel];App.grid.RowEditor.superclass.initComponent.call(this)},init:function(grid){this.grid=grid;this.formPanel=this.items.first();grid.editor=this;this.grid.selModel=new Ext.grid.RowSelectionModel({singleSelect:true,});this.grid.store.autoSave=false;this.grid.store.on("save",this.endEdit,this);this.grid.store.on("update",function(store,rec,op){if(op==Ext.data.Record.COMMIT&&Ext.version>="3.2.1"){var values=this.formPanel.getForm().getValues();for(item in values){rec.data[item]=values[item]}var combos=this.findByType("xcombobox");for(var i=0;i<combos.length;i++){var combo=combos[i];var cbrec=combo.findRecord(combo.valueField,combo.getValue());rec.data[combo.displayField]=cbrec.get(combo.displayField)}}},this)},addRowFromForm:function(){if(!this.formPanel.getForm().isValid()){Ext.Msg.alert("Error","Few fields in the form are not valid !");return }var record=new this.grid.store.recordType();this.updateRecord(record);var rec=this.grid.getSelectionModel().getSelected();var i=this.grid.store.indexOf(rec);this.grid.store.insert(i+1,record);this.grid.store.save()},editRowFromForm:function(){if(!this.formPanel.getForm().isValid()){Ext.Msg.alert("Error","Few fields in the form are not valid !");return }var record=this.getSelected();this.updateRecord(record);this.grid.store.save()},endEdit:function(store,batch,data){this.formPanel.getForm().reset();this.hide()},getSelected:function(){var rec=this.grid.getSelectionModel().getSelected();if(!rec){Ext.MessageBox.alert("Warning","Select a row please");return false}return rec},onAddRow:function(){this.setTitle("Create a new record...");this.show();this.formPanel.showButtonCreate();this.formPanel.buttonCreate.on("click",this.addRowFromForm,this)},onDeleteRow:function(){var record=this.getSelected();if(!record){return }this.grid.store.remove(record);this.grid.store.save()},onDuplicateRow:function(){var record=this.getSelected();if(!record){return }this.setTitle("Duplicate the record...");this.show();this.formPanel.showButtonCreate();this.formPanel.getForm().loadRecord(record);this.formPanel.buttonCreate.on("click",this.addRowFromForm,this)},onEditRow:function(){var record=this.getSelected();if(!record){return }this.setTitle("Update the record...");this.show();this.formPanel.showButtonUpdate();this.formPanel.getForm().loadRecord(record);this.formPanel.buttonUpdate.on("click",this.editRowFromForm,this)},onViewRow:function(){var record=this.getSelected();if(!record){return }this.setTitle("View the record...");this.show();this.formPanel.showButtonCreate();this.formPanel.getForm().loadRecord(record);this.formPanel.buttonClear.hide();this.formPanel.buttonCreate.hide();this.on("hide",function(){this.formPanel.buttonClear.show();this.formPanel.buttonCreate.show()},this)},updateRecord:function(record){var values=this.formPanel.getForm().getValues();for(item in values){record.set(item,values[item])}var combos=this.findByType("xcombobox");for(var i=0;i<combos.length;i++){var combo=combos[i];var rec=combo.findRecord(combo.valueField,combo.getValue());record.set(combo.displayField,rec.get(combo.displayField))}}});Ext.preg("pgridroweditor",App.grid.RowEditor);Ext.namespace("App.grid");App.grid.RowEditorContextMenu=Ext.extend(Object,{ptype:"pGridRowEditorContextMenu",init:function(grid){var menu=new Ext.menu.Menu();if(!grid.editor){grid.editor=new App.grid.RowEditor({formModel:grid.model.formModel,table:grid.model.table,});grid.editor.init(grid)}grid.addListener("containercontextmenu",this.onContainerContextMenu,menu);grid.addListener("headercontextmenu",this.onHeaderContextMenu,menu);grid.addListener("rowcontextmenu",this.onRowContextMenu,menu);menu.add({text:"Add",iconCls:"silk-add",handler:grid.editor.onAddRow,scope:grid.editor},"-",{text:"Delete",iconCls:"silk-delete",handler:grid.editor.onDeleteRow,scope:grid.editor},"-",{text:"Duplicate",iconCls:"silk-clone",handler:grid.editor.onDuplicateRow,scope:grid.editor},{text:"Update",iconCls:"silk-update",handler:grid.editor.onEditRow,scope:grid.editor},"-",{text:"View",iconCls:"silk-view",handler:grid.editor.onViewRow,scope:grid.editor})},onContainerContextMenu:function(grid,event){var menu=this;event.stopEvent();menu.showAt(event.getXY())},onHeaderContextMenu:function(grid,columIndex,event){event.stopEvent()},onRowContextMenu:function(grid,rowIndex,event){var menu=this;event.stopEvent();grid.selModel.selectRow(rowIndex);menu.showAt(event.getXY())},});Ext.preg("pGridRowEditorContextMenu",App.grid.RowEditorContextMenu);Ext.namespace("App.grid");App.grid.RowEditorToolbar=Ext.extend(Object,{ptype:"pGridRowEditorToolbar",init:function(grid){if(!grid.editor){grid.editor=new App.grid.RowEditor({formModel:grid.model.formModel,table:grid.model.table,});grid.editor.init(grid)}var toolbar=grid.getTopToolbar();toolbar.add([{text:"Add",iconCls:"silk-add",handler:grid.editor.onAddRow,scope:grid.editor}," ",{text:"Delete",iconCls:"silk-delete",handler:grid.editor.onDeleteRow,scope:grid.editor}," ",{text:"Duplicate",iconCls:"silk-clone",handler:grid.editor.onDuplicateRow,scope:grid.editor}," ",{text:"Update",iconCls:"silk-update",handler:grid.editor.onEditRow,scope:grid.editor}," ",{text:"View",iconCls:"silk-view",handler:grid.editor.onViewRow,scope:grid.editor},"-"])},});Ext.preg("pGridRowEditorToolbar",App.grid.RowEditorToolbar);Ext.namespace("App.data");App.data.JsonWriter=Ext.extend(Ext.data.JsonWriter,{encode:true,encodeDelete:true,constructor:function(config){App.data.JsonWriter.superclass.constructor.call(this,config)},render:function(params,baseParams,data){var tmp=Ext.apply({},baseParams);for(var el in baseParams){if(el!="table"&&el!="debug"){delete baseParams[el]}}App.data.JsonWriter.superclass.render.apply(this,arguments);Ext.apply(baseParams,tmp)}});App.data.httpException=function(dataproxy,type,action,options,response,args){if(response.status==200){var dict=Ext.decode(response.responseText);var text=new String();for(item in dict.errors){text+="Field <i>"+item+"</i>: "+dict.errors[item]+"<br>"}text+="The record is not <i>"+action+"</i> in the database.";Ext.MessageBox.show({title:"DATABASE ERROR",msg:text,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR})}else{Ext.MessageBox.show({title:response.statusText,msg:response.responseText,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR})}};App.data.JsonStore=Ext.extend(Ext.data.Store,{model:null,debug:false,constructor:function(config){Ext.apply(this,config);if(!this.model){throw new Error("the property model is missing !!!")}if(!config.reader){this.reader=new Ext.data.JsonReader({root:"data",fields:this.model.fields,totalProperty:"results",idProperty:this.model.idProperty,})}if(!config.writer){this.writer=new App.data.JsonWriter()}App.data.JsonStore.superclass.constructor.apply(this);for(var el in this.model){if(el!="fields"){this.baseParams[el]=this.model[el]}}if(this.debug){this.baseParams.debug=true}this.addListener("exception",App.data.httpException)}});Ext.namespace("App");App.Mgr=Ext.extend(Object,{constructor:function(config){Ext.apply(this,config);App.Mgr.superclass.constructor.apply(this);App.withMathJax?App.loadMathJax(this.configure,this):this.configure()},configure:function(){cfgSvc.getTables(this.launch,this)},launch:function(provider,response){var tables=response.result.tables;var formInTree={topNodeName:"Forms",nodesId:tables,nodesText:response.result.tablesText,tabTitlePrefix:"Form",ptype:"pInTreeForm",};var tableInTree={topNodeName:"Tables",nodesId:tables,nodesText:response.result.tablesText,tabTitlePrefix:"Table",ptype:"pInTreeGrid",};var cfg=Ext.apply({plugins:[formInTree,tableInTree],},App.viewport.cfg.withTreeAndTabPanels);var viewport=new Ext.Viewport(cfg)},});Ext.namespace("App.panel");App.panel.MathJax=Ext.extend(Object,{init:function(panel){panel.on("render",this.onPanelRender,this,{single:true})},onPanelRender:function(panel){var updater=panel.body.getUpdater();updater.on("update",this.onProcess)},onProcess:function(e,o){MathJax.Hub.PreProcess();MathJax.Hub.Process()},});Ext.preg("pPanelMathJax",App.panel.MathJax);Ext.namespace("App.form");App.form.SetBox=Ext.extend(Ext.form.ComboBox,{model:null,editable:false,emptyText:"Select...",selectOnFocus:true,triggerAction:"all",typeAhead:true,initComponent:function(){if(!this.model){throw new Error("the property model is missing !!!")}var li=[];for(var i=0;i<this.model.setData.length;i++){li.push([this.model.setData[i]])}this.store=new Ext.data.ArrayStore({fields:[this.model.name],data:li});this.displayField=this.model.name;this.mode="local";App.form.SetBox.superclass.initComponent.call(this)}});Ext.reg("xsetbox",App.form.SetBox);Ext.namespace("App.viewport.cfg");App.viewport.cfg.withTreeAndTabPanels={layout:"border",title:"Ext Layout Browser",items:[{region:"west",title:App.name,width:200,collapsible:true,autoScroll:true,split:true,xtype:"treepanel",rootVisible:false,root:new Ext.tree.TreeNode({id:App.name,text:App.name,}),ref:"treePanel",},{region:"center",xtype:"tabpanel",ref:"tabPanel",autoScroll:true,defaults:{layout:"fit"},}],};Ext.namespace("App.viewport");App.viewport.InTreePanelBase=Ext.extend(Object,{topNodeName:null,nodesId:null,nodesText:null,refactorTools:{},tabTitlePrefix:"",viewport:null,constructor:function(config){Ext.apply(this,config);App.viewport.InTreePanelBase.superclass.constructor.apply(this)},init:function(viewport){this.viewport=viewport;var node=new Ext.tree.TreeNode({id:"/"+App.name+"/"+this.topNodeName,text:this.topNodeName,});var root=viewport.treePanel.getRootNode();root.appendChild(node);if(!this.nodesText){this.nodesText=this.nodesId}for(var i=0;i<this.nodesId.length;i++){var child=new Ext.tree.TreeNode({id:"/"+App.name+"/"+this.topNodeName+"/"+this.nodesId[i],text:this.nodesText[i],leaf:true,});node.appendChild(child);child.on("click",this.onCreateTab,this)}viewport.tabPanel.on("beforeadd",this.addWdg,this)},addWdg:function(container,component,index){},getNodeNameFromId:function(id){var li=id.split("/").reverse();return li[0]},getTopNodeNameFromId:function(id){var li=id.split("/").reverse();return li[1]},onCreateTab:function(node){var tabId=node.id;if(this.viewport.tabPanel.getItem(tabId)){this.viewport.tabPanel.setActiveTab(tabId);return }var table=this.getNodeNameFromId(tabId);var pan=new Ext.Panel({id:tabId,closable:true,title:this.tabTitlePrefix+" "+table,});var tab=this.viewport.tabPanel.add(pan);this.viewport.tabPanel.setActiveTab(tab.id)},});Ext.preg("pInTreeBase",App.viewport.InTreePanelBase);Ext.namespace("App.viewport");App.viewport.InTreePanelForm=Ext.extend(App.viewport.InTreePanelBase,{addWdg:function(container,component,index){if(this.getTopNodeNameFromId(component.id)!=this.topNodeName){return }var table=this.getNodeNameFromId(component.id);cfgSvc.getFormModel(table,function(provider,response){var cfg=response.result;var wdg=Ext.ComponentMgr.create(cfg);component.add(wdg);component.doLayout()},this)},});Ext.preg("pInTreeForm",App.viewport.InTreePanelForm);Ext.namespace("App.viewport");App.viewport.InTreePanelGrid=Ext.extend(App.viewport.InTreePanelBase,{addWdg:function(container,component,index){if(this.getTopNodeNameFromId(component.id)!=this.topNodeName){return }var table=this.getNodeNameFromId(component.id);cfgSvc.getGridModel(table,function(provider,response){var cfg=response.result;var wdg=Ext.ComponentMgr.create(cfg);if("filterModel" in cfg.model){var grid=wdg;var gridfilter=Ext.ComponentMgr.create(cfg.model.filterModel);gridfilter.bind(grid);var wdg=new Ext.Panel({layout:"border",border:false,items:[{region:"center",layout:"fit",items:[grid],},{region:"east",layout:"form",collapsible:true,collapsed:true,defaults:{anchor:"100%"},frame:true,items:[gridfilter],width:300,split:true,buttons:[{text:"reset",ref:"../../resetButton"}],}],});wdg.resetButton.on("click",gridfilter.onReset,gridfilter)}else{}component.add(wdg);component.doLayout()},this)},});Ext.preg("pInTreeGrid",App.viewport.InTreePanelGrid);
\ No newline at end of file
-- 
GitLab