mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 09:15:41 +00:00
63 lines
2.8 KiB
JavaScript
63 lines
2.8 KiB
JavaScript
function querySetup(payload) {
|
|
// This is called when a query was successfull
|
|
// some hiding
|
|
queryResultsExportElement.classList.add("disabled");
|
|
|
|
console.log("Query initial setup seccessfull.");
|
|
queryResultsDeterminateElement.style.width = "0%";
|
|
queryResultsProgressElement.classList.remove("hide");
|
|
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
|
|
results.resultsJSON["matches"] = []; // list of all c with lc and rc
|
|
results.resultsJSON["cpos_lookup"] = {}; // object contains all cpos as key value pair
|
|
results.resultsJSON["text_lookup"] = {}; // same as above for all text ids
|
|
results.resultsJSON["match_count"] = payload.match_count;
|
|
results.resultsJSON["query"] = getQueryStr(queryFormElement);
|
|
}
|
|
|
|
function queryRenderResults(payload) {
|
|
// This is called when results are transmitted and being recieved
|
|
console.log("Current recieved chunk:", payload.chunk);
|
|
if (payload.chunk.cpos_ranges == true) {
|
|
results.resultsJSON["cpos_ranges"] = true;
|
|
} else {
|
|
results.resultsJSON["cpos_ranges"] = false;
|
|
}
|
|
// update progress bar
|
|
queryResultsDeterminateElement.style.width = `${payload.progress}%`;
|
|
// 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.resultsJSON.matches.length}});
|
|
}
|
|
resultsList.add(resultItems, (items) => {
|
|
for (let item of items) {
|
|
item.elm = resultsList.createResultRowElement(item, payload.chunk);
|
|
}
|
|
resultsList.update();
|
|
changeContext(); // sets lr context on first result load
|
|
});
|
|
// incorporating new chunk results into full results
|
|
results.resultsJSON.matches.push(...payload.chunk.matches);
|
|
Object.assign(results.resultsJSON.cpos_lookup, payload.chunk.cpos_lookup);
|
|
Object.assign(results.resultsJSON.text_lookup, payload.chunk.text_lookup);
|
|
// show user current and total match count
|
|
receivedMatchCountElement.innerText = `${results.resultsJSON.matches.length}`;
|
|
textLookupCountElement.innerText = `${Object.keys(results.resultsJSON.text_lookup).length}`;
|
|
console.log("Results recieved:", results.resultsJSON);
|
|
// upate progress status
|
|
if (payload.progress === 100) {
|
|
queryResultsProgressElement.classList.add("hide");
|
|
queryResultsUserFeedbackElement.classList.add("hide");
|
|
queryResultsExportElement.classList.remove("disabled");
|
|
activateInspect();
|
|
}
|
|
if (expertModeSwitchElement) {
|
|
let initialTokenElements = document.getElementsByClassName("token");
|
|
expertModeOn(initialTokenElements, resultsJSON);
|
|
}
|
|
} |