aboutsummaryrefslogtreecommitdiff
path: root/src/components/mrf_transparency_panel
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/mrf_transparency_panel')
-rw-r--r--src/components/mrf_transparency_panel/mrf_transparency_panel.js33
-rw-r--r--src/components/mrf_transparency_panel/mrf_transparency_panel.vue91
2 files changed, 124 insertions, 0 deletions
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>