Move rich text support code into a separate file

This commit is contained in:
Tom Hughes 2012-09-06 20:44:24 +01:00
parent 02de53eb45
commit 7af04f8691
2 changed files with 69 additions and 61 deletions

View file

@ -13,6 +13,7 @@
//= require key
//= require menu
//= require sidebar
//= require richtext
function zoomPrecision(zoom) {
var decimals = Math.pow(10, Math.floor(zoom/3));
@ -201,67 +202,6 @@ function makeShortCode(lat, lon, zoom) {
return str;
}
/*
* Click handler to switch a rich text control to preview mode
*/
function previewRichtext(event) {
var editor = $(this).parents(".richtext_container").find("textarea");
var preview = $(this).parents(".richtext_container").find(".richtext_preview");
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();
preview.width(width);
preview.css("min-height", minHeight + "px");
preview.show();
$(this).siblings(".richtext_doedit").prop("disabled", false);
$(this).prop("disabled", true);
event.preventDefault();
}
/*
* Click handler to switch a rich text control to edit mode
*/
function editRichtext(event) {
var editor = $(this).parents(".richtext_container").find("textarea");
var preview = $(this).parents(".richtext_container").find(".richtext_preview");
preview.hide();
editor.show();
$(this).siblings(".richtext_dopreview").prop("disabled", false);
$(this).prop("disabled", true);
event.preventDefault();
}
/*
* Setup any rich text controls
*/
$(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_dopreview").click(previewRichtext);
});
/*
* Forms which have been cached by rails may have he wrong
* authenticity token, so patch up any forms with the correct

View file

@ -0,0 +1,68 @@
$(document).ready(function () {
/* Hide the preview panes */
$(".richtext_preview").hide();
/*
* When the text in an edit pane is changed, clear the contents of
* the associated preview pne so that it will be regenerated when
* the user next switches to it.
*/
$(".richtext_content textarea").change(function () {
$(this).parents(".richtext_container").find(".richtext_preview").empty();
});
/* Disable all the edit buttons */
$(".richtext_doedit").prop("disabled", true);
/* Enable the preview buttons */
$(".richtext_dopreview").prop("disabled", false);
/*
* Install a click handler to switch to edit mode when the
* edit button is pressed.
*/
$(".richtext_doedit").click(function (event) {
var editor = $(this).parents(".richtext_container").find("textarea");
var preview = $(this).parents(".richtext_container").find(".richtext_preview");
preview.hide();
editor.show();
$(this).siblings(".richtext_dopreview").prop("disabled", false);
$(this).prop("disabled", true);
event.preventDefault();
});
/*
* Install a click handler to switch to preview mode when the
* preview button is pressed.
*/
$(".richtext_dopreview").click(function (event) {
var editor = $(this).parents(".richtext_container").find("textarea");
var preview = $(this).parents(".richtext_container").find(".richtext_preview");
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();
preview.width(width);
preview.css("min-height", minHeight + "px");
preview.show();
$(this).siblings(".richtext_doedit").prop("disabled", false);
$(this).prop("disabled", true);
event.preventDefault();
});
});