mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-14 16:55:42 +00:00
Query Builder input fix
This commit is contained in:
parent
b8bcb159a2
commit
21d6072f6f
@ -147,7 +147,8 @@ class ConcordanceQueryBuilder {
|
||||
this.elements.positionalAttr.addEventListener('change', () => {this.tokenTypeSelector();});
|
||||
this.elements.tokenSubmitButton.addEventListener('click', () => {this.addTokenToQuery();});
|
||||
|
||||
|
||||
this.elements.wordInput.addEventListener('input', () => {this.inputFieldHandler();});
|
||||
this.elements.lemmaInput.addEventListener('input', () => {this.inputFieldHandler();});
|
||||
this.elements.ignoreCase.addEventListener('change', () => {this.inputOptionHandler(this.elements.ignoreCase);});
|
||||
this.elements.wildcardChar.addEventListener('click', () => {this.inputOptionHandler(this.elements.wildcardChar);});
|
||||
this.elements.optionGroup.addEventListener('click', () => {this.inputOptionHandler(this.elements.optionGroup);});
|
||||
@ -181,25 +182,11 @@ class ConcordanceQueryBuilder {
|
||||
|
||||
showPositionalAttrArea() {
|
||||
this.elements.positionalAttrArea.classList.remove('hide');
|
||||
this.elements.wordBuilder.classList.remove('hide');
|
||||
this.elements.inputOptions.classList.remove('hide');
|
||||
this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
this.elements.conditionContainer.classList.remove('hide');
|
||||
this.elements.ignoreCaseCheckbox.classList.remove('hide');
|
||||
this.elements.structuralAttrArea.classList.add('hide');
|
||||
this.elements.lemmaBuilder.classList.add('hide');
|
||||
this.elements.englishPosBuilder.classList.add('hide');
|
||||
this.elements.germanPosBuilder.classList.add('hide');
|
||||
this.elements.simplePosBuilder.classList.add('hide');
|
||||
this.wordBuilder();
|
||||
|
||||
this.elements.tokenQueryFilled = false;
|
||||
|
||||
window.location.href = '#token-builder-content';
|
||||
|
||||
// Resets materialize select field to default value
|
||||
let SelectInstance = M.FormSelect.getInstance(this.elements.positionalAttr);
|
||||
SelectInstance.input.value = 'word';
|
||||
this.elements.positionalAttr.value = 'word';
|
||||
}
|
||||
|
||||
showStructuralAttrArea() {
|
||||
@ -266,11 +253,15 @@ class ConcordanceQueryBuilder {
|
||||
});
|
||||
|
||||
// Ensures that metadata is always at the end of the query:
|
||||
if (this.elements.yourQuery.lastChild === null || this.elements.yourQuery.lastChild.dataset.type !== 'text-annotation') {
|
||||
const lastChild = this.elements.yourQuery.lastChild;
|
||||
const isLastChildTextAnnotation = lastChild && lastChild.dataset.type === 'text-annotation';
|
||||
|
||||
if (!isLastChildTextAnnotation) {
|
||||
this.elements.yourQuery.appendChild(queryChipElement);
|
||||
} else if (this.elements.yourQuery.lastChild.dataset.type === 'text-annotation') {
|
||||
this.elements.yourQuery.insertBefore(queryChipElement, this.elements.yourQuery.lastChild);
|
||||
} else {
|
||||
this.elements.yourQuery.insertBefore(queryChipElement, lastChild);
|
||||
}
|
||||
|
||||
this.elements.queryContainer.classList.remove('hide');
|
||||
this.queryPreviewBuilder();
|
||||
|
||||
@ -313,7 +304,7 @@ class ConcordanceQueryBuilder {
|
||||
insertQuery() {
|
||||
this.elements.yourQueryContent = [];
|
||||
this.validateValue();
|
||||
if (this.elements.valueValidator === true) {
|
||||
if (this.elements.valueValidator) {
|
||||
for (let element of this.elements.yourQuery.childNodes) {
|
||||
let queryElement = decodeURI(element.dataset.query);
|
||||
if (queryElement !== 'undefined') {
|
||||
@ -493,7 +484,6 @@ class ConcordanceQueryBuilder {
|
||||
c = '';
|
||||
}
|
||||
|
||||
|
||||
for (let element of this.elements.tokenQuery.childNodes) {
|
||||
tokenQueryContent += ' ' + element.firstChild.data + ' ';
|
||||
tokenQueryText += decodeURI(element.dataset.tokentext);
|
||||
@ -581,6 +571,26 @@ class ConcordanceQueryBuilder {
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
inputFieldHandler() {
|
||||
let input;
|
||||
|
||||
if (this.elements.wordBuilder.classList.contains('hide') === false) {
|
||||
input = this.elements.wordInput;
|
||||
} else {
|
||||
input = this.elements.lemmaInput;
|
||||
}
|
||||
|
||||
if (input.value === '') {
|
||||
this.elements.incidenceModifiersButton.firstElementChild.classList.add('disabled');
|
||||
this.elements.or.classList.add('disabled');
|
||||
this.elements.and.classList.add('disabled');
|
||||
} else {
|
||||
this.elements.incidenceModifiersButton.firstElementChild.classList.remove('disabled');
|
||||
this.elements.or.classList.remove('disabled');
|
||||
this.elements.and.classList.remove('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
//#endregion General functions of the Token Builder
|
||||
|
||||
//#region Dropdown Select Handler
|
||||
@ -592,7 +602,11 @@ class ConcordanceQueryBuilder {
|
||||
this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
this.elements.conditionContainer.classList.remove('hide');
|
||||
this.elements.ignoreCaseCheckbox.classList.remove('hide');
|
||||
|
||||
|
||||
this.elements.incidenceModifiersButton.firstElementChild.classList.add('disabled');
|
||||
this.elements.or.classList.add('disabled');
|
||||
this.elements.and.classList.add('disabled');
|
||||
|
||||
// Resets materialize select field to default value
|
||||
let SelectInstance = M.FormSelect.getInstance(this.elements.positionalAttr);
|
||||
SelectInstance.input.value = 'word';
|
||||
@ -602,17 +616,23 @@ class ConcordanceQueryBuilder {
|
||||
|
||||
lemmaBuilder() {
|
||||
this.hideEverything();
|
||||
this.elements.lemmaInput.value = '';
|
||||
this.elements.lemmaBuilder.classList.remove('hide');
|
||||
this.elements.inputOptions.classList.remove('hide');
|
||||
this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
this.elements.incidenceModifiersButton.firstElementChild.classList.add('disabled');
|
||||
this.elements.conditionContainer.classList.remove('hide');
|
||||
this.elements.ignoreCaseCheckbox.classList.remove('hide');
|
||||
|
||||
this.elements.incidenceModifiersButton.firstElementChild.classList.add('disabled');
|
||||
this.elements.or.classList.add('disabled');
|
||||
this.elements.and.classList.add('disabled');
|
||||
}
|
||||
|
||||
englishPosHandler() {
|
||||
this.hideEverything();
|
||||
this.elements.englishPosBuilder.classList.remove('hide');
|
||||
this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
// this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
this.elements.conditionContainer.classList.remove('hide');
|
||||
|
||||
// Resets materialize select dropdown
|
||||
@ -624,7 +644,7 @@ class ConcordanceQueryBuilder {
|
||||
germanPosHandler() {
|
||||
this.hideEverything();
|
||||
this.elements.germanPosBuilder.classList.remove('hide');
|
||||
this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
// this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
this.elements.conditionContainer.classList.remove('hide');
|
||||
|
||||
// Resets materialize select dropdown
|
||||
@ -636,7 +656,7 @@ class ConcordanceQueryBuilder {
|
||||
simplePosBuilder() {
|
||||
this.hideEverything();
|
||||
this.elements.simplePosBuilder.classList.remove('hide');
|
||||
this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
// this.elements.incidenceModifiersButton.classList.remove('hide');
|
||||
this.elements.conditionContainer.classList.remove('hide');
|
||||
this.elements.simplePos.selectedIndex = 0;
|
||||
|
||||
@ -662,7 +682,7 @@ class ConcordanceQueryBuilder {
|
||||
if (this.elements.wordBuilder.classList.contains('hide') === false) {
|
||||
input = this.elements.wordInput;
|
||||
} else {
|
||||
input = this.elements.lemmaInput;
|
||||
input = this.elements.lemmaInput;
|
||||
}
|
||||
|
||||
if (elem === this.elements.optionGroup) {
|
||||
|
Loading…
Reference in New Issue
Block a user