summaryrefslogtreecommitdiffstats
path: root/webapp/src/components/GroupModuleClientView.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/GroupModuleClientView.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/GroupModuleClientView.vue')
-rw-r--r--webapp/src/components/GroupModuleClientView.vue56
1 files changed, 25 insertions, 31 deletions
diff --git a/webapp/src/components/GroupModuleClientView.vue b/webapp/src/components/GroupModuleClientView.vue
index 68298c4..f01b5c7 100644
--- a/webapp/src/components/GroupModuleClientView.vue
+++ b/webapp/src/components/GroupModuleClientView.vue
@@ -7,7 +7,8 @@
"groups": "Groups",
"ip": "IP Address",
"mac": "MAC Address",
- "uuid": "UUID"
+ "uuid": "UUID",
+ "more": "more"
},
"de": {
"name": "Name",
@@ -16,7 +17,8 @@
"groups": "Gruppen",
"ip": "IP Adresse",
"mac": "MAC Adresse",
- "uuid": "UUID"
+ "uuid": "UUID",
+ "more": "mehr"
}
}
</i18n>
@@ -40,29 +42,15 @@
</v-flex>
<v-flex>
<div class="info-box">
- <div class="body-2 info-heading">
- <v-icon>device_hub</v-icon><span>{{ $t('groups') }}</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 ref="datatable" v-model="groups" :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('groups') }}</span></div>
<div class="info-text">
- <div>
- <v-chip
- v-for="(group, index) in groupChips"
- :key="group.id"
- v-if="index <= 5"
- small
- :close="editMode"
- @input="removeGroupChip(index)"
- >
+ <select-box v-if="editMode" v-model="groups" :items="groupList"></select-box>
+ <div v-else class="chip-container">
+ <v-chip v-for="(group, index) in client.groups" :key="group.id" v-if="index < 5" small label style="width: calc(50% - 8px)">
{{ group.name || group.id }}
</v-chip>
- <span v-if="groupChips && groupChips.length > 5" class="and-more-chip">...</span>
- <span v-if="groupChips && groupChips.length === 0">-</span>
+ <span v-if="client.groups && client.groups.length > 5" class="and-more">+ {{ client.groups.length - 5 }} {{ $t('more') }}</span>
+ <span v-else-if="client.groups === undefined || client.groups.length === 0">-</span>
</div>
</div>
</div>
@@ -151,14 +139,14 @@
</template>
<script>
-import DataTable from '@/components/DataTable'
+import SelectBox from '@/components/SelectBox'
import { mapState, mapMutations } from 'vuex'
export default {
name: 'GroupModuleClientView',
props: ['tabIndex', 'client'],
components: {
- DataTable
+ SelectBox
},
data () {
return {
@@ -179,10 +167,6 @@ export default {
configName () {
return this.$store.state.groups.configNames[this.client.configId]
},
- groupChips () {
- if (this.editMode) return this.groups
- else return this.client.groups
- },
headers () {
return [
{ key: 'name', text: this.$t('name') }
@@ -197,9 +181,6 @@ export default {
},
methods: {
...mapMutations('groups', ['setDialog']),
- removeGroupChip (index) {
- this.groups.splice(index, 1)
- },
editInfo () {
this.editMode = true
this.info.name = this.client.name
@@ -250,6 +231,19 @@ export default {
margin: 0;
}
+.chip-container {
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+}
+
+.and-more {
+ font-size: 13px;
+ display: flex;
+ align-items: center;
+ margin: 4px 17px;
+}
+
.info-box {
padding: 20px;
}