summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarie <github@yuugi.dev>2024-10-03 17:45:26 +0000
committerMarie <github@yuugi.dev>2024-10-03 17:45:26 +0000
commitf6e0a040537562c35f176c2a2fcefc3552deb0f3 (patch)
tree1be82b4010ae044ddb8457a251dfaefce17bdc6a
parentmerge: fix #332 - classic view navbar now respects "side (icon only)" (!630) (diff)
parentfix linting (diff)
downloadsharkey-f6e0a040537562c35f176c2a2fcefc3552deb0f3.tar.gz
sharkey-f6e0a040537562c35f176c2a2fcefc3552deb0f3.tar.bz2
sharkey-f6e0a040537562c35f176c2a2fcefc3552deb0f3.zip
merge: maybe fix #510 - try to not edit visibility (!631)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/631 Closes #510 Approved-by: fEmber <acomputerdog@gmail.com> Approved-by: Marie <github@yuugi.dev>
-rw-r--r--packages/backend/src/core/NoteEditService.ts8
-rw-r--r--packages/frontend/src/components/MkPostForm.vue4
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..dc3f3aa94c 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]" :disabled="editId != null" @click="setVisibility">
<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>