From 5961a3f843d674626597cd11a79e0f804edd0e6f Mon Sep 17 00:00:00 2001 From: Stephan Porada Date: Thu, 8 Oct 2020 09:25:06 +0200 Subject: [PATCH] Rework query_results/inspect template to load listeners from view listeners. --- .../templates/corpora/analyse_corpus.html.j2 | 4 +- .../templates/query_results/inspect.html.j2 | 59 +++++++++++++------ 2 files changed, 43 insertions(+), 20 deletions(-) diff --git a/web/app/templates/corpora/analyse_corpus.html.j2 b/web/app/templates/corpora/analyse_corpus.html.j2 index c127b6f5..676b0087 100644 --- a/web/app/templates/corpora/analyse_corpus.html.j2 +++ b/web/app/templates/corpora/analyse_corpus.html.j2 @@ -247,7 +247,7 @@ document.addEventListener("DOMContentLoaded", () => { '#sub-results-export', '#export-full-inspect-context', ]); - let args = [resultsList, results, client] + let args = [resultsList, results, client]; const listenForPageNavigation = new ViewEventListener('page-navigation', pageNavigation, args); @@ -284,7 +284,7 @@ document.addEventListener("DOMContentLoaded", () => { const listenForExportSingleMatch = new ViewEventListener('export-single-match', exportSingleMatch, args); - // Set and load define listeners + // Set and load defined listeners resultsList.setViewEventListeners([ listenForClientNotification, listenForPageNavigation, diff --git a/web/app/templates/query_results/inspect.html.j2 b/web/app/templates/query_results/inspect.html.j2 index 4ec65fb1..55616582 100644 --- a/web/app/templates/query_results/inspect.html.j2 +++ b/web/app/templates/query_results/inspect.html.j2 @@ -100,20 +100,19 @@ import { } from '../../static/js/modules/corpus_analysis/view/ResultsView.js'; // Import listener which will be registered to the ViewEventListener class. import { + // listener listening for client dispatched 'notify-vie' custom event. recieveClientNotification, -} from '../../static/js/modules/corpus_analysis/view/listeners.js'; -import { - scrollToTop, -} from '../../static/js/modules/corpus_analysis/view/scrollToTop.js' -// vanilla javascript Event listeners which are listening for button clicks etc -import { + // vanilla javascript Event listeners which are listening for button clicks. pageNavigation, expertModeSwitch, actionButtons, displayOptions, showMetaData, showCorpusFiles, -} from '../../static/js/modules/corpus_analysis/view/eventListeners.js'; +} from '../../static/js/modules/corpus_analysis/view/listeners.js'; +import { + scrollToTop, +} from '../../static/js/modules/corpus_analysis/view/scrollToTop.js' /** * Second Phase: * Asynchronus and event driven code. @@ -162,9 +161,11 @@ document.addEventListener("DOMContentLoaded", () => { */ const listenForClientNotification = new ViewEventListener('notify-view', recieveClientNotification); - resultsList.setViewEventListeners([listenForClientNotification]); - resultsList.loadViewEventListeners(); - // Get all needed HTMLElements for the following event listeners. + /** + * Register vanilla Javascript events to the resultList listening for button + * clicks etc. done by the user. + * Get all needed HTMLElements for those event listeners before. + */ resultsList.getHTMLElements([ '.add-btn', '.pagination', @@ -196,6 +197,36 @@ document.addEventListener("DOMContentLoaded", () => { '#sub-results-create', '#sub-results-export', ]); + let args = [resultsList, results, client]; + const listenForPageNavigation = new ViewEventListener('page-navigation', + pageNavigation, + args); + const listenForExpertModeSwitch = new ViewEventListener('expert-mode', + expertModeSwitch, + args); + const listenForActionButtons = new ViewEventListener('action-buttons', + actionButtons, + args); + const listenForDisplayOptions = new ViewEventListener('display-otions', + displayOptions, + args); + const listenForShowMetaData = new ViewEventListener('show-meta-data', + showMetaData, + args); + const listenForShowCorpusFiles = new ViewEventListener('show-corpus-files', + showCorpusFiles, + args); + // Set and load defined listeners + resultsList.setViewEventListeners([ + listenForClientNotification, + listenForPageNavigation, + listenForExpertModeSwitch, + listenForActionButtons, + listenForDisplayOptions, + listenForShowMetaData, + listenForShowCorpusFiles, + ]); + resultsList.loadViewEventListeners(); // Hide buttons which are not needed when just inspecting results resultsList.inspectResultsExport.classList.add('hide'); // Execute client event listener callbacks manually because dynamicMode is false @@ -203,14 +234,6 @@ document.addEventListener("DOMContentLoaded", () => { // Save meta data to results after the init callback from line above results.metaData = metaDataJson; client.eventListeners['corpus_analysis_query_results'].executeCallbacks([resultsJson]); - - // Call the vanilla event listeners listening for clicks etc. from the user. - pageNavigation(resultsList, results, client); - expertModeSwitch(resultsList, results); - actionButtons(resultsList, results, client); - displayOptions(resultsList, results, client); - showMetaData(resultsList, results); - showCorpusFiles(resultsList, results); // Enable scroll to Top functionality. scrollToTop('#headline', '#menu-scroll-to-top-div'); });