From 550d7145e7759f97f3f4d101c27f3b55d03efd4f Mon Sep 17 00:00:00 2001
From: Siddarth Gajjar <sga@odoo.com>
Date: Tue, 9 Feb 2021 11:22:37 +0000
Subject: [PATCH] [FIX] website: prevent error on edit mode save for restricted
 editor

- Before this commit, When user with restricted rights
tries to edit frontend page and without changing anything click
on save button generate traceback due to invalid return type.

- After this commit, On hitting save button on restrict mode resolve
the traceback by changing function return type to promise.

task-2379101

closes odoo/odoo#66357

Signed-off-by: Romain Derie (rde) <rde@odoo.com>
---
 addons/website/static/src/js/editor/editor_menu.js       | 4 +++-
 addons/website/static/src/js/editor/wysiwyg_multizone.js | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/addons/website/static/src/js/editor/editor_menu.js b/addons/website/static/src/js/editor/editor_menu.js
index e330df970016..cd0ef26b3c50 100644
--- a/addons/website/static/src/js/editor/editor_menu.js
+++ b/addons/website/static/src/js/editor/editor_menu.js
@@ -123,7 +123,9 @@ var EditorMenu = Widget.extend({
         return this.wysiwyg.save(false).then(function (result) {
             var $wrapwrap = $('#wrapwrap');
             self.editable($wrapwrap).removeClass('o_editable');
-            if (result.isDirty && reload !== false) {
+            if (!result.isDirty) {
+                self.cancel(reload);
+            } else if (result.isDirty && reload !== false) {
                 // remove top padding because the connected bar is not visible
                 $('body').removeClass('o_connected_user');
                 return self._reload();
diff --git a/addons/website/static/src/js/editor/wysiwyg_multizone.js b/addons/website/static/src/js/editor/wysiwyg_multizone.js
index 596d40db72da..1873890d0731 100644
--- a/addons/website/static/src/js/editor/wysiwyg_multizone.js
+++ b/addons/website/static/src/js/editor/wysiwyg_multizone.js
@@ -111,7 +111,7 @@ var WysiwygMultizone = Wysiwyg.extend({
                 .then(() => this.editor.save(false))
                 .then(() => ({isDirty: true}));
         } else {
-            return {isDirty: false};
+            return Promise.resolve({isDirty: false});
         }
     },
     /**
-- 
GitLab