From 0efb36292728ba8e3a35a66a48df6a7ef47a767c Mon Sep 17 00:00:00 2001 From: Graham Dumpleton Date: Fri, 22 Feb 2019 19:26:46 +1100 Subject: [PATCH 1/5] Fix up SCRIPT_NAME/PATH_INFO when mounting at sub URL. --- config.ru | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/config.ru b/config.ru index f7ba0b5..ef9cc7d 100644 --- a/config.ru +++ b/config.ru @@ -2,4 +2,20 @@ require_relative 'config/environment' +class FixupScriptName + def initialize(app) + @app = app + end + + def call(env) + env['SCRIPT_NAME'] = ActionController::Base.config.relative_url_root + env['PATH_INFO'].delete_prefix!(env['SCRIPT_NAME']) + @app.call(env) + end +end + +if ActionController::Base.config.relative_url_root + use FixupScriptName +end + run Rails.application From e0d0444fbfe536932fcab7b33daf913832fc44a1 Mon Sep 17 00:00:00 2001 From: Graham Dumpleton Date: Fri, 22 Feb 2019 19:27:09 +1100 Subject: [PATCH 2/5] Use means to redirect that preserves mount point when using sub URL. --- app/controllers/welcome_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 66af22d..c706492 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -5,7 +5,7 @@ class WelcomeController < ApplicationController def index if Workshopper::Cache.workshops.keys.length == 1 id = Workshopper::Cache.workshops.keys.first - return redirect_to "/workshop/#{id}/" + return redirect_to controller: 'welcome', action: 'workshop', workshop: id end @workshops = Workshopper::Cache.workshops.keys.map do |id| @@ -20,7 +20,7 @@ def index def workshop @workshop = Workshopper::Cache.workshops[params[:workshop]] lab = @workshop.active_labs.first - redirect_to "/workshop/#{params[:workshop]}/lab/#{lab}" + redirect_to controller: 'welcome', action: 'lab', workshop: params[:workshop], lab: lab end def lab From e5c39ab40bc4c1a64d31650b0517090263bad53f Mon Sep 17 00:00:00 2001 From: Graham Dumpleton Date: Fri, 22 Feb 2019 20:02:21 +1100 Subject: [PATCH 3/5] Fix construction of links in pages so uses sub URL. --- app/views/welcome/index.html.erb | 4 ++-- app/views/welcome/lab.html.erb | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 02bc863..f672a4c 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -1,5 +1,5 @@ \ No newline at end of file + diff --git a/app/views/welcome/lab.html.erb b/app/views/welcome/lab.html.erb index e859548..2c9ecbe 100644 --- a/app/views/welcome/lab.html.erb +++ b/app/views/welcome/lab.html.erb @@ -18,16 +18,16 @@ <%= i += 1 %>. <%= @workshop.lab(id).name %> <% elsif @completed.include?(@workshop.lab(id).id) %> - + <%= i += 1 %>. <%= @workshop.lab(id).name %> <% else %> - + <%= i += 1 %>. <%= @workshop.lab(id).name %> <% end %> <% end %> - + All labs in one page <% if ENV['ISSUES_URL'] || @workshop.issues %> @@ -53,12 +53,12 @@