<?xml version="1.0"?>
<odoo>
    <data>
        <!-- discuss.channel -->
        <record id="mail.discuss_channel_view_kanban" model="ir.ui.view">
            <field name="name">discuss.channel.kanban</field>
            <field name="model">discuss.channel</field>
            <field name="priority" eval="10"/>
            <field name="arch" type="xml">
                <kanban default_order="last_interest_dt desc" action="open_chat_window_action" type="object">
                    <field name="is_member"/>
                    <field name="group_ids"/>
                    <field name="active"/>
                    <templates>
                        <t t-name="menu">
                            <a type="open" class="dropdown-item" role="menuitem">Advanced Settings</a>
                        </t>
                        <t t-name="card">
                            <widget name="web_ribbon" class="d-flex" title="Archived" bg_color="text-bg-danger" invisible="active"/>
                            <main>
                                <div class="d-flex gap-2 mb-2">
                                    <field name="avatar_128" widget="image" options="{'size': [25, 25], 'img_class': 'bg-transparent'}" alt="Channel"/>
                                    <span class="fw-bold fs-5">#<field name="display_name"/></span>
                                </div>
                                <field name="channel_type" groups="base.group_no_one"/>
                                <field name="description" class="small text-muted"/>
                            </main>
                            <footer>
                                <button type="object" invisible="not can_leave" class="btn btn-secondary ms-auto mt-auto" name="action_unfollow">
                                    <i class="fa fa-sign-out" role="img"></i> Leave
                                </button>
                                <button type="object" invisible="not can_join" class="btn btn-primary ms-auto mt-auto" name="channel_join">
                                    <i class="fa fa-sign-in" role="img"></i> Join
                                </button>
                            </footer>
                        </t>
                    </templates>
                </kanban>
            </field>
        </record>

        <record id="mail.discuss_channel_view_list" model="ir.ui.view">
            <field name="name">discuss.channel.list</field>
            <field name="model">discuss.channel</field>
            <field name="priority" eval="10"/>
            <field name="arch" type="xml">
                <list default_order="last_interest_dt desc" action="open_chat_window_action" type="object">
                    <field name="avatar_128" invisible="parent_channel_id" widget="image" options="{'size': [24, 24]}" width="30" string=""/>
                    <field name="display_name"/>
                    <field name="description"/>
                    <field name="last_interest_dt" optional="hide"/>
                    <button type="object" invisible="not can_leave" class="btn btn-secondary" name="action_unfollow" string="Leave"/>
                    <button type="object" invisible="not can_join" class="btn btn-primary" name="channel_join" string="Join"/>
                </list>
            </field>
        </record>

        <record id="mail.discuss_channel_view_form" model="ir.ui.view">
            <field name="name">discuss.channel.form</field>
            <field name="model">discuss.channel</field>
            <field name="priority" eval="10"/>
            <field name="arch" type="xml">
                <form string="Mail Channel Form" duplicate="0">
                    <header>
                        <button type="object" invisible="not can_join" class="btn btn-primary" name="channel_join">
                            <i class="fa fa-sign-in" role="img"></i> Join
                        </button>
                        <button type="object" class="btn btn-secondary" name="open_chat_window_action">View</button>
                        <button type="object" invisible="not can_leave" class="btn btn-secondary" name="action_unfollow">
                            <i class="fa fa-sign-out" role="img"></i> Leave
                        </button>
                    </header>
                    <sheet>
                        <div class="oe_button_box" name="button_box"/>
                        <field name="channel_type" invisible="1"/>
                        <field name="avatar_128" invisible="1"/>
                        <field name="is_editable" invisible="1"/>
                        <field name="self_member_id" invisible="1"/>
                        <field name="image_128" widget="image" class="oe_avatar" options="{'size': [90, 90], 'preview_image':'avatar_128'}" readonly="not is_editable"/>
                        <widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
                        <div class="oe_title">
                            <label for="name" string="Group Name"/>
                            <h1>
                                #<field name="name" class="oe_inline" default_focus="1" placeholder="e.g. support" readonly="not is_editable"/>
                            </h1>
                        </div>
                        <group class="o_label_nowrap">
                            <field name="active" invisible="1"/>
                            <field name="discuss_category_id"/>
                            <field name="description" placeholder="Topics discussed in this group..." readonly="not is_editable"/>
                            <field name="is_readonly" invisible="channel_type != 'channel'" readonly="id and not can_self_edit_readonly_channel"/>
                        </group>
                        <notebook>
                            <page string="Privacy" name="privacy">
                                <group class="o_label_nowrap">
                                    <field name="group_public_id"
                                        invisible="channel_type != 'channel' or parent_channel_id" readonly="not is_editable"/>
                                    <field name="group_ids" widget="many2many_tags"
                                        invisible="channel_type != 'channel'"
                                        string="Auto Subscribe Groups" readonly="not is_editable"/>
                                </group>
                            </page>
                            <page string="Members" name="members">
                                <field name="channel_type" invisible="1"/>
                                <field name="channel_member_ids" mode="list" context="{'active_test': False}" readonly="channel_type == 'chat'">
                                    <list string="Members" editable="bottom">
                                        <field name="partner_id" readonly="id or guest_id" required="not guest_id"/>
                                        <field name="guest_id" readonly="id or partner_id" required="not partner_id"/>
                                        <field name="channel_role" readonly="guest_id" widget="selection"/>
                                    </list>
                                </field>
                            </page>
                            <page string="Extra info" name="extra_info" groups="base.group_no_one">
                                <group class="o_label_nowrap">
                                    <field name="channel_type"/>
                                    <field name="parent_channel_id"/>
                                    <field name="sub_channel_ids"/>
                                    <field name="from_message_id"/>
                                    <field name="sfu_channel_uuid"/>
                                    <field name="sfu_server_url"/>
                                </group>
                            </page>
                            <page string="Integrations" invisible="1" name="discuss_channel_integrations"></page>
                        </notebook>
                    </sheet>
                </form>
            </field>
        </record>

        <record id="mail.discuss_channel_view_tree" model="ir.ui.view">
            <field name="name">discuss.channel.list</field>
            <field name="model">discuss.channel</field>
            <field name="priority" eval="10"/>
            <field name="arch" type="xml">
                <list string="Groups">
                    <field name="name"/>
                </list>
            </field>
        </record>

        <record id="mail.discuss_channel_view_search" model="ir.ui.view">
            <field name="name">discuss.channel.search</field>
            <field name="model">discuss.channel</field>
            <field name="priority" eval="10"/>
            <field name="arch" type="xml">
                <search>
                    <field name="display_name"/>
                    <filter string="Joined" name="filter_joined" domain="[('is_member', '=', True)]"/>
                    <filter string="Not Joined" name="filter_not_joined" domain="[('is_member', '=', False)]"/>
                    <separator/>
                    <filter string="Archived" name="filter_archived" domain="[('active', '=', False)]"/>
                    <group>
                        <filter string="Categories" name="group_by_categories" context="{'group_by': 'discuss_category_id'}"/>
                    </group>
                </search>
            </field>
        </record>

        <record id="mail.discuss_my_conversations_view_search" model="ir.ui.view">
            <field name="name">discuss.channel.search</field>
            <field name="model">discuss.channel</field>
            <field name="priority" eval="20"/>
            <field name="arch" type="xml">
                <search>
                    <field name="display_name"/>
                    <filter string="Visible" name="filter_visible" domain="[('self_member_id.is_pinned', '=', True)]"/>
                    <filter string="Hidden" name="filter_hidden" domain="[('self_member_id.is_pinned', '=', False)]"/>
                    <separator/>
                    <filter string="Channel" name="filter_channel" domain="[('channel_type', '=', 'channel')]"/>
                    <filter string="Group" name="filter_group" domain="[('channel_type', '=', 'group')]"/>
                    <filter string="Chat" name="filter_chat" domain="[('channel_type', '=', 'chat')]"/>
                    <separator/>
                    <filter string="Archived" name="filter_archived" domain="[('active', '=', False)]"/>
                    <separator/>
                    <group>
                        <filter name="group_by_channel_type" string="Channel Type" domain="[]" context="{'group_by':'channel_type'}"/>
                    </group>
                </search>
            </field>
        </record>

        <record id="mail.discuss_channel_action_view" model="ir.actions.act_window">
            <field name="name">Join a group</field>
            <field name="res_model">discuss.channel</field>
            <field name="view_mode">kanban,list,form</field>
            <field name="search_view_id" ref="discuss_channel_view_search"/>
        </record>

        <record id="mail.discuss_channel_action" model="ir.actions.act_window">
            <field name="name">Channels</field>
            <field name="res_model">discuss.channel</field>
            <field name="view_mode">kanban,list,form</field>
            <field name="domain">[("channel_type", "=", "channel"), ("parent_channel_id", "=", False)]</field>
            <field name="search_view_id" ref="discuss_channel_view_search" />
        </record>

        <record id="mail.discuss_my_conversations_action" model="ir.actions.act_window">
            <field name="name">Channels</field>
            <field name="res_model">discuss.channel</field>
            <field name="view_mode">kanban,list,form</field>
            <field name="domain">[("is_member", "=", True)]</field>
            <field name="search_view_id" ref="mail.discuss_my_conversations_view_search" />
            <field name="context" eval="{'search_default_filter_hidden': 1}"/>
        </record>

    <record id="mail.action_discuss" model="ir.actions.client">
        <field name="name">Discuss</field>
        <field name="tag">mail.action_discuss</field>
        <field name="path">discuss</field>
        <field name="params" eval="&quot;{ 'default_active_id': 'mail.box_inbox' }&quot;"/>
    </record>

    </data>
</odoo>
