X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Pman.js;h=41bad06d3be441a81c615146db5db9abe41d49cb;hb=7e9cdd246cc8bba1ce46a4db263a0f49b7cbc5a0;hp=f509a75350caa3905969c18da6877784db793393;hpb=c60b7406a91f9e094d5bdb241272284060d844ee;p=Pman.Core diff --git a/Pman.js b/Pman.js index f509a753..41bad06d 100644 --- a/Pman.js +++ b/Pman.js @@ -19,8 +19,26 @@ if (typeof(_T) == 'undefined') { _T={};} -Roo.XComponent.on('register', function(e) { return Pman.xregister(e); }); +Roo.XComponent.on('register', function(e) { if (typeof(Pman) != 'undefined') { return Pman.xregister(e); } return true; }); +Roo.XComponent.on('beforebuild', function(e) { if (typeof(Pman) != 'undefined') { return Pman.xbeforebuild(e); } return true; }); +Roo.XComponent.on('buildComplete', + function() { + + Pman.layout.getRegion('center').showPanel(0); + Pman.layout.endUpdate(); + Pman.addTopToolbar(); + Pman.finalize(); + Pman.fireEvent('load',this); + + if (!Pman.layout.getRegion('south').panels.length) { + Pman.layout.getRegion('south').hide(); + } + + +} ); + +//Roo.debug = 1; Pman = new Roo.Document( @@ -100,7 +118,17 @@ Pman = new Roo.Document( }, - + fakeRoot : new Roo.XComponent( { + modKey : '000', + module : 'Pman', + region : 'center', + parent : false, + isTop : true, + name : "Pman Base", + disabled : false, + permname: '' , + render : function (el) { this.el = this.layout; } + }), layout: false, @@ -148,17 +176,14 @@ Pman = new Roo.Document( } }); - - - Pman.register({ - modKey : '000', - module : Pman, - region : 'center', - parent : Pman, - name : "Pman Base", - disabled : false, - permname: '' - }); + this.fakeRoot.layout = this.layout; + /* + Pman.register( Roo.apply(this.fakeRoot, { + layout : this.layout + + + } ) ); + */ // creates all the modules ready to load.. @@ -198,23 +223,8 @@ Pman = new Roo.Document( this.layout.beginUpdate(); Pman.building = true; - - this.buildModules(this, - function() { - - _this.layout.getRegion('center').showPanel(0); - _this.layout.endUpdate(); - _this.addTopToolbar(); - _this.finalize(); - _this.fireEvent('load',this); - - if (!_this.layout.getRegion('south').panels.length) { - _this.layout.getRegion('south').hide(); - } - - - } - ); + Roo.XComponent.build(); + @@ -407,13 +417,14 @@ Pman = new Roo.Document( onLoadTrackCall : function(id,cb, cls) { Roo.get(document.body).mask("Loading Document details"); - Pman.request({ + new Pman.Request({ url: baseURL + '/Roo/Documents.html', params: { _id: id }, method: 'GET', - success : function(data) { + success : function(res) { + var data = res.data; Roo.get(document.body).unmask(); @@ -550,9 +561,9 @@ Pman = new Roo.Document( } // what about the toolbar?? tab.grid.getView().mainWrap.mask("Deleting"); - Pman.request({ + new Pman.Request({ url: baseURL + '/Roo/'+tbl+'.php', - method: 'GET', + method: 'POST', params: { _delete : r.join(',') }, @@ -609,10 +620,13 @@ Pman = new Roo.Document( }, /** * Depreciated - USE new Pman.Request - * + * We need to replace all the uses with this, however the api is slightly different, + * the success argument is res.data, not res.. * */ request : function(c) { + //return new Pman.Request(c); + var r= new Roo.data.Connection({ timeout : typeof(c.timeout) == 'undefined' ? 30000 : c.timeout }); @@ -655,6 +669,7 @@ Pman = new Roo.Document( scope: this }); + }, @@ -786,8 +801,8 @@ Pman = new Roo.Document( { // work out owner.. - if (!this.appModules === false) { - this.appModules = typeof(AppModules ) == 'undefined'? [] : + if (!Pman.appModules === false) { + Pman.appModules = typeof(AppModules ) == 'undefined'? [] : AppModules.split(','); } @@ -802,20 +817,13 @@ Pman = new Roo.Document( // previously we did not a good naming policy for module and parts // most things that are called module here, really are 'parts' // new versions should have 'part' as [ module : part ] - - - if (typeof(obj.part) != 'undefined') { - + if (typeof(obj.part) != 'undefined') { + var permname = obj.part.join('.'); // we now have permission... // obj.moduleOwner '.' lname - - if (this.hasPermExists(permname) && !this.hasPerm(permname,'S')) { - // it's a turned off permission... - Roo.log(permname + " is Disabled for this user"); - obj.disabled = true; - return; - } + + if (appDisabled.indexOf(permname) > -1) { Roo.log(permname + " is Disabled for this site"); obj.disabled = true; @@ -825,7 +833,18 @@ Pman = new Roo.Document( } + + + if ( obj.isTop) { + // false parent... use it.. + return; + } + + if (obj.parent === Pman || obj.parent == 'Pman') { + Roo.log("PARENT OF : " + obj.name + " replacing with fake"); + obj.parent = Pman.fakeRoot; + } if (typeof(obj.parent) == 'undefined') { console.log("Parent is undefined"); @@ -852,6 +871,39 @@ Pman = new Roo.Document( }, + /** + * fired before building on each compoenent + * used to apply permissions. + */ + + xbeforebuild : function(obj) + { + if (typeof(obj.part) != 'undefined') { + + if (!obj.part[1].length) { + obj.part[1] = obj.part[0]; + } + var permname = obj.part.join('.'); + + Roo.log("CHECKING: "+ permname); + + // we now have permission... + // obj.moduleOwner '.' lname + + if (Pman.hasPermExists(permname) && !Pman.hasPerm(permname,'S')) { + // it's a turned off permission... + Roo.log(permname + " is Disabled for this user"); + obj.disabled = true; + return; + } + + + + } + + + }, + /** * DEPRICATED : use Roo.XComponents now.. * @@ -870,125 +922,67 @@ Pman = new Roo.Document( //this.xregister(obj); - Roo.log("CALLING XComponent register with : " + obj.name); - - // this will call xregister as it's the on.register handler.. - Roo.XComponent.register(obj); - /* - - if (obj.disabled) { - return; - } + // old style calls go in here.. + // we need to convert the object so that it looks a bit like an XCompoenent.. - if (!obj.parent.modules) { - obj.parent.modules = new Roo.util.MixedCollection(false, function(o) { return o.modKey }); - } - - obj.parent.modules.add(obj); - */ - }, - - - buildModules : function(parent, onComplete) - { - Roo.XComponent.build(); - /* - var _this = this; - var cmp = function(a,b) { - return String(a).toUpperCase() > String(b).toUpperCase() ? 1 : -1; - - }; - if (!parent.modules) { - return; - } - parent.modules.keySort('ASC', cmp ); - var mods = []; - - - // add modules to their parents.. - var addMod = function(m) { - // console.log(m.modKey); - - mods.push(m); - if (m.module.modules) { - m.module.modules.keySort('ASC', cmp ); - m.module.modules.each(addMod); - } - if (m.finalize) { - m.finalize.name = m.name + " (clean up) "; - mods.push(m.finalize); + obj.render = function() + { + if (!this.parent) { + Roo.log("Skip module, as parent does not exist"); + Roo.log(this); + return; } - - } - - parent.modules.each(addMod); - //this.allmods = mods; - //console.log(mods); - //return; - if (!mods.length) { - if (onComplete) onComplete(); - return; - } - // flash it up as modal - so we store the mask!? - Roo.MessageBox.show({ title: 'loading' }); - Roo.MessageBox.show({ - title: "Please wait...", - msg: "Building Interface...", - width:450, - progress:true, - closable:false, - modal: false - - }); - var n = 0; - var progressRun = function() { - - var mod = mods[n]; - - - Roo.MessageBox.updateProgress( - (n+1)/mods.length, "Building Interface " + (n+1) + - " of " + mods.length + - (mod.name ? (' - ' + mod.name) : '') - ); - - - - if (typeof(mod) == 'function') { - mod(); + //if (typeof(mod) == 'function') { + // mod(); - } else if (typeof(mod.region) == 'undefined') { + if (typeof(this.region) == 'undefined') { Roo.log("Module does not have region defined, skipping"); - Roo.log(mod); - - } else if (mod.parent.layout && !mod.module.disabled) { - // honour permname setings.. - if (mod.permname && mod.permname.length) { - if (Pman.hasPerm(mod.permname, 'S')) { - mod.module.add(mod.parent.layout, mod.region); - } - } else { - mod.module.add(mod.parent.layout, mod.region); - } + Roo.log(this); + return; + } + if (this.module.disabled) { + Roo.log("Module disabled, should not rendering") + Roo.log(this); + return; } - - n++; - if (n >= mods.length) { - onComplete(); + if (!this.parent.layout) { + Roo.log("Module parent does not have property layout.") + Roo.log(this); return; } + + // honour DEPRICATED permname setings.. + // new code should use PART name, and matching permissions. + if (this.permname && this.permname.length) { + if (!Pman.hasPerm(this.permname, 'S')) { + return; + } + } + this.add(this.parent.layout, this.region); + this.el = this.layout; - progressRun.defer(10, Pman); - } - progressRun.defer(1, Pman); - */ + + + }; + // map some of the standard properties.. + obj.order = obj.modKey; + // a bit risky... - }, - + + + // the other issue we have is that + + + // Roo.log("CALLING XComponent register with : " + obj.name); + + // this will call xregister as it's the on.register handler.. + Roo.XComponent.register(obj.isTop ? obj : Roo.apply(obj.module, obj)); + + } , invertColor : function(c) { // read..