mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 01:05:42 +00:00
42 lines
2.4 KiB
JavaScript
42 lines
2.4 KiB
JavaScript
class ConcordanceQueryBuilder {
|
|
|
|
constructor() {
|
|
|
|
this.elements = new ElementReferencesQueryBuilder();
|
|
this.generalFunctions = new GeneralFunctionsQueryBuilder(this.elements);
|
|
this.tokenAttributeBuilderFunctions = new TokenAttributeBuilderFunctionsQueryBuilder(this.elements);
|
|
this.structuralAttributeBuilderFunctions = new StructuralAttributeBuilderFunctionsQueryBuilder(this.elements);
|
|
|
|
// Eventlisteners for the incidence modifiers. There are two different types of incidence modifiers: token and character incidence modifiers.
|
|
document.querySelectorAll('.incidence-modifier-selection').forEach(button => {
|
|
let dropdownId = button.parentNode.parentNode.id;
|
|
if (dropdownId === 'corpus-analysis-concordance-token-incidence-modifiers-dropdown') {
|
|
button.addEventListener('click', () => this.generalFunctions.tokenIncidenceModifierHandler(button.dataset.token, button.innerHTML));
|
|
} else if (dropdownId === 'corpus-analysis-concordance-character-incidence-modifiers-dropdown') {
|
|
button.addEventListener('click', () => this.tokenAttributeBuilderFunctions.characterIncidenceModifierHandler(button));
|
|
}
|
|
});
|
|
|
|
// Eventlisteners for the submit of n- and m-values of the incidence modifier modal for "exactly n" or "between n and m".
|
|
document.querySelectorAll('.n-m-submit-button').forEach(button => {
|
|
let modalId = button.dataset.modalId;
|
|
if (modalId === 'corpus-analysis-concordance-exactly-n-token-modal' || modalId === 'corpus-analysis-concordance-between-nm-token-modal') {
|
|
button.addEventListener('click', () => this.generalFunctions.tokenNMSubmitHandler(modalId));
|
|
} else if (modalId === 'corpus-analysis-concordance-exactly-n-character-modal' || modalId === 'corpus-analysis-concordance-between-nm-character-modal') {
|
|
button.addEventListener('click', () => this.generalFunctions.characterNMSubmitHandler(modalId));
|
|
}
|
|
});
|
|
|
|
document.querySelector('#corpus-analysis-concordance-text-annotation-submit').addEventListener('click', () => this.structuralAttributeBuilderFunctions.textAnnotationSubmitHandler());
|
|
|
|
this.elements.positionalAttrModal = M.Modal.init(
|
|
document.querySelector('#corpus-analysis-concordance-positional-attr-modal'),
|
|
{
|
|
onOpenStart: () => {
|
|
this.tokenAttributeBuilderFunctions.optionToggleHandler();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|