aboutsummaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/about/about.js4
-rw-r--r--src/components/about/about.vue1
-rw-r--r--src/components/mrf_transparency_panel/mrf_transparency_panel.js33
-rw-r--r--src/components/mrf_transparency_panel/mrf_transparency_panel.vue91
4 files changed, 128 insertions, 1 deletions
diff --git a/src/components/about/about.js b/src/components/about/about.js
index 5c95c079..1df25845 100644
--- a/src/components/about/about.js
+++ b/src/components/about/about.js
@@ -2,13 +2,15 @@ import InstanceSpecificPanel from '../instance_specific_panel/instance_specific_
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,
- StaffPanel
+ StaffPanel,
+ MRFTransparencyPanel
},
computed: {
showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },
diff --git a/src/components/about/about.vue b/src/components/about/about.vue
index ad520d11..518f6184 100644
--- a/src/components/about/about.vue
+++ b/src/components/about/about.vue
@@ -3,6 +3,7 @@
<instance-specific-panel v-if="showInstanceSpecificPanel" />
<staff-panel />
<terms-of-service-panel />
+ <MRFTransparencyPanel />
<features-panel v-if="showFeaturesPanel" />
</div>
</template>
diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.js b/src/components/mrf_transparency_panel/mrf_transparency_panel.js
new file mode 100644
index 00000000..3791dd12
--- /dev/null
+++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js
@@ -0,0 +1,33 @@
+const MRFTransparencyPanel = {
+ components: {
+ },
+ computed: {
+ federationPolicy() {
+ return this.$store.state.instance.federationPolicy
+ },
+ mrfPolicies() {
+ return this.$store.state.instance.federationPolicy.mrf_policies
+ },
+ acceptInstances() {
+ return this.$store.state.instance.federationPolicy.mrf_simple.accept
+ },
+ rejectInstances() {
+ return this.$store.state.instance.federationPolicy.mrf_simple.reject
+ },
+ quarantineInstances() {
+ return this.$store.state.instance.federationPolicy.quarantined_instances
+ },
+ ftlRemovalInstances() {
+ return this.$store.state.instance.federationPolicy.mrf_simple.federated_timeline_removal
+ },
+ mediaNsfwInstances() {
+ return this.$store.state.instance.federationPolicy.mrf_simple.media_nsfw
+ },
+ mediaRemovalInstances() {
+ return this.$store.state.instance.federationPolicy.mrf_simple.media_removal
+ }
+ }
+}
+
+export default MRFTransparencyPanel
+
diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue
new file mode 100644
index 00000000..f3507591
--- /dev/null
+++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue
@@ -0,0 +1,91 @@
+<template>
+ <div class="mrf-transparency-panel" v-if="federationPolicy">
+ <div class="panel panel-default base01-background">
+ <div class="panel-heading timeline-heading base02-background">
+ <div class="title">
+ {{ $t("about.federation") }}
+ </div>
+ </div>
+ <div class="panel-body">
+ <div class="mrf-section">
+ <h2>{{ $t("about.mrf_policies") }}</h2>
+ <p>{{ $t("about.mrf_policies_desc") }}</p>
+
+ <ul>
+ <li v-for="policy in mrfPolicies" v-bind:key="policy" v-text="policy" />
+ </ul>
+
+ <h2>{{ $t("about.mrf_policy_simple") }}</h2>
+
+ <div v-if="acceptInstances.length">
+ <h4>{{ $t("about.mrf_policy_simple_accept") }}</h4>
+
+ <p>{{ $t("about.mrf_policy_simple_accept_desc") }}</p>
+
+ <ul>
+ <li v-for="instance in acceptInstances" v-bind:key="instance" v-text="instance" />
+ </ul>
+ </div>
+
+ <div v-if="rejectInstances.length">
+ <h4>{{ $t("about.mrf_policy_simple_reject") }}</h4>
+
+ <p>{{ $t("about.mrf_policy_simple_reject_desc") }}</p>
+
+ <ul>
+ <li v-for="instance in rejectInstances" v-bind:key="instance" v-text="instance" />
+ </ul>
+ </div>
+
+ <div v-if="quarantineInstances.length">
+ <h4>{{ $t("about.mrf_policy_simple_quarantine") }}</h4>
+
+ <p>{{ $t("about.mrf_policy_simple_quarantine_desc") }}</p>
+
+ <ul>
+ <li v-for="instance in quarantineInstances" v-bind:key="instance" v-text="instance" />
+ </ul>
+ </div>
+
+ <div v-if="ftlRemovalInstances.length">
+ <h4>{{ $t("about.mrf_policy_simple_ftl_removal") }}</h4>
+
+ <p>{{ $t("about.mrf_policy_simple_ftl_removal_desc") }}</p>
+
+ <ul>
+ <li v-for="instance in ftlRemovalInstances" v-bind:key="instance" v-text="instance" />
+ </ul>
+ </div>
+
+ <div v-if="mediaNsfwInstances.length">
+ <h4>{{ $t("about.mrf_policy_simple_media_nsfw") }}</h4>
+
+ <p>{{ $t("about.mrf_policy_simple_media_nsfw_desc") }}</p>
+
+ <ul>
+ <li v-for="instance in mediaNsfwInstances" v-bind:key="instance" v-text="instance" />
+ </ul>
+ </div>
+
+ <div v-if="mediaRemovalInstances.length">
+ <h4>{{ $t("about.mrf_policy_simple_media_removal") }}</h4>
+
+ <p>{{ $t("about.mrf_policy_simple_media_removal_desc") }}</p>
+
+ <ul>
+ <li v-for="instance in mediaRemovalInstances" v-bind:key="instance" v-text="instance" />
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script src="./mrf_transparency_panel.js"></script>
+
+<style lang="scss">
+.mrf-section {
+ margin: 1em;
+}
+</style>