diff --git a/web/src/views/Ticket.vue b/web/src/views/Ticket.vue index e92fb8e..cf1ce88 100644 --- a/web/src/views/Ticket.vue +++ b/web/src/views/Ticket.vue @@ -14,18 +14,25 @@ Delete
- -
- + -
@@ -64,7 +71,19 @@ export default { components: {ClipboardButton, Timeline}, data() { return { - shipping_voucher_type: null + selected_state: null, + selected_assignee: null, + shipping_voucher_type: null, + } + }, + watch: { + ticket(val) { + if (this.selected_state == null) { + this.selected_state = val.state; + } + if (this.selected_assignee == null) { + this.selected_assignee = val.assigned_to + } } }, computed: { @@ -83,7 +102,7 @@ export default { methods: { ...mapActions(['deleteItem', 'markItemReturned', 'sendMail', 'updateTicketPartial', 'postComment']), ...mapActions(['loadTickets', 'fetchTicketStates', 'loadUsers', 'scheduleAfterInit']), - ...mapActions(['claimShippingVoucher']), + ...mapActions(['claimShippingVoucher', 'fetchShippingVouchers']), handleMail(mail) { this.sendMail({ id: this.ticket.id, @@ -97,20 +116,23 @@ export default { }) }, changeTicketStatus(ticket) { + ticket.state = this.selected_state; this.updateTicketPartial({ id: ticket.id, - state: ticket.state + state: this.selected_state, }) }, - assigTicket(ticket) { + assignTicket(ticket) { + ticket.assigned_to = this.selected_assignee; this.updateTicketPartial({ id: ticket.id, - assigned_to: ticket.assigned_to + assigned_to: this.selected_assignee }) }, }, mounted() { - this.scheduleAfterInit(() => [this.fetchTicketStates(), this.loadTickets(), this.loadUsers()]); + this.scheduleAfterInit(() => [this.fetchTicketStates(), this.loadTickets(), this.loadUsers(), + this.fetchShippingVouchers()]); } };