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:
aditya.chaudhary1558@gmail.com 2024-11-02 14:28:44 +05:30
parent c032bd9e78
commit c2cccc5ce2
5 changed files with 1 additions and 51 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -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();