Skip to content
Snippets Groups Projects
Commit d3710f08 authored by dakkar's avatar dakkar
Browse files

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
parent bc02b4ae
No related branches found
No related tags found
No related merge requests found
...@@ -247,6 +247,11 @@ export class NoteEditService implements OnApplicationShutdown { ...@@ -247,6 +247,11 @@ export class NoteEditService implements OnApplicationShutdown {
data.reply = undefined; 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) { if (data.reply && data.channel && data.reply.channelId !== data.channel.id) {
...@@ -429,9 +434,6 @@ export class NoteEditService implements OnApplicationShutdown { ...@@ -429,9 +434,6 @@ export class NoteEditService implements OnApplicationShutdown {
if (data.cw !== oldnote.cw) { if (data.cw !== oldnote.cw) {
update.cw = data.cw; update.cw = data.cw;
} }
if (data.localOnly !== oldnote.localOnly) {
update.localOnly = data.localOnly;
}
if (oldnote.hasPoll !== !!data.poll) { if (oldnote.hasPoll !== !!data.poll) {
update.hasPoll = !!data.poll; update.hasPoll = !!data.poll;
} }
......
...@@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only ...@@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div> </div>
<div :class="$style.headerRight"> <div :class="$style.headerRight">
<template v-if="!(channel != null && fixed)"> <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 === 'public'"><i class="ti ti-world"></i></span>
<span v-if="visibility === 'home'"><i class="ti ti-home"></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> <span v-if="visibility === 'followers'"><i class="ti ti-lock"></i></span>
...@@ -32,7 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only ...@@ -32,7 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<span :class="$style.headerRightButtonText">{{ channel.name }}</span> <span :class="$style.headerRightButtonText">{{ channel.name }}</span>
</button> </button>
</template> </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-if="!localOnly"><i class="ti ti-rocket"></i></span>
<span v-else><i class="ti ti-rocket-off"></i></span> <span v-else><i class="ti ti-rocket-off"></i></span>
</button> </button>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment