part of job queues tab done
This commit is contained in:
parent
0a9a3648d6
commit
cdbf3f42b8
11 changed files with 232 additions and 9 deletions
34
src/components/settings_modal/admin_tabs/job_queues_tab.js
Normal file
34
src/components/settings_modal/admin_tabs/job_queues_tab.js
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||
import IntegerSetting from '../helpers/integer_setting.vue'
|
||||
import StringSetting from '../helpers/string_setting.vue'
|
||||
import TupleSetting from '../helpers/tuple_setting.vue'
|
||||
import GroupSetting from '../helpers/group_setting.vue'
|
||||
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
||||
import ListSetting from '../helpers/list_setting.vue'
|
||||
|
||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||
|
||||
const JobQueuesTab = {
|
||||
provide () {
|
||||
return {
|
||||
defaultDraftMode: true,
|
||||
defaultSource: 'admin'
|
||||
}
|
||||
},
|
||||
components: {
|
||||
BooleanSetting,
|
||||
ChoiceSetting,
|
||||
IntegerSetting,
|
||||
StringSetting,
|
||||
TupleSetting,
|
||||
AttachmentSetting,
|
||||
GroupSetting,
|
||||
ListSetting
|
||||
},
|
||||
computed: {
|
||||
...SharedComputedObject()
|
||||
}
|
||||
}
|
||||
|
||||
export default JobQueuesTab
|
||||
78
src/components/settings_modal/admin_tabs/job_queues_tab.vue
Normal file
78
src/components/settings_modal/admin_tabs/job_queues_tab.vue
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
<template>
|
||||
<div :label="$t('admin_dash.tabs.job_queues')">
|
||||
<div class="setting-item">
|
||||
<h3>{{ $t('admin_dash.job_queues.Oban') }}</h3>
|
||||
<ul class="setting-list">
|
||||
<li>
|
||||
<ChoiceSetting path=":pleroma.Oban.:log" />
|
||||
<h4>{{ $t('admin_dash.job_queues.queues') }}</h4>
|
||||
<ul class="setting-list">
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="50"
|
||||
path=":pleroma.Oban.:queues.:federator_incoming"
|
||||
/>
|
||||
</li>
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="50"
|
||||
path=":pleroma.Oban.:queues.:federator_outgoing"
|
||||
/>
|
||||
</li>
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="5"
|
||||
path=":pleroma.Oban.:queues.:attachments_cleanup"
|
||||
/>
|
||||
</li>
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="10"
|
||||
path=":pleroma.Oban.:queues.:mailer"
|
||||
/>
|
||||
</li>
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="10"
|
||||
path=":pleroma.Oban.:queues.:activity_expiration"
|
||||
/>
|
||||
</li>
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="10"
|
||||
path=":pleroma.Oban.:queues.:scheduled_activities"
|
||||
/>
|
||||
</li>
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="20"
|
||||
path=":pleroma.Oban.:queues.:transmogrifier"
|
||||
/>
|
||||
</li>
|
||||
<li>
|
||||
<IntegerSetting
|
||||
suggestions="50"
|
||||
path=":pleroma.Oban.:queues.:web_push"
|
||||
/>
|
||||
</li>
|
||||
<!-- CONFIRM what is this queue -->
|
||||
<li>
|
||||
<IntegerSetting
|
||||
path=":pleroma.Oban.:queues.:slow"
|
||||
/>
|
||||
</li>
|
||||
<!-- CONFIRM what is this queue -->
|
||||
<li>
|
||||
<IntegerSetting
|
||||
path=":pleroma.Oban.:queues.:background"
|
||||
/>
|
||||
</li>
|
||||
</ul>
|
||||
<GroupSetting path=":pleroma.Oban.queues" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./job_queues_tab.js"></script>
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
/>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- TODO confirm with backend on how filters work -->
|
||||
<!-- CONFIRM how filters work -->
|
||||
<h3>{{ $t('admin_dash.uploads.filenames') }}</h3>
|
||||
<ul class="setting-list">
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ export default {
|
|||
extraEntries () {
|
||||
if (this.ignoreSuggestions) return [...this.valueSet.values()]
|
||||
return [...this.valueSet.values()].filter((x) => {
|
||||
return !this.suggestions.has(x)
|
||||
return !this.suggestions?.has(x)
|
||||
})
|
||||
},
|
||||
builtinEntries () {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
type="number"
|
||||
:step="step || 1"
|
||||
:disabled="shouldBeDisabled"
|
||||
:placeholder="backendDescriptionSuggestions"
|
||||
:min="min || 0"
|
||||
:value="realDraftMode ? draft :state"
|
||||
@change="update"
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@ export default {
|
|||
type: [String, Array],
|
||||
required: false
|
||||
},
|
||||
suggestions: {
|
||||
type: [String, Array],
|
||||
required: false
|
||||
},
|
||||
subgroup: {
|
||||
type: String,
|
||||
required: false
|
||||
|
|
@ -53,6 +57,9 @@ export default {
|
|||
swapDescriptionAndLabel: {
|
||||
type: Boolean
|
||||
},
|
||||
backendDescriptionPath: {
|
||||
type: [String, Array]
|
||||
},
|
||||
overrideBackendDescription: {
|
||||
type: Boolean
|
||||
},
|
||||
|
|
@ -158,7 +165,7 @@ export default {
|
|||
}
|
||||
},
|
||||
backendDescriptionSuggestions () {
|
||||
return this.backendDescription?.suggestions
|
||||
return this.backendDescription?.suggestions || this.suggestions
|
||||
},
|
||||
shouldBeDisabled () {
|
||||
if (this.path == null) {
|
||||
|
|
@ -228,6 +235,7 @@ export default {
|
|||
},
|
||||
descriptionPath () {
|
||||
if (this.path == null) return null
|
||||
if (this.backendDescriptionPath) return this.backendDescriptionPath
|
||||
const path = Array.isArray(this.path) ? this.path : this.path.split('.')
|
||||
if (this.subgroup) {
|
||||
return [
|
||||
|
|
|
|||
16
src/components/settings_modal/helpers/tuple_setting.js
Normal file
16
src/components/settings_modal/helpers/tuple_setting.js
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import Setting from './setting.js'
|
||||
|
||||
export default {
|
||||
...Setting,
|
||||
methods: {
|
||||
...Setting.methods,
|
||||
getValue ({ e, side }) {
|
||||
const [a, b] = this.visibleState || []
|
||||
if (side === 0) {
|
||||
return [e.target.value, b]
|
||||
} else {
|
||||
return [a, e.target.value]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
57
src/components/settings_modal/helpers/tuple_setting.vue
Normal file
57
src/components/settings_modal/helpers/tuple_setting.vue
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<template>
|
||||
<label
|
||||
v-if="matchesExpertLevel"
|
||||
class="TupleSetting"
|
||||
>
|
||||
<label
|
||||
v-if="!hideLabel"
|
||||
:for="path"
|
||||
class="setting-label"
|
||||
:class="{ 'faint': shouldBeDisabled }"
|
||||
>
|
||||
<template v-if="backendDescriptionLabel">
|
||||
{{ backendDescriptionLabel + ' ' }}
|
||||
</template>
|
||||
<template v-else-if="source === 'admin'">
|
||||
MISSING LABEL FOR {{ path }}
|
||||
</template>
|
||||
<slot v-else />
|
||||
</label>
|
||||
{{ ' ' }}
|
||||
<input
|
||||
:id="path"
|
||||
class="input string-input"
|
||||
:class="{ disabled: shouldBeDisabled }"
|
||||
:disabled="shouldBeDisabled"
|
||||
:placeholder="backendDescriptionSuggestions?.[0]?.[0]"
|
||||
:value="visibleState?.[0]"
|
||||
@change="e => update({ e, side: 0 })"
|
||||
>
|
||||
{{ ' ' }}
|
||||
<input
|
||||
:id="path"
|
||||
class="input string-input"
|
||||
:class="{ disabled: shouldBeDisabled }"
|
||||
:disabled="shouldBeDisabled"
|
||||
:placeholder="backendDescriptionSuggestions?.[0]?.[1]"
|
||||
:value="visibleState?.[1]"
|
||||
@change="e => update({ e, side: 1 })"
|
||||
>
|
||||
{{ ' ' }}
|
||||
<ModifiedIndicator
|
||||
:changed="isChanged"
|
||||
:onclick="reset"
|
||||
/>
|
||||
<ProfileSettingIndicator :is-profile="isProfileSetting" />
|
||||
<DraftButtons v-if="!hideDraftButtons" />
|
||||
<p
|
||||
v-if="backendDescriptionDescription"
|
||||
class="setting-description"
|
||||
:class="{ 'faint': shouldBeDisabled }"
|
||||
>
|
||||
{{ backendDescriptionDescription + ' ' }}
|
||||
</p>
|
||||
</label>
|
||||
</template>
|
||||
|
||||
<script src="./tuple_setting.js"></script>
|
||||
|
|
@ -10,6 +10,7 @@ import UploadsTab from './admin_tabs/uploads_tab.vue'
|
|||
import MailerTab from './admin_tabs/mailer_tab.vue'
|
||||
import MonitoringTab from './admin_tabs/monitoring_tab.vue'
|
||||
import RegistrationsTab from './admin_tabs/registrations_tab.vue'
|
||||
import JobQueuesTab from './admin_tabs/job_queues_tab.vue'
|
||||
import { useInterfaceStore } from 'src/stores/interface'
|
||||
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
|
|
@ -22,6 +23,7 @@ import {
|
|||
faEnvelope,
|
||||
faChartLine,
|
||||
faDoorOpen,
|
||||
faGears,
|
||||
faUpload
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
|
|
@ -34,6 +36,7 @@ library.add(
|
|||
faEnvelope,
|
||||
faChartLine,
|
||||
faDoorOpen,
|
||||
faGears,
|
||||
faUpload
|
||||
)
|
||||
|
||||
|
|
@ -42,15 +45,16 @@ const SettingsModalAdminContent = {
|
|||
VerticalTabSwitcher,
|
||||
|
||||
InstanceTab,
|
||||
LimitsTab,
|
||||
FrontendsTab,
|
||||
MediaProxyTab,
|
||||
MailerTab,
|
||||
RegistrationsTab,
|
||||
EmojiTab,
|
||||
FrontendsTab,
|
||||
LimitsTab,
|
||||
MailerTab,
|
||||
UploadsTab,
|
||||
MediaProxyTab,
|
||||
LinksTab,
|
||||
JobQueuesTab,
|
||||
MonitoringTab,
|
||||
RegistrationsTab
|
||||
},
|
||||
computed: {
|
||||
user () {
|
||||
|
|
|
|||
|
|
@ -114,6 +114,14 @@
|
|||
<LinksTab />
|
||||
</div>
|
||||
|
||||
<div
|
||||
:label="$t('admin_dash.tabs.job_queues')"
|
||||
icon="gears"
|
||||
data-tab-name="job_queues"
|
||||
>
|
||||
<JobQueuesTab />
|
||||
</div>
|
||||
|
||||
<div
|
||||
:label="$t('admin_dash.tabs.monitoring')"
|
||||
icon="chart-line"
|
||||
|
|
|
|||
|
|
@ -1158,7 +1158,12 @@
|
|||
"uploads": "Uploads",
|
||||
"monitoring": "Monitoring",
|
||||
"registrations": "Registrations",
|
||||
"links": "Links"
|
||||
"links": "Links",
|
||||
"job_queues": "Job Queues"
|
||||
},
|
||||
"job_queues": {
|
||||
"Oban": "Oban queues",
|
||||
"queues": "Queues"
|
||||
},
|
||||
"nodb": {
|
||||
"heading": "Database config is disabled",
|
||||
|
|
@ -1305,6 +1310,18 @@
|
|||
},
|
||||
"temp_overrides": {
|
||||
":pleroma": {
|
||||
"Oban": {
|
||||
":queues": {
|
||||
":scheduled_activites": {
|
||||
"label": "Scheduled activities",
|
||||
"description": "Scheduled activites queue"
|
||||
},
|
||||
":slow": {
|
||||
"label": "Slow",
|
||||
"description": "idk"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Pleroma_DOT_Formatter": {
|
||||
":attribute_toggle": {
|
||||
"label": "Set {attr} attribute"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue