cirandas.net

ref: master

plugins/delivery/public/javascripts/delivery.js


  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
delivery = {

  order: {
    select: {

      onChange: function(input) {
        var input = jQuery(input)
        var deliverySelect = input.parents('.order-delivery-select')

        var option = input.find('option:selected')
        var typeData = option.attr('data-type')
        var isPickup = typeData == 'pickup'
        var instructionsData = option.attr('data-instructions')
        var labelData = option.attr('data-label')

        var instructions = deliverySelect.find('.instructions')
        instructions.html(instructionsData)
        var consumerData = deliverySelect.find('.consumer-delivery-data')
        if (isPickup) {
          consumerData.slideUp('fast')
        } else {
          consumerData.slideDown('fast')
        }
      },

    },
  },

  option: {
  },

  method: {

    view: {
      edition: function() {
        return jQuery('#delivery-method-edition')
      },
      listing: function() {
        return jQuery('#delivery-method-list')
      },
      toggle: function () {
        jQuery('#delivery-method-list, #delivery-method-edition').fadeToggle();
      },
    },

    changeType: function(select) {
      select = jQuery(select)
    },

    new: function(newUrl) {
      this.edit(newUrl)
    },

    edit: function(editUrl) {
      var listing = this.view.listing()
      var edition = this.view.edition()

      loading_overlay.show(listing)
      jQuery.get(editUrl, function(data) {
        edition.html(data)
        delivery.method.view.toggle();
        loading_overlay.hide(listing)
      });
    },

    save: function(form) {
      var listing = this.view.listing()
      var edition = this.view.edition()

      jQuery(form).ajaxSubmit({
        beforeSubmit: function() {
          loading_overlay.show(edition)
        }, success: function(data) {
          listing.html(data);
          delivery.method.view.toggle();
          loading_overlay.hide(edition)
        },
      })
      return false;
    },

    destroy: function(id, confirmText, destroy_url) {
      if (!confirm(confirmText))
        return
      var method = jQuery('#delivery-method-'+id)
      jQuery.post(destroy_url, function() {
        method.fadeOut(function() {
          method.remove()
        })
      })
    },

  },

  option: {

    add: function(newUrl) {
      $.getScript(newUrl)
    },
  },

};