81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
import ngModule from '../module';
|
|
import Dialog from 'core/components/dialog';
|
|
import './style.scss';
|
|
|
|
class Controller extends Dialog {
|
|
constructor($element, $, $transclude) {
|
|
super($element, $, $transclude);
|
|
}
|
|
|
|
getSelectedTickets(tickets) {
|
|
const selectedTickets = [];
|
|
|
|
if (tickets) {
|
|
for (let i = 0; i < tickets.length; i++) {
|
|
if (tickets[i].checked)
|
|
selectedTickets.push(tickets[i]);
|
|
}
|
|
}
|
|
return selectedTickets;
|
|
}
|
|
|
|
updateVolume() {
|
|
let url = `Routes/${this.route.id}/updateVolume`;
|
|
this.$http.post(url).then(() => {
|
|
this.$.model.refresh();
|
|
if (this.parentReload)
|
|
this.parentReload();
|
|
});
|
|
}
|
|
|
|
setTicketsRoute() {
|
|
const tickets = this.getSelectedTickets(this.possibleTickets);
|
|
if (tickets.length === 0) return;
|
|
|
|
const updates = [];
|
|
|
|
for (let ticket of tickets) {
|
|
delete ticket.checked;
|
|
const update = {
|
|
where: {id: ticket.id},
|
|
data: {routeFk: this.route.id}
|
|
};
|
|
|
|
updates.push(update);
|
|
}
|
|
|
|
const data = {creates: [], updates: updates, deletes: []};
|
|
return this.$http.post(`Tickets/crud`, data)
|
|
.then(() => {
|
|
this.vnApp.showSuccess(this.$t('Data saved!'));
|
|
this.updateVolume();
|
|
this.hide();
|
|
});
|
|
}
|
|
|
|
unlinkZone(ticket) {
|
|
const params = {
|
|
agencyModeId: this.route.agencyModeFk,
|
|
zoneId: ticket.zoneFk,
|
|
};
|
|
|
|
const query = `Routes/unlink`;
|
|
this.$http.post(query, params).then(() => {
|
|
this.vnApp.showSuccess(this.$t('Data saved!'));
|
|
this.$.model.refresh();
|
|
this.hide();
|
|
});
|
|
}
|
|
}
|
|
Controller.$inject = ['$element', '$scope', '$transclude'];
|
|
|
|
ngModule.vnComponent('vnRouteTicketPopup', {
|
|
slotTemplate: require('./index.html'),
|
|
controller: Controller,
|
|
bindings: {
|
|
route: '<',
|
|
model: '<?',
|
|
parentReload: '&'
|
|
}
|
|
});
|