<?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>
