<?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.
-->

<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
    <screen name="ApplicationDecorator">
        <section>
            <actions>
                <property-map resource="CommonExtUiLabels" map-name="uiLabelMap" global="true"/>
                <entity-one entity-name="PartyNameView" value-field="partyNameView">
                    <field-map field-name="partyId" from-field="userLogin.partyId"/>
                </entity-one>
                <set field="line.text" value="${uiLabelMap.CommonWelcome} ${person.firstName} ${person.middleName} ${person.lastName}"/>
                <set field="line.urlText" value="[${userLogin.userLoginId}]"/>
                <set field="line.url" value="/partymgr/control/viewprofile?partyId=${userLogin.partyId}"/>
                <set field="layoutSettings.topLines[]" from-field="line" global="true"/>
                <script location="component://commonext/webapp/ofbizsetup/organization/changeOrgPartyId.groovy"/><!-- to see ofbizsetup needs to be displayed -->
                <set field="layoutSettings.suppressTab" value="ofbizsetup"/><!-- diseable ofbiz setup by default -->
                <!-- system info notes -->
                <service service-name="getLastSystemInfoNote" result-map="resultNote"/>
                <set field="linkStart" value="/myportal/control/showPortletMainDecorator?portalPortletId="/>
                <set field="layoutSettings.middleTopHeader" value="---------- ${uiLabelMap.CommonLastSytemNotes} ----------"/>
                <set field="layoutSettings.middleTopMessage1" value="${groovy:resultNote.lastSystemInfoNote1!=null?resultNote.lastSystemInfoNote1.noteDateTime.toString().substring(0,16) + &quot; &quot; + resultNote.lastSystemInfoNote1.noteInfo:&quot;&quot;}"/>
                <set field="layoutSettings.middleTopLink1" value="${linkStart}${resultNote.lastSystemInfoNote1.moreInfoPortletId}&amp;amp;id=${resultNote.lastSystemInfoNote1.moreInfoItemId}"/>
                <set field="layoutSettings.middleTopMessage2" value="${groovy:resultNote.lastSystemInfoNote2!=null?resultNote.lastSystemInfoNote2.noteDateTime.toString().substring(0,16) + &quot; &quot; + resultNote.lastSystemInfoNote2.noteInfo:&quot;&quot;}"/>
                <set field="layoutSettings.middleTopLink2" value="${linkStart}${resultNote.lastSystemInfoNote2.moreInfoPortletId}&amp;amp;id=${resultNote.lastSystemInfoNote2.moreInfoItemId}"/>
                <set field="layoutSettings.middleTopMessage3" value="${groovy:resultNote.lastSystemInfoNote3!=null?resultNote.lastSystemInfoNote3.noteDateTime.toString().substring(0,16) + &quot; &quot; + resultNote.lastSystemInfoNote3.noteInfo:&quot;&quot;}"/>
                <set field="layoutSettings.middleTopLink3" value="${linkStart}${resultNote.lastSystemInfoNote3.moreInfoPortletId}&amp;amp;id=${resultNote.lastSystemInfoNote3.moreInfoItemId}"/>
                <!-- Help link actions -->
                <!--<set field="helpTopic" value="${groovy: webSiteId + '_' + requestAttributes._CURRENT_VIEW_}"/>-->
                <set field="helpTopic" value="${groovy: parameters.componentName.toUpperCase() + '_' + requestAttributes._CURRENT_VIEW_}"/>
                <entity-and list="pageAvail" entity-name="ContentAssoc">
                    <field-map field-name="mapKey" from-field="helpTopic"/>
                </entity-and>
                <entity-and list="layoutSettings.WEB_ANALYTICS" entity-name="WebAnalyticsConfig">
                    <field-map field-name="webAnalyticsTypeId" value="BACKEND_ANALYTICS"/>
                </entity-and>
            </actions>
            <widgets>
                <section>
                    <condition><not><if-empty field="PartyAcctgPrefAndGroupList"/></not></condition><!-- produced by  changeOrgPartyId.groovy-->
                    <actions>
                        <set field="defaultOrganizationPartyId" value="${userPreferences.ORGANIZATION_PARTY}" global="true"/>
                        <property-to-field resource="general" property="currency.uom.id.default" field="defaultCurrencyUomId"/>
                        <entity-one entity-name="PartyAcctgPrefAndGroup" value-field="orgParty">
                            <field-map field-name="partyId" from-field="defaultOrganizationPartyId"/>
                        </entity-one>
                        <entity-one value-field="orgPartyLogoMap" entity-name="PartyGroup">
                            <field-map field-name="partyId" from-field="defaultOrganizationPartyId"/>
                        </entity-one>
                        <entity-and list="orgPartyContentMap" entity-name="PartyContent">
                            <field-map field-name="partyId" from-field="defaultOrganizationPartyId"/>
                            <field-map field-name="partyContentTypeId" value="LGOIMGURL"/>
                            <order-by field-name="-fromDate"/>
                        </entity-and>
                        <set field="orgContentId" from-field="orgPartyContentMap[0].contentId"/>
                        <set field="orgPartyContent" value="${groovy: orgContentId!=null?&quot;/content/control/stream?contentId=&quot; + orgContentId : &quot;&quot;}"/>
                        <set field="layoutSettings.organizationLogoLinkUrl" from-field="orgPartyContent" default-value="${orgPartyLogoMap.logoImageUrl}" global="true"/>
                        <set field="defaultOrganizationPartyCurrencyUomId" from-field="orgParty.baseCurrencyUomId" default-value="${defaultCurrencyUomId}" global="true"/>
                        <set field="defaultOrganizationPartyGroupName" from-field="orgParty.groupName" global="true"/>
                        <set field="dropdown.hiddenFieldList" from-field="hiddenFields" global="true"/>
                        <set field="dropdown.action" value="setUserPreference"/>
                        <set field="dropdown.textBegin" value="${uiLabelMap.CommonDefaultOrganizationPartyId} :"/>
                        <set field="dropdown.dropDownList" from-field="PartyAcctgPrefAndGroupList"/>
                        <set field="dropdown.selectionName" value="userPrefValue"/>
                        <set field="dropdown.selectedKey" value="${defaultOrganizationPartyId}"/>
                        <set field="dropdown.textEnd" value="[${defaultOrganizationPartyId}]"/>
                        <set field="layoutSettings.topLines[]" from-field="dropdown" global="true"/>
                    </actions>
                    <widgets/>
                </section>
                <section>
                    <condition><if-empty field="PartyAcctgPrefAndGroupList"/></condition>
                    <actions>
                       <set field="layoutSettings.suppressTab" value=""/><!-- enable ofbiz setup -->
                    </actions>
                    <widgets/>
                </section>
                <include-screen name="GlobalDecorator" location="component://common/widget/CommonScreens.xml"/>
            </widgets>
        </section>
    </screen>
</screens>
