summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2024-10-11 18:03:12 +0000
committerHazelnoot <acomputerdog@gmail.com>2024-10-11 18:03:12 +0000
commit883168bc00d5fbd336e295678d580fe869fa4e28 (patch)
treee24126e105141b74a88a76bc7943303e0234c3b6
parentmerge: Minor improvements to relation badges on user profiles (!674) (diff)
parentre-implement suspension toggle to match other controls (diff)
downloadsharkey-883168bc00d5fbd336e295678d580fe869fa4e28.tar.gz
sharkey-883168bc00d5fbd336e295678d580fe869fa4e28.tar.bz2
sharkey-883168bc00d5fbd336e295678d580fe869fa4e28.zip
merge: Replace "suspend delivery" button with a toggle (resolves #725) (!677)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/677 Closes #725 Approved-by: dakkar <dakkar@thenautilus.net> Approved-by: Marie <github@yuugi.dev>
-rw-r--r--locales/en-US.yml2
-rw-r--r--packages/frontend/src/pages/instance-info.vue20
2 files changed, 7 insertions, 15 deletions
diff --git a/locales/en-US.yml b/locales/en-US.yml
index e50a78e414..70c06ab326 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -1359,7 +1359,7 @@ _delivery:
none: "Publishing"
manuallySuspended: "Manually suspended"
goneSuspended: "Server is suspended due to server deletion"
- autoSuspendedForNotResponding: "Server is suspended due to no responding"
+ autoSuspendedForNotResponding: "Server is suspended due to not responding"
_bubbleGame:
howToPlay: "How to play"
hold: "Hold"
diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue
index 3dc2b2878c..e1a30a21b5 100644
--- a/packages/frontend/src/pages/instance-info.vue
+++ b/packages/frontend/src/pages/instance-info.vue
@@ -46,9 +46,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<div class="_buttons">
<MkButton inline :disabled="!instance" danger @click="deleteAllFiles">{{ i18n.ts.deleteAllFiles }}</MkButton>
<MkButton inline :disabled="!instance" danger @click="severAllFollowRelations">{{ i18n.ts.severAllFollowRelations }}</MkButton>
- <MkButton v-if="suspensionState === 'none'" inline :disabled="!instance" danger @click="stopDelivery">{{ i18n.ts._delivery.stop }}</MkButton>
- <MkButton v-if="suspensionState !== 'none'" inline :disabled="!instance" @click="resumeDelivery">{{ i18n.ts._delivery.resume }}</MkButton>
</div>
+ <MkSwitch v-model="isSuspended" :disabled="!instance" @update:modelValue="toggleSuspended">{{ i18n.ts._delivery.stop }}</MkSwitch>
<MkInfo v-if="isBaseBlocked" warn>{{ i18n.ts.blockedByBase }}</MkInfo>
<MkSwitch v-model="isBlocked" :disabled="!meta || !instance || isBaseBlocked" @update:modelValue="toggleBlock">{{ i18n.ts.blockThisInstance }}</MkSwitch>
<MkInfo v-if="isBaseSilenced" warn>{{ i18n.ts.silencedByBase }}</MkInfo>
@@ -206,6 +205,7 @@ const chartSrc = ref('instance-requests');
const meta = ref<Misskey.entities.AdminMetaResponse | null>(null);
const instance = ref<Misskey.entities.FederationInstance | null>(null);
const suspensionState = ref<'none' | 'manuallySuspended' | 'goneSuspended' | 'autoSuspendedForNotResponding'>('none');
+const isSuspended = ref(false);
const isBlocked = ref(false);
const isSilenced = ref(false);
const isNSFW = ref(false);
@@ -272,6 +272,7 @@ async function fetch(): Promise<void> {
host: props.host,
});
suspensionState.value = instance.value?.suspensionState ?? 'none';
+ isSuspended.value = instance.value?.suspensionState !== 'none';
isBlocked.value = instance.value?.isBlocked ?? false;
isSilenced.value = instance.value?.isSilenced ?? false;
isNSFW.value = instance.value?.isNSFW ?? false;
@@ -310,21 +311,12 @@ async function toggleMediaSilenced(): Promise<void> {
});
}
-async function stopDelivery(): Promise<void> {
+async function toggleSuspended(): Promise<void> {
if (!instance.value) throw new Error('No instance?');
- suspensionState.value = 'manuallySuspended';
+ suspensionState.value = isSuspended.value ? 'manuallySuspended' : 'none';
await misskeyApi('admin/federation/update-instance', {
host: instance.value.host,
- isSuspended: true,
- });
-}
-
-async function resumeDelivery(): Promise<void> {
- if (!instance.value) throw new Error('No instance?');
- suspensionState.value = 'none';
- await misskeyApi('admin/federation/update-instance', {
- host: instance.value.host,
- isSuspended: false,
+ isSuspended: isSuspended.value,
});
}