50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
/**
|
|
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
import { OverviewApi } from '../services/OverviewApi.js'
|
|
Vue.use(Vuex)
|
|
|
|
const apiClient = new OverviewApi()
|
|
export default {
|
|
state: {
|
|
assignedCards: [],
|
|
loading: false,
|
|
},
|
|
getters: {
|
|
assignedCardsDashboard: state => {
|
|
return state.assignedCards
|
|
},
|
|
},
|
|
mutations: {
|
|
setAssignedCards(state, assignedCards) {
|
|
state.assignedCards = assignedCards
|
|
},
|
|
setLoading(state, promise) {
|
|
state.loading = promise
|
|
},
|
|
},
|
|
actions: {
|
|
async loadUpcoming({ state, commit }) {
|
|
if (state.loading) {
|
|
return state.loading
|
|
}
|
|
const promise = (async () => {
|
|
commit('setCurrentBoard', null)
|
|
const assignedCards = await apiClient.get('upcoming')
|
|
const assignedCardsFlat = Object.values(assignedCards).flat()
|
|
for (const i in assignedCardsFlat) {
|
|
commit('addCard', assignedCardsFlat[i])
|
|
}
|
|
commit('setAssignedCards', assignedCards)
|
|
commit('setLoading', false)
|
|
})()
|
|
commit('setLoading', promise)
|
|
return promise
|
|
},
|
|
},
|
|
}
|