[1.0.1] Server config fixes

This commit is contained in:
Angelina Filippova 2019-08-15 12:13:14 +00:00 committed by Maxim Filippov
parent c9684059ca
commit 30c15dbc62
24 changed files with 184 additions and 384 deletions

View File

@ -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:

View File

@ -65,7 +65,7 @@ module.exports = {
/**
* Source Maps
*/
productionSourceMap: false,
productionSourceMap: true,
// https://webpack.js.org/configuration/devtool/#production
devtool: 'source-map',

View File

@ -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

View File

@ -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: {

View File

@ -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'
},

View File

@ -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) {

View File

@ -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'
},

View File

@ -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: {

View File

@ -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 || {}
},

View File

@ -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'
},

View File

@ -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

View File

@ -30,11 +30,8 @@ export default {
name: 'Gopher',
computed: {
...mapGetters([
'gopherConfig'
'gopher'
]),
gopher() {
return this.gopherConfig
},
isMobile() {
return this.$store.state.app.device === 'mobile'
},

View File

@ -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'
},

View File

@ -97,7 +97,7 @@
<p class="expl">Enable Pleromas 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
}

View File

@ -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'
},

View File

@ -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: {

View File

@ -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]])

View File

@ -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
},

View File

@ -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
},

View File

@ -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'
},

View File

@ -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: {

View File

@ -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]
},

View File

@ -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) {

View File

@ -28,11 +28,8 @@ export default {
name: 'WebPush',
computed: {
...mapGetters([
'vapidDetailsConfig'
'vapidDetails'
]),
vapidDetails() {
return this.vapidDetailsConfig
},
isMobile() {
return this.$store.state.app.device === 'mobile'
},