mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-13 09:30:40 +00:00
Rework results download. To alwas generate full inspect context.
This commit is contained in:
@ -93,7 +93,8 @@ class CorpusAnalysisClient {
|
||||
if (this.callbacks.query_match_context != undefined) {
|
||||
this.callbacks.query_match_context(response);
|
||||
}
|
||||
} else if (response.type === "sub-results"){
|
||||
} else if (response.type === "sub-results"
|
||||
|| response.type ==="results"){
|
||||
if (this.callbacks.save_sub_results_choices != undefined) {
|
||||
this.callbacks.save_sub_results_choices(response);
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ class Results {
|
||||
this.data = data;
|
||||
this.jsList = jsList;
|
||||
this.metaData = metaData
|
||||
this.resultsData = new Data();
|
||||
this.subResultsData = new Data();
|
||||
}
|
||||
|
||||
@ -89,15 +90,20 @@ class Data {
|
||||
this.download(downloadElement, dataStr, resultFilename, "text/json", ".json")
|
||||
}
|
||||
|
||||
// createSubResultsData from subResultsTmpData
|
||||
createSubResultsData() {
|
||||
// create results data either from all results or from al lmarked sub results
|
||||
createResultsData(type) {
|
||||
if (type === "sub-results") {
|
||||
resultsCreateElement.classList.add("disabled"); // cqp server cannot handle more than one request at a time. Thus we deactivate the resultsCreateElement
|
||||
let tmp = [...results.jsList.addToSubResultsIdsToShow].sort(function(a, b){return a-b});
|
||||
let dataIndexes = [];
|
||||
tmp.forEach((index) => dataIndexes.push(index - 1));
|
||||
console.log(dataIndexes);
|
||||
results.jsList.getMatchWithContext(dataIndexes, "sub-results");
|
||||
} else if (type === "results") {
|
||||
subResultsCreateElement.classList.add("disabled"); // cqp server cannot handle more than one request at a time. Thus we deactivate the subResultsCreateElement
|
||||
let dataIndexes = [...Array(results.data.match_count).keys()];
|
||||
results.jsList.getMatchWithContext(dataIndexes, "results");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class MetaData {
|
||||
|
@ -2,34 +2,65 @@
|
||||
// Handels incoming corpus metadata
|
||||
function recvMetaData(payload) {
|
||||
results.metaData.init(payload)
|
||||
console.log(results.metaData);
|
||||
console.log("Metada recieved:", results.metaData);
|
||||
}
|
||||
|
||||
// This callback is called in socket.on "corpus_analysis_inspect_match" but
|
||||
// only if the response.type is "sub-results".
|
||||
// Saves the incoming inspect match results into results.subResultsData.
|
||||
function saveSubResultsChoices(response) {
|
||||
console.log("Recieve match with context");
|
||||
results.subResultsData.init();
|
||||
results.subResultsData.matches.push(...response.payload.matches);
|
||||
results.subResultsData.addData(response.payload.cpos_lookup, "cpos_lookup");
|
||||
results.subResultsData.addData(response.payload.text_lookup, "text_lookup");
|
||||
results.subResultsData.addData(results.metaData);
|
||||
results.subResultsData.query = results.data.query;
|
||||
results.subResultsData.corpus_type = "sub-results";
|
||||
results.subResultsData.match_count = [...response.payload.matches].length;
|
||||
results.subResultsData.cpos_ranges = response.payload.cpos_ranges;
|
||||
console.log(results.subResultsData);
|
||||
subResultsCreateElement.getElementsByClassName("button-icon-spinner")[0].remove();
|
||||
subResultsCreateElement.getElementsByTagName("i")[0].classList.remove("hide");
|
||||
subResultsCreateElement.firstElementChild.classList.add("disabled");
|
||||
subResultsExportElement.classList.remove("disabled", "btn-flat");
|
||||
subResultsExportElement.classList.add("pulse", "btn-small");
|
||||
setTimeout(() => {
|
||||
subResultsExportElement.classList.remove("pulse", "btn-small");
|
||||
subResultsExportElement.classList.add("btn-flat");
|
||||
clearTimeout();
|
||||
}, 3000)
|
||||
console.log("Recieving results for export.");
|
||||
if (response.type === "sub-results") {
|
||||
results.subResultsData.init();
|
||||
results.subResultsData.matches.push(...response.payload.matches);
|
||||
results.subResultsData.addData(response.payload.cpos_lookup, "cpos_lookup");
|
||||
results.subResultsData.addData(response.payload.text_lookup, "text_lookup");
|
||||
results.subResultsData.addData(results.metaData);
|
||||
results.subResultsData.query = results.data.query;
|
||||
results.subResultsData.corpus_type = response.type;
|
||||
results.subResultsData.match_count = [...response.payload.matches].length;
|
||||
results.subResultsData.cpos_ranges = response.payload.cpos_ranges;
|
||||
// hides create element after all results are revieved
|
||||
subResultsCreateElement.classList.add("hide");
|
||||
// shows export element after create element hs been hidden
|
||||
subResultsExportElement.classList.remove("hide", "btn-flat");
|
||||
subResultsExportElement.classList.add("pulse", "btn-small");
|
||||
setTimeout(() => {
|
||||
subResultsExportElement.classList.remove("pulse", "btn-small");
|
||||
subResultsExportElement.classList.add("btn-flat");
|
||||
clearTimeout();
|
||||
}, 3000)
|
||||
// Resets the subResultsCreateElement (removing spinner with setting innerText)
|
||||
subResultsCreateElement.innerText = "Create Sub-Results";
|
||||
subResultsCreateElement.insertAdjacentHTML("beforeend", `<i class="material-icons left">build</i>`);
|
||||
// reactivate resultsCreateElement
|
||||
resultsCreateElement.classList.remove("disabled");
|
||||
} else if (response.type === "results") {
|
||||
results.resultsData.init();
|
||||
results.resultsData.matches.push(...response.payload.matches);
|
||||
results.resultsData.addData(response.payload.cpos_lookup, "cpos_lookup");
|
||||
results.resultsData.addData(response.payload.text_lookup, "text_lookup");
|
||||
results.resultsData.addData(results.metaData);
|
||||
results.resultsData.query = results.data.query;
|
||||
results.resultsData.corpus_type = response.type;
|
||||
results.resultsData.match_count = [...response.payload.matches].length;
|
||||
results.resultsData.cpos_ranges = response.payload.cpos_ranges;
|
||||
// hides create element after all results are revieved
|
||||
resultsCreateElement.classList.add("hide");
|
||||
// shows export element after create element hs been hidden
|
||||
resultsExportElement.classList.remove("hide", "btn-flat");
|
||||
resultsExportElement.classList.add("pulse", "btn-small");
|
||||
setTimeout(() => {
|
||||
resultsExportElement.classList.remove("pulse", "btn-small");
|
||||
resultsExportElement.classList.add("btn-flat");
|
||||
clearTimeout();
|
||||
}, 3000)
|
||||
// Resets the resultsCreateElement (removing spinner with setting innerText)
|
||||
resultsCreateElement.innerText = "Create Sub-Results";
|
||||
resultsCreateElement.insertAdjacentHTML("beforeend", `<i class="material-icons left">build</i>`);
|
||||
// reactivate subResultsCreateElement
|
||||
subResultsCreateElement.classList.remove("disabled");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -43,7 +74,7 @@ function querySetup(payload) {
|
||||
nrMarkedMatches.innerText = 0;
|
||||
results.jsList.addToSubResultsStatus = {};
|
||||
results.jsList.addToSubResultsIdsToShow = new Set();
|
||||
queryResultsExportElement.classList.add("disabled");
|
||||
resultsExportElement.classList.add("disabled");
|
||||
addToSubResultsElement.setAttribute("disabled", "");
|
||||
queryResultsDeterminateElement.style.width = "0%";
|
||||
queryResultsProgressElement.classList.remove("hide");
|
||||
@ -89,7 +120,7 @@ function queryRenderResults(payload, imported=false) {
|
||||
if (progress === 100) {
|
||||
queryResultsProgressElement.classList.add("hide");
|
||||
queryResultsUserFeedbackElement.classList.add("hide");
|
||||
queryResultsExportElement.classList.remove("disabled");
|
||||
resultsExportElement.classList.remove("disabled");
|
||||
addToSubResultsElement.removeAttribute("disabled");
|
||||
// inital expert mode check and sub results activation
|
||||
results.jsList.activateInspect();
|
||||
@ -109,7 +140,6 @@ function queryRenderResults(payload, imported=false) {
|
||||
}
|
||||
helperQueryRenderResults(payload);
|
||||
progress = 100;
|
||||
console.log(progress);
|
||||
results.jsList.activateInspect();
|
||||
if (expertModeSwitchElement.checked) {
|
||||
results.jsList.expertModeOn("query-display");
|
||||
|
@ -423,7 +423,9 @@ class ResultsList extends List {
|
||||
// activate the add buttons
|
||||
activateAddToSubResults() {
|
||||
subResultsIdListElement.classList.remove("hide");
|
||||
subResultsCreateElement.classList.remove("hide");
|
||||
if (subResultsExportElement.classList.contains("hide")) {
|
||||
subResultsCreateElement.classList.remove("hide");
|
||||
}
|
||||
let addToSubResultsBtnElements = document.getElementsByClassName("add");
|
||||
for (let addToSubResultsBtn of addToSubResultsBtnElements) {
|
||||
addToSubResultsBtn.classList.remove("hide");
|
||||
@ -482,13 +484,14 @@ class ResultsList extends List {
|
||||
}
|
||||
// Toggles the create button accoring to the number of ids in addToSubResultsIdsToShow
|
||||
if ([...this.addToSubResultsIdsToShow].length > 0) {
|
||||
subResultsCreateElement.firstElementChild.classList.remove("disabled");
|
||||
subResultsCreateElement.classList.remove("disabled");
|
||||
} else if ([...this.addToSubResultsIdsToShow].length === 0) {
|
||||
subResultsCreateElement.firstElementChild.classList.add("disabled");
|
||||
subResultsCreateElement.classList.add("disabled");
|
||||
}
|
||||
// After a match as been added or removed the export button will be
|
||||
// disabled because the sub-results have been alterd and have to be built //// again.
|
||||
subResultsExportElement.classList.add("disabled");
|
||||
// hidden because the sub-results have been alterd and have to be built //// again. Thus subResultsCreateElement has to be shown again.
|
||||
subResultsExportElement.classList.add("hide");
|
||||
subResultsCreateElement.classList.remove("hide");
|
||||
// Also activate/deactivate buttons in the table/jsList results accordingly
|
||||
//if button in inspect was activated/deactivated.
|
||||
// This part only runs if tableCall is false.
|
||||
|
Reference in New Issue
Block a user