feat: add resend email button to ticket list (#51)
- resending only possible when ticket is paid.
This commit is contained in:
parent
6768b78c6f
commit
4bf867eef0
5 changed files with 111 additions and 13 deletions
|
|
@ -4,6 +4,7 @@ window.PageEvents = {
|
|||
return {
|
||||
events: [],
|
||||
tickets: [],
|
||||
resendingTicketEmails: [],
|
||||
currencies: [],
|
||||
eventsTable: {
|
||||
columns: [
|
||||
|
|
@ -145,6 +146,35 @@ window.PageEvents = {
|
|||
.catch(LNbits.utils.notifyApiError)
|
||||
})
|
||||
},
|
||||
resendTicketEmail(ticket) {
|
||||
if (!ticket.paid || !ticket.email) return
|
||||
const wallet = _.findWhere(this.g.user.wallets, {id: ticket.wallet})
|
||||
if (!wallet) return
|
||||
|
||||
this.resendingTicketEmails.push(ticket.id)
|
||||
LNbits.api
|
||||
.request(
|
||||
'POST',
|
||||
'/events/api/v1/tickets/' + ticket.id + '/resend-email',
|
||||
wallet.adminkey
|
||||
)
|
||||
.then(response => {
|
||||
this.tickets = this.tickets.map(obj =>
|
||||
obj.id === ticket.id ? response.data : obj
|
||||
)
|
||||
Quasar.Notify.create({
|
||||
type: 'positive',
|
||||
message: 'Ticket email resent.',
|
||||
icon: null
|
||||
})
|
||||
})
|
||||
.catch(LNbits.utils.notifyApiError)
|
||||
.finally(() => {
|
||||
this.resendingTicketEmails = this.resendingTicketEmails.filter(
|
||||
ticketId => ticketId !== ticket.id
|
||||
)
|
||||
})
|
||||
},
|
||||
exportticketsCSV() {
|
||||
LNbits.utils.exportCSV(this.ticketsTable.columns, this.tickets)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -171,10 +171,12 @@
|
|||
>
|
||||
<template v-slot:header="props">
|
||||
<q-tr :props="props">
|
||||
<q-th auto-width></q-th>
|
||||
<q-th auto-width></q-th>
|
||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||
<span v-text="col.label"></span>
|
||||
</q-th>
|
||||
<q-th auto-width></q-th>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:body="props">
|
||||
|
|
@ -191,6 +193,20 @@
|
|||
target="_blank"
|
||||
></q-btn>
|
||||
</q-td>
|
||||
<q-td auto-width>
|
||||
<q-btn
|
||||
flat
|
||||
dense
|
||||
size="xs"
|
||||
@click="resendTicketEmail(props.row)"
|
||||
icon="email"
|
||||
color="primary"
|
||||
:disable="!props.row.paid || !props.row.email"
|
||||
:loading="resendingTicketEmails.includes(props.row.id)"
|
||||
>
|
||||
<q-tooltip>Resend ticket email</q-tooltip>
|
||||
</q-btn>
|
||||
</q-td>
|
||||
|
||||
<q-td v-for="col in props.cols" :key="col.name" :props="props">
|
||||
<span v-text="col.value"></span>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue