Merge branch 'develop' into enh-14794
This commit is contained in:
commit
b67eb4f13a
|
@ -8,6 +8,7 @@
|
||||||
### General
|
### General
|
||||||
- Feat: コンテンツの表示にログインを必須にできるように
|
- Feat: コンテンツの表示にログインを必須にできるように
|
||||||
- Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように
|
- Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように
|
||||||
|
- Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 )
|
||||||
- Enhance: 依存関係の更新
|
- Enhance: 依存関係の更新
|
||||||
- Enhance: l10nの更新
|
- Enhance: l10nの更新
|
||||||
|
|
||||||
|
@ -28,6 +29,7 @@
|
||||||
- Enhance: 過去に送信したフォローリクエストを確認できるように
|
- Enhance: 過去に送信したフォローリクエストを確認できるように
|
||||||
(Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663)
|
(Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663)
|
||||||
- Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 )
|
- Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 )
|
||||||
|
- Enhance: リノートメニューに「リノートの詳細」を追加
|
||||||
- Enhance: 投稿フォームの設定メニューを改良
|
- Enhance: 投稿フォームの設定メニューを改良
|
||||||
- 投稿フォームをリセットできるように
|
- 投稿フォームをリセットできるように
|
||||||
- 文字数カウントを復活
|
- 文字数カウントを復活
|
||||||
|
@ -42,6 +44,8 @@
|
||||||
- Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正
|
- Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正
|
||||||
- Fix: 画面幅が狭い環境でデザインが崩れる問題を修正
|
- Fix: 画面幅が狭い環境でデザインが崩れる問題を修正
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815)
|
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815)
|
||||||
|
- Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように
|
||||||
|
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725)
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Enhance: DockerのNode.jsを22.11.0に更新
|
- Enhance: DockerのNode.jsを22.11.0に更新
|
||||||
|
|
|
@ -2362,6 +2362,10 @@ export interface Locale extends ILocale {
|
||||||
* 詳細
|
* 詳細
|
||||||
*/
|
*/
|
||||||
"details": string;
|
"details": string;
|
||||||
|
/**
|
||||||
|
* リノートの詳細
|
||||||
|
*/
|
||||||
|
"renoteDetails": string;
|
||||||
/**
|
/**
|
||||||
* 絵文字を選択
|
* 絵文字を選択
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -586,6 +586,7 @@ masterVolume: "マスター音量"
|
||||||
notUseSound: "サウンドを出力しない"
|
notUseSound: "サウンドを出力しない"
|
||||||
useSoundOnlyWhenActive: "Misskeyがアクティブな時のみサウンドを出力する"
|
useSoundOnlyWhenActive: "Misskeyがアクティブな時のみサウンドを出力する"
|
||||||
details: "詳細"
|
details: "詳細"
|
||||||
|
renoteDetails: "リノートの詳細"
|
||||||
chooseEmoji: "絵文字を選択"
|
chooseEmoji: "絵文字を選択"
|
||||||
unableToProcess: "操作を完了できません"
|
unableToProcess: "操作を完了できません"
|
||||||
recentUsed: "最近使用"
|
recentUsed: "最近使用"
|
||||||
|
|
|
@ -72,7 +72,7 @@ export class AnnouncementService {
|
||||||
updatedAt: null,
|
updatedAt: null,
|
||||||
title: values.title,
|
title: values.title,
|
||||||
text: values.text,
|
text: values.text,
|
||||||
imageUrl: values.imageUrl,
|
imageUrl: values.imageUrl || null,
|
||||||
icon: values.icon,
|
icon: values.icon,
|
||||||
display: values.display,
|
display: values.display,
|
||||||
forExistingUsers: values.forExistingUsers,
|
forExistingUsers: values.forExistingUsers,
|
||||||
|
|
|
@ -55,7 +55,7 @@ export const paramDef = {
|
||||||
properties: {
|
properties: {
|
||||||
title: { type: 'string', minLength: 1 },
|
title: { type: 'string', minLength: 1 },
|
||||||
text: { type: 'string', minLength: 1 },
|
text: { type: 'string', minLength: 1 },
|
||||||
imageUrl: { type: 'string', nullable: true, minLength: 1 },
|
imageUrl: { type: 'string', nullable: true, minLength: 0 },
|
||||||
icon: { type: 'string', enum: ['info', 'warning', 'error', 'success'], default: 'info' },
|
icon: { type: 'string', enum: ['info', 'warning', 'error', 'success'], default: 'info' },
|
||||||
display: { type: 'string', enum: ['normal', 'banner', 'dialog'], default: 'normal' },
|
display: { type: 'string', enum: ['normal', 'banner', 'dialog'], default: 'normal' },
|
||||||
forExistingUsers: { type: 'boolean', default: false },
|
forExistingUsers: { type: 'boolean', default: false },
|
||||||
|
@ -76,7 +76,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
||||||
updatedAt: null,
|
updatedAt: null,
|
||||||
title: ps.title,
|
title: ps.title,
|
||||||
text: ps.text,
|
text: ps.text,
|
||||||
imageUrl: ps.imageUrl,
|
/* eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- 空の文字列の場合、nullを渡すようにするため */
|
||||||
|
imageUrl: ps.imageUrl || null,
|
||||||
icon: ps.icon,
|
icon: ps.icon,
|
||||||
display: ps.display,
|
display: ps.display,
|
||||||
forExistingUsers: ps.forExistingUsers,
|
forExistingUsers: ps.forExistingUsers,
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
"./node_modules"
|
"./node_modules"
|
||||||
],
|
],
|
||||||
"types": [
|
"types": [
|
||||||
"vite/client",
|
"vite/client"
|
||||||
],
|
],
|
||||||
"lib": [
|
"lib": [
|
||||||
"esnext",
|
"esnext",
|
||||||
|
@ -44,8 +44,9 @@
|
||||||
},
|
},
|
||||||
"compileOnSave": false,
|
"compileOnSave": false,
|
||||||
"include": [
|
"include": [
|
||||||
"./**/*.ts",
|
"./src/**/*.ts",
|
||||||
"./**/*.vue"
|
"./src/**/*.vue",
|
||||||
|
"./@types/**/*.ts"
|
||||||
],
|
],
|
||||||
"exclude": [
|
"exclude": [
|
||||||
".storybook/**/*"
|
".storybook/**/*"
|
||||||
|
|
|
@ -187,6 +187,7 @@ import MkUrlPreview from '@/components/MkUrlPreview.vue';
|
||||||
import MkInstanceTicker from '@/components/MkInstanceTicker.vue';
|
import MkInstanceTicker from '@/components/MkInstanceTicker.vue';
|
||||||
import { pleaseLogin, type OpenOnRemoteOptions } from '@/scripts/please-login.js';
|
import { pleaseLogin, type OpenOnRemoteOptions } from '@/scripts/please-login.js';
|
||||||
import { checkWordMute } from '@/scripts/check-word-mute.js';
|
import { checkWordMute } from '@/scripts/check-word-mute.js';
|
||||||
|
import { notePage } from '@/filters/note.js';
|
||||||
import { userPage } from '@/filters/user.js';
|
import { userPage } from '@/filters/user.js';
|
||||||
import number from '@/filters/number.js';
|
import number from '@/filters/number.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
|
@ -566,15 +567,24 @@ function showRenoteMenu(): void {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const renoteDetailsMenu: MenuItem = {
|
||||||
|
type: 'link',
|
||||||
|
text: i18n.ts.renoteDetails,
|
||||||
|
icon: 'ti ti-info-circle',
|
||||||
|
to: notePage(note.value),
|
||||||
|
};
|
||||||
|
|
||||||
if (isMyRenote) {
|
if (isMyRenote) {
|
||||||
pleaseLogin({ openOnRemote: pleaseLoginContext.value });
|
pleaseLogin({ openOnRemote: pleaseLoginContext.value });
|
||||||
os.popupMenu([
|
os.popupMenu([
|
||||||
|
renoteDetailsMenu,
|
||||||
getCopyNoteLinkMenu(note.value, i18n.ts.copyLinkRenote),
|
getCopyNoteLinkMenu(note.value, i18n.ts.copyLinkRenote),
|
||||||
{ type: 'divider' },
|
{ type: 'divider' },
|
||||||
getUnrenote(),
|
getUnrenote(),
|
||||||
], renoteTime.value);
|
], renoteTime.value);
|
||||||
} else {
|
} else {
|
||||||
os.popupMenu([
|
os.popupMenu([
|
||||||
|
renoteDetailsMenu,
|
||||||
getCopyNoteLinkMenu(note.value, i18n.ts.copyLinkRenote),
|
getCopyNoteLinkMenu(note.value, i18n.ts.copyLinkRenote),
|
||||||
{ type: 'divider' },
|
{ type: 'divider' },
|
||||||
getAbuseNoteMenu(note.value, i18n.ts.reportAbuseRenote),
|
getAbuseNoteMenu(note.value, i18n.ts.reportAbuseRenote),
|
||||||
|
|
|
@ -45,8 +45,11 @@
|
||||||
},
|
},
|
||||||
"compileOnSave": false,
|
"compileOnSave": false,
|
||||||
"include": [
|
"include": [
|
||||||
"./**/*.ts",
|
"./src/**/*.ts",
|
||||||
"./**/*.vue"
|
"./src/**/*.vue",
|
||||||
|
"./test/**/*.ts",
|
||||||
|
"./test/**/*.vue",
|
||||||
|
"./@types/**/*.ts"
|
||||||
],
|
],
|
||||||
"exclude": [
|
"exclude": [
|
||||||
".storybook/**/*"
|
".storybook/**/*"
|
||||||
|
|
Loading…
Reference in New Issue