mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-13 09:30:40 +00:00
Add switch to download full context results or not.
This commit is contained in:
@ -114,6 +114,8 @@ class Client {
|
||||
* Requests results data either for, 'full-results', 'sub-results' or
|
||||
* 'inspect-results' (resultsType).
|
||||
* Gets full results for evere provided dataIndex (one match).
|
||||
* Full results means with full context. So the Client has to request all
|
||||
* matches from the server again!
|
||||
**/
|
||||
getResultsData(resultsType, dataIndexes, results) {
|
||||
let tmp_first_cpos = [];
|
||||
@ -129,6 +131,65 @@ class Client {
|
||||
last_cpos: tmp_last_cpos,});
|
||||
}
|
||||
|
||||
//
|
||||
getResultsDataWithoutContext(resultsType, dataIndexes, results, resultsList) {
|
||||
let objectKey = '';
|
||||
if (resultsType === 'full-results') {
|
||||
console.info('Saving full-results data without full context.');
|
||||
objectKey = 'fullResultsData';
|
||||
} else if (resultsType === 'sub-results') {
|
||||
console.info('Saving sub-results data without full context.');
|
||||
objectKey = 'subResultsData';
|
||||
}
|
||||
// Get matches from results.data.
|
||||
let matches = [];
|
||||
let cpos = [];
|
||||
let match;
|
||||
for (let index of dataIndexes) {
|
||||
match = results.data.matches[index]
|
||||
matches.push(match)
|
||||
// Get cpos from match.
|
||||
let {lc, c, rc} = resultsList.helperCreateCpos(results.data.cpos_ranges,
|
||||
match);
|
||||
cpos.push(...lc);
|
||||
cpos.push(...c);
|
||||
cpos.push(...rc);
|
||||
}
|
||||
// Get cpos_lookups from cposes.
|
||||
let cpos_lookup = {};
|
||||
let single_lookup = {};
|
||||
let textIds = new Set;
|
||||
for (let single_cpos of cpos) {
|
||||
single_lookup[single_cpos] = results.data.cpos_lookup[single_cpos];
|
||||
textIds.add(single_lookup[single_cpos].text);
|
||||
Object.assign(cpos_lookup, single_lookup);
|
||||
}
|
||||
let text = {};
|
||||
let text_lookup = {};
|
||||
for (let id of textIds) {
|
||||
text[id] = results.data.text_lookup[id];
|
||||
Object.assign(text_lookup, text);
|
||||
}
|
||||
/**
|
||||
* Save the data from results.dat either in results.fullResultsData or
|
||||
* results.subResultsData.
|
||||
*/
|
||||
results[objectKey].init();
|
||||
results[objectKey].matches.push(...matches);
|
||||
results[objectKey].addData(cpos_lookup, "cpos_lookup");
|
||||
results[objectKey].addData(text_lookup, "text_lookup");
|
||||
results[objectKey].addData(results.metaData);
|
||||
results[objectKey].query = results.data.query;
|
||||
results[objectKey].corpus_type = resultsType;
|
||||
results[objectKey].match_count = matches.length;
|
||||
results[objectKey].cpos_ranges = results.data.cpos_ranges;
|
||||
results[objectKey].fullContext = false;
|
||||
console.info('Results data without context has been saved.', results);
|
||||
this.isBusy = false;
|
||||
this.notifyView('results-data-recieved', {type: resultsType,
|
||||
results: results});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -71,10 +71,16 @@ function saveQueryData() {
|
||||
}
|
||||
|
||||
function getResultsData() {
|
||||
let [resultsType, dataIndexes, client, results, rest] = arguments;
|
||||
let [resultsType, dataIndexes, resultsList, client, results, rest] = arguments;
|
||||
client.isBusy = true;
|
||||
client.notifyView('results-data-recieving');
|
||||
client.getResultsData(resultsType, dataIndexes, results);
|
||||
if (resultsList.exportFullInspectContext.checked) {
|
||||
console.log('Get with full context');
|
||||
client.getResultsData(resultsType, dataIndexes, results);
|
||||
} else {
|
||||
client.getResultsDataWithoutContext(resultsType, dataIndexes, results,
|
||||
resultsList);
|
||||
}
|
||||
}
|
||||
|
||||
function saveResultsData() {
|
||||
@ -100,6 +106,7 @@ function saveResultsData() {
|
||||
results[objectKey].corpus_type = type;
|
||||
results[objectKey].match_count = [...payload.matches].length;
|
||||
results[objectKey].cpos_ranges = payload.cpos_ranges;
|
||||
results[objectKey].fullContext = true;
|
||||
console.info('Results data has been saved.', results);
|
||||
client.isBusy = false;
|
||||
client.notifyView('results-data-recieved', {type: type,
|
||||
|
@ -179,7 +179,8 @@ function recieveViewNotification(type, client) {
|
||||
console.info('Client getting full results for export.');
|
||||
// execute callback or functions
|
||||
client.eventListeners[type].executeCallback([event.detail.resultsType,
|
||||
event.detail.dataIndexes],
|
||||
event.detail.dataIndexes,
|
||||
event.detail.resultsList],
|
||||
caseIdentifier);
|
||||
break
|
||||
default:
|
||||
|
Reference in New Issue
Block a user