testing commit, please ignore
[kcls-web.git] / js / ui / base.js.KCLS
1 dojo.require('dijit.Dialog');\r
2 dojo.require('dojo.cookie');\r
3 dojo.require('fieldmapper.AutoIDL');  // make conditional.  TT variable sets JS var to enable/disable?\r
4 dojo.require('fieldmapper.dojoData');\r
5 dojo.require('openils.User');\r
6 dojo.require('openils.CGI');\r
7 dojo.require('openils.Event');\r
8 dojo.require('openils.Util');\r
9 dojo.require('openils.XUL');\r
10 \r
11 function oilsSetupUser() {\r
12     var cgi = new openils.CGI();\r
13     var authtoken = cgi.param('ses') || dojo.cookie('ses');\r
14     var workstation = cgi.param('ws') || dojo.cookie('ws');\r
15     var user;\r
16     if(authtoken) user = new openils.User({authtoken:authtoken});\r
17     if(!authtoken || openils.Event.parse(user.user)) {\r
18         dojo.cookie('ses', openils.User.authtoken, {expires:-1, path:'/'}); // remove the cookie\r
19         openils.User.authtoken = null;\r
20         dojo.addOnLoad(function(){\r
21             if(openils.XUL.isXUL()) {\r
22                 // let XUL handle the login dialog\r
23                 openils.XUL.getNewSession( function() { location.href = location.href } );\r
24             } else {\r
25                 // in web-only mode, use the dojo login dialog\r
26                 oilsLoginDialog.show(); \r
27                 var func = function(){ oilsDoLogin(); };\r
28                 openils.Util.registerEnterHandler(dojo.byId('oils-login-username'), func);\r
29                 openils.Util.registerEnterHandler(dojo.byId('oils-login-password'), func);\r
30                 dojo.byId('oils-login-workstation').innerHTML = workstation || '';\r
31             }\r
32         });\r
33         return;\r
34     }\r
35     dojo.cookie('ses', authtoken, {path:'/'});\r
36     openils.User.authtoken = authtoken;\r
37     openils.User.workstation = workstation;\r
38         \r
39         dojo.addOnLoad(function(){\r
40                 switchTo('step1');\r
41         });\r
42 }\r
43 \r
44 function oilsDoLogin() {\r
45     openils.Util.hide('oils-login-failed');\r
46     var cgi = new openils.CGI();\r
47     var workstation = cgi.param('ws') || dojo.cookie('ws');\r
48     var user = new openils.User();\r
49     var args = {\r
50         username: dojo.byId('oils-login-username').value,\r
51         passwd: dojo.byId('oils-login-password').value,\r
52         type: 'staff', // hardcode for now\r
53     };\r
54     if(workstation) \r
55         args.workstation = workstation;\r
56 \r
57     if(user.login(args)) {\r
58         dojo.cookie('ses', user.authtoken, {path : oilsBasePath});\r
59         location.href = location.href;\r
60     } else {\r
61         openils.Util.show('oils-login-failed');\r
62     }\r
63 \r
64     return false;\r
65 }\r
66 \r
67 oilsSetupUser();\r
68 \r