diff --git a/frontend/src/App.vue b/frontend/src/App.vue index fde4448a..8ea4a84e 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -16,7 +16,7 @@ export default { }, computed: { ready () { - + return true } }, created () { diff --git a/frontend/src/components/API.js b/frontend/src/components/API.js index 9bf67869..3df88a0e 100644 --- a/frontend/src/components/API.js +++ b/frontend/src/components/API.js @@ -20,14 +20,34 @@ class Api { return axios.get('/api/services/'+id).then(response => (response.data)) } + async service_delete (id) { + return axios.delete('/api/services/'+id).then(response => (response.data)) + } + async groups () { return axios.get('/api/groups').then(response => (response.data)) } + async group_delete (id) { + return axios.delete('/api/groups/'+id).then(response => (response.data)) + } + + async group_create (data) { + return axios.post('/api/groups', data).then(response => (response.data)) + } + async users () { return axios.get('/api/users').then(response => (response.data)) } + async user_create (id) { + return axios.post('/api/users').then(response => (response.data)) + } + + async user_delete (id) { + return axios.delete('/api/users/'+id).then(response => (response.data)) + } + async messages () { return axios.get('/api/messages').then(response => (response.data)) } diff --git a/frontend/src/components/Dashboard/DashboardServices.vue b/frontend/src/components/Dashboard/DashboardServices.vue index 905a1795..3b1a1ab2 100644 --- a/frontend/src/components/Dashboard/DashboardServices.vue +++ b/frontend/src/components/Dashboard/DashboardServices.vue @@ -34,22 +34,24 @@ - {{service.name}} + + {{service.name}} + -
ONLINE
-
OFFLINE
+
ONLINE
+
OFFLINE
PUBLIC
PRIVATE
-
{{$store.getters.groupById(service.group_id).name}}
+
{{serviceGroup(service)}}
View - +
@@ -85,7 +87,7 @@
Edit - +
@@ -99,7 +101,7 @@
- +
@@ -109,10 +111,15 @@ diff --git a/frontend/src/components/Dashboard/DashboardUsers.vue b/frontend/src/components/Dashboard/DashboardUsers.vue index 8fad564e..9c306139 100644 --- a/frontend/src/components/Dashboard/DashboardUsers.vue +++ b/frontend/src/components/Dashboard/DashboardUsers.vue @@ -3,10 +3,10 @@

Users

- - - - + + + + @@ -15,11 +15,10 @@ -
Username
Username
Edit - +
@@ -27,45 +26,7 @@
-
-
- -
- -
-
- - - - - -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
- -
-
- -
+
@@ -78,13 +39,39 @@ name: 'DashboardUsers', data () { return { + user: { + username: "", + admin: false, + email: "", + password: "", + confirm_password: "" + } } }, created() { }, methods: { - + async saveUser(e) { + e.preventDefault(); + let u = this.user; + if (u.password === u.confirm_password) { + alert("Both password do not match") + return + } + const data = {name: this.group.name, public: this.group.public} + await Api.user_create(data) + const users = await Api.users() + this.$store.commit('setUsers', users) + }, + async deleteUser(u) { + let c = confirm(`Are you sure you want to delete user '${u.username}'?`) + if (c) { + await Api.user_delete(u.id) + const users = await Api.users() + this.$store.commit('setUsers', users) + } + } } } diff --git a/frontend/src/forms/Group.vue b/frontend/src/forms/Group.vue index e75ab324..0e9721a8 100644 --- a/frontend/src/forms/Group.vue +++ b/frontend/src/forms/Group.vue @@ -1,5 +1,5 @@ diff --git a/frontend/src/forms/ToggleSwitch.vue b/frontend/src/forms/ToggleSwitch.vue new file mode 100644 index 00000000..c95dc0ab --- /dev/null +++ b/frontend/src/forms/ToggleSwitch.vue @@ -0,0 +1,42 @@ + + + + + + diff --git a/frontend/src/forms/User.vue b/frontend/src/forms/User.vue new file mode 100644 index 00000000..866b4cdb --- /dev/null +++ b/frontend/src/forms/User.vue @@ -0,0 +1,82 @@ + + + + + +