summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/widgets/widgets.js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-02-21 20:19:26 +0100
committerChristophe Simonis <chs@odoo.com>2018-02-21 20:19:26 +0100
commitae6a65753e57fd2e31f2fb9a0675fdc7266ad38c (patch)
treea16174284684978612798d19fab2e05ac492aef1 /addons/web_editor/static/src/js/widgets/widgets.js
parent90e8da9b4f792919c14c7de1d8596bf2056f58b2 (diff)
parentdbb713c2f836892de516e8d5e313a5dab8919a56 (diff)
[MERGE] forward port branch 11.0 up to dbb713c2f83
Diffstat (limited to 'addons/web_editor/static/src/js/widgets/widgets.js')
-rw-r--r--addons/web_editor/static/src/js/widgets/widgets.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/addons/web_editor/static/src/js/widgets/widgets.js b/addons/web_editor/static/src/js/widgets/widgets.js
index 8d7b4224b76..a7046eb11e8 100644
--- a/addons/web_editor/static/src/js/widgets/widgets.js
+++ b/addons/web_editor/static/src/js/widgets/widgets.js
@@ -4,6 +4,7 @@ odoo.define('web_editor.widget', function (require) {
var core = require('web.core');
var Dialog = require('web.Dialog');
var Widget = require('web.Widget');
+var utils = require('web.utils');
var weContext = require("web_editor.context");
var QWeb = core.qweb;
@@ -1208,6 +1209,7 @@ var LinkDialog = Dialog.extend({
if (!$e.length) {
$e = this.$('input.url-source:first');
}
+ $e.closest('.form-group').removeClass('has-error');
var val = $e.val();
var label = this.$('#o_link_dialog_label_input').val() || val;
@@ -1228,8 +1230,7 @@ var LinkDialog = Dialog.extend({
var size = this.$("select.link-style").val() || '';
var classes = (this.data.className || "") + (style && style.length ? " btn " : "") + style + " " + size;
var isNewWindow = this.$('input.window-new').prop('checked');
-
- if ($e.hasClass('email-address') && $e.val().indexOf("@") !== -1) {
+ if ($e.hasClass('email-address') && (_.str.startsWith(val, 'mailto:') || (val.indexOf("@") !== -1 && !_.str.startsWith(val, 'http') && !_.str.startsWith(val, 'www')))) {
self.get_data_buy_mail(def, $e, isNewWindow, label, classes, test);
} else {
self.get_data_buy_url(def, $e, isNewWindow, label, classes, test);
@@ -1238,7 +1239,13 @@ var LinkDialog = Dialog.extend({
},
get_data_buy_mail: function (def, $e, isNewWindow, label, classes, test) {
var val = $e.val();
- def.resolve(val.indexOf("mailto:") === 0 ? val : 'mailto:' + val, isNewWindow, label, classes);
+ if (utils.is_email(val, true)) {
+ def.resolve(val.indexOf("mailto:") === 0 ? val : 'mailto:' + val, isNewWindow, label, classes);
+ } else {
+ $e.closest('.form-group').addClass('has-error');
+ $e.focus();
+ def.reject();
+ }
},
get_data_buy_url: function (def, $e, isNewWindow, label, classes, test) {
def.resolve($e.val(), isNewWindow, label, classes);
@@ -1322,5 +1329,9 @@ return {
getCssSelectors: getCssSelectors,
fontIcons: fontIcons,
computeFonts: computeFonts,
+ click_event: click_event,
+ fontIconsDialog: fontIconsDialog,
+ ImageDialog: ImageDialog,
+ VideoDialog: VideoDialog,
};
});