From 5d7485850049d43f5a426c13e0c3699680ed46d0 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Tue, 21 Jul 2015 17:01:54 +0200 Subject: [PATCH] edit.js - entityList - delete key deletes entities, hold shift to select a group of entities, moved appending single entity to selection to ctrl key --- examples/html/entityList.html | 37 ++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/examples/html/entityList.html b/examples/html/entityList.html index 9506c78994..62bbbd08a6 100644 --- a/examples/html/entityList.html +++ b/examples/html/entityList.html @@ -35,8 +35,32 @@ function onRowClicked(e) { var id = this.dataset.entityId; var selection = [this.dataset.entityId]; - if (e.shiftKey) { + if (e.ctrlKey) { selection = selection.concat(selectedEntities); + } else if (e.shiftKey && selectedEntities.length > 0) { + var previousItemFound = -1; + var clickedItemFound = -1; + for (var i in entityList.visibleItems) { + if (clickedItemFound === -1 && this.dataset.entityId == entityList.visibleItems[i].values().id) { + clickedItemFound = i; + } else if(previousItemFound === -1 && selectedEntities[0] == entityList.visibleItems[i].values().id) { + previousItemFound = i; + } + } + if (previousItemFound !== -1 && clickedItemFound !== -1) { + var betweenItems = []; + var toItem = Math.max(previousItemFound, clickedItemFound); + // skip first and last item in this loop, we add them to selection after the loop + for (var i = (Math.min(previousItemFound, clickedItemFound) + 1); i < toItem; i++) { + entityList.visibleItems[i].elm.className = 'selected'; + betweenItems.push(entityList.visibleItems[i].values().id); + } + if (previousItemFound > clickedItemFound) { + // always make sure that we add the items in the right order + betweenItems.reverse(); + } + selection = selection.concat(betweenItems, selectedEntities); + } } selectedEntities = selection; @@ -151,6 +175,17 @@ refreshEntities(); } + document.addEventListener("keydown", function (e) { + if (e.target.nodeName === "INPUT") { + return; + } + var keyCode = e.keyCode; + if (keyCode === 46) { + EventBridge.emitWebEvent(JSON.stringify({ type: 'delete' })); + refreshEntities(); + } + }, false); + if (window.EventBridge !== undefined) { EventBridge.scriptEventReceived.connect(function(data) { data = JSON.parse(data);