im_livechat/views/im_livechat_channel_views.xml

320 lines
19 KiB
XML
Raw Normal View History

<?xml version="1.0"?>
<odoo>
<data>
<record id="im_livechat_channel_action" model="ir.actions.act_window">
<field name="name">Website Live Chat Channels</field>
<field name="res_model">im_livechat.channel</field>
<field name="view_mode">kanban,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Define a new website live chat channel
</p><p>
You can create channels for each website on which you want
to integrate the website live chat widget, allowing your website
visitors to talk in real time with your operators.
</p>
</field>
</record>
<record id="im_livechat_channel_view_kanban" model="ir.ui.view">
<field name="name">im_livechat.channel.kanban</field>
<field name="model">im_livechat.channel</field>
<field name="arch" type="xml">
<kanban js_class="im_livechat.livechat_channel_kanban" action="im_livechat.discuss_channel_action_from_livechat_channel" type="action">
<field name="id"/>
<field name="name"/>
<field name="web_page" widget="url"/>
<field name="are_you_inside"/>
<field name="user_ids"/>
<field name="nbr_channel"/>
<field name="rating_percentage_satisfaction"/>
<field name="rating_count"/>
<field name="image_128"/>
<templates>
<t t-name="kanban-menu">
<div class="container">
<a type="object" name="action_view_rating" class="dropdown-item" role="menuitem">Ratings</a>
<a type="open" class="dropdown-item" role="menuitem">Configure Channel</a>
</div>
</t>
<t t-name="kanban-box">
<div class="oe_kanban_global_click px-4" t-att-class="{'o-livechat-ChannelKanban-highlighted': record.available_operator_ids.raw_value.length > 0}">
<div class="o_kanban_image" t-if="record.image_128.raw_value">
<img t-att-src="kanban_image('im_livechat.channel', 'image_128', record.id.raw_value)" class="img-fluid" alt="Channel"/>
</div>
<div class="oe_kanban_details">
<div class="d-flex justify-content-between">
<div>
<field name="name" class="fs-4" style="word-wrap: break-word;"/>
<p class="fst-italic fs-5"><t t-esc="record.nbr_channel.raw_value"/> Sessions</p>
</div>
<div>
<button t-if="record.are_you_inside.raw_value" name="action_quit" type="object" class="btn btn-primary">Leave</button>
<button t-if="!record.are_you_inside.raw_value" name="action_join" type="object" class="btn btn-secondary">Join</button>
</div>
</div>
<div class="o_kanban_record_bottom">
<field class="oe_kanban_bottom_left" name="available_operator_ids" widget="many2many_avatar_user" readonly="True"/>
<div t-if="record.rating_count.raw_value > 0" class="oe_kanban_bottom_right">
<a name="action_view_rating" type="object" tabindex="10">
<i class="fa fa-smile-o text-success" title="Percentage of happy ratings" role="img" aria-label="Happy face"/> <t t-esc="record.rating_percentage_satisfaction.raw_value"/>%
</a>
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="im_livechat_channel_view_form" model="ir.ui.view">
<field name="name">im_livechat.channel.form</field>
<field name="model">im_livechat.channel</field>
<field name="arch" type="xml">
<form>
<header>
<button type="object" name="action_join" class="oe_highlight" string="Join Channel" invisible="are_you_inside"/>
<button type="object" name="action_quit" class="btn btn-primary" string="Leave Channel" invisible="not are_you_inside"/>
<field name="are_you_inside" invisible="1"/>
</header>
<sheet>
<field name="rating_count" invisible="1"/>
<div class="oe_button_box" name="button_box">
<button class="oe_stat_button" type="object" name="action_view_chatbot_scripts" icon="fa-android"
invisible="chatbot_script_count == 0">
<field string="Chatbots" name="chatbot_script_count" widget="statinfo"/>
</button>
<button class="oe_stat_button" type="action" invisible="nbr_channel == 0" name="%(discuss_channel_action_from_livechat_channel)d" icon="fa-comments">
<field string="Sessions" name="nbr_channel" widget="statinfo"/>
</button>
<button name="action_view_rating" invisible="rating_count == 0" class="oe_stat_button" type="object" icon="fa-smile-o">
<field string="% Happy" name="rating_percentage_satisfaction" widget="statinfo"/>
</button>
</div>
<field name="image_128" widget="image" class="oe_avatar"/>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" placeholder="e.g. YourWebsite.com"/>
</h1>
</div>
<notebook>
<page string="Operators" name="operators">
<field name="user_ids" nolabel="1" colspan="2" domain="[['groups_id', 'not in', %(base.group_portal)d]]">
<kanban>
<field name="id"/>
<field name="name"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="o_kanban_image">
<img t-att-src="kanban_image('res.users', 'avatar_1024', record.id.raw_value)" alt="User"/>
</div>
<div class="o_kanban_details">
<div class="d-flex justify-content-between align-items-baseline">
<h4 class="o_kanban_record_title"><field name="name"/></h4>
<a class="btn p-0 opacity-75 opacity-100-hover" role="button" groups="im_livechat.im_livechat_group_manager" type="delete">
<i title="Remove operator" class="fa fa-fw fa-lg fa-close"/>
</a>
</div>
<field name="livechat_username" string="Online Chat Name"/>
</div>
</div>
</t>
</templates>
</kanban>
</field>
<p class="text-muted" colspan="2">
Operators that do not show any activity In Odoo for more than 30 minutes will be considered as disconnected.
</p>
</page>
<page string="Options" name="options">
<group>
<group string="Livechat Button">
<field name="button_text" string="Notification text" help="Text to display on the notification"/>
<label for="button_background_color" string="Livechat Button Color" />
<div class="o_livechat_layout_colors d-flex align-items-center align-middle">
<field name="button_background_color" widget="color" class="mb-4 w-auto o_im_livechat_field_widget_color"/>
<field name="button_text_color" widget="color" class="mb-4 w-auto o_im_livechat_field_widget_color"/>
<widget name="colors_reset_button" options="{'default_colors': {'button_background_color': '#878787', 'button_text_color': '#FFFFFF'}}" />
</div>
</group>
<group string="Livechat Window">
<field name="default_message" placeholder="e.g. Hello, how may I help you?"/>
<field name="input_placeholder"/>
<label for="header_background_color" string="Channel Header Color" />
<div class="o_livechat_layout_colors d-flex align-items-center align-middle">
<field name="header_background_color" widget="color" class="mb-4 w-auto o_im_livechat_field_widget_color"/>
<field name="title_color" widget="color" class="mb-4 w-auto o_im_livechat_field_widget_color"/>
<widget name="colors_reset_button" options="{'default_colors': {'header_background_color': '#875A7B', 'title_color': '#FFFFFF'}}" />
</div>
</group>
</group>
</page>
<page string="Channel Rules" name="channel_rules">
<field name="rule_ids" colspan="2"/>
<div class="text-muted" colspan="2">Define rules for your live support channel. You can apply an action for the given URL, and per country.<br />To identify the country, GeoIP must be installed on your server, otherwise, the countries of the rule will not be taken into account.</div>
</page>
<page string="Widget" name="configuration_widget">
<div class="alert alert-warning mt4 mb16" role="alert" invisible="web_page">
Save your Channel to get your configuration widget.
</div>
<div invisible="not web_page">
<separator string="How to use the Website Live Chat widget?"/>
<p>
Copy and paste this code into your website, within the &lt;head&gt; tag:
</p>
<field name="script_external" readonly="1" widget="CopyClipboardText"/>
<p>
or copy this url and send it by email to your customers or suppliers:
</p>
<field name="web_page" readonly="1" widget="CopyClipboardChar"/>
<p>For websites built with the Odoo CMS, go to Website > Configuration > Settings and select the Website Live Chat Channel you want to add to your website.</p>
</div>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="im_livechat_channel_view_search" model="ir.ui.view">
<field name="name">im.livechat.channel.view.search</field>
<field name="model">im_livechat.channel</field>
<field name="arch" type="xml">
<search string="LiveChat Channel Search">
<field name="name" string="Channel"/>
</search>
</field>
</record>
<!-- im_livechat.channel.rule -->
<record id="im_livechat_channel_rule_view_tree" model="ir.ui.view">
<field name="name">im.livechat.channel.rule.tree</field>
<field name="model">im_livechat.channel.rule</field>
<field name="arch" type="xml">
<tree string="Rules">
<field name="sequence" widget="handle"/>
<field name="regex_url"/>
<field name="action"/>
<field name="country_ids" widget="many2many_tags"/>
</tree>
</field>
</record>
<record id="im_livechat_channel_rule_view_kanban" model="ir.ui.view">
<field name="name">im_livechat.channel.rule.kanban</field>
<field name="model">im_livechat.channel.rule</field>
<field name="arch" type="xml">
<kanban>
<field name="regex_url"/>
<field name="action"/>
<field name="country_ids"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div><field name="action"/></div>
<field name="regex_url" />
<field name="country_ids" widget="many2many_tags" />
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="im_livechat_channel_rule_view_form" model="ir.ui.view">
<field name="name">im_livechat.channel.rule.form</field>
<field name="model">im_livechat.channel.rule</field>
<field name="arch" type="xml">
<form string="Channel Rule" class="o_livechat_rules_form">
<sheet>
<group>
<field name="action" widget="radio"/>
<label for="chatbot_script_id" string="Chatbot" invisible="action == 'hide_button'"/>
<div invisible="action == 'hide_button'">
<field name="chatbot_script_id" class="oe_inline" style="width: 60% !important;"
options="{'no_create': True, 'no_open': True}"/>
</div>
<label for="chatbot_only_if_no_operator" class="oe_inline" invisible="not chatbot_script_id" string="Enabled only if no operator"/>
<div class="oe_inline" invisible="not chatbot_script_id">
<field name="chatbot_only_if_no_operator"/>
</div>
<field name="regex_url" placeholder="e.g. /contactus"/>
<label for="auto_popup_timer" class="oe_inline" invisible="action != 'auto_popup'"/>
<div class="oe_inline" invisible="action != 'auto_popup'">
<field name="auto_popup_timer" class="oe_inline"/> seconds
</div>
<field name="country_ids" widget="many2many_tags" options="{'no_open': True, 'no_create': True}"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Menu items -->
<menuitem
id="menu_livechat_root"
name="Live Chat"
web_icon="im_livechat,static/description/icon.png"
groups="im_livechat_group_user"
sequence="240"/>
<menuitem
id="support_channels"
name="Channels"
parent="menu_livechat_root"
action="im_livechat_channel_action"
groups="im_livechat_group_user"
sequence="5"/>
<menuitem
id="menu_reporting_livechat"
name="Report"
parent="menu_livechat_root"
sequence="50"
groups="im_livechat_group_manager"/>
<menuitem
id="session_history"
name="Sessions History"
parent="menu_reporting_livechat"
action="discuss_channel_action"
groups="im_livechat_group_user"
sequence="5"/>
<menuitem id="rating_rating_menu_livechat"
name="Customer Ratings"
action="rating_rating_action_livechat_report"
parent="menu_reporting_livechat"
sequence="40"/>
<menuitem
id="livechat_config"
name="Configuration"
parent="menu_livechat_root"
sequence="55"/>
<menuitem
id="canned_responses"
name="Canned Responses"
parent="livechat_config"
action="mail.mail_shortcode_action"
groups="im_livechat_group_user"
sequence="15"/>
<menuitem
id="chatbot_config"
name="Chatbots"
parent="livechat_config"
action="chatbot_script_action"
groups="im_livechat_group_user"
sequence="20"/>
</data>
</odoo>