Initial dev repository
[kcls-web.git] / js / ui / base.js.KCLS
diff --git a/js/ui/base.js.KCLS b/js/ui/base.js.KCLS
new file mode 100644 (file)
index 0000000..6b2d5cf
--- /dev/null
@@ -0,0 +1,68 @@
+dojo.require('dijit.Dialog');\r
+dojo.require('dojo.cookie');\r
+dojo.require('fieldmapper.AutoIDL');  // make conditional.  TT variable sets JS var to enable/disable?\r
+dojo.require('fieldmapper.dojoData');\r
+dojo.require('openils.User');\r
+dojo.require('openils.CGI');\r
+dojo.require('openils.Event');\r
+dojo.require('openils.Util');\r
+dojo.require('openils.XUL');\r
+\r
+function oilsSetupUser() {\r
+    var cgi = new openils.CGI();\r
+    var authtoken = cgi.param('ses') || dojo.cookie('ses');\r
+    var workstation = cgi.param('ws') || dojo.cookie('ws');\r
+    var user;\r
+    if(authtoken) user = new openils.User({authtoken:authtoken});\r
+    if(!authtoken || openils.Event.parse(user.user)) {\r
+        dojo.cookie('ses', openils.User.authtoken, {expires:-1, path:'/'}); // remove the cookie\r
+        openils.User.authtoken = null;\r
+        dojo.addOnLoad(function(){\r
+            if(openils.XUL.isXUL()) {\r
+                // let XUL handle the login dialog\r
+                openils.XUL.getNewSession( function() { location.href = location.href } );\r
+            } else {\r
+                // in web-only mode, use the dojo login dialog\r
+                oilsLoginDialog.show(); \r
+                var func = function(){ oilsDoLogin(); };\r
+                openils.Util.registerEnterHandler(dojo.byId('oils-login-username'), func);\r
+                openils.Util.registerEnterHandler(dojo.byId('oils-login-password'), func);\r
+                dojo.byId('oils-login-workstation').innerHTML = workstation || '';\r
+            }\r
+        });\r
+        return;\r
+    }\r
+    dojo.cookie('ses', authtoken, {path:'/'});\r
+    openils.User.authtoken = authtoken;\r
+    openils.User.workstation = workstation;\r
+       \r
+       dojo.addOnLoad(function(){\r
+               switchTo('step1');\r
+       });\r
+}\r
+\r
+function oilsDoLogin() {\r
+    openils.Util.hide('oils-login-failed');\r
+    var cgi = new openils.CGI();\r
+    var workstation = cgi.param('ws') || dojo.cookie('ws');\r
+    var user = new openils.User();\r
+    var args = {\r
+        username: dojo.byId('oils-login-username').value,\r
+        passwd: dojo.byId('oils-login-password').value,\r
+        type: 'staff', // hardcode for now\r
+    };\r
+    if(workstation) \r
+        args.workstation = workstation;\r
+\r
+    if(user.login(args)) {\r
+        dojo.cookie('ses', user.authtoken, {path : oilsBasePath});\r
+        location.href = location.href;\r
+    } else {\r
+        openils.Util.show('oils-login-failed');\r
+    }\r
+\r
+    return false;\r
+}\r
+\r
+oilsSetupUser();\r
+\r