nopaque/app/static/js/nopaque.callbacks.js

55 lines
2.4 KiB
JavaScript
Raw Normal View History

2020-03-31 08:17:04 +00:00
function querySetup(payload) {
// This is called when a query was successfull
2020-04-01 11:44:06 +00:00
// some hiding
queryResultsExportElement.classList.add("disabled");
console.log("Query initial setup seccessfull.");
2020-03-31 08:17:04 +00:00
queryResultsDeterminateElement.style.width = "0%";
2020-03-31 08:27:26 +00:00
queryResultsProgressElement.classList.remove("hide");
2020-04-01 11:44:06 +00:00
queryResultsUserFeedbackElement.classList.remove("hide");
receivedMatchCountElement.innerText = "0";
textLookupCountElement.innerText = "0";
matchCountElement.innerText = payload.match_count;
// always re initializes results to delete old results from it
2020-03-31 08:17:04 +00:00
results = {};
results["matches"] = []; // list of all c with lc and rc
results["cpos_lookup"] = {}; // object contains all cpos as key value pair
results["text_lookup"] = {}; // same as above for all text ids
2020-04-01 11:44:06 +00:00
results["match_count"] = payload.match_count;
results["query"] = client.getQueryStr(queryFormElement);
2020-03-31 08:17:04 +00:00
}
function queryRenderResults(payload) {
2020-04-01 11:44:06 +00:00
// This is called when results are transmitted and being recieved
console.log("Current recieved chunk:", payload.chunk);
// upate progress status
2020-03-31 08:17:04 +00:00
if (payload.progress === 100) {
queryResultsProgressElement.classList.add("hide");
2020-04-01 11:44:06 +00:00
queryResultsUserFeedbackElement.classList.add("hide");
queryResultsExportElement.classList.remove("disabled");
activateInspect();
2020-03-31 08:17:04 +00:00
}
2020-04-01 11:44:06 +00:00
// update progress bar
2020-03-31 08:17:04 +00:00
queryResultsDeterminateElement.style.width = `${payload.progress}%`;
2020-04-01 11:44:06 +00:00
// building the result list js list from incoming chunk
resultItems = []; // list for holding every row item
// get infos for full match row
for (let [index, match] of payload.chunk.matches.entries()) {
resultItems.push({...match, ...{"index": index + results.matches.length}});
}
client.resultList.add(resultItems, (items) => {
for (let item of items) {
item.elm = client.resultList.createResultRowElement(item, payload.chunk);
}
client.resultList.update();
changeContext(); // sets lr context on first result load
});
2020-03-31 08:17:04 +00:00
// incorporating new chunk results into full results
2020-04-01 11:44:06 +00:00
results.matches.push(...payload.chunk.matches);
2020-03-31 08:17:04 +00:00
Object.assign(results.cpos_lookup, payload.chunk.cpos_lookup);
Object.assign(results.text_lookup, payload.chunk.text_lookup);
2020-04-01 11:44:06 +00:00
// show user current and total match count
receivedMatchCountElement.innerText = `${results.matches.length}`;
textLookupCountElement.innerText = `${Object.keys(results.text_lookup).length}`;
console.log("Results recieved:", results);
2020-03-31 08:17:04 +00:00
}