app/assets/javascripts/spree/backend/checkouts/edit.js in spree_backend-4.2.7 vs app/assets/javascripts/spree/backend/checkouts/edit.js in spree_backend-4.3.0.rc1
- old
+ new
@@ -26,17 +26,19 @@
$('#order_' + kind + '_address_attributes_address2').val(address.address2)
$('#order_' + kind + '_address_attributes_city').val(address.city)
$('#order_' + kind + '_address_attributes_zipcode').val(address.zipcode)
$('#order_' + kind + '_address_attributes_phone').val(address.phone)
$('#order_' + kind + '_address_attributes_phone').val(address.phone)
- $('#order_' + kind + '_address_attributes_country_id').val(address.country_id)
+ $('#order_' + kind + '_address_attributes_country_id').val(address.country.id)
$('#order_' + kind + '_address_attributes_country_id').trigger('change')
var stateSelect = $('#order_' + kind + '_address_attributes_state_id')
- update_state(kind.charAt(0), function() {
- stateSelect.val(address.state_id).trigger('change')
+ updateAddressState(kind.charAt(0), function() {
+ if (address.state) {
+ stateSelect.val(address.state.id).trigger('change')
+ }
})
}
function formatCustomerSelection(customer) {
$('#order_email').val(customer.email)
@@ -62,30 +64,37 @@
return customer.email
}
$.fn.customerAutocomplete = function() {
+ var jsonApiUsers = {}
+
this.select2({
minimumInputLength: 3,
placeholder: Spree.translations.choose_a_customer,
ajax: {
- url: Spree.routes.users_api,
+ url: Spree.routes.users_api_v2,
datatype: 'json',
+ headers: Spree.apiV2Authentication(),
data: function (params) {
return {
- q: {
+ filter: {
'm': 'or',
- email_start: params.term,
- ship_address_firstname_start: params.term,
- ship_address_lastname_start: params.term,
- bill_address_firstname_start: params.term,
- bill_address_lastname_start: params.term
+ email_i_cont: params.term,
+ addresses_firstname_start: params.term,
+ addresses_lastname_start: params.term
},
- token: Spree.api_key
+ include: 'ship_address.country,ship_address.state,bill_address.country,bill_address.state'
}
},
- processResults: function (data) {
- return { results: data.users }
+ success: function(data) {
+ var JSONAPIDeserializer = require('jsonapi-serializer').Deserializer
+ new JSONAPIDeserializer({ keyForAttribute: 'snake_case' }).deserialize(data, function (_err, users) {
+ jsonApiUsers = users
+ })
+ },
+ processResults: function (_data) {
+ return { results: jsonApiUsers } // we need to return deserialized json api data
}
},
templateResult: formatCustomerResult
}).on('select2:select', function (e) {
var data = e.params.data;