From 14955fa01f87be3ceccaf5baf9488cc1c5ee6626 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 6 May 2025 11:28:09 +0000 Subject: [PATCH 1/3] Bump version to 2025.5.0-rc.0 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6d46d1c641..2f3d77b319 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.5.0-beta.0", + "version": "2025.5.0-rc.0", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index fa3ee0c029..dbc702dc6f 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.5.0-beta.0", + "version": "2025.5.0-rc.0", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From 95a1d17cf6a4fbb40b71a3ce0750f5cb5cf4c84d Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 6 May 2025 20:41:51 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=8E=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/components/global/MkResult.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/frontend/src/components/global/MkResult.vue b/packages/frontend/src/components/global/MkResult.vue index 89ac2eb3d3..0cba254358 100644 --- a/packages/frontend/src/components/global/MkResult.vue +++ b/packages/frontend/src/components/global/MkResult.vue @@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-only
- + @@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only - + @@ -31,7 +31,7 @@ SPDX-License-Identifier: AGPL-3.0-only - + From 5d787e5bb9de72235cf42b837ad0e5bb272547aa Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 6 May 2025 20:57:55 +0900 Subject: [PATCH 3/3] =?UTF-8?q?enhance(frontend):=20=E3=83=90=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=82=A2=E3=83=83=E3=83=97=E3=81=95=E3=82=8C=E3=81=9F?= =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=81=AE=E3=83=97=E3=83=AD=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=82=92=E5=89=8A=E9=99=A4=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + locales/index.d.ts | 4 ++ locales/ja-JP.yml | 1 + .../frontend/src/pages/settings/profiles.vue | 47 +++++++++++++++++++ packages/frontend/src/preferences/utility.ts | 40 +++++++++++----- packages/frontend/src/router.definition.ts | 4 ++ 6 files changed, 86 insertions(+), 11 deletions(-) create mode 100644 packages/frontend/src/pages/settings/profiles.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index b3655536b5..ddf4c4ecc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - Feat: マウスでもタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 +- Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 diff --git a/locales/index.d.ts b/locales/index.d.ts index e564b47270..281568a5fd 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5745,6 +5745,10 @@ export interface Locale extends ILocale { * 例: 「メインPC」、「スマホ」など */ "profileNameDescription2": string; + /** + * プロファイルの管理 + */ + "manageProfiles": string; }; "_preferencesBackup": { /** diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 7d2edf7194..f0512925f3 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1439,6 +1439,7 @@ _preferencesProfile: profileName: "プロファイル名" profileNameDescription: "このデバイスを識別する名前を設定してください。" profileNameDescription2: "例: 「メインPC」、「スマホ」など" + manageProfiles: "プロファイルの管理" _preferencesBackup: autoBackup: "自動バックアップ" diff --git a/packages/frontend/src/pages/settings/profiles.vue b/packages/frontend/src/pages/settings/profiles.vue new file mode 100644 index 0000000000..4804c11f7a --- /dev/null +++ b/packages/frontend/src/pages/settings/profiles.vue @@ -0,0 +1,47 @@ + + +
+ + + {{ i18n.ts.delete }} + +
+ + + + + + diff --git a/packages/frontend/src/preferences/utility.ts b/packages/frontend/src/preferences/utility.ts index adba908c3c..af5b178df6 100644 --- a/packages/frontend/src/preferences/utility.ts +++ b/packages/frontend/src/preferences/utility.ts @@ -74,12 +74,17 @@ export function getPreferencesProfileMenu(): MenuItem[] { action: () => { importProfile(); }, + }, { + type: 'divider', + }, { + type: 'link', + text: i18n.ts._preferencesProfile.manageProfiles + '...', + icon: 'ti ti-settings-cog', + to: '/settings/profiles', }]; if (prefer.s.devMode) { menu.push({ - type: 'divider', - }, { text: 'Copy profile as text', icon: 'ti ti-clipboard', action: () => { @@ -145,17 +150,30 @@ export async function cloudBackup() { }); } -export async function restoreFromCloudBackup() { - if ($i == null) return; - - // TODO: 更新日時でソートして取得したい +export async function listCloudBackups() { const keys = await misskeyApi('i/registry/keys', { scope: ['client', 'preferences', 'backups'], }); - if (_DEV_) console.log(keys); + return keys.map(k => ({ + name: k, + })); +} - if (keys.length === 0) { +export async function deleteCloudBackup(key: string) { + await os.apiWithDialog('i/registry/remove', { + scope: ['client', 'preferences', 'backups'], + key, + }); +} + +export async function restoreFromCloudBackup() { + if ($i == null) return; + + // TODO: 更新日時でソートしたい + const backups = await listCloudBackups(); + + if (backups.length === 0) { os.alert({ type: 'warning', title: i18n.ts._preferencesBackup.noBackupsFoundTitle, @@ -166,9 +184,9 @@ export async function restoreFromCloudBackup() { const select = await os.select({ title: i18n.ts._preferencesBackup.selectBackupToRestore, - items: keys.map(k => ({ - text: k, - value: k, + items: backups.map(backup => ({ + text: backup.name, + value: backup.name, })), }); if (select.canceled) return; diff --git a/packages/frontend/src/router.definition.ts b/packages/frontend/src/router.definition.ts index d8bdbb7d02..462b8e713f 100644 --- a/packages/frontend/src/router.definition.ts +++ b/packages/frontend/src/router.definition.ts @@ -180,6 +180,10 @@ export const ROUTE_DEF = [{ path: '/custom-css', name: 'preferences', component: page(() => import('@/pages/settings/custom-css.vue')), + }, { + path: '/profiles', + name: 'profiles', + component: page(() => import('@/pages/settings/profiles.vue')), }, { path: '/accounts', name: 'profile',