Author: jleroux
Date: Thu Sep 26 15:11:52 2019
New Revision: 1867581
URL: http://svn.apache.org/viewvc?rev=1867581&view=rev
Log:
Improved: Add a discussion feature in order detail view for following
communication about the order (mail, phone etc.)
(OFBIZ-11210)
This is in order detail view for following communication about the order
(mail, phone etc.) to keep an eye about all com' event linked to the order.
Thanks: Carl Demus
Added:
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy
(with props)
ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy
(with props)
ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl
(with props)
Modified:
ofbiz/ofbiz-framework/trunk/applications/order/servicedef/services.xml
ofbiz/ofbiz-framework/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderForms.xml
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml
ofbiz/ofbiz-framework/trunk/applications/party/config/PartyUiLabels.xml
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventScreens.xml
ofbiz/ofbiz-framework/trunk/framework/common/config/CommonUiLabels.xml
Added:
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy?rev=1867581&view=auto
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy
(added)
+++
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy
Thu Sep 26 15:11:52 2019
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * 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.
+
*******************************************************************************/
+
+import org.apache.ofbiz.base.util.UtilDateTime
+import org.apache.ofbiz.service.ServiceUtil
+
+/**
+ * Create a new order conversation
+ */
+def createOrderConversation() {
+ Map<String, Object> createCommunicationEventMap =
dispatcher.getDispatchContext()
+ .makeValidContext('createCommunicationEvent', 'IN', parameters)
+ createCommunicationEventMap.entryDate = UtilDateTime.nowTimestamp()
+ createCommunicationEventMap.statusId = "COM_ENTERED"
+ def result = dispatcher.runSync('createCommunicationEvent',
createCommunicationEventMap)
+ if (ServiceUtil.isError(result)) return result
+
+ if (parameters.communicationEventPrpTypId) {
+ Map<String, Object> createCommunicationEventPurposeMap =
dispatcher.getDispatchContext()
+ .makeValidContext('createCommunicationEventPurpose', 'IN',
parameters)
+ createCommunicationEventPurposeMap.communicationEventId =
result.communicationEventId
+ return dispatcher.runSync('createCommunicationEventPurpose',
createCommunicationEventPurposeMap);
+ }
+}
\ No newline at end of file
Propchange:
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange:
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/communications/CommunicationServices.groovy
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: ofbiz/ofbiz-framework/trunk/applications/order/servicedef/services.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/servicedef/services.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/servicedef/services.xml
(original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/servicedef/services.xml Thu
Sep 26 15:11:52 2019
@@ -668,6 +668,12 @@ under the License.
</required-permissions>
<auto-attributes entity-name="CommunicationEventOrder" include="pk"
mode="IN"/>
</service>
+ <service name="createOrderConversation" engine="groovy"
invoke="createOrderConversation" auth="true"
+
location="component://order/groovyScripts/communications/CommunicationServices.groovy">
+ <description>Create a order conversation</description>
+ <implements service="createCommunicationEvent"/>
+ <implements service="createCommunicationEventPurpose"/>
+ </service>
<!-- Order Shipping and Contacts -->
<service name="createOrderItemShipGroup"
default-entity-name="OrderItemShipGroup" engine="entity-auto" invoke="create"
auth="true">
Modified:
ofbiz/ofbiz-framework/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml
Thu Sep 26 15:11:52 2019
@@ -1981,6 +1981,20 @@ under the License.
</response>
</request-map>
+ <request-map uri="createOrderConversation">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createOrderConversation"/>
+ <response name="success" type="request-redirect" value="orderview">
+ <redirect-parameter name="orderId"/>
+ </response>
+ <response name="error" type="request-redirect" value="orderview">
+ <redirect-parameter name="orderId"/>
+ </response>
+ </request-map>
+ <request-map uri="CreateNewOrderMessage">
+ <security auth="true" https="true"/>
+ <response name="success" type="view" value="CreateNewOrderMessage"/>
+ </request-map>
<!-- end of request mappings -->
<!-- View Mappings -->
@@ -1999,6 +2013,8 @@ under the License.
<view-map name="receivepayment" type="screen"
page="component://order/widget/ordermgr/OrderViewScreens.xml#OrderReceivePayment"/>
<view-map name="viewimage" type="screen"
page="component://order/widget/ordermgr/OrderViewScreens.xml#ViewImage"/>
<view-map name="ListOrderTerms" type="screen"
page="component://order/widget/ordermgr/OrderViewScreens.xml#ListOrderTerms"/>
+ <view-map name="CreateNewOrderMessage" type="screen"
page="component://order/widget/ordermgr/OrderViewScreens.xml#CreateNewOrderMessage"/>
+
<view-map name="survey" type="screen"
page="component://order/widget/ordermgr/OrderEntryCartScreens.xml#survey"/>
<view-map name="showcart" type="screen"
page="component://order/widget/ordermgr/OrderEntryCartScreens.xml#ShowCart"/>
@@ -2158,5 +2174,8 @@ under the License.
<view-map name="splitship" type="screen"
page="component://order/widget/ordermgr/OrderEntryOrderScreens.xml#splitship"/>
<view-map name="AddOrderAttachments" type="screen"
page="component://order/widget/ordermgr/OrderViewScreens.xml#AddOrderAttachments"/>
+
+
+
<!-- end of view mappings -->
</site-conf>
Modified:
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderForms.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderForms.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderForms.xml
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderForms.xml
Thu Sep 26 15:11:52 2019
@@ -268,5 +268,20 @@ under the License.
</field>
<field name="submitButton" title="${uiLabelMap.CommonSubmit}"
widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
+ <form name="createNewOrderMessage" type="single"
target="createOrderConversation"
+ extends="createNewMessage"
extends-resource="component://party/widget/partymgr/CommunicationEventForms.xml"
+ id="createNewOrderMessage${parentCommEventId}">
+ <field name="roleTypeIdFrom"><hidden value="AGENT"/></field>
+ <field name="roleTypeIdTo"><hidden value="CUSTOMER"/></field>
+ <field name="orderId"><hidden/></field>
+ </form>
+ <form name="createNewOrderConversation" type="single" target="">
+ <field name="createNewResponse" title=" " widget-area-style="h1">
+ <hyperlink target="CreateNewOrderMessage"
link-type="layered-modal" description="${uiLabelMap.PartyNewConversation}" >
+ <parameter param-name="orderId"/>
+ <parameter param-name="communicationEventPrpTypId"/>
+ </hyperlink>
+ </field>
+ </form>
</forms>
Modified:
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/order/widget/ordermgr/OrderViewScreens.xml
Thu Sep 26 15:11:52 2019
@@ -72,6 +72,7 @@ under the License.
<platform-specific>
<html><html-template
location="component://order/template/order/Transitions.ftl"/></html>
</platform-specific>
+ <include-screen name="OrderConversations"/>
</decorator-section>
</decorator-screen>
</widgets>
@@ -608,6 +609,61 @@ under the License.
</section>
</screen>
+ <screen name="OrderConversations">
+ <section>
+ <actions>
+ <entity-one entity-name="OrderHeader" value-field="order"/>
+ <get-related-one relation-name="CreatedByUserLogin"
value-field="order" to-value-field="createdUserLogin"/>
+ <entity-condition entity-name="CommunicationEventAndOrder"
list="commEvents">
+ <condition-list>
+ <condition-expr field-name="orderId"
from-field="order.orderId"/>
+ <condition-expr field-name="parentCommEventId"
from-field="nullField"/>
+ <condition-expr field-name="communicationEventTypeId"
from-field="parameters.communicationEventTypeId" ignore-if-empty="true"/>
+ </condition-list>
+ <order-by field-name="-entryDate"/>
+ </entity-condition>
+ <get-related-one relation-name="CreatedByUserLogin"
value-field="order" to-value-field="createdByUserLogin" />
+ <set field="partyIdTo"
from-field="createdByUserLogin.partyId"/><!-- store partyId to answer -->
+ </actions>
+ <widgets>
+ <screenlet title="${uiLabelMap.PartyAllCommunicationEvents}"
name="orderCommunicationEvent" collapsible="true">
+ <include-form
location="component://order/widget/ordermgr/OrderForms.xml"
name="createNewOrderConversation"/>
+ <horizontal-separator/>
+ <iterate-section entry="commEvent" list="commEvents">
+ <section>
+ <actions>
+ <set field="communicationEventId"
from-field="commEvent.communicationEventId"/>
+ <set field="partyIdTo"
from-field="commEvent.partyIdFrom"/><!-- store partyId to answer -->
+ </actions>
+ <widgets>
+ <include-screen name="ConversationThread"
location="component://party/widget/partymgr/CommunicationEventScreens.xml"/>
+ </widgets>
+ </section>
+ </iterate-section>
+ </screenlet>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="CreateNewOrderMessage">
+ <section>
+ <actions>
+ <entity-one entity-name="OrderHeader" value-field="order"/>
+ <get-related-one relation-name="CreatedByUserLogin"
value-field="order" to-value-field="createdByUserLogin" />
+ <set field="partyIdTo" from-field="createdByUserLogin.partyId"/>
+ <set field="answer"
from-field="parameters.parentCommEventId!=null" type="Boolean"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonPopUpDecorator"
location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <screenlet
title="${groovy:answer?uiLabelMap.PartyNewConversationAnswer:uiLabelMap.PartyNewConversation}"
collapsible="true" initially-collapsed="true"
+ id="createNewOrderConversation">
+ <include-form name="createNewOrderMessage"
location="component://order/widget/ordermgr/OrderForms.xml"/>
+ </screenlet>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
<screen name="AddOrderAttachments">
<section>
<actions>
Modified:
ofbiz/ofbiz-framework/trunk/applications/party/config/PartyUiLabels.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/party/config/PartyUiLabels.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/party/config/PartyUiLabels.xml
(original)
+++ ofbiz/ofbiz-framework/trunk/applications/party/config/PartyUiLabels.xml Thu
Sep 26 15:11:52 2019
@@ -5418,6 +5418,7 @@
<value xml:lang="zh">å
容æ è¯</value>
<value xml:lang="zh-TW">å
§å®¹èå¥</value>
</property>
+
<property key="PartyCookie">
<value xml:lang="ar">ÙÙÙÙ Ù
ستعرض اÙÙÙØ¨</value>
<value xml:lang="de">Cookie</value>
@@ -9105,6 +9106,18 @@
<value xml:lang="zh">注æï¼è¿ä¸ªæ°çèç³»æ¹å¼ç¨äº</value>
<value xml:lang="zh-TW">注æ: éåæ°çè¯çµ¡æ¹å¼ç¨æ¼</value>
</property>
+ <property key="PartyNewConversation">
+ <value xml:lang="en">New Conversation</value>
+ <value xml:lang="fr">Nouvelle Conversation</value>
+ <value xml:lang="de">Neue Konversation</value>
+ <value xml:lang="it">Nuova conversazione</value>
+ <value xml:lang="es">Nueva conversación</value>
+ </property>
+ <property key="PartyNewConversationAnswer">
+ <value xml:lang="en">New Answer</value>
+ <value xml:lang="fr">Nouvelle Réponse</value>
+ <value xml:lang="de">Neue Antwort</value>
+ </property>
<property key="PartyNewEmail">
<value xml:lang="ar">Ø±Ø³Ø§ÙØ© Ø¨Ø±ÙØ¯ اÙÙØªØ±ÙÙÙ
Ø¬Ø¯ÙØ¯Ø©</value>
<value xml:lang="de">Neue E-Mail</value>
Added:
ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy?rev=1867581&view=auto
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy
(added)
+++
ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy
Thu Sep 26 15:11:52 2019
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+import org.apache.ofbiz.entity.GenericValue
+
+communicationEventId = context.communicationEventId
+
+if (communicationEventId) {
+ //Find related CommEventContentDataResource
+ List<GenericValue> attachedContents =
delegator.findByAnd("CommEventContentDataResource",
+ [communicationEventId : communicationEventId], null, true)
+ List<String> attachedContentNames = []
+ attachedContents.each { GenericValue attachedContent ->
+ attachedContentNames << attachedContent.contentName as String
+ }
+
+ if (attachedContentNames) {
+ context.attachedContentName = String.join(",", attachedContentNames)
+ }
+}
Propchange:
ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange:
ofbiz/ofbiz-framework/trunk/applications/party/groovyScripts/communication/GetPartyEmailAttachment.groovy
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl?rev=1867581&view=auto
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl
(added)
+++
ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl
Thu Sep 26 15:11:52 2019
@@ -0,0 +1,4 @@
+<#-- Display content in a specific div to avoid display conflicts -->
+<div style="margin-left: 14%;width:50% !important;">
+ ${StringUtil.wrapString(childCommEvent.content!)}
+</div>
\ No newline at end of file
Propchange:
ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl
------------------------------------------------------------------------------
svn:keywords = Date Rev Author URL Id
Propchange:
ofbiz/ofbiz-framework/trunk/applications/party/template/party/DisplayCommunicationContent.ftl
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml
Thu Sep 26 15:11:52 2019
@@ -259,7 +259,7 @@ under the License.
</hyperlink>
</field>
<field name="note" title="${uiLabelMap.CommonNote}"><display/></field>
-
+
<sort-order>
<field-group collapsible="false" initially-collapsed="false">
<sort-field name="communicationEventId"/>
@@ -318,7 +318,7 @@ under the License.
<field map-name="subjectMap" name="eventNote"
title="${uiLabelMap.CommonNote}"><display/></field>
<field name="contentMimeTypeId"
use-when=""my"==void"><display/></field>
<field name="content" title="${uiLabelMap.CommonContent}"
encode-output="false"><textarea cols="60" rows="10" read-only="true"/></field>
-
+
<sort-order>
<field-group collapsible="false" initially-collapsed="false">
<sort-field name="communicationEventId"/>
@@ -485,7 +485,7 @@ under the License.
</hyperlink>
</field>
</form>
-
+
<form name="ListPartyCommEvents" type="list"
target="RemoveCommunicationEventRole" list-name="listIt"
odd-row-style="alternate-row" header-row-style="header-row-2"
default-table-style="basic-table hover-bar"
sort-field-parameter-name="partyCommEventSortField">
<actions>
@@ -859,7 +859,7 @@ under the License.
<field name="imageData" map-name="empty"><file/></field>
<field name="submitButton"
title="${uiLabelMap.CommonUpload}"><submit/></field>
</form>
-
+
<form name="UploadContent" type="upload" target="uploadAttachFiletoEmail">
<field name="dataCategoryId"><hidden value="PERSONAL"/></field>
<field name="contentTypeId"><hidden value="DOCUMENT"/></field>
@@ -1047,7 +1047,7 @@ under the License.
<field name="productId" title="${uiLabelMap.PartyProductId}"><lookup
target-form-name="LookupProduct"/></field>
<field name="submitButton" title="${uiLabelMap.PartyProductAdd}"
widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
-
+
<form name="FindCommunicationByReturn" type="single"
target="FindCommunicationByReturn" paginate="true"
focus-field-name="submitButton"
header-row-style="header-row" default-table-style="basic-table">
<field name="noConditionFind"><hidden value="Y"/><!-- if this isn't
there then with all fields empty no query will be done --></field>
@@ -1097,13 +1097,13 @@ under the License.
</hyperlink>
</field>
</form>
-
+
<form name="AddCommReturn" type="single"
target="createCommunicationEventReturn" header-row-style="header-row"
default-table-style="basic-table">
<field name="communicationEventId"><hidden/></field>
<field name="returnId"><lookup
target-form-name="LookupReturnHeader"/></field>
<field name="submitButton" title="${uiLabelMap.PartyReturnAdd}"
widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
-
+
<form name="ListCommReturns" list-name="returnsList" type="list"
target="deleteCommunicationEventReturn" paginate-target="UpdateCommReturns"
odd-row-style="alternate-row" default-table-style="basic-table hover-bar"
view-size="20">
<actions>
<entity-and entity-name="CommunicationEventReturn"
list="returnsList">
@@ -1126,4 +1126,58 @@ under the License.
</field>
<field name="deleteButton" title="${uiLabelMap.CommonDelete}"
widget-style="smallSubmit"><submit/></field>
</form>
+
+ <form name="DisplayConversationThread" type="single"
default-map-name="commEvent">
+ <field name="subject"><display/></field>
+ <field name="entryDate" title="${uiLabelMap.CommonDate}"
position="2"><display type="date"/></field>
+ <field name="partyIdFrom"
title="${uiLabelMap.CommonFrom}"><display-entity entity-name="PartyNameView"
key-field-name="partyId" description="[${partyId}] ${firstName} ${lastName}
${groupName}"/></field>
+ <field name="partyIdTo" title="${uiLabelMap.CommonTo}"
position="2"><display-entity entity-name="PartyNameView"
key-field-name="partyId" description="[${partyId}] ${firstName} ${lastName}
${groupName} ${userLoginIdTo}"/></field>
+ <field name="fromString"
title="${uiLabelMap.CommonMailFrom}"><display/></field>
+ <field name="toString" title="${uiLabelMap.CommonMailTo}"
position="2"><display/></field>
+ <field name="createNewConversationAnswer" title=" "
widget-area-style="h2" position="5">
+ <hyperlink target="CreateNewOrderMessage"
link-type="layered-modal"
description="${uiLabelMap.PartyNewConversationAnswer}" >
+ <parameter param-name="orderId"/>
+ <parameter param-name="parentCommEventId"/>
+ <parameter param-name="communicationEventPrpTypId"/>
+ </hyperlink>
+ </field>
+ </form>
+ <form name="DisplayConversationMessage" type="single"
default-map-name="childCommEvent" default-widget-style="">
+ <actions>
+ <script
location="component://party/groovyScripts/communication/GetPartyEmailAttachment.groovy"/>
+ <set field="hasAttachedContent" value="${groovy:
context.attachedContentName != null}" default-value="false" type="Boolean"/>
+ </actions>
+ <field name="entryDate" title="${uiLabelMap.CommonDate}"><display
type="date"/></field>
+ <field name="attachedContentName" title="${groovy: hasAttachedContent
? uiLabelMap.CommonEmailAttachedDocuments:''}" use-when="hasAttachedContent"
map-name="context"><display/></field>
+ </form>
+
+ <form name="createNewMessage" type="single"
target="createConversationMessage" title="">
+ <actions>
+ <set field="answer"
from-field="parameters.parentCommEventId!=null" type="Boolean"/>
+ <entity-condition entity-name="CommunicationEventPurpose"
list="purposes">
+ <condition-expr field-name="communicationEventId"
from-field="parameters.parentCommEventId"/>
+ </entity-condition>
+ <entity-one entity-name="CommunicationEvent"
value-field="parentCommEvent">
+ <field-map field-name="communicationEventId"
from-field="parameters.parentCommEventId"/>
+ </entity-one>
+ </actions>
+ <field name="communicationEventTypeId"><hidden
value="WEB_SITE_COMMUNICATI"/></field>
+ <field name="statusId"><hidden value="COM_ENTERED"/></field>
+ <field name="communicationEventPrpTypId" use-when="!answer">
+ <drop-down current-description="">
+ <entity-options key-field-name="communicationEventPrpTypId"
entity-name="CommunicationEventPrpTyp">
+ <entity-order-by field-name="description"/>
+ </entity-options>
+ </drop-down>
+ </field>
+ <field name="communicationEventPrpTypId" use-when="answer"><hidden
value="${purposes[0].communicationEventPrpTypId}"/></field>
+ <field name="partyIdFrom"><hidden
value="${userLogin.partyId}"/></field>
+ <field name="partyIdTo" title="${uiLabelMap.PartyPartyTo}"><lookup
target-form-name="LookupPartyName"/></field>
+ <field name="parentCommEventId"><hidden/></field>
+ <field name="subject" use-when="!answer"><text/></field>
+ <field name="subject" use-when="answer"><hidden/></field>
+ <field name="content" title="${uiLabelMap.CommonMessage}"><textarea
default-value="" rows="25"/></field>
+ <field name="submit" title="${uiLabelMap.CommonSend}"><submit/></field>
+ </form>
+
</forms>
Modified:
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventScreens.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventScreens.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventScreens.xml
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/party/widget/partymgr/CommunicationEventScreens.xml
Thu Sep 26 15:11:52 2019
@@ -1236,4 +1236,46 @@ under the License.
</widgets>
</section>
</screen>
+ <screen name="ConversationThread">
+ <section>
+ <actions>
+ <entity-one entity-name="CommunicationEvent"
value-field="commEvent"/>
+ <entity-one entity-name="CommunicationEventType"
value-field="commEventType">
+ <field-map field-name="communicationEventTypeId"
from-field="commEvent.communicationEventTypeId"/>
+ </entity-one>
+ <set field="parentCommEventId"
from-field="commEvent.communicationEventId"/>
+ <entity-condition entity-name="CommunicationEvent"
list="childrenCommEvents">
+ <condition-expr field-name="parentCommEventId"
from-field="parentCommEventId"/>
+ <order-by field-name="entryDate"/>
+ </entity-condition>
+ <set field="childrenCommEvents[+0]" from-field="commEvent"/>
+ <entity-condition entity-name="UserLogin" list="userlogins">
+ <condition-expr field-name="partyId"
from-field="commEvent.partyIdTo"/>
+ </entity-condition>
+ <set field="userLogin" from-field="userlogins[0]"/>
+ <set field="userLoginIdTo" value="${groovy: if (userLogin)
return userLogin.userLoginId else return ''}"/>
+ </actions>
+ <widgets>
+ <screenlet name="conversationThread"
id="${commEvent.communicationEventId}"
+ title="${groovy:commEventType.get('description', locale)}
${date:localizedDateStr(commEvent.entryDate, timeZone, locale)}
(${groovy:childrenCommEvents.size()}), ${commEvent.subject}"
+ initially-collapsed="true">
+ <include-form name="DisplayConversationThread"
location="component://party/widget/partymgr/CommunicationEventForms.xml"/>
+ <iterate-section entry="childCommEvent"
list="childrenCommEvents" paginate="false">
+ <section>
+ <actions>
+ <set field="classFrom" value="${groovy:
commEvent.partyIdFrom == childCommEvent.partyIdFrom?
'commEventFrom':'commEventTo'}"/>
+ </actions>
+ <widgets>
+ <include-form
name="DisplayConversationMessage"
location="component://party/widget/partymgr/CommunicationEventForms.xml"/>
+ <platform-specific>
+ <html><html-template
location="component://party/template/party/DisplayCommunicationContent.ftl"/></html>
+ </platform-specific>
+ <horizontal-separator/>
+ </widgets>
+ </section>
+ </iterate-section>
+ </screenlet>
+ </widgets>
+ </section>
+ </screen>
</screens>
Modified: ofbiz/ofbiz-framework/trunk/framework/common/config/CommonUiLabels.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/config/CommonUiLabels.xml?rev=1867581&r1=1867580&r2=1867581&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/config/CommonUiLabels.xml
(original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/config/CommonUiLabels.xml Thu
Sep 26 15:11:52 2019
@@ -6464,6 +6464,14 @@
<value xml:lang="zh">ä½</value>
<value xml:lang="zh-TW">ä½</value>
</property>
+ <property key="CommonMailTo">
+ <value xml:lang="en">Mail To</value>
+ <value xml:lang="fr">Courriel pour</value>
+ </property>
+ <property key="CommonMailFrom">
+ <value xml:lang="en">Mail From</value>
+ <value xml:lang="fr">Courriel venant de</value>
+ </property>
<property key="CommonMain">
<value xml:lang="ar">Ø§ÙØ±Ø¦ÙØ³ÙØ©</value>
<value xml:lang="cs">Ãvodnà stránka</value>