diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index 4781a639b66..45120030da3 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -821,6 +821,7 @@ if (!val || !$e[0].checkValidity()) { // FIXME: error message $e.closest('.form-group').addClass('has-error'); + $e.focus(); return; } diff --git a/addons/website/static/src/js/website.menu.js b/addons/website/static/src/js/website.menu.js index e39fc96a336..a8d27b3538d 100644 --- a/addons/website/static/src/js/website.menu.js +++ b/addons/website/static/src/js/website.menu.js @@ -143,8 +143,24 @@ if (self.data) { self.bind_data(self.data.name, self.data.url, self.data.new_window); } + var $link_text = self.$('#link-text').focus(); + self.$('#link-existing').change(function () { + if (!$link_text.val()) { + $link_text.val($(this).find('option:selected').text()); + $link_text.focus(); + } + }); }); }, + save: function () { + var $e = this.$('#link-text'); + if (!$e.val() || !$e[0].checkValidity()) { + $e.closest('.form-group').addClass('has-error'); + $e.focus(); + return; + } + return this._super.apply(this, arguments); + }, make_link: function (url, new_window, label) { var menu_label = this.$('input#link-text').val() || label; if (this.data) { diff --git a/addons/website/static/src/xml/website.menu.xml b/addons/website/static/src/xml/website.menu.xml index ce111693957..883cf02231f 100644 --- a/addons/website/static/src/xml/website.menu.xml +++ b/addons/website/static/src/xml/website.menu.xml @@ -51,7 +51,7 @@ + id="link-text" required="required"/>