Compare commits
No commits in common. "c679df05d061709bb7f28b50e3ceab51bd1dbfe1" and "3b2bc69341ed95d2eb72e1dca66832afc0af5d97" have entirely different histories.
c679df05d0
...
3b2bc69341
32 changed files with 39 additions and 325 deletions
|
@ -1 +0,0 @@
|
||||||
Display quotes count on posts and add quotes list page
|
|
|
@ -1 +0,0 @@
|
||||||
Option to only show scrobbles that are recent enough
|
|
|
@ -3,7 +3,7 @@
|
||||||
@import "./panel";
|
@import "./panel";
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--fontSize: 14px;
|
--font-size: 14px;
|
||||||
--status-margin: 0.75em;
|
--status-margin: 0.75em;
|
||||||
--navbar-height: 3.5rem;
|
--navbar-height: 3.5rem;
|
||||||
--post-line-height: 1.4;
|
--post-line-height: 1.4;
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-size: var(--textSize);
|
font-size: var(--font-size);
|
||||||
// overflow-x: clip causes my browser's tab to crash with SIGILL lul
|
// overflow-x: clip causes my browser's tab to crash with SIGILL lul
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ import ListsTimeline from 'components/lists_timeline/lists_timeline.vue'
|
||||||
import ListsEdit from 'components/lists_edit/lists_edit.vue'
|
import ListsEdit from 'components/lists_edit/lists_edit.vue'
|
||||||
import NavPanel from 'src/components/nav_panel/nav_panel.vue'
|
import NavPanel from 'src/components/nav_panel/nav_panel.vue'
|
||||||
import AnnouncementsPage from 'components/announcements_page/announcements_page.vue'
|
import AnnouncementsPage from 'components/announcements_page/announcements_page.vue'
|
||||||
import QuotesTimeline from '../components/quotes_timeline/quotes_timeline.vue'
|
|
||||||
|
|
||||||
export default (store) => {
|
export default (store) => {
|
||||||
const validateAuthenticatedRoute = (to, from, next) => {
|
const validateAuthenticatedRoute = (to, from, next) => {
|
||||||
|
@ -52,7 +51,6 @@ export default (store) => {
|
||||||
{ name: 'tag-timeline', path: '/tag/:tag', component: TagTimeline },
|
{ name: 'tag-timeline', path: '/tag/:tag', component: TagTimeline },
|
||||||
{ name: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },
|
{ name: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },
|
||||||
{ name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },
|
{ name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },
|
||||||
{ name: 'quotes', path: '/notice/:id/quotes', component: QuotesTimeline },
|
|
||||||
{
|
{
|
||||||
name: 'remote-user-profile-acct',
|
name: 'remote-user-profile-acct',
|
||||||
path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)',
|
path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)',
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
|
||||||
|
|
||||||
const QuotesTimeline = {
|
|
||||||
created () {
|
|
||||||
this.$store.commit('clearTimeline', { timeline: 'quotes' })
|
|
||||||
this.$store.dispatch('startFetchingTimeline', { timeline: 'quotes', statusId: this.statusId })
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
Timeline
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
statusId () { return this.$route.params.id },
|
|
||||||
timeline () { return this.$store.state.statuses.timelines.quotes }
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
statusId () {
|
|
||||||
this.$store.commit('clearTimeline', { timeline: 'quotes' })
|
|
||||||
this.$store.dispatch('startFetchingTimeline', { timeline: 'quotes', statusId: this.statusId })
|
|
||||||
}
|
|
||||||
},
|
|
||||||
unmounted () {
|
|
||||||
this.$store.dispatch('stopFetchingTimeline', 'quotes')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default QuotesTimeline
|
|
|
@ -1,10 +0,0 @@
|
||||||
<template>
|
|
||||||
<Timeline
|
|
||||||
:title="$t('nav.quotes')"
|
|
||||||
:timeline="timeline"
|
|
||||||
:timeline-name="'quotes'"
|
|
||||||
:status-id="statusId"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script src='./quotes_timeline.js'></script>
|
|
|
@ -48,10 +48,6 @@ export default {
|
||||||
draftMode: {
|
draftMode: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: undefined
|
default: undefined
|
||||||
},
|
|
||||||
timedApplyMode: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
|
@ -165,11 +161,7 @@ export default {
|
||||||
case 'admin':
|
case 'admin':
|
||||||
return (k, v) => this.$store.dispatch('pushAdminSetting', { path: k, value: v })
|
return (k, v) => this.$store.dispatch('pushAdminSetting', { path: k, value: v })
|
||||||
default:
|
default:
|
||||||
if (this.timedApplyMode) {
|
return (k, v) => this.$store.dispatch('setOption', { name: k, value: v })
|
||||||
return (k, v) => this.$store.dispatch('setOptionTemporarily', { name: k, value: v })
|
|
||||||
} else {
|
|
||||||
return (k, v) => this.$store.dispatch('setOption', { name: k, value: v })
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
defaultState () {
|
defaultState () {
|
||||||
|
|
|
@ -21,23 +21,15 @@ export default {
|
||||||
unitSet: {
|
unitSet: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'none'
|
default: 'none'
|
||||||
},
|
|
||||||
step: {
|
|
||||||
type: Number,
|
|
||||||
default: 1
|
|
||||||
},
|
|
||||||
resetDefault: {
|
|
||||||
type: Object,
|
|
||||||
default: null
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...Setting.computed,
|
...Setting.computed,
|
||||||
stateUnit () {
|
stateUnit () {
|
||||||
return typeof this.state === 'string' ? this.state.replace(/[0-9,.]+/, '') : ''
|
return this.state.replace(/\d+/, '')
|
||||||
},
|
},
|
||||||
stateValue () {
|
stateValue () {
|
||||||
return typeof this.state === 'string' ? this.state.replace(/[^0-9,.]+/, '') : ''
|
return this.state.replace(/\D+/, '')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -47,18 +39,10 @@ export default {
|
||||||
return this.$t(['settings', 'units', this.unitSet, value].join('.'))
|
return this.$t(['settings', 'units', this.unitSet, value].join('.'))
|
||||||
},
|
},
|
||||||
updateValue (e) {
|
updateValue (e) {
|
||||||
this.configSink(this.path, parseFloat(e.target.value) + this.stateUnit)
|
this.configSink(this.path, parseInt(e.target.value) + this.stateUnit)
|
||||||
},
|
},
|
||||||
updateUnit (e) {
|
updateUnit (e) {
|
||||||
let value = this.stateValue
|
this.configSink(this.path, this.stateValue + e.target.value)
|
||||||
const newUnit = e.target.value
|
|
||||||
if (this.resetDefault) {
|
|
||||||
const replaceValue = this.resetDefault[newUnit]
|
|
||||||
if (replaceValue != null) {
|
|
||||||
value = replaceValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.configSink(this.path, value + newUnit)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
:id="path"
|
:id="path"
|
||||||
class="input number-input"
|
class="input number-input"
|
||||||
type="number"
|
type="number"
|
||||||
step="step"
|
step="1"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:min="min || 0"
|
:min="min || 0"
|
||||||
:value="stateValue"
|
:value="stateValue"
|
||||||
|
|
|
@ -4,7 +4,6 @@ import AsyncComponentError from 'src/components/async_component_error/async_comp
|
||||||
import getResettableAsyncComponent from 'src/services/resettable_async_component.js'
|
import getResettableAsyncComponent from 'src/services/resettable_async_component.js'
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from '../popover/popover.vue'
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue'
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { cloneDeep, isEqual } from 'lodash'
|
import { cloneDeep, isEqual } from 'lodash'
|
||||||
import {
|
import {
|
||||||
|
@ -54,7 +53,6 @@ const SettingsModal = {
|
||||||
Modal,
|
Modal,
|
||||||
Popover,
|
Popover,
|
||||||
Checkbox,
|
Checkbox,
|
||||||
ConfirmModal,
|
|
||||||
SettingsModalUserContent: getResettableAsyncComponent(
|
SettingsModalUserContent: getResettableAsyncComponent(
|
||||||
() => import('./settings_modal_user_content.vue'),
|
() => import('./settings_modal_user_content.vue'),
|
||||||
{
|
{
|
||||||
|
@ -167,7 +165,6 @@ const SettingsModal = {
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
currentSaveStateNotice () {
|
currentSaveStateNotice () {
|
||||||
console.log(this.$store.state.interface.settings.currentSaveStateNotice)
|
|
||||||
return this.$store.state.interface.settings.currentSaveStateNotice
|
return this.$store.state.interface.settings.currentSaveStateNotice
|
||||||
},
|
},
|
||||||
modalActivated () {
|
modalActivated () {
|
||||||
|
|
|
@ -147,18 +147,6 @@
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<teleport to="#modal">
|
|
||||||
<ConfirmModal
|
|
||||||
v-if="$store.state.interface.temporaryChangesTimeoutId"
|
|
||||||
:title="$t('settings.confirm_new_setting')"
|
|
||||||
:cancel-text="$t('settings.revert')"
|
|
||||||
:confirm-text="$t('settings.confirm')"
|
|
||||||
@cancelled="$store.state.interface.temporaryChangesRevert"
|
|
||||||
@accepted="$store.state.interface.temporaryChangesConfirm"
|
|
||||||
>
|
|
||||||
{{ $t('settings.confirm_new_question') }}
|
|
||||||
</ConfirmModal>
|
|
||||||
</teleport>
|
|
||||||
</Modal>
|
</Modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ import FilteringTab from './tabs/filtering_tab.vue'
|
||||||
import SecurityTab from './tabs/security_tab/security_tab.vue'
|
import SecurityTab from './tabs/security_tab/security_tab.vue'
|
||||||
import ProfileTab from './tabs/profile_tab.vue'
|
import ProfileTab from './tabs/profile_tab.vue'
|
||||||
import GeneralTab from './tabs/general_tab.vue'
|
import GeneralTab from './tabs/general_tab.vue'
|
||||||
import AppearanceTab from './tabs/appearance_tab.vue'
|
|
||||||
import VersionTab from './tabs/version_tab.vue'
|
import VersionTab from './tabs/version_tab.vue'
|
||||||
import ThemeTab from './tabs/theme_tab/theme_tab.vue'
|
import ThemeTab from './tabs/theme_tab/theme_tab.vue'
|
||||||
|
|
||||||
|
@ -45,7 +44,6 @@ const SettingsModalContent = {
|
||||||
SecurityTab,
|
SecurityTab,
|
||||||
ProfileTab,
|
ProfileTab,
|
||||||
GeneralTab,
|
GeneralTab,
|
||||||
AppearanceTab,
|
|
||||||
VersionTab,
|
VersionTab,
|
||||||
ThemeTab
|
ThemeTab
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,13 +21,6 @@
|
||||||
>
|
>
|
||||||
<ProfileTab />
|
<ProfileTab />
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
:label="$t('settings.appearance')"
|
|
||||||
icon="paint-brush"
|
|
||||||
data-tab-name="appearance"
|
|
||||||
>
|
|
||||||
<AppearanceTab />
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
v-if="isLoggedIn"
|
v-if="isLoggedIn"
|
||||||
:label="$t('settings.security_tab')"
|
:label="$t('settings.security_tab')"
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
|
||||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
|
||||||
import IntegerSetting from '../helpers/integer_setting.vue'
|
|
||||||
import FloatSetting from '../helpers/float_setting.vue'
|
|
||||||
import UnitSetting from '../helpers/unit_setting.vue'
|
|
||||||
|
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
|
||||||
import ProfileSettingIndicator from '../helpers/profile_setting_indicator.vue'
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import {
|
|
||||||
faGlobe
|
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(
|
|
||||||
faGlobe
|
|
||||||
)
|
|
||||||
|
|
||||||
const AppearanceTab = {
|
|
||||||
data () {
|
|
||||||
return {}
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
BooleanSetting,
|
|
||||||
ChoiceSetting,
|
|
||||||
IntegerSetting,
|
|
||||||
FloatSetting,
|
|
||||||
UnitSetting,
|
|
||||||
ProfileSettingIndicator
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
instanceWallpaperUsed () {
|
|
||||||
return this.$store.state.instance.background &&
|
|
||||||
!this.$store.state.users.currentUser.background_image
|
|
||||||
},
|
|
||||||
...SharedComputedObject()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default AppearanceTab
|
|
|
@ -1,71 +0,0 @@
|
||||||
<template>
|
|
||||||
<div :label="$t('settings.general')">
|
|
||||||
<div class="setting-item">
|
|
||||||
<h2>{{ $t('settings.interface') }}</h2>
|
|
||||||
<ul class="setting-list">
|
|
||||||
<li v-if="instanceWallpaperUsed">
|
|
||||||
<BooleanSetting path="hideInstanceWallpaper">
|
|
||||||
{{ $t('settings.hide_wallpaper') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="disableStickyHeaders">
|
|
||||||
{{ $t('settings.disable_sticky_headers') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="showScrollbars">
|
|
||||||
{{ $t('settings.show_scrollbars') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<UnitSetting
|
|
||||||
path="textSize"
|
|
||||||
step="0.1"
|
|
||||||
:units="['px', 'rem']"
|
|
||||||
:reset-default="{ 'px': 14, 'rem': 1 }"
|
|
||||||
timed-apply-mode
|
|
||||||
>
|
|
||||||
{{ $t('settings.text_size') }}
|
|
||||||
</UnitSetting>
|
|
||||||
<div>
|
|
||||||
<small>
|
|
||||||
<i18n-t
|
|
||||||
scope="global"
|
|
||||||
keypath="settings.text_size_tip"
|
|
||||||
tag="span"
|
|
||||||
>
|
|
||||||
<code>px</code>
|
|
||||||
<code>rem</code>
|
|
||||||
</i18n-t>
|
|
||||||
<br/>
|
|
||||||
<i18n-t
|
|
||||||
scope="global"
|
|
||||||
keypath="settings.text_size_tip2"
|
|
||||||
tag="span"
|
|
||||||
>
|
|
||||||
<code>14px</code>
|
|
||||||
</i18n-t>
|
|
||||||
</small>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script src="./appearance_tab.js"></script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.column-settings {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-evenly;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.column-settings .size-label {
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 0.5em;
|
|
||||||
margin-top: 0.5em;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -15,6 +15,11 @@
|
||||||
{{ $t('settings.hide_isp') }}
|
{{ $t('settings.hide_isp') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
|
<li v-if="instanceWallpaperUsed">
|
||||||
|
<BooleanSetting path="hideInstanceWallpaper">
|
||||||
|
{{ $t('settings.hide_wallpaper') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting path="stopGifs">
|
<BooleanSetting path="stopGifs">
|
||||||
{{ $t('settings.stop_gifs') }}
|
{{ $t('settings.stop_gifs') }}
|
||||||
|
@ -96,6 +101,16 @@
|
||||||
<li>
|
<li>
|
||||||
<h3>{{ $t('settings.columns') }}</h3>
|
<h3>{{ $t('settings.columns') }}</h3>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="disableStickyHeaders">
|
||||||
|
{{ $t('settings.disable_sticky_headers') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="showScrollbars">
|
||||||
|
{{ $t('settings.show_scrollbars') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting path="sidebarRight">
|
<BooleanSetting path="sidebarRight">
|
||||||
{{ $t('settings.right_sidebar') }}
|
{{ $t('settings.right_sidebar') }}
|
||||||
|
|
|
@ -373,9 +373,6 @@ const Status = {
|
||||||
hidePostStats () {
|
hidePostStats () {
|
||||||
return this.mergedConfig.hidePostStats
|
return this.mergedConfig.hidePostStats
|
||||||
},
|
},
|
||||||
shouldDisplayFavsAndRepeats () {
|
|
||||||
return !this.hidePostStats && this.isFocused && (this.combinedFavsAndRepeatsUsers.length > 0 || this.statusFromGlobalRepository.quotes_count)
|
|
||||||
},
|
|
||||||
muteBotStatuses () {
|
muteBotStatuses () {
|
||||||
return this.mergedConfig.muteBotStatuses
|
return this.mergedConfig.muteBotStatuses
|
||||||
},
|
},
|
||||||
|
@ -432,8 +429,6 @@ const Status = {
|
||||||
let multiplier = 60 * 1000 // minutes is smallest unit
|
let multiplier = 60 * 1000 // minutes is smallest unit
|
||||||
switch (unit) {
|
switch (unit) {
|
||||||
case 'm':
|
case 'm':
|
||||||
break
|
|
||||||
case 'h':
|
|
||||||
multiplier *= 60 // hour
|
multiplier *= 60 // hour
|
||||||
break
|
break
|
||||||
case 'd':
|
case 'd':
|
||||||
|
|
|
@ -374,7 +374,6 @@
|
||||||
font-weight: bolder;
|
font-weight: bolder;
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
line-height: 1em;
|
line-height: 1em;
|
||||||
color: var(--text);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover .stat-title {
|
&:hover .stat-title {
|
||||||
|
|
|
@ -484,7 +484,7 @@
|
||||||
|
|
||||||
<transition name="fade">
|
<transition name="fade">
|
||||||
<div
|
<div
|
||||||
v-if="shouldDisplayFavsAndRepeats"
|
v-if="!hidePostStats && isFocused && combinedFavsAndRepeatsUsers.length > 0"
|
||||||
class="favs-repeated-users"
|
class="favs-repeated-users"
|
||||||
>
|
>
|
||||||
<div class="stats">
|
<div class="stats">
|
||||||
|
@ -512,19 +512,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</UserListPopover>
|
</UserListPopover>
|
||||||
<router-link
|
|
||||||
v-if="statusFromGlobalRepository.quotes_count > 0"
|
|
||||||
:to="{ name: 'quotes', params: { id: status.id } }"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="stat-count"
|
|
||||||
>
|
|
||||||
<a class="stat-title">{{ $t('status.quotes') }}</a>
|
|
||||||
<div class="stat-number">
|
|
||||||
{{ statusFromGlobalRepository.quotes_count }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</router-link>
|
|
||||||
<div class="avatar-row">
|
<div class="avatar-row">
|
||||||
<AvatarList :users="combinedFavsAndRepeatsUsers" />
|
<AvatarList :users="combinedFavsAndRepeatsUsers" />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -25,7 +25,6 @@ const Timeline = {
|
||||||
'title',
|
'title',
|
||||||
'userId',
|
'userId',
|
||||||
'listId',
|
'listId',
|
||||||
'statusId',
|
|
||||||
'tag',
|
'tag',
|
||||||
'embedded',
|
'embedded',
|
||||||
'count',
|
'count',
|
||||||
|
@ -122,7 +121,6 @@ const Timeline = {
|
||||||
showImmediately,
|
showImmediately,
|
||||||
userId: this.userId,
|
userId: this.userId,
|
||||||
listId: this.listId,
|
listId: this.listId,
|
||||||
statusId: this.statusId,
|
|
||||||
tag: this.tag
|
tag: this.tag
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -185,7 +183,6 @@ const Timeline = {
|
||||||
showImmediately: true,
|
showImmediately: true,
|
||||||
userId: this.userId,
|
userId: this.userId,
|
||||||
listId: this.listId,
|
listId: this.listId,
|
||||||
statusId: this.statusId,
|
|
||||||
tag: this.tag
|
tag: this.tag
|
||||||
}).then(({ statuses }) => {
|
}).then(({ statuses }) => {
|
||||||
if (statuses && statuses.length === 0) {
|
if (statuses && statuses.length === 0) {
|
||||||
|
|
|
@ -19,8 +19,7 @@ export const timelineNames = () => {
|
||||||
bookmarks: 'nav.bookmarks',
|
bookmarks: 'nav.bookmarks',
|
||||||
dms: 'nav.dms',
|
dms: 'nav.dms',
|
||||||
'public-timeline': 'nav.public_tl',
|
'public-timeline': 'nav.public_tl',
|
||||||
'public-external-timeline': 'nav.twkn',
|
'public-external-timeline': 'nav.twkn'
|
||||||
quotes: 'nav.quotes'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -678,7 +678,7 @@
|
||||||
"autohide_floating_post_button": "Automaticky skrýt tlačítko nového příspěvku (mobilní zařízení)",
|
"autohide_floating_post_button": "Automaticky skrýt tlačítko nového příspěvku (mobilní zařízení)",
|
||||||
"minimal_scopes_mode": "Minimalizovat možnosti rozsahu příspěvků",
|
"minimal_scopes_mode": "Minimalizovat možnosti rozsahu příspěvků",
|
||||||
"conversation_display": "Styl zobrazení konverzací",
|
"conversation_display": "Styl zobrazení konverzací",
|
||||||
"conversation_display_tree": "Stromové zobrazení",
|
"conversation_display_tree": "Stromový styl",
|
||||||
"conversation_display_tree_quick": "Stromový styl",
|
"conversation_display_tree_quick": "Stromový styl",
|
||||||
"show_scrollbars": "Zobrazit posuvníky bočních sloupců",
|
"show_scrollbars": "Zobrazit posuvníky bočních sloupců",
|
||||||
"third_column_mode": "Pokud je volné místo, zobrazit třetí sloupec obsahující",
|
"third_column_mode": "Pokud je volné místo, zobrazit třetí sloupec obsahující",
|
||||||
|
@ -863,7 +863,7 @@
|
||||||
"favorites": "Oblíbené",
|
"favorites": "Oblíbené",
|
||||||
"follow": "Sledovat",
|
"follow": "Sledovat",
|
||||||
"follow_sent": "Požadavek odeslán!",
|
"follow_sent": "Požadavek odeslán!",
|
||||||
"follow_progress": "Odesílám požadavek…",
|
"follow_progress": "Odeslílám požadavek…",
|
||||||
"follow_unfollow": "Přestat sledovat",
|
"follow_unfollow": "Přestat sledovat",
|
||||||
"followees": "Sledovaní",
|
"followees": "Sledovaní",
|
||||||
"followers": "Sledující",
|
"followers": "Sledující",
|
||||||
|
|
|
@ -189,8 +189,7 @@
|
||||||
"mobile_notifications": "Open notifications (there are unread ones)",
|
"mobile_notifications": "Open notifications (there are unread ones)",
|
||||||
"mobile_notifications_close": "Close notifications",
|
"mobile_notifications_close": "Close notifications",
|
||||||
"mobile_notifications_mark_as_seen": "Mark all as seen",
|
"mobile_notifications_mark_as_seen": "Mark all as seen",
|
||||||
"announcements": "Announcements",
|
"announcements": "Announcements"
|
||||||
"quotes": "Quotes"
|
|
||||||
},
|
},
|
||||||
"notifications": {
|
"notifications": {
|
||||||
"broken_favorite": "Unknown status, searching for it…",
|
"broken_favorite": "Unknown status, searching for it…",
|
||||||
|
@ -374,14 +373,6 @@
|
||||||
"enter_current_password_to_confirm": "Enter your current password to confirm your identity",
|
"enter_current_password_to_confirm": "Enter your current password to confirm your identity",
|
||||||
"post_look_feel": "Posts Look & Feel",
|
"post_look_feel": "Posts Look & Feel",
|
||||||
"mention_links": "Mention links",
|
"mention_links": "Mention links",
|
||||||
"appearance": "Appearance",
|
|
||||||
"confirm_new_setting": "Confirm new setting?",
|
|
||||||
"confirm_new_question": "Does this look ok? Setting will be reverted in 10 seconds.",
|
|
||||||
"revert": "Revert",
|
|
||||||
"confirm": "Confirm",
|
|
||||||
"text_size": "Text and interface size",
|
|
||||||
"text_size_tip": "Use {0} for absolute values, {1} will scale with browser default text size.",
|
|
||||||
"text_size_tip2": "Values other than {0} might break some things and themes",
|
|
||||||
"mfa": {
|
"mfa": {
|
||||||
"otp": "OTP",
|
"otp": "OTP",
|
||||||
"setup_otp": "Setup OTP",
|
"setup_otp": "Setup OTP",
|
||||||
|
@ -1066,7 +1057,6 @@
|
||||||
"status": {
|
"status": {
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"repeats": "Repeats",
|
"repeats": "Repeats",
|
||||||
"quotes": "Quotes",
|
|
||||||
"repeat_confirm": "Do you really want to repeat this status?",
|
"repeat_confirm": "Do you really want to repeat this status?",
|
||||||
"repeat_confirm_title": "Repeat confirmation",
|
"repeat_confirm_title": "Repeat confirmation",
|
||||||
"repeat_confirm_accept_button": "Repeat",
|
"repeat_confirm_accept_button": "Repeat",
|
||||||
|
|
|
@ -202,13 +202,12 @@ const api = {
|
||||||
timeline = 'friends',
|
timeline = 'friends',
|
||||||
tag = false,
|
tag = false,
|
||||||
userId = false,
|
userId = false,
|
||||||
listId = false,
|
listId = false
|
||||||
statusId = false
|
|
||||||
}) {
|
}) {
|
||||||
if (store.state.fetchers[timeline]) return
|
if (store.state.fetchers[timeline]) return
|
||||||
|
|
||||||
const fetcher = store.state.backendInteractor.startFetchingTimeline({
|
const fetcher = store.state.backendInteractor.startFetchingTimeline({
|
||||||
timeline, store, userId, listId, statusId, tag
|
timeline, store, userId, listId, tag
|
||||||
})
|
})
|
||||||
store.commit('addFetcher', { fetcherName: timeline, fetcher })
|
store.commit('addFetcher', { fetcherName: timeline, fetcher })
|
||||||
},
|
},
|
||||||
|
|
|
@ -115,8 +115,7 @@ export const defaultState = {
|
||||||
sidebarColumnWidth: '25rem',
|
sidebarColumnWidth: '25rem',
|
||||||
contentColumnWidth: '45rem',
|
contentColumnWidth: '45rem',
|
||||||
notifsColumnWidth: '25rem',
|
notifsColumnWidth: '25rem',
|
||||||
emojiReactionsScale: undefined,
|
emojiReactionsScale: 1.0,
|
||||||
textSize: undefined, // instance default
|
|
||||||
navbarColumnStretch: false,
|
navbarColumnStretch: false,
|
||||||
greentext: undefined, // instance default
|
greentext: undefined, // instance default
|
||||||
useAtIcon: undefined, // instance default
|
useAtIcon: undefined, // instance default
|
||||||
|
@ -174,10 +173,6 @@ const config = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
setOptionTemporarily (state, { name, value }) {
|
|
||||||
set(state, name, value)
|
|
||||||
applyConfig(state)
|
|
||||||
},
|
|
||||||
setOption (state, { name, value }) {
|
setOption (state, { name, value }) {
|
||||||
set(state, name, value)
|
set(state, name, value)
|
||||||
},
|
},
|
||||||
|
@ -208,31 +203,6 @@ const config = {
|
||||||
setHighlight ({ commit, dispatch }, { user, color, type }) {
|
setHighlight ({ commit, dispatch }, { user, color, type }) {
|
||||||
commit('setHighlight', { user, color, type })
|
commit('setHighlight', { user, color, type })
|
||||||
},
|
},
|
||||||
setOptionTemporarily ({ commit, dispatch, state, rootState }, { name, value }) {
|
|
||||||
if (rootState.interface.temporaryChangesTimeoutId !== null) {
|
|
||||||
console.warn('Can\'t track more than one temporary change')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const oldValue = state[name]
|
|
||||||
|
|
||||||
commit('setOptionTemporarily', { name, value })
|
|
||||||
|
|
||||||
const confirm = () => {
|
|
||||||
dispatch('setOption', { name, value })
|
|
||||||
commit('clearTemporaryChanges')
|
|
||||||
}
|
|
||||||
|
|
||||||
const revert = () => {
|
|
||||||
commit('setOptionTemporarily', { name, value: oldValue })
|
|
||||||
commit('clearTemporaryChanges')
|
|
||||||
}
|
|
||||||
|
|
||||||
commit('setTemporaryChanges', {
|
|
||||||
timeoutId: setTimeout(revert, 10000),
|
|
||||||
confirm,
|
|
||||||
revert
|
|
||||||
})
|
|
||||||
},
|
|
||||||
setOption ({ commit, dispatch, state }, { name, value }) {
|
setOption ({ commit, dispatch, state }, { name, value }) {
|
||||||
const exceptions = new Set([
|
const exceptions = new Set([
|
||||||
'useStreamingApi'
|
'useStreamingApi'
|
||||||
|
@ -261,7 +231,6 @@ const config = {
|
||||||
case 'sidebarColumnWidth':
|
case 'sidebarColumnWidth':
|
||||||
case 'contentColumnWidth':
|
case 'contentColumnWidth':
|
||||||
case 'notifsColumnWidth':
|
case 'notifsColumnWidth':
|
||||||
case 'textSize':
|
|
||||||
case 'emojiReactionsScale':
|
case 'emojiReactionsScale':
|
||||||
applyConfig(state)
|
applyConfig(state)
|
||||||
break
|
break
|
||||||
|
|
|
@ -98,8 +98,6 @@ const defaultState = {
|
||||||
sidebarRight: false,
|
sidebarRight: false,
|
||||||
subjectLineBehavior: 'email',
|
subjectLineBehavior: 'email',
|
||||||
theme: 'pleroma-dark',
|
theme: 'pleroma-dark',
|
||||||
emojiReactionsScale: 1.0,
|
|
||||||
textSize: '14px',
|
|
||||||
virtualScrolling: true,
|
virtualScrolling: true,
|
||||||
sensitiveByDefault: false,
|
sensitiveByDefault: false,
|
||||||
conversationDisplay: 'linear',
|
conversationDisplay: 'linear',
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
const defaultState = {
|
const defaultState = {
|
||||||
themeApplied: false,
|
themeApplied: false,
|
||||||
temporaryChangesTimeoutId: null, // used for temporary options that revert after a timeout
|
|
||||||
temporaryChangesConfirm: () => {}, // used for applying temporary options
|
|
||||||
temporaryChangesRevert: () => {}, // used for reverting temporary options
|
|
||||||
settingsModalState: 'hidden',
|
settingsModalState: 'hidden',
|
||||||
settingsModalLoadedUser: false,
|
settingsModalLoadedUser: false,
|
||||||
settingsModalLoadedAdmin: false,
|
settingsModalLoadedAdmin: false,
|
||||||
|
@ -39,17 +36,6 @@ const interfaceMod = {
|
||||||
state.settings.currentSaveStateNotice = { error: true, errorData: error }
|
state.settings.currentSaveStateNotice = { error: true, errorData: error }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setTemporaryChanges (state, { timeoutId, confirm, revert }) {
|
|
||||||
state.temporaryChangesTimeoutId = timeoutId
|
|
||||||
state.temporaryChangesConfirm = confirm
|
|
||||||
state.temporaryChangesRevert = revert
|
|
||||||
},
|
|
||||||
clearTemporaryChanges (state) {
|
|
||||||
clearTimeout(state.temporaryChangesTimeoutId)
|
|
||||||
state.temporaryChangesTimeoutId = null
|
|
||||||
state.temporaryChangesConfirm = () => {}
|
|
||||||
state.temporaryChangesRevert = () => {}
|
|
||||||
},
|
|
||||||
setThemeApplied (state) {
|
setThemeApplied (state) {
|
||||||
state.themeApplied = true
|
state.themeApplied = true
|
||||||
},
|
},
|
||||||
|
|
|
@ -108,7 +108,6 @@ const PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements'
|
||||||
const PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
const PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
||||||
const PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
const PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
||||||
const PLEROMA_SCROBBLES_URL = id => `/api/v1/pleroma/accounts/${id}/scrobbles`
|
const PLEROMA_SCROBBLES_URL = id => `/api/v1/pleroma/accounts/${id}/scrobbles`
|
||||||
const PLEROMA_STATUS_QUOTES_URL = id => `/api/v1/pleroma/statuses/${id}/quotes`
|
|
||||||
const PLEROMA_USER_FAVORITES_TIMELINE_URL = id => `/api/v1/pleroma/accounts/${id}/favourites`
|
const PLEROMA_USER_FAVORITES_TIMELINE_URL = id => `/api/v1/pleroma/accounts/${id}/favourites`
|
||||||
|
|
||||||
const PLEROMA_ADMIN_CONFIG_URL = '/api/pleroma/admin/config'
|
const PLEROMA_ADMIN_CONFIG_URL = '/api/pleroma/admin/config'
|
||||||
|
@ -686,7 +685,6 @@ const fetchTimeline = ({
|
||||||
until = false,
|
until = false,
|
||||||
userId = false,
|
userId = false,
|
||||||
listId = false,
|
listId = false,
|
||||||
statusId = false,
|
|
||||||
tag = false,
|
tag = false,
|
||||||
withMuted = false,
|
withMuted = false,
|
||||||
replyVisibility = 'all',
|
replyVisibility = 'all',
|
||||||
|
@ -704,8 +702,7 @@ const fetchTimeline = ({
|
||||||
favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,
|
favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,
|
||||||
publicFavorites: PLEROMA_USER_FAVORITES_TIMELINE_URL,
|
publicFavorites: PLEROMA_USER_FAVORITES_TIMELINE_URL,
|
||||||
tag: MASTODON_TAG_TIMELINE_URL,
|
tag: MASTODON_TAG_TIMELINE_URL,
|
||||||
bookmarks: MASTODON_BOOKMARK_TIMELINE_URL,
|
bookmarks: MASTODON_BOOKMARK_TIMELINE_URL
|
||||||
quotes: PLEROMA_STATUS_QUOTES_URL
|
|
||||||
}
|
}
|
||||||
const isNotifications = timeline === 'notifications'
|
const isNotifications = timeline === 'notifications'
|
||||||
const params = []
|
const params = []
|
||||||
|
@ -724,10 +721,6 @@ const fetchTimeline = ({
|
||||||
url = url(listId)
|
url = url(listId)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeline === 'quotes') {
|
|
||||||
url = url(statusId)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (minId) {
|
if (minId) {
|
||||||
params.push(['min_id', minId])
|
params.push(['min_id', minId])
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,8 @@ import followRequestFetcher from '../../services/follow_request_fetcher/follow_r
|
||||||
import listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'
|
import listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'
|
||||||
|
|
||||||
const backendInteractorService = credentials => ({
|
const backendInteractorService = credentials => ({
|
||||||
startFetchingTimeline ({ timeline, store, userId = false, listId = false, statusId = false, tag }) {
|
startFetchingTimeline ({ timeline, store, userId = false, listId = false, tag }) {
|
||||||
return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, statusId, tag })
|
return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, tag })
|
||||||
},
|
},
|
||||||
|
|
||||||
fetchTimeline (args) {
|
fetchTimeline (args) {
|
||||||
|
|
|
@ -331,7 +331,6 @@ export const parseStatus = (data) => {
|
||||||
output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined)
|
output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined)
|
||||||
output.quote_url = pleroma.quote_url
|
output.quote_url = pleroma.quote_url
|
||||||
output.quote_visible = pleroma.quote_visible
|
output.quote_visible = pleroma.quote_visible
|
||||||
output.quotes_count = pleroma.quotes_count
|
|
||||||
} else {
|
} else {
|
||||||
output.text = data.content
|
output.text = data.content
|
||||||
output.summary = data.spoiler_text
|
output.summary = data.spoiler_text
|
||||||
|
|
|
@ -148,19 +148,8 @@ export const applyTheme = async (input, onFinish = (data) => {}) => {
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
}
|
}
|
||||||
|
|
||||||
const configColumns = ({
|
const configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale }) =>
|
||||||
sidebarColumnWidth,
|
({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale })
|
||||||
contentColumnWidth,
|
|
||||||
notifsColumnWidth,
|
|
||||||
emojiReactionsScale,
|
|
||||||
textSize
|
|
||||||
}) => ({
|
|
||||||
sidebarColumnWidth,
|
|
||||||
contentColumnWidth,
|
|
||||||
notifsColumnWidth,
|
|
||||||
emojiReactionsScale,
|
|
||||||
textSize
|
|
||||||
})
|
|
||||||
|
|
||||||
const defaultConfigColumns = configColumns(defaultState)
|
const defaultConfigColumns = configColumns(defaultState)
|
||||||
|
|
||||||
|
@ -186,7 +175,6 @@ export const applyConfig = (config) => {
|
||||||
|
|
||||||
styleSheet.toString()
|
styleSheet.toString()
|
||||||
styleSheet.insertRule(`:root { ${rules} }`, 'index-max')
|
styleSheet.insertRule(`:root { ${rules} }`, 'index-max')
|
||||||
|
|
||||||
body.classList.remove('hidden')
|
body.classList.remove('hidden')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,6 @@ const fetchAndUpdate = ({
|
||||||
showImmediately = false,
|
showImmediately = false,
|
||||||
userId = false,
|
userId = false,
|
||||||
listId = false,
|
listId = false,
|
||||||
statusId = false,
|
|
||||||
tag = false,
|
tag = false,
|
||||||
until,
|
until,
|
||||||
since
|
since
|
||||||
|
@ -48,7 +47,6 @@ const fetchAndUpdate = ({
|
||||||
|
|
||||||
args.userId = userId
|
args.userId = userId
|
||||||
args.listId = listId
|
args.listId = listId
|
||||||
args.statusId = statusId
|
|
||||||
args.tag = tag
|
args.tag = tag
|
||||||
args.withMuted = !hideMutedPosts
|
args.withMuted = !hideMutedPosts
|
||||||
if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {
|
if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {
|
||||||
|
@ -80,15 +78,15 @@ const fetchAndUpdate = ({
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = false, statusId = false, tag = false }) => {
|
const startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = false, tag = false }) => {
|
||||||
const rootState = store.rootState || store.state
|
const rootState = store.rootState || store.state
|
||||||
const timelineData = rootState.statuses.timelines[camelCase(timeline)]
|
const timelineData = rootState.statuses.timelines[camelCase(timeline)]
|
||||||
const showImmediately = timelineData.visibleStatuses.length === 0
|
const showImmediately = timelineData.visibleStatuses.length === 0
|
||||||
timelineData.userId = userId
|
timelineData.userId = userId
|
||||||
timelineData.listId = listId
|
timelineData.listId = listId
|
||||||
fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, statusId, tag })
|
fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, tag })
|
||||||
const boundFetchAndUpdate = () =>
|
const boundFetchAndUpdate = () =>
|
||||||
fetchAndUpdate({ timeline, credentials, store, userId, listId, statusId, tag })
|
fetchAndUpdate({ timeline, credentials, store, userId, listId, tag })
|
||||||
return promiseInterval(boundFetchAndUpdate, 10000)
|
return promiseInterval(boundFetchAndUpdate, 10000)
|
||||||
}
|
}
|
||||||
const timelineFetcher = {
|
const timelineFetcher = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue