Add switch to download full context results or not.

This commit is contained in:
Stephan Porada
2020-09-15 17:18:22 +02:00
parent 27f40b98a3
commit c0472eb6c5
5 changed files with 123 additions and 8 deletions

View File

@ -245,6 +245,7 @@ document.addEventListener("DOMContentLoaded", () => {
'#show-meta-data',
'#sub-results-create',
'#sub-results-export',
'#export-full-inspect-context',
]);
/**
@ -322,6 +323,19 @@ document.addEventListener("DOMContentLoaded", () => {
}
};
/**
* Checks if resultsList.exportFullInspectContext switch is changed.#
* If it has been changed reset all Download buttons.
*/
resultsList.exportFullInspectContext.onchange = (event) => {
// Hide all download buttons.
resultsList.fullResultsExport.classList.toggle('hide', true);
resultsList.subResultsExport.classList.toggle('hide', true);
// Show result create buttons.
resultsList.fullResultsCreate.classList.toggle('hide', false);
resultsList.subResultsCreate.classList.toggle('hide', false);
}
/**
* The following event listeners are handeling the data export.
* 1. Create full-results
@ -338,7 +352,9 @@ document.addEventListener("DOMContentLoaded", () => {
loadingSpinnerHTML);
let dataIndexes = [...Array(results.data.match_count).keys()];
resultsList.notifyClient('get-results', { resultsType: 'full-results',
dataIndexes: dataIndexes});
dataIndexes: dataIndexes,
resultsList: resultsList,
});
}
// 2. Add events for sub-results create
resultsList.subResultsCreate.onclick = (event) => {
@ -351,14 +367,20 @@ document.addEventListener("DOMContentLoaded", () => {
resultsList.subResultsCreate.insertAdjacentHTML('afterbegin',
loadingSpinnerHTML);
resultsList.notifyClient('get-results', { resultsType: 'sub-results',
dataIndexes: dataIndexes});
dataIndexes: dataIndexes,
resultsList: resultsList,
});
}
// 3. Open download modal when full results export button is pressed
resultsList.fullResultsExport.onclick = (event) => {
resultsList.queryResultsDownloadModal.open();
// add onclick to download JSON button and download the file
resultsList.downloadResultsJson.onclick = (event) => {
let filename = results.fullResultsData.createDownloadFilename('full-results');
let suffix = 'full-results'
if (resultsList.exportFullInspectContext.checked) {
suffix += '_full-context';
}
let filename = results.fullResultsData.createDownloadFilename(suffix);
results.fullResultsData.addData(results.metaData);
results.fullResultsData.downloadJSONRessource(filename,
results.fullResultsData,
@ -369,7 +391,11 @@ document.addEventListener("DOMContentLoaded", () => {
resultsList.queryResultsDownloadModal.open();
// add onclick to download JSON button and download the file
resultsList.downloadResultsJson.onclick = (event) => {
let filename = results.subResultsData.createDownloadFilename('sub-results');
let suffix = 'sub-results'
if (resultsList.exportFullInspectContext.checked) {
suffix += '_full-context';
}
let filename = results.subResultsData.createDownloadFilename(suffix);
results.subResultsData.addData(results.metaData);
results.subResultsData.downloadJSONRessource(filename,
results.subResultsData,
@ -380,7 +406,7 @@ document.addEventListener("DOMContentLoaded", () => {
resultsList.queryResultsDownloadModal.open();
// add onclick to download JSON button and download the file
resultsList.downloadResultsJson.onclick = (event) => {
let filename = results.subResultsData.createDownloadFilename('inspect-results');
let filename = results.subResultsData.createDownloadFilename('inspect-results_full-context');
results.subResultsData.addData(results.metaData);
results.subResultsData.downloadJSONRessource(filename,
results.inspectResultsData,

View File

@ -5,6 +5,26 @@ the selected sub results.-->
<h6 style="margin-top: 0px;">Export</h6>
<div class="divider" style="margin-bottom: 10px;"></div>
<div class="row">
<div class="col s12" style="line-height: 38px;">
<div class="col s8">
Full context
<a class="tooltipped black-text" data-tooltip="Check this switch to
create results for the download with full context. Creating
results like this will take much longer but you will be able to
inspect your matches in detail when you import them into the query
results viewer.">
<i class="material-icons tiny">info_outline</i>
</a>
</div>
<div class="class col s4">
<div class="switch">
<label style="margin-left: -20px;">
<input type="checkbox" id="export-full-inspect-context">
<span class="lever"></span>
</label>
</div>
</div>
</div>
<div class="col s12">
<button class="waves-effect
waves-light