From 8ef93aedda89fa8f55ac18ca0fad22e2a5950014 Mon Sep 17 00:00:00 2001 From: Ilja Date: Fri, 23 Oct 2020 15:37:32 +0200 Subject: [PATCH 1/9] First poc for quarantined instances * I made a table instead of a list * I'm pretty sure I need to extract the css to somewhere else, but unsure where atm * All the other lists also need to be done in the same way obviously * I'm not sure yet what would happen when it gets strings instead of tuples (the way old be's will give) but I'm pretty sure it will give some sort of error and wont display properly * Does it need backwards compatibility for older BE's? --- .../mrf_transparency_panel.vue | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index acdf822e..94e57892 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -59,13 +59,22 @@

{{ $t("about.mrf.simple.quarantine_desc") }}

- + v-text="instance[0]" + /> + + +
From 916f61014fc3a7b3231c1dc03c921d266e9175b9 Mon Sep 17 00:00:00 2001 From: Ilja Date: Sat, 24 Oct 2020 21:34:33 +0200 Subject: [PATCH 2/9] Add backwards compat as poc for quarantined instances --- .../mrf_transparency_panel.js | 16 +++++++++++++++- .../mrf_transparency_panel.vue | 13 ++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.js b/src/components/mrf_transparency_panel/mrf_transparency_panel.js index a0b600d2..eed3a760 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.js +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js @@ -1,12 +1,26 @@ import { mapState } from 'vuex' import { get } from 'lodash' +/** + * This function is for backwards compatibility + * We used to get a list of strings for instances that + * are rejected/quarantined/etc. Now we get an object + * `{ "instance": instance, "reason": reason }` + */ +function to_instance_reason_object(e) { + if (typeof e === 'object' && e !== null) + return e + else + return {"instance": e, "reason": ""} + return e +} + 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', []), + quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []).map(to_instance_reason_object), 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', []), diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index 94e57892..e68c1c56 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -64,15 +64,10 @@ Instance Reason - - - + + {{ entry.instance }} + {{ entry.reason }}
From 8f966a71226ba7fd280a49bbff32fb9c171565fe Mon Sep 17 00:00:00 2001 From: Ilja Date: Sat, 24 Oct 2020 22:05:08 +0200 Subject: [PATCH 3/9] Make minter happy --- .../mrf_transparency_panel/mrf_transparency_panel.js | 12 ++++++------ .../mrf_transparency_panel.vue | 6 ++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.js b/src/components/mrf_transparency_panel/mrf_transparency_panel.js index eed3a760..de3ffea5 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.js +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js @@ -7,12 +7,12 @@ import { get } from 'lodash' * are rejected/quarantined/etc. Now we get an object * `{ "instance": instance, "reason": reason }` */ -function to_instance_reason_object(e) { - if (typeof e === 'object' && e !== null) +function toInstanceReasonObject (e) { + if (typeof e === 'object' && e !== null) { return e - else - return {"instance": e, "reason": ""} - return e + } else { + return { 'instance': e, 'reason': '' } + } } const MRFTransparencyPanel = { @@ -20,7 +20,7 @@ const MRFTransparencyPanel = { ...mapState({ federationPolicy: state => get(state, 'instance.federationPolicy'), mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []), - quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []).map(to_instance_reason_object), + quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []).map(toInstanceReasonObject), 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', []), diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index e68c1c56..689566a4 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -64,8 +64,10 @@ Instance Reason - + {{ entry.instance }} {{ entry.reason }} From 56d85654b191c2119819f5b86396af52f75145e5 Mon Sep 17 00:00:00 2001 From: Ilja Date: Sun, 25 Oct 2020 10:50:41 +0100 Subject: [PATCH 4/9] Make it work with English translations --- .../mrf_transparency_panel/mrf_transparency_panel.vue | 4 ++-- src/i18n/en.json | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index 689566a4..79d18eda 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -61,8 +61,8 @@ - - + + Date: Sun, 22 Nov 2020 12:05:10 +0100 Subject: [PATCH 5/9] Make reasons show * If BE nodeinfo sends a mrf_simple_info and/or quarantined_instances_info, we'll try to get the reason for each instance for each policy and show it in the about page --- .../mrf_transparency_panel.js | 57 +++++++--- .../mrf_transparency_panel.vue | 100 ++++++++++++------ 2 files changed, 106 insertions(+), 51 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.js b/src/components/mrf_transparency_panel/mrf_transparency_panel.js index de3ffea5..a3353728 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.js +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js @@ -2,17 +2,18 @@ import { mapState } from 'vuex' import { get } from 'lodash' /** - * This function is for backwards compatibility - * We used to get a list of strings for instances that - * are rejected/quarantined/etc. Now we get an object - * `{ "instance": instance, "reason": reason }` + * This is for backwards compatibility. We originally didn't recieve + * extra info like a reason why an instance was rejected/quarantined/etc. + * Because we didn't want to break backwards compatibility it was decided + * to add an extra "info" key. */ -function toInstanceReasonObject (e) { - if (typeof e === 'object' && e !== null) { - return e - } else { - return { 'instance': e, 'reason': '' } - } +function toInstanceReasonObject (instances, info, key) { + return instances.map(instance => { + if (info[key] && info[key][instance] && info[key][instance]['reason']) { + return { 'instance': instance, 'reason': info[key][instance]['reason'] } + } + return { 'instance': instance, 'reason': '' } + }) } const MRFTransparencyPanel = { @@ -20,12 +21,36 @@ const MRFTransparencyPanel = { ...mapState({ federationPolicy: state => get(state, 'instance.federationPolicy'), mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []), - quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []).map(toInstanceReasonObject), - 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', []), + quarantineInstances: state => toInstanceReasonObject( + get(state, 'instance.federationPolicy.quarantined_instances', []), + get(state, 'instance.federationPolicy.quarantined_instances_info', []), + 'quarantined_instances' + ), + acceptInstances: state => toInstanceReasonObject( + get(state, 'instance.federationPolicy.mrf_simple.accept', []), + get(state, 'instance.federationPolicy.mrf_simple_info', []), + 'accept' + ), + rejectInstances: state => toInstanceReasonObject( + get(state, 'instance.federationPolicy.mrf_simple.reject', []), + get(state, 'instance.federationPolicy.mrf_simple_info', []), + 'reject' + ), + ftlRemovalInstances: state => toInstanceReasonObject( + get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []), + get(state, 'instance.federationPolicy.mrf_simple_info', []), + 'federated_timeline_removal' + ), + mediaNsfwInstances: state => toInstanceReasonObject( + get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []), + get(state, 'instance.federationPolicy.mrf_simple_info', []), + 'media_nsfw' + ), + mediaRemovalInstances: state => toInstanceReasonObject( + get(state, 'instance.federationPolicy.mrf_simple.media_removal', []), + get(state, 'instance.federationPolicy.mrf_simple_info', []), + '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', []) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index 79d18eda..c6548f51 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -31,13 +31,19 @@

{{ $t("about.mrf.simple.accept_desc") }}

-
    -
  • -
+
InstanceReason{{ $t("about.mrf.simple.instance") }}{{ $t("about.mrf.simple.reason") }}
+ + + + + + + + +
{{ $t("about.mrf.simple.instance") }}{{ $t("about.mrf.simple.reason") }}
{{ entry.instance }}{{ entry.reason }}
@@ -45,13 +51,19 @@

{{ $t("about.mrf.simple.reject_desc") }}

-
    -
  • -
+ + + + + + + + + +
{{ $t("about.mrf.simple.instance") }}{{ $t("about.mrf.simple.reason") }}
{{ entry.instance }}{{ entry.reason }}
@@ -79,13 +91,19 @@

{{ $t("about.mrf.simple.ftl_removal_desc") }}

-
    -
  • -
+ + + + + + + + + +
{{ $t("about.mrf.simple.instance") }}{{ $t("about.mrf.simple.reason") }}
{{ entry.instance }}{{ entry.reason }}
@@ -93,13 +111,19 @@

{{ $t("about.mrf.simple.media_nsfw_desc") }}

-
    -
  • -
+ + + + + + + + + +
{{ $t("about.mrf.simple.instance") }}{{ $t("about.mrf.simple.reason") }}
{{ entry.instance }}{{ entry.reason }}
@@ -107,13 +131,19 @@

{{ $t("about.mrf.simple.media_removal_desc") }}

-
    -
  • -
+ + + + + + + + + +
{{ $t("about.mrf.simple.instance") }}{{ $t("about.mrf.simple.reason") }}
{{ entry.instance }}{{ entry.reason }}

From 6cf98da91ede74743f4ef95fc444ee70c57284b3 Mon Sep 17 00:00:00 2001 From: Ilja Date: Sat, 28 Nov 2020 11:59:40 +0100 Subject: [PATCH 6/9] Fix for code review * js object keys aren't quoted any more * when no reason is given, it will be shown in the FE (and is localised) * the js function I wrote * is now of the form `const name = (e) => {}` instead of `function name(e) {}` * doesn't use an extra `else` nesting any more --- .../mrf_transparency_panel.js | 6 +-- .../mrf_transparency_panel.vue | 44 ++++++++++++++++--- src/i18n/en.json | 1 + 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.js b/src/components/mrf_transparency_panel/mrf_transparency_panel.js index a3353728..3fde8106 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.js +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js @@ -7,12 +7,12 @@ import { get } from 'lodash' * Because we didn't want to break backwards compatibility it was decided * to add an extra "info" key. */ -function toInstanceReasonObject (instances, info, key) { +const toInstanceReasonObject = (instances, info, key) => { return instances.map(instance => { if (info[key] && info[key][instance] && info[key][instance]['reason']) { - return { 'instance': instance, 'reason': info[key][instance]['reason'] } + return { instance: instance, reason: info[key][instance]['reason'] } } - return { 'instance': instance, 'reason': '' } + return { instance: instance, reason: '' } }) } diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index c6548f51..feed56b7 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -41,7 +41,12 @@ :key="entry" > {{ entry.instance }} - {{ entry.reason }} + + {{ $t("about.mrf.simple.no_reason_available") }} + + + {{ entry.reason }} + @@ -61,7 +66,12 @@ :key="entry" > {{ entry.instance }} - {{ entry.reason }} + + {{ $t("about.mrf.simple.no_reason_available") }} + + + {{ entry.reason }} + @@ -81,7 +91,12 @@ :key="entry" > {{ entry.instance }} - {{ entry.reason }} + + {{ $t("about.mrf.simple.no_reason_available") }} + + + {{ entry.reason }} + @@ -101,7 +116,12 @@ :key="entry" > {{ entry.instance }} - {{ entry.reason }} + + {{ $t("about.mrf.simple.no_reason_available") }} + + + {{ entry.reason }} + @@ -121,7 +141,12 @@ :key="entry" > {{ entry.instance }} - {{ entry.reason }} + + {{ $t("about.mrf.simple.no_reason_available") }} + + + {{ entry.reason }} + @@ -137,11 +162,16 @@ {{ $t("about.mrf.simple.reason") }} {{ entry.instance }} - {{ entry.reason }} + + {{ $t("about.mrf.simple.no_reason_available") }} + + + {{ entry.reason }} + diff --git a/src/i18n/en.json b/src/i18n/en.json index 317ffdb0..91a2f556 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -15,6 +15,7 @@ "simple_policies": "Instance-specific Policies", "instance": "Instance", "reason": "Reason", + "no_reason_available": "N/A", "accept": "Accept", "accept_desc": "This instance only accepts messages from the following instances:", "reject": "Reject", From a5fac743f22f16f20f7c6ee5d711037894da3057 Mon Sep 17 00:00:00 2001 From: Ilja Date: Sat, 28 Nov 2020 13:53:49 +0100 Subject: [PATCH 7/9] Add css * I added an .scss file and moved the css from the vue file to there * I added new css obviously * the tables have a smal padding left * the first column is 180px wide * This should be more than enough for an instance with 26 characters in it's name, which is already starting to get rare when I check my DB --- .../mrf_transparency_panel.scss | 16 ++++++++++++++++ .../mrf_transparency_panel.vue | 17 ++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 src/components/mrf_transparency_panel/mrf_transparency_panel.scss diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.scss b/src/components/mrf_transparency_panel/mrf_transparency_panel.scss new file mode 100644 index 00000000..1ff3b476 --- /dev/null +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.scss @@ -0,0 +1,16 @@ +.mrf-section { + margin: 1em; + + table { + width:100%; + text-align: left; + padding-left:10px; + padding-bottom:20px; + th { + width: 180px; + } + th+th { + width: auto; + } + } +} diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index feed56b7..d4be388c 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -31,7 +31,7 @@

{{ $t("about.mrf.simple.accept_desc") }}

- +
@@ -56,7 +56,7 @@

{{ $t("about.mrf.simple.reject_desc") }}

-
{{ $t("about.mrf.simple.instance") }} {{ $t("about.mrf.simple.reason") }}
+
@@ -81,7 +81,7 @@

{{ $t("about.mrf.simple.quarantine_desc") }}

-
{{ $t("about.mrf.simple.instance") }} {{ $t("about.mrf.simple.reason") }}
+
@@ -106,7 +106,7 @@

{{ $t("about.mrf.simple.ftl_removal_desc") }}

-
{{ $t("about.mrf.simple.instance") }} {{ $t("about.mrf.simple.reason") }}
+
@@ -131,7 +131,7 @@

{{ $t("about.mrf.simple.media_nsfw_desc") }}

-
{{ $t("about.mrf.simple.instance") }} {{ $t("about.mrf.simple.reason") }}
+
@@ -156,7 +156,7 @@

{{ $t("about.mrf.simple.media_removal_desc") }}

-
{{ $t("about.mrf.simple.instance") }} {{ $t("about.mrf.simple.reason") }}
+
@@ -227,7 +227,6 @@ From dddfadacd194ea7cba469a1dd3ab41a0dce5dc5b Mon Sep 17 00:00:00 2001 From: Ilja Date: Sat, 28 Nov 2020 14:08:41 +0100 Subject: [PATCH 8/9] Improve transaltion * I chose a better label for the N/A * I added Dutch translations, I don't feel comfortable enough for other languages --- .../mrf_transparency_panel.vue | 12 ++++++------ src/i18n/en.json | 2 +- src/i18n/nl.json | 3 +++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index d4be388c..0c6bd511 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -42,7 +42,7 @@ >
{{ $t("about.mrf.simple.instance") }} {{ $t("about.mrf.simple.reason") }} {{ entry.instance }} - {{ $t("about.mrf.simple.no_reason_available") }} + {{ $t("about.mrf.simple.not_applicable") }} {{ entry.reason }} @@ -67,7 +67,7 @@ > {{ entry.instance }} - {{ $t("about.mrf.simple.no_reason_available") }} + {{ $t("about.mrf.simple.not_applicable") }} {{ entry.reason }} @@ -92,7 +92,7 @@ > {{ entry.instance }} - {{ $t("about.mrf.simple.no_reason_available") }} + {{ $t("about.mrf.simple.not_applicable") }} {{ entry.reason }} @@ -117,7 +117,7 @@ > {{ entry.instance }} - {{ $t("about.mrf.simple.no_reason_available") }} + {{ $t("about.mrf.simple.not_applicable") }} {{ entry.reason }} @@ -142,7 +142,7 @@ > {{ entry.instance }} - {{ $t("about.mrf.simple.no_reason_available") }} + {{ $t("about.mrf.simple.not_applicable") }} {{ entry.reason }} @@ -167,7 +167,7 @@ > {{ entry.instance }} - {{ $t("about.mrf.simple.no_reason_available") }} + {{ $t("about.mrf.simple.not_applicable") }} {{ entry.reason }} diff --git a/src/i18n/en.json b/src/i18n/en.json index 91a2f556..7d8448c8 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -15,7 +15,7 @@ "simple_policies": "Instance-specific Policies", "instance": "Instance", "reason": "Reason", - "no_reason_available": "N/A", + "not_applicable": "N/A", "accept": "Accept", "accept_desc": "This instance only accepts messages from the following instances:", "reject": "Reject", diff --git a/src/i18n/nl.json b/src/i18n/nl.json index a01e57a0..29f05b2a 100644 --- a/src/i18n/nl.json +++ b/src/i18n/nl.json @@ -592,6 +592,9 @@ "mrf_policies": "Ingeschakelde MRF Regels", "simple": { "simple_policies": "Instantie-specifieke Regels", + "instance": "Instantie", + "reason": "Reden", + "not_applicable": "n.v.t.", "accept": "Accepteren", "accept_desc": "Deze instantie accepteert alleen berichten van de volgende instanties:", "reject": "Afwijzen", From 8fa8d17a8345e83d309cf04aabb05b0ca812337f Mon Sep 17 00:00:00 2001 From: Ilja Date: Sun, 13 Dec 2020 15:50:17 +0100 Subject: [PATCH 9/9] Code review fixes * The v-for for the reasons now have an actual unique key so it doesn't throw errors any more * Some small touch ups on the css. Most importantly the "vertical-align: text-top;" --- .../mrf_transparency_panel.scss | 9 +++++++-- .../mrf_transparency_panel.vue | 12 ++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.scss b/src/components/mrf_transparency_panel/mrf_transparency_panel.scss index 1ff3b476..80ea01d4 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.scss +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.scss @@ -6,10 +6,15 @@ text-align: left; padding-left:10px; padding-bottom:20px; - th { + + th, td { width: 180px; + max-width: 360px; + overflow: hidden; + vertical-align: text-top; } - th+th { + + th+th, td+td { width: auto; } } diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue index 0c6bd511..1787fa07 100644 --- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue +++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue @@ -38,7 +38,7 @@
{{ entry.instance }} @@ -63,7 +63,7 @@
{{ entry.instance }} @@ -88,7 +88,7 @@
{{ entry.instance }} @@ -113,7 +113,7 @@
{{ entry.instance }} @@ -138,7 +138,7 @@
{{ entry.instance }} @@ -163,7 +163,7 @@
{{ entry.instance }}