refactor(privateMode): move option to general tab and requires refresh
This commit is contained in:
parent
cee2e5c52f
commit
91bcefaeff
6 changed files with 63 additions and 57 deletions
|
@ -152,7 +152,7 @@ const selectedFolders = ref<Misskey.entities.DriveFolder[]>([]);
|
||||||
const uploadings = uploads;
|
const uploadings = uploads;
|
||||||
const connection = useStream().useChannel('drive');
|
const connection = useStream().useChannel('drive');
|
||||||
const keepOriginal = ref<boolean>(defaultStore.state.keepOriginalUploading); // 外部渡しが多いので$refは使わないほうがよい
|
const keepOriginal = ref<boolean>(defaultStore.state.keepOriginalUploading); // 外部渡しが多いので$refは使わないほうがよい
|
||||||
const hideDriveFileList = ref<boolean>(defaultStore.state.hideSensitiveInformation && defaultStore.state.hideDriveFileList);
|
const hideDriveFileList = ref<boolean>(defaultStore.state.privateMode && defaultStore.state.hideDriveFileList);
|
||||||
|
|
||||||
// ドロップされようとしているか
|
// ドロップされようとしているか
|
||||||
const draghover = ref(false);
|
const draghover = ref(false);
|
||||||
|
|
|
@ -269,7 +269,7 @@ const isDeleted = ref(false);
|
||||||
const muted = ref(checkMute(appearNote.value, $i?.mutedWords ?? []));
|
const muted = ref(checkMute(appearNote.value, $i?.mutedWords ?? []));
|
||||||
const isRedacted = ref<boolean>(
|
const isRedacted = ref<boolean>(
|
||||||
defaultStore.state.hideDirectMessages &&
|
defaultStore.state.hideDirectMessages &&
|
||||||
defaultStore.state.hideSensitiveInformation &&
|
defaultStore.state.privateMode &&
|
||||||
note.value.visibility === 'specified'
|
note.value.visibility === 'specified'
|
||||||
);
|
);
|
||||||
const translation = ref<Misskey.entities.NotesTranslateResponse | null>(null);
|
const translation = ref<Misskey.entities.NotesTranslateResponse | null>(null);
|
||||||
|
|
|
@ -216,6 +216,53 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
|
<FormSection>
|
||||||
|
<template #label>{{ i18n.ts.hideSensitiveInformation }}</template>
|
||||||
|
|
||||||
|
<div class="_gaps_m">
|
||||||
|
<MkSwitch v-model="privateMode">
|
||||||
|
{{ i18n.ts._hideSensitiveInformation.use }}
|
||||||
|
<template #caption>{{ i18n.ts._hideSensitiveInformation.about }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
<MkFolder v-if="privateMode">
|
||||||
|
<template #label>{{ i18n.ts._hideSensitiveInformation.directMessages }}</template>
|
||||||
|
<template v-if="hideDirectMessages" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
||||||
|
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
||||||
|
<MkSwitch v-model="hideDirectMessages">
|
||||||
|
{{ i18n.ts._hideSensitiveInformation.directMessagesUse }}
|
||||||
|
<template #caption>{{ i18n.ts._hideSensitiveInformation.directMessagesDescription }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkFolder>
|
||||||
|
<MkFolder v-if="privateMode">
|
||||||
|
<template #label>{{ i18n.ts._hideSensitiveInformation.drive }}</template>
|
||||||
|
<template v-if="hideDriveFileList" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
||||||
|
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
||||||
|
<MkSwitch v-model="hideDriveFileList">
|
||||||
|
{{ i18n.ts._hideSensitiveInformation.driveUse }}
|
||||||
|
<template #caption>{{ i18n.ts._hideSensitiveInformation.driveDescription }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkFolder>
|
||||||
|
<MkFolder v-if="privateMode && $i?.isModerator">
|
||||||
|
<template #label>{{ i18n.ts._hideSensitiveInformation.moderationLog }}</template>
|
||||||
|
<template v-if="hideModerationLog" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
||||||
|
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
||||||
|
<MkSwitch v-model="hideModerationLog">
|
||||||
|
{{ i18n.ts._hideSensitiveInformation.moderationLogUse }}
|
||||||
|
<template #caption>{{ i18n.ts._hideSensitiveInformation.moderationLogDescription }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkFolder>
|
||||||
|
<MkFolder v-if="privateMode && $i?.isModerator">
|
||||||
|
<template #label>{{ i18n.ts._hideSensitiveInformation.roles }}</template>
|
||||||
|
<template v-if="hideRoleList" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
||||||
|
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
||||||
|
<MkSwitch v-model="hideRoleList">
|
||||||
|
{{ i18n.ts._hideSensitiveInformation.rolesUse }}
|
||||||
|
<template #caption>{{ i18n.ts._hideSensitiveInformation.rolesDescription }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkFolder>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.other }}</template>
|
<template #label>{{ i18n.ts.other }}</template>
|
||||||
|
|
||||||
|
@ -259,6 +306,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
|
||||||
import { miLocalStorage } from '@/local-storage.js';
|
import { miLocalStorage } from '@/local-storage.js';
|
||||||
import { globalEvents } from '@/events.js';
|
import { globalEvents } from '@/events.js';
|
||||||
import { claimAchievement } from '@/scripts/achievements.js';
|
import { claimAchievement } from '@/scripts/achievements.js';
|
||||||
|
import { $i } from '@/account.js';
|
||||||
|
|
||||||
const lang = ref(miLocalStorage.getItem('lang'));
|
const lang = ref(miLocalStorage.getItem('lang'));
|
||||||
const fontSize = ref(miLocalStorage.getItem('fontSize'));
|
const fontSize = ref(miLocalStorage.getItem('fontSize'));
|
||||||
|
@ -322,6 +370,11 @@ const enableHorizontalSwipe = computed(defaultStore.makeGetterSetter('enableHori
|
||||||
const useNativeUIForVideoAudioPlayer = computed(defaultStore.makeGetterSetter('useNativeUIForVideoAudioPlayer'));
|
const useNativeUIForVideoAudioPlayer = computed(defaultStore.makeGetterSetter('useNativeUIForVideoAudioPlayer'));
|
||||||
const alwaysConfirmFollow = computed(defaultStore.makeGetterSetter('alwaysConfirmFollow'));
|
const alwaysConfirmFollow = computed(defaultStore.makeGetterSetter('alwaysConfirmFollow'));
|
||||||
const sensitiveDoubleClickRequired = computed(defaultStore.makeGetterSetter('sensitiveDoubleClickRequired'));
|
const sensitiveDoubleClickRequired = computed(defaultStore.makeGetterSetter('sensitiveDoubleClickRequired'));
|
||||||
|
const privateMode = computed(defaultStore.makeGetterSetter('privateMode'));
|
||||||
|
const hideDirectMessages = computed(defaultStore.makeGetterSetter('hideDirectMessages'));
|
||||||
|
const hideDriveFileList = computed(defaultStore.makeGetterSetter('hideDriveFileList'));
|
||||||
|
const hideModerationLog = computed(defaultStore.makeGetterSetter('hideModerationLog'));
|
||||||
|
const hideRoleList = computed(defaultStore.makeGetterSetter('hideRoleList'));
|
||||||
|
|
||||||
watch(lang, () => {
|
watch(lang, () => {
|
||||||
miLocalStorage.setItem('lang', lang.value as string);
|
miLocalStorage.setItem('lang', lang.value as string);
|
||||||
|
@ -365,6 +418,11 @@ watch([
|
||||||
disableStreamingTimeline,
|
disableStreamingTimeline,
|
||||||
enableSeasonalScreenEffect,
|
enableSeasonalScreenEffect,
|
||||||
alwaysConfirmFollow,
|
alwaysConfirmFollow,
|
||||||
|
privateMode,
|
||||||
|
hideDirectMessages,
|
||||||
|
hideDriveFileList,
|
||||||
|
hideModerationLog,
|
||||||
|
hideRoleList,
|
||||||
], async () => {
|
], async () => {
|
||||||
await reloadAsk();
|
await reloadAsk();
|
||||||
});
|
});
|
||||||
|
|
|
@ -67,53 +67,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkSwitch v-model="keepCw">{{ i18n.ts.keepCw }}</MkSwitch>
|
<MkSwitch v-model="keepCw">{{ i18n.ts.keepCw }}</MkSwitch>
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
<FormSection>
|
|
||||||
<template #label>{{ i18n.ts.hideSensitiveInformation }}</template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
|
||||||
<MkSwitch v-model="hideSensitiveInformation">
|
|
||||||
{{ i18n.ts._hideSensitiveInformation.use }}
|
|
||||||
<template #caption>{{ i18n.ts._hideSensitiveInformation.about }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
<MkFolder v-if="hideSensitiveInformation">
|
|
||||||
<template #label>{{ i18n.ts._hideSensitiveInformation.directMessages }}</template>
|
|
||||||
<template v-if="hideDirectMessages" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
|
||||||
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
|
||||||
<MkSwitch v-model="hideDirectMessages">
|
|
||||||
{{ i18n.ts._hideSensitiveInformation.directMessagesUse }}
|
|
||||||
<template #caption>{{ i18n.ts._hideSensitiveInformation.directMessagesDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
</MkFolder>
|
|
||||||
<MkFolder v-if="hideSensitiveInformation">
|
|
||||||
<template #label>{{ i18n.ts._hideSensitiveInformation.drive }}</template>
|
|
||||||
<template v-if="hideDriveFileList" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
|
||||||
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
|
||||||
<MkSwitch v-model="hideDriveFileList">
|
|
||||||
{{ i18n.ts._hideSensitiveInformation.driveUse }}
|
|
||||||
<template #caption>{{ i18n.ts._hideSensitiveInformation.driveDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
</MkFolder>
|
|
||||||
<MkFolder v-if="hideSensitiveInformation && $i.isModerator">
|
|
||||||
<template #label>{{ i18n.ts._hideSensitiveInformation.moderationLog }}</template>
|
|
||||||
<template v-if="hideModerationLog" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
|
||||||
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
|
||||||
<MkSwitch v-model="hideModerationLog">
|
|
||||||
{{ i18n.ts._hideSensitiveInformation.moderationLogUse }}
|
|
||||||
<template #caption>{{ i18n.ts._hideSensitiveInformation.moderationLogDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
</MkFolder>
|
|
||||||
<MkFolder v-if="hideSensitiveInformation && $i.isModerator">
|
|
||||||
<template #label>{{ i18n.ts._hideSensitiveInformation.roles }}</template>
|
|
||||||
<template v-if="hideRoleList" #suffix>{{ i18n.ts._hideSensitiveInformation.itsHidden }}</template>
|
|
||||||
<template v-else #suffix>{{ i18n.ts._hideSensitiveInformation.itsNotHidden }}</template>
|
|
||||||
<MkSwitch v-model="hideRoleList">
|
|
||||||
{{ i18n.ts._hideSensitiveInformation.rolesUse }}
|
|
||||||
<template #caption>{{ i18n.ts._hideSensitiveInformation.rolesDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
</MkFolder>
|
|
||||||
</div>
|
|
||||||
</FormSection>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -145,11 +98,6 @@ const defaultNoteVisibility = computed(defaultStore.makeGetterSetter('defaultNot
|
||||||
const defaultNoteLocalOnly = computed(defaultStore.makeGetterSetter('defaultNoteLocalOnly'));
|
const defaultNoteLocalOnly = computed(defaultStore.makeGetterSetter('defaultNoteLocalOnly'));
|
||||||
const rememberNoteVisibility = computed(defaultStore.makeGetterSetter('rememberNoteVisibility'));
|
const rememberNoteVisibility = computed(defaultStore.makeGetterSetter('rememberNoteVisibility'));
|
||||||
const keepCw = computed(defaultStore.makeGetterSetter('keepCw'));
|
const keepCw = computed(defaultStore.makeGetterSetter('keepCw'));
|
||||||
const hideSensitiveInformation = computed(defaultStore.makeGetterSetter('hideSensitiveInformation'));
|
|
||||||
const hideDirectMessages = computed(defaultStore.makeGetterSetter('hideDirectMessages'));
|
|
||||||
const hideDriveFileList = computed(defaultStore.makeGetterSetter('hideDriveFileList'));
|
|
||||||
const hideModerationLog = computed(defaultStore.makeGetterSetter('hideModerationLog'));
|
|
||||||
const hideRoleList = computed(defaultStore.makeGetterSetter('hideRoleList'));
|
|
||||||
|
|
||||||
function save() {
|
function save() {
|
||||||
misskeyApi('i/update', {
|
misskeyApi('i/update', {
|
||||||
|
|
|
@ -255,8 +255,8 @@ const isEditingMemo = ref(false);
|
||||||
const moderationNote = ref(props.user.moderationNote);
|
const moderationNote = ref(props.user.moderationNote);
|
||||||
const editModerationNote = ref(false);
|
const editModerationNote = ref(false);
|
||||||
|
|
||||||
const hideModerationNote = !iAmModerator || (defaultStore.state.hideSensitiveInformation && defaultStore.state.hideModerationLog);
|
const hideModerationNote = !iAmModerator || (defaultStore.state.privateMode && defaultStore.state.hideModerationLog);
|
||||||
const hideRoleList = defaultStore.state.hideSensitiveInformation && defaultStore.state.hideRoleList;
|
const hideRoleList = defaultStore.state.privateMode && defaultStore.state.hideRoleList;
|
||||||
|
|
||||||
watch(moderationNote, async () => {
|
watch(moderationNote, async () => {
|
||||||
await misskeyApi('admin/update-user-note', { userId: props.user.id, text: moderationNote.value });
|
await misskeyApi('admin/update-user-note', { userId: props.user.id, text: moderationNote.value });
|
||||||
|
|
|
@ -156,7 +156,7 @@ export const defaultStore = markRaw(new Storage('base', {
|
||||||
where: 'deviceAccount',
|
where: 'deviceAccount',
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
hideSensitiveInformation: {
|
privateMode: {
|
||||||
where: 'device',
|
where: 'device',
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue