show tickets filtered by active event
This commit is contained in:
parent
41b71bd51a
commit
c9d58191b3
8 changed files with 175 additions and 198 deletions
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<AsyncLoader :loaded="loadedItems.length > 0">
|
||||
<AsyncLoader :loaded="isItemsLoaded">
|
||||
<div class="container-fluid px-xl-5 mt-3">
|
||||
<Modal title="Edit Item" v-if="editingItem" @close="closeEditingModal()">
|
||||
<template #body>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<div class="col-xl-8 offset-xl-2">
|
||||
<Table
|
||||
:columns="['uid', 'description', 'box']"
|
||||
:items="loadedItems"
|
||||
:items="getEventItems"
|
||||
:keyName="'uid'"
|
||||
@itemActivated="openLightboxModalWith($event)"
|
||||
>
|
||||
|
@ -44,7 +44,7 @@
|
|||
<Cards
|
||||
v-if="layout === 'cards'"
|
||||
:columns="['uid', 'description', 'box']"
|
||||
:items="loadedItems"
|
||||
:items="getEventItems"
|
||||
:keyName="'uid'"
|
||||
v-slot="{ item }"
|
||||
@itemActivated="openLightboxModalWith($event)"
|
||||
|
@ -97,8 +97,8 @@ export default {
|
|||
}),
|
||||
components: {AsyncLoader, AuthenticatedImage, Lightbox, Table, Cards, Modal, EditItem},
|
||||
computed: {
|
||||
...mapState(['loadedItems']),
|
||||
...mapGetters(['layout']),
|
||||
...mapState([]),
|
||||
...mapGetters(['getEventItems', 'isItemsLoaded', 'layout']),
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['deleteItem', 'markItemReturned', 'loadEventItems', 'updateItem', 'scheduleAfterInit']),
|
||||
|
|
|
@ -80,11 +80,11 @@ export default {
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(['tickets', 'state_options', 'users']),
|
||||
...mapGetters(['availableShippingVoucherTypes']),
|
||||
...mapState(['state_options', 'users']),
|
||||
...mapGetters(['availableShippingVoucherTypes', 'getAllTickets', 'route']),
|
||||
ticket() {
|
||||
const id = parseInt(this.$route.params.id)
|
||||
const ret = this.tickets.find(ticket => ticket.id === id);
|
||||
const id = parseInt(this.route.params.id)
|
||||
const ret = this.getAllTickets.find(ticket => ticket.id === id);
|
||||
return ret ? ret : {};
|
||||
},
|
||||
shippingEmail() {
|
||||
|
@ -124,14 +124,15 @@ export default {
|
|||
},
|
||||
},
|
||||
mounted() {
|
||||
this.scheduleAfterInit(() => [Promise.all([this.fetchTicketStates(), this.loadTickets(), this.loadUsers(), this.fetchShippingVouchers()]).then(()=>{
|
||||
if (this.ticket.state == "pending_new"){
|
||||
this.selected_state = "pending_open";
|
||||
this.changeTicketStatus(this.ticket)
|
||||
};
|
||||
this.selected_state = this.ticket.state;
|
||||
this.selected_assignee = this.ticket.assigned_to
|
||||
})]);
|
||||
this.scheduleAfterInit(() => [Promise.all([this.fetchTicketStates(), this.loadTickets(), this.loadUsers(), this.fetchShippingVouchers()]).then(() => {
|
||||
if (this.ticket.state == "pending_new") {
|
||||
this.selected_state = "pending_open";
|
||||
this.changeTicketStatus(this.ticket)
|
||||
}
|
||||
;
|
||||
this.selected_state = this.ticket.state;
|
||||
this.selected_assignee = this.ticket.assigned_to
|
||||
})]);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<template>
|
||||
<AsyncLoader :loaded="tickets.length > 0">
|
||||
<AsyncLoader :loaded="isTicketsLoaded">
|
||||
<div class="container-fluid px-xl-5 mt-3">
|
||||
<div class="row">
|
||||
<div class="col-xl-8 offset-xl-2">
|
||||
<Table
|
||||
:columns="['id', 'name', 'state', 'last_activity', 'assigned_to', 'actions', 'actions2']"
|
||||
:items="tickets.map(formatTicket)"
|
||||
:columns="['id', 'name', 'state', 'last_activity', 'assigned_to',
|
||||
...(getEventSlug==='all'?['event']:[])]"
|
||||
:items="getEventTickets.map(formatTicket)"
|
||||
:keyName="'id'"
|
||||
v-if="layout === 'table'"
|
||||
>
|
||||
|
@ -21,8 +22,9 @@
|
|||
</Table>
|
||||
</div>
|
||||
</div>
|
||||
<CollapsableCards v-if="layout === 'tasks'" :items="tickets"
|
||||
:columns="['id', 'name', 'last_activity', 'assigned_to']"
|
||||
<CollapsableCards v-if="layout === 'tasks'" :items="getEventTickets"
|
||||
:columns="['id', 'name', 'last_activity', 'assigned_to',
|
||||
...(getEventSlug==='all'?['event']:[])]"
|
||||
:keyName="'state'" :sections="['pending_new', 'pending_open','pending_shipping',
|
||||
'pending_physical_confirmation','pending_return','pending_postponed'].map(stateInfo)">
|
||||
<template #section_header="{index, section, count}">
|
||||
|
@ -34,6 +36,7 @@
|
|||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.last_activity }}</td>
|
||||
<td>{{ item.assigned_to }}</td>
|
||||
<td v-if="getEventSlug==='all'">{{ item.event }}</td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-primary" :href="'/'+ getEventSlug + '/ticket/' + item.id" title="view"
|
||||
|
@ -64,8 +67,7 @@ export default {
|
|||
name: 'Tickets',
|
||||
components: {AsyncLoader, Lightbox, Table, Cards, Modal, EditItem, CollapsableCards},
|
||||
computed: {
|
||||
...mapState(['tickets']),
|
||||
...mapGetters(['stateInfo', 'getEventSlug', 'layout']),
|
||||
...mapGetters(['getEventTickets', 'isTicketsLoaded', 'stateInfo', 'getEventSlug', 'layout']),
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['loadTickets', 'fetchTicketStates', 'scheduleAfterInit']),
|
||||
|
@ -79,7 +81,8 @@ export default {
|
|||
state: this.stateInfo(ticket.state).text,
|
||||
stateColor: this.stateInfo(ticket.state).color,
|
||||
last_activity: ticket.last_activity,
|
||||
assigned_to: ticket.assigned_to
|
||||
assigned_to: ticket.assigned_to,
|
||||
event: ticket.event
|
||||
};
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue