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); } }