diff --git a/web/app/static/js/modules/corpus_analysis/client/callbacks.js b/web/app/static/js/modules/corpus_analysis/client/callbacks.js index 66fe3c8f..7a50726d 100644 --- a/web/app/static/js/modules/corpus_analysis/client/callbacks.js +++ b/web/app/static/js/modules/corpus_analysis/client/callbacks.js @@ -33,13 +33,24 @@ function prepareQueryData() { */ function saveQueryData() { let [payload, client, results, rest] = arguments; + // Get data matches length before new chunk data is being inserted let dataLength = results.data.matches.length; if (client.dynamicMode) { - // get data matches length before new chunk data is being inserted - // incorporating new chunk data into full results + // Incorporating new chunk data into full results results.data.matches.push(...payload.chunk.matches); results.data.addData(payload.chunk.cpos_lookup, 'cpos_lookup'); results.data.addData(payload.chunk.text_lookup, 'text_lookup'); + console.log(payload.chunk.text_lookup); + /** + * Increment match_counts per text in a global results varaible because + * they are coming in chunkwise. + */ + for (let [text_key, value] of Object.entries(payload.chunk.text_lookup)) { + if (!(text_key in results.tmp_match_counts)) { + results.tmp_match_counts[text_key] = {match_count: 0}; + } + results.tmp_match_counts[text_key].match_count += payload.chunk.text_lookup[text_key].match_count; + } results.data.cpos_ranges = payload.chunk.cpos_ranges; let queryFormElement = document.querySelector('#query-form'); results.data.getQueryStr(queryFormElement); @@ -51,6 +62,10 @@ function saveQueryData() { console.info('Query data chunk saved', results.data); if (client.requestQueryProgress === 100) { client.isBusy = false; + // Update text_lookup with tmp_match_counts. + for (let [text_key, value] of Object.entries(results.tmp_match_counts)) { + results.data.text_lookup[text_key].match_count = results.tmp_match_counts[text_key].match_count; + } client.notifyView('query-data-recieved'); } } else { diff --git a/web/app/static/js/modules/corpus_analysis/model/Results.js b/web/app/static/js/modules/corpus_analysis/model/Results.js index 2d1ab7df..e2abd66e 100644 --- a/web/app/static/js/modules/corpus_analysis/model/Results.js +++ b/web/app/static/js/modules/corpus_analysis/model/Results.js @@ -22,6 +22,8 @@ class Results { this.fullResultsData.init(); this.subResultsData.init(); this.inspectResultsData.init(); + // Temporarly save match counts per text + this.tmp_match_counts = {}; } }