This is an automated email from the ASF dual-hosted git repository.

jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new f5aad6669e Improved: Marketing-Main page (OFBIZ-13054) (#785)
f5aad6669e is described below

commit f5aad6669e03fde5963eab2d2791403bed29da51
Author: Pierre Smits <pierre.sm...@somonar.com>
AuthorDate: Sat May 11 09:47:58 2024 +0200

    Improved: Marketing-Main page (OFBIZ-13054) (#785)
    
    * Improved: Marketing-Main page (OFBIZ-13054)
    
    Currently the 'main' view-map points to a screen showing a label
    In order to improve the user experience the main request-map and view-map 
should show what is most pressing in marketing to address: active campaigns and 
contact list communication events.
    
    added:
    - MarketingPortletData.xml, having record definitions for PortalPage, 
Portlet, etc
    
    modified::
    - ofbiz-component.xml: added data loader for MarketingPortletData.xml
    - controller.xml: changed view-map 'main' to point to screen Main in 
CommonScreens.xml
    - CommonScreens.xml: screen Main displaying a PortalPage
    - MarketingCampaignScreens.xml: adding screen Campaigns for active campaigns
    - MarketingCampaignForms.xml: adding grid Campaigns to list active campaigns
    - ContactListScreens.xml: adding screen CommEvents for active communication 
events
    - ContactListForms.xml: adding grid Campaigns to list active communication 
events
    
    * Improved: Marketing-Main page (OFBIZ-13054)
    
    Currently the 'main' view-map points to a screen showing a label
    In order to improve the user experience the main request-map and view-map 
should show what is most pressing in marketing to address: active campaigns and 
contact list communication events.
    
    modified:
    - CommonScreens.xml: clean-up
    - MarketingCampaignForms: added ref.data elements
    
    * OFBIZ-13054
    
    cleanup
    
    * Imrproved: Marketing Main Page (OFBIZ-13054)
    
    removed trailing spaces
    
    * Update ofbiz-component.xml
    
    Fixes a typo
    
    ---------
    
    Co-authored-by: Jacques Le Roux <jacques.le.r...@les7arts.com>
---
 .../marketing/data/MarketingPortletData.xml        | 41 ++++++++++++++++++++++
 applications/marketing/ofbiz-component.xml         |  1 +
 .../webapp/marketing/WEB-INF/controller.xml        |  2 +-
 applications/marketing/widget/CommonScreens.xml    |  8 ++---
 applications/marketing/widget/ContactListForms.xml | 21 +++++++++++
 .../marketing/widget/ContactListScreens.xml        | 16 +++++++++
 .../marketing/widget/MarketingCampaignForms.xml    | 19 ++++++++++
 .../marketing/widget/MarketingCampaignScreens.xml  | 19 +++++++++-
 8 files changed, 121 insertions(+), 6 deletions(-)

diff --git a/applications/marketing/data/MarketingPortletData.xml 
b/applications/marketing/data/MarketingPortletData.xml
new file mode 100644
index 0000000000..624677639f
--- /dev/null
+++ b/applications/marketing/data/MarketingPortletData.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<entity-engine-xml>
+
+    <!-- marketing_MAIN -->
+    <PortletCategory portletCategoryId="MARKETING" description="Marketing 
Portlet"/>
+    <PortalPortlet portalPortletId="Campaigns" portletName="Active Campaigns"
+        description="Portlet to display active campaigns"
+        screenName="Campaigns" 
screenLocation="component://marketing/widget/MarketingCampaignScreens.xml"/>
+    <PortletPortletCategory portalPortletId="Campaigns" 
portletCategoryId="MARKETING"/>
+    <PortalPortlet portalPortletId="CommEvents" portletName="Communication 
Event"
+        description="Portlet to display active communication events"
+        screenName="CommEvents" 
screenLocation="component://marketing/widget/ContactListScreens.xml"/>
+    <PortletPortletCategory portalPortletId="CommEvents" 
portletCategoryId="MARKETING"/>
+
+    <PortalPage portalPageId="marketing_MAIN" portalPageName="Marketing Main 
Page"
+        description="The main portal page of the marketing application"
+        ownerUserLoginId="_NA_" sequenceNum="1"/>
+    <PortalPageColumn portalPageId="marketing_MAIN" columnSeqId="00001"/>
+    <PortalPageColumn portalPageId="marketing_MAIN" columnSeqId="00002"/>
+    <PortalPagePortlet portalPageId="marketing_MAIN" 
portalPortletId="Campaigns" columnSeqId="00001" portletSeqId="00001" 
sequenceNum="1"/>
+    <PortalPagePortlet portalPageId="marketing_MAIN" 
portalPortletId="CommEvents" columnSeqId="00002" portletSeqId="00001" 
sequenceNum="1"/>
+
+</entity-engine-xml>
diff --git a/applications/marketing/ofbiz-component.xml 
b/applications/marketing/ofbiz-component.xml
index 231ed09172..44901e4367 100644
--- a/applications/marketing/ofbiz-component.xml
+++ b/applications/marketing/ofbiz-component.xml
@@ -25,6 +25,7 @@ under the License.
     <classpath type="dir" location="config"/>
 
     <entity-resource type="data" reader-name="seed" loader="main" 
location="data/MarketingSecurityPermissionSeedData.xml"/>
+    <entity-resource type="data" reader-name="seed" loader="main" 
location="data/MarketingPortletData.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" 
location="data/SfaPortletData.xml"/>
 
     <service-resource type="model" loader="main" 
location="servicedef/services.xml"/>
diff --git a/applications/marketing/webapp/marketing/WEB-INF/controller.xml 
b/applications/marketing/webapp/marketing/WEB-INF/controller.xml
index 7221e3abb1..0293dea377 100644
--- a/applications/marketing/webapp/marketing/WEB-INF/controller.xml
+++ b/applications/marketing/webapp/marketing/WEB-INF/controller.xml
@@ -406,7 +406,7 @@ under the License.
     <!-- end of request mappings -->
 
     <!-- View Mappings -->
-    <view-map name="main" type="screen" 
page="component://marketing/widget/CommonScreens.xml#main"/>
+    <view-map name="main" type="screen" 
page="component://marketing/widget/CommonScreens.xml#Main"/>
     <view-map name="MarketingReport" type="screen" 
page="component://marketing/widget/MarketingReportScreens.xml#MarketingReportList"/>
 
     <view-map name="FindDataSource"  type="screen" 
page="component://marketing/widget/DataSourceScreens.xml#ListDataSource"/>
diff --git a/applications/marketing/widget/CommonScreens.xml 
b/applications/marketing/widget/CommonScreens.xml
index c2aece575a..bc24531948 100644
--- a/applications/marketing/widget/CommonScreens.xml
+++ b/applications/marketing/widget/CommonScreens.xml
@@ -98,10 +98,12 @@ under the License.
             </widgets>
         </section>
     </screen>
-    <screen name="main">
+    <screen name="Main">
         <section>
             <actions>
                 <set field="headerItem" value="main"/>
+                <set field="parameters.parentPortalPageId" 
from-field="parameters.parentPortalPageId" 
default-value="${parameters.localDispatcherName}_MAIN" global="true"/>
+                <script 
location="component://common/src/main/groovy/org/apache/ofbiz/common/GetParentPortalPageId.groovy"/>
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" 
location="${parameters.mainDecoratorLocation}">
@@ -109,9 +111,7 @@ under the License.
                         <include-menu name="MainActionMenu" 
location="${parameters.mainMenuLocation}"/>
                     </decorator-section>
                     <decorator-section name="body">
-                        <screenlet 
title="${uiLabelMap.MarketingManagerApplication}">
-                            <container><label style="label" 
text="${uiLabelMap.MarketingManagerWelcome}"/></container>
-                        </screenlet>
+                        <include-portal-page id="${parameters.portalPageId}"/>
                     </decorator-section>
                 </decorator-screen>
             </widgets>
diff --git a/applications/marketing/widget/ContactListForms.xml 
b/applications/marketing/widget/ContactListForms.xml
index ae512b8abc..e5f0d15351 100644
--- a/applications/marketing/widget/ContactListForms.xml
+++ b/applications/marketing/widget/ContactListForms.xml
@@ -665,4 +665,25 @@ under the License.
             </hyperlink>
         </field>
     </form>
+    <grid name="CommEvents" list-name="commEvents"
+        odd-row-style="alternate-row" default-table-style="basic-table 
hover-bar">
+        <row-actions>
+            <set field="contactListId" from-field="contactListId"/>
+            <entity-one entity-name="ContactList" value-field="contactList"/>
+            <set field="marketingCampaignId" 
from-field="contactList.marketingCampaignId"/>
+            <entity-one entity-name="MarketingCampaign" 
value-field="campaign"/>
+        </row-actions>
+        <field name="communicationEventId" title="${uiLabelMap.CommonEvent}">
+            <hyperlink description="${communicationEventId} - ${subject}" 
target="EditContactListCommEvent" also-hidden="false">
+                <parameter param-name="communicationEventId"/>
+                <parameter param-name="contactListId"/>
+            </hyperlink>
+        </field>
+        <field name="communicationEventTypeId" 
title="${uiLabelMap.CommonType}"><display-entity 
entity-name="CommunicationEventType"/></field>
+        <field name="statusId" 
title="${uiLabelMap.CommonStatus}"><display-entity 
entity-name="StatusItem"/></field>
+        <field name="entryDate" title="${uiLabelMap.CommonDate}"><display 
type="date"/></field>
+        <field name="datetimeStarted" 
title="${uiLabelMap.CommonStartDate}"><display type="date"/></field>
+        <field name="datetimeEnded" 
title="${uiLabelMap.CommonEndDate}"><display type="date"/></field>
+        <field name="contactListId"><display description="${contactListId} - 
${contactList.contactListName}"/></field>
+    </grid>
 </forms>
diff --git a/applications/marketing/widget/ContactListScreens.xml 
b/applications/marketing/widget/ContactListScreens.xml
index ba99fcdd7c..b40672a031 100644
--- a/applications/marketing/widget/ContactListScreens.xml
+++ b/applications/marketing/widget/ContactListScreens.xml
@@ -496,4 +496,20 @@ under the License.
             </widgets>
         </section>
     </screen>
+    <screen name="CommEvents">
+        <section>
+            <actions>
+                <entity-condition entity-name="CommunicationEvent" 
list="commEvents">
+                    <condition-list combine="and">
+                        <condition-expr field-name="contactListId" 
operator="not-equals" from-field="null"/>
+                    </condition-list>
+                </entity-condition>
+            </actions>
+            <widgets>
+                <screenlet title="${uiLabelMap.PartyListCommunicationEvents}">
+                    <include-grid name="CommEvents" 
location="component://marketing/widget/ContactListForms.xml"/>
+                </screenlet>
+            </widgets>
+        </section>
+    </screen>
 </screens>
diff --git a/applications/marketing/widget/MarketingCampaignForms.xml 
b/applications/marketing/widget/MarketingCampaignForms.xml
index 7c8fa46347..5a2ba06232 100644
--- a/applications/marketing/widget/MarketingCampaignForms.xml
+++ b/applications/marketing/widget/MarketingCampaignForms.xml
@@ -144,4 +144,23 @@ under the License.
             </hyperlink>
         </field>
     </form>
+    <grid name="Campaigns" list-name="campaigns"
+        odd-row-style="alternate-row" default-table-style="basic-table 
hover-bar">
+        <row-actions>
+            <set field="uomId" from-field="currencyUomId"/>
+            <entity-one entity-name="Uom" value-field="currency"/>
+        </row-actions>
+        <field name="marketingCampaignId" 
title="${uiLabelMap.MarketingCampaign}">
+            <hyperlink description="${marketingCampaignId} - ${campaignName}" 
target="EditMarketingCampaign" also-hidden="false">
+                <parameter param-name="marketingCampaignId"/>
+            </hyperlink>
+        </field>
+        <field name="statusId" 
title="${uiLabelMap.CommonStatus}"><display-entity 
entity-name="StatusItem"/></field>
+        <field name="budgetedCost" widget-area-style="align-right" 
title-area-style="align-right">><display description="${budgetedCost} 
${currency.abbreviation}"/></field>
+        <field name="fromDate" title-="${uiLabelMap.CommonFrom}"><display 
type="date"/></field>
+        <field name="thruDate" title-="${uiLabelMap.CommonThru}"><display 
type="date"/></field>
+        <field name="parentCampaignId" title="${uiLabelMap.CommonParent}">
+            <display-entity entity-name="MarketingCampaign" 
key-field-name="marketingCampaignId" description="${marketingCampaignId} - 
${campaignName}"/>
+        </field>
+    </grid>
 </forms>
diff --git a/applications/marketing/widget/MarketingCampaignScreens.xml 
b/applications/marketing/widget/MarketingCampaignScreens.xml
index 073c03cc7f..74e1a20457 100644
--- a/applications/marketing/widget/MarketingCampaignScreens.xml
+++ b/applications/marketing/widget/MarketingCampaignScreens.xml
@@ -182,5 +182,22 @@ under the License.
             </widgets>
         </section>
     </screen>
-
+    <screen name="Campaigns">
+        <section>
+            <actions>
+                <entity-condition entity-name="MarketingCampaign" 
list="campaigns">
+                    <condition-list combine="and">
+                        <condition-expr field-name="statusId" 
operator="not-equals" value="MKTG_CAMP_COMPLETED"/>
+                        <condition-expr field-name="statusId" 
operator="not-equals" value="MKTG_CAMP_CANCELLED"/>
+                    </condition-list>
+                    <order-by field-name="statusId"/>
+                </entity-condition>
+            </actions>
+            <widgets>
+                <screenlet title="${uiLabelMap.MarketingCampaign}">
+                    <include-grid name="Campaigns" 
location="component://marketing/widget/MarketingCampaignForms.xml"/>
+                </screenlet>
+            </widgets>
+        </section>
+    </screen>
 </screens>

Reply via email to