add item edit page
This commit is contained in:
parent
b8f1942ab1
commit
f01d513803
12 changed files with 707 additions and 0 deletions
|
|
@ -19,6 +19,10 @@ export default createStore({
|
|||
all_friends_servers: null,
|
||||
resolver: new FallBackResolver(),
|
||||
unreachable_neighbors: new NeighborsCache(),
|
||||
tags: [],
|
||||
properties: [],
|
||||
files: [],
|
||||
categories: [],
|
||||
availability_policies: [],
|
||||
},
|
||||
mutations: {
|
||||
|
|
@ -58,9 +62,21 @@ export default createStore({
|
|||
setAllFriendsServers(state, servers) {
|
||||
state.all_friends_servers = servers;
|
||||
},
|
||||
setTags(state, tags) {
|
||||
state.tags = tags;
|
||||
},
|
||||
setProperties(state, properties) {
|
||||
state.properties = properties;
|
||||
},
|
||||
setCategories(state, categories) {
|
||||
state.categories = categories;
|
||||
},
|
||||
setAvailabilityPolicies(state, availability_policies) {
|
||||
state.availability_policies = availability_policies;
|
||||
},
|
||||
setDomains(state, domains) {
|
||||
state.domains = domains;
|
||||
},
|
||||
logout(state) {
|
||||
state.user = null;
|
||||
state.token = null;
|
||||
|
|
@ -144,6 +160,18 @@ export default createStore({
|
|||
commit('setInventoryItems', {url: '/', items})
|
||||
return items
|
||||
},
|
||||
async updateInventoryItem({state, dispatch, getters}, item) {
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = {availability_policy: 'friends', ...item}
|
||||
data.files = data.files.map(file => file.id)
|
||||
return await servers.patch(getters.signAuth, '/api/inventory_items/' + item.id + '/', data)
|
||||
},
|
||||
async deleteInventoryItem({state, dispatch, getters}, item) {
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const ret = await servers.delete(getters.signAuth, '/api/inventory_items/' + item.id + '/')
|
||||
dispatch('fetchInventoryItems')
|
||||
return ret
|
||||
},
|
||||
async fetchFriends({commit, dispatch, getters, state}) {
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = await servers.get(getters.signAuth, '/api/friends/')
|
||||
|
|
@ -197,6 +225,71 @@ export default createStore({
|
|||
const servers = await dispatch('getHomeServers')
|
||||
return await servers.delete(getters.signAuth, '/api/friends/' + id + '/')
|
||||
},
|
||||
async fetchTags({state, commit, dispatch, getters}) {
|
||||
if (state.last_load.tags > Date.now() - 1000 * 60 * 60 * 24) {
|
||||
return state.tags
|
||||
}
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = await servers.get(getters.signAuth, '/api/tags/')
|
||||
commit('setTags', data)
|
||||
state.last_load.tags = Date.now()
|
||||
return data
|
||||
},
|
||||
async fetchProperties({state, commit, dispatch, getters}) {
|
||||
if (state.last_load.properties > Date.now() - 1000 * 60 * 60 * 24) {
|
||||
return state.properties
|
||||
}
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = await servers.get(getters.signAuth, '/api/properties/')
|
||||
commit('setProperties', data)
|
||||
state.last_load.properties = Date.now()
|
||||
return data
|
||||
},
|
||||
async fetchCategories({state, commit, dispatch, getters}) {
|
||||
if (state.last_load.categories > Date.now() - 1000 * 60 * 60 * 24) {
|
||||
return state.categories
|
||||
}
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = await servers.get(getters.signAuth, '/api/categories/')
|
||||
commit('setCategories', data)
|
||||
state.last_load.categories = Date.now()
|
||||
return data
|
||||
},
|
||||
async fetchAvailabilityPolicies({state, commit, dispatch, getters}) {
|
||||
if (state.last_load.availability_policies > Date.now() - 1000 * 60 * 60 * 24) {
|
||||
return state.availability_policies
|
||||
}
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = await servers.get(getters.signAuth, '/api/availability_policies/')
|
||||
commit('setAvailabilityPolicies', data.map(policy => ({slug: policy[0], text: policy[1]})))
|
||||
state.last_load.availability_policies = Date.now()
|
||||
return data
|
||||
},
|
||||
async fetchInfo({state, commit, dispatch, getters}) {
|
||||
const last_load_info = Math.min(
|
||||
state.last_load.tags,
|
||||
state.last_load.properties,
|
||||
state.last_load.categories,
|
||||
state.last_load.availability_policies)
|
||||
if (last_load_info > Date.now() - 1000 * 60 * 60 * 24) {
|
||||
return state.info
|
||||
}
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = await servers.get(getters.signAuth, '/api/info/')
|
||||
commit('setTags', data.tags)
|
||||
commit('setProperties', data.properties)
|
||||
commit('setCategories', data.categories)
|
||||
commit('setAvailabilityPolicies', data.availability_policies.map(policy => ({
|
||||
slug: policy[0],
|
||||
text: policy[1]
|
||||
})))
|
||||
commit('setDomains', data.domains)
|
||||
state.last_load.tags = Date.now()
|
||||
state.last_load.properties = Date.now()
|
||||
state.last_load.categories = Date.now()
|
||||
state.last_load.availability_policies = Date.now()
|
||||
return data
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
isLoggedIn(state) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue