summaryrefslogtreecommitdiffstats
path: root/webapp/src
diff options
context:
space:
mode:
authorUdo Walter2018-11-15 23:53:28 +0100
committerUdo Walter2018-11-15 23:53:28 +0100
commitca97f3e10dddd004808212c9bb5d446763050c80 (patch)
tree705e174451ee0ff8d6a421591464b8ff032a952d /webapp/src
parent[groups] API method getGroup: forgot to include clients with all=true (diff)
downloadbas-ca97f3e10dddd004808212c9bb5d446763050c80.tar.gz
bas-ca97f3e10dddd004808212c9bb5d446763050c80.tar.xz
bas-ca97f3e10dddd004808212c9bb5d446763050c80.zip
[webapp/groups] add loading indicator to the group and client tables
Diffstat (limited to 'webapp/src')
-rw-r--r--webapp/src/components/ComponentSearchTable.vue5
-rw-r--r--webapp/src/components/GroupModuleClientList.vue5
-rw-r--r--webapp/src/components/GroupModuleGroupList.vue5
-rw-r--r--webapp/src/store/groups.js5
4 files changed, 18 insertions, 2 deletions
diff --git a/webapp/src/components/ComponentSearchTable.vue b/webapp/src/components/ComponentSearchTable.vue
index 30c3600..23aa071 100644
--- a/webapp/src/components/ComponentSearchTable.vue
+++ b/webapp/src/components/ComponentSearchTable.vue
@@ -61,6 +61,7 @@
:items="items"
:select-all="selectAll"
:item-key="itemKey"
+ :loading="loading"
v-bind="dataTableProps"
:value="value"
@input="$emit('input', $event)"
@@ -102,6 +103,10 @@ export default {
type: String,
default: () => 'id'
},
+ loading: {
+ type: Boolean,
+ default: () => false
+ },
dataTableProps: {
type: Object,
default: () => {}
diff --git a/webapp/src/components/GroupModuleClientList.vue b/webapp/src/components/GroupModuleClientList.vue
index f64563c..35819d5 100644
--- a/webapp/src/components/GroupModuleClientList.vue
+++ b/webapp/src/components/GroupModuleClientList.vue
@@ -28,7 +28,7 @@
<template>
<div>
<v-card>
- <component-search-table v-model="selected" :headers="headers" :items="clients" select-all>
+ <component-search-table v-model="selected" :headers="headers" :items="clients" select-all :loading="loading">
<template slot="items" slot-scope="row">
<tr :style="row.color" @click="row.data.selected = !row.data.selected" @dblclick="loadClient(row.data.item)">
<td class="narrow-td">
@@ -90,6 +90,9 @@ export default {
{ text: this.$t('uuid'), value: 'uuid' },
{ sortable: false }
]
+ },
+ loading () {
+ return this.$store.state.groups.tabChain[this.tabIndex].loading
}
},
watch: {
diff --git a/webapp/src/components/GroupModuleGroupList.vue b/webapp/src/components/GroupModuleGroupList.vue
index 1984ef8..896eeaa 100644
--- a/webapp/src/components/GroupModuleGroupList.vue
+++ b/webapp/src/components/GroupModuleGroupList.vue
@@ -24,7 +24,7 @@
<template>
<div>
<v-card>
- <component-search-table v-model="selected" :headers="headers" :items="groups" select-all>
+ <component-search-table v-model="selected" :headers="headers" :items="groups" select-all :loading="loading">
<template slot="items" slot-scope="row">
<tr :style="row.color" @click="row.data.selected = !row.data.selected" @dblclick="loadGroup(row.data.item)">
<td class="narrow-td">
@@ -82,6 +82,9 @@ export default {
{ text: this.$t('description'), value: 'description' },
{ sortable: false }
]
+ },
+ loading () {
+ return this.$store.state.groups.tabChain[this.tabIndex].loading
}
},
watch: {
diff --git a/webapp/src/store/groups.js b/webapp/src/store/groups.js
index 12eea4f..1bbded9 100644
--- a/webapp/src/store/groups.js
+++ b/webapp/src/store/groups.js
@@ -1,3 +1,4 @@
+import Vue from 'vue'
import axios from 'axios'
export default {
@@ -34,6 +35,9 @@ export default {
}
state.tabChain.splice(index, 1, item)
},
+ setTabLoading (state, index) {
+ if (state.tabChain.length > index) Vue.set(state.tabChain[index], 'loading', true)
+ },
setDialog (state, { show, info }) {
if (info !== undefined) state.dialog.info = info
if (show !== undefined) state.dialog.show = show
@@ -61,6 +65,7 @@ export default {
if (context.state.tabChain.length <= tabIndex || context.state.tabChain[tabIndex].id !== id) {
context.commit('setTab', { index: tabIndex, item: { id, name, tabType: 'group', tabShowAll: showAll, subgroups: [], clients: [] } })
}
+ context.commit('setTabLoading', tabIndex)
if (switchTab) context.commit('setActiveTab', tabIndex)
axios.get('/api/groups/getGroup?id=' + id + (showAll ? '&all=true' : '')).then(res => {
res.data.tabType = 'group'