compose: Remove draft older than 30 days.

This removes drafts older than 30 days as they become irrelevant
for the user. Those drafts are removed before populating them.

Fixes: #7602.
This commit is contained in:
Shubham Dhama
2018-02-15 22:08:31 +05:30
committed by Tim Abbott
parent 40958e0824
commit 7aeae688e7
4 changed files with 58 additions and 1 deletions

View File

@@ -160,6 +160,20 @@ exports.restore_draft = function (draft_id) {
$("#compose-textarea").data("draft-id", draft_id);
};
var DRAFT_LIFETIME = 30;
function remove_old_drafts() {
var old_date = new Date().setDate(new Date().getDate() - DRAFT_LIFETIME);
var drafts = draft_model.get();
_.each(drafts, function (draft, id) {
if (draft.updatedAt < old_date) {
draft_model.deleteDraft(id);
}
});
}
// Exporting for testing purpose
exports.remove_old_drafts = remove_old_drafts;
exports.setup_page = function (callback) {
function setup_event_handlers() {
$(".restore-draft").on("click", function (e) {
@@ -262,7 +276,10 @@ exports.setup_page = function (callback) {
function _populate_and_fill() {
$('#drafts_table').empty();
var drafts = format_drafts(draft_model.get());
var rendered = templates.render('draft_table_body', { drafts: drafts });
var rendered = templates.render('draft_table_body',{
drafts: drafts,
draft_lifetime: DRAFT_LIFETIME,
});
$('#drafts_table').append(rendered);
if ($("#drafts_table .draft-row").length > 0) {
$('#drafts_table .no-drafts').hide();
@@ -280,6 +297,8 @@ exports.setup_page = function (callback) {
_populate_and_fill();
});
}
remove_old_drafts();
populate_and_fill();
};