From 4b935b61eb39625e938f8bd06793bb0355e66f43 Mon Sep 17 00:00:00 2001
From: Jarek Radosz <jradosz@gmail.com>
Date: Thu, 14 Jul 2022 13:03:43 +0200
Subject: [PATCH] FIX: CSS tweak and production position fix for miniprofiler
 (#17493)

* DEV: Format miniprofiler html
* FIX: Move miniprofiler to the right in production
* UX: Fix and merge miniprofiler css
---
 .../discourse/lib/bootstrap-json/index.js     | 28 ++++++++++++++++---
 .../common/admin/mini_profiler.scss           | 10 +++++--
 .../stylesheets/common/base/discourse.scss    |  4 ---
 config/initializers/006-mini_profiler.rb      |  2 ++
 4 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/app/assets/javascripts/discourse/lib/bootstrap-json/index.js b/app/assets/javascripts/discourse/lib/bootstrap-json/index.js
index e6380259923..a236d7aefe0 100644
--- a/app/assets/javascripts/discourse/lib/bootstrap-json/index.js
+++ b/app/assets/javascripts/discourse/lib/bootstrap-json/index.js
@@ -141,10 +141,30 @@ function bodyFooter(buffer, bootstrap, headers) {
 
   let v = generateUID();
   buffer.push(`
-		<script async type="text/javascript" id="mini-profiler" src="/mini-profiler-resources/includes.js?v=${v}" data-css-url="/mini-profiler-resources/includes.css?v=${v}" data-version="${v}" data-path="/mini-profiler-resources/" data-horizontal-position="right" data-vertical-position="top" data-trivial="false" data-children="false" data-max-traces="20" data-controls="false" data-total-sql-count="false" data-authorized="true" data-toggle-shortcut="alt+p" data-start-hidden="false" data-collapse-results="true" data-html-container="body" data-hidden-custom-fields="x" data-ids="${headers.get(
-    "x-miniprofiler-ids"
-  )}"></script>
-	`);
+    <script
+      async
+      type="text/javascript"
+      id="mini-profiler"
+      src="/mini-profiler-resources/includes.js?v=${v}"
+      data-css-url="/mini-profiler-resources/includes.css?v=${v}"
+      data-version="${v}"
+      data-path="/mini-profiler-resources/"
+      data-horizontal-position="right"
+      data-vertical-position="top"
+      data-trivial="false"
+      data-children="false"
+      data-max-traces="20"
+      data-controls="false"
+      data-total-sql-count="false"
+      data-authorized="true"
+      data-toggle-shortcut="alt+p"
+      data-start-hidden="false"
+      data-collapse-results="true"
+      data-html-container="body"
+      data-hidden-custom-fields="x"
+      data-ids="${headers.get("x-miniprofiler-ids")}"
+    ></script>
+  `);
 }
 
 function hiddenLoginForm(buffer, bootstrap) {
diff --git a/app/assets/stylesheets/common/admin/mini_profiler.scss b/app/assets/stylesheets/common/admin/mini_profiler.scss
index 07115037aa2..3c2297900ba 100644
--- a/app/assets/stylesheets/common/admin/mini_profiler.scss
+++ b/app/assets/stylesheets/common/admin/mini_profiler.scss
@@ -1,7 +1,9 @@
 // Some basic overrides to https://github.com/MiniProfiler/rack-mini-profiler/blob/master/lib/html/includes.scss
 // which make the badge conform to the current site theme.
 
-div.profiler-results {
+div.profiler-results.profiler-top {
+  top: var(--header-offset);
+
   .profiler-button {
     background-color: var(--header_background);
     color: var(--header_primary);
@@ -16,7 +18,11 @@ div.profiler-results {
     }
   }
 
-  &.profiler-left.profiler-top .profiler-button {
+  &.profiler-left .profiler-button {
     border-right: 1px solid var(--header_primary-low);
   }
+
+  &.profiler-right .profiler-button {
+    border-left: 1px solid var(--header_primary-low);
+  }
 }
diff --git a/app/assets/stylesheets/common/base/discourse.scss b/app/assets/stylesheets/common/base/discourse.scss
index 15216e789ac..da34e5319a2 100644
--- a/app/assets/stylesheets/common/base/discourse.scss
+++ b/app/assets/stylesheets/common/base/discourse.scss
@@ -380,10 +380,6 @@ table {
   border-radius: 50%;
 }
 
-.profiler-results.profiler-right {
-  top: var(--header-offset) !important;
-}
-
 .flex-center-align {
   display: flex;
   align-items: center;
diff --git a/config/initializers/006-mini_profiler.rb b/config/initializers/006-mini_profiler.rb
index 4997c5cc8a4..a9f4fad5180 100644
--- a/config/initializers/006-mini_profiler.rb
+++ b/config/initializers/006-mini_profiler.rb
@@ -72,6 +72,8 @@ if defined?(Rack::MiniProfiler) && defined?(Rack::MiniProfiler::Config)
   #  does not get clobbered.
   Rack::MiniProfiler.config.cookie_path = Discourse.base_path.presence || "/"
 
+  Rack::MiniProfiler.config.position = "right"
+
   Rack::MiniProfiler.config.backtrace_ignores ||= []
   Rack::MiniProfiler.config.backtrace_ignores << /lib\/rack\/message_bus.rb/
   Rack::MiniProfiler.config.backtrace_ignores << /config\/initializers\/silence_logger/