[FIX] web: remove ­ when saving phone number

When Odoo display a phone number number, on phone or if VOIP is
installed a invisible `­` character was added from 9.0 up to
saas-11.2 so an applications such as skype would not be concerned with
the number.

But if someone copy-pasted from this to somewhere else in Odoo, we would
get incorrect number with this invisible caracter. So this change make a
special case for the "FieldPhone" so the character is removed from data
saved.

opw-1834858
closes #24223
This commit is contained in:
Nicolas Lempereur
2018-04-13 15:35:33 +02:00
parent 52cd52e624
commit b8b0f947bf
2 changed files with 25 additions and 1 deletions
@@ -1013,6 +1013,21 @@ var FieldPhone = FieldEmail.extend({
this.$el.removeClass('o_text_overflow');
},
/**
* Remove possibly present ­ characters when saving number
*
* @override
* @private
*/
_setValue: function (value, options) {
// NOT NEEDED AS OF SAAS-11.3
if (value) {
// remove possibly pasted ­ characters
value = value.replace(/\u00AD/g, '');
}
return this._super(value, options);
},
/**
* Phone fields are clickable in readonly on small screens ~= on phones.
* This can be overriden by call-capable modules to display a clickable
@@ -3042,7 +3042,7 @@ QUnit.module('basic_fields', {
QUnit.module('PhoneWidget');
QUnit.test('phone field in form view on extra small screens', function (assert) {
assert.expect(7);
assert.expect(8);
var form = createView({
View: FormView,
@@ -3090,6 +3090,15 @@ QUnit.module('basic_fields', {
assert.strictEqual($phoneLink.attr('href'), 'tel:new',
"should still have proper tel prefix");
// NOT NEEDED AS OF SAAS-11.3
// save phone with ­ and verify it is removed
form.$buttons.find('.o_form_button_edit').click();
form.$('input[type="text"].o_field_widget').val('h\u00ADi').trigger('input');
form.$buttons.find('.o_form_button_save').click();
$phoneLink = form.$('a.o_form_uri.o_field_widget');
assert.strictEqual($phoneLink.attr('href'), 'tel:hi',
"U+00AD should have been removed");
form.destroy();
});