Author: hansbak
Date: Mon Jul 18 08:07:00 2011 New Revision: 1147774 URL: http://svn.apache.org/viewvc?rev=1147774&view=rev Log: screens and services to be able to add/update a geolocation of a party Added: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy (with props) ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl (with props) Modified: ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartySimpleEvents.xml ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml ofbiz/trunk/applications/party/widget/partymgr/PartyScreens.xml Modified: ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartySimpleEvents.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartySimpleEvents.xml?rev=1147774&r1=1147773&r2=1147774&view=diff ============================================================================== --- ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartySimpleEvents.xml (original) +++ ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartySimpleEvents.xml Mon Jul 18 08:07:00 2011 @@ -127,4 +127,30 @@ under the License. <field-to-request field="contentId" request-name="contentId"/> </simple-method> + <!-- GeoLocation services --> + <simple-method method-name="editGeoLocation" short-description="Edit GeoLocation"> + <if-empty field="parameters.geoPointId"> + <set field="createGeoPointMap.dataSourceId" value="GEOPT_GOOGLE"/> + <set field="createGeoPointMap.latitude" from-field="parameters.lat"/> + <set field="createGeoPointMap.longitude" from-field="parameters.lng"/> + <call-service service-name="createGeoPoint" in-map-name="createGeoPointMap"> + <result-to-field result-name="geoPointId" field="geoPointId"/> + </call-service> + + <now-timestamp field="nowTimestamp"/> + <make-value value-field="partyGeoPoint" entity-name="PartyGeoPoint"/> + <set field="partyGeoPoint.partyId" from-field="parameters.partyId"/> + <set field="partyGeoPoint.geoPointId" from-field="geoPointId"/> + <set field="partyGeoPoint.fromDate" from-field="nowTimestamp"/> + <create-value value-field="partyGeoPoint"/> + <else> + <set field="updateGeoPointMap.geoPointId" from-field="parameters.geoPointId"/> + <set field="updateGeoPointMap.dataSourceId" value="GEOPT_GOOGLE"/> + <set field="updateGeoPointMap.latitude" from-field="parameters.lat"/> + <set field="updateGeoPointMap.longitude" from-field="parameters.lng"/> + <call-service service-name="updateGeoPoint" in-map-name="updateGeoPointMap"/> + </else> + </if-empty> + </simple-method> + </simple-methods> Added: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy?rev=1147774&view=auto ============================================================================== --- ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy (added) +++ ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy Mon Jul 18 08:07:00 2011 @@ -0,0 +1,18 @@ +import org.ofbiz.entity.*; +import org.ofbiz.entity.util.EntityUtil; +import org.ofbiz.base.util.*; +import org.ofbiz.base.util.string.*; +import org.ofbiz.party.contact.ContactHelper; +import org.ofbiz.common.geo.*; + +if (partyId) { + latestGeoPoint = GeoWorker.findLatestGeoPoint(delegator, "PartyAndGeoPoint", "partyId", partyId, null, null); + if (latestGeoPoint) { + context.geoPointId = latestGeoPoint.geoPointId; + context.latitude = latestGeoPoint.latitude; + context.longitude = latestGeoPoint.longitude; + } else { + context.latitude = 0; + context.longitude = 0; + } +} Propchange: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml?rev=1147774&r1=1147773&r2=1147774&view=diff ============================================================================== --- ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml Mon Jul 18 08:07:00 2011 @@ -1150,6 +1150,17 @@ under the License. <response name="success" type="view" value="PartyGeoLocation"/> <response name="error" type="view" value="viewprofile"/> </request-map> + <request-map uri="addGeoLocation"> + <security https="true" auth="true"/> + <response name="success" type="view" value="addGeoLocation"/> + <response name="error" type="view" value="PartyGeoLocation"/> + </request-map> + <request-map uri="editGeoLocation"> + <security https="true" auth="true"/> + <event type="simple" path="component://party/script/org/ofbiz/party/party/PartySimpleEvents.xml" invoke="editGeoLocation"/> + <response name="success" type="view" value="PartyGeoLocation"/> + <response name="error" type="view" value="PartyGeoLocation"/> + </request-map> <!-- ProductStoreRole --> <request-map uri="ViewProductStoreRoles"> @@ -1356,10 +1367,14 @@ under the License. <view-map name="UpdateCommOrders" type="screen" page="component://party/widget/partymgr/CommunicationEventScreens.xml#UpdateCommOrders"/> <view-map name="UpdateCommProducts" type="screen" page="component://party/widget/partymgr/CommunicationEventScreens.xml#UpdateCommProducts"/> - + <view-map name="ViewProductStoreRoles" type="screen" page="component://party/widget/partymgr/PartyScreens.xml#ViewProductStoreRoles"/> - + <!-- Billing Account--> <view-map name="EditBillingAccount" type="screen" page="component://party/widget/partymgr/PaymentMethodScreens.xml#EditBillingAccount"/> + + <!-- GeoLocation--> + <view-map name="addGeoLocation" type="screen" page="component://party/widget/partymgr/PartyScreens.xml#EditGeoLocation"/> + <!-- end of view mappings --> </site-conf> Added: ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl?rev=1147774&view=auto ============================================================================== --- ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl (added) +++ ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl Mon Jul 18 08:07:00 2011 @@ -0,0 +1,123 @@ +<#-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAgrj58PbXr2YriiRDqbnL1RSqrCjdkglBijPNIIYrqkVvD1R4QxRl47Yh2D_0C1l5KXQJGrbkSDvXFA" type="text/javascript"></script> +<script type="text/javascript"> + function load() { + if (GBrowserIsCompatible()) { + var map = new GMap2(document.getElementById("map")); + map.addControl(new GSmallMapControl()); + map.addControl(new GMapTypeControl()); + var center = new GLatLng(${latitude?if_exists}, ${longitude?if_exists}); + map.setCenter(center, 15); + geocoder = new GClientGeocoder(); + var marker = new GMarker(center, {draggable: true}); + map.addOverlay(marker); + document.getElementById("lat").value = center.lat().toFixed(5); + document.getElementById("lng").value = center.lng().toFixed(5); + + GEvent.addListener(marker, "dragend", function() { + var point = marker.getPoint(); + map.panTo(point); + document.getElementById("lat").value = point.lat().toFixed(5); + document.getElementById("lng").value = point.lng().toFixed(5); + }); + + GEvent.addListener(map, "moveend", function() { + map.clearOverlays(); + var center = map.getCenter(); + var marker = new GMarker(center, {draggable: true}); + map.addOverlay(marker); + document.getElementById("lat").value = center.lat().toFixed(5); + document.getElementById("lng").value = center.lng().toFixed(5); + + GEvent.addListener(marker, "dragend", function() { + var point =marker.getPoint(); + map.panTo(point); + document.getElementById("lat").value = point.lat().toFixed(5); + document.getElementById("lng").value = point.lng().toFixed(5); + }); + }); + } + } + + function showAddress(address) { + var map = new GMap2(document.getElementById("map")); + map.addControl(new GSmallMapControl()); + map.addControl(new GMapTypeControl()); + if (geocoder) { + geocoder.getLatLng( + address, + function(point) { + if (!point) { + alert(address + " not found"); + } else { + document.getElementById("lat").value = point.lat().toFixed(5); + document.getElementById("lng").value = point.lng().toFixed(5); + map.clearOverlays() + map.setCenter(point, 14); + var marker = new GMarker(point, {draggable: true}); + map.addOverlay(marker); + + GEvent.addListener(marker, "dragend", function() { + var pt = marker.getPoint(); + map.panTo(pt); + document.getElementById("lat").value = pt.lat().toFixed(5); + document.getElementById("lng").value = pt.lng().toFixed(5); + }); + + GEvent.addListener(map, "moveend", function() { + map.clearOverlays(); + var center = map.getCenter(); + var marker = new GMarker(center, {draggable: true}); + map.addOverlay(marker); + document.getElementById("lat").value = center.lat().toFixed(5); + document.getElementById("lng").value = center.lng().toFixed(5); + + GEvent.addListener(marker, "dragend", function() { + var pt = marker.getPoint(); + map.panTo(pt); + document.getElementById("lat").value = pt.lat().toFixed(5); + document.getElementById("lng").value = pt.lng().toFixed(5); + }); + }); + } + }); + } + } +</script> + +<body onload="load()" onunload="GUnload()" > + <center> + <div align="center" id="map" style="border:1px solid #979797; background-color:#e5e3df; width:500px; height:450px; margin:2em auto;"><br/></div> + <form action="#" onsubmit="showAddress(this.address.value); return false"> + <input type="text" size="50" name="address"/> + <input type="submit" value="Search"/> + </form> + <br/><br/> + <form id="updateMapForm" method="post" action="<@ofbizUrl>editGeoLocation</@ofbizUrl>"> + <input type="hidden" name="partyId" value="${parameters.partyId?if_exists}"/> + <input type="hidden" name="geoPointId" value="${parameters.geoPointId?if_exists}"/> + <input type="hidden" name="lat" id="lat"/> + <input type="hidden" name="lng" id="lng"/> + <input type="submit" id="createMapButton" class="smallSubmit" value="${uiLabelMap.CommonSubmit}"> + </form> + <br/><br/><br/> + </center> +</body> Propchange: ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/party/webapp/partymgr/party/editGeoLocation.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/trunk/applications/party/widget/partymgr/PartyScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/widget/partymgr/PartyScreens.xml?rev=1147774&r1=1147773&r2=1147774&view=diff ============================================================================== --- ofbiz/trunk/applications/party/widget/partymgr/PartyScreens.xml (original) +++ ofbiz/trunk/applications/party/widget/partymgr/PartyScreens.xml Mon Jul 18 08:07:00 2011 @@ -1124,10 +1124,49 @@ under the License. <widgets> <decorator-screen name="CommonPartyDecorator" location="${parameters.mainDecoratorLocation}"> <decorator-section name="body"> - <label>${uiLabelMap.CommonLatitude} ${latestGeoPoint.latitude}</label> - <label>${uiLabelMap.CommonLongitude} ${latestGeoPoint.longitude}</label> - <label>${uiLabelMap.CommonElevation} ${latestGeoPoint.elevation} ${elevationUomAbbr}</label> - <include-screen name="geoChart" location="component://common/widget/CommonScreens.xml"/> + <section> + <condition> + <not><if-empty field="geoChart"/></not> + </condition> + <widgets> + <container style="button-bar"> + <link target="addGeoLocation" text="${uiLabelMap.CommonUpdate}" style="buttontext"> + <parameter param-name="partyId" from-field="parameters.partyId"/> + </link> + </container> + <label>${uiLabelMap.CommonLatitude} ${latestGeoPoint.latitude}</label> + <label>${uiLabelMap.CommonLongitude} ${latestGeoPoint.longitude}</label> + <label>${uiLabelMap.CommonElevation} ${latestGeoPoint.elevation} ${elevationUomAbbr}</label> + <include-screen name="geoChart" location="component://common/widget/CommonScreens.xml"/> + </widgets> + <fail-widgets> + <container style="button-bar"> + <link target="addGeoLocation" text="${uiLabelMap.CommonCreateNew}" style="buttontext create"> + <parameter param-name="partyId" from-field="parameters.partyId"/> + </link> + </container> + <include-screen name="geoChart" location="component://common/widget/CommonScreens.xml"/> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="EditGeoLocation"> + <section> + <actions> + <set field="titleProperty" value="PageTitlePartyGeoLocation"/> + <set field="tabButtonItem" value="PartyGeoLocation"/> + <set field="partyId" from-field="parameters.partyId"/> + <script location="component://party/webapp/partymgr/WEB-INF/actions/party/GetGeoLocation.groovy"/> + </actions> + <widgets> + <decorator-screen name="CommonPartyDecorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <platform-specific> + <html><html-template location="component://party/webapp/partymgr/party/editGeoLocation.ftl"/></html> + </platform-specific> </decorator-section> </decorator-screen> </widgets> |
Free forum by Nabble | Edit this page |