Author: woonsan
Date: Tue May 19 08:14:12 2009
New Revision: 776228

URL: http://svn.apache.org/viewvc?rev=776228&view=rev
Log:
APA-14: Fixing javascript timing problem.
Probably, google maps API can invoke the existing callback javascript function 
before the function refreshed by the browser during rendering.
By this change, the location is stored in the javascript global variable 
instead of local variable of a refreshable function. It seems working now again.

Modified:
    
portals/applications/demo/trunk/src/main/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm

Modified: 
portals/applications/demo/trunk/src/main/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm
URL: 
http://svn.apache.org/viewvc/portals/applications/demo/trunk/src/main/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm?rev=776228&r1=776227&r2=776228&view=diff
==============================================================================
--- 
portals/applications/demo/trunk/src/main/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm
 (original)
+++ 
portals/applications/demo/trunk/src/main/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm
 Tue May 19 08:14:12 2009
@@ -15,22 +15,23 @@
   limitations under the License.
 *#
 <script language="JavaScript" type="text/javascript">
-function ${renderResponse.namespace}mapsLoaded() {
-  var loc = escape("$!renderRequest.getParameter('address')");
-  if (loc == null)
+var ${renderResponse.namespace}loc = 
escape("$!renderRequest.getParameter('address')");
+if (${renderResponse.namespace}loc == null)
+{
+  ${renderResponse.namespace}loc = 
escape("$renderRequest.getPreferences().getValue('Location','')");
+}
+else
+{
+  ${renderResponse.namespace}loc = 
${renderResponse.namespace}loc.replace(/^\s*/, "").replace(/\s*$/, "");
+  if (${renderResponse.namespace}loc == "")
   {
-       loc = escape("$renderRequest.getPreferences().getValue('Location','')");
+    ${renderResponse.namespace}loc = 
escape("$renderRequest.getPreferences().getValue('Location','')");
   }
-  else
-  {
-         loc = loc.replace(/^\s*/, "").replace(/\s*$/, "");
-         if (loc == "")
-         {
-               loc = 
escape("$renderRequest.getPreferences().getValue('Location','')");
-         }
-  }    
+}
+
+function ${renderResponse.namespace}mapsLoaded() {
   var appid = escape("$renderRequest.getPreferences().getValue('APIKey','')");
-  var getLatitudeLongitudeUrl = 
"$renderRequest.getScheme():\/\/$renderRequest.getServerName():$renderRequest.getServerPort()$renderRequest.getContextPath()\/yahoogeocode?location="
 + loc + "&appid=" + appid;
+  var getLatitudeLongitudeUrl = 
"$renderRequest.getScheme():\/\/$renderRequest.getServerName():$renderRequest.getServerPort()$renderRequest.getContextPath()\/yahoogeocode?location="
 + ${renderResponse.namespace}loc + "&appid=" + appid;
   dojo.io.bind({
     url: getLatitudeLongitudeUrl,
     mimetype: "text/xml",


Reply via email to