2018-09-16 06:09:02 +02:00
|
|
|
<template>
|
2019-10-12 14:14:19 +02:00
|
|
|
<section class="hero is-fullheight dashboard">
|
2018-09-16 06:09:02 +02:00
|
|
|
<div class="hero-body">
|
|
|
|
<div class="container">
|
|
|
|
<div class="columns">
|
|
|
|
<div class="column is-narrow">
|
2018-09-19 09:45:50 +02:00
|
|
|
<Sidebar />
|
2018-09-16 06:09:02 +02:00
|
|
|
</div>
|
|
|
|
<div class="column">
|
2019-02-26 14:26:03 +01:00
|
|
|
<h2 class="subtitle">Service settings</h2>
|
|
|
|
<hr>
|
2018-09-16 06:09:02 +02:00
|
|
|
|
2019-02-26 14:26:03 +01:00
|
|
|
<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"
|
|
|
|
expanded />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Upload folder"
|
|
|
|
message="Where to store the files relative to the working directory"
|
|
|
|
horizontal>
|
|
|
|
<b-input v-model="options.uploadFolder"
|
|
|
|
expanded />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Links per album"
|
|
|
|
message="Maximum links allowed per album"
|
|
|
|
horizontal>
|
|
|
|
<b-input v-model="options.linksPerAlbum"
|
|
|
|
type="number"
|
|
|
|
expanded />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Max upload size"
|
|
|
|
message="Maximum allowed file size in MB"
|
|
|
|
horizontal>
|
|
|
|
<b-input v-model="options.maxUploadSize"
|
|
|
|
expanded />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Filename length"
|
|
|
|
message="How many characters long should the generated filenames be"
|
|
|
|
horizontal>
|
|
|
|
<b-input v-model="options.filenameLength"
|
|
|
|
expanded />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Album link length"
|
|
|
|
message="How many characters a link for an album should have"
|
|
|
|
horizontal>
|
2019-02-28 15:26:44 +01:00
|
|
|
<b-input v-model="options.albumLinkLength"
|
2019-02-26 14:26:03 +01:00
|
|
|
expanded />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Generate thumbnails"
|
|
|
|
message="Generate thumbnails when uploading a file if possible"
|
|
|
|
horizontal>
|
|
|
|
<b-switch v-model="options.generateThumbnails"
|
|
|
|
:true-value="true"
|
|
|
|
:false-value="false" />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Generate zips"
|
|
|
|
message="Allow generating zips to download entire albums"
|
|
|
|
horizontal>
|
|
|
|
<b-switch v-model="options.generateZips"
|
|
|
|
:true-value="true"
|
|
|
|
:false-value="false" />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Public mode"
|
|
|
|
message="Enable anonymous uploades"
|
|
|
|
horizontal>
|
|
|
|
<b-switch v-model="options.publicMode"
|
|
|
|
:true-value="true"
|
|
|
|
:false-value="false" />
|
|
|
|
</b-field>
|
|
|
|
|
|
|
|
<b-field label="Enable creating account"
|
|
|
|
message="Enable creating new accounts in the platform"
|
|
|
|
horizontal>
|
2019-02-28 15:26:44 +01:00
|
|
|
<b-switch v-model="options.enableAccounts"
|
2019-02-26 14:26:03 +01:00
|
|
|
:true-value="true"
|
|
|
|
:false-value="false" />
|
|
|
|
</b-field>
|
|
|
|
|
2019-02-28 15:26:44 +01:00
|
|
|
<div class="mb2 mt2 text-center">
|
|
|
|
<button class="button is-primary"
|
|
|
|
@click="promptRestartService">Save and restart service</button>
|
|
|
|
</div>
|
2018-09-16 06:09:02 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2018-09-19 09:45:50 +02:00
|
|
|
import Sidebar from '~/components/sidebar/Sidebar.vue';
|
2018-09-16 06:09:02 +02:00
|
|
|
|
|
|
|
export default {
|
|
|
|
components: {
|
2018-09-19 09:45:50 +02:00
|
|
|
Sidebar
|
2018-09-16 06:09:02 +02:00
|
|
|
},
|
2019-10-12 13:16:10 +02:00
|
|
|
middleware: 'admin',
|
2018-09-16 06:09:02 +02:00
|
|
|
data() {
|
|
|
|
return {
|
2019-02-26 14:26:03 +01:00
|
|
|
options: {}
|
2018-09-16 06:09:02 +02:00
|
|
|
};
|
|
|
|
},
|
|
|
|
metaInfo() {
|
|
|
|
return { title: 'Settings' };
|
|
|
|
},
|
|
|
|
mounted() {
|
2019-02-28 15:26:44 +01:00
|
|
|
this.getSettings();
|
2018-09-16 06:09:02 +02:00
|
|
|
},
|
|
|
|
methods: {
|
2019-02-28 15:26:44 +01:00
|
|
|
async getSettings() {
|
2019-04-24 10:36:28 +02:00
|
|
|
const response = await this.$axios.$get(`service/config`);
|
|
|
|
this.options = response.config;
|
2019-02-28 15:26:44 +01:00
|
|
|
},
|
|
|
|
promptRestartService() {
|
2019-10-12 08:47:25 +02:00
|
|
|
this.$buefy.dialog.confirm({
|
2019-02-28 15:26:44 +01:00
|
|
|
message: 'Keep in mind that restarting only works if you have PM2 or something similar set up. Continue?',
|
|
|
|
onConfirm: () => this.restartService()
|
|
|
|
});
|
|
|
|
},
|
2019-02-26 14:26:03 +01:00
|
|
|
async restartService() {
|
2019-04-24 10:36:28 +02:00
|
|
|
const response = await this.$axios.$post(`service/restart`);
|
2019-10-12 08:47:25 +02:00
|
|
|
this.$buefy.toast.open(response.message);
|
2019-02-26 14:26:03 +01:00
|
|
|
}
|
2018-09-16 06:09:02 +02:00
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|