mirror of
https://github.com/Karaka-Management/jsOMS.git
synced 2026-02-16 17:28:41 +00:00
many fixes and expands and module expansions
This commit is contained in:
parent
ec8838719b
commit
83798b7545
|
|
@ -22,7 +22,7 @@ export class AdvancedInput
|
||||||
this.id = e.id;
|
this.id = e.id;
|
||||||
this.inputComponent = e;
|
this.inputComponent = e;
|
||||||
this.inputField = this.inputComponent.getElementsByClassName('input')[0];
|
this.inputField = this.inputComponent.getElementsByClassName('input')[0];
|
||||||
this.dropdownElement = document.getElementById(this.id + '-dropdown');
|
this.dropdownElement = document.getElementById(this.id + '-popup');
|
||||||
this.tagElement = document.getElementById(this.id + '-tags');
|
this.tagElement = document.getElementById(this.id + '-tags');
|
||||||
this.dataList = this.dropdownElement.getElementsByTagName('table')[0];
|
this.dataList = this.dropdownElement.getElementsByTagName('table')[0];
|
||||||
this.dataListBody = this.dataList.getElementsByTagName('tbody')[0];
|
this.dataListBody = this.dataList.getElementsByTagName('tbody')[0];
|
||||||
|
|
@ -41,7 +41,7 @@ export class AdvancedInput
|
||||||
if (e.relatedTarget === null ||
|
if (e.relatedTarget === null ||
|
||||||
e.relatedTarget.parentElement === null ||
|
e.relatedTarget.parentElement === null ||
|
||||||
e.relatedTarget.parentElement.parentElement === null ||
|
e.relatedTarget.parentElement.parentElement === null ||
|
||||||
!jsOMS.hasClass(e.relatedTarget.parentElement.parentElement.parentElement, 'dropdown')
|
!jsOMS.hasClass(e.relatedTarget.parentElement.parentElement.parentElement, 'popup')
|
||||||
) {
|
) {
|
||||||
jsOMS.removeClass(self.dropdownElement, 'active');
|
jsOMS.removeClass(self.dropdownElement, 'active');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ export class AdvancedSelect
|
||||||
this.id = e.id;
|
this.id = e.id;
|
||||||
this.selectComponent = e;
|
this.selectComponent = e;
|
||||||
this.selectField = this.selectComponent.getElementsByClassName('input')[0];
|
this.selectField = this.selectComponent.getElementsByClassName('input')[0];
|
||||||
this.dropdownElement = document.getElementById(this.id + '-dropdown');
|
this.dropdownElement = document.getElementById(this.id + '-popup');
|
||||||
this.tagElement = document.getElementById(this.id + '-tags');
|
this.tagElement = document.getElementById(this.id + '-tags');
|
||||||
this.dataList = this.dropdownElement.getElementsByTagName('table')[0];
|
this.dataList = this.dropdownElement.getElementsByTagName('table')[0];
|
||||||
this.dataListBody = this.dataList.getElementsByTagName('tbody')[0];
|
this.dataListBody = this.dataList.getElementsByTagName('tbody')[0];
|
||||||
|
|
@ -47,7 +47,7 @@ export class AdvancedSelect
|
||||||
if (e.relatedTarget === null ||
|
if (e.relatedTarget === null ||
|
||||||
e.relatedTarget.parentElement === null ||
|
e.relatedTarget.parentElement === null ||
|
||||||
e.relatedTarget.parentElement.parentElement === null ||
|
e.relatedTarget.parentElement.parentElement === null ||
|
||||||
!jsOMS.hasClass(e.relatedTarget.parentElement.parentElement.parentElement, 'dropdown')
|
!jsOMS.hasClass(e.relatedTarget.parentElement.parentElement.parentElement, 'popup')
|
||||||
) {
|
) {
|
||||||
jsOMS.removeClass(self.dropdownElement, 'active');
|
jsOMS.removeClass(self.dropdownElement, 'active');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -263,8 +263,10 @@ export class Table
|
||||||
|
|
||||||
if (sortType === 1 && content1 > content2) {
|
if (sortType === 1 && content1 > content2) {
|
||||||
shouldSwitch = true;
|
shouldSwitch = true;
|
||||||
|
break;
|
||||||
} else if (sortType === -1 && content1 < content2) {
|
} else if (sortType === -1 && content1 < content2) {
|
||||||
shouldSwitch = true;
|
shouldSwitch = true;
|
||||||
|
break;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -378,7 +380,10 @@ export class Table
|
||||||
|
|
||||||
for (let i = 0; i < rowLength; ++i) {
|
for (let i = 0; i < rowLength; ++i) {
|
||||||
const box = rows[i].cells[columnId].querySelector('input[type=checkbox]');
|
const box = rows[i].cells[columnId].querySelector('input[type=checkbox]');
|
||||||
box.checked = status;
|
|
||||||
|
if (box !== null) {
|
||||||
|
box.checked = status;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,9 @@ export class HttpUri
|
||||||
*
|
*
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
*
|
*
|
||||||
|
* @todo The default parseer fails for uris which have a query without a value but a fragment e.g. ?debug#something.
|
||||||
|
* In such a case something#something is returned as fragment instead of just #something or something
|
||||||
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
static parseUrl (str, mode = 'php')
|
static parseUrl (str, mode = 'php')
|
||||||
|
|
@ -52,9 +55,9 @@ export class HttpUri
|
||||||
'relative', 'path', 'directory', 'file', 'query', 'fragment'
|
'relative', 'path', 'directory', 'file', 'query', 'fragment'
|
||||||
],
|
],
|
||||||
parser = {
|
parser = {
|
||||||
php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
||||||
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
|
||||||
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-scheme to catch file:/// (should restrict this)
|
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-scheme to catch file:/// (should restrict this)
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!parser.hasOwnProperty(mode)) {
|
if (!parser.hasOwnProperty(mode)) {
|
||||||
|
|
|
||||||
|
|
@ -126,11 +126,13 @@ export class UriFactory
|
||||||
*/
|
*/
|
||||||
static unique (url)
|
static unique (url)
|
||||||
{
|
{
|
||||||
|
// @todo: there is a bug for uris which have a parameter without a value and a fragment e.g. ?debug#something.
|
||||||
|
// The fragment is ignored in such a case.
|
||||||
if (url.includes('?')) {
|
if (url.includes('?')) {
|
||||||
const parsed = HttpUri.parseUrl(url);
|
const parsed = HttpUri.parseUrl(url);
|
||||||
|
|
||||||
// unique queries
|
// unique queries
|
||||||
const parts = parsed.query.replace(/\?/g, '&').split('&'),
|
const parts = typeof parsed.query === 'undefined' ? [] : parsed.query.replace(/\?/g, '&').split('&'),
|
||||||
full = url.split('?')[0],
|
full = url.split('?')[0],
|
||||||
pars = [];
|
pars = [];
|
||||||
|
|
||||||
|
|
@ -140,12 +142,14 @@ export class UriFactory
|
||||||
|
|
||||||
for (let i = 0; i < length; ++i) {
|
for (let i = 0; i < length; ++i) {
|
||||||
spl = parts[i].split('=');
|
spl = parts[i].split('=');
|
||||||
comps[spl[0]] = spl[1];
|
comps[spl[0]] = spl.length < 2 ? '' : spl[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const a in comps) {
|
for (const a in comps) {
|
||||||
if (comps.hasOwnProperty(a) && comps[a] !== '' && comps[a] !== null) {
|
if (comps.hasOwnProperty(a) && comps[a] !== '' && comps[a] !== null && typeof comps[a] !== 'undefined') {
|
||||||
pars.push(a + '=' + (comps[a].includes('%') ? comps[a] : encodeURIComponent(comps[a])));
|
pars.push(a + '=' + (comps[a].includes('%') ? comps[a] : encodeURIComponent(comps[a])));
|
||||||
|
} else if (comps.hasOwnProperty(a)) {
|
||||||
|
pars.push(a);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user