openstreetmap-website/app/assets/javascripts/richtext.js

68 lines
2.1 KiB
JavaScript

$(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.data("previewUrl"), { 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();
});
});