diff options
| author | dakkar <dakkar@thenautilus.net> | 2024-09-21 18:21:20 +0100 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2024-09-21 18:24:57 +0100 |
| commit | d3710f0872b8a0571bf0321aa98935acdc1c9408 (patch) | |
| tree | 37f50d35dfb7eac8f991da49af2be961267a0456 /packages | |
| parent | merge: fix: use i18n in settings/general.vue (!626) (diff) | |
| download | sharkey-d3710f0872b8a0571bf0321aa98935acdc1c9408.tar.gz sharkey-d3710f0872b8a0571bf0321aa98935acdc1c9408.tar.bz2 sharkey-d3710f0872b8a0571bf0321aa98935acdc1c9408.zip | |
maybe fix #510 - try to not edit visibility
the frontend part is pretty straightforward, the backend part is ugly
but it shouldn't make things worse than they already are
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/backend/src/core/NoteEditService.ts | 8 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkPostForm.vue | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/packages/backend/src/core/NoteEditService.ts b/packages/backend/src/core/NoteEditService.ts index 5ff0f26e2b..f42d14b466 100644 --- a/packages/backend/src/core/NoteEditService.ts +++ b/packages/backend/src/core/NoteEditService.ts @@ -247,6 +247,11 @@ export class NoteEditService implements OnApplicationShutdown { data.reply = undefined; } + // changing visibility on an edit is ill-defined, let's try to + // keep the same visibility as the original note + data.visibility = oldnote.visibility; + data.localOnly = oldnote.localOnly; + // チャンネル外にリプライしたら対象のスコープに合わせる // (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで) if (data.reply && data.channel && data.reply.channelId !== data.channel.id) { @@ -429,9 +434,6 @@ export class NoteEditService implements OnApplicationShutdown { if (data.cw !== oldnote.cw) { update.cw = data.cw; } - if (data.localOnly !== oldnote.localOnly) { - update.localOnly = data.localOnly; - } if (oldnote.hasPoll !== !!data.poll) { update.hasPoll = !!data.poll; } diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 2bc607fbb6..0afe184b90 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only </div> <div :class="$style.headerRight"> <template v-if="!(channel != null && fixed)"> - <button v-if="channel == null" ref="visibilityButton" v-click-anime v-tooltip="i18n.ts.visibility" :class="['_button', $style.headerRightItem, $style.visibility]" @click="setVisibility"> + <button v-if="channel == null" ref="visibilityButton" v-click-anime v-tooltip="i18n.ts.visibility" :class="['_button', $style.headerRightItem, $style.visibility]" @click="setVisibility" :disabled="editId != null"> <span v-if="visibility === 'public'"><i class="ti ti-world"></i></span> <span v-if="visibility === 'home'"><i class="ti ti-home"></i></span> <span v-if="visibility === 'followers'"><i class="ti ti-lock"></i></span> @@ -32,7 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only <span :class="$style.headerRightButtonText">{{ channel.name }}</span> </button> </template> - <button v-click-anime v-tooltip="i18n.ts._visibility.disableFederation" class="_button" :class="[$style.headerRightItem, { [$style.danger]: localOnly }]" :disabled="channel != null || visibility === 'specified'" @click="toggleLocalOnly"> + <button v-click-anime v-tooltip="i18n.ts._visibility.disableFederation" class="_button" :class="[$style.headerRightItem, { [$style.danger]: localOnly }]" :disabled="channel != null || visibility === 'specified' || editId != null" @click="toggleLocalOnly"> <span v-if="!localOnly"><i class="ti ti-rocket"></i></span> <span v-else><i class="ti ti-rocket-off"></i></span> </button> |