add /inventory page
This commit is contained in:
parent
9770ca861a
commit
8716d3f692
8 changed files with 329 additions and 5 deletions
|
|
@ -13,10 +13,13 @@ export default createStore({
|
|||
token: null,
|
||||
keypair: null,
|
||||
remember: false,
|
||||
friends: [],
|
||||
item_map: {},
|
||||
home_servers: null,
|
||||
all_friends_servers: null,
|
||||
resolver: new FallBackResolver(),
|
||||
unreachable_neighbors: new NeighborsCache(),
|
||||
availability_policies: [],
|
||||
},
|
||||
mutations: {
|
||||
setUser(state, user) {
|
||||
|
|
@ -43,6 +46,9 @@ export default createStore({
|
|||
}
|
||||
localStorage.setItem('remember', remember);
|
||||
},
|
||||
setInventoryItems(state, {url, items}) {
|
||||
state.item_map[url] = items;
|
||||
},
|
||||
setFriends(state, friends) {
|
||||
state.friends = friends;
|
||||
},
|
||||
|
|
@ -52,6 +58,9 @@ export default createStore({
|
|||
setAllFriendsServers(state, servers) {
|
||||
state.all_friends_servers = servers;
|
||||
},
|
||||
setAvailabilityPolicies(state, availability_policies) {
|
||||
state.availability_policies = availability_policies;
|
||||
},
|
||||
logout(state) {
|
||||
state.user = null;
|
||||
state.token = null;
|
||||
|
|
@ -128,6 +137,13 @@ export default createStore({
|
|||
async getFriendServers({state, dispatch, commit}, {username}) {
|
||||
return dispatch('lookupServer', {username}).then(servers => new ServerSet(servers, state.unreachable_neighbors))
|
||||
},
|
||||
async fetchInventoryItems({commit, dispatch, getters}) {
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const items = await servers.get(getters.signAuth, '/api/inventory_items/')
|
||||
items.map(item => item.files.map(file => file.owner = item.owner))
|
||||
commit('setInventoryItems', {url: '/', items})
|
||||
return items
|
||||
},
|
||||
async fetchFriends({commit, dispatch, getters, state}) {
|
||||
const servers = await dispatch('getHomeServers')
|
||||
const data = await servers.get(getters.signAuth, '/api/friends/')
|
||||
|
|
@ -205,5 +221,13 @@ export default createStore({
|
|||
nullAuth(state) {
|
||||
return createNullAuth({})
|
||||
},
|
||||
inventory_items(state) {
|
||||
return state.item_map['/'] || []
|
||||
},
|
||||
loaded_items(state) {
|
||||
return Object.entries(state.item_map).reduce((acc, [url, items]) => {
|
||||
return acc.concat(items)
|
||||
}, [])
|
||||
},
|
||||
}
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue