summaryrefslogtreecommitdiffstats
path: root/webapp/src/components/GroupModuleGroupView.vue
diff options
context:
space:
mode:
authorUdo Walter2019-02-23 10:09:53 +0100
committerUdo Walter2019-02-23 10:09:53 +0100
commit681ea394286be38e36635566d84500b0b91b923e (patch)
tree71772b20bc12fae3688322830ffdc4d9337e592a /webapp/src/components/GroupModuleGroupView.vue
parentmerge (diff)
downloadbas-681ea394286be38e36635566d84500b0b91b923e.tar.gz
bas-681ea394286be38e36635566d84500b0b91b923e.tar.xz
bas-681ea394286be38e36635566d84500b0b91b923e.zip
[webapp/groups] add delete button to groups and clients
Diffstat (limited to 'webapp/src/components/GroupModuleGroupView.vue')
-rw-r--r--webapp/src/components/GroupModuleGroupView.vue57
1 files changed, 23 insertions, 34 deletions
diff --git a/webapp/src/components/GroupModuleGroupView.vue b/webapp/src/components/GroupModuleGroupView.vue
index 5403b61..dc4ce29 100644
--- a/webapp/src/components/GroupModuleGroupView.vue
+++ b/webapp/src/components/GroupModuleGroupView.vue
@@ -47,32 +47,14 @@
</div>
</v-flex>
<v-flex>
- <v-autocomplete
- prepend-icon="device_hub"
- v-if="editMode"
- class="info-input"
- :items="$store.state.groups.groupList"
- v-model="parents"
- :menu-props="{ offsetY: '' }"
- :label="$t('parents')"
- color="primary"
- multiple
- item-value="id"
- item-text="name"
- return-object
- small-chips
- deletable-chips
- >
- </v-autocomplete>
- <div v-else class="info-input">
+
+ <div class="info-input">
<div class="body-2 info-heading"><v-icon>device_hub</v-icon><span>{{ $t('parents') }}</span></div>
<div class="info-text">
- <template v-if="group.parents && group.parents.length > 0">
- <v-chip v-for="parent in group.parents" :key="parent.id" small>
- {{ parent.name || parent.id }}
- </v-chip>
- </template>
- <span v-else>-</span>
+ <v-chip v-for="parent in group.parents" :key="parent.id" small>
+ {{ parent.name || parent.id }}
+ </v-chip>
+ <span v-if="group.parents && group.parents.length === 0">-</span>
</div>
</div>
</v-flex>
@@ -108,7 +90,7 @@
</div>
<div v-else class="info-input">
<div class="body-2 info-heading"><v-icon>settings_ethernet</v-icon><span>{{ $t('ipranges') }}</span></div>
- <div class="info-text ipranges-nonedit">
+ <div class="info-text">
<table>
<tr v-for="(iprange, index) in group.ipranges" :key="index">
<td class="text-xs-right">{{ iprange.startIp }}</td>
@@ -116,15 +98,20 @@
<td>{{ iprange.endIp }}</td>
</tr>
</table>
- <div v-if="group.ipranges.length === 0">-</div>
+ <div v-if="group.ipranges && group.ipranges.length === 0">-</div>
</div>
</div>
</v-flex>
<v-flex lg4 xs12 order-lg3 order-xs1 class="text-xs-right">
<div class="info-input">
- <v-btn v-if="!editMode" color="primary" flat @click="editInfo" class="info-buttons">
- <v-icon left>create</v-icon>{{ $t('edit') }}
- </v-btn>
+ <div v-if="!editMode">
+ <v-btn color="error" flat @click="deleteGroup" class="info-buttons">
+ <v-icon left>delete</v-icon>{{ $t('delete') }}
+ </v-btn>
+ <v-btn color="primary" flat @click="editInfo" class="info-buttons">
+ <v-icon left>create</v-icon>{{ $t('edit') }}
+ </v-btn>
+ </div>
<div v-else>
<v-btn color="primary" flat @click="cancelEdit" class="info-buttons">{{ $t('cancel') }}</v-btn>
<v-btn color="primary" @click="saveData" class="info-buttons">
@@ -159,6 +146,7 @@
<script>
import GroupModuleGroupList from '@/components/GroupModuleGroupList'
import GroupModuleClientList from '@/components/GroupModuleClientList'
+import { mapMutations } from 'vuex'
export default {
name: 'GroupModuleGroupView',
@@ -194,6 +182,7 @@ export default {
}
},
methods: {
+ ...mapMutations('groups', ['setDialog']),
setShowAll (value) {
this.$store.commit('groups/setShowAll', { index: this.tabIndex, value })
this.$store.dispatch('groups/loadGroup', { id: this.group.id, tabIndex: this.tabIndex, reload: true })
@@ -231,6 +220,9 @@ export default {
})
this.editMode = false
},
+ deleteGroup () {
+ this.setDialog({ show: true, info: { action: 'delete', type: 'group', selected: [this.group] } })
+ },
updateUrl (id) {
this.$router.replace({
name: 'GroupModule.group',
@@ -255,11 +247,7 @@ export default {
align-items: center;
}
-.ipranges-nonedit {
- overflow-x: auto;
-}
-
-.ipranges-nonedit .ip-seperator {
+.ip-seperator {
padding: 0 10px;
}
@@ -294,6 +282,7 @@ export default {
}
.info-text {
+ overflow-x: auto;
margin-left: 34px;
font-family: 'Roboto Mono';
}