As a user, I don't want to miss my text by closing tab by mistake.
So that I want to save my text during writing.
Acceptance criteria:
Post text should be saved every 15 sec and on moving focus (including closing the page and open another application). So, user can close the page, open it again and see the text in Create Post dialog.
Text must be saved per topic, on saving, text "Draft Saved". Draft should have such attribute as date and time of last saving (see see an attachment).
Draft must be deleted by when user clears message by backspace or ctrl+A and del. This must happen right away, we don't wait 15 secs.
Draft should be deleted automatically when post posted.
Draft should be ignored by search.
Acceptable number of symbols in drafts same as in topics, there is a pop-up window with warning showed if pasted text have more symbols than permitted.
When draft is saved, a grey label "Saved N seconds (or minutes) ago" must be shown. If that happened more than an hour ago, then just it shows the date and time. Time in label is updated every 5 sec during 1st minute after saving, every minute - during 1st hour after saving, every hour - during 1day after saving, then data of saving is shown.
User post counter must not be incremented by a draft
A warning popup must be shown if the draft saving didn't succeed saying: "Connection to the server was lost, please save your text locally".
Functionality must be introduced in Discussions & QnA topic types. (As Code Review topics haven't posts, drafts in Code Review are out of scope of this history).
Justification on when to save Draft:
It's not likely that user removes the content and then he accidentally leaves the page. This case is not realistic. Therefore we respect all the actions of the user as intentional and simply save Post Draft once in period.
Post Draft must be also saved when user clicks somewhere outside of the text area - e.g. for cases when he closes the tab accidentally or presses Back or Forward.
Also it's decided to remove Post Draft right away when user removes the whole content because otherwise the content will be there when he removes. Even if he intentionally removed it.
Justification on when to save Draft:
It's not likely that user removes the content and then he accidentally leaves the page. This case is not realistic. Therefore we respect all the actions of the user as intentional and simply save Post Draft once in period.
Post Draft must be also saved when user clicks somewhere outside of the text area - e.g. for cases when he closes the tab accidentally or presses Back or Forward.
Also it's decided to remove Post Draft right away when user removes the whole content because otherwise the content will be there when he removes. Even if he intentionally removed it.
Justification on when to save Draft:
It's not likely that user removes the content and then he accidentally leaves the page. This case is not realistic. Therefore we respect all the actions of the user as intentional and simply save Post Draft once in period.
Post Draft must be also saved when user clicks somewhere outside of the text area - e.g. for cases when he closes the tab accidentally or presses Back or Forward.
Also it's decided to remove Post Draft right away when user removes the whole content because otherwise the content will be there when he removes. Even if he intentionally removed it.