From 15f296a7805b7623f56eab67b74ab0bf93a038e1 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Tue, 7 Jul 2020 02:02:37 +0300 Subject: chore: eslint stores feat: merge album and images --- src/site/store/admin.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/site/store/admin.js (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3 From fd3f6de51a082dcd72c2ef557747e031ef7b9c4a Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 9 Jul 2020 02:24:40 +0300 Subject: refactor: refactor most of the admin pages to use the store instead of internal states --- src/site/store/admin.js | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index e69de29..2586a18 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -0,0 +1,93 @@ +export const state = () => ({ + users: [], + user: { + id: null, + username: null, + enabled: false, + createdAt: null, + editedAt: null, + apiKeyEditedAt: null, + isAdmin: null, + files: [], + }, + file: {}, + settings: {}, +}); + +export const actions = { + async fetchUsers({ commit }) { + const response = await this.$axios.$get('admin/users'); + commit('setUsers', response); + + return response; + }, + async fetchUser({ commit }, id) { + const response = await this.$axios.$get(`/admin/users/${id}`); + commit('setUserInfo', response); + + return response; + }, + async enableUser({ commit }, id) { + const response = await this.$axios.$post('admin/users/enable', { id }); + + commit('changeUserState', { userId: id, enabled: true }); + + return response; + }, + async disableUser({ commit }, id) { + const response = await this.$axios.$post('admin/users/disable', { id }); + + commit('changeUserState', { userId: id, enabled: false }); + + return response; + }, + async promoteUser({ commit }, id) { + const response = await this.$axios.$post('admin/users/promote', { id }); + + commit('changeUserState', { userId: id, isAdmin: true }); + + return response; + }, + async demoteUser({ commit }, id) { + const response = await this.$axios.$post('admin/users/demote', { id }); + + commit('changeUserState', { userId: id, isAdmin: false }); + + return response; + }, + async purgeUserFiles(_, id) { + const response = await this.$axios.$post('admin/users/purge', { id }); + + return response; + }, +}; + +export const mutations = { + setUsers(state, { users }) { + state.users = users; + }, + setUserInfo(state, { user, files }) { + state.user = { ...state.user, ...user }; + state.user.files = files || []; + }, + changeUserState(state, { userId, enabled, isAdmin }) { + const foundIndex = state.users.findIndex(({ id }) => id === userId); + if (foundIndex > -1) { + if (enabled !== undefined) { + state.users[foundIndex].enabled = enabled; + } + if (isAdmin !== undefined) { + state.users[foundIndex].isAdmin = isAdmin; + } + } + + if (state.user.id === userId) { + if (enabled !== undefined) { + state.user.enabled = enabled; + } + if (isAdmin !== undefined) { + state.user.isAdmin = isAdmin; + } + } + }, +}; -- cgit v1.2.3 From 0f66d807035d3e32a66c7dc9bf55fb3be99aedac Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Fri, 10 Jul 2020 01:13:51 +0300 Subject: refactor: finish refactoring all the components to use vuex --- src/site/store/admin.js | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index 2586a18..b31c446 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -15,6 +15,12 @@ export const state = () => ({ }); export const actions = { + async fetchSettings({ commit }) { + const response = await this.$axios.$get('service/config'); + commit('setSettings', response); + + return response; + }, async fetchUsers({ commit }) { const response = await this.$axios.$get('admin/users'); commit('setUsers', response); @@ -22,11 +28,23 @@ export const actions = { return response; }, async fetchUser({ commit }, id) { - const response = await this.$axios.$get(`/admin/users/${id}`); + const response = await this.$axios.$get(`admin/users/${id}`); + commit('setUserInfo', response); + + return response; + }, + async fetchFile({ commit }, id) { + const response = await this.$axios.$get(`file/${id}`); + commit('setFile', response); commit('setUserInfo', response); return response; }, + async banIP(_, ip) { + const response = await this.$axios.$post('admin/ban/ip', { ip }); + + return response; + }, async enableUser({ commit }, id) { const response = await this.$axios.$post('admin/users/enable', { id }); @@ -58,11 +76,19 @@ export const actions = { async purgeUserFiles(_, id) { const response = await this.$axios.$post('admin/users/purge', { id }); + return response; + }, + async restartService() { + const response = await this.$axios.$post('service/restart'); + return response; }, }; export const mutations = { + setSettings(state, { config }) { + state.settings = config; + }, setUsers(state, { users }) { state.users = users; }, @@ -70,6 +96,9 @@ export const mutations = { state.user = { ...state.user, ...user }; state.user.files = files || []; }, + setFile(state, { file }) { + state.file = file || {}; + }, changeUserState(state, { userId, enabled, isAdmin }) { const foundIndex = state.users.findIndex(({ id }) => id === userId); if (foundIndex > -1) { -- cgit v1.2.3 From c93ddb09008c45942544b13bbb03319c367f9cd8 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Sun, 19 Jul 2020 22:27:11 +0300 Subject: feat: Start working on a new album/tags/image info modal --- src/site/store/admin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index b31c446..04ad980 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -34,7 +34,7 @@ export const actions = { return response; }, async fetchFile({ commit }, id) { - const response = await this.$axios.$get(`file/${id}`); + const response = await this.$axios.$get(`admin/file/${id}`); commit('setFile', response); commit('setUserInfo', response); -- cgit v1.2.3 From 90001c2df56d58e69fd199a518ae7f3e4ed327fc Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 24 Dec 2020 10:40:50 +0200 Subject: chore: remove trailing commas --- src/site/store/admin.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/site/store/admin.js') diff --git a/src/site/store/admin.js b/src/site/store/admin.js index 04ad980..58b63b5 100644 --- a/src/site/store/admin.js +++ b/src/site/store/admin.js @@ -8,10 +8,10 @@ export const state = () => ({ editedAt: null, apiKeyEditedAt: null, isAdmin: null, - files: [], + files: [] }, file: {}, - settings: {}, + settings: {} }); export const actions = { @@ -82,7 +82,7 @@ export const actions = { const response = await this.$axios.$post('service/restart'); return response; - }, + } }; export const mutations = { @@ -118,5 +118,5 @@ export const mutations = { state.user.isAdmin = isAdmin; } } - }, + } }; -- cgit v1.2.3