daf92c0f9eb331ea60740e6802aabd241d4be363 tdreszer Wed Sep 1 13:40:10 2010 -0700 Change popup cfg to recognize only changed vars for update to cart and page update diff --git src/hg/js/utils.js src/hg/js/utils.js index 7fd9490..20ee75a 100644 --- src/hg/js/utils.js +++ src/hg/js/utils.js @@ -515,24 +515,35 @@ urlData[name+"_sel"] = 1; urlData[name] = val; } + } else urlData[name] = val; } - } }); return urlData; } -function objectToQueryString(o) +function varHashChanges(newVars,oldVars) +{ +// Returns a hash of all vars that are changed between old and new hash. New vars not found in old are changed. + var changedVars = new Object(); + for (var newVar in newVars) { + if(oldVars[newVar] == null || oldVars[newVar] != newVars[newVar]) + changedVars[newVar] = newVars[newVar]; + } + return changedVars; +} + +function varHashToQueryString(varHash) { // return a CGI QUERY_STRING for name/vals in given object var retVal = ""; var count = 0; - for (var i in o) { + for (var aVar in varHash) { if(count++ > 0) { - retVal = retVal + "&" + retVal += "&"; } - // XXXX encode i and o[i]? - retVal = retVal + i + "=" + o[i]; + // XXXX encode var=val ? + retVal += aVar + "=" + varHash[aVar]; } return retVal; } @@ -541,7 +552,7 @@ { // Returns a string in the form of var1=val1&var2=val2... for all inputs and selects in an obj // If obj is undefined then obj is document! - return objectToQueryString(getAllVars(obj)); + return varHashToQueryString(getAllVars(obj)); } /*