summaryrefslogtreecommitdiffstats
path: root/webapp/src/components/GroupModuleGroupView.vue
diff options
context:
space:
mode:
authorUdo Walter2019-02-25 07:54:40 +0100
committerUdo Walter2019-02-25 07:54:40 +0100
commit484f76be15caf517ced58930bf950ffe0d049e36 (patch)
tree139d45121ec57150e846d3987ebd486afcbe9805 /webapp/src/components/GroupModuleGroupView.vue
parentMerge (diff)
downloadbas-484f76be15caf517ced58930bf950ffe0d049e36.tar.gz
bas-484f76be15caf517ced58930bf950ffe0d049e36.tar.xz
bas-484f76be15caf517ced58930bf950ffe0d049e36.zip
[webapp/selectbox] new selectbox component
Diffstat (limited to 'webapp/src/components/GroupModuleGroupView.vue')
-rw-r--r--webapp/src/components/GroupModuleGroupView.vue70
1 files changed, 36 insertions, 34 deletions
diff --git a/webapp/src/components/GroupModuleGroupView.vue b/webapp/src/components/GroupModuleGroupView.vue
index f7a0151..6f78d07 100644
--- a/webapp/src/components/GroupModuleGroupView.vue
+++ b/webapp/src/components/GroupModuleGroupView.vue
@@ -13,7 +13,8 @@
"parents": "Parents",
"startIp": "Start IP",
"endIp": "End IP",
- "selectParents": "Select parents"
+ "selectParents": "Select parents",
+ "more": "more"
},
"de": {
"info": "Info",
@@ -28,7 +29,8 @@
"parents": "Übergruppen",
"startIp": "Start IP",
"endIp": "End IP",
- "selectParents": "Übergruppen auswählen"
+ "selectParents": "Übergruppen auswählen",
+ "more": "mehr"
}
}
</i18n>
@@ -52,29 +54,15 @@
</v-flex>
<v-flex>
<div class="info-box">
- <div class="body-2 info-heading">
- <v-icon>device_hub</v-icon><span>{{ $t('parents') }}</span>
- <v-menu v-if="editMode" offset-y :close-on-content-click="false" lazy>
- <v-btn slot="activator" small icon class="info-heading-button"><v-icon>edit</v-icon></v-btn>
- <v-card>
- <data-table v-model="parents" :headers="headers" :items="groupList" slim :row-count="6"></data-table>
- </v-card>
- </v-menu>
- </div>
+ <div class="body-2 info-heading"><v-icon>device_hub</v-icon><span>{{ $t('parents') }}</span></div>
<div class="info-text">
- <div>
- <v-chip
- v-for="(parent, index) in parentChips"
- :key="parent.id"
- v-if="index <= 5"
- small
- :close="editMode"
- @input="removeParentChip(index)"
- >
+ <select-box v-if="editMode" v-model="parents" :items="groupList"></select-box>
+ <div v-else class="chip-container">
+ <v-chip v-for="(parent, index) in group.parents" :key="parent.id" v-if="index < 5" small label style="width: calc(50% - 8px)">
{{ parent.name || parent.id }}
</v-chip>
- <span v-if="parentChips && parentChips.length > 5" class="and-more-chip">...</span>
- <span v-if="parentChips && parentChips.length === 0">-</span>
+ <span v-if="group.parents && group.parents.length > 5" class="and-more">+ {{ group.parents.length - 5 }} {{ $t('more') }}</span>
+ <span v-else-if="group.parents === undefined || group.parents.length === 0">-</span>
</div>
</div>
</div>
@@ -181,16 +169,24 @@
<script>
import GroupModuleGroupList from '@/components/GroupModuleGroupList'
import GroupModuleClientList from '@/components/GroupModuleClientList'
-import DataTable from '@/components/DataTable'
+import SelectBox from '@/components/SelectBox'
import { mapState, mapMutations } from 'vuex'
export default {
name: 'GroupModuleGroupView',
- props: ['tabIndex', 'group'],
+ props: {
+ group: {
+ type: Object,
+ default: {}
+ },
+ tabIndex: {
+ type: Number
+ }
+ },
components: {
GroupModuleGroupList,
GroupModuleClientList,
- DataTable
+ SelectBox
},
data () {
return {
@@ -209,10 +205,6 @@ export default {
configName () {
return this.$store.state.groups.configNames[this.group.configId]
},
- parentChips () {
- if (this.editMode) return this.parents
- else return this.group.parents
- },
headers () {
return [
{ key: 'name', text: this.$t('name') }
@@ -237,9 +229,6 @@ export default {
addIprange () {
this.ipranges.push({ startIp: '', endIp: '' })
},
- removeParentChip (index) {
- this.parents.splice(index, 1)
- },
editInfo () {
this.editMode = true
this.info.name = this.group.name
@@ -296,8 +285,21 @@ export default {
min-height: 34px;
}
-.iprange >>> input {
- font-size: 14px;
+.iprange >>> .v-label, .iprange >>> input {
+ font-size: 14px !important;
+}
+
+.chip-container {
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+}
+
+.and-more {
+ font-size: 13px;
+ display: flex;
+ align-items: center;
+ margin: 4px 17px;
}
.ip-seperator {