From: erickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Tue, 30 Nov 2010 21:00:01 +0000 (+0000)
Subject: quicker login+ssl-jump handling by showing immediately instaed of waiting on page... 
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=61de01b73d0bcfa6d7bf55b26ccfe512be8b410e;p=evergreen%2Fmasslnc.git

quicker login+ssl-jump handling by showing immediately instaed of waiting on page contents to load

git-svn-id: svn://svn.open-ils.org/ILS/trunk@18889 dcc99617-32d9-48b4-a31d-7c20da2025e4
---

diff --git a/Open-ILS/web/opac/common/js/config.js b/Open-ILS/web/opac/common/js/config.js
index 098720c238..054e56a154 100644
--- a/Open-ILS/web/opac/common/js/config.js
+++ b/Open-ILS/web/opac/common/js/config.js
@@ -433,6 +433,7 @@ createEvt("result", "allRecordsReceived");	/* f(mvrsArray) : add other page stuf
 createEvt("rdetail", "recordDrawn");			/* f() : the record has been drawn */
 
 createEvt("common", "loggedIn");					/* f() : user has just logged in */
+createEvt("common", "loginCanceled");					/* f() : user has just logged in */
 createEvt('result', 'zeroHits');
 createEvt('result', 'lowHits');
 createEvt('rdetail', 'recordRetrieved');			/* we are about to draw the rdetail page */
