mirror of https://github.com/zulip/zulip.git
drafts: Remove feature for discarding drafts after 30 days.
This commit helps in removal of all the code and documentation related to 30-day auto removal of draft that are saved. Fixes #32176.
This commit is contained in:
parent
c032bd9e78
commit
c2cccc5ce2
|
@ -3,7 +3,7 @@
|
|||
Zulip automatically saves the content of your message as a draft when you close
|
||||
the compose box, ensuring that you never lose your work. When you start
|
||||
composing, the most recently edited draft for the conversation you are composing
|
||||
to automatically appears in the compose box. Drafts are saved for 30 days.
|
||||
to automatically appears in the compose box.
|
||||
|
||||
!!! warn ""
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import {subDays} from "date-fns";
|
||||
import $ from "jquery";
|
||||
import _ from "lodash";
|
||||
import assert from "minimalistic-assert";
|
||||
|
@ -142,7 +141,6 @@ export const draft_model = (function () {
|
|||
// TODO/compatibility: This can be deleted once servers can no longer
|
||||
// directly upgrade from Zulip 6.0beta1 and earlier development branch where the bug was present,
|
||||
// since we expect bugged drafts will have either been run through
|
||||
// this code or else been deleted after 30 (DRAFT_LIFETIME) days.
|
||||
if (draft.topic === undefined) {
|
||||
draft.topic = "";
|
||||
}
|
||||
|
@ -457,8 +455,6 @@ export function rewire_update_draft(value: typeof update_draft): void {
|
|||
update_draft = value;
|
||||
}
|
||||
|
||||
export const DRAFT_LIFETIME = 30;
|
||||
|
||||
export function current_recipient_data(): {
|
||||
stream_name: string | undefined;
|
||||
topic: string | undefined;
|
||||
|
@ -558,16 +554,6 @@ export function get_last_restorable_draft_based_on_compose_state():
|
|||
.findLast((draft) => !draft.is_sending_saving && draft.drafts_version >= 1);
|
||||
}
|
||||
|
||||
export function remove_old_drafts(): void {
|
||||
const old_date = subDays(new Date(), DRAFT_LIFETIME).getTime();
|
||||
const drafts = draft_model.get();
|
||||
for (const [id, draft] of Object.entries(drafts)) {
|
||||
if (draft.updatedAt !== undefined && draft.updatedAt < old_date) {
|
||||
draft_model.deleteDraft(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type FormattedDraft =
|
||||
| {
|
||||
is_stream: true;
|
||||
|
@ -665,8 +651,6 @@ export function format_draft(draft: LocalStorageDraftWithId): FormattedDraft | u
|
|||
}
|
||||
|
||||
export function initialize(): void {
|
||||
remove_old_drafts();
|
||||
|
||||
// It's possible that drafts will get still have
|
||||
// `is_sending_saving` set to true if the page was
|
||||
// refreshed in the middle of sending a message. We
|
||||
|
|
|
@ -162,7 +162,6 @@ export function launch() {
|
|||
narrow_drafts_header,
|
||||
narrow_drafts,
|
||||
other_drafts,
|
||||
draft_lifetime: drafts.DRAFT_LIFETIME,
|
||||
});
|
||||
const $drafts_table = $("#drafts_table");
|
||||
$drafts_table.append($(rendered));
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
<div class="removed-drafts-message">
|
||||
{{t "Drafts are not synced to other devices and browsers." }}
|
||||
<br />
|
||||
{{#tr}}Drafts older than <strong>{draft_lifetime}</strong> days are automatically removed.{{/tr}}
|
||||
</div>
|
||||
<div class="delete-drafts-group">
|
||||
<div class="delete-selected-drafts-button-container">
|
||||
|
|
|
@ -265,38 +265,6 @@ test("initialize", ({override_rewire}) => {
|
|||
drafts_overlay_ui.initialize();
|
||||
});
|
||||
|
||||
test("remove_old_drafts", ({override_rewire}) => {
|
||||
const draft_3 = {
|
||||
topic: "topic",
|
||||
type: "stream",
|
||||
content: "Test stream message",
|
||||
updatedAt: Date.now(),
|
||||
is_sending_saving: false,
|
||||
drafts_version: 1,
|
||||
};
|
||||
const draft_4 = {
|
||||
private_message_recipient: "aaron@zulip.com",
|
||||
reply_to: "aaron@zulip.com",
|
||||
type: "private",
|
||||
content: "Test direct message",
|
||||
updatedAt: new Date().setDate(-30),
|
||||
is_sending_saving: false,
|
||||
drafts_version: 1,
|
||||
};
|
||||
const draft_model = drafts.draft_model;
|
||||
const ls = localstorage();
|
||||
const data = {id3: draft_3, id4: draft_4};
|
||||
ls.set("drafts", data);
|
||||
assert.deepEqual(draft_model.get(), data);
|
||||
|
||||
const $unread_count = $("<unread-count-stub>");
|
||||
$(".top_left_drafts").set_find_results(".unread_count", $unread_count);
|
||||
override_rewire(drafts, "update_compose_draft_count", noop);
|
||||
|
||||
drafts.remove_old_drafts();
|
||||
assert.deepEqual(draft_model.get(), {id3: draft_3});
|
||||
});
|
||||
|
||||
test("update_draft", ({override, override_rewire}) => {
|
||||
compose_state.set_message_type(undefined);
|
||||
let draft_id = drafts.update_draft();
|
||||
|
|
Loading…
Reference in New Issue