aboutsummaryrefslogtreecommitdiff
path: root/src/site
diff options
context:
space:
mode:
Diffstat (limited to 'src/site')
-rw-r--r--src/site/store/.eslintrc.json5
-rw-r--r--src/site/store/admin.js0
-rw-r--r--src/site/store/album.js5
-rw-r--r--src/site/store/albums.js1
-rw-r--r--src/site/store/alert.js7
-rw-r--r--src/site/store/auth.js17
-rw-r--r--src/site/store/config.js5
-rw-r--r--src/site/store/images.js45
-rw-r--r--src/site/store/index.js5
9 files changed, 47 insertions, 43 deletions
diff --git a/src/site/store/.eslintrc.json b/src/site/store/.eslintrc.json
new file mode 100644
index 0000000..052e3ef
--- /dev/null
+++ b/src/site/store/.eslintrc.json
@@ -0,0 +1,5 @@
+{
+ "rules": {
+ "no-shadow": ["error", { "allow": ["state"] }]
+ }
+}
diff --git a/src/site/store/admin.js b/src/site/store/admin.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/site/store/admin.js
diff --git a/src/site/store/album.js b/src/site/store/album.js
index f7c88c9..d8ffacc 100644
--- a/src/site/store/album.js
+++ b/src/site/store/album.js
@@ -1,4 +1,3 @@
-/* eslint-disable no-shadow */
export const state = () => ({
files: [],
name: null,
@@ -36,6 +35,10 @@ export const actions = {
dispatch('alert/set', { text: e.message, error: true }, { root: true });
}
},
+ // TODO: Fix duplicate code between this store and files store
+ deleteFile({ commit }, fileId) {
+
+ },
};
export const mutations = {
diff --git a/src/site/store/albums.js b/src/site/store/albums.js
index f3d7bcf..2b4ac60 100644
--- a/src/site/store/albums.js
+++ b/src/site/store/albums.js
@@ -1,4 +1,3 @@
-/* eslint-disable no-shadow */
import Vue from 'vue';
export const state = () => ({
diff --git a/src/site/store/alert.js b/src/site/store/alert.js
index 78c0eaf..ff38e09 100644
--- a/src/site/store/alert.js
+++ b/src/site/store/alert.js
@@ -1,7 +1,6 @@
-/* eslint-disable no-shadow */
const getDefaultState = () => ({
text: null,
- error: false
+ error: false,
});
export const state = getDefaultState;
@@ -12,7 +11,7 @@ export const actions = {
},
clear({ commit }) {
commit('clear');
- }
+ },
};
export const mutations = {
@@ -22,5 +21,5 @@ export const mutations = {
},
clear(state) {
Object.assign(state, getDefaultState());
- }
+ },
};
diff --git a/src/site/store/auth.js b/src/site/store/auth.js
index 55009ce..69de9ec 100644
--- a/src/site/store/auth.js
+++ b/src/site/store/auth.js
@@ -1,8 +1,5 @@
-/* eslint-disable no-shadow */
-// only used so I could keep the convention of naming the first param as "state" in mutations
const getDefaultState = () => ({
loggedIn: false,
- isLoading: false,
user: null,
token: null,
});
@@ -23,18 +20,14 @@ export const actions = {
dispatch('alert/set', { text: e.message, error: true }, { root: true });
}
},
- async login({ commit, dispatch }, { username, password }) {
+ async login({ commit }, { username, password }) {
commit('loginRequest');
- try {
- const data = await this.$axios.$post('auth/login', { username, password });
- this.$axios.setToken(data.token, 'Bearer');
+ const data = await this.$axios.$post('auth/login', { username, password });
+ this.$axios.setToken(data.token, 'Bearer');
- commit('setToken', data.token);
- commit('loginSuccess', { token: data.token, user: data.user });
- } catch (e) {
- dispatch('alert/set', { text: e.message, error: true }, { root: true });
- }
+ commit('setToken', data.token);
+ commit('loginSuccess', { token: data.token, user: data.user });
},
async fetchCurrentUser({ commit, dispatch }) {
try {
diff --git a/src/site/store/config.js b/src/site/store/config.js
index 6202f84..f52fc0f 100644
--- a/src/site/store/config.js
+++ b/src/site/store/config.js
@@ -1,4 +1,3 @@
-/* eslint-disable no-shadow */
export const state = () => ({
development: true,
version: '4.0.0',
@@ -9,11 +8,11 @@ export const state = () => ({
chunkSize: 90,
maxLinksPerAlbum: 5,
publicMode: false,
- userAccounts: false
+ userAccounts: false,
});
export const mutations = {
set(state, config) {
Object.assign(state, config);
- }
+ },
};
diff --git a/src/site/store/images.js b/src/site/store/images.js
index 14f475a..d02219f 100644
--- a/src/site/store/images.js
+++ b/src/site/store/images.js
@@ -1,19 +1,21 @@
-/* eslint-disable no-shadow */
export const state = () => ({
files: [],
isLoading: false,
pagination: {
page: 1,
limit: 30,
- totalFiles: 0
- }
+ totalFiles: 0,
+ },
+ name: null,
+ downloadEnabled: false,
});
export const getters = {
getTotalFiles: ({ pagination }) => pagination.totalFiles,
getFetchedCount: ({ files }) => files.length,
shouldPaginate: ({ pagination }) => pagination.totalFiles > pagination.limit,
- getLimit: ({ pagination }) => pagination.limit
+ getLimit: ({ pagination }) => pagination.limit,
+ getName: ({ name }) => name,
};
export const actions = {
@@ -23,34 +25,37 @@ export const actions = {
page = page || 1;
try {
- const response = await this.$axios.$get(`files`, { params: { limit: state.pagination.limit, page } });
+ const response = await this.$axios.$get('files', { params: { limit: state.pagination.limit, page } });
- commit('setFiles', { files: response.files });
- commit('updatePaginationMeta', { totalFiles: response.count, page });
+ commit('setFilesAndMeta', { ...response, page });
} catch (e) {
dispatch('alert/set', { text: e.message, error: true }, { root: true });
}
},
- async fetchById({ commit, dispatch }) {
- try {
- const response = await this.$axios.$get('verify');
- commit('loginSuccess', response);
- } catch (e) {
- dispatch('alert/set', { text: e.message, error: true }, { root: true });
- }
- }
+ async fetchByAlbumId({ commit, dispatch, state }, { id, page }) {
+ commit('setIsLoading');
+
+ page = page || 1;
+
+ const response = await this.$axios.$get(`album/${id}/full`, {
+ params: { limit: state.pagination.limit, page },
+ });
+
+ commit('setFilesAndMeta', { ...response, page });
+ },
};
export const mutations = {
setIsLoading(state) {
state.isLoading = true;
},
- setFiles(state, { files }) {
+ setFilesAndMeta(state, {
+ files, name, page, count,
+ }) {
state.files = files || [];
+ state.name = name ?? null;
state.isLoading = false;
- },
- updatePaginationMeta(state, { page, totalFiles }) {
state.pagination.page = page || 1;
- state.pagination.totalFiles = totalFiles || 0;
- }
+ state.pagination.totalFiles = count || 0;
+ },
};
diff --git a/src/site/store/index.js b/src/site/store/index.js
index 8f910ae..c0faffb 100644
--- a/src/site/store/index.js
+++ b/src/site/store/index.js
@@ -1,5 +1,6 @@
import config from '../../../dist/config.json';
+// eslint-disable-next-line import/prefer-default-export
export const actions = {
async nuxtClientInit({ commit, dispatch }) {
commit('config/set', config);
@@ -8,8 +9,8 @@ export const actions = {
if (!cookies.token) return dispatch('auth/logout');
commit('auth/setToken', cookies.token);
- await dispatch('auth/verify');
- }
+ return dispatch('auth/verify');
+ },
/* alert({ commit }, payload) {
if (!payload) return commit('alert', null);
commit('alert', {