diff --git a/addons/website/views/website_navbar_templates.xml b/addons/website/views/website_navbar_templates.xml
index d06fab82b78..d9c909f52e7 100644
--- a/addons/website/views/website_navbar_templates.xml
+++ b/addons/website/views/website_navbar_templates.xml
@@ -120,26 +120,6 @@
-
-
-
- /jobs/add
-
-
-
-
-
- is_designer
-
-
-
-
diff --git a/addons/website_sale/static/src/js/systray_items/new_content.js b/addons/website_sale/static/src/js/systray_items/new_content.js
index f1985c4d566..f4754321856 100644
--- a/addons/website_sale/static/src/js/systray_items/new_content.js
+++ b/addons/website_sale/static/src/js/systray_items/new_content.js
@@ -2,6 +2,39 @@
import { NewContentModal, MODULE_STATUS } from '@website/systray_items/new_content';
import { patch } from 'web.utils';
+import { WebsiteDialog } from '@website/components/dialog/dialog';
+
+const { xml, useState } = owl;
+
+export class AddProductDialog extends WebsiteDialog {
+ setup() {
+ super.setup();
+
+ this.title = this.env._t("New Product");
+ this.primaryTitle = this.env._t("Create");
+
+ this.state = useState({
+ name: '',
+ });
+ }
+
+ async primaryClick() {
+ await this.props.addProduct(this.state.name);
+ this.close();
+ }
+}
+AddProductDialog.bodyTemplate = xml`
+
+`;
patch(NewContentModal.prototype, 'website_sale_new_content', {
setup() {
@@ -12,5 +45,14 @@ patch(NewContentModal.prototype, 'website_sale_new_content', {
newProductElement.status = MODULE_STATUS.INSTALLED;
},
- createNewProduct() {}
+ createNewProduct() {
+ this.dialogs.add(AddProductDialog, {
+ addProduct: async (name) => {
+ const url = await this.rpc('/shop/add_product', {
+ name,
+ });
+ this.website.goToWebsite({ path: url });
+ },
+ });
+ }
});
diff --git a/addons/website_sale/static/src/js/website_sale.editor.js b/addons/website_sale/static/src/js/website_sale.editor.js
index 5dc1e6af504..4a367e8c5d8 100644
--- a/addons/website_sale/static/src/js/website_sale.editor.js
+++ b/addons/website_sale/static/src/js/website_sale.editor.js
@@ -1,52 +1,3 @@
-odoo.define('website_sale.add_product', function (require) {
-'use strict';
-
-var core = require('web.core');
-var wUtils = require('website.utils');
-var WebsiteNewMenu = require('website.newMenu');
-
-var _t = core._t;
-
-WebsiteNewMenu.include({
- actions: _.extend({}, WebsiteNewMenu.prototype.actions || {}, {
- new_product: '_createNewProduct',
- }),
-
- //--------------------------------------------------------------------------
- // Actions
- //--------------------------------------------------------------------------
-
- /**
- * Asks the user information about a new product to create, then creates it
- * and redirects the user to this new product.
- *
- * @private
- * @returns {Promise} Unresolved if there is a redirection
- */
- _createNewProduct: function () {
- var self = this;
- return wUtils.prompt({
- id: "editor_new_product",
- window_title: _t("New Product"),
- input: _t("Product Name"),
- }).then(function (result) {
- if (!result.val) {
- return;
- }
- return self._rpc({
- route: '/shop/add_product',
- params: {
- name: result.val,
- },
- }).then(function (url) {
- window.location.href = url;
- return new Promise(function () {});
- });
- });
- },
-});
-});
-
odoo.define('website_sale.editMenu', function (require) {
'use strict';
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 57c1d43a7ca..5c61a1516a7 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -1985,17 +1985,6 @@
-
-
-
-
-
-
- env.user.has_group('sales_team.group_sale_manager')
-
-
-
-