summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorDhruv Patel <dhp@odoo.com>2019-12-17 09:31:20 +0000
committerAaron Bohy <aab@odoo.com>2020-01-30 14:03:36 +0000
commitd5d2c5524c0890e0d89ff2029995bb4bed941421 (patch)
tree5685b8acfe40901d5353b435382e6a17352d165e /addons/web/static/src/js
parenteec0b80756557ecd543a50f25b8f63f94e23de7c (diff)
[FIX] base,web: url widget: add protocol in href
With this commit, the url widget automatically prefixes the href url by http:// if no protocol is specified, so that clicking on the url will by default redirect to an external website. To prevent this behavior, one can still specify the new option 'website_path: true' on the url field node in the view arch. Thanks to this, we can remove a similar logic (only implemented on res_partner model) which automatically altered the value saved in database to force its 'http://' prefix. task-2153184 closes odoo/odoo#42118 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js8
1 files changed, 7 insertions, 1 deletions
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index 0d1fc77737f..996e759a70a 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -1528,6 +1528,7 @@ var UrlWidget = InputField.extend({
init: function () {
this._super.apply(this, arguments);
this.tagName = this.mode === 'readonly' ? 'a' : 'input';
+ this.websitePath = this.nodeOptions.website_path || false;
},
//--------------------------------------------------------------------------
@@ -1555,10 +1556,15 @@ var UrlWidget = InputField.extend({
* @private
*/
_renderReadonly: function () {
+ let href = this.value;
+ if (this.value && !this.websitePath) {
+ const regex = /^(?:[fF]|[hH][tT])[tT][pP][sS]?:\/\//;
+ href = !regex.test(this.value) ? `http://${href}` : href;
+ }
this.$el.text(this.attrs.text || this.value)
.addClass('o_form_uri o_text_overflow')
.attr('target', '_blank')
- .attr('href', this.value);
+ .attr('href', href);
},
//--------------------------------------------------------------------------