Merge pull request #5698 from Nex-Pro/20657

CR for Job #20657 - Entities list trouble past 100 entities
This commit is contained in:
Brad Hefta-Gaub 2015-09-04 20:06:33 -07:00
commit 7b4e69a92d

View file

@ -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();
} }