From ad852de51a0d2dd5d29c08838d5a430c58849e74 Mon Sep 17 00:00:00 2001
From: Zephyrrus <krisztian1997@gmail.com>
Date: Wed, 8 Jul 2020 04:00:12 +0300
Subject: chore: linter the entire project using the new rules

---
 src/site/pages/dashboard/admin/settings.vue | 85 +++++++++++++++++++----------
 1 file changed, 55 insertions(+), 30 deletions(-)

(limited to 'src/site/pages/dashboard/admin/settings.vue')

diff --git a/src/site/pages/dashboard/admin/settings.vue b/src/site/pages/dashboard/admin/settings.vue
index 2d59fff..9e63a7c 100644
--- a/src/site/pages/dashboard/admin/settings.vue
+++ b/src/site/pages/dashboard/admin/settings.vue
@@ -6,87 +6,112 @@
 					<Sidebar />
 				</div>
 				<div class="column">
-					<h2 class="subtitle">Service settings</h2>
+					<h2 class="subtitle">
+						Service settings
+					</h2>
 					<hr>
 
-					<b-field label="Service name"
+					<b-field
+						label="Service name"
 						message="Please enter the name which this service is gonna be identified as"
 						horizontal>
-						<b-input v-model="options.serviceName"
+						<b-input
+							v-model="options.serviceName"
 							expanded />
 					</b-field>
 
-					<b-field label="Upload folder"
+					<b-field
+						label="Upload folder"
 						message="Where to store the files relative to the working directory"
 						horizontal>
-						<b-input v-model="options.uploadFolder"
+						<b-input
+							v-model="options.uploadFolder"
 							expanded />
 					</b-field>
 
-					<b-field label="Links per album"
+					<b-field
+						label="Links per album"
 						message="Maximum links allowed per album"
 						horizontal>
-						<b-input v-model="options.linksPerAlbum"
+						<b-input
+							v-model="options.linksPerAlbum"
 							type="number"
 							expanded />
 					</b-field>
 
-					<b-field label="Max upload size"
+					<b-field
+						label="Max upload size"
 						message="Maximum allowed file size in MB"
 						horizontal>
-						<b-input v-model="options.maxUploadSize"
+						<b-input
+							v-model="options.maxUploadSize"
 							expanded />
 					</b-field>
 
-					<b-field label="Filename length"
+					<b-field
+						label="Filename length"
 						message="How many characters long should the generated filenames be"
 						horizontal>
-						<b-input v-model="options.filenameLength"
+						<b-input
+							v-model="options.filenameLength"
 							expanded />
 					</b-field>
 
-					<b-field label="Album link length"
+					<b-field
+						label="Album link length"
 						message="How many characters a link for an album should have"
 						horizontal>
-						<b-input v-model="options.albumLinkLength"
+						<b-input
+							v-model="options.albumLinkLength"
 							expanded />
 					</b-field>
 
-					<b-field label="Generate thumbnails"
+					<b-field
+						label="Generate thumbnails"
 						message="Generate thumbnails when uploading a file if possible"
 						horizontal>
-						<b-switch v-model="options.generateThumbnails"
+						<b-switch
+							v-model="options.generateThumbnails"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
 
-					<b-field label="Generate zips"
+					<b-field
+						label="Generate zips"
 						message="Allow generating zips to download entire albums"
 						horizontal>
-						<b-switch v-model="options.generateZips"
+						<b-switch
+							v-model="options.generateZips"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
 
-					<b-field label="Public mode"
+					<b-field
+						label="Public mode"
 						message="Enable anonymous uploades"
 						horizontal>
-						<b-switch v-model="options.publicMode"
+						<b-switch
+							v-model="options.publicMode"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
 
-					<b-field label="Enable creating account"
+					<b-field
+						label="Enable creating account"
 						message="Enable creating new accounts in the platform"
 						horizontal>
-						<b-switch v-model="options.enableAccounts"
+						<b-switch
+							v-model="options.enableAccounts"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
 
 					<div class="mb2 mt2 text-center">
-						<button class="button is-primary"
-							@click="promptRestartService">Save and restart service</button>
+						<button
+							class="button is-primary"
+							@click="promptRestartService">
+							Save and restart service
+						</button>
 					</div>
 				</div>
 			</div>
@@ -99,12 +124,12 @@ import Sidebar from '~/components/sidebar/Sidebar.vue';
 
 export default {
 	components: {
-		Sidebar
+		Sidebar,
 	},
 	middleware: ['auth', 'admin'],
 	data() {
 		return {
-			options: {}
+			options: {},
 		};
 	},
 	metaInfo() {
@@ -115,19 +140,19 @@ export default {
 	},
 	methods: {
 		async getSettings() {
-			const response = await this.$axios.$get(`service/config`);
+			const response = await this.$axios.$get('service/config');
 			this.options = response.config;
 		},
 		promptRestartService() {
 			this.$buefy.dialog.confirm({
 				message: 'Keep in mind that restarting only works if you have PM2 or something similar set up. Continue?',
-				onConfirm: () => this.restartService()
+				onConfirm: () => this.restartService(),
 			});
 		},
 		async restartService() {
-			const response = await this.$axios.$post(`service/restart`);
+			const response = await this.$axios.$post('service/restart');
 			this.$buefy.toast.open(response.message);
-		}
-	}
+		},
+	},
 };
 </script>
