diff options
Diffstat (limited to 'src/components/mrf_transparency_panel')
| -rw-r--r-- | src/components/mrf_transparency_panel/mrf_transparency_panel.js | 16 | ||||
| -rw-r--r-- | src/components/mrf_transparency_panel/mrf_transparency_panel.vue | 122 |
2 files changed, 138 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..20f8a08a --- /dev/null +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js @@ -0,0 +1,16 @@ +import { mapState } from 'vuex' + +const MRFTransparencyPanel = { + computed: mapState({ + federationPolicy: state => state.instance.federationPolicy, + mrfPolicies: state => state.instance.federationPolicy.mrf_policies, + acceptInstances: state => state.instance.federationPolicy.mrf_simple.accept, + rejectInstances: state => state.instance.federationPolicy.mrf_simple.reject, + quarantineInstances: state => state.instance.federationPolicy.quarantined_instances, + ftlRemovalInstances: state => state.instance.federationPolicy.mrf_simple.federated_timeline_removal, + mediaNsfwInstances: state => state.instance.federationPolicy.mrf_simple.media_nsfw, + mediaRemovalInstances: state => 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..2640d68c --- /dev/null +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -0,0 +1,122 @@ +<template> + <div + v-if="federationPolicy" + class="mrf-transparency-panel" + > + <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" + :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" + :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" + :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" + :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" + :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" + :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" + :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> |
