v3.0.0/src/site/pages/dashboard/admin/settings.vue

163 lines
3.7 KiB
Vue
Raw Normal View History

2018-09-16 06:09:02 +02:00
<template>
<section class="section is-fullheight dashboard">
<div class="container">
<div class="columns">
<div class="column is-narrow">
<Sidebar />
</div>
<div class="column">
<h2 class="subtitle">
Service settings
</h2>
<hr>
2018-09-16 06:09:02 +02:00
<b-field
label="Service name"
message="Please enter the name which this service is gonna be identified as"
horizontal>
<b-input
v-model="settings.serviceName"
2020-12-25 12:45:22 +01:00
class="chibisafe-input"
expanded />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Upload folder"
message="Where to store the files relative to the working directory"
horizontal>
<b-input
v-model="settings.uploadFolder"
2020-12-25 12:45:22 +01:00
class="chibisafe-input"
expanded />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Links per album"
message="Maximum links allowed per album"
horizontal>
<b-input
v-model="settings.linksPerAlbum"
2020-12-25 12:45:22 +01:00
class="chibisafe-input"
type="number"
expanded />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Max upload size"
message="Maximum allowed file size in MB"
horizontal>
<b-input
v-model="settings.maxUploadSize"
2020-12-25 12:45:22 +01:00
class="chibisafe-input"
expanded />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Filename length"
message="How many characters long should the generated filenames be"
horizontal>
<b-input
v-model="settings.filenameLength"
2020-12-25 12:45:22 +01:00
class="chibisafe-input"
expanded />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Album link length"
message="How many characters a link for an album should have"
horizontal>
<b-input
v-model="settings.albumLinkLength"
2020-12-25 12:45:22 +01:00
class="chibisafe-input"
expanded />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Generate thumbnails"
message="Generate thumbnails when uploading a file if possible"
horizontal>
<b-switch
v-model="settings.generateThumbnails"
:true-value="true"
:false-value="false" />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Generate zips"
message="Allow generating zips to download entire albums"
horizontal>
<b-switch
v-model="settings.generateZips"
:true-value="true"
:false-value="false" />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Public mode"
message="Enable anonymous uploades"
horizontal>
<b-switch
v-model="settings.publicMode"
:true-value="true"
:false-value="false" />
</b-field>
2019-02-26 14:26:03 +01:00
<b-field
label="Enable creating account"
message="Enable creating new accounts in the platform"
horizontal>
<b-switch
v-model="settings.enableAccounts"
:true-value="true"
:false-value="false" />
</b-field>
2019-02-26 14:26:03 +01:00
<div class="mb2 mt2 text-center">
<button
class="button is-primary"
@click="promptRestartService">
Save and restart service
</button>
2018-09-16 06:09:02 +02:00
</div>
</div>
</div>
</div>
</section>
</template>
<script>
import { mapState } from 'vuex';
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: {
2020-12-24 09:40:50 +01:00
Sidebar
2018-09-16 06:09:02 +02:00
},
middleware: ['auth', 'admin', ({ store }) => {
try {
store.dispatch('admin/fetchSettings');
} catch (e) {
// eslint-disable-next-line no-console
console.error(e);
}
}],
2018-09-16 06:09:02 +02:00
metaInfo() {
return { title: 'Settings' };
},
computed: mapState({
2020-12-24 15:45:16 +01:00
settings: state => state.admin.settings
}),
2018-09-16 06:09:02 +02:00
methods: {
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?',
2020-12-24 09:40:50 +01:00
onConfirm: () => this.restartService()
2019-02-28 15:26:44 +01:00
});
},
restartService() {
this.$handler.executeAction('admin/restartService');
2020-12-24 09:40:50 +01:00
}
}
2018-09-16 06:09:02 +02:00
};
</script>