diff --git a/modules/client/front/sms/index.html b/modules/client/front/sms/index.html index ac7a20651..facbb7694 100644 --- a/modules/client/front/sms/index.html +++ b/modules/client/front/sms/index.html @@ -8,7 +8,9 @@ + ng-model="$ctrl.sms.destination" + required="true" + rule> @@ -18,6 +20,7 @@ ng-model="$ctrl.sms.message" rows="5" maxlength="160" + required="true" rule> diff --git a/modules/client/front/sms/index.js b/modules/client/front/sms/index.js index 1bf2fb99c..851ce1a66 100644 --- a/modules/client/front/sms/index.js +++ b/modules/client/front/sms/index.js @@ -28,12 +28,23 @@ class Controller extends Component { onResponse(response) { if (response === 'accept') { - this.$http.post(`Clients/${this.$params.id}/sendSms`, this.sms).then(res => { - this.vnApp.showMessage(this.$translate.instant('SMS sent!')); + try { + if (!this.sms.destination) + throw new Error(`The destination can't be empty`); + if (!this.sms.message) + throw new Error(`The message can't be empty`); - if (res.data) this.emit('send', {response: res.data}); - }); + this.$http.post(`Clients/${this.$params.id}/sendSms`, this.sms).then(res => { + this.vnApp.showMessage(this.$translate.instant('SMS sent!')); + + if (res.data) this.emit('send', {response: res.data}); + }); + } catch (e) { + this.vnApp.showError(this.$translate.instant(e.message)); + return false; + } } + return true; } } diff --git a/modules/client/front/sms/index.spec.js b/modules/client/front/sms/index.spec.js index c2a7eb935..26a597c17 100644 --- a/modules/client/front/sms/index.spec.js +++ b/modules/client/front/sms/index.spec.js @@ -30,6 +30,26 @@ describe('Client', () => { expect(controller.vnApp.showMessage).toHaveBeenCalledWith('SMS sent!'); }); + + it('should call onResponse without the destination and show an error snackbar', () => { + controller.sms = {destinationFk: 101, message: 'My SMS'}; + + spyOn(controller.vnApp, 'showError'); + + controller.onResponse('accept'); + + expect(controller.vnApp.showError).toHaveBeenCalledWith(`The destination can't be empty`); + }); + + it('should call onResponse without the message and show an error snackbar', () => { + controller.sms = {destinationFk: 101, destination: 222222222}; + + spyOn(controller.vnApp, 'showError'); + + controller.onResponse('accept'); + + expect(controller.vnApp.showError).toHaveBeenCalledWith(`The message can't be empty`); + }); }); describe('charactersRemaining()', () => { diff --git a/modules/client/front/sms/locale/es.yml b/modules/client/front/sms/locale/es.yml index f26c8ba24..4438e4fce 100644 --- a/modules/client/front/sms/locale/es.yml +++ b/modules/client/front/sms/locale/es.yml @@ -2,4 +2,6 @@ Send SMS: Enviar SMS Destination: Destinatario Message: Mensaje SMS sent!: ¡SMS enviado! -Characters remaining: Carácteres restantes \ No newline at end of file +Characters remaining: Carácteres restantes +The destination can't be empty: El destinatario no puede estar vacio +The message can't be empty: El mensaje no puede estar vacio \ No newline at end of file diff --git a/modules/ticket/front/sale/index.html b/modules/ticket/front/sale/index.html index 998f481ea..42699d8d1 100644 --- a/modules/ticket/front/sale/index.html +++ b/modules/ticket/front/sale/index.html @@ -370,10 +370,10 @@ - - + + ng-model="$ctrl.sms.destination" + required="true" + rule> @@ -18,6 +20,7 @@ ng-model="$ctrl.sms.message" rows="5" maxlength="160" + required="true" rule> diff --git a/modules/ticket/front/sms/index.js b/modules/ticket/front/sms/index.js index 1f2c7f9c0..0d639d46e 100644 --- a/modules/ticket/front/sms/index.js +++ b/modules/ticket/front/sms/index.js @@ -28,12 +28,23 @@ class Controller extends Component { onResponse(response) { if (response === 'accept') { - this.$http.post(`Tickets/${this.$params.id}/sendSms`, this.sms).then(res => { - this.vnApp.showMessage(this.$translate.instant('SMS sent!')); + try { + if (!this.sms.destination) + throw new Error(`The destination can't be empty`); + if (!this.sms.message) + throw new Error(`The message can't be empty`); - if (res.data) this.emit('send', {response: res.data}); - }); + this.$http.post(`Tickets/${this.$params.id}/sendSms`, this.sms).then(res => { + this.vnApp.showMessage(this.$translate.instant('SMS sent!')); + + if (res.data) this.emit('send', {response: res.data}); + }); + } catch (e) { + this.vnApp.showError(this.$translate.instant(e.message)); + return false; + } } + return true; } } diff --git a/modules/ticket/front/sms/index.spec.js b/modules/ticket/front/sms/index.spec.js index 5565c3623..d02b3f3eb 100644 --- a/modules/ticket/front/sms/index.spec.js +++ b/modules/ticket/front/sms/index.spec.js @@ -29,6 +29,26 @@ describe('Ticket', () => { expect(controller.vnApp.showMessage).toHaveBeenCalledWith('SMS sent!'); }); + + it('should call onResponse without the destination and show an error snackbar', () => { + controller.sms = {destinationFk: 101, message: 'My SMS'}; + + spyOn(controller.vnApp, 'showError'); + + controller.onResponse('accept'); + + expect(controller.vnApp.showError).toHaveBeenCalledWith(`The destination can't be empty`); + }); + + it('should call onResponse without the message and show an error snackbar', () => { + controller.sms = {destinationFk: 101, destination: 222222222}; + + spyOn(controller.vnApp, 'showError'); + + controller.onResponse('accept'); + + expect(controller.vnApp.showError).toHaveBeenCalledWith(`The message can't be empty`); + }); }); describe('charactersRemaining()', () => { diff --git a/modules/ticket/front/sms/locale/es.yml b/modules/ticket/front/sms/locale/es.yml index f26c8ba24..4438e4fce 100644 --- a/modules/ticket/front/sms/locale/es.yml +++ b/modules/ticket/front/sms/locale/es.yml @@ -2,4 +2,6 @@ Send SMS: Enviar SMS Destination: Destinatario Message: Mensaje SMS sent!: ¡SMS enviado! -Characters remaining: Carácteres restantes \ No newline at end of file +Characters remaining: Carácteres restantes +The destination can't be empty: El destinatario no puede estar vacio +The message can't be empty: El mensaje no puede estar vacio \ No newline at end of file