<?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"
        xmlns="http://ofbiz.apache.org/Widget-Screen" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Screen http://ofbiz.apache.org/dtds/widget-screen.xsd">

    <screen name="CommonRequestDecorator">
        <section>
            <widgets>
                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <decorator-section-include name="body"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="ListRequests">
        <section>
            <actions>
                <set field="rightbarScreenName" value="rightbar"/>
                <set field="MainColumnStyle" value="rightonly"/>

                <set field="titleProperty" value="PageTitleListRequests"/>
                <!--<set field="headerItem" value="Shopping List"/>-->
                <entity-condition entity-name="CustRequest" list="requestList">
                    <condition-list combine="and">
                        <condition-expr field-name="fromPartyId" from-field="userLogin.partyId"/>
                        <!--<condition-expr field-name="statusId" operator="not-equals" value="QUO_CREATED"/>-->
                    </condition-list>
                    <order-by field-name="-custRequestDate"/>
                </entity-condition>
            </actions>
            <widgets>
                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://ecommerce/template/request/RequestList.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="ViewRequest">
        <section>
            <actions>
                <set field="rightbarScreenName" value="rightbar"/>
                <set field="MainColumnStyle" value="rightonly"/>

                <set field="titleProperty" value="PageTitleViewRequest"/>
                <!--<set field="headerItem" value="Shopping List"/>-->
                <set field="custRequestId" from-field="parameters.custRequestId"/>
                <entity-one entity-name="CustRequest" value-field="custRequest"/>
                <get-related-one value-field="custRequest" relation-name="CustRequestType" to-value-field="custRequestType"/>
                <get-related-one value-field="custRequest" relation-name="StatusItem" to-value-field="statusItem"/>
                <get-related-one value-field="custRequest" relation-name="CurrencyUom" to-value-field="currency"/>
                <get-related-one value-field="custRequest" relation-name="ProductStore" to-value-field="store"/>

                <get-related value-field="custRequest" relation-name="CustRequestItem" list="requestItems"/>
                <get-related value-field="custRequest" relation-name="CustRequestParty" list="requestParties"/>

            </actions>
            <widgets>
                <decorator-screen name="CommonRequestDecorator">
                    <decorator-section name="body">
                        <section>
                            <condition>
                                <if-compare-field field="custRequest.fromPartyId" operator="equals" to-field="userLogin.partyId"></if-compare-field>
                            </condition>
                            <widgets>
                                <container style="lefthalf">
                                    <platform-specific>
                                        <html><html-template location="component://ecommerce/template/request/RequestInfo.ftl"/></html>
                                    </platform-specific>
                                    <platform-specific>
                                        <html><html-template location="component://order/template/request/ViewRequestItemInfo.ftl"/></html>
                                    </platform-specific>
                                </container>
                                <container style="righthalf">
                                    <platform-specific>
                                        <html><html-template location="component://order/template/request/RequestDate.ftl"/></html>
                                    </platform-specific>
                                    <platform-specific>
                                        <html><html-template location="component://order/template/request/RequestContactMech.ftl"/></html>
                                    </platform-specific>
                                    <platform-specific>
                                        <html><html-template location="component://ecommerce/template/request/RequestRoles.ftl"/></html>
                                    </platform-specific>
                                </container>
                            </widgets>
                            <fail-widgets>
                                <label style="h3">${uiLabelMap.OrderNoRequestFound}</label>
                            </fail-widgets>
                        </section>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
</screens>
