blob: f894271d51fbec33cfdf8ef319faf7ee620dccd0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const store = new Vuex.Store({
state: {
appTitle: 'Dubbo OPS',
area: null,
serviceItems: null,
appItems: null
},
mutations: {
setArea (state, area) {
state.area = area
},
setServiceItems (state, serviceItems) {
state.serviceItems = serviceItems
},
setAppItems (state, appItems) {
state.appItems = appItems
}
},
actions: {
changeArea ({commit}, area) {
commit('setArea', area)
},
/**
* Load service items from server, put results into storage.
*/
loadServiceItems ({commit}) {
Vue.prototype.$axios.get('/services')
.then(response => {
if (response.status === 200) {
const serviceItems = response.data
commit('setServiceItems', serviceItems)
}
})
},
/**
* Load application items from server, put results into storage.
*/
loadAppItems ({commit}) {
Vue.prototype.$axios.get('/applications')
.then(response => {
if (response.status === 200) {
const appItems = response.data
commit('setAppItems', appItems)
}
})
}
},
getters: {
/**
* Get service item arrays with filter
*/
getServiceItems: (state) => (filter) => {
return state.serviceItems.filter(e => {
return (e || '').toLowerCase().indexOf((filter || '').toLowerCase()) > -1
})
},
/**
* Get application item arrays with filter
*/
getAppItems: (state) => (filter) => {
return state.appItems.filter(e => {
return (e || '').toLowerCase().indexOf((filter || '').toLowerCase()) > -1
})
}
}
})