diff --git a/ui/src/components/Server.vue b/ui/src/components/Server.vue index 5a70e94a9105248b0bca8d90f925c3e14ff96237..ce1501a039b451e4c451798de55e04e9d863c9c3 100644 --- a/ui/src/components/Server.vue +++ b/ui/src/components/Server.vue @@ -3,11 +3,9 @@ <v-row> <v-col cols="12"> <v-card dark> - <v-list-item> - <v-list-item-content> - <v-list-item-title class="headline">Server's interface configuration</v-list-item-title> - </v-list-item-content> - </v-list-item> + <v-card-title> + Server's interface configuration + </v-card-title> <div class="d-flex flex-no-wrap justify-space-between"> <v-col cols="12"> <v-text-field @@ -50,11 +48,17 @@ </v-col> <v-col cols="12"> <v-card dark> - <v-list-item> - <v-list-item-content> - <v-list-item-title class="headline">Client's global configuration</v-list-item-title> - </v-list-item-content> - </v-list-item> + <v-card-title> + Client's global configuration + <v-spacer></v-spacer> + <v-btn + color="warning" + @click="applyGlobals" + > + Apply globals to all clients + <v-icon right dark>mdi-update</v-icon> + </v-btn> + </v-card-title> <div class="d-flex flex-no-wrap justify-space-between"> <v-col cols="12"> <v-text-field @@ -125,11 +129,9 @@ <v-row> <v-col cols="12"> <v-card dark> - <v-list-item> - <v-list-item-content> - <v-list-item-title class="headline">Interface configuration hooks</v-list-item-title> - </v-list-item-content> - </v-list-item> + <v-card-title> + Interface configuration hooks + </v-card-title> <div class="d-flex flex-no-wrap justify-space-between"> <v-col cols="12"> <v-text-field @@ -190,6 +192,7 @@ ...mapGetters({ server: 'server/server', config: 'server/config', + clients: 'client/clients', }), }, @@ -204,6 +207,19 @@ updateServer: 'update', }), + ...mapActions('client', { + updateClient: 'update', + }), + + applyGlobals(){ + this.update() + + this.clients.forEach(client => { + client.allowedips = this.server.allowedips + this.updateClient(client) + }) + }, + update() { // convert int values this.server.listenPort = parseInt(this.server.listenPort, 10);