Only reload the preview if the content has changed
authorTom Hughes <tom@compton.nu>
Sun, 4 Mar 2012 17:13:17 +0000 (17:13 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 17 Mar 2012 16:36:58 +0000 (16:36 +0000)
app/assets/javascripts/site.js

index 3d4130580c104731523a0e01b8251faebe1b434c..311798aa57379fe18a0a14a6410768d40356bb11 100644 (file)
@@ -216,15 +216,18 @@ function previewRichtext(event) {
   var width = editor.outerWidth() - preview.outerWidth() + preview.innerWidth();
   var minHeight = editor.outerHeight() - preview.outerHeight() + preview.innerHeight();
 
   var width = editor.outerWidth() - preview.outerWidth() + preview.innerWidth();
   var minHeight = editor.outerHeight() - preview.outerHeight() + preview.innerHeight();
 
+  if (preview.contents().length == 0) {
+    preview.oneTime(500, "loading", function () {
+      preview.addClass("loading");
+    });
+
+    preview.load(editor.attr("data-preview-url"), { text: editor.val() }, function () {
+      preview.stopTime("loading");
+      preview.removeClass("loading");
+    });
+  }
+
   editor.hide();
   editor.hide();
-  preview.html("");
-  preview.oneTime(500, "loading", function () {
-    preview.addClass("loading");
-  });
-  preview.load(editor.attr("data-preview-url"), { text: editor.val() }, function () {
-    preview.stopTime("loading");
-    preview.removeClass("loading");
-  });
   preview.width(width);
   preview.css("min-height", minHeight + "px");
   preview.show();
   preview.width(width);
   preview.css("min-height", minHeight + "px");
   preview.show();
@@ -256,6 +259,9 @@ function editRichtext(event) {
  */
 $(document).ready(function () {
   $(".richtext_preview").hide();
  */
 $(document).ready(function () {
   $(".richtext_preview").hide();
+  $(".richtext_content textarea").change(function () { 
+    $(this).parents(".richtext_container").find(".richtext_preview").empty();
+  });
   $(".richtext_doedit").prop("disabled", true);
   $(".richtext_dopreview").prop("disabled", false);
   $(".richtext_doedit").click(editRichtext);
   $(".richtext_doedit").prop("disabled", true);
   $(".richtext_dopreview").prop("disabled", false);
   $(".richtext_doedit").click(editRichtext);