summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorUdo Walter2019-04-11 19:26:16 +0200
committerUdo Walter2019-04-11 19:26:16 +0200
commitcc64f6afae242049b81954c2408ee67508ad5e84 (patch)
treeabd62cf4d668ee7bf0d14bfec5d9065142dd7f21 /webapp
parent[server/external-backends] Fix dhcp registration stuff (diff)
downloadbas-cc64f6afae242049b81954c2408ee67508ad5e84.tar.gz
bas-cc64f6afae242049b81954c2408ee67508ad5e84.tar.xz
bas-cc64f6afae242049b81954c2408ee67508ad5e84.zip
[groups] add button to wake clients via
Diffstat (limited to 'webapp')
-rw-r--r--webapp/src/components/ConfiguratorModule.vue1
-rw-r--r--webapp/src/components/GroupModuleClientList.vue24
-rw-r--r--webapp/src/components/GroupModuleDialog.vue28
3 files changed, 41 insertions, 12 deletions
diff --git a/webapp/src/components/ConfiguratorModule.vue b/webapp/src/components/ConfiguratorModule.vue
index 7562021..b336943 100644
--- a/webapp/src/components/ConfiguratorModule.vue
+++ b/webapp/src/components/ConfiguratorModule.vue
@@ -173,6 +173,7 @@ export default {
created () {
this.$store.dispatch('configurator/loadData')
this.$store.dispatch('groups/loadGroupList')
+ this.$store.dispatch('groups/loadClientList')
}
}
</script>
diff --git a/webapp/src/components/GroupModuleClientList.vue b/webapp/src/components/GroupModuleClientList.vue
index 557d664..630c968 100644
--- a/webapp/src/components/GroupModuleClientList.vue
+++ b/webapp/src/components/GroupModuleClientList.vue
@@ -6,6 +6,7 @@
"ip": "IP Address",
"mac": "MAC Address",
"uuid": "UUID",
+ "wakeClients": "Wake one client up | Wake {0} clients up",
"removeClients": "Remove one client | Remove {0} clients",
"addClients": "Add clients",
"deleteClients": "Delete one client | Delete {0} clients",
@@ -17,6 +18,7 @@
"ip": "IP Adresse",
"mac": "MAC Adresse",
"uuid": "UUID",
+ "wakeClients": "Wecke einen Client auf | Wecke {0} Clients auf",
"removeClients": "Entferne einen Client | Entferne {0} Clients",
"addClients": "Füge Clients hinzu",
"deleteClients": "Lösche einen Clients | Lösche {0} Clients",
@@ -34,18 +36,23 @@
</div>
</data-table>
</v-card>
- <div v-if="tabIndex === 0" class="text-xs-right">
- <v-btn flat color="error" @click="deleteSelected" :disabled="selected.length === 0">
- <v-icon left>delete</v-icon>{{ $tc('deleteClients', selected.length, [selected.length]) }}
+ <div class="text-xs-right">
+ <v-btn flat color="primary" @click="wake" :disabled="selected.length === 0">
+ <v-icon left>notifications_active</v-icon>{{ $tc('wakeClients', selected.length, [selected.length]) }}
</v-btn>
- <v-btn flat color="success" @click="newClient"><v-icon left>create</v-icon>{{ $t('createClient') }}</v-btn>
- </div>
- <div v-else class="text-xs-right">
+ <template v-if="tabIndex === 0">
+ <v-btn flat color="error" @click="deleteSelected" :disabled="selected.length === 0">
+ <v-icon left>delete</v-icon>{{ $tc('deleteClients', selected.length, [selected.length]) }}
+ </v-btn>
+ <v-btn flat color="success" @click="newClient"><v-icon left>create</v-icon>{{ $t('createClient') }}</v-btn>
+ </template>
+ <template v-else>
<v-btn flat color="error" @click="removeSelected" :disabled="selected.length === 0">
<v-icon left>remove_circle_outline</v-icon>{{ $tc('removeClients', selected.length, [selected.length]) }}
</v-btn>
<v-btn flat color="success" @click="addExisting"><v-icon left>add_circle_outline</v-icon>{{ $t('addClients') }}</v-btn>
- </div>
+ </template>
+ </div>
</div>
</template>
@@ -96,6 +103,9 @@ export default {
},
addExisting () {
this.setDialog({ show: true, info: { action: 'add', type: 'client', selected: this.selected, tabIndex: this.tabIndex } })
+ },
+ wake () {
+ this.setDialog({ show: true, info: { action: 'wake', type: 'client', selected: this.selected, tabIndex: this.tabIndex } })
}
}
}
diff --git a/webapp/src/components/GroupModuleDialog.vue b/webapp/src/components/GroupModuleDialog.vue
index 4e38c0b..e9bb65d 100644
--- a/webapp/src/components/GroupModuleDialog.vue
+++ b/webapp/src/components/GroupModuleDialog.vue
@@ -17,6 +17,9 @@
"select": {
"group": "Select groups",
"client": "Select clients"
+ },
+ "wake": {
+ "client": "Wake this client up? | Wake these {0} clients up?"
}
},
"success": {
@@ -41,7 +44,8 @@
"id": "ID",
"name": "Name",
"description": "Description",
- "ip": "IP Address"
+ "ip": "IP Address",
+ "wake": "Wake up"
},
"de": {
"title": {
@@ -60,6 +64,9 @@
"select": {
"group": "Gruppen auswählen",
"client": "Clients auswählen"
+ },
+ "wake": {
+ "client": "Diesen Client aufwecken? | Diese {0} Clients aufwecken?"
}
},
"success": {
@@ -84,7 +91,8 @@
"id": "ID",
"name": "Name",
"description": "Beschreibung",
- "ip": "IP Adresse"
+ "ip": "IP Adresse",
+ "wake": "Aufwecken"
}
}
</i18n>
@@ -114,7 +122,7 @@
:items="items"
:row-count="$vuetify.breakpoint.smAndDown ? -1 : undefined"
></data-table>
- <div v-else-if="action === 'remove' || action === 'delete'" class="selected-list">
+ <div v-else-if="action === 'remove' || action === 'delete' || action === 'wake'" class="selected-list">
<v-checkbox
class="delete-checkbox"
v-if="dialog.info.action === 'remove'"
@@ -161,13 +169,15 @@ export default {
'add': 'success',
'remove': 'error',
'delete': 'error',
- 'select': 'primary'
+ 'select': 'primary',
+ 'wake': 'primary'
},
actionWidthMap: {
'add': '1000px',
'remove': '500px',
'delete': '500px',
- 'select': '1000px'
+ 'select': '1000px',
+ 'wake': '500px'
}
}
},
@@ -230,6 +240,14 @@ export default {
return
}
+ if (this.action === 'wake') {
+ this.$http.post('/api/wakerequests', {
+ clients: this.dialog.info.selected.map(x => x.id)
+ })
+ this.setDialog({ show: false })
+ return
+ }
+
const actionMap = {
'delete': { 'group': 'deleteGroups', 'client': 'deleteClients' },
'remove': { 'group': 'removeSubroups', 'client': 'removeClients' },