You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.3 KiB
40 lines
1.3 KiB
/** @odoo-module **/
|
|
|
|
var core = require('web.core');
|
|
var rpc = require('web.rpc');
|
|
var publicWidget = require('web.public.widget');
|
|
require('website_sale.website_sale');
|
|
|
|
var QuickViewModal = publicWidget.Widget.extend({
|
|
selector: '.oe_website_sale',
|
|
events: {'click a.c-product-quick-view-action': '_onQuickViewClick',},
|
|
init(params) {
|
|
this._super(... arguments);
|
|
},
|
|
show_modal(template) {
|
|
var $modal = $(template).appendTo($(this.selector));
|
|
$modal.modal('show');
|
|
core.bus.trigger('DOM_updated');
|
|
// get the DOM element from the jQuery object
|
|
// attach an event listener to remove the modal from the DOM when it is hidden
|
|
$modal.get(0).addEventListener('hidden.bs.modal', function (event) {
|
|
$modal.remove();
|
|
}, {once: true});
|
|
},
|
|
async _onQuickViewClick(ev) {
|
|
ev.preventDefault();
|
|
var product_id = $(ev.currentTarget).data('product-id');
|
|
var self = this;
|
|
try {
|
|
var result = await rpc.query({
|
|
route: '/c_quick_view/get_quick_view_html',
|
|
params: {product_id: product_id},
|
|
});
|
|
self.show_modal(result);
|
|
} catch (err) {
|
|
reject(err);
|
|
}
|
|
},
|
|
});
|
|
publicWidget.registry.quick_view_modal = QuickViewModal;
|
|
return QuickViewModal;
|
|
|