FIX: discourse client should know about Logster (#7232)

FIX: discourse client should know about Logster (#7232)

diff --git a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 b/app/assets/javascripts/discourse/routes/app-route-map.js.es6
index b9fc992..74314142 100644
--- a/app/assets/javascripts/discourse/routes/app-route-map.js.es6
+++ b/app/assets/javascripts/discourse/routes/app-route-map.js.es6
@@ -3,6 +3,10 @@ export default function() {
   this.route("exception", { path: "/exception" });
   this.route("exception-unknown", { path: "/404" });
 
+  this.route("logster", { path: "/logs" }, function() {
+    this.route("logster-routes", { path: "*path" });
+  });
+
   this.route("about", { path: "/about", resetNamespace: true });
 
   this.route("post", { path: "/p/:id" });
diff --git a/app/assets/javascripts/discourse/routes/logster.js.es6 b/app/assets/javascripts/discourse/routes/logster.js.es6
new file mode 100644
index 0000000..ea71938
--- /dev/null
+++ b/app/assets/javascripts/discourse/routes/logster.js.es6
@@ -0,0 +1,18 @@
+import getURL from "discourse-common/lib/get-url";
+import { getOwner } from "discourse-common/lib/get-owner";
+
+export default Discourse.Route.extend({
+  beforeModel(transition) {
+    const router = getOwner(this).lookup("router:main");
+    const currentURL = router.get("currentURL");
+    transition.abort();
+
+    // hack due to Ember bug https://github.com/emberjs/ember.js/issues/5210
+    // aborting the transition should revert the address bar to the
+    // previous route's url, otherwise we will end up with a broken
+    // back button
+    // workaround is to update the address bar ourselves
+    router.location.setURL(router.url);
+    window.location.href = getURL(currentURL);
+  }
+});

GitHub sha: bfcbc4d2

Is there any reason an additional route is required here? We handle a similar problem for the wizard/assets/uploads etc. here:

2 Likes

FIX: discourse client should know about Logster (simpler approach) (#7237)