<?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="CommonReviewDecorator">
        <section>
            <widgets>
                <decorator-screen name="main-decorator"  location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="left-column">
                        <include-screen name="leftbar" location="component://product/widget/catalog/CommonScreens.xml"/>
                    </decorator-section>                    
                    <decorator-section name="body">
                        <section>
                            <!-- do check for CATALOG, _VIEW permission -->
                            <condition>
                                <if-has-permission permission="CATALOG" action="_VIEW"/>
                            </condition>
                            <widgets>
                                <decorator-section-include name="body"/>
                            </widgets>
                            <fail-widgets>
                                <label style="h3">${uiLabelMap.ProductCatalogViewPermissionError}</label>
                            </fail-widgets>
                        </section>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="pendingReviews">
        <section>
            <actions>
                <set field="titleProperty" value="ProductReviewsPendingApproval"/>
                <set field="headerItem" value="reviews"/>

                <entity-condition entity-name="ProductReview" list="pendingReviews">
                    <condition-expr field-name="statusId" value="PRR_PENDING"/>
                    <order-by field-name="+postedDateTime"/>
                </entity-condition>
            </actions>
            <widgets>
                <decorator-screen name="CommonReviewDecorator">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://product/webapp/catalog/reviews/pendingReviews.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
</screens>
