<!--
  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">
    <!-- Personal Information -->
    <screen name="EbayPersonalInformation">
        <section>
            <actions>
                <set field="accountItem" value="personalInformation"/>
                <service service-name="getEbayUser" result-map="results">
                    <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
                </service>
            </actions>
            <widgets>
                <decorator-screen name="AccountDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet name="" title="${uiLabelMap.EbayPersonalInformation}">
                            <include-form name="EbayPersonalInformationForm" location="component://ebaystore/widget/EbayAccountForms.xml"/>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <!-- feedback -->
    <screen name="EbayFeedback">
        <section>
            <actions>
                <set field="titleProperty" value="eBay Feedback"/>
                <set field="headerItem" value="ebayStore"/>
                <set field="accountItem" value="feedback"/>
            </actions>
            <widgets>
                <decorator-screen name="AccountDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <section>
                            <condition>
                                <if-has-permission permission="EBAY" action="_VIEW"/>
                            </condition>
                            <widgets>
                                <screenlet title="${uiLabelMap.EbayFeedback}">
                                    <include-menu location="component://ebaystore/widget/EbayStoreMenus.xml" name="EbayFeedbackTabBar"/>
                                    <decorator-section-include name="body"/>
                                </screenlet>
                            </widgets>
                            <fail-widgets>
                                <label style="h3">${uiLabelMap.EbayViewPermissionError}</label>
                            </fail-widgets>
                        </section>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="Feedback">
        <section>
            <actions>
                <set field="titleProperty" value="eBay Feedback"/>
                <set field="headerItem" value="ebayStore"/>
                <set field="feedbackItem" value="Feedback"/>
                <service service-name="loadFeedback"> 
                    <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
                </service>
                <service service-name="getItemsAwaitingFeedback" result-map="results"> 
                    <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
                </service>
                <set field="itemsAwaitingFeedbackList" from-field="results.itemsAwaitingFeedback"/>
                <script location="component://ebaystore/groovyScripts/feedback/FeedbackList.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="EbayFeedback" >
                    <decorator-section name="body">
                        <screenlet>
                            <screenlet navigation-form-name="ItemsAwaitingFeedback" title="Items Awaiting Feedback">
                                <include-form name="ItemsAwaitingFeedback" location="component://ebaystore/widget/EbayAccountForms.xml"/>
                            </screenlet>
                        </screenlet>
                        <screenlet>
                            <screenlet navigation-form-name="RecentFeedback" title="Recent Feedback">
                                <include-form name="RecentFeedback" location="component://ebaystore/widget/EbayAccountForms.xml"/>
                            </screenlet>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="LeaveFeedback">
        <section>
            <actions>
                <set field="titleProperty" value="eBay Feedback"/>
                <set field="headerItem" value="ebayStore"/>
                <set field="feedbackItem" value="LeaveFeedback"/>
                <set field="role" from-field="parameters.role" default-value="all"/>
                <service service-name="getItemsAwaitingFeedback" result-map="results"/>
            </actions>
            <widgets>
                <decorator-screen name="EbayFeedback" >
                    <decorator-section name="body">
                        <screenlet>
                            <screenlet title="${uiLabelMap.EbayLeaveFeedback}">
                                <include-menu location="component://ebaystore/widget/EbayStoreMenus.xml" name="EbayFeedbackSubTabBar"/>
                                <platform-specific>
                                    <html><html-template location="component://ebaystore/template/feedback/LeaveFeedback.ftl"/></html>
                                </platform-specific>
                            </screenlet>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen> 
    <!-- ebay feedback -->
    <screen name="EbayFeedback">
        <section>
            <actions>
                <set field="titleProperty" value="eBay Feedback"/>
                <set field="headerItem" value="ebayStore"/>
                <set field="accountItem" value="feedback"/>
            </actions>
            <widgets>
                <decorator-screen name="AccountDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <section>
                            <condition>
                                <if-has-permission permission="EBAY" action="_VIEW"/>
                            </condition>
                            <widgets>
                                <screenlet title="${uiLabelMap.EbayFeedback}">
                                    <include-menu location="component://ebaystore/widget/EbayStoreMenus.xml" name="EbayFeedbackTabBar"/>
                                    <decorator-section-include name="body"/>
                                </screenlet>
                            </widgets>
                            <fail-widgets>
                                <label style="h3">${uiLabelMap.EbayViewPermissionError}</label>
                            </fail-widgets>
                        </section>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="Feedback">
        <section>
            <actions>
                <set field="titleProperty" value="eBay Feedback"/>
                <set field="headerItem" value="ebayStore"/>
                <set field="feedbackItem" value="Feedback"/>
                <service service-name="loadFeedback"> 
                    <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
                </service>
                <service service-name="getItemsAwaitingFeedback" result-map="results"> 
                    <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
                </service>
                <set field="itemsAwaitingFeedbackList" from-field="results.itemsAwaitingFeedback"/>
                <script location="component://ebaystore/groovyScripts/feedback/FeedbackList.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="EbayFeedback" >
                    <decorator-section name="body">
                        <screenlet>
                            <screenlet navigation-form-name="ItemsAwaitingFeedback" title="Items Awaiting Feedback">
                                <include-grid name="ItemsAwaitingFeedback" location="component://ebaystore/widget/EbayAccountForms.xml"/>
                            </screenlet>
                        </screenlet>
                        <screenlet>
                            <screenlet navigation-form-name="RecentFeedback" title="Recent Feedback">
                                <include-grid name="RecentFeedback" location="component://ebaystore/widget/EbayAccountForms.xml"/>
                            </screenlet>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="LeaveFeedback">
        <section>
            <actions>
                <set field="titleProperty" value="eBay Feedback"/>
                <set field="headerItem" value="ebayStore"/>
                <set field="feedbackItem" value="LeaveFeedback"/>
                <set field="role" from-field="parameters.role" default-value="all"/>
                <service service-name="getItemsAwaitingFeedback" result-map="results"/>
            </actions>
            <widgets>
                <decorator-screen name="EbayFeedback" >
                    <decorator-section name="body">
                        <screenlet>
                            <screenlet title="${uiLabelMap.EbayLeaveFeedback}">
                                <include-menu location="component://ebaystore/widget/EbayStoreMenus.xml" name="EbayFeedbackSubTabBar"/>
                                <platform-specific>
                                    <html><html-template location="component://ebaystore/template/feedback/LeaveFeedback.ftl"/></html>
                                </platform-specific>
                            </screenlet>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
</screens>
