<?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="LookupRouting">
        <section>
            <condition>
                <if-has-permission permission="MANUFACTURING" action="_VIEW"/>
            </condition>
            <actions>
                <property-map resource="ManufacturingUiLabels" map-name="uiLabelMap" global="true"/>
                <set field="title" value="${uiLabelMap.PageTitleLookupRouting}"/>
                <set field="entityName" value="WorkEffort"/>
                <set field="requestParameters.workEffortTypeId" to-scope="screen" default-value="ROUTING"/>
                <set field="requestParameters.fixedAssetId" to-scope="screen" default-value=""/>
                <set field="queryString" from-field="result.queryString"/>
                <set field="searchFields" value="[workEffortId]"/>
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/>
                <property-to-field resource="widget" property="widget.form.defaultViewSize" field="viewSizeDefaultValue"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="${viewSizeDefaultValue}"/>
            </actions>
            <widgets>
                <decorator-screen name="LookupDecorator" location="component://common/widget/CommonScreens.xml">
                    <decorator-section name="search-options">
                        <include-form name="LookupRouting" location="component://manufacturing/widget/manufacturing/FieldLookupForms.xml"/>
                    </decorator-section>
                    <decorator-section name="search-results">
                        <include-form name="ListLookupRouting" location="component://manufacturing/widget/manufacturing/FieldLookupForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="LookupRoutingTask">
        <section>
            <condition>
                <if-has-permission permission="MANUFACTURING" action="_VIEW"/>
            </condition>
            <actions>
                <property-map resource="ManufacturingUiLabels" map-name="uiLabelMap" global="true"/>
                <set field="title" value="${uiLabelMap.PageTitleLookupRoutingTask}"/>
                <set field="entityName" value="WorkEffort"/>
                <set field="requestParameters.workEffortTypeId" to-scope="screen" default-value="ROU_TASK"/>
                <set field="requestParameters.fixedAssetId" to-scope="screen" default-value=""/>
                <set field="queryString" from-field="result.queryString"/>
                <set field="searchFields" value="[workEffortId, workEffortName]"/>
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/>
                <property-to-field resource="widget" property="widget.form.defaultViewSize" field="viewSizeDefaultValue"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="${viewSizeDefaultValue}"/>
            </actions>
            <widgets>
                <decorator-screen name="LookupDecorator" location="component://common/widget/CommonScreens.xml">
                    <decorator-section name="search-options">
                        <include-form name="LookupRoutingTask" location="component://manufacturing/widget/manufacturing/FieldLookupForms.xml"/>
                    </decorator-section>
                    <decorator-section name="search-results">
                        <include-form name="ListLookupRoutingTask" location="component://manufacturing/widget/manufacturing/FieldLookupForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
</screens>
