bug fixes

This commit is contained in:
Dennis Eichhorn 2024-05-12 00:06:29 +00:00
parent b167ae5696
commit 61aa586189
5 changed files with 35 additions and 30 deletions

View File

@ -9,5 +9,5 @@ jobs:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: 'Thank you for createing this issue. We will check it as soon as possible.' issue-message: 'Thank you for creating this issue. We will check it as soon as possible.'
pr-message: 'Thank you for your pull request. We will check it as soon as possible.' pr-message: 'Thank you for your pull request. We will check it as soon as possible.'

View File

@ -1,15 +0,0 @@
/**
* Notification type.
*
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @since 1.0.0
*/
export const EnumNotifyType = Object.freeze({
BINARY: 0,
INFO: 1,
WARNING: 2,
ERROR: 3,
FATAL: 4
});

View File

@ -1180,6 +1180,17 @@ export class Form
const redirect = form.getFormElement().getAttribute('data-redirect'); const redirect = form.getFormElement().getAttribute('data-redirect');
if (form.getMethod() === 'GET_REDIRECT') {
let url = form.getAction();
for (const pair of data) {
url += '&' + pair[0] + '=' + pair[1];
}
window.location.href = url;
return;
}
request.setData(data); request.setData(data);
request.setType(RequestType.FORM_DATA); // @todo consider to allow different request type request.setType(RequestType.FORM_DATA); // @todo consider to allow different request type
request.setUri(action !== null ? action : form.getAction()); request.setUri(action !== null ? action : form.getAction());

View File

@ -31,13 +31,10 @@ export class SmartTextInput
this.inputComponent = e; this.inputComponent = e;
this.inputField = this.inputComponent.getElementsByClassName('input-div')[0]; this.inputField = this.inputComponent.getElementsByClassName('input-div')[0];
// @todo Implement. Then find all data-tpl-value and data-tpl-text which are the elements to fill
this.dataContainer = this.inputField.getAttribute('data-container') === ''
? this.inputComponent
: this.inputField.closest(this.inputField.getAttribute('data-container'));
this.dataList = this.inputComponent.getElementsByClassName('input-datalist')[0]; this.dataList = this.inputComponent.getElementsByClassName('input-datalist')[0];
this.dataListBody = this.inputComponent.getElementsByClassName('input-datalist-body')[0]; this.dataListBody = this.inputComponent.getElementsByClassName('input-datalist-body')[0];
this.dataTpl = document.getElementsByClassName('input-data-tpl')[0]; this.dataTpl = document.getElementsByClassName('input-data-tpl')[0];
this.elementContainer = this.dataTpl.hasAttribute('data-container') ? this.dataTpl.getAttribute('data-container') : '';
this.src = this.inputComponent.getAttribute('data-src'); this.src = this.inputComponent.getAttribute('data-src');
const self = this; const self = this;
@ -69,8 +66,13 @@ export class SmartTextInput
if (length > 0 && self.inputField.getAttribute('data-value') !== '') { if (length > 0 && self.inputField.getAttribute('data-value') !== '') {
let isValid = false; let isValid = false;
for (let i = 0; i < length; ++i) { for (let i = 0; i < length; ++i) {
if (list[i].textContent === self.inputField.textContent) { const textElements = list[i].hasAttribute('data-tpl-text')
? [list[i]]
: list[i].querySelectorAll('[data-tpl-text]');
if (Array.from(textElements).map(e => e.textContent).join(' ').trim() === self.inputField.textContent) {
isValid = true; isValid = true;
break; break;
@ -128,13 +130,13 @@ export class SmartTextInput
} }
} else if (e.code === 'Enter' || e.code === 'Tab') { } else if (e.code === 'Enter' || e.code === 'Tab') {
self.clearDataListSelection(self); self.clearDataListSelection(self);
self.addToResultList(self, document.activeElement); self.addToResultList(self, self.elementContainer === '' ? document.activeElement : document.activeElement.closest('.' + self.elementContainer));
} }
}); });
this.dataList.addEventListener('click', function (e) { this.dataList.addEventListener('click', function (e) {
self.clearDataListSelection(self); self.clearDataListSelection(self);
self.addToResultList(self, e.target); self.addToResultList(self, self.elementContainer === '' ? e.target : e.target.closest('.' + self.elementContainer));
self.dataList.classList.add('vh'); self.dataList.classList.add('vh');
}); });
}; };
@ -291,8 +293,11 @@ export class SmartTextInput
self.inputField.value = jsOMS.getArray(self.inputField.getAttribute('data-value'), data); self.inputField.value = jsOMS.getArray(self.inputField.getAttribute('data-value'), data);
} }
self.inputField.setAttribute('data-value', e.getAttribute('data-value')); const value = e.hasAttribute('data-value') ? e.getAttribute('data-value') : e.querySelector('[data-value]').getAttribute('data-value');
self.inputField.textContent = e.textContent; const textElements = e.hasAttribute('data-tpl-text') ? [e] : e.querySelectorAll('[data-tpl-text]');
self.inputField.setAttribute('data-value', value);
self.inputField.textContent = Array.from(textElements).map(e => e.textContent).join(' ').trim();
self.inputField.focus(); self.inputField.focus();
self.dataList.classList.add('vh'); self.dataList.classList.add('vh');

View File

@ -37,12 +37,16 @@ export class MouseManager
*/ */
add (element, type, button, callback, exact) add (element, type, button, callback, exact)
{ {
if (typeof this.elements[element] === 'undefined') { const elements = document.querySelectorAll(element);
this.elements[element] = []; const length = elements.length;
for (let i = 0; i < length; ++i) {
if (typeof this.elements[elements[i].id] === 'undefined') {
this.elements[elements[i].id] = [];
} }
this.bind(element, type); this.bind(elements[i].id, type);
this.elements[element].push({ callback: callback, type: type, button: button, exact: exact }); this.elements[elements[i].id].push({ callback: callback, type: type, button: button, exact: exact });
}
}; };
/** /**