-- 
cgit v1.2.3


From 0f66d807035d3e32a66c7dc9bf55fb3be99aedac Mon Sep 17 00:00:00 2001
From: Zephyrrus <krisztian1997@gmail.com>
Date: Fri, 10 Jul 2020 01:13:51 +0300
Subject: refactor: finish refactoring all the components to use vuex

---
 src/site/pages/dashboard/admin/settings.vue | 50 ++++++++++++++---------------
 1 file changed, 24 insertions(+), 26 deletions(-)

(limited to 'src/site/pages/dashboard/admin/settings.vue')

diff --git a/src/site/pages/dashboard/admin/settings.vue b/src/site/pages/dashboard/admin/settings.vue
index 9e63a7c..7f6a0fe 100644
--- a/src/site/pages/dashboard/admin/settings.vue
+++ b/src/site/pages/dashboard/admin/settings.vue
@@ -16,7 +16,7 @@
 						message="Please enter the name which this service is gonna be identified as"
 						horizontal>
 						<b-input
-							v-model="options.serviceName"
+							v-model="settings.serviceName"
 							expanded />
 					</b-field>
 
@@ -25,7 +25,7 @@
 						message="Where to store the files relative to the working directory"
 						horizontal>
 						<b-input
-							v-model="options.uploadFolder"
+							v-model="settings.uploadFolder"
 							expanded />
 					</b-field>
 
@@ -34,7 +34,7 @@
 						message="Maximum links allowed per album"
 						horizontal>
 						<b-input
-							v-model="options.linksPerAlbum"
+							v-model="settings.linksPerAlbum"
 							type="number"
 							expanded />
 					</b-field>
@@ -44,7 +44,7 @@
 						message="Maximum allowed file size in MB"
 						horizontal>
 						<b-input
-							v-model="options.maxUploadSize"
+							v-model="settings.maxUploadSize"
 							expanded />
 					</b-field>
 
@@ -53,7 +53,7 @@
 						message="How many characters long should the generated filenames be"
 						horizontal>
 						<b-input
-							v-model="options.filenameLength"
+							v-model="settings.filenameLength"
 							expanded />
 					</b-field>
 
@@ -62,7 +62,7 @@
 						message="How many characters a link for an album should have"
 						horizontal>
 						<b-input
-							v-model="options.albumLinkLength"
+							v-model="settings.albumLinkLength"
 							expanded />
 					</b-field>
 
@@ -71,7 +71,7 @@
 						message="Generate thumbnails when uploading a file if possible"
 						horizontal>
 						<b-switch
-							v-model="options.generateThumbnails"
+							v-model="settings.generateThumbnails"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
@@ -81,7 +81,7 @@
 						message="Allow generating zips to download entire albums"
 						horizontal>
 						<b-switch
-							v-model="options.generateZips"
+							v-model="settings.generateZips"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
@@ -91,7 +91,7 @@
 						message="Enable anonymous uploades"
 						horizontal>
 						<b-switch
-							v-model="options.publicMode"
+							v-model="settings.publicMode"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
@@ -101,7 +101,7 @@
 						message="Enable creating new accounts in the platform"
 						horizontal>
 						<b-switch
-							v-model="options.enableAccounts"
+							v-model="settings.enableAccounts"
 							:true-value="true"
 							:false-value="false" />
 					</b-field>
@@ -120,38 +120,36 @@
 </template>
 
 <script>
+import { mapState } from 'vuex';
 import Sidebar from '~/components/sidebar/Sidebar.vue';
 
 export default {
 	components: {
 		Sidebar,
 	},
-	middleware: ['auth', 'admin'],
-	data() {
-		return {
-			options: {},
-		};
-	},
+	middleware: ['auth', 'admin', ({ store }) => {
+		try {
+			store.dispatch('admin/fetchSettings');
+		} catch (e) {
+			// eslint-disable-next-line no-console
+			console.error(e);
+		}
+	}],
 	metaInfo() {
 		return { title: 'Settings' };
 	},
-	mounted() {
-		this.getSettings();
-	},
+	computed: mapState({
+		settings: (state) => state.admin.settings,
+	}),
 	methods: {
-		async getSettings() {
-			const response = await this.$axios.$get('service/config');
-			this.options = response.config;
-		},
 		promptRestartService() {
 			this.$buefy.dialog.confirm({
 				message: 'Keep in mind that restarting only works if you have PM2 or something similar set up. Continue?',
 				onConfirm: () => this.restartService(),
 			});
 		},
-		async restartService() {
-			const response = await this.$axios.$post('service/restart');
-			this.$buefy.toast.open(response.message);
+		restartService() {
+			this.$handler.executeAction('admin/restartService');
 		},
 	},
 };
-- 
cgit v1.2.3

