Before Commit: When users wants to send an SMS to someone with help of the phone widget, the composer is opened, and users expect to be able to write the message right away. The issue is that the default focus is on the phone number, so if users start writing, it will corrupt the phone nubmber, and they have to discard the changes and have to click the body to finally start typing SMS content. After Commit: When the composer is opened, if the phone number is valid, 'body' field is focused automatically so that users can start typing right away. If number is not valid, the focus will still be on the phone number. This is managed by providing 'default_focus' attibute on the body field, which appears or is hidden as needed. For the mass mode also, we simply focus on the body field to enable user to start writing content right away. closes odoo/odoo#65443 Task-id: 2394488 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
80 lines
5.2 KiB
XML
80 lines
5.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<record id="sms_composer_view_form" model="ir.ui.view">
|
|
<field name="name">sms.composer.view.form</field>
|
|
<field name="model">sms.composer</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Send an SMS">
|
|
<sheet>
|
|
<group>
|
|
<field name="composition_mode" invisible="1"/>
|
|
<field name="comment_single_recipient" invisible="1"/>
|
|
<field name="res_id" invisible="1"/>
|
|
<field name="res_ids" invisible="1"/>
|
|
<field name="active_domain" invisible="1"/>
|
|
<field name="res_model" invisible="1"/>
|
|
<field name="mass_force_send" invisible="1"/>
|
|
<field name="recipient_single_valid" invisible="1"/>
|
|
<field name="recipient_single_number" invisible="1"/>
|
|
<field name="number_field_name" invisible="1"/>
|
|
<field name="numbers" invisible="1"/>
|
|
<field name="sanitized_numbers" invisible="1"/>
|
|
|
|
<!-- Single mode information (invalid number) -->
|
|
<div colspan="2" class="alert alert-danger text-center mb-3" role="alert"
|
|
attrs="{'invisible': ['|', ('comment_single_recipient', '=', False), ('recipient_single_valid', '=', True)]}">
|
|
<p class="my-0">Invalid phone number</p>
|
|
</div>
|
|
|
|
<!-- Mass mode information (res_ids versus active domain) -->
|
|
<div colspan="2" class="alert alert-info text-center mb-3" role="alert"
|
|
attrs="{'invisible': [('comment_single_recipient', '=', True)]}">
|
|
<p class="my-0">
|
|
<span attrs="{'invisible': [('use_active_domain', '=', 'True')]}">
|
|
<field class="oe_inline font-weight-bold" name="res_ids_count"/> records selected.
|
|
</span>
|
|
Check <field class="oe_inline ml-2" name="use_active_domain"/> to send to all
|
|
<field class="oe_inline font-weight-bold ml-2" name="active_domain_count"/> records instead. <br/>
|
|
<field class="oe_inline font-weight-bold" name="recipient_valid_count"/> recipients are valid
|
|
and <field class="oe_inline font-weight-bold" name="recipient_invalid_count"/> are invalid.
|
|
</p>
|
|
</div>
|
|
|
|
<label for="recipient_single_description" string="Recipient"
|
|
class="font-weight-bold"
|
|
attrs="{'invisible': [('comment_single_recipient', '=', False)]}"/>
|
|
<div attrs="{'invisible': [('comment_single_recipient', '=', False)]}">
|
|
<field name="recipient_single_description" class="oe_inline"/>
|
|
<field name="recipient_single_number_itf" class="oe_inline" nolabel="1" options="{'onchange_on_keydown': True}" placeholder="e.g. +1 415 555 0100"/>
|
|
</div>
|
|
|
|
<field name="body" widget="sms_widget" attrs="{'invisible': ['|', ('comment_single_recipient', '=', False), ('recipient_single_valid', '=', True)]}"/>
|
|
<field name="body" widget="sms_widget" attrs="{'invisible': [('comment_single_recipient', '=', True), ('recipient_single_valid', '=', False)]}" default_focus="1"/>
|
|
<field name="mass_keep_log" invisible="1"/>
|
|
</group>
|
|
</sheet>
|
|
<footer>
|
|
<!-- attrs doesn't work for 'disabled'-->
|
|
<button string="Send SMS" type="object" class="oe_highlight" name="action_send_sms"
|
|
attrs="{'invisible': ['|',('composition_mode', 'not in', ('comment', 'numbers')),('recipient_single_valid', '=', False)]}"/>
|
|
<button string="Send SMS" type="object" class="oe_highlight" name="action_send_sms"
|
|
attrs="{'invisible': ['|',('composition_mode', 'not in', ('comment', 'numbers')),('recipient_single_valid', '=', True)]}" disabled='1'/>
|
|
<button string="Put in queue" type="object" class="oe_highlight" name="action_send_sms"
|
|
attrs="{'invisible': [('composition_mode', '!=', 'mass')]}"/>
|
|
<button string="Send Now" type="object" name="action_send_sms_mass_now"
|
|
attrs="{'invisible': [('composition_mode', '!=', 'mass')]}"/>
|
|
<button string="Close" class="btn btn-secondary" special="cancel"/>
|
|
</footer>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="sms_composer_action_form" model="ir.actions.act_window">
|
|
<field name="name">Send SMS Text Message</field>
|
|
<field name="res_model">sms.composer</field>
|
|
<field name="view_mode">form</field>
|
|
<field name="target">new</field>
|
|
</record>
|
|
|
|
</odoo>
|