-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
61 lines (49 loc) · 1.43 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
console.log("hi");
const load_index = () => {
let index_url = document.querySelector("#index_url").value;
console.log("Loading index from " + index_url);
fetch(index_url)
.then(r => r.text())
.then(t => {
index_documents(JSON.parse(t));
search('');
});
};
const index_documents = documents => {
window.idx = lunr(function() {
this.ref("name");
this.field("text");
documents.forEach(function(doc) {
this.add(doc);
}, this);
console.log("Indexed " + documents.length + " docs");
});
};
const updateResult = items => {
let resultList = document.querySelector("#result");
let resultCount = document.querySelector("#result-count");
resultList.innerHTML = "";
let itemElements = items.map(item => {
let li = document.createElement("li");
li.textContent = item.ref;
return li;
});
resultList.append(...itemElements);
resultCount.textContent = itemElements.length;
};
const search = term => {
console.log('Search term was: ' + term);
let result = window.idx.search(term);
console.log(result);
updateResult(result);
};
const searchButton = document.querySelector("#search-btn");
searchButton.addEventListener("click", e => {
let searchTerm = document.querySelector("#search-term").value;
search(searchTerm);
});
const loadIndexButton = document.querySelector("#load-index-btn");
loadIndexButton.addEventListener("click", e => {
load_index();
});
load_index();