forked from AkkomaGang/admin-fe
[1.0.1] Server config fixes
This commit is contained in:
parent
c9684059ca
commit
30c15dbc62
24 changed files with 184 additions and 384 deletions
|
@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [1.0.1] - 2019-08-15
|
||||
### Fixed
|
||||
|
||||
- fixes inputs for renders_errors and rewrite_policy settings
|
||||
- removes unnecessary computed properties
|
||||
- enables source maps for production build
|
||||
|
||||
## [1.0.0] - 2019-08-14
|
||||
|
||||
Starting this changelog, for now we have:
|
||||
|
|
|
@ -65,7 +65,7 @@ module.exports = {
|
|||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
productionSourceMap: false,
|
||||
productionSourceMap: true,
|
||||
// https://webpack.js.org/configuration/devtool/#production
|
||||
devtool: 'source-map',
|
||||
|
||||
|
|
|
@ -18,80 +18,80 @@ const getters = {
|
|||
users: state => state.users.fetchedUsers,
|
||||
authHost: state => state.user.authHost,
|
||||
|
||||
activityPubConfig: state => state.settings.settings['activitypub'],
|
||||
adminTokenConfig: state => state.settings.settings['admin_token'],
|
||||
assetsConfig: state => state.settings.settings['assets'],
|
||||
authConfig: state => state.settings.settings['auth'],
|
||||
autoLinkerConfig: state => state.settings.settings['auto_linker'],
|
||||
captchaConfig: state => state.settings.settings['Pleroma.Captcha'],
|
||||
chatConfig: state => state.settings.settings['chat'],
|
||||
consoleConfig: state => state.settings.settings['console'],
|
||||
activityPub: state => state.settings.settings['activitypub'],
|
||||
adminToken: state => state.settings.settings['admin_token'],
|
||||
assets: state => state.settings.settings['assets'],
|
||||
auth: state => state.settings.settings['auth'],
|
||||
autoLinker: state => state.settings.settings['auto_linker'],
|
||||
captcha: state => state.settings.settings['Pleroma.Captcha'],
|
||||
chat: state => state.settings.settings['chat'],
|
||||
consoleLogger: state => state.settings.settings['console'],
|
||||
corsPlugCredentials: state => state.settings.settings['credentials'],
|
||||
corsPlugExposeConfig: state => state.settings.settings['expose'],
|
||||
corsPlugExpose: state => state.settings.settings['expose'],
|
||||
corsPlugHeaders: state => state.settings.settings['headers'],
|
||||
corsPlugMaxAge: state => state.settings.settings['max_age'],
|
||||
corsPlugMethods: state => state.settings.settings['methods'],
|
||||
databaseConfig: state => state.settings.settings['database'],
|
||||
ectoReposConfig: state => state.settings.settings['ecto_repos'],
|
||||
emojiConfig: state => state.settings.settings['emoji'],
|
||||
enabledConfig: state => state.settings.settings['enabled'],
|
||||
endpointConfig: state => state.settings.settings['Pleroma.Web.Endpoint'],
|
||||
exsysloggerConfig: state => state.settings.settings['ex_syslogger'],
|
||||
facebookConfig: state => state.settings.settings['Ueberauth.Strategy.Facebook.OAuth'],
|
||||
fetchInitialPostsConfig: state => state.settings.settings['fetch_initial_posts'],
|
||||
formatEncodersConfig: state => state.settings.settings['format_encoders'],
|
||||
frontendConfig: state => state.settings.settings['frontend_configurations'],
|
||||
googleConfig: state => state.settings.settings['Ueberauth.Strategy.Google.OAuth'],
|
||||
gopherConfig: state => state.settings.settings['gopher'],
|
||||
hackneyPoolsConfig: state => state.settings.settings['hackney_pools'],
|
||||
handlerConfig: state => state.settings.settings['handler'],
|
||||
httpConfig: state => state.settings.settings['http'],
|
||||
httpSecurityConfig: state => state.settings.settings['http_security'],
|
||||
instanceConfig: state => state.settings.settings['instance'],
|
||||
kocaptchaConfig: state => state.settings.settings['Pleroma.Captcha.Kocaptcha'],
|
||||
levelConfig: state => state.settings.settings['level'],
|
||||
ldapConfig: state => state.settings.settings['ldap'],
|
||||
loggerBackendsConfig: state => state.settings.settings['backends'],
|
||||
mailerConfig: state => state.settings.settings['Pleroma.Emails.Mailer'],
|
||||
markupConfig: state => state.settings.settings['markup'],
|
||||
mediaProxyConfig: state => state.settings.settings['media_proxy'],
|
||||
metaConfig: state => state.settings.settings['meta'],
|
||||
metadataConfig: state => state.settings.settings['Pleroma.Web.Metadata'],
|
||||
microsoftConfig: state => state.settings.settings['Ueberauth.Strategy.Microsoft.OAuth'],
|
||||
database: state => state.settings.settings['database'],
|
||||
ectoRepos: state => state.settings.settings['ecto_repos'],
|
||||
emoji: state => state.settings.settings['emoji'],
|
||||
enabled: state => state.settings.settings['enabled'],
|
||||
endpoint: state => state.settings.settings['Pleroma.Web.Endpoint'],
|
||||
exsyslogger: state => state.settings.settings['ex_syslogger'],
|
||||
facebook: state => state.settings.settings['Ueberauth.Strategy.Facebook.OAuth'],
|
||||
fetchInitialPosts: state => state.settings.settings['fetch_initial_posts'],
|
||||
formatEncoders: state => state.settings.settings['format_encoders'],
|
||||
frontend: state => state.settings.settings['frontend_configurations'],
|
||||
google: state => state.settings.settings['Ueberauth.Strategy.Google.OAuth'],
|
||||
gopher: state => state.settings.settings['gopher'],
|
||||
hackneyPools: state => state.settings.settings['hackney_pools'],
|
||||
handler: state => state.settings.settings['handler'],
|
||||
http: state => state.settings.settings['http'],
|
||||
httpSecurity: state => state.settings.settings['http_security'],
|
||||
instance: state => state.settings.settings['instance'],
|
||||
kocaptcha: state => state.settings.settings['Pleroma.Captcha.Kocaptcha'],
|
||||
level: state => state.settings.settings['level'],
|
||||
ldap: state => state.settings.settings['ldap'],
|
||||
loggerBackends: state => state.settings.settings['backends'],
|
||||
mailer: state => state.settings.settings['Pleroma.Emails.Mailer'],
|
||||
markup: state => state.settings.settings['markup'],
|
||||
mediaProxy: state => state.settings.settings['media_proxy'],
|
||||
meta: state => state.settings.settings['meta'],
|
||||
metadata: state => state.settings.settings['Pleroma.Web.Metadata'],
|
||||
microsoft: state => state.settings.settings['Ueberauth.Strategy.Microsoft.OAuth'],
|
||||
mimeTypesConfig: state => state.settings.settings['types'],
|
||||
mrfHellthreadConfig: state => state.settings.settings['mrf_hellthread'],
|
||||
mrfKeywordConfig: state => state.settings.settings['mrf_keyword'],
|
||||
mrfMentionConfig: state => state.settings.settings['mrf_mention'],
|
||||
mrfNormalizeMarkupConfig: state => state.settings.settings['mrf_normalize_markup'],
|
||||
mrfRejectnonpublicConfig: state => state.settings.settings['mrf_rejectnonpublic'],
|
||||
mrfSimpleConfig: state => state.settings.settings['mrf_simple'],
|
||||
mrfSubchainConfig: state => state.settings.settings['mrf_subchain'],
|
||||
mrfUserAllowlistConfig: state => state.settings.settings['mrf_user_allowlist'],
|
||||
oauth2Config: state => state.settings.settings['oauth2'],
|
||||
passwordAuthenticatorConfig: state => state.settings.settings['password_authenticator'],
|
||||
pleromaAuthenticatorConfig: state => state.settings.settings['Pleroma.Web.Auth.Authenticator'],
|
||||
pleromaRepoConfig: state => state.settings.settings['Pleroma.Repo'],
|
||||
pleromaUserConfig: state => state.settings.settings['Pleroma.User'],
|
||||
portConfig: state => state.settings.settings['port'],
|
||||
privDirConfig: state => state.settings.settings['priv_dir'],
|
||||
queuesConfig: state => state.settings.settings['queues'],
|
||||
rateLimitersConfig: state => state.settings.settings['rate_limit'],
|
||||
retryQueueConfig: state => state.settings.settings['Pleroma.Web.Federator.RetryQueue'],
|
||||
richMediaConfig: state => state.settings.settings['rich_media'],
|
||||
suggestionsConfig: state => state.settings.settings['suggestions'],
|
||||
scheduledActivityConfig: state => state.settings.settings['Pleroma.ScheduledActivity'],
|
||||
teslaAdapterConfig: state => state.settings.settings['adapter'],
|
||||
twitterConfig: state => state.settings.settings['Ueberauth.Strategy.Twitter.OAuth'],
|
||||
ueberauthConfig: state => state.settings.settings['Ueberauth'],
|
||||
uploadAnonymizeFilenameConfig: state => state.settings.settings['Pleroma.Upload.Filter.AnonymizeFilename'],
|
||||
uploadConfig: state => state.settings.settings['Pleroma.Upload'],
|
||||
uploadFilterMogrifyConfig: state => state.settings.settings['Pleroma.Upload.Filter.Mogrify'],
|
||||
uploadersLocalConfig: state => state.settings.settings['Pleroma.Uploaders.Local'],
|
||||
uploadMDIIConfig: state => state.settings.settings['Pleroma.Uploaders.MDII'],
|
||||
uploadS3Config: state => state.settings.settings['Pleroma.Uploaders.S3'],
|
||||
uriSchemesConfig: state => state.settings.settings['uri_schemes'],
|
||||
userConfig: state => state.settings.settings['user'],
|
||||
vapidDetailsConfig: state => state.settings.settings['vapid_details'],
|
||||
webhookUrlConfig: state => state.settings.settings['webhook_url']
|
||||
mrfHellthread: state => state.settings.settings['mrf_hellthread'],
|
||||
mrfKeyword: state => state.settings.settings['mrf_keyword'],
|
||||
mrfMention: state => state.settings.settings['mrf_mention'],
|
||||
mrfNormalizeMarkup: state => state.settings.settings['mrf_normalize_markup'],
|
||||
mrfRejectnonpublic: state => state.settings.settings['mrf_rejectnonpublic'],
|
||||
mrfSimple: state => state.settings.settings['mrf_simple'],
|
||||
mrfSubchain: state => state.settings.settings['mrf_subchain'],
|
||||
mrfUserAllowlist: state => state.settings.settings['mrf_user_allowlist'],
|
||||
oauth2: state => state.settings.settings['oauth2'],
|
||||
passwordAuthenticator: state => state.settings.settings['password_authenticator'],
|
||||
pleromaAuthenticator: state => state.settings.settings['Pleroma.Web.Auth.Authenticator'],
|
||||
pleromaRepo: state => state.settings.settings['Pleroma.Repo'],
|
||||
pleromaUser: state => state.settings.settings['Pleroma.User'],
|
||||
port: state => state.settings.settings['port'],
|
||||
privDir: state => state.settings.settings['priv_dir'],
|
||||
queues: state => state.settings.settings['queues'],
|
||||
rateLimiters: state => state.settings.settings['rate_limit'],
|
||||
retryQueue: state => state.settings.settings['Pleroma.Web.Federator.RetryQueue'],
|
||||
richMedia: state => state.settings.settings['rich_media'],
|
||||
suggestions: state => state.settings.settings['suggestions'],
|
||||
scheduledActivity: state => state.settings.settings['Pleroma.ScheduledActivity'],
|
||||
teslaAdapter: state => state.settings.settings['adapter'],
|
||||
twitter: state => state.settings.settings['Ueberauth.Strategy.Twitter.OAuth'],
|
||||
ueberauth: state => state.settings.settings['Ueberauth'],
|
||||
uploadAnonymizeFilename: state => state.settings.settings['Pleroma.Upload.Filter.AnonymizeFilename'],
|
||||
upload: state => state.settings.settings['Pleroma.Upload'],
|
||||
uploadFilterMogrify: state => state.settings.settings['Pleroma.Upload.Filter.Mogrify'],
|
||||
uploadersLocal: state => state.settings.settings['Pleroma.Uploaders.Local'],
|
||||
uploadMDII: state => state.settings.settings['Pleroma.Uploaders.MDII'],
|
||||
uploadS3: state => state.settings.settings['Pleroma.Uploaders.S3'],
|
||||
uriSchemes: state => state.settings.settings['uri_schemes'],
|
||||
user: state => state.settings.settings['user'],
|
||||
vapidDetails: state => state.settings.settings['vapid_details'],
|
||||
webhookUrl: state => state.settings.settings['webhook_url']
|
||||
}
|
||||
export default getters
|
||||
|
|
|
@ -47,20 +47,14 @@ export default {
|
|||
name: 'ActivityPub',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'activityPubConfig',
|
||||
'userConfig'
|
||||
'activityPub',
|
||||
'user'
|
||||
]),
|
||||
activityPub() {
|
||||
return this.activityPubConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
labelWidth() {
|
||||
return this.isMobile ? '100px' : '210px'
|
||||
},
|
||||
user() {
|
||||
return this.userConfig
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="OAuth consumer strategies">
|
||||
<el-input :value="auth.oauth_consumer_strategies" @input="updateSetting($event, 'auth', 'oauth_consumer_strategies')"/>
|
||||
<el-select :value="auth.oauth_consumer_strategies || []" multiple filterable allow-create @change="updateSetting($event, 'auth', 'oauth_consumer_strategies')"/>
|
||||
<p class="expl">The list of enabled OAuth consumer strategies; by default it's set by
|
||||
<span class="code">OAUTH_CONSUMER_STRATEGIES</span>
|
||||
environment variable. You can enter values in the following format: <span class="code">'a:foo b:baz'</span>
|
||||
|
@ -238,43 +238,16 @@ export default {
|
|||
name: 'Authentication',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'pleromaAuthenticatorConfig',
|
||||
'ldapConfig',
|
||||
'authConfig',
|
||||
'ueberauthConfig',
|
||||
'oauth2Config',
|
||||
'facebookConfig',
|
||||
'googleConfig',
|
||||
'twitterConfig',
|
||||
'microsoftConfig'
|
||||
'pleromaAuthenticator',
|
||||
'ldap',
|
||||
'auth',
|
||||
'ueberauth',
|
||||
'oauth2',
|
||||
'facebook',
|
||||
'google',
|
||||
'twitter',
|
||||
'microsoft'
|
||||
]),
|
||||
auth() {
|
||||
return this.authConfig
|
||||
},
|
||||
ldap() {
|
||||
return this.ldapConfig
|
||||
},
|
||||
oauth2() {
|
||||
return this.oauth2Config
|
||||
},
|
||||
pleromaAuthenticator() {
|
||||
return this.pleromaAuthenticatorConfig
|
||||
},
|
||||
ueberauth() {
|
||||
return this.ueberauthConfig
|
||||
},
|
||||
facebook() {
|
||||
return this.facebookConfig
|
||||
},
|
||||
google() {
|
||||
return this.googleConfig
|
||||
},
|
||||
twitter() {
|
||||
return this.twitterConfig
|
||||
},
|
||||
microsoft() {
|
||||
return this.microsoftConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<el-form v-if="!loading" ref="auto_linker" :model="auto_linker" :label-width="labelWidth">
|
||||
<el-form v-if="!loading" ref="autoLinker" :model="autoLinker" :label-width="labelWidth">
|
||||
<el-form-item label="Class">
|
||||
<el-switch :value="booleanClass" @change="processTwoTypeValue($event, 'auto_linker', 'opts', 'class')"/>
|
||||
<p v-if="!booleanClass" class="expl">Specify the class to be added to the generated link. False to clear.</p>
|
||||
|
@ -17,11 +17,11 @@
|
|||
<p class="expl">Override the rel attribute. False to clear</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="New window">
|
||||
<el-switch :value="auto_linker.opts.new_window" @change="processNestedData($event, 'auto_linker', 'opts', 'new_window')"/>
|
||||
<el-switch :value="autoLinker.opts.new_window" @change="processNestedData($event, 'auto_linker', 'opts', 'new_window')"/>
|
||||
<p class="expl">Set to false to remove <span class="code">target='_blank'</span> attribute</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Scheme">
|
||||
<el-switch :value="auto_linker.opts.scheme" @change="processNestedData($event, 'auto_linker', 'opts', 'scheme')"/>
|
||||
<el-switch :value="autoLinker.opts.scheme" @change="processNestedData($event, 'auto_linker', 'opts', 'scheme')"/>
|
||||
<p class="expl">Set to true to link urls with schema <span class="code">http://google.com</span></p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Truncate">
|
||||
|
@ -34,15 +34,15 @@
|
|||
<p class="expl">Specify the class to be added to the generated link. False to clear.</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Strip prefix">
|
||||
<el-switch :value="auto_linker.opts.strip_prefix" @change="processNestedData($event, 'auto_linker', 'opts', 'strip_prefix')"/>
|
||||
<el-switch :value="autoLinker.opts.strip_prefix" @change="processNestedData($event, 'auto_linker', 'opts', 'strip_prefix')"/>
|
||||
<p class="expl">Strip the scheme prefix</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Extra">
|
||||
<el-switch :value="auto_linker.opts.extra" @change="processNestedData($event, 'auto_linker', 'opts', 'extra')"/>
|
||||
<el-switch :value="autoLinker.opts.extra" @change="processNestedData($event, 'auto_linker', 'opts', 'extra')"/>
|
||||
<p class="expl">Link urls with rarely used schemes (magnet, ipfs, irc, etc.)</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Validate TLD">
|
||||
<el-switch :value="auto_linker.opts.validate_tld" @change="processNestedData($event, 'auto_linker', 'opts', 'validate_tld')"/>
|
||||
<el-switch :value="autoLinker.opts.validate_tld" @change="processNestedData($event, 'auto_linker', 'opts', 'validate_tld')"/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">Submit</el-button>
|
||||
|
@ -58,11 +58,8 @@ export default {
|
|||
name: 'AutoLinker',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'autoLinkerConfig'
|
||||
'autoLinker'
|
||||
]),
|
||||
auto_linker() {
|
||||
return this.autoLinkerConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
@ -84,15 +81,15 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
getBooleanValue(name) {
|
||||
const value = this.autoLinkerConfig.opts[name]
|
||||
const value = this.autoLinker.opts[name]
|
||||
return typeof value === 'string' || typeof value === 'number'
|
||||
},
|
||||
getNumValue(name) {
|
||||
const value = this.autoLinkerConfig.opts[name]
|
||||
const value = this.autoLinker.opts[name]
|
||||
return value || 0
|
||||
},
|
||||
getStringValue(name) {
|
||||
const value = this.autoLinkerConfig.opts[name]
|
||||
const value = this.autoLinker.opts[name]
|
||||
return value || ''
|
||||
},
|
||||
processTwoTypeValue(value, tab, inputName, childName) {
|
||||
|
|
|
@ -39,15 +39,9 @@ export default {
|
|||
name: 'Captcha',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'captchaConfig',
|
||||
'kocaptchaConfig'
|
||||
'captcha',
|
||||
'kocaptcha'
|
||||
]),
|
||||
captcha() {
|
||||
return this.captchaConfig
|
||||
},
|
||||
kocaptcha() {
|
||||
return this.kocaptchaConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
|
@ -142,24 +142,15 @@ export default {
|
|||
name: 'Instance',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'databaseConfig',
|
||||
'ectoReposConfig',
|
||||
'pleromaRepoConfig'
|
||||
'database',
|
||||
'ectoRepos',
|
||||
'pleromaRepo'
|
||||
]),
|
||||
database() {
|
||||
return this.databaseConfig
|
||||
},
|
||||
ectoRepos() {
|
||||
return this.ectoReposConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
labelWidth() {
|
||||
return this.isMobile ? '100px' : '210px'
|
||||
},
|
||||
pleromaRepo() {
|
||||
return this.pleromaRepoConfig
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<el-input :value="endpoint.render_errors.view" @input="processNestedData($event, 'Pleroma.Web.Endpoint', 'render_errors', 'view')"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="Accepts">
|
||||
<el-input :value="endpoint.render_errors.accepts" @input="processNestedData($event, 'Pleroma.Web.Endpoint', 'render_errors', 'accepts')"/>
|
||||
<el-select :value="endpoint.render_errors.accepts || []" multiple filterable allow-create @input="processNestedData($event, 'Pleroma.Web.Endpoint', 'render_errors', 'accepts')"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="Layout">
|
||||
<el-switch :value="endpoint.render_errors.layout" @change="processNestedData($event, 'Pleroma.Web.Endpoint', 'render_errors', 'layout')"/>
|
||||
|
@ -185,11 +185,11 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'endpointConfig'
|
||||
'endpoint'
|
||||
]),
|
||||
editorContentHttp: {
|
||||
get: function() {
|
||||
return this.endpointConfig.http.dispatch ? this.endpointConfig.http.dispatch[0] : ''
|
||||
return this.endpoint.http.dispatch ? this.endpoint.http.dispatch[0] : ''
|
||||
},
|
||||
set: function(value) {
|
||||
this.processNestedData([value], 'Pleroma.Web.Endpoint', 'http', 'dispatch')
|
||||
|
@ -197,7 +197,7 @@ export default {
|
|||
},
|
||||
editorContentHttps: {
|
||||
get: function() {
|
||||
return this.endpointConfig.https.dispatch ? this.endpointConfig.https.dispatch[0] : ''
|
||||
return this.endpoint.https.dispatch ? this.endpoint.https.dispatch[0] : ''
|
||||
},
|
||||
set: function(value) {
|
||||
this.processNestedData([value], 'Pleroma.Web.Endpoint', 'https', 'dispatch')
|
||||
|
@ -209,9 +209,6 @@ export default {
|
|||
configureHttps() {
|
||||
return !this.endpoint.https === false
|
||||
},
|
||||
endpoint() {
|
||||
return this.endpointConfig
|
||||
},
|
||||
endpointHttp() {
|
||||
return this.endpoint.http || {}
|
||||
},
|
||||
|
|
|
@ -62,27 +62,12 @@ export default {
|
|||
name: 'Instance',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'enabledConfig',
|
||||
'handlerConfig',
|
||||
'passwordAuthenticatorConfig',
|
||||
'portConfig',
|
||||
'privDirConfig'
|
||||
'enabled',
|
||||
'handler',
|
||||
'passwordAuthenticator',
|
||||
'port',
|
||||
'privDir'
|
||||
]),
|
||||
enabled() {
|
||||
return this.enabledConfig
|
||||
},
|
||||
handler() {
|
||||
return this.handlerConfig
|
||||
},
|
||||
passwordAuthenticator() {
|
||||
return this.passwordAuthenticatorConfig
|
||||
},
|
||||
port() {
|
||||
return this.portConfig
|
||||
},
|
||||
privDir() {
|
||||
return this.privDirConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
|
@ -325,34 +325,19 @@ export default {
|
|||
name: 'Frontend',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'assetsConfig',
|
||||
'frontendConfig',
|
||||
'emojiConfig',
|
||||
'chatConfig',
|
||||
'markupConfig'
|
||||
'assets',
|
||||
'frontend',
|
||||
'emoji',
|
||||
'chat',
|
||||
'markup'
|
||||
]),
|
||||
assets() {
|
||||
return this.assetsConfig
|
||||
},
|
||||
chat() {
|
||||
return this.chatConfig
|
||||
},
|
||||
emoji() {
|
||||
return this.emojiConfig
|
||||
},
|
||||
frontend() {
|
||||
return this.frontendConfig
|
||||
},
|
||||
groups() {
|
||||
return Object.keys(this.emojiConfig.groups).map(key => [key, this.emojiConfig.groups[key]])
|
||||
},
|
||||
markup() {
|
||||
return this.markupConfig
|
||||
return Object.keys(this.emoji.groups).map(key => [key, this.emoji.groups[key]])
|
||||
},
|
||||
mascots() {
|
||||
return Object.keys(this.assetsConfig.mascots)
|
||||
return Object.keys(this.assets.mascots)
|
||||
.map(mascotName =>
|
||||
[mascotName, this.assetsConfig.mascots[mascotName].url, this.assetsConfig.mascots[mascotName].mime_type])
|
||||
[mascotName, this.assets.mascots[mascotName].url, this.assets.mascots[mascotName].mime_type])
|
||||
},
|
||||
themeOptions() {
|
||||
return options.themeOptions
|
||||
|
|
|
@ -30,11 +30,8 @@ export default {
|
|||
name: 'Gopher',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'gopherConfig'
|
||||
'gopher'
|
||||
]),
|
||||
gopher() {
|
||||
return this.gopherConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
|
@ -137,27 +137,15 @@ export default {
|
|||
computed: {
|
||||
...mapGetters([
|
||||
'corsPlugCredentials',
|
||||
'corsPlugExposeConfig',
|
||||
'corsPlugExpose',
|
||||
'corsPlugHeaders',
|
||||
'corsPlugMaxAge',
|
||||
'corsPlugMethods',
|
||||
'hackneyPoolsConfig',
|
||||
'httpConfig',
|
||||
'httpSecurityConfig',
|
||||
'hackneyPools',
|
||||
'http',
|
||||
'httpSecurity',
|
||||
'metricsExporter'
|
||||
]),
|
||||
corsPlugExpose() {
|
||||
return this.corsPlugExposeConfig
|
||||
},
|
||||
hackneyPools() {
|
||||
return this.hackneyPoolsConfig
|
||||
},
|
||||
http() {
|
||||
return this.httpConfig
|
||||
},
|
||||
httpSecurity() {
|
||||
return this.httpSecurityConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
<p class="expl">Enable Pleroma’s Relay, which makes it possible to follow a whole instance</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Rewrite policy">
|
||||
<el-select :value="rewritePolicy || []" multiple @change="updateSetting($event, 'instance', 'rewrite_policy')">
|
||||
<el-select :value="rewritePolicy || []" multiple filterable allow-create @change="updateSetting($event, 'instance', 'rewrite_policy')">
|
||||
<el-option
|
||||
v-for="item in rewritePolicyOptions"
|
||||
:key="item.value"
|
||||
|
@ -105,7 +105,7 @@
|
|||
:value="item.value"/>
|
||||
</el-select>
|
||||
<p
|
||||
v-for="item in rewritePolicy"
|
||||
v-for="item in rewritePolicyExplanations"
|
||||
:key="item"
|
||||
class="expl">{{ getRewritePolicyExpl(item) }}</p>
|
||||
</el-form-item>
|
||||
|
@ -230,9 +230,9 @@
|
|||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="line"/>
|
||||
<el-form ref="uri_schemes" :model="uri_schemes" :label-width="labelWidth">
|
||||
<el-form ref="uriSchemes" :model="uriSchemes" :label-width="labelWidth">
|
||||
<el-form-item label="URI schemes">
|
||||
<el-select :value="uri_schemes.valid_schemes || []" multiple filterable allow-create placeholder="Select" @change="updateSetting($event, 'uri_schemes', 'valid_schemes')">
|
||||
<el-select :value="uriSchemes.valid_schemes || []" multiple filterable allow-create placeholder="Select" @change="updateSetting($event, 'uri_schemes', 'valid_schemes')">
|
||||
<el-option
|
||||
v-for="item in uriSchemesOptions"
|
||||
:key="item.value"
|
||||
|
@ -243,36 +243,36 @@
|
|||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="line"/>
|
||||
<el-form ref="admin_token" :model="admin_token" :label-width="labelWidth">
|
||||
<el-form ref="adminToken" :model="adminToken" :label-width="labelWidth">
|
||||
<el-form-item label="Admin token">
|
||||
<el-input :value="admin_token.value" @input="updateSetting($event, 'admin_token', 'value')"/>
|
||||
<el-input :value="adminToken.value" @input="updateSetting($event, 'admin_token', 'value')"/>
|
||||
<p class="expl">Allows to set a token that can be used to authenticate with the admin api without using an actual user by giving it as the <span class="code">admin_token</span> parameter.</p>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="line"/>
|
||||
<el-form ref="scheduled_activity" :model="scheduled_activity" :label-width="labelWidth">
|
||||
<el-form ref="scheduledActivity" :model="scheduledActivity" :label-width="labelWidth">
|
||||
<el-form-item label="Scheduled activity:"/>
|
||||
<el-form-item label="Daily user limit">
|
||||
<el-input-number :value="scheduled_activity.daily_user_limit" :step="5" :min="0" size="large" @change="updateSetting($event, 'Pleroma.ScheduledActivity', 'daily_user_limit')"/>
|
||||
<el-input-number :value="scheduledActivity.daily_user_limit" :step="5" :min="0" size="large" @change="updateSetting($event, 'Pleroma.ScheduledActivity', 'daily_user_limit')"/>
|
||||
<p class="expl">The number of scheduled activities a user is allowed to create in a single day (Default: 25)</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Total user limit">
|
||||
<el-input-number :value="scheduled_activity.total_user_limit" :step="10" :min="0" size="large" @change="updateSetting($event, 'Pleroma.ScheduledActivity', 'total_user_limit')"/>
|
||||
<el-input-number :value="scheduledActivity.total_user_limit" :step="10" :min="0" size="large" @change="updateSetting($event, 'Pleroma.ScheduledActivity', 'total_user_limit')"/>
|
||||
<p class="expl">The number of scheduled activities a user is allowed to create in total (Default: 300)</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Enabled">
|
||||
<el-switch :value="scheduled_activity.enabled" @change="updateSetting($event, 'Pleroma.ScheduledActivity', 'enabled')"/>
|
||||
<el-switch :value="scheduledActivity.enabled" @change="updateSetting($event, 'Pleroma.ScheduledActivity', 'enabled')"/>
|
||||
<p class="expl">Whether scheduled activities are sent to the job queue to be executed</p>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="line"/>
|
||||
<el-form ref="fetch_initial_posts" :model="fetch_initial_posts" :label-width="labelWidth">
|
||||
<el-form ref="fetchInitialPosts" :model="fetchInitialPosts" :label-width="labelWidth">
|
||||
<el-form-item label="Fetch initial posts">
|
||||
<el-switch :value="fetch_initial_posts.enabled" @change="updateSetting($event, 'fetch_initial_posts', 'enabled')"/>
|
||||
<el-switch :value="fetchInitialPosts.enabled" @change="updateSetting($event, 'fetch_initial_posts', 'enabled')"/>
|
||||
<p class="expl">If enabled, when a new user is federated with, fetch some of their latest posts</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Pages">
|
||||
<el-input-number :value="fetch_initial_posts.pages" :step="1" :min="0" size="large" @change="updateSetting($event, 'fetch_initial_posts', 'pages')"/>
|
||||
<el-input-number :value="fetchInitialPosts.pages" :step="1" :min="0" size="large" @change="updateSetting($event, 'fetch_initial_posts', 'pages')"/>
|
||||
<p class="expl">The amount of pages to fetch</p>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
@ -321,38 +321,26 @@ export default {
|
|||
name: 'Instance',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'adminTokenConfig',
|
||||
'fetchInitialPostsConfig',
|
||||
'instanceConfig',
|
||||
'pleromaUserConfig',
|
||||
'scheduledActivityConfig',
|
||||
'suggestionsConfig',
|
||||
'uriSchemesConfig'
|
||||
'adminToken',
|
||||
'fetchInitialPosts',
|
||||
'instance',
|
||||
'pleromaUser',
|
||||
'scheduledActivity',
|
||||
'suggestions',
|
||||
'uriSchemes'
|
||||
]),
|
||||
admin_token() {
|
||||
return this.adminTokenConfig
|
||||
},
|
||||
autofollowedNicknamesOptions() {
|
||||
return options.autofollowedNicknamesOptions
|
||||
},
|
||||
federationPublisherModulesOptions() {
|
||||
return options.federationPublisherModulesOptions
|
||||
},
|
||||
fetch_initial_posts() {
|
||||
return this.fetchInitialPostsConfig
|
||||
},
|
||||
instance() {
|
||||
return this.instanceConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
labelWidth() {
|
||||
return this.isMobile ? '100px' : '210px'
|
||||
},
|
||||
pleromaUser() {
|
||||
return this.pleromaUserConfig
|
||||
},
|
||||
quarantinedInstancesOptions() {
|
||||
return options.quarantinedInstancesOptions
|
||||
},
|
||||
|
@ -362,18 +350,12 @@ export default {
|
|||
rewritePolicy() {
|
||||
return typeof this.instance.rewrite_policy === 'string' ? [this.instance.rewrite_policy] : this.instance.rewrite_policy
|
||||
},
|
||||
rewritePolicyExplanations() {
|
||||
return this.rewritePolicy ? this.rewritePolicy.filter(policy => options.rewritePolicyOptions.find(el => el.value === policy)) : []
|
||||
},
|
||||
rewritePolicyOptions() {
|
||||
return options.rewritePolicyOptions
|
||||
},
|
||||
scheduled_activity() {
|
||||
return this.scheduledActivityConfig
|
||||
},
|
||||
suggestions() {
|
||||
return this.suggestionsConfig
|
||||
},
|
||||
uri_schemes() {
|
||||
return this.uriSchemesConfig
|
||||
},
|
||||
uriSchemesOptions() {
|
||||
return options.uriSchemesOptions
|
||||
}
|
||||
|
|
|
@ -58,15 +58,9 @@ export default {
|
|||
name: 'JobQueue',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'queuesConfig',
|
||||
'retryQueueConfig'
|
||||
'queues',
|
||||
'retryQueue'
|
||||
]),
|
||||
queues() {
|
||||
return this.queuesConfig
|
||||
},
|
||||
retryQueue() {
|
||||
return this.retryQueueConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
:label="item.label"
|
||||
:value="item.value"/>
|
||||
</el-select>
|
||||
<p class="expl">List of instances to remove medias from</p>
|
||||
<p class="expl"><span class="code">:console</span> is used to send logs to stdout, <span class="code">{ExSyslogger, :ex_syslogger}</span> to log to syslog, and <span class="code">Quack.Logger</span> to log to Slack</p>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="line"/>
|
||||
|
@ -180,42 +180,24 @@ export default {
|
|||
name: 'Logger',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'consoleConfig',
|
||||
'exsysloggerConfig',
|
||||
'levelConfig',
|
||||
'loggerBackendsConfig',
|
||||
'metaConfig',
|
||||
'webhookUrlConfig'
|
||||
'consoleLogger',
|
||||
'exsyslogger',
|
||||
'level',
|
||||
'loggerBackends',
|
||||
'meta',
|
||||
'webhookUrl'
|
||||
]),
|
||||
consoleLogger() {
|
||||
return this.consoleConfig
|
||||
},
|
||||
exsyslogger() {
|
||||
return this.exsysloggerConfig
|
||||
},
|
||||
level() {
|
||||
return this.levelConfig
|
||||
},
|
||||
loggerBackends() {
|
||||
return this.loggerBackendsConfig
|
||||
},
|
||||
loggerBackendsValue() {
|
||||
return this.loggerBackends.value ? this.loggerBackends.value.map(el => JSON.stringify(el)) : []
|
||||
},
|
||||
loggerBackendsOptions() {
|
||||
return options.loggerBackendsOptions
|
||||
},
|
||||
meta() {
|
||||
return this.metaConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
labelWidth() {
|
||||
return this.isMobile ? '100px' : '210px'
|
||||
},
|
||||
webhookUrl() {
|
||||
return this.webhookUrlConfig
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -146,47 +146,23 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'mrfHellthreadConfig',
|
||||
'mrfKeywordConfig',
|
||||
'mrfMentionConfig',
|
||||
'mrfNormalizeMarkupConfig',
|
||||
'mrfSimpleConfig',
|
||||
'mrfSubchainConfig',
|
||||
'mrfRejectnonpublicConfig',
|
||||
'mrfUserAllowlistConfig'
|
||||
'mrfHellthread',
|
||||
'mrfKeyword',
|
||||
'mrfMention',
|
||||
'mrfNormalizeMarkup',
|
||||
'mrfSimple',
|
||||
'mrfSubchain',
|
||||
'mrfRejectnonpublic',
|
||||
'mrfUserAllowlist'
|
||||
]),
|
||||
matchActor() {
|
||||
return Object.keys(this.mrfSubchain.match_actor).map(key => [key, this.mrfSubchain.match_actor[key]])
|
||||
},
|
||||
mrfHellthread() {
|
||||
return this.mrfHellthreadConfig
|
||||
},
|
||||
mrfKeyword() {
|
||||
return this.mrfKeywordConfig
|
||||
},
|
||||
mrfMention() {
|
||||
return this.mrfMentionConfig
|
||||
},
|
||||
mrfNormalizeMarkup() {
|
||||
return this.mrfNormalizeMarkupConfig
|
||||
},
|
||||
mrfSimple() {
|
||||
return this.mrfSimpleConfig
|
||||
},
|
||||
mrfSubchain() {
|
||||
return this.mrfSubchainConfig
|
||||
},
|
||||
mrfRejectnonpublic() {
|
||||
return this.mrfRejectnonpublicConfig
|
||||
},
|
||||
mrfUserAllowlist() {
|
||||
return this.mrfUserAllowlistConfig
|
||||
},
|
||||
policiesOptions() {
|
||||
return options.rewritePolicyOptions
|
||||
},
|
||||
replacePatterns() {
|
||||
return Object.keys(this.mrfKeywordConfig.replace).map(key => [key, this.mrfKeywordConfig.replace[key]])
|
||||
return Object.keys(this.mrfKeyword.replace).map(key => [key, this.mrfKeyword.replace[key]])
|
||||
},
|
||||
userAllowlist() {
|
||||
return Object.keys(this.mrfUserAllowlist).map(key => [key, this.mrfUserAllowlist[key]])
|
||||
|
|
|
@ -151,19 +151,16 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'mailerConfig'
|
||||
'mailer'
|
||||
]),
|
||||
editorContent: {
|
||||
get: function() {
|
||||
return this.mailerConfig.dkim ? this.mailerConfig.dkim[0] : ''
|
||||
return this.mailer.dkim ? this.mailer.dkim[0] : ''
|
||||
},
|
||||
set: function(value) {
|
||||
this.updateSetting([value], 'Pleroma.Emails.Mailer', 'dkim')
|
||||
}
|
||||
},
|
||||
mailer() {
|
||||
return this.mailerConfig
|
||||
},
|
||||
adapterOptions() {
|
||||
return options.adapterOptions
|
||||
},
|
||||
|
|
|
@ -83,7 +83,7 @@ export default {
|
|||
name: 'MediaProxy',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'mediaProxyConfig'
|
||||
'mediaProxy'
|
||||
]),
|
||||
inlineContentTypes() {
|
||||
return Array.isArray(this.mediaProxy.proxy_opts.inline_content_types) ? 'whitelistedTypeArray' : this.mediaProxy.proxy_opts.inline_content_types
|
||||
|
@ -91,9 +91,6 @@ export default {
|
|||
http() {
|
||||
return this.mediaProxy.proxy_opts.http || {}
|
||||
},
|
||||
mediaProxy() {
|
||||
return this.mediaProxyConfig
|
||||
},
|
||||
reqHeadersOptions() {
|
||||
return this.mediaProxySettings.reqHeadersOptions
|
||||
},
|
||||
|
|
|
@ -58,15 +58,9 @@ export default {
|
|||
name: 'Metadata',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'metadataConfig',
|
||||
'richMediaConfig'
|
||||
'metadata',
|
||||
'richMedia'
|
||||
]),
|
||||
metadata() {
|
||||
return this.metadataConfig
|
||||
},
|
||||
richMedia() {
|
||||
return this.richMediaConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
|
@ -37,13 +37,10 @@ export default {
|
|||
name: 'Other',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'formatEncodersConfig',
|
||||
'formatEncoders',
|
||||
'mimeTypesConfig',
|
||||
'teslaAdapterConfig'
|
||||
'teslaAdapter'
|
||||
]),
|
||||
formatEncoders() {
|
||||
return this.formatEncodersConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
@ -52,9 +49,6 @@ export default {
|
|||
},
|
||||
mimeTypes() {
|
||||
return Object.keys(this.mimeTypesConfig.value).map(key => [key, this.mimeTypesConfig.value[key]])
|
||||
},
|
||||
teslaAdapter() {
|
||||
return this.teslaAdapterConfig
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -206,7 +206,7 @@ export default {
|
|||
name: 'RateLimiters',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'rateLimitersConfig'
|
||||
'rateLimiters'
|
||||
]),
|
||||
accountConfirmationResendAllUsers() {
|
||||
return this.rateLimiters.account_confirmation_resend ? this.rateLimiters.account_confirmation_resend.tuple : [null, null]
|
||||
|
@ -234,9 +234,6 @@ export default {
|
|||
? this.rateLimiters.app_account_creation[0].tuple
|
||||
: false
|
||||
},
|
||||
rateLimiters() {
|
||||
return this.rateLimitersConfig
|
||||
},
|
||||
passwordResetAllUsers() {
|
||||
return this.rateLimiters.password_reset ? this.rateLimiters.password_reset.tuple : [null, null]
|
||||
},
|
||||
|
|
|
@ -148,12 +148,12 @@ export default {
|
|||
name: 'Upload',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'uploadAnonymizeFilenameConfig',
|
||||
'uploadConfig',
|
||||
'uploadFilterMogrifyConfig',
|
||||
'uploadersLocalConfig',
|
||||
'uploadMDIIConfig',
|
||||
'uploadS3Config'
|
||||
'uploadAnonymizeFilename',
|
||||
'upload',
|
||||
'uploadFilterMogrify',
|
||||
'uploadersLocal',
|
||||
'uploadMDII',
|
||||
'uploadS3'
|
||||
]),
|
||||
inlineContentTypes() {
|
||||
return Array.isArray(this.upload.proxy_opts.inline_content_types) ? 'whitelistedTypeArray' : this.upload.proxy_opts.inline_content_types
|
||||
|
@ -161,24 +161,6 @@ export default {
|
|||
http() {
|
||||
return this.upload.proxy_opts.http || {}
|
||||
},
|
||||
upload() {
|
||||
return this.uploadConfig
|
||||
},
|
||||
uploadersLocal() {
|
||||
return this.uploadersLocalConfig
|
||||
},
|
||||
uploadAnonymizeFilename() {
|
||||
return this.uploadAnonymizeFilenameConfig
|
||||
},
|
||||
uploadFilterMogrify() {
|
||||
return this.uploadFilterMogrifyConfig
|
||||
},
|
||||
uploadMDII() {
|
||||
return this.uploadMDIIConfig
|
||||
},
|
||||
uploadS3() {
|
||||
return this.uploadS3Config
|
||||
},
|
||||
hackneyPoolsOptions() {
|
||||
return options.hackneyPoolsOptions
|
||||
},
|
||||
|
@ -204,7 +186,7 @@ export default {
|
|||
return pool ? 'Max connections: ' + pool.max_connections + ', timeout: ' + pool.timeout : ''
|
||||
},
|
||||
processHttpSettings(value, tab, section, httpSection, input) {
|
||||
const updatedValue = { ...this.uploadConfig[section][httpSection], ...{ [input]: value }}
|
||||
const updatedValue = { ...this.upload[section][httpSection], ...{ [input]: value }}
|
||||
this.processNestedData(updatedValue, tab, section, httpSection)
|
||||
},
|
||||
processNestedData(value, tab, section, input) {
|
||||
|
|
|
@ -28,11 +28,8 @@ export default {
|
|||
name: 'WebPush',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'vapidDetailsConfig'
|
||||
'vapidDetails'
|
||||
]),
|
||||
vapidDetails() {
|
||||
return this.vapidDetailsConfig
|
||||
},
|
||||
isMobile() {
|
||||
return this.$store.state.app.device === 'mobile'
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue