Kill old search code that never got fully UX'ified.

build-pdf-ret-val
Eric Holscher 2015-07-23 14:47:58 -07:00
parent 437fbab959
commit 2b8022cd66
2 changed files with 2 additions and 185 deletions

View File

@ -294,188 +294,5 @@ $(document).ready(function () {
win.on('resize', apply_stickynav); win.on('resize', apply_stickynav);
apply_stickynav(); apply_stickynav();
} }
/// Search
/// Here be dragons, this is beta quality code. Beware.
if (build.is_rtd_theme()) {
searchLanding();
}
$(document).on({
mouseenter: function(ev) {
var tooltip = $(ev.target).next();
tooltip.show();
},
mouseleave: function(ev) {
var tooltip = $(ev.target).next();
tooltip.hide();
}
}, '.result-count');
$(document).on('submit', '#rtd-search-form', function (ev) {
//ev.preventDefault();
clearSearch();
var query = $("#rtd-search-form input[name='q']").val();
getSearch(query, true);
});
$(document).on('click', '.search-result', function (ev) {
ev.preventDefault();
//console.log(ev.target)
html = $(ev.target).next().html();
displayContent(html);
});
function searchLanding() {
// Highlight based on highlight GET arg
var params = $.getQueryParameters();
var query = (params.q) ? params.q[0].split(/\s+/) : [];
var clear = true;
/* Don't "search" on highlight phrases
if (!query.length) {
// Only clear on q
clear = false
var query = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
}
*/
if (query.length) {
query = query.join(" ");
console.log("Searching based on GET arg for: " + query);
$("#rtd-search-form input[name='q']").val(query);
getSearch(query, clear);
}
}
function getSearch(query, clear) {
var get_data = {
project: READTHEDOCS_DATA['project'],
version: READTHEDOCS_DATA['version'],
format: "jsonp",
q: query
};
// Search results
$.ajax({
url: API_HOST + "/api/v2/search/section/",
crossDomain: true,
xhrFields: {
withCredentials: true,
},
dataType: "jsonp",
data: get_data,
success: function (data) {
clearSearch(clear);
hits = data.results.hits.hits;
if (!hits.length) {
resetState();
} else {
displaySearch(hits, query);
}
},
error: function () {
console.log('Error searching');
}
});
}
function displayContent(html) {
var content = $('.rst-content');
content.html(html);
}
function displaySearch(hits, query) {
FIRSTRUN = {};
current = $(".toctree-l1.current > a");
for (var index in hits) {
var hit = hits[index];
var path = hit.fields.path;
var pageId = hit.fields.page_id;
var title = hit.fields.title;
var content = hit.fields.content;
var highlight = hit.highlight.content;
var score = hit._score;
var li = $(".toctree-l1 > a[href^='" + path + "']");
/*
// This doesn't work :)
if (!li.length && $(current.next().children()[0]).text() == title) {
li = current
console.log("Current page: " + title)
} else {
console.log("Not: " + title)
}
*/
var ul = li.next();
console.log(path);
// Display content for first result
if (index === 0) {
// Don't display content for now, so we show sphinx results
//displayContent(content)
}
// Clear out subheading with result content
if (!FIRSTRUN[path]) {
li.show();
li.attr("href", li.attr('href') + "?highlight=" + query);
li.parent().addClass("current");
li.append("<i style='position:absolute;right:30px;top:6px;' class='fa fa-search result-icon'></i>");
ul.empty();
FIRSTRUN[path] = true;
}
// Dedupe
if (!FIRSTRUN[path+title]) {
ul.append('<li class="toctree-l2">' + '<a class="reference internal search-result" pageId="' + pageId + '">' + title + '</a>' + '<span style="display: none;" class="data">' + content + '</span>' + '</li>');
if (score > 1) {
$(".toctree-l2 ");
inserted = $('.toctree-l2 > [pageId="' + pageId + '"]');
inserted.append("<i style='position:absolute;right:30px;top:6px;' class='fa fa-fire'></i>");
}
FIRSTRUN[path+title] = true;
}
}
// Hide non-showing bits
$.each($(".toctree-l1 > a"), function (index, el) {
hide = true;
if ($(el).attr('href') === "") {
// Current page
hide = false;
}
for (var key in FIRSTRUN) {
if ($(el).attr('href').indexOf(key) === 0) {
hide = false;
}
}
if (hide) {
$(el).hide();
}
});
}
function resetState() {
$.each($(".toctree-l1 > a"), function (index, el) {
var el = $(el);
el.show();
el.parent().show();
});
}
function clearSearch(empty) {
$('.result-icon').remove();
$.each($(".toctree-l1 > a"), function (index, el) {
var el = $(el);
if (empty) {
el.parent().removeClass('current');
el.next().empty();
}
});
}
}); });

File diff suppressed because one or more lines are too long