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