Skip to content

Commit c788aae

Browse files
committed
feat: save tags in new topic drafts
1 parent ce3a300 commit c788aae

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

static/lib/composer.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ define('composer', [
298298

299299
var titleEl = postContainer.find('input.title');
300300
var handleEl = postContainer.find('input.handle');
301+
var tagsEl = postContainer.find('input.tags');
301302
var bodyEl = postContainer.find('textarea');
302303
var submitBtn = postContainer.find('.composer-submit');
303304

@@ -397,6 +398,12 @@ define('composer', [
397398
if (draft && draft.handle) {
398399
handleEl.val(draft.handle);
399400
}
401+
if (draft && draft.tags) {
402+
const tags = draft.tags.split(',');
403+
tags.forEach(function (tag) {
404+
tagsEl.tagsinput('add', tag);
405+
});
406+
}
400407
bodyEl.val(draft.text ? draft.text : postData.body);
401408

402409
handleHelp(postContainer);

static/lib/composer/drafts.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,14 @@ define('composer/drafts', function () {
6161
var uid = save_id.split(':')[1];
6262
var storage = parseInt(uid, 10) ? localStorage : sessionStorage;
6363
var draft = {
64-
title: storage.getItem(save_id + ':title'),
6564
text: storage.getItem(save_id),
6665
};
66+
['cid', 'title', 'tags'].forEach(function (key) {
67+
const value = storage.getItem(save_id + ':' + key);
68+
if (value) {
69+
draft[key] = value;
70+
}
71+
});
6772
if (!parseInt(uid, 10)) {
6873
draft.handle = storage.getItem(save_id + ':handle');
6974
}
@@ -78,13 +83,20 @@ define('composer/drafts', function () {
7883

7984
function saveDraft(postContainer, draftIconEl, postData) {
8085
if (canSave(app.user.uid ? 'localStorage' : 'sessionStorage') && postData && postData.save_id && postContainer.length) {
81-
var title = postContainer.find('input.title').val();
86+
const titleEl = postContainer.find('input.title');
87+
const title = titleEl && titleEl.val();
8288
var raw = postContainer.find('textarea').val();
8389
var storage = app.user.uid ? localStorage : sessionStorage;
8490

85-
if (raw.length) {
91+
if (raw.length || (title && title.length)) {
8692
storage.setItem(postData.save_id, raw);
87-
storage.setItem(postData.save_id + ':title', title);
93+
94+
if (postData.hasOwnProperty('cid')) {
95+
// New topic only
96+
const tags = postContainer.find('input.tags').val();
97+
storage.setItem(postData.save_id + ':tags', tags);
98+
storage.setItem(postData.save_id + ':title', title);
99+
}
88100
if (!app.user.uid) {
89101
var handle = postContainer.find('input.handle').val();
90102
storage.setItem(postData.save_id + ':handle', handle);

0 commit comments

Comments
 (0)