]> git.openstreetmap.org Git - rails.git/commitdiff
Restore loading spinner in richtext previews
authorAnton Khorev <tony29@yandex.ru>
Fri, 8 Nov 2024 12:04:38 +0000 (15:04 +0300)
committerAnton Khorev <tony29@yandex.ru>
Fri, 8 Nov 2024 12:04:38 +0000 (15:04 +0300)
app/assets/javascripts/richtext.js
app/views/shared/_richtext_field.html.erb

index 56aad8c73a2c8642f09d4cc1d6b6f54f5b5a6f4d..0c0a699230078a2cdbbfe0cdc5cebb66d05a21df 100644 (file)
@@ -6,8 +6,10 @@
    */
   $(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);
       });
     }
   });
index 5b84fd6ed889bce1d774cdbb746082a946b8056a..eb11aa13cab3cfa0d927666f54209572056c74da 100644 (file)
       <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">