add alternate gravestone that keeps post content on deletes when using websockets
This commit is contained in:
parent
88c56b553d
commit
0474d6dd98
7 changed files with 39 additions and 5 deletions
|
@ -17,7 +17,8 @@
|
||||||
- rename "repeats" to "boosts"
|
- rename "repeats" to "boosts"
|
||||||
- raise limits:
|
- raise limits:
|
||||||
- polls can now have up to 20 options instead of 4
|
- polls can now have up to 20 options instead of 4
|
||||||
- polls can now last anywhere from 1 second to 1000 yearss
|
- polls can now last anywhere from 1 second to 1000 years
|
||||||
|
- alternate gravestone for websocket users that still shows post content but removes buttons
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -199,7 +199,22 @@
|
||||||
>
|
>
|
||||||
{{ $t('settings.useStreamingApi') }}
|
{{ $t('settings.useStreamingApi') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
|
<ul
|
||||||
|
class="setting-list suboptions"
|
||||||
|
:class="[{disabled: !useStreamingApi}]"
|
||||||
|
>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting
|
||||||
|
path="deletePostsStreaming"
|
||||||
|
:disabled="!useStreamingApi"
|
||||||
|
expert="1"
|
||||||
|
>
|
||||||
|
{{ $t('settings.deletePostsStreaming') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting
|
<BooleanSetting
|
||||||
path="virtualScrolling"
|
path="virtualScrolling"
|
||||||
|
|
|
@ -189,6 +189,9 @@ const Status = {
|
||||||
deleted () {
|
deleted () {
|
||||||
return this.statusoid.deleted
|
return this.statusoid.deleted
|
||||||
},
|
},
|
||||||
|
getDeletedWSSOption () {
|
||||||
|
return this.mergedConfig.deletePostsStreaming
|
||||||
|
},
|
||||||
repeaterStyle () {
|
repeaterStyle () {
|
||||||
const user = this.statusoid.user
|
const user = this.statusoid.user
|
||||||
const highlight = this.mergedConfig.highlight
|
const highlight = this.mergedConfig.highlight
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="!deleted"
|
v-if="!deleted || (deleted && !getDeletedWSSOption)"
|
||||||
:class="[userClass, { highlighted: userStyle, '-repeat': retweet && !inConversation }]"
|
:class="[userClass, { highlighted: userStyle, '-repeat': retweet && !inConversation }]"
|
||||||
:style="[ userStyle ]"
|
:style="[ userStyle ]"
|
||||||
class="status-container"
|
class="status-container"
|
||||||
|
@ -194,10 +194,16 @@
|
||||||
:to="{ name: 'conversation', params: { id: status.id } }"
|
:to="{ name: 'conversation', params: { id: status.id } }"
|
||||||
>
|
>
|
||||||
<Timeago
|
<Timeago
|
||||||
|
v-if="!deleted"
|
||||||
:time="status.created_at"
|
:time="status.created_at"
|
||||||
:with-direction="!compact"
|
:with-direction="!compact"
|
||||||
:auto-update="60"
|
:auto-update="60"
|
||||||
/>
|
/>
|
||||||
|
<span
|
||||||
|
v-else
|
||||||
|
>
|
||||||
|
DELETED
|
||||||
|
</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
<span
|
<span
|
||||||
v-if="status.visibility"
|
v-if="status.visibility"
|
||||||
|
@ -205,13 +211,14 @@
|
||||||
:title="visibilityLocalized"
|
:title="visibilityLocalized"
|
||||||
>
|
>
|
||||||
<FAIcon
|
<FAIcon
|
||||||
|
v-if="!deleted"
|
||||||
fixed-width
|
fixed-width
|
||||||
class="fa-scale-110"
|
class="fa-scale-110"
|
||||||
:icon="visibilityIcon(status.visibility)"
|
:icon="visibilityIcon(status.visibility)"
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
<button
|
<button
|
||||||
v-if="expandable && !isPreview"
|
v-if="expandable && !isPreview && !deleted"
|
||||||
class="button-unstyled"
|
class="button-unstyled"
|
||||||
:title="$t('status.expand')"
|
:title="$t('status.expand')"
|
||||||
@click.prevent="toggleExpanded"
|
@click.prevent="toggleExpanded"
|
||||||
|
@ -456,30 +463,35 @@
|
||||||
class="status-actions"
|
class="status-actions"
|
||||||
>
|
>
|
||||||
<reply-button
|
<reply-button
|
||||||
|
v-if="!deleted"
|
||||||
:replying="replying"
|
:replying="replying"
|
||||||
:status="status"
|
:status="status"
|
||||||
@toggle="toggleReplying"
|
@toggle="toggleReplying"
|
||||||
/>
|
/>
|
||||||
<quote-button
|
<quote-button
|
||||||
|
v-if="!deleted"
|
||||||
:visibility="status.visibility"
|
:visibility="status.visibility"
|
||||||
:quoting="quoting"
|
:quoting="quoting"
|
||||||
:status="status"
|
:status="status"
|
||||||
@toggle="toggleQuoting"
|
@toggle="toggleQuoting"
|
||||||
/>
|
/>
|
||||||
<retweet-button
|
<retweet-button
|
||||||
|
v-if="!deleted"
|
||||||
:visibility="status.visibility"
|
:visibility="status.visibility"
|
||||||
:logged-in="loggedIn"
|
:logged-in="loggedIn"
|
||||||
:status="status"
|
:status="status"
|
||||||
/>
|
/>
|
||||||
<favorite-button
|
<favorite-button
|
||||||
|
v-if="!deleted"
|
||||||
:logged-in="loggedIn"
|
:logged-in="loggedIn"
|
||||||
:status="status"
|
:status="status"
|
||||||
/>
|
/>
|
||||||
<ReactButton
|
<ReactButton
|
||||||
v-if="loggedIn"
|
v-if="!deleted && loggedIn"
|
||||||
:status="status"
|
:status="status"
|
||||||
/>
|
/>
|
||||||
<extra-buttons
|
<extra-buttons
|
||||||
|
v-if="!deleted"
|
||||||
:status="status"
|
:status="status"
|
||||||
@on-error="showError"
|
@on-error="showError"
|
||||||
@on-success="clearError"
|
@on-success="clearError"
|
||||||
|
@ -488,7 +500,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else-if="deleted"
|
||||||
class="gravestone"
|
class="gravestone"
|
||||||
>
|
>
|
||||||
<div class="left-side">
|
<div class="left-side">
|
||||||
|
|
|
@ -544,6 +544,7 @@
|
||||||
"delete_account_description": "Permanently delete your data and deactivate your account.",
|
"delete_account_description": "Permanently delete your data and deactivate your account.",
|
||||||
"delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.",
|
"delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.",
|
||||||
"delete_account_instructions": "Type your password in the input below to confirm account deletion.",
|
"delete_account_instructions": "Type your password in the input below to confirm account deletion.",
|
||||||
|
"deletePostsStreaming": "Remove posts from timeline if a delete request is received",
|
||||||
"disable_sticky_headers": "Don't stick column headers to top of the screen",
|
"disable_sticky_headers": "Don't stick column headers to top of the screen",
|
||||||
"discoverable": "Allow discovery of this account in search results and other services",
|
"discoverable": "Allow discovery of this account in search results and other services",
|
||||||
"domain_mutes": "Domains",
|
"domain_mutes": "Domains",
|
||||||
|
|
|
@ -78,6 +78,7 @@ export const defaultState = {
|
||||||
interfaceLanguage: browserLocale,
|
interfaceLanguage: browserLocale,
|
||||||
hideScopeNotice: false,
|
hideScopeNotice: false,
|
||||||
useStreamingApi: false,
|
useStreamingApi: false,
|
||||||
|
deletePostsStreaming: true,
|
||||||
sidebarRight: undefined, // instance default
|
sidebarRight: undefined, // instance default
|
||||||
widenTimeline: undefined, // instance default
|
widenTimeline: undefined, // instance default
|
||||||
subjectLineBehavior: undefined, // instance default
|
subjectLineBehavior: undefined, // instance default
|
||||||
|
|
|
@ -77,6 +77,7 @@ const defaultState = {
|
||||||
soundOnNotifVolume: 0.2,
|
soundOnNotifVolume: 0.2,
|
||||||
soundOnNotifCustom: '',
|
soundOnNotifCustom: '',
|
||||||
boostsFollowDefVis: false,
|
boostsFollowDefVis: false,
|
||||||
|
deletePostsStreaming: true,
|
||||||
renderMisskeyMarkdown: true,
|
renderMisskeyMarkdown: true,
|
||||||
renderMfmOnHover: false,
|
renderMfmOnHover: false,
|
||||||
conversationDisplay: 'linear',
|
conversationDisplay: 'linear',
|
||||||
|
|
Loading…
Add table
Reference in a new issue