Compare commits
2 commits
88985c6c8c
...
7150e4744c
Author | SHA1 | Date | |
---|---|---|---|
7150e4744c | |||
bc0500e7f4 |
3 changed files with 29 additions and 6 deletions
|
@ -43,6 +43,8 @@ const store = createStore({
|
||||||
users: 0,
|
users: 0,
|
||||||
groups: 0,
|
groups: 0,
|
||||||
states: 0,
|
states: 0,
|
||||||
|
messageTemplates: 0,
|
||||||
|
shippingVouchers: 0,
|
||||||
},
|
},
|
||||||
persistent_loaded: false,
|
persistent_loaded: false,
|
||||||
shared_loaded: false,
|
shared_loaded: false,
|
||||||
|
@ -215,12 +217,14 @@ const store = createStore({
|
||||||
},
|
},
|
||||||
setMessageTemplates(state, templates) {
|
setMessageTemplates(state, templates) {
|
||||||
state.messageTemplates = templates;
|
state.messageTemplates = templates;
|
||||||
|
state.fetchedData = {...state.fetchedData, messageTemplates: Date.now()};
|
||||||
},
|
},
|
||||||
setMessageTemplateVariables(state, variables) {
|
setMessageTemplateVariables(state, variables) {
|
||||||
state.messageTemplateVariables = variables;
|
state.messageTemplateVariables = variables;
|
||||||
},
|
},
|
||||||
setShippingVouchers(state, codes) {
|
setShippingVouchers(state, codes) {
|
||||||
state.shippingVouchers = codes;
|
state.shippingVouchers = codes;
|
||||||
|
state.fetchedData = {...state.fetchedData, shippingVouchers: Date.now()};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
@ -394,7 +398,10 @@ const store = createStore({
|
||||||
},
|
},
|
||||||
async sendMail({commit, dispatch, state}, {id, message}) {
|
async sendMail({commit, dispatch, state}, {id, message}) {
|
||||||
const {data, success} = await http.post(`/2/tickets/${id}/reply/`, {message}, state.user.token);
|
const {data, success} = await http.post(`/2/tickets/${id}/reply/`, {message}, state.user.token);
|
||||||
|
if (data && success) {
|
||||||
|
state.fetchedData.tickets = 0;
|
||||||
await dispatch('loadTickets');
|
await dispatch('loadTickets');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async postManualTicket({commit, dispatch, state}, {sender, message, title,}) {
|
async postManualTicket({commit, dispatch, state}, {sender, message, title,}) {
|
||||||
const {data, success} = await http.post(`/2/tickets/manual/`, {
|
const {data, success} = await http.post(`/2/tickets/manual/`, {
|
||||||
|
@ -407,7 +414,10 @@ const store = createStore({
|
||||||
},
|
},
|
||||||
async postComment({commit, dispatch, state}, {id, message}) {
|
async postComment({commit, dispatch, state}, {id, message}) {
|
||||||
const {data, success} = await http.post(`/2/tickets/${id}/comment/`, {comment: message}, state.user.token);
|
const {data, success} = await http.post(`/2/tickets/${id}/comment/`, {comment: message}, state.user.token);
|
||||||
|
if (data && success) {
|
||||||
|
state.fetchedData.tickets = 0;
|
||||||
await dispatch('loadTickets');
|
await dispatch('loadTickets');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async loadUsers({commit, state}) {
|
async loadUsers({commit, state}) {
|
||||||
if (!state.user.token) return;
|
if (!state.user.token) return;
|
||||||
|
@ -432,6 +442,8 @@ const store = createStore({
|
||||||
commit('updateTicket', data);
|
commit('updateTicket', data);
|
||||||
},
|
},
|
||||||
async fetchMessageTemplates({commit, state}) {
|
async fetchMessageTemplates({commit, state}) {
|
||||||
|
if (!state.user.token) return;
|
||||||
|
if (state.messageTemplates.length > 0) return;
|
||||||
const {data, success} = await http.get('/2/message_templates/', state.user.token);
|
const {data, success} = await http.get('/2/message_templates/', state.user.token);
|
||||||
if (data && success) {
|
if (data && success) {
|
||||||
commit('setMessageTemplates', data);
|
commit('setMessageTemplates', data);
|
||||||
|
@ -441,10 +453,13 @@ const store = createStore({
|
||||||
const {data, success} = await http.patch(`/2/message_templates/${template.id}/`,
|
const {data, success} = await http.patch(`/2/message_templates/${template.id}/`,
|
||||||
{'message': template.message}, state.user.token);
|
{'message': template.message}, state.user.token);
|
||||||
if (data && success) {
|
if (data && success) {
|
||||||
|
state.fetchedData.messageTemplates = 0;
|
||||||
dispatch('fetchMessageTemplates');
|
dispatch('fetchMessageTemplates');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async fetchMessageTemplateVariables({commit, state}) {
|
async fetchMessageTemplateVariables({commit, state}) {
|
||||||
|
if (!state.user.token) return;
|
||||||
|
if (state.messageTemplateVariables.length > 0) return;
|
||||||
const {data, success} = await http.get('/2/message_template_variables/', state.user.token);
|
const {data, success} = await http.get('/2/message_template_variables/', state.user.token);
|
||||||
if (data && success) {
|
if (data && success) {
|
||||||
commit('setMessageTemplateVariables', data);
|
commit('setMessageTemplateVariables', data);
|
||||||
|
@ -460,6 +475,8 @@ const store = createStore({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async fetchShippingVouchers({commit, state}) {
|
async fetchShippingVouchers({commit, state}) {
|
||||||
|
if (!state.user.token) return;
|
||||||
|
if (state.fetchedData.shippingVouchers > Date.now() - 1000 * 60 * 60 * 24) return;
|
||||||
const {data, success} = await http.get('/2/shipping_vouchers/', state.user.token);
|
const {data, success} = await http.get('/2/shipping_vouchers/', state.user.token);
|
||||||
if (data && success) {
|
if (data && success) {
|
||||||
commit('setShippingVouchers', data);
|
commit('setShippingVouchers', data);
|
||||||
|
@ -468,6 +485,7 @@ const store = createStore({
|
||||||
async createShippingVoucher({dispatch, state}, code) {
|
async createShippingVoucher({dispatch, state}, code) {
|
||||||
const {data, success} = await http.post('/2/shipping_vouchers/', code, state.user.token);
|
const {data, success} = await http.post('/2/shipping_vouchers/', code, state.user.token);
|
||||||
if (data && success) {
|
if (data && success) {
|
||||||
|
state.fetchedData.shippingVouchers = 0;
|
||||||
dispatch('fetchShippingVouchers');
|
dispatch('fetchShippingVouchers');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -478,7 +496,9 @@ const store = createStore({
|
||||||
success
|
success
|
||||||
} = await http.patch(`/2/shipping_vouchers/${id}/`, {issue_thread: ticket}, state.user.token);
|
} = await http.patch(`/2/shipping_vouchers/${id}/`, {issue_thread: ticket}, state.user.token);
|
||||||
if (data && success) {
|
if (data && success) {
|
||||||
dispatch('fetchShippingVouchers');
|
state.fetchedData.shippingVouchers = 0;
|
||||||
|
state.fetchedData.tickets = 0;
|
||||||
|
await Promise.all([dispatch('loadTickets'), dispatch('fetchShippingVouchers')]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -42,7 +42,8 @@
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
<button class="form-control btn btn-success"
|
<button class="form-control btn btn-success"
|
||||||
@click="claimShippingVoucher({ticket: ticket.id, shipping_voucher_type})">
|
@click="claimShippingVoucher({ticket: ticket.id, shipping_voucher_type}).then(()=>shipping_voucher_type=null)"
|
||||||
|
:disabled="!shipping_voucher_type">
|
||||||
Claim Shipping Voucher
|
Claim Shipping Voucher
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,8 +16,10 @@
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="voucher in shippingVouchers" :key="voucher.voucher">
|
<li v-for="voucher in shippingVouchers" :key="voucher.voucher">
|
||||||
<span v-if="voucher.issue_thread == null">{{ voucher.type }} - {{ voucher.voucher }}</span>
|
<span v-if="voucher.issue_thread == null">{{ voucher.type }} - {{ voucher.voucher }}</span>
|
||||||
<span v-else><s style="color:var(--danger)">{{ voucher.type }} - {{ voucher.voucher }}</s> used in <a
|
<span v-else><s style="color:var(--danger)">{{ voucher.type }} - {{ voucher.voucher }}</s> used in
|
||||||
:href="'/'+ getEventSlug + '/ticket/' + voucher.issue_thread">#{{ voucher.issue_thread }}</a></span>
|
<router-link :to="'/'+ getEventSlug + '/ticket/' + voucher.issue_thread">#{{
|
||||||
|
voucher.issue_thread
|
||||||
|
}}</router-link></span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue