summaryrefslogtreecommitdiff
path: root/addons/website_sale/static/src/js/website_sale_utils.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_sale/static/src/js/website_sale_utils.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_sale/static/src/js/website_sale_utils.js')
-rw-r--r--addons/website_sale/static/src/js/website_sale_utils.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/addons/website_sale/static/src/js/website_sale_utils.js b/addons/website_sale/static/src/js/website_sale_utils.js
new file mode 100644
index 00000000..52c3e448
--- /dev/null
+++ b/addons/website_sale/static/src/js/website_sale_utils.js
@@ -0,0 +1,59 @@
+odoo.define('website_sale.utils', function (require) {
+'use strict';
+
+function animateClone($cart, $elem, offsetTop, offsetLeft) {
+ $cart.find('.o_animate_blink').addClass('o_red_highlight o_shadow_animation').delay(500).queue(function () {
+ $(this).removeClass("o_shadow_animation").dequeue();
+ }).delay(2000).queue(function () {
+ $(this).removeClass("o_red_highlight").dequeue();
+ });
+ return new Promise(function (resolve, reject) {
+ var $imgtodrag = $elem.find('img').eq(0);
+ if ($imgtodrag.length) {
+ var $imgclone = $imgtodrag.clone()
+ .offset({
+ top: $imgtodrag.offset().top,
+ left: $imgtodrag.offset().left
+ })
+ .addClass('o_website_sale_animate')
+ .appendTo(document.body)
+ .animate({
+ top: $cart.offset().top + offsetTop,
+ left: $cart.offset().left + offsetLeft,
+ width: 75,
+ height: 75,
+ }, 1000, 'easeInOutExpo');
+
+ $imgclone.animate({
+ width: 0,
+ height: 0,
+ }, function () {
+ resolve();
+ $(this).detach();
+ });
+ } else {
+ resolve();
+ }
+ });
+}
+
+/**
+ * Updates both navbar cart
+ * @param {Object} data
+ */
+function updateCartNavBar(data) {
+ var $qtyNavBar = $(".my_cart_quantity");
+ _.each($qtyNavBar, function (qty) {
+ var $qty = $(qty);
+ $qty.parents('li:first').removeClass('d-none');
+ $qty.html(data.cart_quantity).hide().fadeIn(600);
+ });
+ $(".js_cart_lines").first().before(data['website_sale.cart_lines']).end().remove();
+ $(".js_cart_summary").first().before(data['website_sale.short_cart_summary']).end().remove();
+}
+
+return {
+ animateClone: animateClone,
+ updateCartNavBar: updateCartNavBar,
+};
+});