Sha256: ce182c8bd0c99a38a2e4e747087777284a18404e711bfd13d4e200898ad612d9

Contents?: true

Size: 1.99 KB

Versions: 7

Compression:

Stored size: 1.99 KB

Contents

function SpreeDeliveryOptions() {

  var that = this;

  this.initializeDatePicker = function() {
     $('#order_delivery_date').datepicker({
       dateFormat: "dd/mm/yy",
       minDate: 1 
     });
  };

  this.initializeDeliveryTimeSelect = function() {
    this.update_delivery_time_options();

    $('#order_delivery_date').change(function(event){
      that.update_delivery_time_options();
    });
  };

  this.update_delivery_time_options = function() {
    deliveryTimeOptions = $.parseJSON($('.delivery-time-options').attr("data"));

    if (deliveryTimeOptions){
      weekdays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
      
      var dayOptions = [];
      var deliveryDate = $('#order_delivery_date').val();

      if (deliveryTimeOptions[deliveryDate]) {
        dayOptions = deliveryTimeOptions[deliveryDate];
      } else {
        var dateParts = deliveryDate.split('/')
        var dayIndex = new Date(dateParts[2], dateParts[1]-1, dateParts[0]).getDay();
        weekday = weekdays[dayIndex];

        dayOptions = deliveryTimeOptions[weekday];
      }
      this.populate_delivery_time(dayOptions);
    }
  };

  this.populate_delivery_time = function(options) {
    if (options) {
      var selected_delivery_time = $('.selected-delivery-time').attr("data");
      var arLen = options.length;
      var newList = "";
      for ( var i=0, len=arLen; i<len; ++i ){
        if (options[i] == selected_delivery_time) {
          newList = newList + '<option selected=true value="' + options[i] + '">' + options[i]+'</option>';
        } else {
          newList = newList + "<option value='" + options[i] + "'>" + options[i]+'</option>';
        }
      }
      $('#order_delivery_time').html(newList);
    } else {
      $('#order_delivery_time').html("<option>Not available</option>");
    }
  };

}

$(document).ready(function() {
  var deliveryOptions = new SpreeDeliveryOptions();
  deliveryOptions.initializeDatePicker();
  deliveryOptions.initializeDeliveryTimeSelect();
});

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spree_delivery_options-2.2.7 app/assets/javascripts/spree/frontend/delivery_time_options.js
spree_delivery_options-2.2.6 app/assets/javascripts/spree/frontend/delivery_time_options.js
spree_delivery_options-2.2.5 app/assets/javascripts/spree/frontend/delivery_time_options.js
spree_delivery_options-2.2.4 app/assets/javascripts/spree/frontend/delivery_time_options.js
spree_delivery_options-2.2.3 app/assets/javascripts/store/delivery_time_options.js
spree_delivery_options-2.2.2 app/assets/javascripts/store/delivery_time_options.js
spree_delivery_options-2.2.1 app/assets/javascripts/store/delivery_time_options.js