<?xml version="1.0" encoding="utf-8" ?>
<odoo>
    <!-- Views for the xbus.emitter.job model. -->

    <record id="xbus_emitter_job_search" model="ir.ui.view">
        <field name="name">xbus_emitter_job_search</field>
        <field name="model">xbus.emitter.job</field>
        <field name="arch" type="xml">
            <search>
                <field name="emitter_id" />
                <field name="event_type" />
                <field name="state" />
                <field name="log" />
                <field name="chunking" />

                <filter
                    string="To Send"
                    name="state_to_send"
                    domain="[('state', '=', 'to_send')]"
                />
                <filter
                    string="Sent (Success)"
                    name="state_sent_success"
                    domain="[('state', '=', 'sent_success')]"
                />
                <filter
                    string="Sent (Error)"
                    name="state_sent_error"
                    domain="[('state', '=', 'sent_error')]"
                />
                <filter
                    string="Sent, Process Running"
                    name="state_process_running"
                    domain="[('state', '=', 'process_running')]"
                />
                <filter
                    string="Sent, Process Paused"
                    name="state_process_paused"
                    domain="[('state', '=', 'process_paused')]"
                />
                <filter
                    string="Sent, Process Done and Successful"
                    name="state_process_done"
                    domain="[('state', '=', 'process_done')]"
                />
                <filter
                    string="Sent, Process Error"
                    name="state_process_error"
                    domain="[('state', '=', 'process_error')]"
                />

                <group string="Group By">
                    <filter
                        string="Emitter"
                        name="group_by_emitter"
                        context="{'group_by': 'emitter_id'}"
                    />
                    <filter
                        string="State"
                        name="group_by_state"
                        context="{'group_by': 'state'}"
                    />
                    <filter
                        string="Chunking"
                        name="group_by_chunking"
                        context="{'group_by': 'chunking'}"
                    />
                </group>
            </search>
        </field>
    </record>

    <record id="xbus_emitter_job_list" model="ir.ui.view">
        <field name="name">xbus_emitter_job_list</field>
        <field name="model">xbus.emitter.job</field>
        <field name="arch" type="xml">
            <tree
                decoration-success="state in ('sent_success', 'process_done')"
                decoration-danger="state in ('sent_error', 'process_error')"
            >
                <field name="emitter_id" />
                <field name="event_type" />
                <field name="create_date" />
                <field name="write_date" />
                <field name="state" />
                <field name="chunking" />

                <!-- Utility fields. -->
                <field name="log" invisible="1" />
            </tree>
        </field>
    </record>

    <record id="xbus_emitter_job_form" model="ir.ui.view">
        <field name="name">xbus_emitter_job_form</field>
        <field name="model">xbus.emitter.job</field>
        <field name="arch" type="xml">
            <form>
                <header>
                    <field
                        name="state"
                        widget="statusbar"
                        statusbar_visible="to_send,sent_success,process_done"
                    />
                </header>
                <sheet>
                    <div class="oe_left oe_title">
                        <h1>
                            <field name="event_type" />
                        </h1>
                    </div>

                    <div name="button_box" class="oe_right oe_button_box">
                        <button
                            name="open_source_record"
                            type="object"
                            class="oe_inline oe_stat_button"
                            icon="fa-link"
                            attrs="{'invisible': [('record_model', '=', False)]}"
                        >
                            <div class="o_stat_info">
                                <span class="o_stat_value">1</span>
                                <span class="o_stat_text">Record</span>
                            </div>
                        </button>
                    </div>

                    <group col="3">
                        <group>
                            <field name="emitter_id" />
                            <field name="record_model" />
                            <field name="record_id" />
                        </group>

                        <group>
                            <field name="create_date" readonly="1" />
                            <field name="write_date" readonly="1" />
                            <field name="date_sent" />
                            <field name="date_done" />
                        </group>

                        <group>
                            <field name="envelope_id" />
                            <field name="process_id" />
                            <field name="chunking" />
                        </group>
                    </group>

                    <group>
                        <label
                            for="items"
                            attrs="{'invisible': [('items', '=', False)]}"
                        />
                        <field name="items" nolabel="1" colspan="2" />
                    </group>

                    <group>
                        <label for="log" />
                        <field name="log" nolabel="1" colspan="2" />
                    </group>
                </sheet>
            </form>
        </field>
    </record>

    <!-- Add a menu command to access Xbus emitter jobs. -->

    <record id="xbus_emitter_job_action" model="ir.actions.act_window">
        <field name="name">Xbus Emitter Jobs</field>
        <field name="res_model">xbus.emitter.job</field>
        <field name="view_mode">tree,form</field>
    </record>

    <menuitem
        id="xbus_emitter_job_menu_command"
        parent="xbus_emission_menu_command"
        sequence="2"
        action="xbus_emitter_job_action"
    />
</odoo>