diff --git a/web/src/views/Ticket.vue b/web/src/views/Ticket.vue
index e92fb8e..a5008af 100644
--- a/web/src/views/Ticket.vue
+++ b/web/src/views/Ticket.vue
@@ -14,18 +14,25 @@
Delete
-
-
-
+
+
-
+
Change Status
@@ -58,13 +65,23 @@
import {mapActions, mapGetters, mapState} from 'vuex';
import Timeline from "@/components/Timeline.vue";
import ClipboardButton from "@/components/inputs/ClipboardButton.vue";
+import AsyncLoader from "@/components/AsyncLoader.vue";
export default {
name: 'Ticket',
- components: {ClipboardButton, Timeline},
+ components: {AsyncLoader, 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;
+ }
}
},
computed: {
@@ -83,7 +100,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 +114,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()]);
}
};