diff options
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/about/about.js | 4 | ||||
| -rw-r--r-- | src/components/about/about.vue | 1 | ||||
| -rw-r--r-- | src/components/mrf_transparency_panel/mrf_transparency_panel.js | 33 | ||||
| -rw-r--r-- | src/components/mrf_transparency_panel/mrf_transparency_panel.vue | 91 |
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> |
