<?xml version="1.0"?>
<odoo>
    <data>
        <record model="ir.ui.view" id="view_mail_form">
            <field name="name">mail.mail.form</field>
            <field name="model">mail.mail</field>
            <field name="arch" type="xml">
                <form string="Email message" duplicate="0">
                    <header>
                        <button name="send" string="Send Now" type="object" invisible="state != 'outgoing'" class="oe_highlight"/>
                        <button name="mark_outgoing" string="Retry" type="object" invisible="state not in ('exception', 'cancel')"/>
                        <button name="cancel" string="Cancel" type="object" invisible="state != 'outgoing'"/>
                        <field name="state" widget="statusbar" statusbar_visible="outgoing,sent,received,exception,cancel"/>
                    </header>
                    <sheet>
                        <field name="model" invisible="1"/>
                        <field name="res_id" invisible="1"/>
                        <div class="oe_button_box" name="button_box">
                            <button name="action_open_document"
                                    type="object" class="oe_link" icon="fa-file-text-o"
                                    invisible="not model or res_id == 0">
                                    <div class="o_field_widget o_stat_info">
                                        <span class="o_stat_text">Open Document</span>
                                    </div>
                            </button>
                        </div>
                        <field name="mail_message_id_int" required="0" invisible="1"/>
                        <div class="oe_title">
                            <label for="subject" class="oe_edit_only"/>
                            <h2><field name="subject"/></h2>
                        </div>
                        <div style="vertical-align: top;">
                            by <field name="author_id" class="oe_inline" string="User"/> on <field name="date" readonly="1" class="oe_inline"/>
                            <button name="%(action_email_compose_message_wizard)d" string="Reply" type="action" icon="fa-reply text-warning"
                                context="{'default_composition_mode':'comment', 'default_parent_id': mail_message_id_int}" invisible="state not in ('received', 'sent', 'exception', 'cancel')"/>
                        </div>
                        <group>
                            <field name="email_from"/>
                            <field name="email_to"/>
                            <field name="recipient_ids" widget="many2many_tags"
                                domain="[('active', '=', True)]"/>
                            <field name="email_cc"/>
                            <field name="reply_to"/>
                            <field name="scheduled_date" placeholder="YYYY-MM-DD HH:MM:SS"/>
                        </group>
                        <notebook>
                            <page string="Body" name="body">
                            <field name="body_html" widget="html"
                                   options="{'sandboxedPreview': true}"
                                   readonly="state not in ['outgoing', 'exception']"/>
                            </page>
                            <page string="Advanced" name="advanced" groups="base.group_no_one">
                                <group>
                                    <group string="Status">
                                        <field name="auto_delete"
                                            invisible="state != 'outgoing' and state != 'exception'"/>
                                        <field name="is_notification"/>
                                        <field name="message_type"/>
                                        <field name="mail_server_id"/>
                                        <field name="model"/>
                                        <field name="res_id"/>
                                    </group>
                                    <group string="Headers">
                                        <field name="message_id"/>
                                        <field name="references"/>
                                        <field name="fetchmail_server_id"/>
                                        <field name="headers"/>
                                    </group>
                                </group>
                            </page>
                            <page string="Attachments" name="attachments">
                                <div class="alert alert-warning" role="alert"
                                    invisible="restricted_attachment_count == 0">
                                    You do not have access to <field name="restricted_attachment_count"/>
                                    attachment(s) of this email.
                                </div>
                                <field name="unrestricted_attachment_ids"
                                    domain="[('res_field','=', False)]"/>
                            </page>
                            <page string="Failure Reason" name="failure_reason" invisible="state != 'exception'">
                                <field name="failure_reason"/>
                            </page>
                        </notebook>
                    </sheet>
                </form>
            </field>
        </record>

        <record model="ir.ui.view" id="view_mail_tree">
            <field name="name">mail.mail.tree</field>
            <field name="model">mail.mail</field>
            <field name="arch" type="xml">
                <tree string="Emails">
                    <header>
                        <button name="action_retry" string="Retry" type="object"/>
                    </header>
                    <field name="date"/>
                    <field name="subject"/>
                    <field name="author_id" string="User"/>
                    <field name="message_id" column_invisible="True"/>
                    <field name="recipient_ids" column_invisible="True"/>
                    <field name="model" column_invisible="True"/>
                    <field name="res_id" column_invisible="True"/>
                    <field name="email_from" column_invisible="True"/>
                    <field name="message_type" column_invisible="True"/>
                    <field name="state" widget="badge" decoration-muted="state in ('sent', 'cancel')"
                        decoration-info="state=='outgoing'" decoration-danger="state=='exception'"/>
                    <button name="send" string="Send Now" type="object" icon="fa-paper-plane" invisible="state != 'outgoing'"/>
                    <button name="mark_outgoing" string="Retry" type="object" icon="fa-repeat" invisible="state not in ('exception', 'cancel')"/>
                    <button name="cancel" string="Cancel Email" type="object" icon="fa-times-circle" invisible="state != 'outgoing'"/>
                </tree>
            </field>
        </record>

        <record model="ir.ui.view" id="view_mail_search">
            <field name="name">mail.mail.search</field>
            <field name="model">mail.mail</field>
            <field name="arch" type="xml">
                <search string="Email Search">
                    <field name="email_from" filter_domain="['|', '|',('email_from','ilike',self), ('email_to','ilike',self), ('subject','ilike',self)]" string="Email"/>
                    <field name="date"/>
                    <filter name="received" string="Received" domain="[('state','=','received')]"/>
                    <filter name="outgoing" string="Outgoing" domain="[('state','=','outgoing')]"/>
                    <filter name="sent" string="Sent" domain="[('state','=','sent')]"/>
                    <filter name="exception" string="Failed" domain="[('state','=','exception')]"/>
                    <separator/>
                    <filter name="filter_type_email_outgoing" string="Outgoing Email"
                            domain="[('message_type','=','email_outgoing')]"/>
                    <filter name="filter_type_email" string="Incoming Email"
                            domain="[('message_type','=','email')]"/>
                    <filter name="filter_type_comment" string="Comment"
                            domain="[('message_type','=','comment')]"/>
                    <filter name="filter_type_notification" string="Notification"
                            domain="[('message_type','=','notification')]"/>
                    <group expand="0" string="Extended Filters...">
                        <field name="author_id"/>
                        <field name="recipient_ids"/>
                        <field name="model"/>
                        <field name="res_id"/>
                    </group>
                    <group expand="0" string="Group By">
                        <filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/>
                        <filter string="Author" name="author" context="{'group_by':'author_id'}"/>
                        <filter string="Thread" name="thread" domain="[]" context="{'group_by':'message_id'}"/>
                        <filter string="Date" name="month" help="Creation Date" domain="[]" context="{'group_by':'date'}"/>
                    </group>
                </search>
            </field>
        </record>

        <record id="action_view_mail_mail" model="ir.actions.act_window">
            <field name="name">Emails</field>
            <field name="res_model">mail.mail</field>
            <field name="view_mode">tree,form</field>
            <field name="context">{}</field>
            <field name="search_view_id" ref="view_mail_search"/>
        </record>

        <record id="act_server_history" model="ir.actions.act_window">
            <field name="name">Messages</field>
            <field name="res_model">mail.mail</field>
            <field name="domain">[('email_from', '!=', False), ('fetchmail_server_id', '=', active_id)]</field>
            <field name="context">{'search_default_server_id': active_id, 'default_fetchmail_server_id': active_id}</field>
            <field name="binding_model_id" ref="model_fetchmail_server"/>
            <field name="binding_view_types">form</field>
        </record>

    </data>
</odoo>
