From 65e3a0d0ee2818bf4428a19aa60ee4d972e91d52 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Fri, 30 May 2008 08:06:36 +0000 Subject: [PATCH] * Avoid redundant hard-wiring of main path in JS code * Fix `<<' and `>>' events * No "provided from" for ids without modules svn: r10032 --- .../scribblings/main/private/make-search.ss | 72 ++++++++++--------- collects/scribblings/main/search.scrbl | 2 +- collects/scribblings/main/user/search.scrbl | 2 +- 3 files changed, 42 insertions(+), 34 deletions(-) diff --git a/collects/scribblings/main/private/make-search.ss b/collects/scribblings/main/private/make-search.ss index 460af938a3..98cbd5ccff 100644 --- a/collects/scribblings/main/private/make-search.ss +++ b/collects/scribblings/main/private/make-search.ss @@ -25,7 +25,7 @@ (stringpath..." ;; This function does the url compacting. (define main-url ; (make sure that it teminates with a slash) - (regexp-replace #rx"/*$" (url->string (path->url (find-doc-dir))) "/")) + (if user-dir? + (regexp-replace #rx"/*$" (url->string (path->url (find-doc-dir))) "/") + "../")) (define compact-url (let ([rx (regexp (string-append "^" (regexp-quote main-url)))]) (lambda (url) (regexp-replace rx url ">")))) @@ -154,25 +156,25 @@ +'' +'' +'' +'' +'
' +'' + +' onchange="key_handler(event);"' + +' onkeypress="return key_handler(event);" />' +'
' +'<<' + +' onclick="key_handler(\'PgUp\'); return false;"' + +'><<' +'' +'' +' ' +'' +'' +'>>' + +' onclick="key_handler(\'PgDn\'); return false;"' + +'>>>' +'
' +'' + +' style="display: none; margin: 0.5em 1em;">' +'
'; // get the query box @@ -276,13 +278,11 @@ for (var i=0@";" i 0)) { + for (var j=0@";" j' - + search_results[n][3][j] - + ''; + + '' + libs[j] + ''; desc = '  ' + '' + 'provided from ' @@ -317,22 +317,30 @@ search_timer = null; clearTimeout(t); } - var key = event && event.keyCode; - if (key == 13) { - DoSearch(); - return false; - } else if (key == 33) { - DoSearch(); // in case we didn't update it yet - first_search_result -= results_num; - UpdateResults(); - return false; - } else if (key == 34) { - DoSearch(); // in case we didn't update it yet - if (first_search_result + results_num < search_results.length) { - first_search_result += results_num; - UpdateResults(); + var key = event; + if (typeof event != "string") { + switch (event.keyCode) { + case 13: key = "Enter"; break; + case 33: key = "PgUp"; break; + case 34: key = "PgDn"; break; } - return false; + } + switch (key) { + case "Enter": + DoSearch(); + return false; + case "PgUp": + DoSearch(); // in case we didn't update it yet + first_search_result -= results_num; + UpdateResults(); + return false; + case "PgDn": + DoSearch(); // in case we didn't update it yet + if (first_search_result + results_num < search_results.length) { + first_search_result += results_num; + UpdateResults(); + } + return false; } search_timer = setTimeout(DoSearch, 400); return true; @@ -345,10 +353,10 @@ })(); }) -(define (make-search) +(define (make-search user-dir?) (make-splice (list (make-delayed-block - (lambda (r s i) (make-paragraph (list (make-script r s i))))) + (lambda (r s i) (make-paragraph (list (make-script user-dir? r s i))))) (make-element (make-with-attributes #f '((id . "plt_search_container"))) null)))) diff --git a/collects/scribblings/main/search.scrbl b/collects/scribblings/main/search.scrbl index 1a5a96192d..08ad589b9c 100644 --- a/collects/scribblings/main/search.scrbl +++ b/collects/scribblings/main/search.scrbl @@ -4,4 +4,4 @@ @main-page['search #t] -@make-search[] +@make-search[#f] diff --git a/collects/scribblings/main/user/search.scrbl b/collects/scribblings/main/user/search.scrbl index ee5089921d..7a05965ac4 100644 --- a/collects/scribblings/main/user/search.scrbl +++ b/collects/scribblings/main/user/search.scrbl @@ -4,4 +4,4 @@ @main-page['search #f] -@make-search[] +@make-search[#t]