]> code.citadel.org Git - citadel.git/blobdiff - webcit/static/authmethods.js
Began implementation of authpopout
[citadel.git] / webcit / static / authmethods.js
index 3709669d0151e00bbe95789d44942790f5fdb26f..1ea70c00de969628ba684e55edd76a3aceb96d83 100644 (file)
@@ -27,18 +27,20 @@ function GetLoggedInFirst(destination_url) {
 
        /* If logged in already, go directly to the destination. */
        if (IsLoggedIn()) {
-               window.location = destination_url;
+               window.location = decodeURIComponent(destination_url);
                return;
        }
 
+       p = 'push?url=' + destination_url;
+       new Ajax.Request(p, { method: 'get' } );
+
        /* If not logged in, go modal and ask the user to log in first. */
-       p = 'do_template?template=get_logged_in?destination_url=' + destination_url;
        new Ajax.Updater(
                'md-content',
-               p,
+               'do_template?template=get_logged_in',
                 {
                         method: 'get',
-                       onSuccess: function(cl_success) {
+                       onSuccess: function() {
                                toggleModal(1);
                        }
                 }
@@ -49,12 +51,13 @@ function GetLoggedInFirst(destination_url) {
 /*
  * Attempt login with username/password, called from modal dialog
  */
-function ajax_try_username_and_password(destination_url) {
+function ajax_try_username_and_password() {
+
        $('login_errmsg').innerHTML = "";
         $('ajax_username_password_form').request({
                onSuccess: function(ctdlresult) {
                        if (ctdlresult.responseText.substr(0,1) == '2') {
-                               window.location = destination_url;
+                               window.location = 'pop';
                        }
                        else {
                                $('login_errmsg').innerHTML = ctdlresult.responseText.substr(4) ;
@@ -63,6 +66,23 @@ function ajax_try_username_and_password(destination_url) {
        });
 }
 
+/*
+ * The user pressed a key while in the username or password box.
+ * Is it the enter/return key?  Submit the form.
+ */
+function username_and_password_onkeypress(e) {
+       if (window.event) {             /* IE */
+               keynum = e.keyCode
+       }
+       else if (e.which) {             /* real browsers */
+               keynum = e.which
+       }
+       if (keynum == 13) {             /* enter/return key */
+               ajax_try_username_and_password();
+       }
+}
+
+
 /*
  * tab handler for the login box
  */
@@ -71,3 +91,23 @@ function authtoggle(show_which_div) {
        $('authbox_openid').style.display = 'none';
        $(show_which_div).style.display = 'block';
 }
+
+
+/*
+ * Pop out a window for external auth methods
+ * (most of them don't handle inline auth very well)
+ */
+function do_auth_popout(popout_url) {
+       window.open(popout_url, "authpopout", "status=1,toolbar=0,width=600,height=400");
+}
+
+
+/*
+ * Attempt login with OpenID, called from modal dialog
+ */
+function ajax_try_openid() {
+       $('login_errmsg').innerHTML = "";
+       openid_url = encodeURI($('ajax_openid_form').elements["openid_url"].value);
+       do_auth_popout("openid_login?openid_url=" + openid_url);
+}
+