From 00167965747bbc3acd5590c9392358face25b389 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 22 Jun 2022 19:25:09 +0000 Subject: [PATCH] rm website_sale --- __manifest__.py | 1 - static/src/js/website_sale.js | 828 ---------------------------------- views/website_sale.xml | 85 ---- 3 files changed, 914 deletions(-) delete mode 100644 static/src/js/website_sale.js delete mode 100644 views/website_sale.xml diff --git a/__manifest__.py b/__manifest__.py index b2ba3eb..f87e3fa 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -39,7 +39,6 @@ 'views/bank_deposit.xml', 'views/accounting_deposit.xml', 'views/payment_batch.xml', - 'views/website_sale.xml', 'views/aggregate.xml', 'views/duplicate.xml', 'views/template_rf.xml', diff --git a/static/src/js/website_sale.js b/static/src/js/website_sale.js deleted file mode 100644 index 85c6149..0000000 --- a/static/src/js/website_sale.js +++ /dev/null @@ -1,828 +0,0 @@ -odoo.define('website_sale.cart', function (require) { -'use strict'; - -var publicWidget = require('web.public.widget'); -var core = require('web.core'); -var _t = core._t; - -var timeout; - -publicWidget.registry.websiteSaleCartLink = publicWidget.Widget.extend({ - selector: '#top_menu a[href$="/shop/cart"]', - events: { - 'mouseenter': '_onMouseEnter', - 'mouseleave': '_onMouseLeave', - 'click': '_onClick', - }, - - /** - * @constructor - */ - init: function () { - this._super.apply(this, arguments); - this._popoverRPC = null; - }, - /** - * @override - */ - start: function () { - this.$el.popover({ - trigger: 'manual', - animation: true, - html: true, - title: function () { - return _t("My Cart"); - }, - container: 'body', - placement: 'auto', - template: '' - }); - return this._super.apply(this, arguments); - }, - - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - - /** - * @private - * @param {Event} ev - */ - _onMouseEnter: function (ev) { - var self = this; - clearTimeout(timeout); - $(this.selector).not(ev.currentTarget).popover('hide'); - timeout = setTimeout(function () { - if (!self.$el.is(':hover') || $('.mycart-popover:visible').length) { - return; - } - self._popoverRPC = $.get("/shop/cart", { - type: 'popover', - }).then(function (data) { - self.$el.data("bs.popover").config.content = data; - self.$el.popover("show"); - $('.popover').on('mouseleave', function () { - self.$el.trigger('mouseleave'); - }); - }); - }, 300); - }, - /** - * @private - * @param {Event} ev - */ - _onMouseLeave: function (ev) { - var self = this; - setTimeout(function () { - if ($('.popover:hover').length) { - return; - } - if (!self.$el.is(':hover')) { - self.$el.popover('hide'); - } - }, 1000); - }, - /** - * @private - * @param {Event} ev - */ - _onClick: function (ev) { - // When clicking on the cart link, prevent any popover to show up (by - // clearing the related setTimeout) and, if a popover rpc is ongoing, - // wait for it to be completed before going to the link's href. Indeed, - // going to that page may perform the same computation the popover rpc - // is already doing. - clearTimeout(timeout); - if (this._popoverRPC && this._popoverRPC.state() === 'pending') { - ev.preventDefault(); - var href = ev.currentTarget.href; - this._popoverRPC.then(function () { - window.location.href = href; - }); - } - }, -}); -}); - -odoo.define('website_sale.website_sale_category', function (require) { -'use strict'; - -var publicWidget = require('web.public.widget'); - -publicWidget.registry.websiteSaleCategory = publicWidget.Widget.extend({ - selector: '#o_shop_collapse_category', - events: { - 'click .fa-chevron-right': '_onOpenClick', - 'click .fa-chevron-down': '_onCloseClick', - }, - - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - - /** - * @private - * @param {Event} ev - */ - _onOpenClick: function (ev) { - var $fa = $(ev.currentTarget); - $fa.parent().siblings().find('.fa-chevron-down:first').click(); - $fa.parents('li').find('ul:first').show('normal'); - $fa.toggleClass('fa-chevron-down fa-chevron-right'); - }, - /** - * @private - * @param {Event} ev - */ - _onCloseClick: function (ev) { - var $fa = $(ev.currentTarget); - $fa.parent().find('ul:first').hide('normal'); - $fa.toggleClass('fa-chevron-down fa-chevron-right'); - }, -}); -}); - -odoo.define('website_sale.website_sale', function (require) { -'use strict'; - -var core = require('web.core'); -var config = require('web.config'); -var publicWidget = require('web.public.widget'); -var VariantMixin = require('sale.VariantMixin'); -var wSaleUtils = require('website_sale.utils'); -const wUtils = require('website.utils'); -require("web.zoomodoo"); - - -publicWidget.registry.WebsiteSale = publicWidget.Widget.extend(VariantMixin, { - selector: '.oe_website_sale', - events: _.extend({}, VariantMixin.events || {}, { - 'change form .js_product:first input[name="add_qty"]': '_onChangeAddQuantity', - 'mouseup .js_publish': '_onMouseupPublish', - 'touchend .js_publish': '_onMouseupPublish', - 'change .oe_cart input.js_quantity[data-product-id]': '_onChangeCartQuantity', - 'click .oe_cart a.js_add_suggested_products': '_onClickSuggestedProduct', - 'click a.js_add_cart_json': '_onClickAddCartJSON', - 'click .a-submit': '_onClickSubmit', - 'change form.js_attributes input, form.js_attributes select': '_onChangeAttribute', - 'mouseup form.js_add_cart_json label': '_onMouseupAddCartLabel', - 'touchend form.js_add_cart_json label': '_onMouseupAddCartLabel', - 'click .show_coupon': '_onClickShowCoupon', - 'submit .o_wsale_products_searchbar_form': '_onSubmitSaleSearch', - 'change select[name="country_id"]': '_onChangeCountry', - 'change #shipping_use_same': '_onChangeShippingUseSame', - 'click .toggle_summary': '_onToggleSummary', - 'click #add_to_cart, #buy_now, #products_grid .o_wsale_product_btn .a-submit': 'async _onClickAdd', - 'click input.js_product_change': 'onChangeVariant', - 'change .js_main_product [data-attribute_exclusions]': 'onChangeVariant', - 'change oe_optional_products_modal [data-attribute_exclusions]': 'onChangeVariant', - }), - - /** - * @constructor - */ - init: function () { - this._super.apply(this, arguments); - - this._changeCartQuantity = _.debounce(this._changeCartQuantity.bind(this), 500); - this._changeCountry = _.debounce(this._changeCountry.bind(this), 500); - - this.isWebsite = true; - - delete this.events['change .main_product:not(.in_cart) input.js_quantity']; - delete this.events['change [data-attribute_exclusions]']; - }, - /** - * @override - */ - start() { - const def = this._super(...arguments); - - this._applyHashFromSearch(); - - _.each(this.$('div.js_product'), function (product) { - $('input.js_product_change', product).first().trigger('change'); - }); - - // This has to be triggered to compute the "out of stock" feature and the hash variant changes - this.triggerVariantChange(this.$el); - - this.$('select[name="country_id"]').change(); - - core.bus.on('resize', this, function () { - if (config.device.size_class === config.device.SIZES.XL) { - $('.toggle_summary_div').addClass('d-none d-xl-block'); - } - }); - - this._startZoom(); - - window.addEventListener('hashchange', () => { - this._applyHash(); - this.triggerVariantChange(this.$el); - }); - - return def; - }, - /** - * The selector is different when using list view of variants. - * - * @override - */ - getSelectedVariantValues: function ($container) { - var combination = $container.find('input.js_product_change:checked') - .data('combination'); - - if (combination) { - return combination; - } - return VariantMixin.getSelectedVariantValues.apply(this, arguments); - }, - - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- - - _applyHash: function () { - var hash = window.location.hash.substring(1); - if (hash) { - var params = $.deparam(hash); - if (params['attr']) { - var attributeIds = params['attr'].split(','); - var $inputs = this.$('input.js_variant_change, select.js_variant_change option'); - _.each(attributeIds, function (id) { - var $toSelect = $inputs.filter('[data-value_id="' + id + '"]'); - if ($toSelect.is('input[type="radio"]')) { - $toSelect.prop('checked', true); - } else if ($toSelect.is('option')) { - $toSelect.prop('selected', true); - } - }); - this._changeColorAttribute(); - } - } - }, - - /** - * Sets the url hash from the selected product options. - * - * @private - */ - _setUrlHash: function ($parent) { - var $attributes = $parent.find('input.js_variant_change:checked, select.js_variant_change option:selected'); - var attributeIds = _.map($attributes, function (elem) { - return $(elem).data('value_id'); - }); - history.replaceState(undefined, undefined, '#attr=' + attributeIds.join(',')); - }, - /** - * Set the checked color active. - * - * @private - */ - _changeColorAttribute: function () { - $('.css_attribute_color').removeClass("active") - .filter(':has(input:checked)') - .addClass("active"); - }, - /** - * @private - */ - _changeCartQuantity: function ($input, value, $dom_optional, line_id, productIDs) { - _.each($dom_optional, function (elem) { - $(elem).find('.js_quantity').text(value); - productIDs.push($(elem).find('span[data-product-id]').data('product-id')); - }); - $input.data('update_change', true); - - this._rpc({ - route: "/shop/cart/update_json", - params: { - line_id: line_id, - product_id: parseInt($input.data('product-id'), 10), - set_qty: value - }, - }).then(function (data) { - $input.data('update_change', false); - var check_value = parseInt($input.val() || 0, 10); - if (isNaN(check_value)) { - check_value = 1; - } - if (value !== check_value) { - $input.trigger('change'); - return; - } - if (!data.cart_quantity) { - return window.location = '/shop/cart'; - } - wSaleUtils.updateCartNavBar(data); - $input.val(data.quantity); - $('.js_quantity[data-line-id='+line_id+']').val(data.quantity).html(data.quantity); - - if (data.warning) { - var cart_alert = $('.oe_cart').parent().find('#data_warning'); - if (cart_alert.length === 0) { - $('.oe_cart').prepend(''); - } - else { - cart_alert.html(' ' + data.warning); - } - $input.val(data.quantity); - } - }); - }, - /** - * @private - */ - _changeCountry: function () { - if (!$("#country_id").val()) { - return; - } - this._rpc({ - route: "/shop/country_infos/" + $("#country_id").val(), - params: { - mode: $("#country_id").attr('mode'), - }, - }).then(function (data) { - // placeholder phone_code - $("input[name='phone']").attr('placeholder', data.phone_code !== 0 ? '+'+ data.phone_code : ''); - - // populate states and display - var selectStates = $("select[name='state_id']"); - // dont reload state at first loading (done in qweb) - if (selectStates.data('init')===0 || selectStates.find('option').length===1) { - if (data.states.length || data.state_required) { - selectStates.html(''); - _.each(data.states, function (x) { - var opt = $('