Merge branch 'admin-tabs-2' into shigusegubu-themes3
This commit is contained in:
commit
39856570a8
18 changed files with 360 additions and 227 deletions
|
|
@ -381,6 +381,7 @@ nav {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
font-family: var(--font);
|
font-family: var(--font);
|
||||||
|
height: 2em;
|
||||||
|
|
||||||
&.-transparent {
|
&.-transparent {
|
||||||
backdrop-filter: blur(0.125em) contrast(60%);
|
backdrop-filter: blur(0.125em) contrast(60%);
|
||||||
|
|
@ -705,9 +706,10 @@ option {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
min-height: 2em;
|
min-height: 2em;
|
||||||
|
align-items: end;
|
||||||
|
|
||||||
.Select select {
|
.input {
|
||||||
line-height: 1;
|
height: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
> *,
|
> *,
|
||||||
|
|
|
||||||
|
|
@ -136,40 +136,6 @@
|
||||||
<script src="./font_control.js"></script>
|
<script src="./font_control.js"></script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// Copy-paste of BooleanSetting
|
|
||||||
.font-control {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: subgrid;
|
|
||||||
|
|
||||||
.checkbox {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: subgrid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label {
|
|
||||||
grid-area: label;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.-mobile & {
|
|
||||||
.font-input {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-selector {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.checkbox-indicator {
|
|
||||||
grid-area: control;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.invalid-tooltip {
|
.invalid-tooltip {
|
||||||
margin: 0.5em 1em;
|
margin: 0.5em 1em;
|
||||||
min-width: 10em;
|
min-width: 10em;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
.EmojiTab {
|
.EmojiTab {
|
||||||
.setting-list {
|
.setting-list {
|
||||||
padding-left: 0.75em;
|
margin: 0.5em 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toolbar {
|
.toolbar {
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
|
align-items: end;
|
||||||
|
|
||||||
&:not(.btn-group) {
|
&:not(.btn-group) {
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
|
|
@ -27,6 +28,10 @@
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.popover-wrapper {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector-buttons,
|
.selector-buttons,
|
||||||
|
|
@ -34,6 +39,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
|
margin-left: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
h5 {
|
h5 {
|
||||||
|
|
@ -69,13 +75,21 @@
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 1em;
|
gap: 1em;
|
||||||
|
|
||||||
|
.button-unstyled {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.emoji-item,
|
||||||
.placeholder {
|
.placeholder {
|
||||||
background: var(--textFaint);
|
|
||||||
border-radius: 0.5em;
|
|
||||||
width: 2em;
|
width: 2em;
|
||||||
height: 2em;
|
height: 2em;
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.placeholder {
|
||||||
|
background: var(--textFaint);
|
||||||
|
border-radius: 0.5em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
:placeholder="$t('admin_dash.emoji.remote_pack_instance')"
|
:placeholder="$t('admin_dash.emoji.remote_pack_instance')"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
class="button button-default btn emoji-tab-popover-button"
|
class="button button-default emoji-tab-popover-button"
|
||||||
type="button"
|
type="button"
|
||||||
@click="listRemotePacks"
|
@click="listRemotePacks"
|
||||||
>
|
>
|
||||||
|
|
@ -112,11 +112,11 @@
|
||||||
</Popover>
|
</Popover>
|
||||||
</span>
|
</span>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="setting-list">
|
<div class="setting-section">
|
||||||
<h4 class="toolbar">
|
<h4 class="toolbar">
|
||||||
{{ $t('admin_dash.emoji.edit_pack') }}
|
{{ $t('admin_dash.emoji.edit_pack') }}
|
||||||
</h4>
|
</h4>
|
||||||
<div class="selector-buttons setting-list">
|
<div class="setting-item selector-buttons">
|
||||||
<button
|
<button
|
||||||
:disabled="!pack || pack.remote !== undefined"
|
:disabled="!pack || pack.remote !== undefined"
|
||||||
class="button button-default btn"
|
class="button button-default btn"
|
||||||
|
|
@ -254,73 +254,97 @@
|
||||||
</h5>
|
</h5>
|
||||||
<ul class="setting-list">
|
<ul class="setting-list">
|
||||||
<li>
|
<li>
|
||||||
<label :class="{ ['-disabled']: !pack || pack.remote !== undefined }">
|
<label
|
||||||
{{ $t('admin_dash.emoji.description') }}
|
class="setting-item"
|
||||||
<ModifiedIndicator
|
:class="{ ['-disabled']: !pack || pack.remote !== undefined }"
|
||||||
:changed="metaEdited('description')"
|
>
|
||||||
message-key="admin_dash.emoji.metadata_changed"
|
<span class="setting-label">
|
||||||
/>
|
<ModifiedIndicator
|
||||||
|
:changed="metaEdited('description')"
|
||||||
|
message-key="admin_dash.emoji.metadata_changed"
|
||||||
|
/>
|
||||||
|
{{ $t('admin_dash.emoji.description') }}
|
||||||
|
</span>
|
||||||
<textarea
|
<textarea
|
||||||
v-model="packMeta.description"
|
v-model="packMeta.description"
|
||||||
:disabled="!pack || pack.remote !== undefined"
|
:disabled="!pack || pack.remote !== undefined"
|
||||||
class="bio resize-height input"
|
height="4"
|
||||||
|
class="bio resize-height input textarea setting-control"
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label :class="{ ['-disabled']: !pack || pack.remote !== undefined }">
|
<label
|
||||||
{{ $t('admin_dash.emoji.homepage') }}
|
class="setting-item"
|
||||||
<ModifiedIndicator
|
:class="{ ['-disabled']: !pack || pack.remote !== undefined }"
|
||||||
:changed="metaEdited('homepage')"
|
>
|
||||||
message-key="admin_dash.emoji.metadata_changed"
|
<span class="setting-label">
|
||||||
/>
|
<ModifiedIndicator
|
||||||
|
:changed="metaEdited('homepage')"
|
||||||
|
message-key="admin_dash.emoji.metadata_changed"
|
||||||
|
/>
|
||||||
|
{{ $t('admin_dash.emoji.homepage') }}
|
||||||
|
</span>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
v-model="packMeta.homepage"
|
v-model="packMeta.homepage"
|
||||||
class="emoji-info-input input"
|
class="emoji-info-input input setting-control"
|
||||||
:disabled="!pack || pack.remote !== undefined"
|
:disabled="!pack || pack.remote !== undefined"
|
||||||
>
|
>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label :class="{ ['-disabled']: !pack || pack.remote !== undefined }">
|
<label
|
||||||
{{ $t('admin_dash.emoji.fallback_src') }}
|
class="setting-item"
|
||||||
<ModifiedIndicator
|
:class="{ ['-disabled']: !pack || pack.remote !== undefined }"
|
||||||
:changed="metaEdited('fallback-src')"
|
>
|
||||||
message-key="admin_dash.emoji.metadata_changed"
|
<span class="setting-label">
|
||||||
/>
|
<ModifiedIndicator
|
||||||
|
:changed="metaEdited('fallback-src')"
|
||||||
|
message-key="admin_dash.emoji.metadata_changed"
|
||||||
|
/>
|
||||||
|
{{ $t('admin_dash.emoji.fallback_src') }}
|
||||||
|
</span>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
v-model="packMeta['fallback-src']"
|
v-model="packMeta['fallback-src']"
|
||||||
class="emoji-info-input input"
|
class="emoji-info-input input setting-control"
|
||||||
:disabled="!pack || pack.remote !== undefined"
|
:disabled="!pack || pack.remote !== undefined"
|
||||||
>
|
>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label :class="{ ['-disabled']: !pack || pack.remote !== undefined }">
|
<label
|
||||||
{{ $t('admin_dash.emoji.fallback_sha256') }}
|
class="setting-item"
|
||||||
|
:class="{ ['-disabled']: !pack || pack.remote !== undefined }"
|
||||||
|
>
|
||||||
|
<span class="setting-label">
|
||||||
|
{{ $t('admin_dash.emoji.fallback_sha256') }}
|
||||||
|
</span>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
v-model="packMeta['fallback-src-sha256']"
|
v-model="packMeta['fallback-src-sha256']"
|
||||||
:disabled="!pack || pack.remote !== undefined"
|
:disabled="!pack || pack.remote !== undefined"
|
||||||
class="emoji-info-input input"
|
class="emoji-info-input input setting-control"
|
||||||
>
|
>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Checkbox
|
<div class="setting-item">
|
||||||
v-model="packMeta['share-files']"
|
<Checkbox
|
||||||
:disabled="!pack || pack.remote !== undefined"
|
v-model="packMeta['share-files']"
|
||||||
>
|
:disabled="!pack || pack.remote !== undefined"
|
||||||
{{ $t('admin_dash.emoji.share') }}
|
class="setting-label setting-control"
|
||||||
</Checkbox>
|
>
|
||||||
|
<ModifiedIndicator
|
||||||
<ModifiedIndicator
|
:changed="metaEdited('share-files')"
|
||||||
:changed="metaEdited('share-files')"
|
message-key="admin_dash.emoji.metadata_changed"
|
||||||
message-key="admin_dash.emoji.metadata_changed"
|
/>
|
||||||
/>
|
{{ $t('admin_dash.emoji.share') }}
|
||||||
|
</Checkbox>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<div class="meta-buttons">
|
<div class="meta-buttons">
|
||||||
<button
|
<button
|
||||||
v-if="pack && pack.remote === undefined"
|
v-if="pack && pack.remote === undefined"
|
||||||
|
|
@ -355,6 +379,7 @@
|
||||||
>
|
>
|
||||||
<EmojiEditingPopover
|
<EmojiEditingPopover
|
||||||
v-if="pack && pack.remote === undefined"
|
v-if="pack && pack.remote === undefined"
|
||||||
|
class="emoji-item"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
new-upload
|
new-upload
|
||||||
:title="$t('admin_dash.emoji.adding_new')"
|
:title="$t('admin_dash.emoji.adding_new')"
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||||
import IntegerSetting from '../helpers/integer_setting.vue'
|
import IntegerSetting from '../helpers/integer_setting.vue'
|
||||||
import StringSetting from '../helpers/string_setting.vue'
|
import StringSetting from '../helpers/string_setting.vue'
|
||||||
import GroupSetting from '../helpers/group_setting.vue'
|
import GroupSetting from '../helpers/group_setting.vue'
|
||||||
|
import ColorSetting from '../helpers/color_setting.vue'
|
||||||
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
||||||
|
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
|
|
@ -20,6 +21,7 @@ const MailerTab = {
|
||||||
IntegerSetting,
|
IntegerSetting,
|
||||||
StringSetting,
|
StringSetting,
|
||||||
AttachmentSetting,
|
AttachmentSetting,
|
||||||
|
ColorSetting,
|
||||||
GroupSetting
|
GroupSetting
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,35 @@
|
||||||
<template>
|
<template>
|
||||||
<div :label="$t('admin_dash.tabs.mailer')">
|
<div :label="$t('admin_dash.tabs.mailer')">
|
||||||
<div class="setting-section">
|
<div class="setting-section">
|
||||||
|
<h3>{{ $t('admin_dash.mailer.styling') }}</h3>
|
||||||
|
<ul class="setting-list">
|
||||||
|
<h4>{{ $t('admin_dash.mailer.assets') }}</h4>
|
||||||
|
<li>
|
||||||
|
<StringSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':logo']" />
|
||||||
|
</li>
|
||||||
|
<h4>{{ $t('admin_dash.mailer.colors') }}</h4>
|
||||||
|
<li>
|
||||||
|
<ColorSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':styling', ':background_color']" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<ColorSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':styling', ':content_background_color']" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<ColorSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':styling', ':header_color']" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<ColorSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':styling', ':text_color']" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<ColorSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':styling', ':link_color']" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<ColorSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':styling', ':text_muted_color']" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<GroupSetting :path="[':pleroma','Pleroma.Emails.UserEmail', ':styling']" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
<h3>{{ $t('admin_dash.mailer.adapter') }}</h3>
|
<h3>{{ $t('admin_dash.mailer.adapter') }}</h3>
|
||||||
<ul class="setting-list">
|
<ul class="setting-list">
|
||||||
<li>
|
<li>
|
||||||
|
|
|
||||||
|
|
@ -43,30 +43,3 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script src="./boolean_setting.js"></script>
|
<script src="./boolean_setting.js"></script>
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.BooleanSetting {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: subgrid;
|
|
||||||
|
|
||||||
.checkbox {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: subgrid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label {
|
|
||||||
grid-area: label;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.-mobile & {
|
|
||||||
.label {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.checkbox-indicator {
|
|
||||||
grid-area: control;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
{{ ' ' }}
|
{{ ' ' }}
|
||||||
<ColorInput
|
<ColorInput
|
||||||
:id="path"
|
:id="path"
|
||||||
class="color-setting-input"
|
class="setting-control color-setting-input"
|
||||||
:class="{ disabled: shouldBeDisabled }"
|
:class="{ disabled: shouldBeDisabled }"
|
||||||
:disabled="shouldBeDisabled"
|
:disabled="shouldBeDisabled"
|
||||||
:placeholder="backendDescriptionSuggestions"
|
:placeholder="backendDescriptionSuggestions"
|
||||||
|
|
@ -47,8 +47,25 @@
|
||||||
<script src="./color_setting.js"></script>
|
<script src="./color_setting.js"></script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.ColorSetting {
|
.ColorSetting {
|
||||||
|
&.setting-item {
|
||||||
|
display: grid;
|
||||||
|
grid-template-areas:
|
||||||
|
"label control"
|
||||||
|
". desc"
|
||||||
|
". draft";
|
||||||
|
|
||||||
|
.setting-label {
|
||||||
|
text-align: right;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-control {
|
||||||
|
align-self: end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.color-setting-input {
|
.color-setting-input {
|
||||||
vertical-align: middle;
|
align-self: baseline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@
|
||||||
|
|
||||||
<script src="./map_setting.js"></script>
|
<script src="./map_setting.js"></script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.ListSetting {
|
.MapSetting {
|
||||||
.btn-group {
|
.btn-group {
|
||||||
display: flex
|
display: flex
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,25 +18,27 @@
|
||||||
<slot v-else />
|
<slot v-else />
|
||||||
</label>
|
</label>
|
||||||
{{ ' ' }}
|
{{ ' ' }}
|
||||||
<input
|
<div class="setting-control">
|
||||||
:id="path"
|
<input
|
||||||
class="input string-input"
|
:id="path"
|
||||||
:class="{ disabled: shouldBeDisabled }"
|
class="input string-input"
|
||||||
:disabled="shouldBeDisabled"
|
:class="{ disabled: shouldBeDisabled }"
|
||||||
:placeholder="backendDescriptionSuggestions[0]"
|
:disabled="shouldBeDisabled"
|
||||||
:value="displayState"
|
:placeholder="backendDescriptionSuggestions[0]"
|
||||||
@change="event => update({ event })"
|
:value="displayState"
|
||||||
>
|
@change="event => update({ event })"
|
||||||
{{ ' ' }}
|
>
|
||||||
<Checkbox
|
|
||||||
:model-value="socksState"
|
|
||||||
:disabled="shouldBeDisabled"
|
|
||||||
:indeterminate="isIndeterminate"
|
|
||||||
@update:model-value="event => update({ event, isProxy: true})"
|
|
||||||
>
|
|
||||||
{{ $t('admin_dash.http.socks5') }}
|
|
||||||
{{ ' ' }}
|
{{ ' ' }}
|
||||||
</Checkbox>
|
<Checkbox
|
||||||
|
:model-value="socksState"
|
||||||
|
:disabled="shouldBeDisabled"
|
||||||
|
:indeterminate="isIndeterminate"
|
||||||
|
@update:model-value="event => update({ event, isProxy: true})"
|
||||||
|
>
|
||||||
|
SOCKS5
|
||||||
|
{{ ' ' }}
|
||||||
|
</Checkbox>
|
||||||
|
</div>
|
||||||
{{ ' ' }}
|
{{ ' ' }}
|
||||||
<ModifiedIndicator
|
<ModifiedIndicator
|
||||||
:changed="isChanged"
|
:changed="isChanged"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
class="PWAManifestIconsSetting setting-item"
|
class="PWAManifestIconsSetting setting-item"
|
||||||
>
|
>
|
||||||
<label
|
<label
|
||||||
class="setting-label"
|
class="pwa-label setting-label"
|
||||||
:class="{ 'faint': shouldBeDisabled }"
|
:class="{ 'faint': shouldBeDisabled }"
|
||||||
>
|
>
|
||||||
<template v-if="backendDescriptionLabel">
|
<template v-if="backendDescriptionLabel">
|
||||||
|
|
@ -22,12 +22,12 @@
|
||||||
>
|
>
|
||||||
{{ backendDescriptionDescription + ' ' }}
|
{{ backendDescriptionDescription + ' ' }}
|
||||||
</p>
|
</p>
|
||||||
<ul class="setting-list">
|
<ul class="setting-list setting-control">
|
||||||
<li
|
<li
|
||||||
v-for="(item, index) in visibleState"
|
v-for="(item, index) in visibleState"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<div>
|
<div class="setting-item">
|
||||||
<dl>
|
<dl>
|
||||||
<dt><code>purpose</code></dt>
|
<dt><code>purpose</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
@ -96,13 +96,34 @@
|
||||||
<script src="./pwa_manifest_icons_setting.js"></script>
|
<script src="./pwa_manifest_icons_setting.js"></script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.PWAManifestIconsSetting {
|
.PWAManifestIconsSetting {
|
||||||
display: inline-block;
|
&.setting-item {
|
||||||
|
display: grid;
|
||||||
|
grid-template-areas:
|
||||||
|
"label control"
|
||||||
|
"desc control"
|
||||||
|
". draft";
|
||||||
|
grid-template-rows: 2em auto 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pwa-label.setting-label {
|
||||||
|
align-self: end;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-description {
|
||||||
|
text-align: right;
|
||||||
|
align-self: start;
|
||||||
|
}
|
||||||
|
|
||||||
.setting-list {
|
.setting-list {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.setting-item {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
.buttons {
|
.buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,12 @@
|
||||||
class="setting-label"
|
class="setting-label"
|
||||||
:class="{ 'faint': shouldBeDisabled }"
|
:class="{ 'faint': shouldBeDisabled }"
|
||||||
>
|
>
|
||||||
|
<ModifiedIndicator
|
||||||
|
:changed="isChanged"
|
||||||
|
:onclick="reset"
|
||||||
|
/>
|
||||||
|
<ProfileSettingIndicator :is-profile="isProfileSetting" />
|
||||||
|
{{ ' ' }}
|
||||||
<template v-if="backendDescriptionLabel">
|
<template v-if="backendDescriptionLabel">
|
||||||
{{ backendDescriptionLabel + ' ' }}
|
{{ backendDescriptionLabel + ' ' }}
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -22,82 +28,98 @@
|
||||||
>
|
>
|
||||||
{{ backendDescriptionDescription + ' ' }}
|
{{ backendDescriptionDescription + ' ' }}
|
||||||
</p>
|
</p>
|
||||||
<table>
|
<div class="setting-control">
|
||||||
<tr>
|
<table>
|
||||||
<th> </th>
|
<tr>
|
||||||
<th>
|
<th> </th>
|
||||||
{{ $t('admin_dash.rate_limit.period') }}
|
<th>
|
||||||
</th>
|
{{ $t('admin_dash.rate_limit.period') }}
|
||||||
<th>
|
</th>
|
||||||
{{ $t('admin_dash.rate_limit.amount') }}
|
<th>
|
||||||
</th>
|
{{ $t('admin_dash.rate_limit.amount') }}
|
||||||
</tr>
|
</th>
|
||||||
<tr>
|
</tr>
|
||||||
<td v-if="isSeparate">
|
<tr>
|
||||||
{{ $t('admin_dash.rate_limit.unauthenticated') }}
|
<td v-if="isSeparate">
|
||||||
</td>
|
{{ $t('admin_dash.rate_limit.unauthenticated') }}
|
||||||
<td v-else>
|
</td>
|
||||||
{{ $t('admin_dash.rate_limit.rate_limit') }}
|
<td v-else>
|
||||||
</td>
|
{{ $t('admin_dash.rate_limit.rate_limit') }}
|
||||||
<td>
|
</td>
|
||||||
<input
|
<td>
|
||||||
class="input string-input"
|
<input
|
||||||
type="number"
|
class="input string-input"
|
||||||
:value="normalizedState[0][0]"
|
type="number"
|
||||||
@change="e => update({ event: e, index: 0, side: 0, eventType: 'edit' })"
|
:value="normalizedState[0][0]"
|
||||||
>
|
@change="e => update({ event: e, index: 0, side: 0, eventType: 'edit' })"
|
||||||
</td>
|
>
|
||||||
<td>
|
</td>
|
||||||
<input
|
<td>
|
||||||
class="input string-input"
|
<input
|
||||||
type="number"
|
class="input string-input"
|
||||||
:value="normalizedState[0][1]"
|
type="number"
|
||||||
@change="e => update({ event: e, index: 1, side: 0, eventType: 'edit' })"
|
:value="normalizedState[0][1]"
|
||||||
>
|
@change="e => update({ event: e, index: 1, side: 0, eventType: 'edit' })"
|
||||||
</td>
|
>
|
||||||
</tr>
|
</td>
|
||||||
<tr v-if="isSeparate">
|
</tr>
|
||||||
<td>
|
<tr v-if="isSeparate">
|
||||||
{{ $t('admin_dash.rate_limit.authenticated') }}
|
<td>
|
||||||
</td>
|
{{ $t('admin_dash.rate_limit.authenticated') }}
|
||||||
<td>
|
</td>
|
||||||
<input
|
<td>
|
||||||
class="input string-input"
|
<input
|
||||||
type="number"
|
class="input string-input"
|
||||||
:value="normalizedState[1][0]"
|
type="number"
|
||||||
@change="e => update({ event: e, index: 0, side: 1, eventType: 'edit' })"
|
:value="normalizedState[1][0]"
|
||||||
>
|
@change="e => update({ event: e, index: 0, side: 1, eventType: 'edit' })"
|
||||||
</td>
|
>
|
||||||
<td>
|
</td>
|
||||||
<input
|
<td>
|
||||||
class="input string-input"
|
<input
|
||||||
type="number"
|
class="input string-input"
|
||||||
:value="normalizedState[1][1]"
|
type="number"
|
||||||
@change="e => update({ event: e, index: 1, side: 1, eventType: 'edit' })"
|
:value="normalizedState[1][1]"
|
||||||
>
|
@change="e => update({ event: e, index: 1, side: 1, eventType: 'edit' })"
|
||||||
</td>
|
>
|
||||||
</tr>
|
</td>
|
||||||
</table>
|
</tr>
|
||||||
<Checkbox
|
</table>
|
||||||
:model-value="isSeparate"
|
<Checkbox
|
||||||
@update:model-value="event => update({ event: event ? 'join' : 'split', eventType: 'toggleMode' })"
|
:model-value="isSeparate"
|
||||||
>
|
@update:model-value="event => update({ event: event ? 'join' : 'split', eventType: 'toggleMode' })"
|
||||||
{{ $t('admin_dash.rate_limit.separate') }}
|
>
|
||||||
</Checkbox>
|
{{ $t('admin_dash.rate_limit.separate') }}
|
||||||
<div>
|
</Checkbox>
|
||||||
<ModifiedIndicator
|
|
||||||
:changed="isChanged"
|
|
||||||
:onclick="reset"
|
|
||||||
/>
|
|
||||||
<ProfileSettingIndicator :is-profile="isProfileSetting" />
|
|
||||||
<DraftButtons />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<DraftButtons />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script src="./rate_setting.js"></script>
|
<script src="./rate_setting.js"></script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.RateSetting {
|
.RateSetting {
|
||||||
|
&.setting-item {
|
||||||
|
display: grid;
|
||||||
|
grid-template-areas:
|
||||||
|
"label control"
|
||||||
|
"desc control"
|
||||||
|
". draft";
|
||||||
|
|
||||||
|
.setting-label {
|
||||||
|
text-align: right;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-description {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-control {
|
||||||
|
align-self: end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
margin-top: 0.5em;
|
margin-top: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
h5 {
|
h5 {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
margin-right: 1em;
|
margin-left: 1em;
|
||||||
margin-bottom: 0.25em;
|
margin-bottom: 0.25em;
|
||||||
margin-top: 0.75em;
|
margin-top: 0.75em;
|
||||||
}
|
}
|
||||||
|
|
@ -60,8 +60,8 @@
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
"label control"
|
"label control"
|
||||||
". desc"
|
"label desc"
|
||||||
". draft";
|
". draft";
|
||||||
grid-template-columns: 4fr 5fr;
|
grid-template-columns: 4fr 5fr;
|
||||||
column-gap: 0.5em;
|
column-gap: 0.5em;
|
||||||
align-items: baseline;
|
align-items: baseline;
|
||||||
|
|
@ -70,6 +70,7 @@
|
||||||
.setting-label {
|
.setting-label {
|
||||||
grid-area: label;
|
grid-area: label;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
align-self: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ModifiedIndicator,
|
.ModifiedIndicator,
|
||||||
|
|
@ -79,6 +80,31 @@
|
||||||
|
|
||||||
.setting-control {
|
.setting-control {
|
||||||
grid-area: control;
|
grid-area: control;
|
||||||
|
|
||||||
|
&.textarea {
|
||||||
|
align-self: baseline;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.checkbox {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: subgrid;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
grid-area: label;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-indicator {
|
||||||
|
grid-area: control;
|
||||||
|
}
|
||||||
|
|
||||||
|
.-mobile & {
|
||||||
|
.label {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.setting-control.setting-label {
|
.setting-control.setting-label {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,24 @@
|
||||||
.developer-tab {
|
.developer-tab {
|
||||||
|
.setting-list {
|
||||||
|
margin-left: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cache-buttons {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
grid-column: 1 / 3;
|
||||||
|
column-gap: 0.5em;
|
||||||
|
margin: 0 5em;
|
||||||
|
|
||||||
|
.-mobile & {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
grid-template-rows: 1fr 1fr;
|
||||||
|
row-gap: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
dt {
|
dt {
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,22 +32,6 @@
|
||||||
{{ $t('settings.virtual_scrolling') }}
|
{{ $t('settings.virtual_scrolling') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<button
|
|
||||||
class="btn button-default"
|
|
||||||
@click="clearAssetCache"
|
|
||||||
>
|
|
||||||
{{ $t('settings.clear_asset_cache') }}
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<button
|
|
||||||
class="btn button-default"
|
|
||||||
@click="clearEmojiCache"
|
|
||||||
>
|
|
||||||
{{ $t('settings.clear_emoji_cache') }}
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting
|
<BooleanSetting
|
||||||
path="themeDebug"
|
path="themeDebug"
|
||||||
|
|
@ -64,6 +48,25 @@
|
||||||
{{ $t('settings.force_theme_recompilation_debug') }}
|
{{ $t('settings.force_theme_recompilation_debug') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
|
<h4>{{ $t('settings.cache') }}</h4>
|
||||||
|
<li>
|
||||||
|
<div class="setting-item">
|
||||||
|
<div class="cache-buttons">
|
||||||
|
<button
|
||||||
|
class="btn button-default"
|
||||||
|
@click="clearAssetCache"
|
||||||
|
>
|
||||||
|
{{ $t('settings.clear_asset_cache') }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
class="btn button-default"
|
||||||
|
@click="clearEmojiCache"
|
||||||
|
>
|
||||||
|
{{ $t('settings.clear_emoji_cache') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,7 @@
|
||||||
|
|
||||||
.setting-section {
|
.setting-section {
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
|
margin-top: 1em;
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
padding: 0 0.5em;
|
padding: 0 0.5em;
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,10 @@
|
||||||
height: auto; // override settings default textarea size
|
height: auto; // override settings default textarea size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.follow-button {
|
||||||
|
flex: 1 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
.user-card-inner {
|
.user-card-inner {
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1170,15 +1170,12 @@
|
||||||
"posts": {
|
"posts": {
|
||||||
"global": "Global settings",
|
"global": "Global settings",
|
||||||
"local": "Local posts",
|
"local": "Local posts",
|
||||||
"scheduled_activites": "Scheduled posts",
|
|
||||||
"remote": "Remote posts"
|
"remote": "Remote posts"
|
||||||
},
|
},
|
||||||
"other": {
|
"other": {
|
||||||
"uncategorized": "Uncategorized",
|
"uncategorized": "Uncategorized",
|
||||||
"user_backup": "User Backup",
|
"user_backup": "User Backup",
|
||||||
"reports": "Reports",
|
"reports": "Reports",
|
||||||
"feed": "RSS Feed",
|
|
||||||
"feed_title": "Article Title",
|
|
||||||
"privileges": "Privileges"
|
"privileges": "Privileges"
|
||||||
},
|
},
|
||||||
"monitoring": {
|
"monitoring": {
|
||||||
|
|
@ -1191,8 +1188,7 @@
|
||||||
"activitypub": "ActivityPub"
|
"activitypub": "ActivityPub"
|
||||||
},
|
},
|
||||||
"http": {
|
"http": {
|
||||||
"outbound": "Outbound HTTP requests",
|
"outbound": "Outbound HTTP requests"
|
||||||
"socks5": "SOCKS5"
|
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"MFA": "Multi-factor Authentication",
|
"MFA": "Multi-factor Authentication",
|
||||||
|
|
@ -1202,7 +1198,6 @@
|
||||||
"backup_codes": "Backup codes"
|
"backup_codes": "Backup codes"
|
||||||
},
|
},
|
||||||
"job_queues": {
|
"job_queues": {
|
||||||
"Oban": "Oban queues",
|
|
||||||
"Gun": {
|
"Gun": {
|
||||||
"title": "Gun queues",
|
"title": "Gun queues",
|
||||||
"connections_pools": "Gun connections pool",
|
"connections_pools": "Gun connections pool",
|
||||||
|
|
@ -1298,6 +1293,9 @@
|
||||||
"invalidation_settings": "Cache Invalidation"
|
"invalidation_settings": "Cache Invalidation"
|
||||||
},
|
},
|
||||||
"mailer": {
|
"mailer": {
|
||||||
|
"styling": "Styling",
|
||||||
|
"assets": "Assets",
|
||||||
|
"colors": "Color palette",
|
||||||
"adapter": "Mailing Adapter",
|
"adapter": "Mailing Adapter",
|
||||||
"auth": "Authentication"
|
"auth": "Authentication"
|
||||||
},
|
},
|
||||||
|
|
@ -1398,11 +1396,11 @@
|
||||||
":connections_pool": {
|
":connections_pool": {
|
||||||
":max_idle_time": {
|
":max_idle_time": {
|
||||||
"label": "Maximum idle time",
|
"label": "Maximum idle time",
|
||||||
"description": "idk"
|
"description": "Maximum idle time before CONFIRM"
|
||||||
},
|
},
|
||||||
":retry": {
|
":retry": {
|
||||||
"label": "Retry",
|
"label": "Retry",
|
||||||
"description": "idk"
|
"description": "Number of retries for making a connection CONFIRM"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
":pools": {
|
":pools": {
|
||||||
|
|
@ -1415,6 +1413,14 @@
|
||||||
":oauth_app_creation": {
|
":oauth_app_creation": {
|
||||||
"label": "OAuth app creation",
|
"label": "OAuth app creation",
|
||||||
"description": "For registering new OAuth App ID"
|
"description": "For registering new OAuth App ID"
|
||||||
|
},
|
||||||
|
":ap_routes": {
|
||||||
|
"label": "ActivityPub",
|
||||||
|
"description": "Federation endpoints"
|
||||||
|
},
|
||||||
|
":account_confirmation_resend": {
|
||||||
|
"label": "Account confirmation resend",
|
||||||
|
"description": "How often user can resend confirmation mail"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Pleroma_DOT_Formatter": {
|
"Pleroma_DOT_Formatter": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue