From 316daca342d2a1ff8503dc8d111f5d2b83e15896 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Wed, 8 Apr 2015 18:56:58 -0400 Subject: [PATCH] Repair relative urls within static-rendered files in non-default settings --- src/bootstrap.rkt | 3 +++ src/site.rkt | 24 +++++++++++++----------- static/searchbox.js | 2 +- static/site.js | 20 ++++++++++++-------- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/bootstrap.rkt b/src/bootstrap.rkt index c91267c..2218928 100644 --- a/src/bootstrap.rkt +++ b/src/bootstrap.rkt @@ -11,6 +11,7 @@ bootstrap-page-stylesheets bootstrap-page-scripts bootstrap-cookies + bootstrap-inline-js bootstrap-response bootstrap-redirect @@ -35,6 +36,7 @@ (define bootstrap-page-stylesheets (make-parameter '())) (define bootstrap-page-scripts (make-parameter '())) (define bootstrap-cookies (make-parameter '())) +(define bootstrap-inline-js (make-parameter #f)) (define (static str) (string-append (bootstrap-static-urlprefix) str)) @@ -90,6 +92,7 @@ ,title-element ,@body-contents) + (script ,@(cond [(bootstrap-inline-js) => list] [else '()])) (script ((type "text/javascript") (src ,(static "/jquery.min.js")))) (script ((type "text/javascript") (src ,(static "/jquery.tablesorter.min.js")))) (script ((type "text/javascript") (src ,(static "/jquery-ui.min.js")))) diff --git a/src/site.rkt b/src/site.rkt index 371e01e..7db34b4 100644 --- a/src/site.rkt +++ b/src/site.rkt @@ -98,16 +98,18 @@ (authentication-wrap* #t request (lambda () body ...))) (define-syntax-rule (with-site-config body ...) - (parameterize ((bootstrap-navbar-header navbar-header) - (bootstrap-navigation `((,nav-index ,(main-page-url)) - (,nav-search ,(named-url search-page)) - ;; ((div ,(glyphicon 'download-alt) - ;; " Download") - ;; "http://download.racket-lang.org/") - )) - (bootstrap-static-urlprefix (if (rendering-static-page?) static-urlprefix "")) - (jsonp-baseurl backend-baseurl)) - body ...)) + (let ((static-base (if (rendering-static-page?) static-urlprefix ""))) + (parameterize ((bootstrap-navbar-header navbar-header) + (bootstrap-navigation `((,nav-index ,(main-page-url)) + (,nav-search ,(named-url search-page)) + ;; ((div ,(glyphicon 'download-alt) + ;; " Download") + ;; "http://download.racket-lang.org/") + )) + (bootstrap-static-urlprefix static-base) + (bootstrap-inline-js (format "PkgSiteBaseUrl = '~a/json/';" static-base)) + (jsonp-baseurl backend-baseurl)) + body ...))) (define clear-session-cookie (make-cookie COOKIE "" @@ -579,7 +581,7 @@ (define (main-page request) (parameterize ((bootstrap-active-navigation nav-index) - (bootstrap-page-scripts '("/searchbox.js"))) + (bootstrap-page-scripts (list (string-append static-urlprefix "/searchbox.js")))) (define package-name-list (package-search "" '((main-distribution #f)))) (authentication-wrap #:request request diff --git a/static/searchbox.js b/static/searchbox.js index 66d7f00..68ac345 100644 --- a/static/searchbox.js +++ b/static/searchbox.js @@ -1,6 +1,6 @@ $(document).ready(function () { $("#q").focus(); - $.getJSON("/json/search-completions", function (searchCompletions) { + PkgSite.getJSON("search-completions", function (searchCompletions) { searchCompletions.sort(); PkgSite.multiTermComplete(PkgSite.preventTabMovingDuringSelection($("#q")), searchCompletions); }); diff --git a/static/site.js b/static/site.js index 8221b7b..93c0ed8 100644 --- a/static/site.js +++ b/static/site.js @@ -25,6 +25,10 @@ PkgSite = (function () { }); } + function getJSON(relative_url, k) { + return $.getJSON(PkgSiteJsonBaseUrl + relative_url, k); + } + return { multiTermComplete: multiTermComplete, preventTabMovingDuringSelection: preventTabMovingDuringSelection @@ -35,13 +39,13 @@ $(document).ready(function () { $("table.sortable").tablesorter(); if ($("#tags").length) { - $.getJSON((document.body.className === "package-form") - ? "/json/formal-tags" - : "/json/tag-search-completions", - function (completions) { - completions.sort(); - PkgSite.multiTermComplete(PkgSite.preventTabMovingDuringSelection($("#tags")), - completions); - }); + PkgSite.getJSON((document.body.className === "package-form") + ? "formal-tags" + : "tag-search-completions", + function (completions) { + completions.sort(); + PkgSite.multiTermComplete(PkgSite.preventTabMovingDuringSelection($("#tags")), + completions); + }); } });