<?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="FindEmployments">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResFindEmployment"/>
                <set field="headerItem" value="Employment"/>
                <set field="roleTypeIdFrom" from-field="parameters.roleTypeIdFrom"/>
                <set field="roleTypeIdTo" from-field="parameters.roleTypeIdTo"/>
                <set field="partyIdFrom" from-field="parameters.partyIdFrom"/>
                <set field="partyIdTo" from-field="parameters.partyIdTo"/>
                <set field="fromDate" from-field="parameters.fromDate"/>
                <set field="employmentCtx" from-field="parameters"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonEmploymentDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
                            <decorator-section name="menu-bar">
                                <section>
                                    <widgets>
                                        <container style="button-bar">
                                            <link target="EditEmployment" text="${uiLabelMap.HumanResNewEmployment}" style="buttontext create"/>
                                        </container>
                                    </widgets>
                                </section>
                            </decorator-section>
                            <decorator-section name="search-options">
                                <include-form name="FindEmployments" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                            </decorator-section>
                            <decorator-section name="search-results">
                                <include-form name="ListEmploymentsPerson" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                            </decorator-section>
                        </decorator-screen>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="EditEmployment">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResEditEmployment"/>
                <set field="headerItem" value="Employment"/>
                <set field="tabButtonItem" value="EditEmployment"/>
                <set field="fromDate" from-field="parameters.fromDate" type="Timestamp"/>
                <entity-one entity-name="Employment" value-field="employment"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonEmploymentDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet title="${uiLabelMap.HumanResEditEmployment}">
                            <include-form name="EditEmployment" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="ListEmployments">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResListEmployments"/>
                <set field="tabButtonItem" value="ListEmployment"/>
                <set field="employmentCtx.partyIdTo" from-field="parameters.partyId"/>
            </actions>
            <widgets>
                <decorator-screen name="EmployeeDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet title="${uiLabelMap.HumanResEmployment}" navigation-form-name="ListEmploymentsPerson">
                            <include-form name="ListEmploymentsPerson" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="ListPayHistories">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResListPayHistories"/>
                <set field="headerItem" value="Employment"/>
                <set field="tabButtonItem" value="EditPayHistory"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonEmploymentDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet title="${uiLabelMap.HumanResListPayHistories}">
                            <include-form name="ListPayHistories" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="EditPartyBenefits">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResListPartyBenefits"/>
                <set field="headerItem" value="Employment"/>
                <set field="tabButtonItem" value="EditPartyBenefit"/>
                <set field="roleTypeIdFrom" from-field="parameters.roleTypeIdFrom"/>
                <set field="roleTypeIdTo" from-field="parameters.roleTypeIdTo"/>
                <set field="partyIdTo" from-field="parameters.partyIdTo"/>
                <set field="partyIdFrom" from-field="parameters.partyIdFrom"/>
                <set field="fromDate" from-field="parameters.fromDate" type="Timestamp"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonEmploymentDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet id="AddPartyBenefitPanel" title="${uiLabelMap.HumanResAddPartyBenefit}" collapsible="true">
                            <include-form name="AddPartyBenefit" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                        <include-form name="ListPartyBenefits" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="EditPayrollPreferences">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResListPayrollPreferences"/>
                <set field="headerItem" value="Employment"/>
                <set field="tabButtonItem" value="EditPayrollPreference"/>
                <set field="roleTypeIdFrom" from-field="parameters.roleTypeIdFrom"/>
                <set field="roleTypeIdTo" from-field="parameters.roleTypeIdTo"/>
                <set field="partyIdTo" from-field="parameters.partyIdTo"/>
                <set field="partyIdFrom" from-field="parameters.partyIdFrom"/>
                <set field="fromDate" from-field="parameters.fromDate" type="Timestamp"/>
                <set field="payrollPreferenceSeqId" from-field="parameters.payrollPreferenceSeqId"/>
                <set field="partyId" from-field="parameters.partyIdTo"/>
                <set field="roleTypeId" from-field="parameters.roleTypeIdTo"/>
                <entity-one entity-name="PayrollPreference" value-field="payrollPreference"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonEmploymentDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet id="AddPayrollPreferencePanel" title="${uiLabelMap.HumanResAddPayrollPreference}" collapsible="true">
                            <include-form name="AddPayrollPreference" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                        <include-form name="ListPayrollPreferences" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="EditUnemploymentClaims">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResAddUnemploymentClaim"/>
                <set field="headerItem" value="Employment"/>
                <set field="tabButtonItem" value="EditUnemploymentClaims"/>
                <set field="unemploymentClaimId" from-field="parameters.unemploymentClaimId"/>
                <set field="roleTypeIdFrom" from-field="parameters.roleTypeIdFrom"/>
                <set field="roleTypeIdTo" from-field="parameters.roleTypeIdTo"/>
                <set field="partyIdTo" from-field="parameters.partyIdTo"/>
                <set field="partyIdFrom" from-field="parameters.partyIdFrom"/>
                <set field="fromDate" from-field="parameters.fromDate" type="Timestamp"/>
                <entity-one entity-name="UnemploymentClaim" value-field="unemploymentClaim"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonEmploymentDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet id="AddUnemploymentClaimPanel" title="${uiLabelMap.HumanResAddUnemploymentClaim}" collapsible="true">
                            <include-form name="AddUnemploymentClaim" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                        <include-form name="ListUnemploymentClaims" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="EditPerformanceNotes">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResPerfNote"/>
                <set field="headerItem" value="Employee"/>
                <set field="tabButtonItem" value="EditPerformanceNotes"/>
                <set field="partyId" from-field="parameters.partyId"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonPartyDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet id="AddPerformanceNotePanel" title="${uiLabelMap.HumanResAddPerfNote}" collapsible="true">
                            <include-form name="AddPerformanceNote" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                        <include-form name="ListPerformanceNotes" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="EditAgreementEmploymentAppls">
        <section>
            <actions>
                <set field="titleProperty" value="HumanResEditAgreementEmploymentAppl"/>
                <set field="headerItem" value="Employment"/>
                <set field="tabButtonItem" value="EditAgreementEmploymentAppls"/>
                <set field="agreementId" from-field="parameters.agreementId"/>
                <set field="agreementItemSeqId" from-field="parameters.agreementItemSeqId"/>
                <set field="roleTypeIdFrom" from-field="parameters.roleTypeIdFrom"/>
                <set field="roleTypeIdTo" from-field="parameters.roleTypeIdTo"/>
                <set field="partyIdTo" from-field="parameters.partyIdTo"/>
                <set field="partyIdFrom" from-field="parameters.partyIdFrom"/>
                <set field="fromDate" from-field="parameters.fromDate" type="Timestamp"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonEmploymentDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet id="AddAgreementEmploymentApplPanel" title="${uiLabelMap.CommonAdd} ${uiLabelMap.HumanResAgreementEmploymentAppl}" collapsible="true">
                            <include-form name="AddAgreementEmploymentAppl" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                        </screenlet>
                        <include-form name="ListAgreementEmploymentAppls" location="component://humanres/widget/forms/EmploymentForms.xml"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
</screens>