<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
    <t t-name="xeno_mobile.Leave">
        <div class="o_xeno_mobile">
            <div class="o_xeno_mobile_shell">

                <div class="o_xeno_m_hero">
                    <div class="o_xeno_m_hero_top">
                        <div class="o_xeno_m_brand">XEN<span>HR</span></div>
                        <button class="o_xeno_m_home_btn" t-on-click="goHome" aria-label="Back to Attendance" title="Back to Attendance">
                            <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
                                <path d="M3 11.5 12 4l9 7.5"/>
                                <path d="M5.5 10v9a1 1 0 0 0 1 1H9a1 1 0 0 0 1-1v-4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v4a1 1 0 0 0 1 1h2.5a1 1 0 0 0 1-1v-9"/>
                            </svg>
                        </button>
                    </div>
                    <div class="o_xeno_m_hero_title">Leave Request</div>
                </div>

                <t t-if="state.loaded and !state.linked">
                    <div class="o_xeno_m_card o_xeno_m_notice">Your user isn't linked to an employee record yet. Please contact HR.</div>
                </t>

                <t t-if="state.loaded and state.linked">
                    <div class="o_xeno_m_card">
                        <div class="o_xeno_m_card_title">New Request</div>

                        <label class="o_xeno_m_label">Leave Type</label>
                        <select class="o_xeno_m_input" t-on-change="onTypeChange">
                            <t t-foreach="state.leaveTypes" t-as="ltype" t-key="ltype.id">
                                <option t-att-value="ltype.id"
                                        t-att-selected="ltype.id === state.form.holidayStatusId"
                                        t-esc="ltype.name"/>
                            </t>
                        </select>

                        <t t-if="isFlexible">
                            <label class="o_xeno_m_label">Leave Type Basis</label>
                            <select class="o_xeno_m_input" t-on-change="onUnitChange">
                                <t t-foreach="baseTypes" t-as="bt" t-key="bt.id">
                                    <option t-att-value="bt.id"
                                            t-att-selected="bt.id === state.form.requestUnit"
                                            t-esc="bt.label"/>
                                </t>
                            </select>
                        </t>

                        <t t-if="isPartTime">
                            <label class="o_xeno_m_label">From</label>
                            <div class="o_xeno_m_time_row">
                                <select class="o_xeno_m_input" t-on-change="(ev) => this.onTimeChange('request_time_from', 'hour', ev)">
                                    <t t-foreach="hourOptions" t-as="h" t-key="h">
                                        <option t-att-value="h"
                                                t-att-selected="h === state.form.request_time_from.hour"
                                                t-esc="pad2(h)"/>
                                    </t>
                                </select>
                                <span class="o_xeno_m_time_colon">:</span>
                                <select class="o_xeno_m_input" t-on-change="(ev) => this.onTimeChange('request_time_from', 'minute', ev)">
                                    <t t-foreach="minuteOptions" t-as="mm" t-key="mm">
                                        <option t-att-value="mm"
                                                t-att-selected="mm === state.form.request_time_from.minute"
                                                t-esc="pad2(mm)"/>
                                    </t>
                                </select>
                            </div>

                            <label class="o_xeno_m_label">To</label>
                            <div class="o_xeno_m_time_row">
                                <select class="o_xeno_m_input" t-on-change="(ev) => this.onTimeChange('request_time_to', 'hour', ev)">
                                    <t t-foreach="hourOptions" t-as="h" t-key="h">
                                        <option t-att-value="h"
                                                t-att-selected="h === state.form.request_time_to.hour"
                                                t-esc="pad2(h)"/>
                                    </t>
                                </select>
                                <span class="o_xeno_m_time_colon">:</span>
                                <select class="o_xeno_m_input" t-on-change="(ev) => this.onTimeChange('request_time_to', 'minute', ev)">
                                    <t t-foreach="minuteOptions" t-as="mm" t-key="mm">
                                        <option t-att-value="mm"
                                                t-att-selected="mm === state.form.request_time_to.minute"
                                                t-esc="pad2(mm)"/>
                                    </t>
                                </select>
                            </div>
                        </t>

                        <div class="o_xeno_m_field_row">
                            <div class="o_xeno_m_field">
                                <label class="o_xeno_m_label">Start Date</label>
                                <input type="date" class="o_xeno_m_input"
                                       t-att-value="state.form.dateFrom"
                                       t-on-change="(ev) => this.onField('dateFrom', ev)"/>
                            </div>
                            <div class="o_xeno_m_field">
                                <label class="o_xeno_m_label">End Date</label>
                                <input type="date" class="o_xeno_m_input"
                                       t-att-value="state.form.dateTo"
                                       t-on-change="(ev) => this.onField('dateTo', ev)"/>
                            </div>
                        </div>

                        <label class="o_xeno_m_label">Reason</label>
                        <textarea class="o_xeno_m_input o_xeno_m_textarea" rows="3"
                                  placeholder="Optional note for your approver"
                                  t-att-value="state.form.reason"
                                  t-on-input="(ev) => this.onField('reason', ev)"/>

                        <button class="o_xeno_m_bigbtn"
                                t-att-class="{ 'is_busy': state.submitting }"
                                t-att-disabled="!canSubmit"
                                t-on-click="onSubmit">
                            <t t-if="state.submitting">Submitting…</t>
                            <t t-else="">Submit Request</t>
                        </button>
                    </div>

                    <div class="o_xeno_m_card_title o_xeno_m_section">My Recent Requests</div>
                    <t t-if="!state.myLeaves.length">
                        <div class="o_xeno_m_card o_xeno_m_notice">No leave requests yet.</div>
                    </t>
                    <t t-foreach="state.myLeaves" t-as="lv" t-key="lv.id">
                        <div class="o_xeno_m_card o_xeno_m_leave_row">
                            <div class="o_xeno_m_leave_main">
                                <div class="o_xeno_m_leave_type" t-esc="lv.typeName"/>
                                <div class="o_xeno_m_leave_dates">
                                    <t t-esc="lv.dateFrom"/> → <t t-esc="lv.dateTo"/>
                                    <span class="o_xeno_m_muted"> · <t t-esc="lv.days"/> d</span>
                                </div>
                                <div t-if="lv.reason" class="o_xeno_m_leave_reason" t-esc="lv.reason"/>
                            </div>
                            <div class="o_xeno_m_leave_side">
                                <span t-attf-class="o_xeno_m_pill {{ lv.statusClass }}" t-esc="lv.statusLabel"/>
                                <button t-if="lv.canCancel" class="o_xeno_m_cancel_link"
                                        t-on-click="() => this.onCancel(lv.id)">Cancel</button>
                            </div>
                        </div>
                    </t>
                </t>

                <div t-if="!state.loaded" class="o_xeno_m_card o_xeno_m_loading">Loading…</div>
            </div>
        </div>
    </t>
</templates>
