<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
    <t t-name="xeno_theme_slate.PersonalInfo">
        <div class="xeno_app_dashboard p-4">
            <h2 class="mb-4">Personal Information</h2>

            <div t-if="!state.loading and !state.linked" class="text-muted">
                Your login isn't linked to an employee record yet. Contact HR.
            </div>

            <t t-if="!state.loading and state.linked">
                <!-- Contact & Address -->
                <div class="xeno_profile_card xeno_personal_info_card mb-4">
                    <h5>Contact &amp; Address</h5>
                    <div class="xeno_personal_info_grid">
                        <label>Private Phone
                            <input type="text" class="form-control" t-att-value="state.form.private_phone"
                                   t-on-change="(ev) => this.onFieldChange('private_phone', ev)"/>
                        </label>
                        <label>Private Email
                            <input type="text" class="form-control" t-att-value="state.form.private_email"
                                   t-on-change="(ev) => this.onFieldChange('private_email', ev)"/>
                        </label>
                        <label>Emergency Contact Name
                            <input type="text" class="form-control" t-att-value="state.form.emergency_contact"
                                   t-on-change="(ev) => this.onFieldChange('emergency_contact', ev)"/>
                        </label>
                        <label>Emergency Contact Phone
                            <input type="text" class="form-control" t-att-value="state.form.emergency_phone"
                                   t-on-change="(ev) => this.onFieldChange('emergency_phone', ev)"/>
                        </label>
                        <label>Street
                            <input type="text" class="form-control" t-att-value="state.form.private_street"
                                   t-on-change="(ev) => this.onFieldChange('private_street', ev)"/>
                        </label>
                        <label>Street 2
                            <input type="text" class="form-control" t-att-value="state.form.private_street2"
                                   t-on-change="(ev) => this.onFieldChange('private_street2', ev)"/>
                        </label>
                        <label>City
                            <input type="text" class="form-control" t-att-value="state.form.private_city"
                                   t-on-change="(ev) => this.onFieldChange('private_city', ev)"/>
                        </label>
                        <label>Zip
                            <input type="text" class="form-control" t-att-value="state.form.private_zip"
                                   t-on-change="(ev) => this.onFieldChange('private_zip', ev)"/>
                        </label>
                        <label>Country
                            <select class="form-select" t-on-change="(ev) => this.onCountryChange(ev)">
                                <option value="">-</option>
                                <t t-foreach="state.countries" t-as="c" t-key="c.id">
                                    <option t-att-value="c.id" t-att-selected="c.id === state.form.private_country_id"
                                            t-esc="c.name"/>
                                </t>
                            </select>
                        </label>
                        <label>State / Province
                            <select class="form-select" t-on-change="(ev) => this.onStateChange(ev)">
                                <option value="">-</option>
                                <t t-foreach="state.states" t-as="s" t-key="s.id">
                                    <option t-att-value="s.id" t-att-selected="s.id === state.form.private_state_id"
                                            t-esc="s.name"/>
                                </t>
                            </select>
                        </label>
                    </div>
                </div>

                <!-- Marital Status -->
                <div class="xeno_profile_card xeno_personal_info_card mb-4">
                    <h5>Marital Status</h5>
                    <div class="xeno_personal_info_grid">
                        <label>Marital Status
                            <select class="form-select" t-on-change="(ev) => this.onSelectChange('marital', ev)">
                                <option value="">-</option>
                                <t t-foreach="state.maritalOptions" t-as="opt" t-key="opt[0]">
                                    <option t-att-value="opt[0]" t-att-selected="opt[0] === state.form.marital"
                                            t-esc="opt[1]"/>
                                </t>
                            </select>
                        </label>
                    </div>
                </div>

                <!-- Education -->
                <div class="xeno_profile_card xeno_personal_info_card mb-4">
                    <h5>Education</h5>
                    <div class="xeno_personal_info_grid">
                        <label>Level of Education
                            <select class="form-select" t-on-change="(ev) => this.onSelectChange('certificate', ev)">
                                <option value="">-</option>
                                <t t-foreach="state.certificateOptions" t-as="opt" t-key="opt[0]">
                                    <option t-att-value="opt[0]" t-att-selected="opt[0] === state.form.certificate"
                                            t-esc="opt[1]"/>
                                </t>
                            </select>
                        </label>
                        <label>Institution
                            <input type="text" class="form-control" t-att-value="state.form.study_school"
                                   t-on-change="(ev) => this.onFieldChange('study_school', ev)"/>
                        </label>
                        <label>Major
                            <input type="text" class="form-control" t-att-value="state.form.study_field"
                                   t-on-change="(ev) => this.onFieldChange('study_field', ev)"/>
                        </label>
                    </div>
                </div>

                <!-- Health Condition -->
                <div class="xeno_profile_card xeno_personal_info_card mb-4">
                    <h5>Health Condition</h5>
                    <div class="xeno_personal_info_grid xeno_personal_info_grid_wide">
                        <label>Health Conditions (e.g., peanut allergy, asthma)
                            <textarea class="form-control" rows="3" t-on-change="(ev) => this.onFieldChange('xeno_health_conditions', ev)"
                                      t-esc="state.form.xeno_health_conditions"/>
                        </label>
                    </div>
                </div>

                <!-- Personal Transportation -->
                <div class="xeno_profile_card xeno_personal_info_card mb-4">
                    <h5>Personal Transportation</h5>
                    <div class="xeno_personal_info_grid">
                        <label>Car License Plate Number
                            <input type="text" class="form-control" t-att-value="state.form.private_car_plate"
                                   t-on-change="(ev) => this.onFieldChange('private_car_plate', ev)"/>
                        </label>
                        <label>Motorbike License Plate Number
                            <input type="text" class="form-control" t-att-value="state.form.xeno_motorbike_plate"
                                   t-on-change="(ev) => this.onFieldChange('xeno_motorbike_plate', ev)"/>
                        </label>
                    </div>
                </div>

                <!-- Nationality / Identity Documents -->
                <div class="xeno_profile_card xeno_personal_info_card mb-4">
                    <h5>Nationality</h5>
                    <div class="xeno_personal_info_grid">
                        <label>Nationality
                            <select class="form-select" t-on-change="(ev) => this.onM2oChange('country_id', ev)">
                                <option value="">-</option>
                                <t t-foreach="state.countries" t-as="c" t-key="c.id">
                                    <option t-att-value="c.id" t-att-selected="c.id === state.form.country_id"
                                            t-esc="c.name"/>
                                </t>
                            </select>
                        </label>
                        <label>ID Card Number
                            <input type="text" class="form-control" t-att-value="state.form.identification_id"
                                   t-on-change="(ev) => this.onFieldChange('identification_id', ev)"/>
                        </label>
                        <label>ID Card Expiration Date
                            <input type="date" class="form-control" t-att-value="state.form.xeno_id_card_expire"
                                   t-on-change="(ev) => this.onFieldChange('xeno_id_card_expire', ev)"/>
                        </label>
                        <label>SSO Number
                            <input type="text" class="form-control" t-att-value="state.form.ssnid"
                                   t-on-change="(ev) => this.onFieldChange('ssnid', ev)"/>
                        </label>
                        <label>SSO Expiration Date
                            <input type="date" class="form-control" t-att-value="state.form.xeno_sso_expire"
                                   t-on-change="(ev) => this.onFieldChange('xeno_sso_expire', ev)"/>
                        </label>
                        <label>Passport Number
                            <input type="text" class="form-control" t-att-value="state.form.passport_id"
                                   t-on-change="(ev) => this.onFieldChange('passport_id', ev)"/>
                        </label>
                        <label>Passport Issue Place
                            <input type="text" class="form-control" t-att-value="state.form.xeno_passport_issue_place"
                                   t-on-change="(ev) => this.onFieldChange('xeno_passport_issue_place', ev)"/>
                        </label>
                        <label>Passport Issue Date
                            <input type="date" class="form-control" t-att-value="state.form.xeno_passport_issue_date"
                                   t-on-change="(ev) => this.onFieldChange('xeno_passport_issue_date', ev)"/>
                        </label>
                        <label>Passport Expiration Date
                            <input type="date" class="form-control" t-att-value="state.form.passport_expiration_date"
                                   t-on-change="(ev) => this.onFieldChange('passport_expiration_date', ev)"/>
                        </label>
                    </div>
                </div>

                <!-- Save button -->
                <button class="btn btn-primary mb-4" t-att-disabled="state.saving" t-on-click="onSave">
                    <t t-if="state.saving">Saving…</t>
                    <t t-else="">Save</t>
                </button>

                <!-- Documents -->
                <div class="xeno_profile_card xeno_personal_documents_card">
                    <div class="d-flex justify-content-between align-items-center mb-3">
                        <h5 class="mb-0">My Documents</h5>
                        <div>
                            <input type="file" name="xenoFileInput" t-ref="xenoFileInput" class="d-none"
                                   t-on-change="onFileSelected"/>
                            <button class="btn btn-outline-secondary btn-sm" t-att-disabled="state.uploading"
                                    t-on-click="onUploadClick">
                                <i class="fa fa-upload me-1"/>
                                <t t-if="state.uploading">Uploading…</t>
                                <t t-else="">Upload Document</t>
                            </button>
                        </div>
                    </div>
                    <div t-if="!state.documents.length" class="text-muted">No documents uploaded yet.</div>
                    <ul t-else="" class="xeno_personal_documents_list">
                        <t t-foreach="state.documents" t-as="doc" t-key="doc.id">
                            <li class="d-flex align-items-center gap-2">
                                <i class="fa fa-file-o"/>
                                <t t-if="state.renamingDocId === doc.id">
                                    <input type="text" class="form-control form-control-sm xeno_doc_rename_input"
                                           t-att-value="state.renameValue"
                                           t-on-input="onRenameInput"
                                           t-on-keydown="onRenameKeydown"
                                           t-on-blur="() => this.saveRename()"/>
                                </t>
                                <t t-else="">
                                    <a t-att-href="documentUrl(doc.id)" target="_blank" t-esc="doc.name"/>
                                    <button class="btn btn-link btn-sm p-0 ms-1 text-muted xeno_doc_rename_btn"
                                            t-on-click="() => this.onRenameClick(doc)"
                                            title="Rename">
                                        <i class="fa fa-pencil"/>
                                    </button>
                                </t>
                            </li>
                        </t>
                    </ul>
                    <div class="text-muted small mt-2">
                        Once uploaded, a document can only be removed by HR.
                    </div>
                </div>
            </t>
        </div>
    </t>
</templates>
