Attribute changed Pman.js
[Pman.BAdmin] / Pman.js
1 /**
2  * 
3  *  
4  *  This is the main Pman class [for bootstrap]
5  *
6  *  In theory it's lighter than the original, as no BC concerns..
7  */
8  
9 // translation..
10
11 Roo.namespace('_T');
12
13 //??
14     
15
16 Pman = new Roo.Document(
17 {
18     Dialog : {},
19     // Tab not needed, as that's now our top level UI element..
20
21     subMenuItems : [],
22     topMenuItems : [],
23     rightNames: { }, /// register right names here - so they can be translated and rendered.
24     /**
25      * @property {Roo.menu.Menu} pulldownMenu - the 'add menu pulldown, you can use it to add items..
26      *
27      */
28     pulldownMenu : false, 
29     
30     
31     buildCompleted : false, // flag to say if we are building interface..
32     events : {
33         'beforeload' : true, // fired after page ready, before module building.
34         'load' : true, // fired after module building
35         'authrefreshed' : true // fire on auth updated?? - should be on Login?!?!?
36     },
37
38     onBuildComplete : function ()
39     {
40         
41         this.building = false;   
42         //this.layout.getRegion('center').showPanel(0);
43         //this.layout.endUpdate(); 
44         //this.addTopToolbar();  
45         this.finalize();
46         this.fireEvent('load',this);
47         
48         
49     },
50     listeners : {
51         'ready' : function()
52         {
53             
54
55             // kludge to fix firebug debugger
56             if (typeof(console) == 'undefined') {
57                 console = { log : function() {  } };
58             }
59             
60             // remove loader..
61             if (Roo.get('loading')) {
62                 Roo.get('loading').remove();
63             }
64             
65             Roo.state.Manager.setProvider(new Roo.state.CookieProvider());
66             Roo.bootstrap.Tooltip.init(); 
67
68              
69             // reset password!!!!
70             /*
71             if (showNewPass.length) {
72                 Pman.PasswordChange.show(  { passwordReset : showNewPass },
73                     function(data) {
74                         // fail and success we do  a load...
75                         Pman.Login.onLoad();
76                     }
77                 );
78                 return;
79             }
80             */
81             Pman.Login.onLoad();
82             
83         },
84         'load' : function()
85         {
86             if (Roo.get('loading-logo-tile')) {
87                 Roo.get('loading-logo-tile').remove();
88             }
89             if (Roo.get('loading-logo-tile-top')) {
90                 Roo.get('loading-logo-tile-top').remove();
91             }
92             if (Roo.get('loading-logo-bottom')) {
93                 Roo.get('loading-logo-bottom').remove();
94             }
95             if (Roo.get('loading-logo-center')) {
96                 Roo.get('loading-logo-center').remove();
97             }
98         }   
99         
100     },
101     loadUserInterface : function()
102     {
103         
104         if (this.buildCompleted) { // it get's called from auth checking.. no need to build again..
105             return; 
106         }
107         // triggers after authentication verified...
108         
109         if (Roo.get('loading')) {
110             Roo.get('loading').remove();
111         }
112         if (Roo.get('loading-mask')) {
113             Roo.get('loading-mask').show();
114         }
115         var au = Pman.Login.authUser;
116         document.title = appName + ' v' + AppVersion + ' - ' + au.company_id_name;
117         
118         
119         if (Roo.isGecko) {
120            Roo.useShims = true;
121         }
122        
123         
124         Pman.building = true;
125         
126         Roo.XComponent.on('buildcomplete',  this.onBuildComplete, this);
127         Roo.XComponent.build();
128          
129         
130     },
131     
132     finalize : function() {
133         
134       
135        
136         window.onbeforeunload = function(e) { 
137             e = e || window.event;
138             var r = "Closing this window will loose changes, are you sure you want to do that?";
139
140             // For IE and Firefox
141             if (e) {
142                 e.returnValue = r;
143             }
144
145             // For Safari
146             return r;
147             
148         };
149         
150         Roo.bootstrap.MessageBox.hide();
151         
152         if (Roo.get('loading-mask')) {
153            Roo.get('loading-mask').remove();
154         }
155         
156         
157         this.buildCompleted = true; // now we can force refreshes on everything..
158         
159         
160         // does the URL indicate we want to see a system..
161        
162         // Open system..
163         
164       
165         
166
167     }, 
168    genericDelete : function(tab,tbl) {
169         
170         var r = [];
171         
172             
173         var s = tab.grid.selModel.getSelections();
174         if (!s.length)  {
175             Roo.MessageBox.alert("Error", "Select at least one Row to delete" );
176             return '';
177         }
178         //var reader = tab.grid.reader || tab.grid.ds.reader;
179         for(var i = 0; i < s.length; i++) {
180             r.push(s[i].json.id);
181         }
182     
183         Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?",
184             function(btn) {
185                 if (btn != 'yes') {
186                     return;
187                 }
188                 //tab.grid.mask("Deleting");
189                 new Pman.Request({
190                     url: baseURL + '/Roo/'+tbl+'.php',
191                     method: 'POST',
192                     mask: true,
193                     params: {
194                         _delete : r.join(',')
195                     },
196                     success: function(response) {
197                         //tab.grid.unmask();
198                         if ( tab.paging ) {
199                             tab.paging.onClick('refresh');   
200                         } else if (tab.grid.footer && tab.grid.footer.onClick) {
201                             // new xtype built grids
202                             tab.grid.footer.onClick('refresh');   
203                         } else if (tab.refresh) {
204                             tab.refresh(); // this might cause problems as panels have a refresh method?
205                         } else {
206                             tab.grid.store.load();
207                         }
208                         
209                         
210                         
211                     },
212                     failure: function(act) {
213                         Roo.log(act);
214                         var msg = '';
215                         try {
216                             msg = act.errorMsg;
217                         } catch(e) {
218                             msg = "Error deleting";
219                         }
220                         //tab.grid.unmask();
221                         Roo.MessageBox.alert("Error",  msg);
222                     }
223                     
224                 });
225             }
226             
227         );
228         return '';
229     }
230 });