Make analyse OOP style

This commit is contained in:
Stephan Porada
2020-04-07 13:13:48 +02:00
parent 6260f2436a
commit 90ef828e61
5 changed files with 318 additions and 309 deletions

View File

@ -216,8 +216,6 @@
</script>
<script src="{{ url_for('static', filename='js/nopaque.callbacks.js') }}">
</script>
<script src="{{ url_for('static', filename='js/nopaque.analyse_corpus.js') }}">
</script>
<script>
// ###### Defining global variables used in other functions ######
var results; // results object
@ -247,7 +245,7 @@
displayOptionsFormElement = document.getElementById("display-options-form");
// js list options and intialization
let displayOptionsData = getDisplayOptions(displayOptionsFormElement);
let displayOptionsData = ResultsList.getDisplayOptions(displayOptionsFormElement);
let resultsListOptions = {page: displayOptionsData["resultsPerPage"],
pagination: [{
name: "paginationTop",
@ -287,9 +285,9 @@
exportModal = M.Modal.init(exportModal, {"dismissible": true});
initModal = M.Modal.init(initDisplayElement, {"dismissible": false});
// Init corpus analysis components
resultsJSON = {};
resultsJSON = new ResultsJSON();
resultsList = new ResultsList("result-list", resultsListOptions);
results = new Results(resultsJSON, resultsList);
results = new Results(resultsJSON, resultsList)
initDisplay = new CorpusAnalysisDisplay(initDisplayElement);
queryDisplay = new CorpusAnalysisDisplay(queryDisplayElement);
client = new CorpusAnalysisClient({{ corpus_id }}, nopaque.socket);
@ -315,30 +313,30 @@
queryFormElement.addEventListener("submit", (event) => {
// Prevent page from reloading on submit
event.preventDefault();
// empty list for new query
resultsList.clear();
// empty ResultsList and ResultsJSON for new query
results.clear_all()
// Get query string and send query to server
let queryStr = getQueryStr(queryFormElement);
client.query(queryStr);
results.resultsJSON.getQueryStr(queryFormElement);
client.query(results.resultsJSON.query);
});
// get context of one match if inspected via socket.io
nopaque.socket.on("match_context", showMatchContext);
nopaque.socket.on("match_context", (response) => { results.resultsList.showMatchContext(response)});
// live update of hits per page if hits per page value is changed
hitsPerPageInputElement = document.getElementById("display-options-form-results_per_page");
hitsPerPageInputElement.onchange = changeHitsPerPage;
hitsPerPageInputElement.onchange = results.resultsList.changeHitsPerPage;
// live update of lr context per item if context value is changed
contextPerItemElement = document.getElementById("display-options-form-result_context");
contextPerItemElement.onchange = changeContext;
contextPerItemElement.onchange = results.resultsList.changeContext;
// eventListener if pagination is used to apply new context size to new page
// and also activate inspect match if queryFinished is true
paginationElements = document.getElementsByClassName("pagination");
for (element of paginationElements) {
element.addEventListener("click", changeContext);
element.addEventListener("click", activateInspect);
element.addEventListener("click", results.resultsList.changeContext);
element.addEventListener("click", ResultsList.activateInspect);
}
// epxert mode table view
@ -347,14 +345,14 @@
let paginationElements = document.getElementsByClassName("pagination");
if (event.target.checked) {
console.log("Checked!");
expertModeOn(currentTokenElements, resultsJSON);
results.resultsList.expertModeOn(currentTokenElements, resultsJSON);
for (element of paginationElements) {
element.tokenElements = currentTokenElements;
element.addEventListener("click", eventHandlerCheck);
element.addEventListener("click", (event) => { results.resultsList.eventHandlerCheck(event)});
}
} else {
console.log("Unchecked!");
expertModeOff(currentTokenElements);
results.resultsList.expertModeOff(currentTokenElements);
console.log("unchecked! Destroy");
}
});
@ -368,7 +366,7 @@
// add onclick to download JSON button and download the file
downloadResultsJSONElement = document.getElementById("download-results-json")
downloadResultsJSONElement.onclick = function() {
let filename = createDownloadFilename();
downloadJSONRessource(filename)};
let filename = results.resultsJSON.createDownloadFilename();
results.resultsJSON.downloadJSONRessource(filename)};
</script>
{% endblock %}