blob: 71df2a66fb28ae2a7dfdcb03094cb9cf74abc8bb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
<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>
<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"
class="chibisafe-input"
expanded />
</b-field>
<b-field
label="Upload folder"
message="Where to store the files relative to the working directory"
horizontal>
<b-input
v-model="settings.uploadFolder"
class="chibisafe-input"
expanded />
</b-field>
<b-field
label="Links per album"
message="Maximum links allowed per album"
horizontal>
<b-input
v-model="settings.linksPerAlbum"
class="chibisafe-input"
type="number"
expanded />
</b-field>
<b-field
label="Max upload size"
message="Maximum allowed file size in MB"
horizontal>
<b-input
v-model="settings.maxUploadSize"
class="chibisafe-input"
expanded />
</b-field>
<b-field
label="Filename length"
message="How many characters long should the generated filenames be"
horizontal>
<b-input
v-model="settings.filenameLength"
class="chibisafe-input"
expanded />
</b-field>
<b-field
label="Album link length"
message="How many characters a link for an album should have"
horizontal>
<b-input
v-model="settings.albumLinkLength"
class="chibisafe-input"
expanded />
</b-field>
<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>
<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>
<b-field
label="Public mode"
message="Enable anonymous uploades"
horizontal>
<b-switch
v-model="settings.publicMode"
:true-value="true"
:false-value="false" />
</b-field>
<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>
<div class="mb2 mt2 text-center">
<button
class="button is-primary"
@click="promptRestartService">
Save and restart service
</button>
</div>
</div>
</div>
</div>
</section>
</template>
<script>
import { mapState } from 'vuex';
import Sidebar from '~/components/sidebar/Sidebar.vue';
export default {
components: {
Sidebar
},
middleware: ['auth', 'admin', ({ store }) => {
try {
store.dispatch('admin/fetchSettings');
} catch (e) {
// eslint-disable-next-line no-console
console.error(e);
}
}],
metaInfo() {
return { title: 'Settings' };
},
computed: mapState({
settings: state => state.admin.settings
}),
methods: {
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()
});
},
restartService() {
this.$handler.executeAction('admin/restartService');
}
}
};
</script>
|