From c6f0cd33e035702b6c1dac0dcc76ea219fac2b96 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Wed, 8 Apr 2015 19:06:46 -0400 Subject: [PATCH] It's *dynamic*, not static; add CORS; fix stupid mistakes --- src/site.rkt | 45 +++++++++++++++++++++------------------------ static/site.js | 5 +++-- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/site.rkt b/src/site.rkt index 7db34b4..b1c69c5 100644 --- a/src/site.rkt +++ b/src/site.rkt @@ -98,18 +98,17 @@ (authentication-wrap* #t request (lambda () body ...))) (define-syntax-rule (with-site-config 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 ...))) + (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 "")) + (bootstrap-inline-js (format "PkgSiteDynamicBaseUrl = '~a';" dynamic-urlprefix)) + (jsonp-baseurl backend-baseurl)) + body ...)) (define clear-session-cookie (make-cookie COOKIE "" @@ -1230,26 +1229,24 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(define (cors-json-response f) + (response/output #:mime-type #"application/json" + #:headers (list (header #"Access-Control-Allow-Origin" #"*")) + f)) + (define (json-search-completions request) (define completions (set-union (list->set (map ~a (all-package-names))) (all-formal-tags))) - (response/output #:mime-type #"application/json" - (lambda (response-port) - (write-json (set->list completions) response-port)))) + (cors-json-response(lambda (response-port) (write-json (set->list completions) response-port)))) (define (json-tag-search-completions request) - (response/output #:mime-type #"application/json" - (lambda (response-port) - (write-json (set->list (all-tags)) response-port)))) + (cors-json-response(lambda (response-port) (write-json (set->list (all-tags)) response-port)))) (define (json-formal-tags request) - (response/output #:mime-type #"application/json" - (lambda (response-port) - (write-json (set->list (all-formal-tags)) response-port)))) + (cors-json-response (lambda (response-port) + (write-json (set->list (all-formal-tags)) response-port)))) (define (pkgs-all-json request) - (response/output #:mime-type #"application/json" - (lambda (response-port) - (write-json (packages-jsexpr) response-port)))) + (cors-json-response (lambda (response-port) (write-json (packages-jsexpr) response-port)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/static/site.js b/static/site.js index 93c0ed8..574a691 100644 --- a/static/site.js +++ b/static/site.js @@ -26,12 +26,13 @@ PkgSite = (function () { } function getJSON(relative_url, k) { - return $.getJSON(PkgSiteJsonBaseUrl + relative_url, k); + return $.getJSON(PkgSiteDynamicBaseUrl + '/json/' + relative_url, k); } return { multiTermComplete: multiTermComplete, - preventTabMovingDuringSelection: preventTabMovingDuringSelection + preventTabMovingDuringSelection: preventTabMovingDuringSelection, + getJSON: getJSON }; })();