You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2009/06/04 06:22:13 UTC
svn commit: r781649 - in /ofbiz/trunk:
applications/party/script/org/ofbiz/party/communication/
applications/party/servicedef/
applications/party/src/org/ofbiz/party/communication/
applications/party/webapp/partymgr/WEB-INF/ specialpurpose/ecommerce/we...
Author: hansbak
Date: Thu Jun 4 04:22:13 2009
New Revision: 781649
URL: http://svn.apache.org/viewvc?rev=781649&view=rev
Log:
ecommerce component updated to use the new com_role_read status, as reported by Andy in the dev list
Modified:
ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventEvents.xml
ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml
ofbiz/trunk/applications/party/servicedef/services.xml
ofbiz/trunk/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java
ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/ViewProfile.groovy
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/messagelist.ftl
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/includes/header.ftl
Modified: ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventEvents.xml?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventEvents.xml (original)
+++ ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventEvents.xml Thu Jun 4 04:22:13 2009
@@ -21,41 +21,6 @@
<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd">
- <simple-method method-name="setCommEventToRead" short-description="">
- <entity-one entity-name="CommunicationEventRole" value-field="eventRole"/>
- <if-compare operator="equals" value="COM_ROLE_CREATED" field="eventRole.statusId">
- <call-simple-method method-name="checkCommEventAccess"/>
- <if-compare operator="equals" value="true" field="found">
- <entity-one entity-name="UserLogin" value-field="userLogin">
- <field-map field-name="userLoginId" value="system"/>
- </entity-one>
- <set-service-fields service-name="setCommunicationEventRoleStatus"
- map="parameters" to-map="updStat"/>
- <set field="updStat.statusId" value="COM_ROLE_READ"/>
- <set field="updStat.userLogin" from-field="userLogin"/>
- <call-service service-name="setCommunicationEventRoleStatus" in-map-name="updStat"
- include-user-login="false"/>
- </if-compare>
- </if-compare>
- </simple-method>
-
- <simple-method method-name="checkCommEventAccess"
- short-description="check if the user has access to the email of this party">
- <set field="found" value="false"/>
- <if-compare-field operator="not-equals" field="parameters.partyId" to-field="userLogin.partyId">
- <entity-and list="emailOwners" entity-name="PartyRelationship" filter-by-date="true">
- <field-map field-name="partyIdFrom" value="${userLogin.partyId}"/>
- <field-map field-name="roleTypeIdFrom" value="EMAIL_ADMIN"/>
- <field-map field-name="partyIdTo" from-field="parameters.partyId"/>
- </entity-and>
- <if-not-empty field="emailOwners">
- <set field="found" value="true"/>
- </if-not-empty>
- <else>
- <set field="found" value="true"/>
- </else>
- </if-compare-field>
- </simple-method>
<simple-method method-name="addContentToCommEvent"
short-description="Add content to email communication">
<!-- Call layout to get field -->
Modified: ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml (original)
+++ ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml Thu Jun 4 04:22:13 2009
@@ -414,50 +414,6 @@
</if-not-empty>
</simple-method>
- <simple-method method-name="markEventRead" short-description="Automatically Marks a Communication Event as Read" login-required="false">
- <if-empty field="parameters.communicationEventId">
- <set from-field="parameters.messageId" field="parameters.communicationEventId"/>
- </if-empty>
- <entity-one entity-name="CommunicationEvent" value-field="event"/>
-
- <!-- get the 'system' user to run the update service as -->
- <entity-one entity-name="UserLogin" value-field="system">
- <field-map field-name="userLoginId" value="system"/>
- </entity-one>
-
- <if>
- <condition>
- <and>
- <or>
- <!-- valid statuses which can go to read -->
- <if-compare field="event.statusId" operator="equals" value="COM_ENTERED"/>
- <if-compare field="event.statusId" operator="equals" value="COM_PENDING"/>
- <if-compare field="event.statusId" operator="equals" value="COM_IN_PROGRESS"/>
- <if-compare field="event.statusId" operator="equals" value="COM_COMPLETE"/>
- </or>
- <or>
- <!-- if the user is not logged in, its okay to update, assumption is an external event -->
- <if-empty field="userLogin"/>
- <!-- if the user is logged in, make sure they are the owner of the event -->
- <and>
- <not><if-empty field="userLogin"/></not>
- <if-compare-field field="event.partyIdTo" to-field="userLogin.partyId" operator="equals"/>
- <!-- note: it is not okay for an admin to mark another user's event as read -->
- </and>
- </or>
- </and>
- </condition>
- <then>
- <set field="updateCtx.communicationEventId" from-field="event.communicationEventId"/>
- <set field="updateCtx.statusId" value="COM_READ"/>
- <set field="updateCtx.userLogin" from-field="userLogin"/>
- <if-empty field="userLogin">
- <set field="updateCtx.userLogin" from-field="system"/>
- </if-empty>
- <call-service service-name="updateCommunicationEvent" in-map-name="updateCtx" include-user-login="false"/>
- </then>
- </if>
- </simple-method>
<simple-method method-name="sendEmailDated"
short-description="Checks for email communication events with the status COM_IN_PROGRESS and a startdate which is expired, then send the email">
@@ -567,6 +523,35 @@
</if-empty>
</if-compare-field>
</simple-method>
+ <simple-method method-name="setCommEventRoleToRead" short-description="set the status for a particular party role to the status COM_ROLE_READ">
+ <if-empty field="parameters.partyId">
+ <set field="parameters.partyId" from-field="parameters.userLogin.partyId"/>
+ </if-empty>
+ <if-empty field="parameters.roleTypeId">
+ <entity-and entity-name="CommunicationEventRole" list="communicationEventRoles">
+ <field-map field-name="communicationEventId" from-field="parameters.communicationEventId"/>
+ <field-map field-name="partyId" from-field="parameters.partyId"/>
+ </entity-and>
+ <first-from-list entry="eventRole" list="communicationEventRoles"/>
+ <set field="parameters.roleTypeId" from-field="eventRole.roleTypeId"/>
+ <else>
+ <entity-one entity-name="CommunicationEventRole" value-field="eventRole"/>
+ </else>
+ </if-empty>
+ <if-not-empty field="eventRole">
+ <if-compare operator="equals" value="COM_ROLE_CREATED" field="eventRole.statusId">
+ <entity-one entity-name="UserLogin" value-field="userLogin">
+ <field-map field-name="userLoginId" value="system"/>
+ </entity-one>
+ <set-service-fields service-name="setCommunicationEventRoleStatus"
+ map="parameters" to-map="updStat"/>
+ <set field="updStat.statusId" value="COM_ROLE_READ"/>
+ <set field="updStat.userLogin" from-field="userLogin"/>
+ <call-service service-name="setCommunicationEventRoleStatus" in-map-name="updStat"
+ include-user-login="false"/>
+ </if-compare>
+ </if-not-empty>
+ </simple-method>
<simple-method method-name="setCommunicationEventRoleStatus" short-description="Set The Communication Event Status for a specific role">
<entity-one entity-name="CommunicationEventRole" value-field="communicationEventRole"/>
<field-to-result field="communicationEventRole.statusId" result-name="oldStatusId"/>
Modified: ofbiz/trunk/applications/party/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/servicedef/services.xml?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/party/servicedef/services.xml Thu Jun 4 04:22:13 2009
@@ -776,15 +776,11 @@
<auto-attributes include="pk" mode="INOUT" optional="true" entity-name="CommunicationEventWorkEff"/>
<auto-attributes include="nonpk" mode="IN" optional="true" entity-name="CommunicationEventWorkEff"/>
</service>
- <service name="markCommEventRead" engine="simple"
- location="component://party/script/org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="markEventRead" auth="false">
+ <service name="setCommEventRoleToRead" engine="simple" default-entity-name="CommunicationEventRole"
+ location="component://party/script/org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="setCommEventRoleToRead" auth="false">
<description>Marks a communication event as read</description>
- <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
- </service>
- <service name="markMessageRead" engine="simple"
- location="component://party/script/org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="markEventRead" auth="false">
- <description>Marks a communication event as read</description>
- <attribute name="messageId" type="String" mode="IN" optional="false"/>
+ <auto-attributes include="pk" mode="IN" optional="true"/>
+ <override name="communicationEventId" optional="false"/>
</service>
<service name="sendCommEventAsEmail" engine="java"
location="org.ofbiz.party.communication.CommunicationEventServices" invoke="sendCommEventAsEmail" auth="true"
Modified: ofbiz/trunk/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java (original)
+++ ofbiz/trunk/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java Thu Jun 4 04:22:13 2009
@@ -1206,6 +1206,8 @@
/*
* Event which marks a communication event as read, and returns a 1px image to the browser/mail client
+ * Is updated because the read status is now stored in the communicationEventRole
+ * This services is updated but could not be tested. assumed is "read" for partyIdTo on the commevent
*/
public static String markCommunicationAsRead(HttpServletRequest request, HttpServletResponse response) {
String communicationEventId = null;
@@ -1226,9 +1228,16 @@
// update the communication event
if (communicationEventId != null) {
Debug.logInfo("Marking communicationEventId [" + communicationEventId + "] from path info : " + request.getPathInfo() + " as read.", module);
+ GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
+ GenericValue communicationEvent = null;
+ try {
+ communicationEvent = delegator.findOne("CommunicationEvent", UtilMisc.toMap("communicationEventId", communicationEventId), true);
+ } catch (GenericEntityException e) {
+ Debug.logError(e, module);
+ }
LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
try {
- dispatcher.runAsync("markCommEventRead", UtilMisc.toMap("communicationEventId", communicationEventId));
+ dispatcher.runAsync("setCommEventRoleToRead", UtilMisc.toMap("communicationEventId", communicationEventId, "partyId", communicationEvent.getString("partyIdTo")));
} catch (GenericServiceException e) {
Debug.logError(e, module);
}
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=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml Thu Jun 4 04:22:13 2009
@@ -718,7 +718,7 @@
</request-map>
<request-map uri="ViewCommunicationEvent">
<security https="true" auth="true"/>
- <event type="simple" invoke="setCommEventToRead" path="component://party/script/org/ofbiz/party/communication/CommunicationEventEvents.xml"/>
+ <event type="service" invoke="setCommEventRoleToRead"/>
<response name="success" type="view" value="ViewCommunicationEvent"/>
</request-map>
<request-map uri="addContentToCommEvent">
Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/ViewProfile.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/ViewProfile.groovy?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/ViewProfile.groovy (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/ViewProfile.groovy Thu Jun 4 04:22:13 2009
@@ -58,10 +58,10 @@
orderBy = ["-entryDate"];
findOpts = new EntityFindOptions();
findOpts.setMaxRows(5);
- exprs = [EntityCondition.makeCondition("partyIdTo", EntityOperator.EQUALS, partyId)];
- exprs.add(EntityCondition.makeCondition("statusId", EntityOperator.NOT_EQUAL, "COM_READ"));
+ exprs = [EntityCondition.makeCondition("partyId", EntityOperator.EQUALS, partyId)];
+ exprs.add(EntityCondition.makeCondition("roleStatusId", EntityOperator.NOT_EQUAL, "COM_ROLE_READ"));
condition = EntityCondition.makeCondition(exprs, EntityOperator.AND);
- messages = delegator.findList("CommunicationEvent", condition, null, orderBy, findOpts, false);
+ messages = delegator.findList("CommunicationEventAndRole", condition, null, orderBy, findOpts, false);
context.messages = messages;
context.profileMessages = true;
Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Thu Jun 4 04:22:13 2009
@@ -1227,7 +1227,7 @@
</request-map>
<request-map uri="readmessage">
<security https="true" auth="true"/>
- <event type="service" invoke="markCommEventRead"/>
+ <event type="service" invoke="setCommEventRoleToRead"/>
<response name="success" type="view" value="messagedetail"/>
<response name="error" type="view" value="messagedetail"/>
</request-map>
Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/messagelist.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/messagelist.ftl?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/messagelist.ftl (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/messagelist.ftl Thu Jun 4 04:22:13 2009
@@ -34,7 +34,10 @@
<td><div class="tabletext">${communicationEvent.subject?default("")}</div></td>
<td><div class="tabletext">${communicationEvent.entryDate}</div></td>
<td align="right">
- <a href="<@o...@ofbizUrl>" class="buttontext">${uiLabelMap.EcommerceRead}</a>
+ <form method="post" action="<@o...@ofbizUrl>" name="ecomm_read_mess">
+ <input name="communicationEventId" value="${communicationEvent.communicationEventId}" type="hidden"/>
+ </form>
+ <a href="javascript:document.ecomm_read_mess.submit()">${uiLabelMap.EcommerceRead}</a>
<#if isSentMessage>
<a href="<@o...@ofbizUrl>" class="buttontext">${uiLabelMap.PartyReply}</a>
</#if>
Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/includes/header.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/includes/header.ftl?rev=781649&r1=781648&r2=781649&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/includes/header.ftl (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/includes/header.ftl Thu Jun 4 04:22:13 2009
@@ -63,6 +63,7 @@
<!-- NOTE: these are in reverse order because they are stacked right to left instead of left to right -->
<#if !userLogin?has_content || (userLogin.userLoginId)?if_exists != "anonymous">
<li id="header-bar-viewprofile"><a href="<@o...@ofbizUrl>">${uiLabelMap.CommonProfile}</a></li>
+ <li id="header-bar-ListMessages"><a href="<@o...@ofbizUrl>">${uiLabelMap.CommonMessages}</a></li>
<li id="header-bar-ListQuotes"><a href="<@o...@ofbizUrl>">${uiLabelMap.OrderOrderQuotes}</a></li>
<li id="header-bar-ListRequests"><a href="<@o...@ofbizUrl>">${uiLabelMap.OrderRequests}</a></li>
<li id="header-bar-editShoppingList"><a href="<@o...@ofbizUrl>">${uiLabelMap.EcommerceShoppingLists}</a></li>