replace "Mark instance as NSFW" toggle with an instance-level mandatory CW
This commit is contained in:
parent
604f5a5c68
commit
d62be884b3
24 changed files with 44 additions and 127 deletions
|
|
@ -19,7 +19,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<option value="subscribing">{{ i18n.ts.subscribing }}</option>
|
||||
<option value="publishing">{{ i18n.ts.publishing }}</option>
|
||||
<option value="bubble">Bubble</option>
|
||||
<option value="nsfw">NSFW</option>
|
||||
<option v-if="$i" value="suspended">{{ i18n.ts.suspended }}</option>
|
||||
<option v-if="$i" value="silenced">{{ i18n.ts.silence }}</option>
|
||||
<option v-if="$i" value="blocked">{{ i18n.ts.blocked }}</option>
|
||||
|
|
@ -83,18 +82,16 @@ const pagination = {
|
|||
state.value === 'blocked' ? { blocked: true } :
|
||||
state.value === 'silenced' ? { silenced: true } :
|
||||
state.value === 'notResponding' ? { notResponding: true } :
|
||||
state.value === 'nsfw' ? { nsfw: true } :
|
||||
state.value === 'bubble' ? { bubble: true } :
|
||||
{}),
|
||||
})),
|
||||
} as Paging;
|
||||
} satisfies Paging;
|
||||
|
||||
function getStatus(instance) {
|
||||
if (instance.isSuspended) return 'Suspended';
|
||||
if (instance.isBlocked) return 'Blocked';
|
||||
if (instance.isSilenced) return 'Silenced';
|
||||
if (instance.isNotResponding) return 'Error';
|
||||
if (instance.isNSFW) return 'NSFW';
|
||||
return 'Alive';
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<option value="federating">{{ i18n.ts.federating }}</option>
|
||||
<option value="subscribing">{{ i18n.ts.subscribing }}</option>
|
||||
<option value="publishing">{{ i18n.ts.publishing }}</option>
|
||||
<!-- TODO translate -->
|
||||
<option value="nsfw">NSFW</option>
|
||||
<option value="suspended">{{ i18n.ts.suspended }}</option>
|
||||
<option value="blocked">{{ i18n.ts.blocked }}</option>
|
||||
<option value="silenced">{{ i18n.ts.silence }}</option>
|
||||
|
|
@ -85,7 +83,6 @@ const pagination = {
|
|||
state.value === 'blocked' ? { blocked: true } :
|
||||
state.value === 'silenced' ? { silenced: true } :
|
||||
state.value === 'notResponding' ? { notResponding: true } :
|
||||
state.value === 'nsfw' ? { nsfw: true } :
|
||||
{}),
|
||||
})),
|
||||
};
|
||||
|
|
@ -104,7 +101,6 @@ function getStatus(instance: Misskey.entities.FederationInstance) {
|
|||
if (instance.isBlocked) return 'Blocked';
|
||||
if (instance.isSilenced) return 'Silenced';
|
||||
if (instance.isNotResponding) return 'Error';
|
||||
if (instance.isNSFW) return 'NSFW';
|
||||
return 'Alive';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,8 +30,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
'setMandatoryCWForNote',
|
||||
'setMandatoryCWForInstance',
|
||||
'suspendRemoteInstance',
|
||||
'setRemoteInstanceNSFW',
|
||||
'unsetRemoteInstanceNSFW',
|
||||
'rejectRemoteInstanceReports',
|
||||
'acceptRemoteInstanceReports',
|
||||
'rejectQuotesUser',
|
||||
|
|
@ -69,7 +67,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
'removeRelay',
|
||||
].includes(log.type)
|
||||
}"
|
||||
>{{ i18n.ts._moderationLogTypes[log.type] }}</b>
|
||||
>{{ i18n.ts._moderationLogTypes[log.type] ?? log.type }}</b>
|
||||
<span v-if="log.type === 'updateUserNote'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span>
|
||||
<span v-else-if="log.type === 'suspend'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span>
|
||||
<span v-else-if="log.type === 'approve'">: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}</span>
|
||||
|
|
@ -95,8 +93,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<span v-else-if="log.type === 'unmarkSensitiveDriveFile'">: @{{ log.info.fileUserUsername }}{{ log.info.fileUserHost ? '@' + log.info.fileUserHost : '' }}</span>
|
||||
<span v-else-if="log.type === 'suspendRemoteInstance'">: {{ log.info.host }}</span>
|
||||
<span v-else-if="log.type === 'unsuspendRemoteInstance'">: {{ log.info.host }}</span>
|
||||
<span v-else-if="log.type === 'setRemoteInstanceNSFW'">: {{ log.info.host }}</span>
|
||||
<span v-else-if="log.type === 'unsetRemoteInstanceNSFW'">: {{ log.info.host }}</span>
|
||||
<span v-else-if="log.type === 'rejectRemoteInstanceReports'">: {{ log.info.host }}</span>
|
||||
<span v-else-if="log.type === 'acceptRemoteInstanceReports'">: {{ log.info.host }}</span>
|
||||
<span v-else-if="log.type === 'createGlobalAnnouncement'">: {{ log.info.announcement.title }}</span>
|
||||
|
|
|
|||
|
|
@ -118,7 +118,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<MkInfo v-if="isBaseBlocked" warn>{{ i18n.ts.blockedByBase }}</MkInfo>
|
||||
<MkSwitch v-model="isBlocked" :disabled="!meta || !instance || isBaseBlocked" @update:modelValue="toggleBlock">{{ i18n.ts.blockThisInstance }}</MkSwitch>
|
||||
<MkSwitch v-model="rejectQuotes" :disabled="!instance" @update:modelValue="toggleRejectQuotes">{{ i18n.ts.rejectQuotesInstance }}</MkSwitch>
|
||||
<MkSwitch v-model="isNSFW" :disabled="!instance" @update:modelValue="toggleNSFW">{{ i18n.ts.markInstanceAsNSFW }}</MkSwitch>
|
||||
<MkSwitch v-model="rejectReports" :disabled="!instance" @update:modelValue="toggleRejectReports">{{ i18n.ts.rejectReports }}</MkSwitch>
|
||||
<MkInfo v-if="isBaseMediaSilenced" warn>{{ i18n.ts.mediaSilencedByBase }}</MkInfo>
|
||||
<MkSwitch v-model="isMediaSilenced" :disabled="!meta || !instance || isBaseMediaSilenced" @update:modelValue="toggleMediaSilenced">{{ i18n.ts.mediaSilenceThisInstance }}</MkSwitch>
|
||||
|
|
@ -259,7 +258,6 @@ const suspensionState = ref<'none' | 'manuallySuspended' | 'goneSuspended' | 'au
|
|||
const isSuspended = ref(false);
|
||||
const isBlocked = ref(false);
|
||||
const isSilenced = ref(false);
|
||||
const isNSFW = ref(false);
|
||||
const rejectQuotes = ref(false);
|
||||
const rejectReports = ref(false);
|
||||
const isMediaSilenced = ref(false);
|
||||
|
|
@ -320,13 +318,6 @@ const badges = computed(() => {
|
|||
style: 'warning',
|
||||
});
|
||||
}
|
||||
if (instance.value.isNSFW) {
|
||||
arr.push({
|
||||
key: 'nsfw',
|
||||
label: i18n.ts.nsfw,
|
||||
style: 'warning',
|
||||
});
|
||||
}
|
||||
if (instance.value.isBubbled) {
|
||||
arr.push({
|
||||
key: 'bubbled',
|
||||
|
|
@ -404,7 +395,6 @@ async function fetch(withHint = false): Promise<void> {
|
|||
isSuspended.value = suspensionState.value !== 'none';
|
||||
isBlocked.value = instance.value?.isBlocked ?? false;
|
||||
isSilenced.value = instance.value?.isSilenced ?? false;
|
||||
isNSFW.value = instance.value?.isNSFW ?? false;
|
||||
rejectReports.value = instance.value?.rejectReports ?? false;
|
||||
rejectQuotes.value = instance.value?.rejectQuotes ?? false;
|
||||
isMediaSilenced.value = instance.value?.isMediaSilenced ?? false;
|
||||
|
|
@ -470,18 +460,6 @@ async function toggleSuspended(): Promise<void> {
|
|||
});
|
||||
}
|
||||
|
||||
async function toggleNSFW(): Promise<void> {
|
||||
if (!iAmModerator) return;
|
||||
await os.promiseDialog(async () => {
|
||||
if (!instance.value) throw new Error('No instance?');
|
||||
await misskeyApi('admin/federation/update-instance', {
|
||||
host: instance.value.host,
|
||||
isNSFW: isNSFW.value,
|
||||
});
|
||||
await fetch();
|
||||
});
|
||||
}
|
||||
|
||||
async function toggleRejectReports(): Promise<void> {
|
||||
if (!iAmModerator) return;
|
||||
await os.promiseDialog(async () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue