]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5042'
authorTom Hughes <tom@compton.nu>
Sun, 4 Aug 2024 11:36:27 +0000 (12:36 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 4 Aug 2024 11:36:27 +0000 (12:36 +0100)
app/assets/javascripts/richtext.js
app/views/shared/_richtext_field.html.erb
test/controllers/diary_entries_controller_test.rb

index 3036f169b07ed34c6ec3d45b9176c21e01dcc23a..259b914de614f6d2762cbd4beb3e07ca7adc0843 100644 (file)
@@ -1,7 +1,4 @@
 $(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
@@ -11,34 +8,10 @@ $(document).ready(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.
+   * Install a handler to switch to preview mode
    */
-  $(".richtext_dopreview").click(function (event) {
+  $(".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();
@@ -54,13 +27,6 @@ $(document).ready(function () {
       });
     }
 
-    editor.hide();
     preview.css("min-height", minHeight + "px");
-    preview.show();
-
-    $(this).siblings(".richtext_doedit").prop("disabled", false);
-    $(this).prop("disabled", true);
-
-    event.preventDefault();
   });
 });
index f471cbbbf93bf89457e081abaa67ec5a91c67aa3..23817576276da21b53d39c9ad8c3b3b819092adb 100644 (file)
@@ -1,14 +1,24 @@
 <div id="<%= id %>_container" class="row richtext_container">
   <div id="<%= id %>_content" class="col-sm-8 mb-3 mb-sm-0 richtext_content">
-    <%= 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>
+    <ul class="nav nav-tabs mb-3" role="tablist">
+      <li class="nav-item">
+        <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" data-bs-toggle="tab" data-bs-target="#<%= id %>_preview"><%= t(".preview") %></button>
+      </li>
+    </ul>
+    <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">
       <div class="card-body">
         <%= render :partial => "shared/#{type}_help" %>
-        <%= submit_tag t(".edit"), :id => "#{id}_doedit", :class => "richtext_doedit btn btn-primary", :disabled => true %>
-        <%= submit_tag t(".preview"), :id => "#{id}_dopreview", :class => "richtext_dopreview btn btn-primary" %>
       </div>
     </div>
   </div>
index bb6c25781fc5bd6aa6a31de5976bd31e74c4c0ef..24475fc80ac4786ca7b9c77ecce7687c4ca01b3b 100644 (file)
@@ -119,9 +119,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
         assert_select "input#latitude[name='diary_entry[latitude]']", :count => 1
         assert_select "input#longitude[name='diary_entry[longitude]']", :count => 1
         assert_select "input[name=commit][type=submit][value=Publish]", :count => 1
-        assert_select "input[name=commit][type=submit][value=Edit]", :count => 1
-        assert_select "input[name=commit][type=submit][value=Preview]", :count => 1
-        assert_select "input", :count => 6
+        assert_select "button[type=button]", :text => "Edit", :count => 1
+        assert_select "button[type=button]", :text => "Preview", :count => 1
+        assert_select "input", :count => 4
       end
     end
   end
@@ -272,9 +272,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
         assert_select "input#latitude[name='diary_entry[latitude]']", :count => 1
         assert_select "input#longitude[name='diary_entry[longitude]']", :count => 1
         assert_select "input[name=commit][type=submit][value=Update]", :count => 1
-        assert_select "input[name=commit][type=submit][value=Edit]", :count => 1
-        assert_select "input[name=commit][type=submit][value=Preview]", :count => 1
-        assert_select "input", :count => 7
+        assert_select "button[type=button]", :text => "Edit", :count => 1
+        assert_select "button[type=button]", :text => "Preview", :count => 1
+        assert_select "input", :count => 5
       end
     end