<?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="TrainingCalendar">
        <section>
            <actions>
                <set field="parameters.period" from-field="parameters.period" default-value="${initialView}"/>
            </actions>
            <widgets>
                <section>
                    <condition>
                        <if-compare field="parameters.period" operator="equals" value="day"/>
                    </condition>
                    <actions>
                        <set field="titleProperty" value="PageTitleCalendarDay"/>
                        <set field="tabButtonItem" value="day"/>
                        <script location="component://workeffort/webapp/workeffort/WEB-INF/actions/calendar/Days.groovy"/>
                    </actions>
                    <widgets>
                        <screenlet title="${uiLabelMap.WorkEffortDayView}: ${bsh:org.ofbiz.base.util.UtilDateTime.timeStampToString(start, &quot;EEEE MMMM d, yyyy&quot;, timeZone, locale)}" navigation-menu-name="Day">
                            <include-menu name="Day" location="component://workeffort/widget/WorkEffortMenus.xml"/>
                            <include-screen name="trainingCalendarDetail"/>
                            <platform-specific>
                                <html><html-template location="component://workeffort/webapp/workeffort/calendar/day.ftl"/></html>
                            </platform-specific>
                        </screenlet>
                    </widgets>
                </section>
                <section>
                    <condition>
                        <or>
                            <if-compare field="parameters.period" operator="equals" value="week"/>
                            <if-empty field="parameters.period"/>
                        </or>
                    </condition>
                    <actions>
                        <script location="component://workeffort/webapp/workeffort/WEB-INF/actions/calendar/Week.groovy"/>
                    </actions>
                    <widgets>
                        <screenlet title="${uiLabelMap.WorkEffortWeekView}: ${uiLabelMap.CommonWeek} ${bsh:org.ofbiz.base.util.UtilDateTime.timeStampToString(start, &quot;w&quot;, timeZone, locale)}" navigation-menu-name="Week">
                            <include-menu name="Week" location="component://workeffort/widget/WorkEffortMenus.xml"/>
                            <include-screen name="trainingCalendarDetail"/>
                            <platform-specific>
                                <html><html-template location="component://workeffort/webapp/workeffort/calendar/week.ftl"/></html>
                            </platform-specific>
                        </screenlet>
                    </widgets>
                </section>
                <section>
                    <condition>
                        <if-compare field="parameters.period" operator="equals" value="month"/>
                    </condition>
                    <actions>
                        <script location="component://workeffort/webapp/workeffort/WEB-INF/actions/calendar/Month.groovy"/>
                    </actions>
                    <widgets>
                        <screenlet title="${uiLabelMap.WorkEffortMonthView}: ${bsh:org.ofbiz.base.util.UtilDateTime.timeStampToString(start, &quot;MMMM yyyy&quot;, timeZone, locale)}" navigation-menu-name="Month">
                            <include-menu name="Month" location="component://workeffort/widget/WorkEffortMenus.xml"/>
                            <include-screen name="trainingCalendarDetail"/>
                            <platform-specific>
                                <html><html-template location="component://workeffort/webapp/workeffort/calendar/month.ftl"/></html>
                            </platform-specific>
                        </screenlet>
                    </widgets>
                </section>
                <section>
                    <condition>
                        <if-compare field="parameters.period" operator="equals" value="upcoming"/>
                    </condition>
                    <actions>
                        <script location="component://workeffort/webapp/workeffort/WEB-INF/actions/calendar/Upcoming.groovy"/>
                    </actions>
                    <widgets>
                        <screenlet title="${uiLabelMap.WorkEffortCalendarUpComingEventsView}" navigation-menu-name="Upcoming">
                            <include-menu name="Upcoming" location="component://workeffort/widget/WorkEffortMenus.xml"/>
                            <platform-specific>
                                <html><html-template location="component://workeffort/webapp/workeffort/calendar/upcoming.ftl"/></html>
                            </platform-specific>
                        </screenlet>
                    </widgets>
                </section>
            </widgets>
        </section>
    </screen>
    <screen name="TrainingCalendarWithDecorator">
        <section>
            <actions>
                <set field="tabButtonItem" value="TrainingCalendar"/>
                <set field="titleProperty" value="PageTitleFindTrainingCalendar"/>
            </actions>
            <widgets>
                    <decorator-screen name="CommonTrainingDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <include-screen name="TrainingCalendar"/>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="trainingCalendarDetail">
        <section>
            <actions>
                <entity-one entity-name="WorkEffort" value-field="workEffort"/>
                <script location="component://workeffort/script/isCalOwner.groovy"/>
                <set field="workEffortId" from-field="parameters.workEffortId"/>
                <set field="trainingClassTypeId" from-field="workEffort.workEffortName"/>
                <set field="workEffortTypeId" from-field="workEffort.workEffortTypeId"/>
                <set field="fromDate" from-field="workEffort.estimatedStartDate"/>
                <set field="thruDate" from-field="workEffort.estimatedCompletionDate"/>
                <set field="loginPartyId" from-field="parameters.userLogin.partyId"/>
                <set field="approvalStatus" from-field="workEffort.status"/>
            </actions>
            <widgets>
                <section>
                    <condition>
                        <and>
                            <or>
                                <and>
                                    <not><if-empty field="workEffort"/></not>
                                    <if-compare field="workEffort.currentStatusId" operator="not-equals" value="CAL_CANCELLED"/>
                                </and>
                                <if-empty field="workEffort"/>
                                <if-has-permission permission="WORKEFFORTMGR" action="_ADMIN"/>
                            </or>
                            <if-compare field="parameters.form" operator="equals" value="edit"/>
                        </and>
                    </condition>
                    <widgets>
                        <section>
                            <condition>
                                <or>
                                    <if-compare field="isCalOwner" operator="equals" value="true" type="Boolean"/>
                                    <if-empty field="workEffort"/>
                                </or>
                            </condition>
                            <widgets><!-- edit section -->
                                <container style="lefthalf">
                                    <label style="h1" text="${uiLabelMap.WorkEffortAddCalendarEvent}"/>
                                    <include-form name="editTrainingCalendar" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                                </container>
                                <container style="righthalf">
                                    <label style="h1" text="${uiLabelMap.WorkEffortParticipants}"/>
                                    <include-form name="ListTrainingParticipants" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                                    <section>
                                        <condition>
                                            <and>
                                                <not><if-empty field="workEffort"/></not>
                                                <if-compare field="workEffortTypeId" operator="not-equals" value="WES_PUBLIC"/>
                                            </and>
                                        </condition>
                                        <widgets>
                                            <container>
                                                <label/>
                                                <include-form name="AssignTraining" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                                            </container>
                                        </widgets>
                                    </section>
                                </container>
                            </widgets>
                            <fail-widgets><!-- view section -->
                                <container style="lefthalf">
                                    <label style="h1" text="${uiLabelMap.WorkEffortSummary}"/>
                                    <include-form name="showTrainingCalendar" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                                </container>
                            </fail-widgets>
                        </section>                
                    </widgets>            
                </section>
            </widgets>
        </section>
    </screen>
    <screen name="FindTrainingApprovals">
        <section>
            <actions>
                <set field="tabButtonItem" value="FindTrainingApprovals"/>
                <set field="titleProperty" value="PageTitleFindTrainingApprovals"/>
                <service service-name="humanResManagerPermission" result-map="permResult">
                    <field-map field-name="mainAction" value="ADMIN"/>
                </service>
                <set field="hasAdminPermission" from-field="permResult.hasPermission"/>
                <set field="loginPartyId" from-field="parameters.userLogin.partyId"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonTrainingDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
                            <decorator-section name="search-options">
                                <include-form name="FindTrainingApprovals" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                            </decorator-section>
                            <decorator-section name="search-results">
                                <include-form name="ListTrainingApprovals" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                            </decorator-section>
                        </decorator-screen>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    <screen name="EditTrainingApprovals">
       <section>
           <actions>
               <set field="tabButtonItem" value="FindTrainingApprovals"/>
               <set field="partyId" from-field="parameters.partyId"/>
               <set field="trainingClassTypeId" from-field="parameters.trainingClassTypeId"/>
               <set field="fromDate" from-field="parameters.fromDate"/>
               <entity-one entity-name="PersonTraining" value-field="personTraining"/>
           </actions>
               <widgets>
                   <decorator-screen name="CommonTrainingDecorator" location="${parameters.mainDecoratorLocation}">
                       <decorator-section name="body">
                           <screenlet id="EditTrainingApprovals" title="${uiLabelMap.CommonEdit} ${uiLabelMap.HumanResTrainingApproval}" collapsible="true">
                               <include-form name="EditTrainingApprovals" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                           </screenlet>
                       </decorator-section>
                   </decorator-screen>
               </widgets>
       </section>
     </screen>
     <screen name="FindTrainingStatus">
         <section>
             <actions>
                 <set field="tabButtonItem" value="FindTrainingStatus"/>
                 <set field="titleProperty" value="PageTitleFindTrainingStatus"/>
                 <service service-name="humanResManagerPermission" result-map="permResult">
                     <field-map field-name="mainAction" value="ADMIN"/>
                 </service>
                 <set field="hasAdminPermission" from-field="permResult.hasPermission"/>
                 <set field="loginPartyId" from-field="parameters.userLogin.partyId"/>
             </actions>
                 <widgets>
                     <decorator-screen name="CommonTrainingDecorator" location="${parameters.mainDecoratorLocation}">
                         <decorator-section name="body">
                     <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
                         <decorator-section name="search-options">
                             <include-form name="FindTrainingStatus" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                         </decorator-section>
                         <decorator-section name="search-results">
                             <include-form name="ListTrainingStatus" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                         </decorator-section>
                     </decorator-screen>
                        </decorator-section>
                     </decorator-screen>
                 </widgets>
         </section>
     </screen>
     <screen name="ListTrainingStatus">
         <section>
             <actions>
                 <set field="tabButtonItem" value="EditPersonTrainings"/>
             </actions>
                 <widgets>
                     <decorator-screen name="CommonPartyDecorator" location="${parameters.mainDecoratorLocation}">
                         <decorator-section name="body">
                             <screenlet id="TrainingStatus" title="${uiLabelMap.HumanResTrainingStatus}" collapsible="true">
                                 <include-form name="ListTrainingStatus" location="component://humanres/widget/forms/PersonTrainingForms.xml"/>
                             </screenlet>
                         </decorator-section>
                     </decorator-screen>
                 </widgets>
         </section>
     </screen>
</screens>
