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