mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-24 06:48:35 +02:00
Started import work
This commit is contained in:
@@ -4,6 +4,7 @@ import Vuex from 'vuex'
|
||||
import auth from '@/store/modules/auth'
|
||||
import domains from '@/store/modules/domains'
|
||||
import identities from '@/store/modules/identities'
|
||||
import providers from '@/store/modules/providers'
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
@@ -11,7 +12,8 @@ export default new Vuex.Store({
|
||||
modules: {
|
||||
auth,
|
||||
domains,
|
||||
identities
|
||||
identities,
|
||||
providers
|
||||
},
|
||||
strict: process.env.NODE_ENV !== 'production'
|
||||
})
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
import Vue from 'vue'
|
||||
import providerApi from '@/api/imap_migration/providers'
|
||||
|
||||
// mutation types
|
||||
export const ADD_PROVIDER = 'ADD_PROVIDER'
|
||||
export const UPDATE_PROVIDER = 'SET_PROVIDER'
|
||||
export const SET_PROVIDERS = 'SET_PROVIDERS'
|
||||
export const DELETE_PROVIDER = 'DELETE_PROVIDER'
|
||||
|
||||
const state = {
|
||||
providersLoaded: false,
|
||||
providers: []
|
||||
}
|
||||
|
||||
const getters = {
|
||||
providers: state => state.providers
|
||||
}
|
||||
|
||||
const actions = {
|
||||
getProviders ({ commit }, params) {
|
||||
return providerApi.getProviders(params).then(response => {
|
||||
commit(SET_PROVIDERS, { providers: response.data })
|
||||
})
|
||||
},
|
||||
createProvider ({ commit }, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
providerApi.createProvider(data).then(response => {
|
||||
commit(ADD_PROVIDER, { provider: response.data })
|
||||
resolve(response)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
updateProvider ({ commit }, data) {
|
||||
return providerApi.updateProvider(data.id, data).then(response => {
|
||||
commit(UPDATE_PROVIDER, { provider: response.data })
|
||||
})
|
||||
},
|
||||
deleteProvider ({ commit }, data) {
|
||||
return providerApi.deleteProvider(data.id).then(response => {
|
||||
commit(DELETE_PROVIDER, data)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const mutations = {
|
||||
[SET_PROVIDERS] (state, { providers }) {
|
||||
state.providersLoaded = true
|
||||
state.providers = providers
|
||||
},
|
||||
[ADD_PROVIDER] (state, { provider }) {
|
||||
state.providers.push(provider)
|
||||
},
|
||||
[UPDATE_PROVIDER] (state, { provider }) {
|
||||
state.providers.forEach(function (item, pos) {
|
||||
if (item.pk === provider.pk) {
|
||||
Vue.set(state.providers, pos, provider)
|
||||
}
|
||||
})
|
||||
},
|
||||
[DELETE_PROVIDER] (state, data) {
|
||||
state.providers = state.providers.filter(item => item.id !== data.id)
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state,
|
||||
getters,
|
||||
actions,
|
||||
mutations
|
||||
}
|
||||
Reference in New Issue
Block a user