com web/php: Add a 'g a' full site search (based on doc indexes): js/common.js styles/theme-base.css
| From: | Hannes Magnusson | Date: | Sun, 29 Dec 2013 05:08:53 +0000 |
| Subject: | com web/php: Add a 'g a' full site search (based on doc indexes): js/common.js styles/theme-base.css | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-17872@lists.php.net to get a copy of this message | ||
Commit: 0337e3e25e089f357372d618d776319941fcc50c
Author: Hannes Magnusson <bjori@mongodb.com> Sat, 28 Dec 2013 21:08:53 -0800
Parents: 344352530401219533a0e20e2a994da9639175a7
Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=0337e3e25e089f357372d618d776319941fcc50c
Log:
Add a 'g a' full site search (based on doc indexes)
Changed paths:
M js/common.js
M styles/theme-base.css
Diff:
diff --git a/js/common.js b/js/common.js
index 4378a5e..b817556 100755
--- a/js/common.js
+++ b/js/common.js
@@ -166,15 +166,20 @@ $.expr[":"].icontains = $.expr.createPseudo(function(arg) {
});
function lookfor(txt) {
var retval = $("#layout a:icontains('" + txt + "')");
- $("#goto .results ul").empty();
$(retval).each(function(k, val) {
$("#goto .results ul").append("<li><a href='" +
$(val).attr("href") + "'>" + $(val).text()
+"</a></li>");
});
- $("#goto .results a:first").focus();
+}
+function localpage(text) {
+ lookfor(text);
}
Mousetrap.bind("g s", function(e) {
+ boogie(e, localpage);
+});
+function boogie(e, cb) {
+ cb($("#goto .text").text());
+ $("#goto .results a:first").focus();
$("#goto").slideToggle();
- lookfor($("#goto .text").text());
$("html").on("keydown", function(e) {
switch(e.which || e.keyCode) {
@@ -183,7 +188,9 @@ Mousetrap.bind("g s", function(e) {
var txt = $("#goto .text").text();
txt = txt.substring(0, txt.length - 1);
$("#goto .text").text(txt);
- lookfor(txt);
+ $("#goto .results ul").empty();
+ cb(txt);
+ $("#goto .results a:first").focus();
e.preventDefault();
break;
@@ -210,11 +217,45 @@ Mousetrap.bind("g s", function(e) {
var letter = String.fromCharCode(e.which || e.keyCode);
$("#goto .text").append(letter);
var txt = $("#goto .text").text().trim();
- lookfor(txt);
+ $("#goto ..results ul").empty();
+ cb(txt);
+ $("#goto .results a:first").focus();
});
Mousetrap.pause();
+}
+if (!('contains' in String.prototype)) {
+ String.prototype.contains = function(str, startIndex) {
+ return -1 !== String.prototype.indexOf.call(this, str, startIndex);
+ };
+}
+Mousetrap.bind("g a", function(e) {
+ boogie(e, globalsearch);
});
+function globalsearch(txt) {
+ var key = "search-en";
+ var cache = window.localStorage.getItem(key);
+ cache = JSON.parse(cache);
+
+ var term = txt.toLowerCase();
+ if (term.length < 3) {
+ return;
+ }
+ if (cache) {
+ for (var type in cache.data) {
+ console.log(type);
+ var elms = cache.data[type].elements;
+ for (var node in elms) {
+ if (elms[node].description.toLowerCase().contains(term) ||
elms[node].name.toLowerCase().contains(term)) {
+ $("#goto .results ul").append("<li><a
href='/manual/en/" + elms[node].id + ".php'>" + elms[node].name +
": " + elms[node].description +"</a></li>");
+ if ($("#goto .results ul li") > 30) {
+ return;
+ }
+ }
+ }
+ }
+ }
+}
Mousetrap.bind("/", function(e) {
if (e.preventDefault) {
e.preventDefault();
diff --git a/styles/theme-base.css b/styles/theme-base.css
index b3ff549..3d93d10 100755
--- a/styles/theme-base..css
+++ b/styles/theme-base.css
@@ -1744,13 +1744,14 @@ div.soft-deprecation-notice blockquote.sidebar {
line-height: 1;
}
#goto .search .results :focus {
- font-size: 2.5em;
- line-height: 1.5;
+ font-size: 2em;
+ line-height: 1.2;
}
#goto .search .text {
color: #222;
text-shadow: 0px 2px 3px #555;
font-size: 10em;
+ line-height: .7;
}
#trick {
display: none;