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 @@

Forum

- -
- - -

Job Offer

-
-
- -
- - - 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 @@ - - -