diff --git a/public/index.html b/public/index.html index 6ea0474..60f6ebf 100644 --- a/public/index.html +++ b/public/index.html @@ -60,11 +60,6 @@ + + diff --git a/src/components/app/Tabs/AdminPanel.vue b/src/components/app/Tabs/AdminPanel.vue index 92ebc50..53bdcff 100644 --- a/src/components/app/Tabs/AdminPanel.vue +++ b/src/components/app/Tabs/AdminPanel.vue @@ -8,7 +8,6 @@ diff --git a/src/components/app/Tabs/AdminPanel/UsersPanel.vue b/src/components/app/Tabs/AdminPanel/UsersPanel.vue index 7180289..3adc5d5 100644 --- a/src/components/app/Tabs/AdminPanel/UsersPanel.vue +++ b/src/components/app/Tabs/AdminPanel/UsersPanel.vue @@ -1,8 +1,19 @@ - Recently Created Accounts + Manage Accounts + - + @@ -15,14 +26,32 @@ export default { components: { UserTemplate }, data() { return { - users: null + users: null, + searchedUsers: null }; }, - async mounted() { - const { ok, result } = await adminService.fetchRecentCreatedUsers(); - if (ok) { - this.users = result.data; + methods: { + async recentUsers() { + const { ok, result } = await adminService.fetchRecentCreatedUsers(); + if (ok) { + this.users = result.data; + } + }, + async inputEvent(event) { + const value = event.target.value; + if (value.trim() == "") { + this.searchedUsers = null; + await this.recentUsers(); + return; + } + const { ok, result } = await adminService.fetchSearchUsers(value); + if (ok) { + this.searchedUsers = result.data; + } } + }, + async mounted() { + await this.recentUsers(); } }; @@ -45,4 +74,9 @@ export default { .list { overflow: auto; } +.search { + width: initial; + margin: 0; + height: 10px; +} diff --git a/src/services/adminService.js b/src/services/adminService.js index 5690179..bb082c0 100644 --- a/src/services/adminService.js +++ b/src/services/adminService.js @@ -4,6 +4,9 @@ export default { fetchRecentCreatedUsers() { return wrapper(instance().get(`admin/users/recent`)); }, + fetchSearchUsers(search) { + return wrapper(instance().get(`admin/users/search/${search}`)); + }, fetchOnlineUsers() { return wrapper(instance().get(`admin/users/online`)); }, @@ -15,5 +18,10 @@ export default { }, approveTheme(id) { return wrapper(instance().patch(`admin/themes/${id}/approve`)); + }, + suspendUser(uniqueID, password) { + return wrapper( + instance().delete(`admin/users/${uniqueID}`, { data: { password } }) + ); } };