$(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
$(this).parents(".richtext_container").find(".richtext_preview").empty();
});
- /* Disable all the edit buttons */
- $(".richtext_doedit").prop("disabled", true);
-
/*
- * Install a click handler to switch to edit mode when the
- * edit button is pressed.
+ * Install a handler to switch to preview mode
*/
- $(".richtext_doedit").click(function () {
- var editor = $(this).parents(".richtext_container").find("textarea");
- var preview = $(this).parents(".richtext_container").find(".richtext_preview");
-
- preview.hide();
- editor.show();
-
- $(this).parents(".richtext_container").find(".richtext_dopreview").prop("disabled", false).removeClass("active");
- $(this).prop("disabled", true).addClass("active");
- });
-
- /*
- * Install a click handler to switch to preview mode when the
- * preview button is pressed.
- */
- $(".richtext_dopreview").click(function () {
+ $(".richtext_dopreview").on("show.bs.tab", function () {
var editor = $(this).parents(".richtext_container").find("textarea");
var preview = $(this).parents(".richtext_container").find(".richtext_preview");
var minHeight = editor.outerHeight() - preview.outerHeight() + preview.height();
});
}
- editor.hide();
preview.css("min-height", minHeight + "px");
- preview.show();
-
- $(this).parents(".richtext_container").find(".richtext_doedit").prop("disabled", false).removeClass("active");
- $(this).prop("disabled", true).addClass("active");
});
});
<div id="<%= id %>_content" class="col-sm-8 mb-3 mb-sm-0 richtext_content">
<ul class="nav nav-tabs mb-3" role="tablist">
<li class="nav-item">
- <button type="button" class="nav-link active richtext_doedit"><%= t(".edit") %></button>
+ <button type="button" class="nav-link active" data-bs-toggle="tab" data-bs-target="#<%= id %>_edit"><%= t(".edit") %></button>
</li>
<li class="nav-item">
- <button type="button" class="nav-link richtext_dopreview"><%= t(".preview") %></button>
+ <button type="button" class="nav-link richtext_dopreview" data-bs-toggle="tab" data-bs-target="#<%= id %>_preview"><%= t(".preview") %></button>
</li>
</ul>
- <%= builder.text_area(attribute, options.merge(:wrapper => false, "data-preview-url" => preview_url(:type => type))) %>
- <div id="<%= id %>_preview" class="richtext_preview richtext text-break"></div>
+ <div class="tab-content">
+ <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_preview richtext text-break"></div>
+ </div>
</div>
<div id="<%= id %>_help" class="col-sm-4 richtext_help">
<div class="card bg-body-tertiary h-100">