*
* {tag: 'div', style: 'display:block;position:absolute;top:2;left:300;width:100%;height:25px'});
*
+ *
+ * CHANGES
+ * - gtranslate moved to Pman.GoogleTranslate
+ *
+ *
*/
if (typeof(_T) == 'undefined') { _T={};}
+
Pman = new Roo.Document(
subMenuItems : [],
topMenuItems : [],
rightNames: { }, /// register right names here - so they can be translated and rendered.
+ /**
+ * @property {Roo.menu.Menu} pulldownMenu - the 'add menu pulldown, you can use it to add items..
+ *
+ */
+ pulldownMenu : false,
+
+
buildCompleted : false, // flag to say if we are building interface..
events : {
'beforeload' : true, // fired after page ready, before module building.
Roo.get('loading-mask').show();
}
-
-
-
- /*
- Roo.MessageBox.show({
- title: "Please wait...",
- msg: "Building Interface...",
- width:340,
- progress:true,
- closable:false
-
- });
- */
- //Pman.onLoadBuild();
- //Roo.get(document.body).mask("Building Interface");
- //Pman.onLoadBuild.defer(100, Pman);
- //Pman.onLoadBuild();
-
- // },
- //onLoadBuild : function() {
-
+
var _this = this;
this.stime = new Date();
this.layout = new Roo.BorderLayout(document.body, {
//resizeTabs: true,
alwaysShowTabs: true,
minTabWidth: 140
- } /*,
+ } ,
south: {
+ collapsible : true,
+ collapsed : true,
split:false,
- initialSize: 25,
- titlebar: false
+ height: 120,
+ titlebar: false
}
- */
+
});
this.fireEvent('beforeload',this);
this.layout.beginUpdate();
this.layout.add('north', new Roo.ContentPanel('title', 'North'));
var au = Pman.Login.authUser;
- if (au.id > 0 && au.company_id_background_color.length) {
+ if (au.id > 0 && au.company_id_background_color && au.company_id_background_color.length) {
Roo.get('title').dom.style.backgroundColor = '#' + au.company_id_background_color;
Roo.get('headerInformation').dom.style.color = this.invertColor('#' + au.company_id_background_color);
}
_this.addTopToolbar();
_this.finalize();
_this.fireEvent('load',this);
+
+ if (!_this.layout.getRegion('south').panels.length) {
+ _this.layout.getRegion('south').hide();
+ }
+
+
}
);
// since we always add it.. just chop of last item
this.subMenuItems.pop();
- lotb.add(
+ var btn = new Roo.Toolbar.Button(
{
-
text: "Add New Item",
cls: 'x-btn-text-icon',
icon: Roo.rootURL + 'images/default/dd/drop-add.gif',
menu : {
items : this.subMenuItems
}
- } ,'-'
+ }
);
+ this.pulldownMenu = btn.menu;
+ lotb.add(btn, '-');
+
}
lotb.add(
window.onbeforeunload = function(e) {
- var e = e || window.event;
+ e = e || window.event;
var r = "Closing this window will loose changes, are you sure you want to do that?";
// For IE and Firefox
var forceAdmin = function(data)
{
if (!data || !data.id) {
+ //Roo.log("Force Admin");
Pman.Dialog.PersonStaff.show(
{
id : 0,
- company_id : Pman.Login.authUser.company_id * 1,
+ company_id : Pman.Login.authUser.company_id_id * 1,
company_id_name : Pman.Login.authUser.company_id_name
}, function(data) {
forceAdmin(data);
});
return;
}
+ Pman.Login.authUser.company_id_id = data.id;
Pman.Login.authUser.company_id = data.id;
Pman.Login.authUser.company_id_name = data.name;
forceAdmin();
}
if (Pman.Login.authUser.id < 0) {
+ // admin company has been created - create the user..
+ if (Pman.Login.authUser.company_id_id* 1 > 0) {
+ forceAdmin();
+ return;
+ }
+
forceCompany();
/// create account..
},
-
+ // REMOVE THESE
onLoadTrack : function(id,cb) {
},
+ refreshActivePanel : function() {
+ var actpan = this.layout.getRegion('center').getActivePanel();
+ if (actpan.controller && actpan.controller.paging) {
+ actpan.controller.paging.onClick('refresh');
+ return;
+ }
+
+ var agid = Pman.layout.getRegion('center').getActivePanel().id;
+ if (!agid) {
+ return;
+ }
+ Pman.Tab[agid].paging.onClick('refresh');
+ },
+ toCidV : function(data) {
+ return 'C' + data.in_out.substring(0,1) + data.cid;
+ },
+
+
/**
- * eg. has Pman.hasPerm('Admin.Admin_Tab', 'S') == showlist..
+ * hasPerm:
+ * Does the authenticated user have permission to see this.
*
+ * @param {String} name the [Module].[permission] to check for
+ * @param {Char} lvl - which type of permission to use (eg. S=show...)
+ * @returns {Boolean} tue indicates permission allowed
*/
hasPerm: function(name, lvl) {
- if (typeof(Pman.Login.authUser) != 'object') {
- return false;
- }
- if (typeof(Pman.Login.authUser.perms[name]) != 'string') {
- return false;
+ if (
+ (typeof(Pman.Login.authUser) != 'object')
+ ||
+ (typeof(Pman.Login.authUser.perms) != 'object')
+ ||
+ (typeof(Pman.Login.authUser.perms[name]) != 'string')
+ ) {
+ return false;
}
+
return Pman.Login.authUser.perms[name].indexOf(lvl) > -1;
},
-
-
+ /**
+ * hasPermExists:
+ * Is there a permission defined for this (used by module registration.)
+ *
+ * @param {String} name the [Module].[permission] to check for
+ * @returns {Boolean} tue indicates permission exists.
+ */
+ hasPermExists: function(name) {
+ if (
+ (typeof(Pman.Login.authUser) != 'object')
+ ||
+ (typeof(Pman.Login.authUser.perms) != 'object')
+ ||
+ (typeof(Pman.Login.authUser.perms[name]) != 'string')
+ ) {
+ return false;
+ }
+ return true;
+ },
});
}
+
);
+ return '';
},
- refreshActivePanel : function() {
- var actpan = this.layout.getRegion('center').getActivePanel();
- if (actpan.controller && actpan.controller.paging) {
- actpan.controller.paging.onClick('refresh');
- return;
- }
-
- var agid = Pman.layout.getRegion('center').getActivePanel().id;
- if (!agid) {
- return;
- }
- Pman.Tab[agid].paging.onClick('refresh');
- },
- toCidV : function(data) {
- return 'C' + data.in_out.substring(0,1) + data.cid;
- },
+
standardActionFailed : function(f, act, cb) {
Roo.MessageBox.alert("Error", "Error loading details",cb);
},
/**
- *
- * similar to Roo.Ajax, but handles our responses better...
- * c.url
- * c.method
- * c.params
- * c.failure() == failure function..
- * c.success(data) == success function..
- *
+ * Depreciated - USE new Pman.Request
+ *
*
*/
request : function(c) {
}
s = !s;
document.title = s ? msg : oldtitle;
-
+ return false;
}, 1000); // every 120 secs = 2mins..
document.title = msg;
},
+ /**
+ * @property {Array} appModules - array based on AppModules global
+ */
+ appModules : false,
modules : false,
/**
*
* Pman.register({
modKey : '00-admin-xxxx',
- module : Pman.Tab.projectMgr,
+ module : Pman.Tab.projectMgr, << really a components..
+ part : [ 'Admin', 'ProjectManager' ]
+ moduleOwner :
region : 'center',
parent : Pman.layout
})
*
*/
- register : function(obj) {
+ register : function(obj)
+ {
+
+
+ // work out owner..
+ if (!this.appModules === false) {
+ this.appModules = typeof(AppModules ) == 'undefined'? [] :
+ AppModules.split(',');
+ }
+
+
+
+ // ignore registration of objects which are disabled.
+ // global supplied by master.html
+ appDisabled = typeof(appDisabled) == 'undefined' ? [] : appDisabled;
+
+
+ /// design flaw
+ // 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') {
+
+ 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");
+ return;
+ }
+ if (appDisabled.indexOf(permname) > -1) {
+ Roo.log(permname + " is Disabled for this site");
+ return;
+ }
+
+
+ }
+
+
+
if (!obj.parent) {
if (obj.parent === false) {
//console.log('skip module (no parent)' + obj.modkey);
return;
}
-
+ // this is an error condition - the parent does not exist..
+ // technically it should not happen..
+ console.log("Parent is missing");
console.log(obj);
+ return;
}
if (!obj.parent.modules) {
obj.parent.modules = new Roo.util.MixedCollection(false, function(o) { return o.modKey });
if (typeof(mod) == 'function') {
mod();
+ } else if (typeof(mod.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) {
}
} else {
mod.module.add(mod.parent.layout, mod.region);
- }
-
-
+ }
}
},
- gtranslate : function(str, src, dest, cb) {
- // load script:
- var cur = 0;
- var sbits = [];
- var complete = '';
-
- function transbits()
- {
- if ((cur +1) > sbits.length) {
- cb.call(complete);
- return;
- }
- //console.log("SEND : " + sbits[cur]);
-
- gtranslate( sbits[cur], src, dest, function(result) {
- if (typeof(result) == 'object') {
- cb.call(result);
- return;
- }
- complete+= result;
- cur++;
- transbits();
- });
- }
-
- if (str.length > 500) {
- var bits = rec.get('origtxt').split(/\s+/);
- sbits = [''];
- for (var i =0; i < bits.length; i++) {
- if (sbits[cur].length + bits[i].length > 450) {
- cur++;
- sbits[cur] = bits[i] + ' ';
- continue;
- }
- sbits[cur] += bits[i] + ' '
-
- }
- transbits();
- return;
- }
-
-
-
-
-
-
-
-
-
- var x = new Roo.data.ScriptTagProxy({
- url: 'http://ajax.googleapis.com/ajax/services/language/translate',
- callbackParam : 'callback'
-
- });
- x.load(
- {
- v: '1.0',
- q : str,
- langpair : src + '|' +dest
- }, // end params.
- { // reader
- readRecords : function (o) {
- if (!o.responseData) {
- return o;
- }
- return o.responseData.translatedText;
- }
- },
- function (result) {
- cb(result);
- },
- this,
- []
- );
-
-
-
- } ,
invertColor : function(c)
{
// read..