diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2719edcf..0d6ef1a5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Emoji picker
- Started changelog anew
- Ability to change user's email
+- About page
### Changed
- changed the way fading effects for user profile/long statuses works, now uses css-mask instead of gradient background hacks which weren't exactly compatible with semi-transparent themes
### Fixed
diff --git a/src/boot/after_store.js b/src/boot/after_store.js
index 80a55849..226b67d8 100644
--- a/src/boot/after_store.js
+++ b/src/boot/after_store.js
@@ -184,6 +184,15 @@ const getAppSecret = async ({ store }) => {
})
}
+const resolveStaffAccounts = async ({ store, accounts }) => {
+ const backendInteractor = store.state.api.backendInteractor
+ let nicknames = accounts.map(uri => uri.split('/').pop())
+ .map(id => backendInteractor.fetchUser({ id }))
+ nicknames = await Promise.all(nicknames)
+
+ store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })
+}
+
const getNodeInfo = async ({ store }) => {
try {
const res = await window.fetch('/nodeinfo/2.0.json')
@@ -212,6 +221,12 @@ const getNodeInfo = async ({ store }) => {
const frontendVersion = window.___pleromafe_commit_hash
store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion })
store.dispatch('setInstanceOption', { name: 'tagPolicyAvailable', value: metadata.federation.mrf_policies.includes('TagPolicy') })
+
+ const federation = metadata.federation
+ store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation })
+
+ const accounts = metadata.staffAccounts
+ await resolveStaffAccounts({ store, accounts })
} else {
throw (res)
}
diff --git a/src/components/about/about.js b/src/components/about/about.js
index ae1cb182..1df25845 100644
--- a/src/components/about/about.js
+++ b/src/components/about/about.js
@@ -1,15 +1,24 @@
import InstanceSpecificPanel from '../instance_specific_panel/instance_specific_panel.vue'
import FeaturesPanel from '../features_panel/features_panel.vue'
import TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'
+import StaffPanel from '../staff_panel/staff_panel.vue'
+import MRFTransparencyPanel from '../mrf_transparency_panel/mrf_transparency_panel.vue'
const About = {
components: {
InstanceSpecificPanel,
FeaturesPanel,
- TermsOfServicePanel
+ TermsOfServicePanel,
+ StaffPanel,
+ MRFTransparencyPanel
},
computed: {
- showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel }
+ showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },
+ showInstanceSpecificPanel () {
+ return this.$store.state.instance.showInstanceSpecificPanel &&
+ !this.$store.getters.mergedConfig.hideISP &&
+ this.$store.state.instance.instanceSpecificPanelContent
+ }
}
}
diff --git a/src/components/about/about.vue b/src/components/about/about.vue
index 62ae16ea..518f6184 100644
--- a/src/components/about/about.vue
+++ b/src/components/about/about.vue
@@ -1,8 +1,10 @@
{{ $t("about.mrf_policies_desc") }} {{ $t("about.mrf_policy_simple_accept_desc") }} {{ $t("about.mrf_policy_simple_reject_desc") }} {{ $t("about.mrf_policy_simple_quarantine_desc") }} {{ $t("about.mrf_policy_simple_ftl_removal_desc") }} {{ $t("about.mrf_policy_simple_media_nsfw_desc") }} {{ $t("about.mrf_policy_simple_media_removal_desc") }}{{ $t("about.mrf_policies") }}
+
+
+
+
+ {{ $t("about.mrf_policy_simple") }}
+
+ {{ $t("about.mrf_policy_simple_accept") }}
+
+
+
+
+ {{ $t("about.mrf_policy_simple_reject") }}
+
+
+
+
+ {{ $t("about.mrf_policy_simple_quarantine") }}
+
+
+
+
+ {{ $t("about.mrf_policy_simple_ftl_removal") }}
+
+
+
+
+ {{ $t("about.mrf_policy_simple_media_nsfw") }}
+
+
+
+
+ {{ $t("about.mrf_policy_simple_media_removal") }}
+
+
+
+
+