diff options
| author | Nicolas Lempereur <nle@odoo.com> | 2020-03-26 10:30:55 +0000 |
|---|---|---|
| committer | Nicolas Lempereur <nle@odoo.com> | 2020-03-30 13:50:04 +0000 |
| commit | b53cf339e4e3728672ad2a8d505878274f4294c4 (patch) | |
| tree | cc7bd4146c4a5f01be2a83ed5ab779c9cab393f3 | |
| parent | 8ccdbea9a7559316d9ea5fa040868d00305d0b79 (diff) | |
[FIX] web,*: phone number ltr even in rtl language
Currently there is two ways in view to have a phone number displayed in
LTR in a RTL language:
- have `widget="phone"` on a field
- have a class o_force_ltr on the field
But this is currently done very rarely and fail in list view because the
direction of data cells is used, eg.:
```
<div style="direction:rtl">
<table><tr><td style="direction:ltr">
<span>+1 2 3</span>
</td></tr><tr><td>
<span style="direction:ltr">+4 5 6</span>
</td>/tr></table>
</div>
```
will be displayed as:
+1 2 3
6 5 4+
In this commit, we use unicode-bidi* to optionally add an additional
level of embedding so direction is taken into account by the
bidirectional algorithm.
This commit also adds o_force_ltr class or phone widget on phone fields
where it is not already defined.
*: https://drafts.csswg.org/css-writing-modes-3/#propdef-unicode-bidi
opw-2224828
closes #48425
closes odoo/odoo#48588
X-original-commit: ab067218e069f0a92610c3f0d4137e563e47755c
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
| -rw-r--r-- | addons/crm/views/crm_lead_views.xml | 4 | ||||
| -rw-r--r-- | addons/crm/wizard/crm_merge_opportunities_views.xml | 2 | ||||
| -rw-r--r-- | addons/event/views/event_views.xml | 4 | ||||
| -rw-r--r-- | addons/event_sale/wizard/event_edit_registration.xml | 4 | ||||
| -rw-r--r-- | addons/hr/views/hr_employee_public_views.xml | 4 | ||||
| -rw-r--r-- | addons/hr/views/hr_employee_views.xml | 10 | ||||
| -rw-r--r-- | addons/hr/views/res_users.xml | 4 | ||||
| -rw-r--r-- | addons/hr_recruitment/views/hr_recruitment_views.xml | 2 | ||||
| -rw-r--r-- | addons/lunch/views/lunch_supplier_views.xml | 4 | ||||
| -rw-r--r-- | addons/mass_mailing_sms/views/mailing_contact_views.xml | 4 | ||||
| -rw-r--r-- | addons/web/static/src/scss/ui.scss | 1 | ||||
| -rw-r--r-- | addons/website/views/website_visitor_views.xml | 2 | ||||
| -rw-r--r-- | addons/website_event_track/views/event_track_views.xml | 2 | ||||
| -rw-r--r-- | addons/website_sms/views/website_visitor_views.xml | 2 | ||||
| -rw-r--r-- | odoo/addons/base/views/res_bank_views.xml | 2 | ||||
| -rw-r--r-- | odoo/addons/base/views/res_company_views.xml | 6 | ||||
| -rw-r--r-- | odoo/addons/base/views/res_partner_views.xml | 2 |
17 files changed, 30 insertions, 29 deletions
diff --git a/addons/crm/views/crm_lead_views.xml b/addons/crm/views/crm_lead_views.xml index 7664bbe958f..b7d86291efb 100644 --- a/addons/crm/views/crm_lead_views.xml +++ b/addons/crm/views/crm_lead_views.xml @@ -324,7 +324,7 @@ <field name="contact_name" optional="hide"/> <field name="partner_name" optional="hide"/> <field name="email_from" optional="show"/> - <field name="phone" optional="show"/> + <field name="phone" optional="show" class="o_force_ltr"/> <field name="city" optional="show"/> <field name="state_id" optional="hide"/> <field name="country_id" optional="show"/> @@ -602,7 +602,7 @@ <field name="name" string="Opportunity"/> <field name="partner_id" string="Customer" optional="show"/> <field name="email_from" optional="show"/> - <field name="phone" optional="show"/> + <field name="phone" class="o_force_ltr" optional="show"/> <field name="city" optional="show"/> <field name="state_id" optional="hide"/> <field name="country_id" optional="show"/> diff --git a/addons/crm/wizard/crm_merge_opportunities_views.xml b/addons/crm/wizard/crm_merge_opportunities_views.xml index 2eabe079cb9..175cf2583cc 100644 --- a/addons/crm/wizard/crm_merge_opportunities_views.xml +++ b/addons/crm/wizard/crm_merge_opportunities_views.xml @@ -18,7 +18,7 @@ <field name="type"/> <field name="contact_name"/> <field name="email_from"/> - <field name="phone"/> + <field name="phone" class="o_force_ltr"/> <field name="stage_id"/> <field name="user_id"/> <field name="team_id"/> diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml index 7637cded0d5..bfb1815c8ff 100644 --- a/addons/event/views/event_views.xml +++ b/addons/event/views/event_views.xml @@ -553,8 +553,8 @@ <field name="partner_id" attrs="{'readonly':[('state', '!=', 'draft')]}"/> <field name="name"/> <field name="email"/> - <field name="phone"/> - <field name="mobile"/> + <field name="phone" class="o_force_ltr"/> + <field name="mobile" class="o_force_ltr"/> </group> <group string="Event Information" name="event"> <field name="event_id" attrs="{'readonly': [('state', '!=', 'draft')]}" options="{'no_create': True}"/> diff --git a/addons/event_sale/wizard/event_edit_registration.xml b/addons/event_sale/wizard/event_edit_registration.xml index 4630417a1c0..d897db8cca5 100644 --- a/addons/event_sale/wizard/event_edit_registration.xml +++ b/addons/event_sale/wizard/event_edit_registration.xml @@ -15,8 +15,8 @@ <field name="event_ticket_id" domain="[('event_id', '=', event_id)]" readonly='1' force_save="1"/> <field name="name"/> <field name="email"/> - <field name="mobile"/> - <field name="phone"/> + <field name="mobile" class="o_force_ltr"/> + <field name="phone" class="o_force_ltr"/> </tree> </field> <footer> diff --git a/addons/hr/views/hr_employee_public_views.xml b/addons/hr/views/hr_employee_public_views.xml index 3a99679579f..b0d2b1b84ca 100644 --- a/addons/hr/views/hr_employee_public_views.xml +++ b/addons/hr/views/hr_employee_public_views.xml @@ -92,7 +92,7 @@ <field name="arch" type="xml"> <tree string="Employees"> <field name="name"/> - <field name="work_phone"/> + <field name="work_phone" class="o_force_ltr"/> <field name="work_email"/> <field name="company_id" groups="base.group_multi_company"/> <field name="department_id"/> @@ -137,7 +137,7 @@ <ul> <li id="last_login"/> <li t-if="record.work_email.raw_value"><field name="work_email" /></li> - <li t-if="record.work_phone.raw_value"><field name="work_phone" /></li> + <li t-if="record.work_phone.raw_value" class="o_force_ltr"><field name="work_phone" /></li> </ul> </div> </div> diff --git a/addons/hr/views/hr_employee_views.xml b/addons/hr/views/hr_employee_views.xml index 599f3e98525..e834a8d233d 100644 --- a/addons/hr/views/hr_employee_views.xml +++ b/addons/hr/views/hr_employee_views.xml @@ -131,7 +131,7 @@ 'form_view_ref': 'base.res_partner_view_form_private'}" options='{"always_reload": True, "highlight_first_line": True}'/> <field name="private_email" string="Email"/> - <field name="phone" groups="hr.group_hr_user" string="Phone"/> + <field name="phone" class="o_force_ltr" groups="hr.group_hr_user" string="Phone"/> <field name="bank_account_id" context="{'default_partner_id': address_home_id}"/> <field name="km_home_work" groups="hr.group_hr_user"/> </group> @@ -154,7 +154,7 @@ </group> <group string="Emergency"> <field name="emergency_contact"/> - <field name="emergency_phone"/> + <field name="emergency_phone" class="o_force_ltr"/> </group> <group string="Work Permit" name="work_permit"> <field name="visa_no"/> @@ -203,7 +203,7 @@ <field name="arch" type="xml"> <tree string="Employees" multi_edit="1"> <field name="name" readonly="1"/> - <field name="work_phone" readonly="1"/> + <field name="work_phone" class="o_force_ltr" readonly="1"/> <field name="work_email"/> <field name="company_id" groups="base.group_multi_company" readonly="1"/> <field name="department_id"/> @@ -250,7 +250,7 @@ <ul> <li id="last_login"/> <li t-if="record.work_email.raw_value" class="o_text_overflow"><field name="work_email" /></li> - <li t-if="record.work_phone.raw_value"><field name="work_phone" /></li> + <li t-if="record.work_phone.raw_value" class="o_force_ltr"><field name="work_phone" /></li> </ul> </div> </div> @@ -323,7 +323,7 @@ <field name="arch" type="xml"> <tree string="Employees"> <field name="name"/> - <field name="work_phone"/> + <field name="work_phone" class="o_force_ltr"/> <field name="work_email"/> <field name="company_id" groups="base.group_multi_company"/> <field name="department_id"/> diff --git a/addons/hr/views/res_users.xml b/addons/hr/views/res_users.xml index 2caff4a2b82..22992df0244 100644 --- a/addons/hr/views/res_users.xml +++ b/addons/hr/views/res_users.xml @@ -133,7 +133,7 @@ options='{"always_reload": True, "highlight_first_line": True}' attrs="{'readonly': [('can_edit', '=', False)]}"/> <field name="private_email" string="Email" attrs="{'readonly': [('can_edit', '=', False)]}"/> - <field name="employee_phone" string="Phone" attrs="{'readonly': [('can_edit', '=', False)]}" options="{'enable_sms': false}"/> + <field name="employee_phone" string="Phone" class="o_force_ltr" attrs="{'readonly': [('can_edit', '=', False)]}" options="{'enable_sms': false}"/> <field name="employee_bank_account_id" attrs="{'readonly': [('can_edit', '=', False)]}"/> <field name="km_home_work" attrs="{'readonly': [('can_edit', '=', False)]}"/> </group> @@ -161,7 +161,7 @@ </group> <group string="Emergency"> <field name="emergency_contact" attrs="{'readonly': [('can_edit', '=', False)]}"/> - <field name="emergency_phone" attrs="{'readonly': [('can_edit', '=', False)]}" options="{'enable_sms': false}"/> + <field name="emergency_phone" widget="phone" attrs="{'readonly': [('can_edit', '=', False)]}" options="{'enable_sms': false}"/> </group> <group string="Work Permit" name="work_permit"> <field name="visa_no" attrs="{'readonly': [('can_edit', '=', False)]}"/> diff --git a/addons/hr_recruitment/views/hr_recruitment_views.xml b/addons/hr_recruitment/views/hr_recruitment_views.xml index c2c6680f809..e41aa6921b3 100644 --- a/addons/hr_recruitment/views/hr_recruitment_views.xml +++ b/addons/hr_recruitment/views/hr_recruitment_views.xml @@ -306,7 +306,7 @@ </div> </div> <field name="categ_ids" widget="many2many_tags" options="{'color_field': 'color'}"/> - <t t-if="record.partner_mobile.raw_value"><i class="fa fa-mobile mr4" role="img" aria-label="Mobile" title="Mobile"/><field name="partner_mobile" widget ="phone"/><br/></t> + <t t-if="record.partner_mobile.raw_value"><i class="fa fa-mobile mr4" role="img" aria-label="Mobile" title="Mobile"/><field name="partner_mobile" widget="phone"/><br/></t> <div class="o_kanban_record_bottom mt4"> <div class="oe_kanban_bottom_left"> <div class="float-left mr4" groups="base.group_user"> diff --git a/addons/lunch/views/lunch_supplier_views.xml b/addons/lunch/views/lunch_supplier_views.xml index b383edd1e65..7868b61a003 100644 --- a/addons/lunch/views/lunch_supplier_views.xml +++ b/addons/lunch/views/lunch_supplier_views.xml @@ -6,7 +6,7 @@ <field name="arch" type="xml"> <tree> <field name="name"/> - <field name="phone"/> + <field name="phone" class="o_force_ltr"/> <field name="email"/> </tree> </field> @@ -39,7 +39,7 @@ <group> <field name="active" invisible="1"/> <field name="email" attrs="{'required': [('send_by', '=', 'mail')]}"/> - <field name="phone" attrs="{'required': [('send_by', '=', 'phone')]}"/> + <field name="phone" class="o_force_ltr" attrs="{'required': [('send_by', '=', 'phone')]}"/> <field name="company_id" groups="base.group_multi_company"/> <field name="responsible_id" attrs="{'required': [('send_by', '=', 'mail')]}" groups="base.group_no_one" domain="[('share', '=', False)]"/> </group> diff --git a/addons/mass_mailing_sms/views/mailing_contact_views.xml b/addons/mass_mailing_sms/views/mailing_contact_views.xml index f861ed15d81..070b73af30f 100644 --- a/addons/mass_mailing_sms/views/mailing_contact_views.xml +++ b/addons/mass_mailing_sms/views/mailing_contact_views.xml @@ -30,7 +30,7 @@ <field name="priority">20</field> <field name="arch" type="xml"> <xpath expr="//field[@name='is_blacklisted']" position="after"> - <field name="mobile"/> + <field name="mobile" class="o_force_ltr"/> <field name="phone_sanitized" invisible="1"/> <field name="phone_sanitized_blacklisted"/> </xpath> @@ -63,7 +63,7 @@ <field name="inherit_id" ref="mass_mailing.mailing_contact_view_kanban"/> <field name="arch" type="xml"> <xpath expr="//field[@name='email']" position="after"> - <field name="mobile"/> + <field name="mobile" widget="phone"/> <field name="phone_sanitized" invisible="1"/> </xpath> <xpath expr="//t[@t-esc='record.email.value']" position="after"> diff --git a/addons/web/static/src/scss/ui.scss b/addons/web/static/src/scss/ui.scss index d94fd07ed73..0a318c57d13 100644 --- a/addons/web/static/src/scss/ui.scss +++ b/addons/web/static/src/scss/ui.scss @@ -92,6 +92,7 @@ span.o_force_ltr { display: inline-block; } .o_force_ltr, .o_field_phone { + unicode-bidi: embed; // ensure element has level of embedding for direction /*rtl:ignore*/ direction: ltr; } diff --git a/addons/website/views/website_visitor_views.xml b/addons/website/views/website_visitor_views.xml index 1932520ddd0..d28ca503ddc 100644 --- a/addons/website/views/website_visitor_views.xml +++ b/addons/website/views/website_visitor_views.xml @@ -206,7 +206,7 @@ <field name="is_connected" invisible="1"/> <field name="partner_id"/> <field name="email"/> - <field name="mobile"/> + <field name="mobile" class="o_force_ltr"/> <field name="country_id" attrs="{'invisible': [('country_id', '=', False)]}"/> <field name="lang_id"/> </group> diff --git a/addons/website_event_track/views/event_track_views.xml b/addons/website_event_track/views/event_track_views.xml index 758f119f02f..ea3ff7b7046 100644 --- a/addons/website_event_track/views/event_track_views.xml +++ b/addons/website_event_track/views/event_track_views.xml @@ -151,7 +151,7 @@ <field name="partner_id" domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"/> <field name="partner_name"/> <field name="partner_email"/> - <field name="partner_phone"/> + <field name="partner_phone" class="o_force_ltr"/> <field name="partner_biography"/> </group> </page> diff --git a/addons/website_sms/views/website_visitor_views.xml b/addons/website_sms/views/website_visitor_views.xml index 8375bf578ad..3a7d43c9b63 100644 --- a/addons/website_sms/views/website_visitor_views.xml +++ b/addons/website_sms/views/website_visitor_views.xml @@ -18,7 +18,7 @@ <field name="inherit_id" ref="website.website_visitor_view_kanban"/> <field name="arch" type="xml"> <field name="page_ids" position="after"> - <field name="mobile"/> + <field name="mobile" widget="phone"/> </field> <xpath expr="//div[hasclass('w_visitor_kanban_actions')]" position="inside"> <button name="action_send_sms" type="object" class="btn btn-secondary" diff --git a/odoo/addons/base/views/res_bank_views.xml b/odoo/addons/base/views/res_bank_views.xml index 58afa52c206..ed7dd1fe6fa 100644 --- a/odoo/addons/base/views/res_bank_views.xml +++ b/odoo/addons/base/views/res_bank_views.xml @@ -26,7 +26,7 @@ </div> </group> <group name="communication_details"> - <field name="phone"/> + <field name="phone" class="o_force_ltr"/> <field name="email" widget="email"/> <field name="active" invisible="1"/> </group> diff --git a/odoo/addons/base/views/res_company_views.xml b/odoo/addons/base/views/res_company_views.xml index 3e144a25eb8..0a9e3aef4de 100644 --- a/odoo/addons/base/views/res_company_views.xml +++ b/odoo/addons/base/views/res_company_views.xml @@ -28,7 +28,7 @@ <field name="zip" placeholder="ZIP" class="o_address_zip"/> <field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True}'/> </div> - <field name="phone"/> + <field name="phone" class="o_force_ltr"/> <field name="email"/> <field name="website" string="Website" widget="url" placeholder="e.g. https://www.odoo.com"/> </group> @@ -84,7 +84,7 @@ <div t-if="record.email.value" class="col-6 text-center"> <field name="email"/> </div> - <div t-if="record.phone.value" class="col-6 text-center"> + <div t-if="record.phone.value" class="col-6 text-center o_force_ltr"> <field name="phone"/> </div> </div> @@ -93,7 +93,7 @@ <strong>Email:</strong> <field name="email"/> </div> - <div t-if="record.phone.value"> + <div t-if="record.phone.value" class="o_force_ltr"> <strong>Phone:</strong> <field name="phone"/> </div> diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml index 94ffaa2731d..1dffed473ac 100644 --- a/odoo/addons/base/views/res_partner_views.xml +++ b/odoo/addons/base/views/res_partner_views.xml @@ -46,7 +46,7 @@ <tree string="Contacts"> <field name="display_name" string="Name"/> <field name="function" invisible="1"/> - <field name="phone" optional="show"/> + <field name="phone" class="o_force_ltr" optional="show"/> <field name="email" optional="show"/> <field name="company_id" groups="base.group_multi_company"/> <field name="city" optional="hide"/> |
