From: Argiris K. <be...@us...> - 2005-11-17 15:03:25
|
Update of /cvsroot/magicajax/magicajax/Core/script In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23052/Core/script Modified Files: AjaxCallObject.js Log Message: Server.Transfer is working for 'NoStore' mode. Exceptions thrown during page processing are handled properly. Improvements for 'Storing' page modes (NoVerifyRenderingPage is not required) Fixed various problems that RBS_Control_Store was causing. Index: AjaxCallObject.js =================================================================== RCS file: /cvsroot/magicajax/magicajax/Core/script/AjaxCallObject.js,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AjaxCallObject.js 17 Nov 2005 09:02:20 -0000 1.4 --- AjaxCallObject.js 17 Nov 2005 15:03:16 -0000 1.5 *************** *** 6,10 **** __PreviousOnPageBeforeUnload = null; __PreviousOnPageUnload = null; - __RBSExistField = null; function AjaxCallObject() --- 6,9 ---- *************** *** 73,102 **** __bPageIsStored = bPageIsStored; ! // Check if callback should be forced after a browser page reload in FireFox, so all ! // controls rendered by MagicAjax-script will we redrawn on the page. ! __RBSExistField = document.forms[0]["__RBSCONTROLSEXIST"]; ! if (__RBSExistField != null && __RBSExistField.value == '1') { ! //alert('forcing callback for FireFox'); ! AJAXCbo.DoAjaxCall("",""); } ! if (bPageIsStored) ! { ! if (typeof(RBS_Controls) != "undefined") ! { ! for (var i=0; i < RBS_Controls.length; i++) ! RBS_Controls_Store[i].setAttribute("ExcludeFromPost", "true"); ! } ! ! __PreviousOnPageLoad = window.onload; ! window.onload = this.OnPageLoad; ! __PreviousOnPageBeforeUnload = window.onbeforeunload; ! window.onbeforeunload = this.OnPageBeforeUnload; ! __PreviousOnPageUnload = window.onunload; ! window.onunload = this.OnPageUnload; ! } } --- 72,89 ---- __bPageIsStored = bPageIsStored; ! if (typeof(RBS_Controls) != "undefined") { ! for (var i=0; i < RBS_Controls.length; i++) ! RBS_Controls_Store[i].setAttribute("ExcludeFromPost", "true"); } ! __PreviousOnPageLoad = window.onload; ! window.onload = this.OnPageLoad; ! __PreviousOnPageBeforeUnload = window.onbeforeunload; ! window.onbeforeunload = this.OnPageBeforeUnload; ! __PreviousOnPageUnload = window.onunload; ! window.onunload = this.OnPageUnload; } *************** *** 176,180 **** if (html != "") { ! AJAXCbo.RestoreHtml(RBS_Controls[i], decodeURIComponent(html.substring(5, html.length))); RBS_Controls_Store[i].value = ""; } --- 163,167 ---- if (html != "") { ! RBS_Controls[i].innerHTML = decodeURIComponent(html.substring(5, html.length)); RBS_Controls_Store[i].value = ""; } *************** *** 200,203 **** --- 187,193 ---- AjaxCallObject.prototype.OnPageUnload = function() { + if (document.all["__AJAX_PAGEKEY"] == null) + return; + var thePage = document.forms[0].action; var index = thePage.indexOf("?"); *************** *** 356,363 **** waitElement.style.visibility = 'hidden'; - // Set hidden field to indicate callback was done (used for FireFox page redraw on browser page reload) - if (__RBSExistField != null) - __RBSExistField.value = '1'; - return true; } --- 346,349 ---- *************** *** 373,377 **** if (waitElement) waitElement.style.visibility = 'hidden'; ! document.body.innerHTML = responseText; } --- 359,363 ---- if (waitElement) waitElement.style.visibility = 'hidden'; ! document.forms[0].innerHTML = responseText; } *************** *** 425,511 **** } - AjaxCallObject.prototype.RestoreHtml = function(destElem, html) - { - var store = document.createElement("form"); - store.innerHTML = html; - - var scripts = store.getElementsByTagName("script"); - while (scripts.length > 0) - scripts[0].parentNode.removeChild(scripts[0]); - - var elements = new Array(); - var coll = store.getElementsByTagName("INPUT"); - for (var i=0; i < coll.length; i++) - elements.push(coll[i]); - coll = store.getElementsByTagName("TEXTAREA"); - for (var i=0; i < coll.length; i++) - elements.push(coll[i]); - coll = store.getElementsByTagName("SELECT"); - for (var i=0; i < coll.length; i++) - elements.push(coll[i]); - - for( var i=0; i < elements.length; i++ ) - { - var elem = elements[i]; - eName = elem.name; - if( eName && eName != '') - { - var type = elem.type; - var docElem = document.all[elem.id]; - if (docElem == null || docElem.type != type) - continue; - - if ( type == "select-multiple" ) - { - if ( elem.options.length == docElem.options.length ) - { - for (var j=0; j < elem.options.length; j++) - elem.options[j].selected = docElem.options[j].selected; - } - } - else if ( type == "checkbox" || type == "radio" ) - { - elem.checked = docElem.checked; - } - else - { - elem.value = docElem.value; - } - } - } - - destElem.innerHTML = store.innerHTML; - - for( var i=0; i < elements.length; i++ ) - { - var elem = elements[i]; - eName = elem.name; - if( eName && eName != '') - { - var type = elem.type; - var docElem = document.all[elem.id]; - if (docElem == null || docElem.type != type) - continue; - - if ( type == "select-multiple" ) - { - if ( elem.options.length == docElem.options.length ) - { - for (var j=0; j < elem.options.length; j++) - docElem.options[j].selected = elem.options[j].selected; - } - } - else if ( type == "checkbox" || type == "radio" ) - { - docElem.checked = elem.checked; - } - else - { - docElem.value = elem.value; - } - } - } - } - AjaxCallObject.prototype.SetAttributesOfControl = function(clientID, attributes) { --- 411,414 ---- |