This commit is contained in:
j3d1 2024-06-26 18:42:56 +02:00
parent f9409bb823
commit 5e6030e715
39 changed files with 1048 additions and 64 deletions

View file

@ -19,6 +19,8 @@ const store = createStore({
users: [],
groups: [],
state_options: [],
messageTemplates: [],
messageTemplateVariables: [],
shippingVouchers: [],
lastEvent: '37C3',
@ -41,6 +43,7 @@ const store = createStore({
users: 0,
groups: 0,
states: 0,
messageTemplates: 0,
shippingVouchers: 0,
},
persistent_loaded: false,
@ -48,6 +51,7 @@ const store = createStore({
afterInitHandlers: [],
showAddBoxModal: false,
test: ['foo', 'bar', 'baz'],
shippingVoucherTypes: {
'2kg-de': '2kg Paket (DE)',
@ -211,9 +215,19 @@ const store = createStore({
user.permissions = null;
state.user = user;
},
setTest(state, test) {
state.test = test;
},
setThumbnail(state, {url, data}) {
state.thumbnailCache[url] = data;
},
setMessageTemplates(state, templates) {
state.messageTemplates = templates;
state.fetchedData = {...state.fetchedData, messageTemplates: Date.now()};
},
setMessageTemplateVariables(state, variables) {
state.messageTemplateVariables = variables;
},
setShippingVouchers(state, codes) {
state.shippingVouchers = codes;
state.fetchedData = {...state.fetchedData, shippingVouchers: Date.now()};
@ -433,6 +447,39 @@ const store = createStore({
const {data, success} = await http.patch(`/2/tickets/${id}/`, ticket, state.user.token);
commit('updateTicket', data);
},
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);
if (data && success) {
commit('setMessageTemplates', data);
}
},
async updateMessageTemplate({dispatch, state}, template) {
const {data, success} = await http.patch(`/2/message_templates/${template.id}/`,
{'message': template.message}, state.user.token);
if (data && success) {
state.fetchedData.messageTemplates = 0;
dispatch('fetchMessageTemplates');
}
},
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);
if (data && success) {
commit('setMessageTemplateVariables', data);
}
},
async createMessageTemplate({dispatch, state}, template_name) {
const {data, success} = await http.post('/2/message_templates/', {
name: template_name,
message: '-'
}, state.user.token);
if (data && success) {
dispatch('fetchMessageTemplates');
}
},
async fetchShippingVouchers({commit, state}) {
if (!state.user.token) return;
if (state.fetchedData.shippingVouchers > Date.now() - 1000 * 60 * 60 * 24) return;
@ -487,6 +534,8 @@ const store = createStore({
"groups",
"loadedBoxes",
"loadedItems",
"messageTemplates",
"messageTemplatesVariables",
"shippingVouchers",
],
watch: [
@ -498,6 +547,8 @@ const store = createStore({
"groups",
"loadedBoxes",
"loadedItems",
"messageTemplates",
"messageTemplatesVariables",
"shippingVouchers",
],
mutations: [