summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/android/assets/www/js/lib/cart/CartShipping.js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/platforms/android/assets/www/js/lib/cart/CartShipping.js')
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/cart/CartShipping.js136
1 files changed, 136 insertions, 0 deletions
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/cart/CartShipping.js b/StoneIsland/platforms/android/assets/www/js/lib/cart/CartShipping.js
new file mode 100755
index 00000000..f17d42d2
--- /dev/null
+++ b/StoneIsland/platforms/android/assets/www/js/lib/cart/CartShipping.js
@@ -0,0 +1,136 @@
+var CartShipping = FormView.extend({
+
+ el: "#cart_shipping",
+
+ action: sdk.cart.set_shipping_address,
+
+ list_mode: true,
+ data: {},
+
+ template: $("#cart_shipping .template").html(),
+
+ events: {
+ "click .dropdown-wrapper": "toggle_dropdown",
+ },
+
+ initialize: function(opt){
+ this.parent = opt.parent
+ this.$form = this.$("form")
+ this.$dropdown_wrapper = this.$(".dropdown-wrapper")
+ this.$address_list = this.$(".address_list")
+ this.$address_form = this.$(".address")
+ this.$msg = this.$(".msg")
+ this.address = new AddressView ({ parent: this })
+ this.scroller = new IScroll('#cart_shipping', app.iscroll_options)
+ this.address.disabled = true
+ },
+
+ show: function(){
+ document.body.className = "cart"
+ app.cart.el.className = "shipping"
+ app.footer.show("PAYMENT >", "CANCEL")
+ window.location.hash = "#/cart/shipping"
+ this.populate()
+ this.deferScrollToTop()
+ },
+
+ populate: function(){
+ // id checked name address city state zip
+ this.$(".save_as_default").show()
+ this.$address_list.empty()
+ if (! app.account.addresses.length) {
+ this.toggle_dropdown(false)
+ return
+ }
+ app.account.addresses.forEach(function(address){
+ var t = this.template.replace(/{{id}}/g, address.Id)
+ .replace(/{{checked}}/g, address.IsDefault ? "checked" : "")
+ .replace(/{{name}}/g, (address.Name + " " + address.Surname).toUpperCase())
+ .replace(/{{address}}/g, address.Address.replace(/\n$/,"").replace("\n", ", "))
+ .replace(/{{city}}/g, address.City)
+ .replace(/{{state}}/g, address.Province)
+ .replace(/{{zip}}/g, address.ZipCode)
+ this.$address_list.append(t)
+ }.bind(this))
+ },
+
+ load_form: function(cart_data){
+ var data = cart_data.Cart.Receiver
+ var addy = data.StreetWithNumber.split("\n")
+ data.Address1 = addy[0] || ""
+ data.Address2 = addy[1] || ""
+ data.ZipCode = data.PostalCode
+ data.Province = data.Region
+ this.load_data(data)
+
+ this.data = data
+ if (cart_data.Cart.DeliveryMethod && cart_data.Cart.DeliveryMethod.Selected && cart_data.Cart.DeliveryMethod.Type) {
+ $("#standard-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 1)
+ $("#express-shipping").prop("checked", cart_data.Cart.DeliveryMethod.Type == 2)
+ }
+ },
+
+ toggle_dropdown: function(state){
+ if (! app.account.addresses.length) {
+ state = false
+ }
+ this.list_mode = typeof state == "boolean" ? state : ! this.list_mode
+ this.$dropdown_wrapper.toggle( !! app.account.addresses.length )
+ this.address.disabled = this.list_mode
+ this.$address_form.toggle(! this.list_mode)
+ this.$address_list.toggle(this.list_mode)
+ },
+
+ // sdk.cart.set_shipping_address
+ // sdk.shipping.get_delivery_types
+ // sdk.shipping.set_delivery_type
+
+ shipping_types: {
+ Standard: 1,
+ Express: 2,
+ },
+
+ finalize: function(data){
+ var shipping_info = {}, address_data, address_id
+ var shipping_type = $("[name=ShippingType]").filter(function(){ return $(this).prop("checked") }).val()
+
+ sdk.shipping.set_delivery_type({
+ id: this.shipping_types[shipping_type],
+ success: function(data){ console.log("set shipping type", data) },
+ error: function(data){ console.log("didnt set shipping type", data) },
+ })
+
+ if (this.list_mode) {
+ address_id = this.$("[name=AddressId]").filter(function(){ return $(this).prop("checked") }).val()
+ address_data = app.account.addressLookup[ address_id ]
+ }
+ else {
+ address_data = data
+ }
+
+ shipping_info.Name = address_data.Name
+ shipping_info.Surname = address_data.Surname
+ shipping_info.Email = auth.user.Email
+ shipping_info.Phone = address_data.Phone
+ shipping_info.Mobile = address_data.Phone
+ shipping_info.StreetWithNumber = address_data.Address
+ shipping_info.PostalCode = address_data.ZipCode
+ shipping_info.City = address_data.City
+ shipping_info.Province = address_data.Province
+ shipping_info.Region = address_data.Province
+ shipping_info.CountryCode = CANADIAN_LOOKUP[ address_data.Province ] ? "CA" : "US"
+
+ this.data = shipping_info
+
+ return shipping_info
+ },
+
+ success: function(){
+ app.router.go('cart/payment')
+ },
+
+ cancel: function(){
+ app.router.go('cart/summary')
+ },
+
+}) \ No newline at end of file