From bc634406dc21ec38f8346826d69ec385f0da52ee Mon Sep 17 00:00:00 2001 From: Jangho Seo Date: Sat, 3 Aug 2024 20:12:27 +0900 Subject: [PATCH 1/2] note edit fix (backend) --- packages/backend/src/core/NoteUpdateService.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/backend/src/core/NoteUpdateService.ts b/packages/backend/src/core/NoteUpdateService.ts index e130966dfb4e..53dd9e64572d 100644 --- a/packages/backend/src/core/NoteUpdateService.ts +++ b/packages/backend/src/core/NoteUpdateService.ts @@ -97,7 +97,7 @@ export class NoteUpdateService implements OnApplicationShutdown { const choiceTokens = data.poll && data.poll.choices ? concat(data.poll.choices.map((choice: string) => mfm.parse(choice))) : []; - + const combinedTokens = tokens.concat(cwTokens).concat(choiceTokens); tags = data.apHashtags ?? extractHashtags(combinedTokens); @@ -124,6 +124,7 @@ export class NoteUpdateService implements OnApplicationShutdown { if (data.updatedAt === null || data.updatedAt === undefined) data.updatedAt = new Date(); const updatedAtHistory = note.updatedAtHistory ?? []; + const noteEditHistory = note.noteEditHistory ?? []; const values = new MiNote({ updatedAt: data.updatedAt, @@ -135,7 +136,7 @@ export class NoteUpdateService implements OnApplicationShutdown { emojis: emojis, attachedFileTypes: data.files ? data.files.map(file => file.type) : [], updatedAtHistory: [...updatedAtHistory, data.updatedAt], - noteEditHistory: [...note.noteEditHistory, ((note.cw ? note.cw + '\n' : '') + note.text as string)], + noteEditHistory: [...noteEditHistory, ((note.cw ? note.cw + '\n' : '') + note.text as string)], }); try { @@ -181,7 +182,7 @@ export class NoteUpdateService implements OnApplicationShutdown { }); await transactionalEntitymanager.insert(MiPoll, poll); - } + } }); } else if (note.hasPoll && !values.hasPoll) { // start transaction @@ -289,4 +290,4 @@ export class NoteUpdateService implements OnApplicationShutdown { public onApplicationShutdown(signal?: string | undefined): void { this.dispose(); } -} \ No newline at end of file +} From d9133ab74c0981c58c88cb65f68e8bef8dae0b66 Mon Sep 17 00:00:00 2001 From: Jangho Seo Date: Sat, 3 Aug 2024 21:57:52 +0900 Subject: [PATCH 2/2] fix frontend --- packages/frontend/src/components/MkPostForm.vue | 5 ++++- .../frontend/src/components/MkPostFormDialog.vue | 1 + packages/frontend/src/scripts/get-note-menu.ts | 15 +-------------- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 1fee09581b89..b3b65190bbf9 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -153,6 +153,7 @@ const props = withDefaults(defineProps<{ autofocus?: boolean; freezeAfterPosted?: boolean; mock?: boolean; + editMode?: boolean; }>(), { initialVisibleUsers: () => [], autofocus: true, @@ -773,6 +774,7 @@ async function post(ev?: MouseEvent) { visibility: visibility.value, visibleUserIds: visibility.value === 'specified' ? visibleUsers.value.map(u => u.id) : undefined, reactionAcceptance: reactionAcceptance.value, + noteId: props.editMode ? props.initialNote?.id : undefined, }; if (withHashtags.value && hashtags.value && hashtags.value.trim() !== '') { @@ -809,7 +811,8 @@ async function post(ev?: MouseEvent) { } posting.value = true; - misskeyApi('notes/create', postData, token).then(() => { + const endpoint = props.editMode ? 'notes/update' : 'notes/create'; + misskeyApi(endpoint, postData, token).then(() => { if (props.freezeAfterPosted) { posted.value = true; } else { diff --git a/packages/frontend/src/components/MkPostFormDialog.vue b/packages/frontend/src/components/MkPostFormDialog.vue index 9533846f731d..26eacf816918 100644 --- a/packages/frontend/src/components/MkPostFormDialog.vue +++ b/packages/frontend/src/components/MkPostFormDialog.vue @@ -32,6 +32,7 @@ const props = withDefaults(defineProps<{ instant?: boolean; fixed?: boolean; autofocus?: boolean; + editMode?: boolean; }>(), { initialLocalOnly: undefined, }); diff --git a/packages/frontend/src/scripts/get-note-menu.ts b/packages/frontend/src/scripts/get-note-menu.ts index 640198ee2fcc..8445856e63a0 100644 --- a/packages/frontend/src/scripts/get-note-menu.ts +++ b/packages/frontend/src/scripts/get-note-menu.ts @@ -218,20 +218,7 @@ export function getNoteMenu(props: { text: i18n.ts.editConfirm, }).then(({canceled}) => { if (canceled) return; - - misskeyApi('notes/update', { - noteId: appearNote.id, - text: (appearNote.text as string), - fileIds: appearNote.fileIds, - //mediaIds: appearNote.mediaIds, - poll: (appearNote.poll ? { - expiresAt: (appearNote.poll.expiresAt ? parseInt(appearNote.poll.expiresAt) : undefined), - expiredAfter: undefined, - multiple: appearNote.poll.multiple, - choices: appearNote.poll.choices.map((choice) => { return choice.text }), - } : undefined),//(appearNote.poll), - cw: (appearNote.cw ?? null), - }); + os.post({ initialNote: appearNote, renote: appearNote.renote, reply: appearNote.reply, channel: appearNote.channel , editMode: true }); }) }