check file exists
[Pman.Core] / Pman.js
diff --git a/Pman.js b/Pman.js
index c1b6c7a..618ddda 100644 (file)
--- a/Pman.js
+++ b/Pman.js
@@ -1,30 +1,26 @@
-//<script type="text/javascript">
-
 /**
  * 
- * >>> Pman.layout.getRegion('center').tabs.stripWrap
- * ==> tab.???
- * var tbh = Pman.layout.getRegion('center').tabs.stripWrap.child('div').createChild(
- * 
- * {tag: 'div', style: 'display:block;position:absolute;top:2;left:300;width:100%;height:25px'});
- * 
- * 
- *  CHANGES
- *  - gtranslate moved to Pman.GoogleTranslate
- * 
- * 
+ *  
+ *  This is the main Pman class
+ *  - it's a bit too heavy at present - needs to go on a diet....
  */
  
+// translation..
 if (typeof(_T) == 'undefined') { _T={};}
 
 
-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() {
-                    
+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.building = false;   
         Pman.layout.getRegion('center').showPanel(0);
         Pman.layout.endUpdate(); 
         Pman.addTopToolbar();  
@@ -36,7 +32,8 @@ Roo.XComponent.on('buildComplete',
         }
     
     
-} );
+    }
+);
 
 //Roo.debug = 1;
   
@@ -238,6 +235,11 @@ Pman = new Roo.Document(
         
        
         //console.log( "t7:" + ((new Date())-stime));
+        if (!Pman.layout.getRegion('center').tabs) {
+                Roo.log("Error could not find tabs? - not adding toolbar?");
+                return;
+        }
+        
         var se = Pman.layout.getRegion('center').tabs.stripEl;
         var tbh = se.createChild( 
                 { tag: 'td', style: 'width:100%;'  });
@@ -248,20 +250,23 @@ Pman = new Roo.Document(
             var tbl = se.child('table', true);
             tbl.setAttribute('width', '100%');
         }
-        lotb.add(
-            new Roo.Toolbar.Fill(), 
-     
-            {
-                text: "Change Password",
-                cls: 'x-btn-text-icon',
-                icon: rootURL + '/Pman/templates/images/change-password.gif',
-                handler : function(){
-                    Pman.PasswordChange.show({});
-                }
-            }, '-'
-        );
-         
         
+        if (Pman.hasPerm('Core.ChangePassword','S')) {
+            
+            lotb.add(
+                new Roo.Toolbar.Fill(), 
+         
+                {
+                    text: "Change Password",
+                    cls: 'x-btn-text-icon',
+                    icon: rootURL + '/Pman/templates/images/change-password.gif',
+                    handler : function(){
+                        Pman.PasswordChange.show({});
+                    }
+                }, '-'
+            );
+        }     
+            
         if (this.topMenuItems.length) {
             
             Roo.each(this.topMenuItems, function (mi) {
@@ -353,7 +358,7 @@ Pman = new Roo.Document(
                 Pman.Dialog.PersonStaff.show( 
                     { 
                         id : 0, 
-                        company_id : Pman.Login.authUser.company_id_id * 1, 
+                        company_id : Pman.Login.authUser.company_id * 1, 
                         company_id_name : Pman.Login.authUser.company_id_name
                     }, function(data) {
                         forceAdmin(data);
@@ -361,6 +366,7 @@ Pman = new Roo.Document(
                 );
                 return;
             }
+            
             Roo.state.Manager.set('Pman.Login.username', data.email),
             window.onbeforeunload = false;
             document.location = baseURL + '?ts=' + Math.random();
@@ -388,7 +394,7 @@ Pman = new Roo.Document(
         
         if (Pman.Login.authUser.id < 0) {
             // admin company has been created - create the user..
-            if (Pman.Login.authUser.company_id_id* 1 > 0) {
+            if (Pman.Login.authUser.company_id* 1 > 0) {
                 forceAdmin();
                 return;
             }
@@ -545,16 +551,16 @@ Pman = new Roo.Document(
     genericDelete : function(tab,tbl) {
         
         var r = [];
-        
             
         var s = tab.grid.getSelectionModel().getSelections();
         if (!s.length)  {
             Roo.MessageBox.alert("Error", "Select at least one Row to delete" );
             return '';
         }
-        
+        var reader = tab.grid.reader || tab.grid.ds.reader;
         for(var i = 0; i < s.length; i++) {
-            r.push(s[i].data.id);
+            r.push(reader.getId(s[i].json));
         }
     
         Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?",
@@ -574,11 +580,11 @@ Pman = new Roo.Document(
                         tab.grid.getView().mainWrap.unmask();
                         if ( tab.paging ) {
                             tab.paging.onClick('refresh');   
-                        } else if (tab.refresh) {
-                            tab.refresh();
                         } else if (tab.grid.footer && tab.grid.footer.onClick) {
                             // new xtype built grids
                             tab.grid.footer.onClick('refresh');   
+                        } else if (tab.refresh) {
+                            tab.refresh(); // this might cause problems as panels have a refresh method?
                         } else {
                             tab.grid.getDataSource().load();
                         }
@@ -587,6 +593,7 @@ Pman = new Roo.Document(
                         
                     },
                     failure: function(act) {
+                        
                         Roo.log(act);
                         var msg = '';
                         try {
@@ -809,7 +816,7 @@ Pman = new Roo.Document(
         
         
         if (obj.parent === Pman || obj.parent  == 'Pman') {
-            Roo.log("PARENT OF : " + obj.name + " replacing with fake");
+            // Roo.log("PARENT OF : " + obj.name + " replacing with fake");
             obj.parent = Pman.fakeRoot;
         }
         
@@ -856,15 +863,20 @@ Pman = new Roo.Document(
             
                 // 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;
             }
-        
             
+            if (obj.permname && obj.permname.length && Pman.hasPermExists(obj.permname) && !Pman.hasPerm(obj.permname,'S')) {
+                // it's a turned off permission...
+                Roo.log(obj.permname + " is Disabled for this user");
+                obj.disabled = true;
+                return;
+            }
             
         }
         
@@ -909,13 +921,13 @@ Pman = new Roo.Document(
                 return;
             }
             if (this.module.disabled) {
-                Roo.log("Module disabled, should not rendering")
+                Roo.log("Module disabled, should not rendering");
                 Roo.log(this);
                 return;
             }
-            
+             
             if (!this.parent.layout) {
-                Roo.log("Module parent does not have property layout.")
+                Roo.log("Module parent does not have property layout.");
                 Roo.log(this);
                 return;
             }
@@ -945,7 +957,7 @@ Pman = new Roo.Document(
          
         
         // Roo.log("CALLING XComponent register with : " + obj.name);
-        
+        Roo.log(obj);
         // this will call xregister as it's the on.register handler..
         Roo.XComponent.register(obj.isTop ? obj : Roo.apply(obj.module, obj));