From d27402d4e6fba4d3c4c3f518c8ba1a9fdfada931 Mon Sep 17 00:00:00 2001 From: Carlos Jimenez Ruiz Date: Wed, 26 Jun 2019 13:56:40 +0200 Subject: [PATCH] #1558 ticket.sales mark/unmark as reserved --- modules/ticket/front/sale/index.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/modules/ticket/front/sale/index.js b/modules/ticket/front/sale/index.js index ad232dc7bd..3abcdc4802 100644 --- a/modules/ticket/front/sale/index.js +++ b/modules/ticket/front/sale/index.js @@ -1,5 +1,6 @@ import ngModule from '../module'; import './style.scss'; +import {throws} from 'assert'; class Controller { constructor($scope, $state, $http, vnApp, $translate) { @@ -9,7 +10,6 @@ class Controller { this.$state = $state; this.$stateParams = $state.params; this.$http = $http; - this.deletable = false; this.edit = {}; this.moreOptions = [ {callback: this.markAsReserved, name: 'Mark as reserved'}, @@ -336,11 +336,22 @@ class Controller { } setReserved(reserved) { - let sales = this.getCheckedLines(); - let params = {sales: sales, ticketFk: this.ticket.id, reserved: reserved}; + let selectedSales = this.getCheckedLines(); + let params = {sales: selectedSales, ticketFk: this.ticket.id, reserved: reserved}; - this.$http.post(`/api/Sales/reserve`, params).then(() => { - this.$scope.model.refresh(); + let reservedSales = new Map(); + this.$http.post(`/api/Sales/reserve`, params).then(res => { + let isReserved = res.config.data.reserved; + + res.config.data.sales.forEach(sale => { + reservedSales.set(sale.id, {reserved: isReserved}); + }); + + this.sales.forEach(sale => { + const reservedSale = reservedSales.get(sale.id); + if (reservedSale) + sale.reserved = reservedSale.reserved; + }); }); }