mirror of
https://akkoma.dev/lamp/akkoma-fe.git
synced 2026-06-04 22:30:04 -04:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d697f6b968 | |||
| efb46fc29d | |||
| 08ea0383fd | |||
| 4c58e2f4ea | |||
| 4d139b34d4 | |||
| 3984d98821 | |||
| 87aee5e931 |
@@ -70,6 +70,9 @@ Default post formatting option (markdown/bbcode/plaintext/etc...)
|
||||
### `redirectRootNoLogin`, `redirectRootLogin`
|
||||
These two settings should point to where FE should redirect visitor when they login/open up website root
|
||||
|
||||
### `scopeCopy`
|
||||
Copy post scope (visibility) when replying to a post. Instance-default.
|
||||
|
||||
### `sidebarRight`
|
||||
Change alignment of sidebar and panels to the right. Defaults to `false`.
|
||||
|
||||
|
||||
@@ -173,8 +173,10 @@ const setSettings = async ({ apiConfig, staticConfig, store }) => {
|
||||
copyInstanceOption('redirectRootNoLogin')
|
||||
copyInstanceOption('redirectRootLogin')
|
||||
copyInstanceOption('showInstanceSpecificPanel')
|
||||
copyInstanceOption('minimalScopesMode')
|
||||
copyInstanceOption('hideMutedPosts')
|
||||
copyInstanceOption('collapseMessageWithSubject')
|
||||
copyInstanceOption('scopeCopy')
|
||||
copyInstanceOption('subjectLineBehavior')
|
||||
copyInstanceOption('postContentType')
|
||||
copyInstanceOption('alwaysShowSubjectInput')
|
||||
|
||||
@@ -4,6 +4,7 @@ const FeaturesPanel = {
|
||||
computed: {
|
||||
whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled },
|
||||
mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable },
|
||||
minimalScopesMode: function () { return this.$store.state.instance.minimalScopesMode },
|
||||
textlimit: function () { return this.$store.state.instance.textlimit },
|
||||
uploadlimit: function () { return fileSizeFormatService.fileSizeFormat(this.$store.state.instance.uploadlimit) }
|
||||
}
|
||||
|
||||
@@ -247,6 +247,9 @@ const PostStatusForm = {
|
||||
userDefaultScope () {
|
||||
return this.$store.state.users.currentUser.default_scope
|
||||
},
|
||||
showAllScopes () {
|
||||
return !this.mergedConfig.minimalScopesMode
|
||||
},
|
||||
emojiUserSuggestor () {
|
||||
return suggestor({
|
||||
emoji: [
|
||||
@@ -288,6 +291,9 @@ const PostStatusForm = {
|
||||
isOverLengthLimit () {
|
||||
return this.hasStatusLengthLimit && (this.charactersLeft < 0)
|
||||
},
|
||||
minimalScopesMode () {
|
||||
return this.$store.state.instance.minimalScopesMode
|
||||
},
|
||||
alwaysShowSubject () {
|
||||
return this.mergedConfig.alwaysShowSubjectInput
|
||||
},
|
||||
|
||||
@@ -197,6 +197,7 @@
|
||||
<scope-selector
|
||||
ref="scopeselector"
|
||||
v-if="!disableVisibilitySelector"
|
||||
:show-all="showAllScopes"
|
||||
:user-default="userDefaultScope"
|
||||
:original-scope="copyMessageScope"
|
||||
:initial-scope="newStatus.visibility"
|
||||
|
||||
@@ -565,12 +565,18 @@
|
||||
{{ $t('settings.default_vis') }} <ServerSideIndicator :server-side="true" />
|
||||
<ScopeSelector
|
||||
class="scope-selector"
|
||||
:show-all="true"
|
||||
:user-default="serverSide_defaultScope"
|
||||
:initial-scope="serverSide_defaultScope"
|
||||
:on-scope-change="changeDefaultScope"
|
||||
/>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting path="minimalScopesMode">
|
||||
{{ $t('settings.minimal_scopes_mode') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting path="sensitiveByDefault">
|
||||
{{ $t('settings.sensitive_by_default') }}
|
||||
@@ -581,6 +587,14 @@
|
||||
{{ $t('settings.sensitive_if_subject') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
path="scopeCopy"
|
||||
expert="1"
|
||||
>
|
||||
{{ $t('settings.scope_copy') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
path="alwaysShowSubjectInput"
|
||||
@@ -617,6 +631,14 @@
|
||||
{{ $t('settings.post_language') }}
|
||||
</ChoiceSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
path="minimalScopesMode"
|
||||
expert="1"
|
||||
>
|
||||
{{ $t('settings.minimal_scopes_mode') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
path="alwaysShowNewPostButton"
|
||||
|
||||
@@ -118,17 +118,13 @@ const UserProfile = {
|
||||
media: 'media'
|
||||
}
|
||||
|
||||
if (this.isUs) {
|
||||
timelineTabMap['favorites'] = 'favorites'
|
||||
} else if (!this.user.hide_favorites) {
|
||||
timelineTabMap['favorites'] = 'publicFavorites'
|
||||
}
|
||||
if (this.favoritesTabVisible) timelineTabMap['favorites'] = 'favorites'
|
||||
|
||||
const timeline = timelineTabMap[nextTab]
|
||||
|
||||
if (timeline) {
|
||||
this.stopFetching()
|
||||
this.$store.dispatch('startFetchingTimeline', { timeline: timeline, userId: this.userId })
|
||||
this.$store.dispatch('startFetchingTimeline', { timeline: timeline, userId: nextTab == 'favorites' && this.isUs ? null : this.userId })
|
||||
}
|
||||
},
|
||||
load (userNameOrId) {
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
:title="$t('user_card.favorites')"
|
||||
timeline-name="favorites"
|
||||
:timeline="favorites"
|
||||
:user-id="userId"
|
||||
:user-id="isUs ? undefined : userId"
|
||||
:in-profile="true"
|
||||
:footer-slipgate="footerRef"
|
||||
/>
|
||||
|
||||
@@ -83,6 +83,7 @@ export const defaultState = {
|
||||
subjectLineBehavior: undefined, // instance default
|
||||
alwaysShowSubjectInput: undefined, // instance default
|
||||
postContentType: undefined, // instance default
|
||||
minimalScopesMode: undefined, // instance default
|
||||
// This hides statuses filtered via a word filter
|
||||
hideFilteredStatuses: undefined, // instance default
|
||||
modalOnRepeat: undefined, // instance default
|
||||
|
||||
@@ -52,10 +52,12 @@ const defaultState = {
|
||||
logoMargin: '.2em',
|
||||
logoMask: true,
|
||||
logoLeft: false,
|
||||
minimalScopesMode: false,
|
||||
nsfwCensorImage: undefined,
|
||||
postContentType: 'text/plain',
|
||||
redirectRootLogin: '/main/friends',
|
||||
redirectRootNoLogin: '/main/all',
|
||||
scopeCopy: true,
|
||||
showFeaturesPanel: true,
|
||||
showInstanceSpecificPanel: false,
|
||||
showNavShortcuts: true,
|
||||
|
||||
@@ -57,7 +57,6 @@ export const defaultState = () => ({
|
||||
public: emptyTl(),
|
||||
user: emptyTl(),
|
||||
favorites: emptyTl(),
|
||||
publicFavorites: emptyTl(),
|
||||
media: emptyTl(),
|
||||
publicAndExternal: emptyTl(),
|
||||
friends: emptyTl(),
|
||||
@@ -315,7 +314,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
|
||||
})
|
||||
|
||||
// Keep the visible statuses sorted
|
||||
if (timeline && !(['bookmarks', 'favorites', 'publicFavorites'].includes(timeline))) {
|
||||
if (timeline && !(['bookmarks', 'favorites'].includes(timeline))) {
|
||||
sortTimeline(timelineObject)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -719,6 +719,10 @@ const fetchTimeline = ({
|
||||
|
||||
let url = timelineUrls[timeline]
|
||||
|
||||
if (timeline === 'favorites' && userId) {
|
||||
url = timelineUrls.publicFavorites(userId)
|
||||
}
|
||||
|
||||
if (timeline === 'user' || timeline === 'media' || timeline === 'replies') {
|
||||
url = url(userId)
|
||||
}
|
||||
|
||||
@@ -13,10 +13,12 @@
|
||||
"logoMargin": ".1em",
|
||||
"logoMask": true,
|
||||
"logoLeft": false,
|
||||
"minimalScopesMode": false,
|
||||
"nsfwCensorImage": "",
|
||||
"postContentType": "text/plain",
|
||||
"redirectRootLogin": "/main/friends",
|
||||
"redirectRootNoLogin": "/main/all",
|
||||
"scopeCopy": true,
|
||||
"showFeaturesPanel": true,
|
||||
"showInstanceSpecificPanel": false,
|
||||
"sidebarRight": false,
|
||||
|
||||
Reference in New Issue
Block a user