Sha256: f6b67ef418e85aea848b68bddec0c715cab0722c3b9af2789bfb568a0bf631b7

Contents?: true

Size: 1.45 KB

Versions: 2

Compression:

Stored size: 1.45 KB

Contents

// Placeholder manifest file.
// the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/frontend/all.js'
Spree.ready(function($) {
  Spree.updateKitPrice = function() {
    var selectedVariant = $("input[name='variant_id']:checked")[0]
    var hiddenVariantField = $("input[name='variant_id']")[0]

    if (!(selectedVariant || hiddenVariantField)) { return }

    var variantPrice = (selectedVariant || hiddenVariantField).dataset.price
    var selectedKitItemPrices = Array.prototype.slice.call(
      $("select.kit_variant_input")
      ).map((element) => {
      return element.options[element.selectedIndex].dataset.price;
    })
    var unselectableKitItemPrices = Array.prototype.slice.call(
      $("input.kit_variant_input")
      ).map((element) => {
      return element.dataset.price;
    })

    var sum = [variantPrice].
      concat(selectedKitItemPrices).
      concat(unselectableKitItemPrices).
      filter((price) => price).
      map((p) => p.replace(/[€$,]+/g, "")).
      map(Number).
      filter((price) => !isNaN(price)).
      reduce((a, b) => a + b, 0)
    if (variantPrice) {
      var formatter = new Intl.NumberFormat('en-US', {
        style: 'currency',
        currency: 'EUR',
      });

      $(".price.selling").text(formatter.format(sum));
    }
  };

  $("select.kit_variant_input, input[name='variant_id'").change(function(event) {
    Spree.updateKitPrice();
  });
  Spree.updateKitPrice();
});

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
solidus_configurable_kits-0.1.1 app/assets/javascripts/spree/frontend/solidus_configurable_kits.js
solidus_configurable_kits-0.1.0 app/assets/javascripts/spree/frontend/solidus_configurable_kits.js