From 245c61928384a824dd1e798343dca512ae8cce3e Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Thu, 10 Feb 2022 17:57:58 +0100
Subject: [PATCH] nice preview

---
 app/helpers/admin/application_helper.rb            |  4 ++++
 app/views/admin/application/_preview.html.erb      |  9 +++++++++
 .../communication/website/posts/show.html.erb      | 14 ++++----------
 app/views/admin/layouts/application.html.erb       |  1 +
 4 files changed, 18 insertions(+), 10 deletions(-)
 create mode 100644 app/views/admin/application/_preview.html.erb

diff --git a/app/helpers/admin/application_helper.rb b/app/helpers/admin/application_helper.rb
index 7ecd56b56..802c70113 100644
--- a/app/helpers/admin/application_helper.rb
+++ b/app/helpers/admin/application_helper.rb
@@ -37,6 +37,10 @@ module Admin::ApplicationHelper
             class: button_classes
   end
 
+  def preview_link
+    raw "<button class=\"btn btn-primary\" type=\"button\" data-bs-toggle=\"offcanvas\" data-bs-target=\"#preview\" aria-controls=\"preview\">#{ t 'preview.button'}</button>"
+  end
+
   def button_classes(additional = '', **options)
     classes = "btn btn-primary btn-xs #{additional}"
     classes += ' disabled' if options[:disabled]
diff --git a/app/views/admin/application/_preview.html.erb b/app/views/admin/application/_preview.html.erb
new file mode 100644
index 000000000..12ee4fca5
--- /dev/null
+++ b/app/views/admin/application/_preview.html.erb
@@ -0,0 +1,9 @@
+<div class="offcanvas offcanvas-start preview" tabindex="-1" id="preview" aria-labelledby="offcanvasRightLabel" aria-modal="true" role="dialog">
+  <div class="offcanvas-header">
+    <h5 id="offcanvasRightLabel"><%= t 'preview.title' %></h5>
+    <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
+  </div>
+  <div class="offcanvas-body">
+    <%= yield :preview %>
+  </div>
+</div>
diff --git a/app/views/admin/communication/website/posts/show.html.erb b/app/views/admin/communication/website/posts/show.html.erb
index f26b141b9..0208047e9 100644
--- a/app/views/admin/communication/website/posts/show.html.erb
+++ b/app/views/admin/communication/website/posts/show.html.erb
@@ -62,17 +62,11 @@
   </div>
 <% end %>
 
-<div class="offcanvas offcanvas-start preview" tabindex="-1" id="preview" aria-labelledby="offcanvasRightLabel" aria-modal="true" role="dialog">
-  <div class="offcanvas-header">
-    <h5 id="offcanvasRightLabel"><%= t 'preview.title' %></h5>
-    <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
-  </div>
-  <div class="offcanvas-body">
-    <%= @post.text.to_s %>
-  </div>
-</div>
+<% content_for :preview do %>
+  <%= @post.text.to_s %>
+<% end %>
 
 <% content_for :action_bar_right do %>
-  <button class="btn btn-primary my-1" type="button" data-bs-toggle="offcanvas" data-bs-target="#preview" aria-controls="preview"><%= t 'preview.button' %></button>
+  <%= preview_link %>
   <%= edit_link @post %>
 <% end %>
diff --git a/app/views/admin/layouts/application.html.erb b/app/views/admin/layouts/application.html.erb
index adabf291c..91f08ea3a 100644
--- a/app/views/admin/layouts/application.html.erb
+++ b/app/views/admin/layouts/application.html.erb
@@ -37,6 +37,7 @@
             </div>
             <%= yield %>
           </div>
+          <%= render 'admin/application/preview' %>
         </main>
       </div>
     </div>
-- 
GitLab