mirror of
https://github.com/overte-org/overte.git
synced 2025-04-26 01:56:22 +02:00
Merge pull request #5698 from Nex-Pro/20657
CR for Job #20657 - Entities list trouble past 100 entities
This commit is contained in:
commit
7b4e69a92d
1 changed files with 25 additions and 23 deletions
|
@ -9,11 +9,13 @@
|
||||||
var currentSortOrder = 'asc';
|
var currentSortOrder = 'asc';
|
||||||
var entityList = null;
|
var entityList = null;
|
||||||
var refreshEntityListTimer = null;
|
var refreshEntityListTimer = null;
|
||||||
var ASC_STRING = ' ▾';
|
const ASCENDING_STRING = ' ▾';
|
||||||
var DESC_STRING = ' ▴';
|
const DESCENDING_STRING = ' ▴';
|
||||||
|
const DELETE = 46; // Key code for the delete key.
|
||||||
|
const MAX_ITEMS = Number.MAX_VALUE; // Used to set the max length of the list of discovered entities.
|
||||||
|
|
||||||
function loaded() {
|
function loaded() {
|
||||||
entityList = new List('entity-list', { valueNames: ['name', 'type', 'url']});
|
entityList = new List('entity-list', { valueNames: ['name', 'type', 'url'], page: MAX_ITEMS});
|
||||||
entityList.clear();
|
entityList.clear();
|
||||||
elEntityTable = document.getElementById("entity-table");
|
elEntityTable = document.getElementById("entity-table");
|
||||||
elEntityTableBody = document.getElementById("entity-table-body");
|
elEntityTableBody = document.getElementById("entity-table-body");
|
||||||
|
@ -34,19 +36,19 @@
|
||||||
setSortColumn('url');
|
setSortColumn('url');
|
||||||
};
|
};
|
||||||
|
|
||||||
function onRowClicked(e) {
|
function onRowClicked(clickEvent) {
|
||||||
var id = this.dataset.entityId;
|
var id = this.dataset.entityId;
|
||||||
var selection = [this.dataset.entityId];
|
var selection = [this.dataset.entityId];
|
||||||
if (e.ctrlKey) {
|
if (clickEvent.ctrlKey) {
|
||||||
selection = selection.concat(selectedEntities);
|
selection = selection.concat(selectedEntities);
|
||||||
} else if (e.shiftKey && selectedEntities.length > 0) {
|
} else if (clickEvent.shiftKey && selectedEntities.length > 0) {
|
||||||
var previousItemFound = -1;
|
var previousItemFound = -1;
|
||||||
var clickedItemFound = -1;
|
var clickedItemFound = -1;
|
||||||
for (var i in entityList.visibleItems) {
|
for (var entity in entityList.visibleItems) {
|
||||||
if (clickedItemFound === -1 && this.dataset.entityId == entityList.visibleItems[i].values().id) {
|
if (clickedItemFound === -1 && this.dataset.entityId == entityList.visibleItems[entity].values().id) {
|
||||||
clickedItemFound = i;
|
clickedItemFound = entity;
|
||||||
} else if(previousItemFound === -1 && selectedEntities[0] == entityList.visibleItems[i].values().id) {
|
} else if(previousItemFound === -1 && selectedEntities[0] == entityList.visibleItems[entity].values().id) {
|
||||||
previousItemFound = i;
|
previousItemFound = entity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (previousItemFound !== -1 && clickedItemFound !== -1) {
|
if (previousItemFound !== -1 && clickedItemFound !== -1) {
|
||||||
|
@ -90,19 +92,19 @@
|
||||||
var filename = urlParts[urlParts.length - 1];
|
var filename = urlParts[urlParts.length - 1];
|
||||||
|
|
||||||
entityList.add([{ id: id, name: name, type: type, url: filename }], function(items) {
|
entityList.add([{ id: id, name: name, type: type, url: filename }], function(items) {
|
||||||
var el = items[0].elm;
|
var currentElement = items[0].elm;
|
||||||
var id = items[0]._values.id;
|
var id = items[0]._values.id;
|
||||||
entities[id] = {
|
entities[id] = {
|
||||||
id: id,
|
id: id,
|
||||||
name: name,
|
name: name,
|
||||||
el: el,
|
el: currentElement,
|
||||||
item: items[0],
|
item: items[0],
|
||||||
};
|
};
|
||||||
el.setAttribute('id', 'entity_' + id);
|
currentElement.setAttribute('id', 'entity_' + id);
|
||||||
el.setAttribute('title', url);
|
currentElement.setAttribute('title', url);
|
||||||
el.dataset.entityId = id;
|
currentElement.dataset.entityId = id;
|
||||||
el.onclick = onRowClicked;
|
currentElement.onclick = onRowClicked;
|
||||||
el.ondblclick = onRowDoubleClicked;
|
currentElement.ondblclick = onRowDoubleClicked;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (refreshEntityListTimer) {
|
if (refreshEntityListTimer) {
|
||||||
|
@ -134,7 +136,7 @@
|
||||||
currentSortColumn = column;
|
currentSortColumn = column;
|
||||||
currentSortOrder = "asc";
|
currentSortOrder = "asc";
|
||||||
}
|
}
|
||||||
elSortOrder[column].innerHTML = currentSortOrder == "asc" ? ASC_STRING : DESC_STRING;
|
elSortOrder[column].innerHTML = currentSortOrder == "asc" ? ASCENDING_STRING : DESCENDING_STRING;
|
||||||
entityList.sort(currentSortColumn, { order: currentSortOrder });
|
entityList.sort(currentSortColumn, { order: currentSortOrder });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,12 +179,12 @@
|
||||||
refreshEntities();
|
refreshEntities();
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("keydown", function (e) {
|
document.addEventListener("keydown", function (keyDownEvent) {
|
||||||
if (e.target.nodeName === "INPUT") {
|
if (keyDownEvent.target.nodeName === "INPUT") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var keyCode = e.keyCode;
|
var keyCode = keyDownEvent.keyCode;
|
||||||
if (keyCode === 46) {
|
if (keyCode === DELETE) {
|
||||||
EventBridge.emitWebEvent(JSON.stringify({ type: 'delete' }));
|
EventBridge.emitWebEvent(JSON.stringify({ type: 'delete' }));
|
||||||
refreshEntities();
|
refreshEntities();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue