svn commit: r765477 - in /ofbiz/trunk/applications: marketing/data/ marketing/webapp/marketing/WEB-INF/ marketing/webapp/marketing/contact/ marketing/widget/ party/data/ party/servicedef/ party/src/org/ofbiz/party/communication/ party/webapp/partymgr/c...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r765477 - in /ofbiz/trunk/applications: marketing/data/ marketing/webapp/marketing/WEB-INF/ marketing/webapp/marketing/contact/ marketing/widget/ party/data/ party/servicedef/ party/src/org/ofbiz/party/communication/ party/webapp/partymgr/c...

jaz-3
Author: jaz
Date: Thu Apr 16 05:59:33 2009
New Revision: 765477

URL: http://svn.apache.org/viewvc?rev=765477&view=rev
Log:
a few updates to improve managing communication events with contact lists; added new status for bounced messages, invalidate subscribers from the list(only works if the SMTP server does not accept the address); started working on communication preview (very early ALPHA)

Modified:
    ofbiz/trunk/applications/marketing/data/MarketingTypeData.xml
    ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/controller.xml
    ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml
    ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListMenus.xml
    ofbiz/trunk/applications/marketing/widget/ContactListScreens.xml
    ofbiz/trunk/applications/party/data/PartyTypeData.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/communication/CommForms.xml
    ofbiz/trunk/applications/party/widget/partymgr/CommonScreens.xml
    ofbiz/trunk/applications/party/widget/partymgr/CommunicationScreens.xml

Modified: ofbiz/trunk/applications/marketing/data/MarketingTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/data/MarketingTypeData.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/data/MarketingTypeData.xml (original)
+++ ofbiz/trunk/applications/marketing/data/MarketingTypeData.xml Thu Apr 16 05:59:33 2009
@@ -41,12 +41,14 @@
     <StatusItem description="Accepted" sequenceId="02" statusCode="ACCEPTED" statusId="CLPT_ACCEPTED" statusTypeId="CONTACTLST_PARTY"/>
     <StatusItem description="Rejected" sequenceId="03" statusCode="REJECTED" statusId="CLPT_REJECTED" statusTypeId="CONTACTLST_PARTY"/>
     <StatusItem description="In Use" sequenceId="04" statusCode="IN_USE" statusId="CLPT_IN_USE" statusTypeId="CONTACTLST_PARTY"/>
+    <StatusItem description="Invalid" sequenceId="05" statusCode="INVALID" statusId="CLPT_INVALID" statusTypeId="CONTACTLST_PARTY"/>
     <StatusValidChange condition="" statusId="CLPT_PENDING" statusIdTo="CLPT_ACCEPTED" transitionName="Accept"/>
     <StatusValidChange condition="" statusId="CLPT_PENDING" statusIdTo="CLPT_REJECTED" transitionName="Reject"/>
     <StatusValidChange condition="" statusId="CLPT_ACCEPTED" statusIdTo="CLPT_REJECTED" transitionName="Reject"/>
     <StatusValidChange condition="" statusId="CLPT_REJECTED" statusIdTo="CLPT_ACCEPTED" transitionName="Accept"/>
     <StatusValidChange condition="" statusId="CLPT_REJECTED" statusIdTo="CLPT_PENDING" transitionName="Pending Accept"/>
     <StatusValidChange condition="" statusId="CLPT_ACCEPTED" statusIdTo="CLPT_IN_USE" transitionName="Locked - In Use"/>
+    <StatusValidChange condition="" statusId="CLPT_ACCEPTED" statusIdTo="CLPT_INVALID" transitionName="Invalid"/>
 
     <SegmentGroupType segmentGroupTypeId="MARKET_SEGMENT" description="Market Segment"/>
     <SegmentGroupType segmentGroupTypeId="SALES_SEGMENT" description="Sales Segment"/>

Modified: ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/controller.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/marketing/webapp/marketing/WEB-INF/controller.xml Thu Apr 16 05:59:33 2009
@@ -324,6 +324,10 @@
     <request-map uri="ListContactListCommEvents"><security https="true" auth="true"/><response name="success" type="view" value="ListContactListCommEvents"/></request-map>
     <request-map uri="EditContactListCommEvent"><security https="true" auth="true"/><response name="success" type="view" value="EditContactListCommEvent"/></request-map>
     <request-map uri="FindContactListCommEvents"><security https="true" auth="true"/><response name="success" type="view" value="FindContactListCommEvents"/></request-map>
+    <request-map uri="PreviewContactListCommEvent">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="PreviewContactListCommEvent"/>
+    </request-map>
     <request-map uri="createContactListCommEvent">
         <security https="true" auth="true"/>
         <event type="service" invoke="createCommunicationEvent"/>
@@ -407,6 +411,7 @@
     <view-map name="ListContactListCommEvents" type="screen" page="component://marketing/widget/ContactListScreens.xml#ListContactListCommEvents"/>
     <view-map name="EditContactListCommEvent" type="screen" page="component://marketing/widget/ContactListScreens.xml#EditContactListCommEvent"/>
     <view-map name="FindContactListCommEvents" type="screen" page="component://marketing/widget/ContactListScreens.xml#FindContactListCommEvents"/>
+    <view-map name="PreviewContactListCommEvent" type="screen" page="component://marketing/widget/ContactListScreens.xml#PreviewContactListCommEvent"/>
 
     <view-map name="LookupSegmentGroup" type="screen" page="component://marketing/widget/LookupScreens.xml#LookupSegmentGroup"/>
     <view-map name="LookupContactList" type="screen" page="component://marketing/widget/ContactListScreens.xml#LookupContactList"/>

Modified: ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml (original)
+++ ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListForms.xml Thu Apr 16 05:59:33 2009
@@ -236,12 +236,12 @@
             </drop-down>
         </field>
         <field name="statusId" use-when="communicationEvent!=null" title="${uiLabelMap.CommonStatus}">
-            <drop-down allow-empty="false" current-description="${uiLabelMap.CommonSelectOne}">
+            <drop-down allow-empty="false" no-current-selected-key="COM_PENDING" current-description="${uiLabelMap.CommonSelectOne}">
                 <entity-options entity-name="StatusValidChangeToDetail" key-field-name="statusIdTo" description="${transitionName} (${description})">
                     <entity-constraint name="statusId" value="${communicationEvent.statusId}"/>
                     <entity-order-by field-name="sequenceId"/>
                 </entity-options>
-            </drop-down>
+            </drop-down>            
         </field>
 
         <field name="contactMechTypeId" title="${uiLabelMap.MarketingContactListContactMechTypeId}" use-when="commEventContactMechType!=null&amp;&amp;parentCommEventContactMechType==null">
@@ -301,8 +301,8 @@
         </field>
         <field name="content" title="${uiLabelMap.CommonContent}"><textarea cols="60" rows="10"/></field>
         <field name="note" title="${uiLabelMap.CommonNote}"><textarea cols="60" rows="3"/></field>
-        <field name="submitButton" title="${uiLabelMap.CommonSave}"><submit button-type="button"/>        </field>
-        <field name="cancelLink" title="${uiLabelMap.CommonCancel}" widget-style="buttontext"><hyperlink target="${donePage}" also-hidden="false" description="${uiLabelMap.CommonCancelDone}"/></field>
+        <field name="submitButton" title=" ${uiLabelMap.CommonSave} "><submit button-type="button"/></field>
+        <field name="cancelLink" title=" " widget-style="buttontext"><hyperlink target="${donePage}" also-hidden="false" description="${uiLabelMap.CommonCancelDone}"/></field>
 
         <sort-order>
             <field-group title="${uiLabelMap.CommonAdvancedFeatures}" collapsible="true" initially-collapsed="true">
@@ -486,4 +486,37 @@
         <field name="contactMechTypeId" title="${uiLabelMap.MarketingContactListContactMechTypeId}"><display-entity entity-name="ContactMechType"/></field>
         <field name="cmDetail"><display description="[${infoString}] [${tnCountryCode}-${tnAreaCode}-${tnContactNumber}] [${paAddress1}, ${paAddress2}, ${paCity}, ${paStateProvinceGeoId}, ${paPostalCode}, ${paPostalCodeExt} ${paCountryGeoId}]" also-hidden="false"/></field>
     </form>
+
+    <form name="ListContactListCommStatuses" type="list"
+        odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
+        <actions>
+            <entity-and entity-name="ContactListCommStatus" use-cache="true">
+                <field-map field-name="communicationEventId" from-field="parameters.communicationEventId"/>
+            </entity-and>
+        </actions>
+        <field name="communicationEventId"><hidden/></field>
+        <field name="contactListId"><display-entity entity-name="ContactList" description="${decription}"/></field>
+        <field name="partyId" title="${uiLabelMap.PartyPartyId}">
+            <display-entity description="${firstName} ${middleName} ${lastName} ${groupName}" entity-name="PartyNameView">
+                <sub-hyperlink target="viewprofile" link-style="smallSubmit" description="${partyId}">
+                    <parameter param-name="partyId"/>
+                </sub-hyperlink>
+            </display-entity>
+        </field>
+        <field name="contactMechId"><display-entity entity-name="ContactMech" description="${infoString}"/></field>
+        <field name="lastUpdatedStamp" title="${uiLabelMap.FormFieldTitle_lastModifiedDate}"><display/></field>
+        <field name="statusId"><display-entity entity-name="StatusItem" description="${description}"/></field>
+    </form>
+
+    <form name="PreviewContactListCommEvent" target="" title="" type="single" default-map-name="communicationEvent">
+        <field name="subject"><display/></field>
+        <field name="content" title=" "><display type="text"/></field>
+
+        <sort-order>
+            <sort-field name="subject"/>
+            <field-group>
+                <sort-field name="content"/>
+            </field-group>
+        </sort-order>
+    </form>
 </forms>

Modified: ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListMenus.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListMenus.xml (original)
+++ ofbiz/trunk/applications/marketing/webapp/marketing/contact/ContactListMenus.xml Thu Apr 16 05:59:33 2009
@@ -37,4 +37,34 @@
             </link>
         </menu-item>
     </menu>
+
+    <menu name="ContactListCommBar" extends="CommonTabBarMenu" extends-resource="component://common/widget/CommonMenus.xml">
+        <menu-item name="Preview" title="Preview">
+            <condition>
+                <and>
+                    <not>
+                        <if-empty field="communicationEvent"/>
+                    </not>
+                </and>
+            </condition>
+            <link target="PreviewContactListCommEvent">
+                <parameter param-name="communicationEventId"/>
+                <parameter param-name="contactListId"/>
+            </link>
+        </menu-item>
+        <menu-item name="Publish" title="Publish">            
+            <condition>
+                <and>
+                    <not>
+                        <if-empty field="communicationEvent"/>
+                    </not>
+                    <if-compare field="communicationEvent.statusId" operator="equals" value="COM_PENDING"/>
+                </and>
+            </condition>
+            <link target="updateContactListCommEvent" link-type="hidden-form">                
+                <parameter param-name="communicationEventId"/>
+                <parameter param-name="statusId" value="COM_IN_PROGRESS"/>                
+            </link>
+        </menu-item>        
+    </menu>
 </menus>

Modified: ofbiz/trunk/applications/marketing/widget/ContactListScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/widget/ContactListScreens.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/widget/ContactListScreens.xml (original)
+++ ofbiz/trunk/applications/marketing/widget/ContactListScreens.xml Thu Apr 16 05:59:33 2009
@@ -303,9 +303,9 @@
     <screen name="EditContactListCommEvent">
         <section>
             <actions>
-                <set field="titleProperty" value="PageTitleEditContactList"/>
+                <set field="titleProperty" value="PageTitleEditContactListCommEvent"/>
                 <set field="contactListTabButtonItem" value="ContactListCommEvent"/>
-                <set field="labelTitleProperty" value="PageTitleEditContactList"/>
+                <set field="labelTitleProperty" value="PageTitleEditContactListCommEvent"/>
 
                 <set field="donePage" from-field="parameters.DONE_PAGE" default-value="/marketing/control/ListContactList"/>
                 <set field="contactListId" from-field="parameters.contactListId"/>
@@ -313,11 +313,12 @@
                 <entity-one entity-name="ContactList" value-field="contactList"/>
                 <entity-one entity-name="CommunicationEvent" value-field="communicationEvent"/>
 
+                <entity-one entity-name="StatusItem" value-field="status"/>                
+
                 <!-- get the contact list owner's marketing email -->
                 <script location="component://marketing/webapp/marketing/WEB-INF/actions/contact/GetContactListMarketingEmail.groovy"/>
                 <set field="contactMechIdFrom" value="${marketingEmail.contactMechId}"/>
-                <set field="partyIdFrom" value="${contactList.ownerPartyId}"/>
-                <set field="datetimeStarted" value="${groovy:org.ofbiz.base.util.UtilDateTime.nowTimestamp()}"/>
+                <set field="partyIdFrom" value="${contactList.ownerPartyId}"/>              
             </actions>
             <widgets>
                 <decorator-screen name="CommonContactListDecorator" location="${parameters.mainDecoratorLocation}">
@@ -331,6 +332,7 @@
                             <container style="screenlet-body">
                                 <section>
                                     <widgets>
+                                        <include-menu location="component://marketing/webapp/marketing/contact/ContactListMenus.xml" name="ContactListCommBar"/>
                                         <container>
                                             <link  text="${uiLabelMap.MarketingContactListCommEventCreate}" target="EditContactListCommEvent">
                                                 <parameter param-name="contactListId"/>
@@ -449,6 +451,7 @@
             </widgets>
         </section>
     </screen>
+
     <screen name="LookupPreferredContactMech">
         <section>
             <actions>
@@ -470,4 +473,27 @@
             </widgets>
         </section>
     </screen>
+
+   <screen name="PreviewContactListCommEvent">
+        <section>
+            <actions>
+                <set field="titleProperty" value="PageTitleEditContactListCommEvent"/>
+                <set field="contactListTabButtonItem" value="ContactListCommEvent"/>                
+                <set field="labelTitleProperty" value="PageTitleEditContactListCommEvent"/>
+
+                <set field="communicationEventId" from-field="parameters.communicationEventId"/>
+                <set field="contactListId" from-field="parameters.contactListId"/>
+
+                <entity-one entity-name="CommunicationEvent" value-field="communicationEvent"/>
+                <entity-one entity-name="ContactList" value-field="contactList"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="CommonContactListDecorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <include-form name="PreviewContactListCommEvent" location="component://marketing/webapp/marketing/contact/ContactListForms.xml"/>                        
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
 </screens>

Modified: ofbiz/trunk/applications/party/data/PartyTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/data/PartyTypeData.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/data/PartyTypeData.xml (original)
+++ ofbiz/trunk/applications/party/data/PartyTypeData.xml Thu Apr 16 05:59:33 2009
@@ -308,6 +308,7 @@
     <StatusItem description="Closed" sequenceId="20" statusCode="COMPLETE" statusId="COM_COMPLETE" statusTypeId="COM_EVENT_STATUS"/>
     <StatusItem description="Resolved" sequenceId="21" statusCode="RESOLVED" statusId="COM_RESOLVED" statusTypeId="COM_EVENT_STATUS"/>
     <StatusItem description="Referred" sequenceId="22" statusCode="REFERRED" statusId="COM_REFERRED" statusTypeId="COM_EVENT_STATUS"/>
+    <StatusItem description="Bounced" sequenceId="50" statusCode="BOUNCED" statusId="COM_BOUNCED" statusTypeId="COM_EVENT_STATUS"/>
     <StatusItem description="Cancelled" sequenceId="99" statusCode="CANCELLED" statusId="COM_CANCELLED" statusTypeId="COM_EVENT_STATUS"/>
     <StatusValidChange condition="" statusId="COM_ENTERED" statusIdTo="COM_PENDING" transitionName="Set Pending"/>
     <StatusValidChange condition="" statusId="COM_ENTERED" statusIdTo="COM_COMPLETE" transitionName="Complete"/>
@@ -316,6 +317,7 @@
     <StatusValidChange condition="" statusId="COM_READ" statusIdTo="COM_IN_PROGRESS" transitionName="Set In Progress"/>
     <StatusValidChange condition="" statusId="COM_READ" statusIdTo="COM_COMPLETE" transitionName="Complete"/>
     <StatusValidChange condition="" statusId="COM_IN_PROGRESS" statusIdTo="COM_COMPLETE" transitionName="Complete"/>
+    <StatusValidChange condition="" statusId="COM_IN_PROGRESS" statusIdTo="COM_BOUNCED" transitionName="Bounced"/>
     <StatusValidChange condition="" statusId="COM_COMPLETE" statusIdTo="COM_RESOLVED" transitionName="Resolve"/>
     <StatusValidChange condition="" statusId="COM_COMPLETE" statusIdTo="COM_REFERRED" transitionName="Refer"/>
     <StatusValidChange condition="" statusId="COM_UNKNOWN_PARTY" statusIdTo="COM_COMPLETE" transitionName="Complete"/>

Modified: ofbiz/trunk/applications/party/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/servicedef/services.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/party/servicedef/services.xml Thu Apr 16 05:59:33 2009
@@ -693,6 +693,7 @@
         <auto-attributes entity-name="CommunicationEvent" include="pk" mode="IN" optional="false"/>
         <auto-attributes entity-name="CommunicationEvent" include="nonpk" mode="IN" optional="true"/>
         <attribute name="oldStatusId" type="String" mode="OUT" optional="true"/>
+        <override name="content" allow-html="any"/>
     </service>
     <service name="deleteCommunicationEvent" engine="simple"
         location="component://party/script/org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="deleteCommunicationEvent" 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=765477&r1=765476&r2=765477&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 Apr 16 05:59:33 2009
@@ -135,10 +135,22 @@
                 sendMailParams.put("sendTo", sendTo);
                 sendMailParams.put("partyId", communicationEvent.getString("partyIdTo"));  // who it's going to
 
-                // send it
-                Map<String, Object> tmpResult = dispatcher.runSync("sendMail", sendMailParams);
+                // send it - using a new transaction
+                Map<String, Object> tmpResult = dispatcher.runSync("sendMail", sendMailParams, 360, true);
                 if (ServiceUtil.isError(tmpResult)) {
-                    errorMessages.add(ServiceUtil.getErrorMessage(tmpResult));
+                    if (ServiceUtil.getErrorMessage(tmpResult).startsWith("[ADDRERR]")) {
+                        // address error; mark the communication event as BOUNCED
+                        communicationEvent.set("statusId", "COM_BOUNCED");
+                        try {
+                            communicationEvent.store();
+                        } catch (GenericEntityException e) {
+                            Debug.logError(e, module);
+                            return ServiceUtil.returnError(e.getMessage());
+                        }
+                    } else {
+                        // setup or communication error
+                        errorMessages.add(ServiceUtil.getErrorMessage(tmpResult));
+                    }
                 } else {
                     // set the message ID on this communication event
                     String messageId = (String) tmpResult.get("messageId");
@@ -229,7 +241,7 @@
             // Send an email to each contact list member
             // TODO: Contact lists for emails really should be written as an EntityListIterator for very large lists!
             List<String> orderBy = UtilMisc.toList("-fromDate");
-            for (GenericValue contactListPartyAndContactMech: sendToEmails) {
+            for (GenericValue contactListPartyAndContactMech : sendToEmails) {
                 // Any exceptions thrown in this inner block will only relate to a single email of the list, so should
                 //  only be logged and not cause the service to return an error
                 try {
@@ -283,16 +295,38 @@
                         continue;
                     }
 
-                    Map<String, Object> tmpResult = null;
-
                     // Make the attempt to send the email to the address
-                    tmpResult = dispatcher.runSync("sendMail", sendMailParams);
+                    Map<String, Object> tmpResult = dispatcher.runSync("sendMail", sendMailParams, 360, true);
                     if (tmpResult == null || ServiceUtil.isError(tmpResult)) {
-
-                        // If the send attempt fails, just log and skip the email address
-                        Debug.logError(errorCallingSendMailService + ": " + ServiceUtil.getErrorMessage(tmpResult), module);
-                        errorMessages.add(errorCallingSendMailService + ": " + ServiceUtil.getErrorMessage(tmpResult));
-                        continue;
+                        if (ServiceUtil.getErrorMessage(tmpResult).startsWith("[ADDRERR]")) {
+                            // address error; mark the communication event as BOUNCED
+                            communicationEvent.set("statusId", "COM_BOUNCED");
+                            contactListCommStatusRecord.set("statusId", "COM_BOUNCED");
+                            try {
+                                communicationEvent.store();
+                                contactListCommStatusRecord.store();
+                            } catch (GenericEntityException e) {
+                                Debug.logError(e, module);
+                                errorMessages.add(e.getMessage());
+                            }
+                            // deactivate from the contact list
+                            try {
+                                GenericValue contactListParty = contactListPartyAndContactMech.getRelatedOne("ContactListParty");
+                                if (contactListParty != null) {
+                                    contactListParty.set("statusId", "CLPT_INVALID");
+                                    contactListParty.store();
+                                }
+                            } catch (GenericEntityException e) {
+                                Debug.logError(e, module);
+                                errorMessages.add(e.getMessage());
+                            }
+                            continue;
+                        } else {
+                            // If the send attempt fails, just log and skip the email address
+                            Debug.logError(errorCallingSendMailService + ": " + ServiceUtil.getErrorMessage(tmpResult), module);
+                            errorMessages.add(errorCallingSendMailService + ": " + ServiceUtil.getErrorMessage(tmpResult));
+                            continue;
+                        }
                     }
 
                     if ("Y".equals(contactList.get("singleUse"))) {

Modified: ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml (original)
+++ ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml Thu Apr 16 05:59:33 2009
@@ -229,7 +229,9 @@
             </display-entity>
         </field>
         <field name="statusId"><display-entity description="${description}" entity-name="StatusItem" key-field-name="statusId"/></field>
+        <field name="lastUpdatedStamp" title="${uiLabelMap.FormFieldTitle_lastModifiedDate}"><display/></field>
         <field name="datetimeStarted" title="${uiLabelMap.CommonSendDate}"><display type="date"/></field>
+        <field name="datetimeEnded" title="${uiLabelMap.CommonEndDate}"><display type="date"/></field>
         <field name="subject"><display/></field>
         <field name="content" title="${uiLabelMap.CommonContent}"><display/></field>
         <field name="note" title="${uiLabelMap.CommonNote}"><display/></field>

Modified: ofbiz/trunk/applications/party/widget/partymgr/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/widget/partymgr/CommonScreens.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/widget/partymgr/CommonScreens.xml (original)
+++ ofbiz/trunk/applications/party/widget/partymgr/CommonScreens.xml Thu Apr 16 05:59:33 2009
@@ -25,6 +25,7 @@
             <actions>
                 <!-- base/top/specific map first, then more common map added for shared labels -->
                 <property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
+                <property-map resource="MarketingUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="WorkEffortUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="ContentUiLabels" map-name="uiLabelMap" global="true"/>

Modified: ofbiz/trunk/applications/party/widget/partymgr/CommunicationScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/widget/partymgr/CommunicationScreens.xml?rev=765477&r1=765476&r2=765477&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/widget/partymgr/CommunicationScreens.xml (original)
+++ ofbiz/trunk/applications/party/widget/partymgr/CommunicationScreens.xml Thu Apr 16 05:59:33 2009
@@ -249,6 +249,19 @@
                             </screenlet>
                         </widgets>
                     </section>
+                    <section>
+                        <actions>
+                            <set field="entityName" value="ContactListCommStatus"/>
+                            <set field="requestParameters.communicationEventId"
+                                from-field="parameters.communicationEventId"/>
+                        </actions>
+                        <widgets>
+                            <screenlet title="${uiLabelMap.MarketingContactListCommStatus}">
+                                <include-form name="ListContactListCommStatuses"
+                                    location="component://marketing/webapp/marketing/contact/ContactListForms.xml"/>
+                            </screenlet>                        
+                        </widgets>
+                    </section>
                 </container>
             </widgets>
         </section>