Compare commits

..

No commits in common. "c51d29a53891bcdbea9137e7a61be851e9893b98" and "dffd3531fa16d40a9da610e3ed0ee421e8e9e5ef" have entirely different histories.

View file

@ -14,25 +14,18 @@
Delete Delete
</button--> </button-->
<div class="btn-group"> <div class="btn-group">
<select class="form-control" v-model="selected_assignee"> <select class="form-control" v-model="ticket.assigned_to">
<option v-for="user in users" :value="user.username">{{ user.username }}</option> <option v-for="user in users" :value="user.username">{{ user.username }}</option>
</select> </select>
<button class="form-control btn btn-success" <button class="form-control btn btn-success" @click="assigTicket(ticket)">
@click="assignTicket(ticket)"
:disabled="!selected_assignee || (selected_assignee == ticket.assigned_to)">
Assign&nbsp;Ticket Assign&nbsp;Ticket
</button> </button>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<select class="form-control" v-model="selected_state"> <select class="form-control" v-model="ticket.state">
<option v-for="status in state_options" :value="status.value">{{ <option v-for="status in state_options" :value="status.value">{{ status.text }}</option>
status.text
}}
</option>
</select> </select>
<button class="form-control btn btn-success" <button class="form-control btn btn-success" @click="changeTicketStatus(ticket)">
@click="changeTicketStatus(ticket)"
:disabled="(selected_state == ticket.state)">
Change&nbsp;Status Change&nbsp;Status
</button> </button>
</div> </div>
@ -65,26 +58,13 @@
import {mapActions, mapGetters, mapState} from 'vuex'; import {mapActions, mapGetters, mapState} from 'vuex';
import Timeline from "@/components/Timeline.vue"; import Timeline from "@/components/Timeline.vue";
import ClipboardButton from "@/components/inputs/ClipboardButton.vue"; import ClipboardButton from "@/components/inputs/ClipboardButton.vue";
import AsyncLoader from "@/components/AsyncLoader.vue";
export default { export default {
name: 'Ticket', name: 'Ticket',
components: {AsyncLoader, ClipboardButton, Timeline}, components: {ClipboardButton, Timeline},
data() { data() {
return { return {
selected_state: null, shipping_voucher_type: 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: { computed: {
@ -103,7 +83,7 @@ export default {
methods: { methods: {
...mapActions(['deleteItem', 'markItemReturned', 'sendMail', 'updateTicketPartial', 'postComment']), ...mapActions(['deleteItem', 'markItemReturned', 'sendMail', 'updateTicketPartial', 'postComment']),
...mapActions(['loadTickets', 'fetchTicketStates', 'loadUsers', 'scheduleAfterInit']), ...mapActions(['loadTickets', 'fetchTicketStates', 'loadUsers', 'scheduleAfterInit']),
...mapActions(['claimShippingVoucher', 'fetchShippingVouchers']), ...mapActions(['claimShippingVoucher']),
handleMail(mail) { handleMail(mail) {
this.sendMail({ this.sendMail({
id: this.ticket.id, id: this.ticket.id,
@ -117,23 +97,20 @@ export default {
}) })
}, },
changeTicketStatus(ticket) { changeTicketStatus(ticket) {
ticket.state = this.selected_state;
this.updateTicketPartial({ this.updateTicketPartial({
id: ticket.id, id: ticket.id,
state: this.selected_state, state: ticket.state
}) })
}, },
assignTicket(ticket) { assigTicket(ticket) {
ticket.assigned_to = this.selected_assignee;
this.updateTicketPartial({ this.updateTicketPartial({
id: ticket.id, id: ticket.id,
assigned_to: this.selected_assignee assigned_to: ticket.assigned_to
}) })
}, },
}, },
mounted() { mounted() {
this.scheduleAfterInit(() => [this.fetchTicketStates(), this.loadTickets(), this.loadUsers(), this.scheduleAfterInit(() => [this.fetchTicketStates(), this.loadTickets(), this.loadUsers()]);
this.fetchShippingVouchers()]);
} }
}; };
</script> </script>