diff --git a/Open-ILS/web/opac/skin/default/js/mresult.js b/Open-ILS/web/opac/skin/default/js/mresult.js
index c6a2e47653..c6c548b594 100644
--- a/Open-ILS/web/opac/skin/default/js/mresult.js
+++ b/Open-ILS/web/opac/skin/default/js/mresult.js
@@ -24,6 +24,13 @@ function mresultDoSearch() {
 	swapCanvas($('loading_alt'));
 	table = G.ui.result.main_table;
 
+    var holdTarget = new CGI().param('hold_target');
+    if(holdTarget != null) {
+        mresultHandlePlaceHold(holdTarget);
+        return;
+    }
+
+
 	while( table.parentNode.rows.length <= (getDisplayCount() + 1) )  
 		table.appendChild(G.ui.result.row_template.cloneNode(true));
 
@@ -121,5 +128,14 @@ function mresultHandleMods(r) {
 }
 
 
+function mresultHandlePlaceHold(target) {
+    function reload() {
+        location.href = location.href.replace(/&hold_target=\d+/, '');
+    }
+    attachEvt("common", "holdUpdated", reload);
+    attachEvt("common", "holdUpdateCanceled", reload);
+    attachEvt("common", "loginCanceled", reload);
+    holdsDrawEditor({record:target, type: 'M'});
+}
 
 
diff --git a/Open-ILS/web/opac/skin/default/js/rdetail.js b/Open-ILS/web/opac/skin/default/js/rdetail.js
index 977bf6eab4..4369b53ad4 100644
--- a/Open-ILS/web/opac/skin/default/js/rdetail.js
+++ b/Open-ILS/web/opac/skin/default/js/rdetail.js
@@ -7,16 +7,6 @@ attachEvt("rdetail", "recordDrawn", rdetailBuildStatusColumns);
 attachEvt("rdetail", "recordDrawn", rdetailBuildInfoRows);
 attachEvt("rdetail", "recordDrawn", rdetailGetPageIds);
 
-G.evt.rdetail.recordDrawn.push(
-    function(){
-        if(new CGI().param('place_hold')) {
-            // This will force the login dialog to display if the user is not logged in
-            holdsDrawEditor({record:record.doc_id(), type: 'T'});
-        }
-    }
-);
-
-
 /* Per-skin configuration settings */
 var rdetailLocalOnly = true;
 var rdetailShowLocal = true;
@@ -56,6 +46,11 @@ var rdetailEnd = null;
 var mfhdDetails = [];
 var orgHiding = false;
 
+if(location.href.match(/&place_hold=1/)) {
+    // prevent load flicker between canvases
+    hideMe(dojo.byId('canvas_main'));
+}
+
 /* serials are currently the only use of Dojo strings in the OPAC */
 if (rdetailDisplaySerialHoldings) {
 	dojo.require("dijit.Menu");
@@ -117,8 +112,23 @@ function _rdetailNav(id, offset) {
 	goTo(buildOPACLink(args));
 }
 
+function rdetailHandlePlaceHold() {
+    function reload() {
+        location.href = location.href.replace(/&place_hold=1/, '');
+    }
+    attachEvt("common", "holdUpdated", reload);
+    attachEvt("common", "holdUpdateCanceled", reload);
+    attachEvt("common", "loginCanceled", reload);
+    holdsDrawEditor({record:getRid(), type: 'T'});
+}
+
 function rdetailDraw() {
 
+    if(new CGI().param('place_hold')) {
+        rdetailHandlePlaceHold();
+        return;
+    }
+
 	detachAllEvt('common','depthChanged');
 	detachAllEvt('common','locationUpdated');
 	attachEvt('common','depthChanged', rdetailReload);
diff --git a/Open-ILS/web/opac/skin/default/js/result_common.js b/Open-ILS/web/opac/skin/default/js/result_common.js
index a19cb269b4..dc3ae94921 100644
--- a/Open-ILS/web/opac/skin/default/js/result_common.js
+++ b/Open-ILS/web/opac/skin/default/js/result_common.js
@@ -16,17 +16,6 @@ if( findCurrentPage() == MRESULT || findCurrentPage() == RRESULT ) {
 	G.evt.result.copyCountsReceived.push(resultDisplayCopyCounts);
 	G.evt.result.allRecordsReceived.push( function(){unHideMe($('result_info_2'))}, fetchGoogleBooksLink, fetchChiliFreshReviews);
 
-    G.evt.result.allRecordsReceived.push( 
-        function(){
-            var cgi = new CGI();
-            var hold_target = cgi.param('hold_target');
-            if(hold_target) {
-                // This will force the login dialog to display if the user is not logged in
-                holdsDrawEditor({record:hold_target, type: (findCurrentPage() == MRESULT) ? 'M' : 'T'});
-            }
-        }
-    );
-
 	attachEvt('result','lowHits',resultLowHits);
 	attachEvt('result','zeroHits',resultZeroHits);
 	attachEvt( "common", "locationUpdated", resultSBSubmit );
diff --git a/Open-ILS/web/opac/skin/default/js/rresult.js b/Open-ILS/web/opac/skin/default/js/rresult.js
index 0fa0ba39bd..ff94bb8158 100644
--- a/Open-ILS/web/opac/skin/default/js/rresult.js
+++ b/Open-ILS/web/opac/skin/default/js/rresult.js
@@ -31,6 +31,13 @@ function rresultDoSearch() {
 function rresultCollectIds() {
 	var ids;
 
+
+    var holdTarget = new CGI().param('hold_target');
+    if(holdTarget != null) {
+        rresultHandlePlaceHold(holdTarget);
+        return;
+    }
+
     var rtype = getRtype();
     if (rtype && rtype.indexOf('|') > -1)
         rtype = rtype.substring(0,rtype.indexOf('|'));
@@ -329,4 +336,13 @@ function rresultFilterSearchResults(r) {
 }
 
 
+function rresultHandlePlaceHold(target) {
+    function reload() {
+        location.href = location.href.replace(/&hold_target=\d+/, '');
+    }
+    attachEvt("common", "holdUpdated", reload);
+    attachEvt("common", "holdUpdateCanceled", reload);
+    attachEvt("common", "loginCanceled", reload);
+    holdsDrawEditor({record:target, type: 'T'});
+}
 
diff --git a/Open-ILS/web/opac/skin/default/js/sidebar.js b/Open-ILS/web/opac/skin/default/js/sidebar.js
index 902175e54f..638fc79230 100644
--- a/Open-ILS/web/opac/skin/default/js/sidebar.js
+++ b/Open-ILS/web/opac/skin/default/js/sidebar.js
@@ -157,18 +157,18 @@ function strongPassword(pass, alrt) {
 }
 
 function initLogin() {
+    swapCanvas(G.ui.login.box);
+    try{G.ui.login.username.focus();} catch(e) {}
 
-//	if(loginBoxVisible) {
-//		showCanvas();
-//	} else {
-		swapCanvas(G.ui.login.box);
-		try{G.ui.login.username.focus();}catch(e){}
-//	}
-
-//	loginBoxVisible = !loginBoxVisible;
-	G.ui.login.cancel.onclick = function(evt) { G.ui.login.form.setAttribute('action','javascript:showCanvas();'); };
-	if(findCurrentPage() == MYOPAC) 
-		G.ui.login.cancel.onclick = function(evt) { G.ui.login.form.setAttribute('action','javascript:goHome();'); };
+    G.ui.login.cancel.onclick = function(evt) { 
+        G.ui.login.form.setAttribute('action',
+            'javascript:showCanvas();runEvt("common", "loginCanceled");'); 
+    };
+
+    if(findCurrentPage() == MYOPAC) {
+        G.ui.login.cancel.onclick = function(evt) { 
+            G.ui.login.form.setAttribute('action','javascript:goHome();'); };
+    }
 }
 
 function setSidebarLinks() {