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>
This commit is contained in:
Marie 2024-10-03 17:45:26 +00:00
commit f6e0a04053
2 changed files with 7 additions and 5 deletions

View file

@ -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;
}

View file

@ -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>