*/
$(document).on("change", ".richtext_container textarea", function () {
var container = $(this).closest(".richtext_container");
+ var preview = container.find(".tab-pane[id$='_preview']");
- container.find(".tab-pane[id$='_preview']").empty();
+ preview.children(".richtext_placeholder").attr("hidden", true);
+ preview.children(".richtext").empty();
});
/*
var editor = container.find("textarea");
var preview = container.find(".tab-pane[id$='_preview']");
- if (preview.contents().length === 0) {
- preview.oneTime(500, "loading", function () {
- preview.addClass("loading");
+ if (preview.children(".richtext").contents().length === 0) {
+ preview.oneTime(200, "loading", function () {
+ preview.children(".richtext_placeholder").removeAttr("hidden");
});
- preview.load(editor.data("previewUrl"), { text: editor.val() }, function () {
+ preview.children(".richtext").load(editor.data("previewUrl"), { text: editor.val() }, function () {
preview.stopTime("loading");
- preview.removeClass("loading");
+ preview.children(".richtext_placeholder").attr("hidden", true);
});
}
});
<div id="<%= id %>_edit" class="tab-pane show active">
<%= builder.text_area(attribute, options.merge(:wrapper => false, "data-preview-url" => preview_url(:type => type))) %>
</div>
- <div id="<%= id %>_preview" class="tab-pane richtext text-break"></div>
+ <div id="<%= id %>_preview" class="tab-pane">
+ <div class="richtext_placeholder text-center py-5" hidden>
+ <div class="spinner-border" role="status">
+ <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+ </div>
+ </div>
+ <div class="richtext text-break"></div>
+ </div>
<div id="<%= id %>_help" class="tab-pane">
<div class="card bg-body-tertiary h-100">
<div class="card-body">