forked from AkkomaGang/akkoma-fe
Merge branch 'feature/lockdown-timelines-private-mode' into 'develop'
interaction with BE private mode See merge request pleroma/pleroma-fe!989
This commit is contained in:
commit
0b49e798e0
8 changed files with 44 additions and 17 deletions
|
@ -99,3 +99,6 @@ Setting this will change the warning text that is displayed for direct messages.
|
||||||
ATTENTION: If you actually want the behavior to change. You will need to set the appropriate option at the backend. See the backend documentation for information about that.
|
ATTENTION: If you actually want the behavior to change. You will need to set the appropriate option at the backend. See the backend documentation for information about that.
|
||||||
|
|
||||||
DO NOT activate this without checking the backend configuration first!
|
DO NOT activate this without checking the backend configuration first!
|
||||||
|
|
||||||
|
### Private Mode
|
||||||
|
If the `private` instance setting is enabled in the backend, features that are not accessible without authentication, such as the timelines and search will be disabled for unauthenticated users.
|
||||||
|
|
|
@ -98,7 +98,8 @@ export default {
|
||||||
this.$store.state.instance.instanceSpecificPanelContent
|
this.$store.state.instance.instanceSpecificPanelContent
|
||||||
},
|
},
|
||||||
showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },
|
showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },
|
||||||
isMobileLayout () { return this.$store.state.interface.mobileLayout }
|
isMobileLayout () { return this.$store.state.interface.mobileLayout },
|
||||||
|
privateMode () { return this.$store.state.instance.private }
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
scrollToTop () {
|
scrollToTop () {
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="item right">
|
<div class="item right">
|
||||||
<search-bar
|
<search-bar
|
||||||
|
v-if="currentUser || !privateMode"
|
||||||
class="nav-icon mobile-hidden"
|
class="nav-icon mobile-hidden"
|
||||||
@toggled="onSearchBarToggled"
|
@toggled="onSearchBarToggled"
|
||||||
@click.stop.native
|
@click.stop.native
|
||||||
|
|
|
@ -219,12 +219,21 @@ const getNodeInfo = async ({ store }) => {
|
||||||
store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })
|
store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })
|
||||||
store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })
|
store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })
|
||||||
|
|
||||||
|
const priv = metadata.private
|
||||||
|
store.dispatch('setInstanceOption', { name: 'private', value: priv })
|
||||||
|
|
||||||
const frontendVersion = window.___pleromafe_commit_hash
|
const frontendVersion = window.___pleromafe_commit_hash
|
||||||
store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion })
|
store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion })
|
||||||
store.dispatch('setInstanceOption', { name: 'tagPolicyAvailable', value: metadata.federation.mrf_policies.includes('TagPolicy') })
|
store.dispatch('setInstanceOption', { name: 'tagPolicyAvailable', value: metadata.federation.mrf_policies.includes('TagPolicy') })
|
||||||
|
|
||||||
const federation = metadata.federation
|
const federation = metadata.federation
|
||||||
store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation })
|
store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation })
|
||||||
|
store.dispatch('setInstanceOption', {
|
||||||
|
name: 'federating',
|
||||||
|
value: typeof federation.enabled === 'undefined'
|
||||||
|
? true
|
||||||
|
: federation.enabled
|
||||||
|
})
|
||||||
|
|
||||||
const accounts = metadata.staffAccounts
|
const accounts = metadata.staffAccounts
|
||||||
await resolveStaffAccounts({ store, accounts })
|
await resolveStaffAccounts({ store, accounts })
|
||||||
|
|
|
@ -1,20 +1,18 @@
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
const NavPanel = {
|
const NavPanel = {
|
||||||
created () {
|
created () {
|
||||||
if (this.currentUser && this.currentUser.locked) {
|
if (this.currentUser && this.currentUser.locked) {
|
||||||
this.$store.dispatch('startFetchingFollowRequest')
|
this.$store.dispatch('startFetchingFollowRequest')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: mapState({
|
||||||
currentUser () {
|
currentUser: state => state.users.currentUser,
|
||||||
return this.$store.state.users.currentUser
|
chat: state => state.chat.channel,
|
||||||
},
|
followRequestCount: state => state.api.followRequests.length,
|
||||||
chat () {
|
privateMode: state => state.instance.private,
|
||||||
return this.$store.state.chat.channel
|
federating: state => state.instance.federating
|
||||||
},
|
})
|
||||||
followRequestCount () {
|
|
||||||
return this.$store.state.api.followRequests.length
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default NavPanel
|
export default NavPanel
|
||||||
|
|
|
@ -28,12 +28,12 @@
|
||||||
</span>
|
</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li v-if="currentUser || !privateMode">
|
||||||
<router-link :to="{ name: 'public-timeline' }">
|
<router-link :to="{ name: 'public-timeline' }">
|
||||||
<i class="button-icon icon-users" /> {{ $t("nav.public_tl") }}
|
<i class="button-icon icon-users" /> {{ $t("nav.public_tl") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li v-if="federating && !privateMode">
|
||||||
<router-link :to="{ name: 'public-external-timeline' }">
|
<router-link :to="{ name: 'public-external-timeline' }">
|
||||||
<i class="button-icon icon-globe" /> {{ $t("nav.twkn") }}
|
<i class="button-icon icon-globe" /> {{ $t("nav.twkn") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
|
@ -41,6 +41,12 @@ const SideDrawer = {
|
||||||
},
|
},
|
||||||
followRequestCount () {
|
followRequestCount () {
|
||||||
return this.$store.state.api.followRequests.length
|
return this.$store.state.api.followRequests.length
|
||||||
|
},
|
||||||
|
privateMode () {
|
||||||
|
return this.$store.state.instance.private
|
||||||
|
},
|
||||||
|
federating () {
|
||||||
|
return this.$store.state.instance.federating
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -79,12 +79,18 @@
|
||||||
</span>
|
</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li @click="toggleDrawer">
|
<li
|
||||||
|
v-if="currentUser || !privateMode"
|
||||||
|
@click="toggleDrawer"
|
||||||
|
>
|
||||||
<router-link to="/main/public">
|
<router-link to="/main/public">
|
||||||
<i class="button-icon icon-users" /> {{ $t("nav.public_tl") }}
|
<i class="button-icon icon-users" /> {{ $t("nav.public_tl") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li @click="toggleDrawer">
|
<li
|
||||||
|
v-if="federating && !privateMode"
|
||||||
|
@click="toggleDrawer"
|
||||||
|
>
|
||||||
<router-link to="/main/all">
|
<router-link to="/main/all">
|
||||||
<i class="button-icon icon-globe" /> {{ $t("nav.twkn") }}
|
<i class="button-icon icon-globe" /> {{ $t("nav.twkn") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
|
@ -99,7 +105,10 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li @click="toggleDrawer">
|
<li
|
||||||
|
v-if="currentUser || !privateMode"
|
||||||
|
@click="toggleDrawer"
|
||||||
|
>
|
||||||
<router-link :to="{ name: 'search' }">
|
<router-link :to="{ name: 'search' }">
|
||||||
<i class="button-icon icon-search" /> {{ $t("nav.search") }}
|
<i class="button-icon icon-search" /> {{ $t("nav.search") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
Loading…
Reference in a new issue