summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/lib/cart/CartPayment.js
blob: 62dfe32dd30d8d5868d71ae9260edfac895016ad (plain)
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
104
var CartPayment = FormView.extend({
  
  el: "#cart_payment",
  
  address_template: $("#cart_payment .address_template").html(),
  cc_template: $("#cart_payment .cc_template").html(),
  
  action: sdk.cart.set_credit_card,
  
  address_list_mode: false,
  cc_list_mode: false,
  
  events: {
    "change [name=same_as_shipping]": "toggle_shipping",
    "click .address_dropdown": "toggle_address",
    "click .cc_dropdown": "toggle_cc",
  },

  initialize: function(opt){
    this.parent = opt.parent
    this.$form = this.$("form")
    this.$msg = this.$(".msg")
    this.$address_list = this.$(".address_list")
    this.$address_form = this.$(".address")
    this.$cc_list = this.$(".cc_list")
    this.$cc_form = this.$(".cc")

    this.address = new AddressView ({ parent: this, checkPhone: false })
    this.cc = new CreditCardView ({ parent: this })
    this.scroller = new IScroll('#cart_payment', app.iscroll_options)
    this.address.disabled = true
    this.cc.disabled = true
  },

  // sdk.cart.set_credit_card
  // sdk.payment.list_credit_cards
  // sdk.payment.add_credit_card
  // sdk.payment.delete_credit_card
  // sdk.payment.get_payment_types
  // sdk.cart.use_stored_credit_card

  show: function(){
    document.body.className = "cart"
    app.cart.el.className = "payment"
    app.footer.show("CONFIRM >", "CANCEL")
    window.location.hash = "#/cart/payment"

    this.populate()
    this.deferScrollToTop()
  },

  toggle_address: function(state){
    if (! app.account.ccs.length) {
      state = false
    }
    this.address_list_mode = typeof state == "boolean" ? state : ! this.list_mode
    this.address.disabled = this.address_list_mode
    this.$address_form.toggle(! this.address_list_mode)
    this.$address_list.toggle(this.address_list_mode)
  },

  toggle_cc: function(state){
    if (! app.account.ccs.length) {
      state = false
    }
    this.cc_list_mode = typeof state == "boolean" ? state : ! this.cc_list_mode
    this.cc.disabled = this.cc_list_mode
    this.$cc_form.toggle(! this.cc_list_mode)
    this.$cc_list.toggle(this.cc_list_mode)
  },

  populate: function(){
    app.account.ccs.forEach(function(cc){
      console.log(cc)

      var address_t = this.address_template.replace(/{{id}}/g, cc.Id)
                           .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "")
                           .replace(/{{name}}/g, cc.Name + " " + cc.Surname)
                           .replace(/{{address}}/g, cc.Address.replace(/\n$/,"").replace("\n", "<br>"))
                           .replace(/{{city}}/g, cc.City)
                           .replace(/{{state}}/g, cc.Province)
                           .replace(/{{zip}}/g, cc.ZipCode)

      var cc_t = this.cc_template.replace(/{{id}}/g, cc.Id)
                           .replace(/{{checked}}/g, cc.IsDefault ? "checked" : "")
                           .replace(/{{last4}}/g, cc.Last4)
                           .replace(/{{type}}/g, cc.Type)
                           .replace(/{{exp}}/g, cc.ExpirationMonth + "/" + cc.ExpirationYear)

      this.$address_list.append(address_t)
      this.$cc_list.append(cc_t)
    })
  },
  
  success: function(){
    app.router.go('cart/confirm')
  },
  
  cancel: function(){
    app.router.go('cart/shipping')
  },


})