From bf14d727a44e746ad142636acbb19f59fb075b13 Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Sun, 6 Feb 2011 10:42:28 +0100
Subject: [PATCH] keep drafts on preview FS#2116

---
 lib/scripts/edit.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/scripts/edit.js b/lib/scripts/edit.js
index 3276c9e06..45c1fb111 100644
--- a/lib/scripts/edit.js
+++ b/lib/scripts/edit.js
@@ -268,6 +268,7 @@ var textChanged = false;
  */
 function deleteDraft() {
     if (is_opera) return;
+    if (window.keepDraft) return;
 
     // remove a possibly saved draft using ajax
     var dwform = $('dw__editform');
@@ -318,8 +319,13 @@ addInitEvent(function (){
     window.onunload = deleteDraft;
 
     // reset change memory var on submit
-    addEvent($('edbtn__save'), 'click', function(){ textChanged = false; });
-    addEvent($('edbtn__preview'), 'click', function(){ textChanged = false; });
+    addEvent($('edbtn__save'), 'click', function(){
+        textChanged = false;
+    });
+    addEvent($('edbtn__preview'), 'click', function(){
+        textChanged = false;
+        window.keepDraft = true; // needed to keep draft on page unload
+    });
 
     var summary = $('edit__summary');
     addEvent(summary, 'change', summaryCheck);
-- 
GitLab