diff options
| author | lain <lain@soykaf.club> | 2020-06-12 14:17:56 +0000 |
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-06-12 14:17:56 +0000 |
| commit | fd109fa355ac491b86d1e10fcbfcdd577f1ac4d7 (patch) | |
| tree | c27c2f3b684540b10ef9d4477349b4a8681eb7b2 /src/components/mrf_transparency_panel | |
| parent | 1946661911c97651ba5356db22a0ddd00ba04864 (diff) | |
| parent | 48365819d14d80d2aeb7174bca05bf76eee2e8e0 (diff) | |
Merge branch 'develop' into 'chore/improve-default-tos'
# Conflicts:
# static/terms-of-service.html
Diffstat (limited to 'src/components/mrf_transparency_panel')
| -rw-r--r-- | src/components/mrf_transparency_panel/mrf_transparency_panel.js | 35 | ||||
| -rw-r--r-- | src/components/mrf_transparency_panel/mrf_transparency_panel.vue | 167 |
2 files changed, 202 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..a0b600d2 --- /dev/null +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js @@ -0,0 +1,35 @@ +import { mapState } from 'vuex' +import { get } from 'lodash' + +const MRFTransparencyPanel = { + computed: { + ...mapState({ + federationPolicy: state => get(state, 'instance.federationPolicy'), + mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []), + quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []), + acceptInstances: state => get(state, 'instance.federationPolicy.mrf_simple.accept', []), + rejectInstances: state => get(state, 'instance.federationPolicy.mrf_simple.reject', []), + ftlRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []), + mediaNsfwInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []), + mediaRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_removal', []), + keywordsFtlRemoval: state => get(state, 'instance.federationPolicy.mrf_keyword.federated_timeline_removal', []), + keywordsReject: state => get(state, 'instance.federationPolicy.mrf_keyword.reject', []), + keywordsReplace: state => get(state, 'instance.federationPolicy.mrf_keyword.replace', []) + }), + hasInstanceSpecificPolicies () { + return this.quarantineInstances.length || + this.acceptInstances.length || + this.rejectInstances.length || + this.ftlRemovalInstances.length || + this.mediaNsfwInstances.length || + this.mediaRemovalInstances.length + }, + hasKeywordPolicies () { + return this.keywordsFtlRemoval.length || + this.keywordsReject.length || + this.keywordsReplace.length + } + } +} + +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..acdf822e --- /dev/null +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -0,0 +1,167 @@ +<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.mrf.federation") }} + </div> + </div> + <div class="panel-body"> + <div class="mrf-section"> + <h2>{{ $t("about.mrf.mrf_policies") }}</h2> + <p>{{ $t("about.mrf.mrf_policies_desc") }}</p> + + <ul> + <li + v-for="policy in mrfPolicies" + :key="policy" + v-text="policy" + /> + </ul> + + <h2 v-if="hasInstanceSpecificPolicies"> + {{ $t("about.mrf.simple.simple_policies") }} + </h2> + + <div v-if="acceptInstances.length"> + <h4>{{ $t("about.mrf.simple.accept") }}</h4> + + <p>{{ $t("about.mrf.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.simple.reject") }}</h4> + + <p>{{ $t("about.mrf.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.simple.quarantine") }}</h4> + + <p>{{ $t("about.mrf.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.simple.ftl_removal") }}</h4> + + <p>{{ $t("about.mrf.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.simple.media_nsfw") }}</h4> + + <p>{{ $t("about.mrf.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.simple.media_removal") }}</h4> + + <p>{{ $t("about.mrf.simple.media_removal_desc") }}</p> + + <ul> + <li + v-for="instance in mediaRemovalInstances" + :key="instance" + v-text="instance" + /> + </ul> + </div> + + <h2 v-if="hasKeywordPolicies"> + {{ $t("about.mrf.keyword.keyword_policies") }} + </h2> + + <div v-if="keywordsFtlRemoval.length"> + <h4>{{ $t("about.mrf.keyword.ftl_removal") }}</h4> + + <ul> + <li + v-for="keyword in keywordsFtlRemoval" + :key="keyword" + v-text="keyword" + /> + </ul> + </div> + + <div v-if="keywordsReject.length"> + <h4>{{ $t("about.mrf.keyword.reject") }}</h4> + + <ul> + <li + v-for="keyword in keywordsReject" + :key="keyword" + v-text="keyword" + /> + </ul> + </div> + + <div v-if="keywordsReplace.length"> + <h4>{{ $t("about.mrf.keyword.replace") }}</h4> + + <ul> + <li + v-for="keyword in keywordsReplace" + :key="keyword" + > + {{ keyword.pattern }} + {{ $t("about.mrf.keyword.is_replaced_by") }} + {{ keyword.replacement }} + </li> + </ul> + </div> + </div> + </div> + </div> + </div> +</template> + +<script src="./mrf_transparency_panel.js"></script> + +<style lang="scss"> +.mrf-section { + margin: 1em; +} +</style> |
