You are viewing a plain text version of this content. The canonical link for it is here.
Posted to portalapps-dev@portals.apache.org by wo...@apache.org on 2009/05/19 10:14:12 UTC

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

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",