#593 Refactor card/descriptor/descriptor-popover
This commit is contained in:
parent
d66383dced
commit
e90af6b851
|
@ -1,12 +1,7 @@
|
|||
<vn-main-block>
|
||||
<mg-ajax
|
||||
path="/client/api/Clients/{{edit.params.id}}/card"
|
||||
actions="$ctrl.client = edit.model"
|
||||
options="mgEdit">
|
||||
</mg-ajax>
|
||||
<vn-horizontal>
|
||||
<vn-auto class="left-block">
|
||||
<vn-client-descriptor client="$ctrl.client" clientFk="$ctrl.client.id"></vn-client-descriptor>
|
||||
<vn-client-descriptor client="$ctrl.client"></vn-client-descriptor>
|
||||
<vn-left-menu></vn-left-menu>
|
||||
</vn-auto>
|
||||
<vn-one>
|
||||
|
|
|
@ -1,16 +1,28 @@
|
|||
import ngModule from '../module';
|
||||
|
||||
export default class Controller {
|
||||
constructor($scope) {
|
||||
constructor($scope, $stateParams, $http) {
|
||||
this.$scope = $scope;
|
||||
this.$http = $http;
|
||||
this.$stateParams = $stateParams;
|
||||
this.client = null;
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
this.getCard();
|
||||
}
|
||||
|
||||
getCard() {
|
||||
this.$http.get(`/client/api/Clients/${this.$stateParams.id}/getCard`).then(response => {
|
||||
this.client = response.data;
|
||||
});
|
||||
}
|
||||
|
||||
reload() {
|
||||
this.$scope.edit.accept();
|
||||
this.getCard();
|
||||
}
|
||||
}
|
||||
Controller.$inject = ['$scope'];
|
||||
Controller.$inject = ['$scope', '$stateParams', '$http'];
|
||||
|
||||
ngModule.component('vnClientCard', {
|
||||
template: require('./index.html'),
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<vn-popover vn-id="popover">
|
||||
<vn-client-descriptor
|
||||
client="$ctrl.client"
|
||||
clientFk="$ctrl.clientFk"
|
||||
quicklinks="$ctrl.quicklinks">
|
||||
</vn-client-descriptor>
|
||||
</vn-popover>
|
||||
|
|
|
@ -14,8 +14,7 @@ class Controller extends Component {
|
|||
|
||||
set clientFk(value) {
|
||||
if (value) {
|
||||
this._getClient(value);
|
||||
this._getClientDebt(value);
|
||||
this.getCard(value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,15 +31,8 @@ class Controller extends Component {
|
|||
this.clientFk = null;
|
||||
}
|
||||
|
||||
_getClientDebt(clientFk) {
|
||||
this.$http.get(`/client/api/Clients/${clientFk}/getDebt`)
|
||||
.then(response => {
|
||||
this.clientDebt = response.data.debt;
|
||||
});
|
||||
}
|
||||
|
||||
_getClient(clientFk) {
|
||||
this.$http.get(`/client/api/Clients/${clientFk}/card`)
|
||||
getCard(clientFk) {
|
||||
this.$http.get(`/client/api/Clients/${clientFk}/getCard`)
|
||||
.then(response => {
|
||||
this.client = response.data;
|
||||
});
|
||||
|
@ -64,7 +56,6 @@ ngModule.component('vnClientDescriptorPopover', {
|
|||
template: require('./index.html'),
|
||||
controller: Controller,
|
||||
bindings: {
|
||||
client: '<',
|
||||
clientFk: '<',
|
||||
quicklinks: '<'
|
||||
}
|
||||
|
|
|
@ -21,25 +21,13 @@ describe('Client', () => {
|
|||
controller = $componentController('vnClientDescriptorPopover', {$scope: $scope, $element: $element});
|
||||
}));
|
||||
|
||||
describe('_getClientDebt()', () => {
|
||||
it(`should perform a get query to store the client debt into the controller`, () => {
|
||||
let clientFk = 1;
|
||||
$httpBackend.when('GET', `/client/api/Clients/${clientFk}/getDebt`).respond({debt: 100});
|
||||
$httpBackend.expect('GET', `/client/api/Clients/${clientFk}/getDebt`);
|
||||
controller._getClientDebt(clientFk);
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.clientDebt).toEqual(100);
|
||||
});
|
||||
});
|
||||
|
||||
describe('_getClient()', () => {
|
||||
describe('getCard()', () => {
|
||||
it(`should perform a get query to store the client data into the controller`, () => {
|
||||
let clientFk = 1;
|
||||
let response = {id: 1, name: 'name'};
|
||||
$httpBackend.when('GET', `/client/api/Clients/${clientFk}/card`).respond(response);
|
||||
$httpBackend.expect('GET', `/client/api/Clients/${clientFk}/card`);
|
||||
controller._getClient(clientFk);
|
||||
let response = {id: 1, name: 'name', debt: 1000};
|
||||
$httpBackend.when('GET', `/client/api/Clients/${clientFk}/getCard`).respond(response);
|
||||
$httpBackend.expect('GET', `/client/api/Clients/${clientFk}/getCard`);
|
||||
controller.getCard(clientFk);
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.client).toEqual(response);
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<vn-icon
|
||||
vn-tooltip="Client has debt"
|
||||
icon="icon-risk"
|
||||
ng-class="{bright: $ctrl.clientDebt > 0}">
|
||||
ng-class="{bright: $ctrl.client.debt > 0}">
|
||||
</vn-icon>
|
||||
<vn-icon
|
||||
vn-tooltip="Client not checked"
|
||||
|
|
|
@ -9,8 +9,7 @@ class Controller {
|
|||
set clientFk(value) {
|
||||
if (!value) return;
|
||||
|
||||
this._getClient(value);
|
||||
this._getClientDebt(value);
|
||||
this.getCard(value);
|
||||
}
|
||||
|
||||
set client(value) {
|
||||
|
@ -39,15 +38,8 @@ class Controller {
|
|||
return this._quicklinks;
|
||||
}
|
||||
|
||||
_getClientDebt(clientFk) {
|
||||
this.$http.get(`/client/api/Clients/${clientFk}/getDebt`)
|
||||
.then(response => {
|
||||
this.clientDebt = response.data.debt;
|
||||
});
|
||||
}
|
||||
|
||||
_getClient(clientFk) {
|
||||
this.$http.get(`/client/api/Clients/${clientFk}/card`)
|
||||
getCard(clientFk) {
|
||||
this.$http.get(`/client/api/Clients/${clientFk}/getCard`)
|
||||
.then(response => {
|
||||
Object.assign(this.client, response.data);
|
||||
});
|
||||
|
|
|
@ -17,29 +17,17 @@ describe('Descriptor', () => {
|
|||
controller = $componentController('vnClientDescriptor');
|
||||
}));
|
||||
|
||||
describe('_getClientDebt()', () => {
|
||||
it(`should call _getClientDebt() and define the clientDebt value on the controller`, () => {
|
||||
describe('getCard()', () => {
|
||||
it(`should perform a query and store the client into the controller`, () => {
|
||||
controller.client = {};
|
||||
let response = {debt: 100};
|
||||
$httpBackend.whenGET(`/client/api/Clients/101/getDebt`).respond(response);
|
||||
$httpBackend.expectGET(`/client/api/Clients/101/getDebt`);
|
||||
controller._getClientDebt(101);
|
||||
let clientFk = 101;
|
||||
let response = {id: 101, name: 'Batman', debt: 100};
|
||||
$httpBackend.when('GET', `/client/api/Clients/${clientFk}/getCard`).respond(response);
|
||||
$httpBackend.expect('GET', `/client/api/Clients/${clientFk}/getCard`);
|
||||
controller.getCard(clientFk);
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.clientDebt).toEqual(100);
|
||||
});
|
||||
});
|
||||
|
||||
describe('_getClient()', () => {
|
||||
it(`should call _getClient() and define the client value on the controller`, () => {
|
||||
controller.client = {};
|
||||
let response = {id: 101, name: 'Batman'};
|
||||
$httpBackend.whenGET(`/client/api/Clients/101/card`).respond(response);
|
||||
$httpBackend.expectGET(`/client/api/Clients/101/card`);
|
||||
controller._getClient(101);
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.client.name).toEqual('Batman');
|
||||
expect(controller.client).toEqual(response);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,24 +1,29 @@
|
|||
import ngModule from '../module';
|
||||
|
||||
class Controller {
|
||||
constructor($http, $state) {
|
||||
constructor($http, $stateParams) {
|
||||
this.$http = $http;
|
||||
this.$state = $state;
|
||||
this.$stateParams = $stateParams;
|
||||
this.item = null;
|
||||
}
|
||||
|
||||
_getCard() {
|
||||
this.$http.get(`/item/api/Items/${this.$state.params.id}/getCard`).then(response => {
|
||||
$onInit() {
|
||||
this.getCard();
|
||||
}
|
||||
|
||||
getCard() {
|
||||
this.$http.get(`/item/api/Items/${this.$stateParams.id}/getCard`).then(response => {
|
||||
this.item = response.data;
|
||||
});
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
this._getCard();
|
||||
reload() {
|
||||
this.getCard();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Controller.$inject = ['$http', '$state'];
|
||||
Controller.$inject = ['$http', '$stateParams'];
|
||||
|
||||
ngModule.component('vnItemCard', {
|
||||
template: require('./index.html'),
|
||||
|
|
|
@ -4,30 +4,32 @@ describe('Item', () => {
|
|||
describe('Component vnItemCard', () => {
|
||||
let $componentController;
|
||||
let $httpBackend;
|
||||
let $state;
|
||||
let $stateParams;
|
||||
let controller;
|
||||
|
||||
beforeEach(() => {
|
||||
angular.mock.module('item');
|
||||
});
|
||||
|
||||
beforeEach(angular.mock.inject((_$componentController_, _$state_, _$httpBackend_) => {
|
||||
beforeEach(angular.mock.inject((_$componentController_, _$stateParams_, _$httpBackend_) => {
|
||||
$componentController = _$componentController_;
|
||||
$httpBackend = _$httpBackend_;
|
||||
$httpBackend.when('GET', /\/locale\/\w+\/[a-z]{2}\.json/).respond({});
|
||||
$state = {
|
||||
params: {
|
||||
id: 123
|
||||
}
|
||||
$stateParams = {
|
||||
id: 123
|
||||
};
|
||||
controller = $componentController('vnItemCard', {$state: $state});
|
||||
controller = $componentController('vnItemCard', {$stateParams});
|
||||
}));
|
||||
|
||||
describe('_getCard()', () => {
|
||||
it('should request to get the card', () => {
|
||||
$httpBackend.expectGET('/item/api/Items/123/getCard').respond();
|
||||
controller._getCard();
|
||||
describe('getCard()', () => {
|
||||
it('should request to set the item into the controller', () => {
|
||||
let response = {id: 123};
|
||||
$httpBackend.when('GET', `/item/api/Items/123/getCard`).respond(response);
|
||||
$httpBackend.expect('GET', `/item/api/Items/123/getCard`);
|
||||
controller.getCard();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.item).toEqual(response);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -15,7 +15,7 @@ class Controller extends Component {
|
|||
this._itemFk = id;
|
||||
|
||||
if (id) {
|
||||
this._getItem();
|
||||
this.getCard();
|
||||
} else
|
||||
this.clear();
|
||||
}
|
||||
|
@ -38,7 +38,8 @@ class Controller extends Component {
|
|||
this.$.popover.parent = this.parent;
|
||||
this.$.popover.show();
|
||||
}
|
||||
_getItem() {
|
||||
|
||||
getCard() {
|
||||
this.$http.get(`/item/api/Items/${this._itemFk}/getCard`).then(response => {
|
||||
this.item = response.data;
|
||||
});
|
||||
|
|
|
@ -25,11 +25,11 @@ describe('Item', () => {
|
|||
}));
|
||||
|
||||
describe('itemFk setter', () => {
|
||||
it(`shoud set _itemFk to a given value and call _getItem if the given value is not null`, () => {
|
||||
spyOn(controller, '_getItem');
|
||||
it(`should set _itemFk to a given value and call getCard if the given value is not null`, () => {
|
||||
spyOn(controller, 'getCard');
|
||||
controller.itemFk = 5;
|
||||
|
||||
expect(controller._getItem).toHaveBeenCalledWith();
|
||||
expect(controller.getCard).toHaveBeenCalledWith();
|
||||
expect(controller._itemFk).toEqual(5);
|
||||
});
|
||||
|
||||
|
@ -74,11 +74,11 @@ describe('Item', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('_getItem()', () => {
|
||||
describe('getCard()', () => {
|
||||
it(`should make a query and set this.item`, () => {
|
||||
$httpBackend.whenGET(`/item/api/Items/1/getCard`).respond(true);
|
||||
$httpBackend.expectGET(`/item/api/Items/1/getCard`);
|
||||
controller._getItem();
|
||||
controller.getCard();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.item).toEqual(true);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module.exports = function(Self) {
|
||||
Self.remoteMethod('card', {
|
||||
description: 'Get client basic data',
|
||||
Self.remoteMethod('getCard', {
|
||||
description: 'Get client basic data and debt',
|
||||
accepts: {
|
||||
arg: 'id',
|
||||
type: 'number',
|
||||
|
@ -14,12 +14,12 @@ module.exports = function(Self) {
|
|||
},
|
||||
http: {
|
||||
verb: 'GET',
|
||||
path: '/:id/card'
|
||||
path: '/:id/getCard'
|
||||
}
|
||||
});
|
||||
|
||||
Self.card = async function(id) {
|
||||
return await Self.findOne({
|
||||
Self.getCard = async function(id) {
|
||||
let client = await Self.findOne({
|
||||
where: {
|
||||
id: id
|
||||
},
|
||||
|
@ -57,5 +57,10 @@ module.exports = function(Self) {
|
|||
}
|
||||
]
|
||||
});
|
||||
|
||||
let query = `SELECT vn.clientGetDebt(?, CURDATE()) AS debt`;
|
||||
client.debt = (await Self.rawSql(query, [id]))[0].debt;
|
||||
|
||||
return client;
|
||||
};
|
||||
};
|
|
@ -3,11 +3,10 @@ const app = require(`${servicesDir}/client/server/server`);
|
|||
describe('Client card', () => {
|
||||
it('should call the card() method to receive a formated card of Bruce Wayne', async() => {
|
||||
let id = 101;
|
||||
let result = await app.models.Client.card(id);
|
||||
let result = await app.models.Client.getCard(id);
|
||||
|
||||
expect(result).toEqual(jasmine.objectContaining({
|
||||
id: 101,
|
||||
name: 'Bruce Wayne'
|
||||
}));
|
||||
expect(result.id).toEqual(101);
|
||||
expect(result.name).toEqual('Bruce Wayne');
|
||||
expect(result.debt).toEqual(1048.76);
|
||||
});
|
||||
});
|
|
@ -5,7 +5,7 @@ var isMultiple = require('../helpers').isMultiple;
|
|||
module.exports = Self => {
|
||||
// Methods
|
||||
require('../methods/client/activate')(Self);
|
||||
require('../methods/client/card')(Self);
|
||||
require('../methods/client/getCard')(Self);
|
||||
require('../methods/client/createWithUser')(Self);
|
||||
require('../methods/client/listWorkers')(Self);
|
||||
require('../methods/client/hasCustomerRole')(Self);
|
||||
|
|
Loading…
Reference in New Issue