salix/modules/client/front/address/index/index.js

69 lines
1.7 KiB
JavaScript
Raw Normal View History

2018-05-23 12:26:51 +00:00
import ngModule from '../../module';
2018-05-23 12:26:51 +00:00
class Controller {
2018-07-16 06:00:04 +00:00
constructor($http, $scope, $stateParams) {
2017-09-28 12:34:18 +00:00
this.$http = $http;
this.$scope = $scope;
2018-07-16 06:00:04 +00:00
this.$stateParams = $stateParams;
this.filter = {
include: {
observations: 'observationType'
},
order: ['isActive DESC', 'nickname ASC']
2018-07-16 06:00:04 +00:00
};
2017-09-28 12:34:18 +00:00
}
2018-07-16 06:00:04 +00:00
get client() {
return this._client;
}
set client(value) {
this._client = value;
this.sortAddresses();
}
get addresses() {
return this._addresses;
}
set addresses(value) {
this._addresses = value;
this.sortAddresses();
}
2018-02-08 08:04:29 +00:00
setDefault(address) {
let query = `/client/api/Clients/${this.$stateParams.id}`;
let params = {defaultAddressFk: address.id};
this.$http.patch(query, params).then(res => {
if (res.data) {
this.client.defaultAddressFk = res.data.defaultAddressFk;
this.sortAddresses();
}
});
}
isDefaultAddress(address) {
if (!this.client) return;
return this.client.defaultAddressFk === address.id;
}
/**
* Sort address by default address
*/
sortAddresses() {
if (!this.client || !this.addresses) return;
this.$scope.model.data = this.addresses.sort((a, b) => {
return this.isDefaultAddress(b) - this.isDefaultAddress(a);
});
2017-09-28 12:34:18 +00:00
}
}
2018-07-16 06:00:04 +00:00
Controller.$inject = ['$http', '$scope', '$stateParams'];
2017-09-28 12:34:18 +00:00
2018-05-23 12:26:51 +00:00
ngModule.component('vnClientAddressIndex', {
template: require('./index.html'),
controller: Controller,
bindings: {
client: '<'
}
2017-06-03 11:01:47 +00:00
});