From 2c1d2ed73450d3ebb9c52a58bd05251af98d8c51 Mon Sep 17 00:00:00 2001
From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Wed, 12 Feb 2025 19:12:34 +0900
Subject: [PATCH] =?UTF-8?q?enhance(frontend):=20=E3=83=A2=E3=83=87?=
=?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=BF=E3=83=BC=E3=81=8C=E3=82=BB=E3=83=B3?=
=?UTF-8?q?=E3=82=B7=E3=83=86=E3=82=A3=E3=83=96=E8=A8=AD=E5=AE=9A=E3=82=92?=
=?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=99=E3=82=8B=E9=9A=9B=E3=81=AB=E7=A2=BA?=
=?UTF-8?q?=E8=AA=8D=E3=83=80=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E3=82=92?=
=?UTF-8?q?=E5=87=BA=E3=81=99=E3=82=88=E3=81=86=E3=81=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
locales/index.d.ts | 8 +++++++
locales/ja-JP.yml | 2 ++
.../frontend/src/components/MkMediaAudio.vue | 9 +++++++-
.../frontend/src/components/MkMediaImage.vue | 16 +++++++++++---
.../frontend/src/components/MkMediaVideo.vue | 9 +++++++-
packages/frontend/src/pages/admin-file.vue | 22 +++++++++++++++----
6 files changed, 57 insertions(+), 9 deletions(-)
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 4fe605490e..01811c519b 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -5254,6 +5254,14 @@ export interface Locale extends ILocale {
* このサーバーは連合が無効化されています。他のサーバーのユーザーとやり取りすることはできません。
*/
"federationDisabled": string;
+ /**
+ * このメディアをセンシティブとして設定しますか?
+ */
+ "markAsSensitiveConfirm": string;
+ /**
+ * このメディアのセンシティブ指定を解除しますか?
+ */
+ "unmarkAsSensitiveConfirm": string;
"_accountSettings": {
/**
* コンテンツの表示にログインを必須にする
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 57b11e9e04..44b6ddee32 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1309,6 +1309,8 @@ availableRoles: "利用可能なロール"
acknowledgeNotesAndEnable: "注意事項を理解した上でオンにします。"
federationSpecified: "このサーバーはホワイトリスト連合で運用されています。管理者が指定したサーバー以外とやり取りすることはできません。"
federationDisabled: "このサーバーは連合が無効化されています。他のサーバーのユーザーとやり取りすることはできません。"
+markAsSensitiveConfirm: "このメディアをセンシティブとして設定しますか?"
+unmarkAsSensitiveConfirm: "このメディアのセンシティブ指定を解除しますか?"
_accountSettings:
requireSigninToViewContents: "コンテンツの表示にログインを必須にする"
diff --git a/packages/frontend/src/components/MkMediaAudio.vue b/packages/frontend/src/components/MkMediaAudio.vue
index e509cac945..79c544682e 100644
--- a/packages/frontend/src/components/MkMediaAudio.vue
+++ b/packages/frontend/src/components/MkMediaAudio.vue
@@ -247,7 +247,14 @@ function showMenu(ev: MouseEvent) {
});
}
-function toggleSensitive(file: Misskey.entities.DriveFile) {
+async function toggleSensitive(file: Misskey.entities.DriveFile) {
+ const { canceled } = await os.confirm({
+ type: 'warning',
+ text: file.isSensitive ? i18n.ts.unmarkAsSensitiveConfirm : i18n.ts.markAsSensitiveConfirm,
+ });
+
+ if (canceled) return;
+
os.apiWithDialog('drive/files/update', {
fileId: file.id,
isSensitive: !file.isSensitive,
diff --git a/packages/frontend/src/components/MkMediaImage.vue b/packages/frontend/src/components/MkMediaImage.vue
index bd6decd082..0b51c7cf1d 100644
--- a/packages/frontend/src/components/MkMediaImage.vue
+++ b/packages/frontend/src/components/MkMediaImage.vue
@@ -124,11 +124,21 @@ function showMenu(ev: MouseEvent) {
if (iAmModerator) {
menuItems.push({
- text: i18n.ts.markAsSensitive,
+ text: props.image.isSensitive ? i18n.ts.unmarkAsSensitive : i18n.ts.markAsSensitive,
icon: 'ti ti-eye-exclamation',
danger: true,
- action: () => {
- os.apiWithDialog('drive/files/update', { fileId: props.image.id, isSensitive: true });
+ action: async () => {
+ const { canceled } = await os.confirm({
+ type: 'warning',
+ text: props.image.isSensitive ? i18n.ts.unmarkAsSensitiveConfirm : i18n.ts.markAsSensitiveConfirm,
+ });
+
+ if (canceled) return;
+
+ os.apiWithDialog('drive/files/update', {
+ fileId: props.image.id,
+ isSensitive: !props.image.isSensitive,
+ });
},
});
}
diff --git a/packages/frontend/src/components/MkMediaVideo.vue b/packages/frontend/src/components/MkMediaVideo.vue
index dec190f16c..bca9612ac0 100644
--- a/packages/frontend/src/components/MkMediaVideo.vue
+++ b/packages/frontend/src/components/MkMediaVideo.vue
@@ -272,7 +272,14 @@ function showMenu(ev: MouseEvent) {
});
}
-function toggleSensitive(file: Misskey.entities.DriveFile) {
+async function toggleSensitive(file: Misskey.entities.DriveFile) {
+ const { canceled } = await os.confirm({
+ type: 'warning',
+ text: file.isSensitive ? i18n.ts.unmarkAsSensitiveConfirm : i18n.ts.markAsSensitiveConfirm,
+ });
+
+ if (canceled) return;
+
os.apiWithDialog('drive/files/update', {
fileId: file.id,
isSensitive: !file.isSensitive,
diff --git a/packages/frontend/src/pages/admin-file.vue b/packages/frontend/src/pages/admin-file.vue
index 60f6be51d4..1f419e943a 100644
--- a/packages/frontend/src/pages/admin-file.vue
+++ b/packages/frontend/src/pages/admin-file.vue
@@ -36,8 +36,11 @@ SPDX-License-Identifier: AGPL-3.0-only