mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-08 23:23:08 +02:00
feat: フォルダーやファイルでもIDをコピーできるように (#11189)
* feat: フォルダーやファイルでもIDをコピーできるように close #11188 * docs: update CHANGELOG.md
This commit is contained in:
parent
36d5deeb61
commit
3796da6836
5 changed files with 34 additions and 3 deletions
|
@ -24,6 +24,7 @@
|
||||||
- 画像を動画と同様に簡単に隠せるように
|
- 画像を動画と同様に簡単に隠せるように
|
||||||
- オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外)
|
- オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外)
|
||||||
- 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように
|
- 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように
|
||||||
|
- フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように
|
||||||
- Fix: サーバーメトリクスが90度傾いている
|
- Fix: サーバーメトリクスが90度傾いている
|
||||||
- Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正
|
- Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正
|
||||||
- Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正
|
- Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正
|
||||||
|
|
2
locales/index.d.ts
vendored
2
locales/index.d.ts
vendored
|
@ -57,6 +57,8 @@ export interface Locale {
|
||||||
"copyUsername": string;
|
"copyUsername": string;
|
||||||
"copyUserId": string;
|
"copyUserId": string;
|
||||||
"copyNoteId": string;
|
"copyNoteId": string;
|
||||||
|
"copyFileId": string;
|
||||||
|
"copyFolderId": string;
|
||||||
"searchUser": string;
|
"searchUser": string;
|
||||||
"reply": string;
|
"reply": string;
|
||||||
"loadMore": string;
|
"loadMore": string;
|
||||||
|
|
|
@ -54,6 +54,8 @@ copyRSS: "RSSをコピー"
|
||||||
copyUsername: "ユーザー名をコピー"
|
copyUsername: "ユーザー名をコピー"
|
||||||
copyUserId: "ユーザーIDをコピー"
|
copyUserId: "ユーザーIDをコピー"
|
||||||
copyNoteId: "ノートIDをコピー"
|
copyNoteId: "ノートIDをコピー"
|
||||||
|
copyFileId: "ファイルIDをコピー"
|
||||||
|
copyFolderId: "フォルダーIDをコピー"
|
||||||
searchUser: "ユーザーを検索"
|
searchUser: "ユーザーを検索"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
loadMore: "もっと見る"
|
loadMore: "もっと見る"
|
||||||
|
|
|
@ -33,6 +33,7 @@ import * as os from '@/os';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
import { claimAchievement } from '@/scripts/achievements';
|
import { claimAchievement } from '@/scripts/achievements';
|
||||||
|
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
folder: Misskey.entities.DriveFolder;
|
folder: Misskey.entities.DriveFolder;
|
||||||
|
@ -244,7 +245,8 @@ function setAsUploadFolder() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function onContextmenu(ev: MouseEvent) {
|
function onContextmenu(ev: MouseEvent) {
|
||||||
os.contextMenu([{
|
let menu;
|
||||||
|
menu = [{
|
||||||
text: i18n.ts.openInWindow,
|
text: i18n.ts.openInWindow,
|
||||||
icon: 'ti ti-app-window',
|
icon: 'ti ti-app-window',
|
||||||
action: () => {
|
action: () => {
|
||||||
|
@ -262,7 +264,17 @@ function onContextmenu(ev: MouseEvent) {
|
||||||
icon: 'ti ti-trash',
|
icon: 'ti ti-trash',
|
||||||
danger: true,
|
danger: true,
|
||||||
action: deleteFolder,
|
action: deleteFolder,
|
||||||
}], ev);
|
}];
|
||||||
|
if (defaultStore.state.devMode) {
|
||||||
|
menu = menu.concat([null, {
|
||||||
|
icon: 'ti ti-id',
|
||||||
|
text: i18n.ts.copyFolderId,
|
||||||
|
action: () => {
|
||||||
|
copyToClipboard(props.folder.id);
|
||||||
|
},
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
os.contextMenu(menu, ev);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import { i18n } from '@/i18n';
|
||||||
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { MenuItem } from '@/types/menu';
|
import { MenuItem } from '@/types/menu';
|
||||||
|
import { defaultStore } from '@/store';
|
||||||
|
|
||||||
function rename(file: Misskey.entities.DriveFile) {
|
function rename(file: Misskey.entities.DriveFile) {
|
||||||
os.inputText({
|
os.inputText({
|
||||||
|
@ -69,7 +70,8 @@ async function deleteFile(file: Misskey.entities.DriveFile) {
|
||||||
|
|
||||||
export function getDriveFileMenu(file: Misskey.entities.DriveFile, folder?: Misskey.entities.DriveFolder | null): MenuItem[] {
|
export function getDriveFileMenu(file: Misskey.entities.DriveFile, folder?: Misskey.entities.DriveFolder | null): MenuItem[] {
|
||||||
const isImage = file.type.startsWith('image/');
|
const isImage = file.type.startsWith('image/');
|
||||||
return [{
|
let menu;
|
||||||
|
menu = [{
|
||||||
text: i18n.ts.rename,
|
text: i18n.ts.rename,
|
||||||
icon: 'ti ti-forms',
|
icon: 'ti ti-forms',
|
||||||
action: () => rename(file),
|
action: () => rename(file),
|
||||||
|
@ -111,4 +113,16 @@ export function getDriveFileMenu(file: Misskey.entities.DriveFile, folder?: Miss
|
||||||
danger: true,
|
danger: true,
|
||||||
action: () => deleteFile(file),
|
action: () => deleteFile(file),
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
if (defaultStore.state.devMode) {
|
||||||
|
menu = menu.concat([null, {
|
||||||
|
icon: 'ti ti-id',
|
||||||
|
text: i18n.ts.copyFileId,
|
||||||
|
action: () => {
|
||||||
|
copyToClipboard(file.id);
|
||||||
|
},
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue