Pman.Dialog.Login.bjs
[Pman.BAdmin] / Pman.Dialog.Login.js
1 //<script type="text/javascript">
2
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
4
5 Roo.namespace('Pman.Dialog');
6
7 Pman.Dialog.Login= function() {}
8 Roo.apply(Pman.Dialog.Login.prototype, {
9
10  _strings : {
11   'e50b62fb8271673bacc2cfd9d80fbe7a' :"Login to the Management Portal",
12   '99dea78007133396a7b8ed70578ac6ae' :"Login",
13   'cfcd208495d565ef66e7dff9f98764da' :"0",
14   'cd4bcecae78474ea24c3f28350758a8c' :"Forgot your password ?",
15   'dc647eb65e6711e155375218212b3964' :"Password",
16   '06cf692a8d2bb0ab8318dc6c839ae931' :"Two-Factor Authentication Number (if relevant)",
17   '11163ed17ad9afc7680bb9e92f15d6fd' :"We have sent you a link to reset your password",
18   '5047040b025ce0295b58d42250014417' :"<div id=\"login-err\" class=\"dialog-err\" style=\"color:red\"></div>",
19   '24efa7ee4511563b16144f39706d594f' :"Notice",
20   '643a860f992333b8600ea264aca7c4fc' :"Email Address"
21  },
22  _named_strings : {
23   'username_placeholder' : '643a860f992333b8600ea264aca7c4fc' /* Email Address */ ,
24   '_force_value' : 'cfcd208495d565ef66e7dff9f98764da' /* 0 */ ,
25   'password_placeholder' : 'dc647eb65e6711e155375218212b3964' /* Password */ ,
26   'oath_password_placeholder' : '06cf692a8d2bb0ab8318dc6c839ae931' /* Two-Factor Authentication Number (if relevant) */ ,
27   'OK_html' : '99dea78007133396a7b8ed70578ac6ae' /* Login */ 
28  },
29
30  dialog : false,
31  callback:  false,
32
33  show : function(data, cb)
34  {
35   if (!this.dialog) {
36    this.create();
37   }
38
39   this.callback = cb;
40   this.data = data;
41   this.dialog.show(this.data._el);
42   if (this.form) {
43    this.form.reset();
44    this.form.setValues(data);
45    this.form.fireEvent('actioncomplete', this.form,  { type: 'setdata', data: data });
46   }
47
48  },
49
50  create : function()
51  {
52   var _this = this;
53   this.dialog = Roo.factory({
54     xtype : 'Modal',
55     allow_close : false,
56     buttonPosition : 'center',
57     cls : 'enable-overflow login-dialog padding-bottom-trim',
58     _dialog_title_login : _this._strings['e50b62fb8271673bacc2cfd9d80fbe7a'] /* Login to the Management Portal */,
59     listeners : {
60      btnclick : function (e)
61       {
62           if(e == 'cancel'){
63               _this.dialog.hide();
64               return;
65           }
66           
67           _this.dialog.el.select('.modal-content', true).first().mask('Sending...');
68           _this.form.doAction('submit');
69       },
70      render : function (_self) {
71       
72           Roo.get('login-err').dom.innerHTML = "";
73           _this.dialog.el.select('.modal-content', true).first().unmask();
74           
75           if(Roo.isTouch){
76               this.animate = false;
77           }
78       },
79      show : function (_self)
80       {
81           this.setTitle( _this.dialog._dialog_title_login );
82           
83           if (!Roo.state.Manager.getProvider().expires) {
84               Roo.state.Manager.setProvider(new Roo.state.CookieProvider());
85           }
86           
87           _this.lastLogin = Roo.state.Manager.get('Pman.Login', {});
88           _this.form.findField('username').focus();
89           
90           if(_this.data.disable_oath == 0) {
91               _this.form.findField('oath_password').hide();
92               return;
93           }
94           
95           _this.form.findField('oath_password').show();
96       }
97     },
98     xns : Roo.bootstrap,
99     '|xns' : 'Roo.bootstrap',
100     buttons : [
101      {
102       xtype : 'Button',
103       html : _this._strings['99dea78007133396a7b8ed70578ac6ae'] /* Login */,
104       name : 'OK',
105       style : 'float: right',
106       weight : 'primary',
107       xns : Roo.bootstrap,
108       '|xns' : 'Roo.bootstrap'
109      },
110      {
111       xtype : 'Button',
112       _forgot_passwd_success_body : _this._strings['11163ed17ad9afc7680bb9e92f15d6fd'] /* We have sent you a link to reset your password */,
113       _forgot_passwd_success_title : _this._strings['24efa7ee4511563b16144f39706d594f'] /* Notice */,
114       href : '#',
115       html : _this._strings['cd4bcecae78474ea24c3f28350758a8c'] /* Forgot your password ? */,
116       removeClass : true,
117       style : 'float: left',
118       tag : 'a',
119       weight : 'link',
120       listeners : {
121        click : function () {
122         
123             _this.dialog.hide();
124             
125             var email = _this.form.findField('username').getValue();
126             
127             var _self = this;
128             
129             Pman.Dialog.BAdminForgotPassword.show({email : email}, function(){
130                 Roo.bootstrap.MessageBox.alert(_self._forgot_passwd_success_title, _self._forgot_passwd_success_body);
131             });
132         }
133       },
134       xns : Roo.bootstrap,
135       '|xns' : 'Roo.bootstrap'
136      }
137     ],
138     items  : [
139      {
140       xtype : 'Row',
141       listeners : {
142        render : function (_self)
143         {
144             _this.login = this;
145             
146             this.el.setVisibilityMode(Roo.Element.DISPLAY);
147         }
148       },
149       xns : Roo.bootstrap,
150       '|xns' : 'Roo.bootstrap',
151       items  : [
152        {
153         xtype : 'Column',
154         xs : 12,
155         xns : Roo.bootstrap,
156         '|xns' : 'Roo.bootstrap',
157         items  : [
158          {
159           xtype : 'Row',
160           xns : Roo.bootstrap,
161           '|xns' : 'Roo.bootstrap',
162           items  : [
163            {
164             xtype : 'Container',
165             cls : 'col-md-12',
166             xns : Roo.bootstrap,
167             '|xns' : 'Roo.bootstrap',
168             items  : [
169              {
170               xtype : 'Form',
171               labelAlign : 'left',
172               loadMask : false,
173               method : 'POST',
174               url : baseURL + '/Login',
175               listeners : {
176                actioncomplete : function (_self, action) {
177                     
178                     if(action.type == 'setdata'){
179                 
180                         if(
181                             _this.lastLogin && 
182                             _this.lastLogin.login_provider == ''
183                         ){
184                             _this.form.findField('username').setValue(_this.lastLogin.email);
185                         }
186                         
187                         Roo.get('login-err').dom.innerHTML = "";
188                         _this.errorRow.hide();
189                         _this.dialog.el.select('.modal-content', true).first().unmask();
190                         this.clearInvalid();
191                         return;
192                     }
193                      
194                     if(action.type == 'load'){
195                         
196                         return;
197                     }
198                     
199                     if (action.type =='submit') {
200                     
201                         _this.dialog.hide();
202                         
203                         var cb = function(){
204                             if (_this.callback) {
205                                 _this.callback.call(_this, action.result);
206                             }
207                             
208                             _this.form.reset();
209                             
210                             return;
211                         }
212                         
213                         if(
214                             !action.result.data.oath_key_enable &&
215                             !action.result.data.disable_oath
216                         ) {
217                             Roo.bootstrap.MessageBox.show({
218                                 title : "Missing Two Factor Authentication",
219                                 msg : "This is a secure system using Google Two Factor Authentication. Please click 'Confirm' for setup.",
220                                 buttons : {yes:'Confirm', no:'Cancel'},
221                                 fn : function(ret){
222                                     if(ret == 'no'){
223                                         Roo.bootstrap.MessageBox.alert(
224                                             'Cancelation on Two Factor Authentication Setup',
225                                             'You many not use it without scanning the QR code.',
226                                             cb
227                                         );
228                                          return;
229                                      }
230                                     
231                                     Pman.Dialog.BAdminStaffTwoFactorQRCode.show(
232                                         {id: action.result.data.id},
233                                         cb
234                                     )
235                                 }
236                             });
237                             
238                             /*
239                             Pman.Dialog.BAdminStaffTwoFactorQRCode.show(
240                                 {id: action.result.data.id},
241                                 cb
242                             );
243                             */
244                             return;
245                         }
246                         
247                         cb();
248                     }
249                 },
250                actionfailed : function (_self, action) {
251                     Roo.log('action failed?!');
252                     Roo.log(action);
253                     
254                     _this.dialog.el.select('.modal-content', true).first().unmask();
255                     
256                     if (typeof(action) != 'undefined' && action.failureType == 'server') {
257                         
258                         switch (action.result.errorMsg) {
259                                     
260                             case 'Authenticated' :
261                                 
262                                 var data = Roo.apply(action.result.errors);
263                                 
264                                 data.target = _this.form.findField('username').getValue();
265                                 
266                                 Roo.bootstrap.MessageBox.alert("Error", "odd error messages");
267                                 
268                                 break;
269                                 
270                             case 'NEW-IP-ADDRESS' :
271                             case 'PENDING-IP-ADDRESS' :
272                             case 'BAD-IP-ADDRESS' :
273                             case 'BLOCKED-IP-ADDRESS' :
274                                 
275                                 _this.dialog.hide();
276                                 
277                                 Pman.Dialog.LoginNotice.show({
278                                     status : action.result.errorMsg,
279                                     ip : action.result.errors.ip
280                                 });
281                                 
282                                 break;
283                                 
284                             default:
285                                _this.errorRow.show();
286                                 Roo.get('login-err').dom.innerHTML = action.result.errorMsg;
287                                 break;
288                         }
289                         
290                         return;
291                     }
292                     
293                     Roo.get('login-err').dom.innerHTML = "Fill in all the required fields";
294                 },
295                render : function (_self) {
296                     _this.form = _self;
297                 }
298               },
299               xns : Roo.bootstrap,
300               '|xns' : 'Roo.bootstrap',
301               items  : [
302                {
303                 xtype : 'Container',
304                 cls : 'col-sm-12',
305                 xns : Roo.bootstrap,
306                 '|xns' : 'Roo.bootstrap',
307                 items  : [
308                  {
309                   xtype : 'Input',
310                   allowBlank : false,
311                   inputType : 'email',
312                   name : 'username',
313                   placeholder : _this._strings['643a860f992333b8600ea264aca7c4fc'] /* Email Address */,
314                   vtype : 'email',
315                   listeners : {
316                    specialkey : function (_self, e)
317                     {
318                         if(e.getKey() == 13){
319                             _this.dialog.el.select('.modal-content', true).first().mask('Sending...');
320                             _this.form.doAction('submit');
321                         }
322                         
323                     }
324                   },
325                   xns : Roo.bootstrap,
326                   '|xns' : 'Roo.bootstrap'
327                  },
328                  {
329                   xtype : 'Input',
330                   allowBlank : false,
331                   inputType : 'password',
332                   name : 'password',
333                   placeholder : _this._strings['dc647eb65e6711e155375218212b3964'] /* Password */,
334                   listeners : {
335                    specialkey : function (_self, e)
336                     {
337                         if(e.getKey() == 13){
338                             _this.dialog.el.select('.modal-content', true).first().mask('Sending...');
339                             _this.form.doAction('submit');
340                         }
341                     }
342                   },
343                   xns : Roo.bootstrap,
344                   '|xns' : 'Roo.bootstrap'
345                  },
346                  {
347                   xtype : 'NumberField',
348                   allowBlank : true,
349                   allowDecimals : false,
350                   allowNegative : false,
351                   allowZero : true,
352                   decimalPrecision : 0,
353                   maxLength : 6,
354                   name : 'oath_password',
355                   placeholder : _this._strings['06cf692a8d2bb0ab8318dc6c839ae931'] /* Two-Factor Authentication Number (if relevant) */,
356                   listeners : {
357                    specialkey : function (_self, e)
358                     {
359                         if(e.getKey() == 13){
360                             _this.dialog.el.select('.modal-content', true).first().mask('Sending...');
361                             _this.form.doAction('submit');
362                         }
363                     }
364                   },
365                   xns : Roo.bootstrap,
366                   '|xns' : 'Roo.bootstrap'
367                  },
368                  {
369                   xtype : 'Input',
370                   inputType : 'hidden',
371                   name : '_force',
372                   value : 0,
373                   xns : Roo.bootstrap,
374                   '|xns' : 'Roo.bootstrap'
375                  }
376                 ]
377                }
378               ]
379              }
380             ]
381            }
382           ]
383          },
384          {
385           xtype : 'Row',
386           listeners : {
387            render : function (_self)
388             {
389                 _this.errorRow = this;
390             }
391           },
392           xns : Roo.bootstrap,
393           '|xns' : 'Roo.bootstrap',
394           items  : [
395            {
396             xtype : 'Container',
397             cls : 'col-md-12',
398             xns : Roo.bootstrap,
399             '|xns' : 'Roo.bootstrap',
400             items  : [
401              {
402               xtype : 'Container',
403               cls : 'bg-danger',
404               html : _this._strings['5047040b025ce0295b58d42250014417'] /* <div id="login-err" class="dialog-err" style="color:red"></div> */,
405               style : 'margin-bottom: 15px;\n    padding: 5px;',
406               xns : Roo.bootstrap,
407               '|xns' : 'Roo.bootstrap'
408              }
409             ]
410            }
411           ]
412          }
413         ]
414        }
415       ]
416      }
417     ]
418    }  );
419  }
420 });
421 Roo.apply(Pman.Dialog.Login, Pman.Dialog.Login.prototype);