Merge pull request #5665 from ctrlaltdavid/20664

Add search radius field to entities list
This commit is contained in:
Ryan Downe Karpf 2015-09-01 14:39:53 -07:00
commit f0d69b1cdd
3 changed files with 33 additions and 8 deletions

View file

@ -20,7 +20,9 @@
elRefresh = document.getElementById("refresh"); elRefresh = document.getElementById("refresh");
elDelete = document.getElementById("delete"); elDelete = document.getElementById("delete");
elTeleport = document.getElementById("teleport"); elTeleport = document.getElementById("teleport");
elRadius = document.getElementById("radius");
elNoEntitiesMessage = document.getElementById("no-entities"); elNoEntitiesMessage = document.getElementById("no-entities");
elNoEntitiesRadius = document.getElementById("no-entities-radius");
document.getElementById("entity-name").onclick = function() { document.getElementById("entity-name").onclick = function() {
setSortColumn('name'); setSortColumn('name');
@ -186,6 +188,13 @@
} }
}, false); }, false);
elRadius.onchange = function () {
elRadius.value = Math.max(elRadius.value, 0);
EventBridge.emitWebEvent(JSON.stringify({ type: 'radius', radius: elRadius.value }));
refreshEntities();
elNoEntitiesRadius.firstChild.nodeValue = elRadius.value;
}
if (window.EventBridge !== undefined) { if (window.EventBridge !== undefined) {
EventBridge.scriptEventReceived.connect(function(data) { EventBridge.scriptEventReceived.connect(function(data) {
data = JSON.parse(data); data = JSON.parse(data);
@ -218,14 +227,15 @@
</head> </head>
<body onload='loaded();'> <body onload='loaded();'>
<div id="entity-list-header"> <div id="entity-list-header">
<input type="button" id="refresh" value="Refresh"></button> <input type="button" id="refresh" value="Refresh" />
<input type="button" id="teleport" value="Teleport"></button> <input type="button" id="teleport" value="Teleport" />
<input type="button" id="delete" style="background-color: rgb(244, 64, 64); float: right" value="Delete"></button> <input type="button" id="delete" style="background-color: rgb(244, 64, 64); float: right" value="Delete" />
</div> </div>
<div id="entity-list"> <div id="entity-list">
<div id="search-area"> <div id="search-area">
<input type="text" class="search" id="filter" placeholder="Filter" /> <input type="text" class="search" id="filter" placeholder="Filter" />
<span id="radius-and-unit"><input type="number" id="radius" value="100" />&nbsp;m</span>
</div> </div>
<table id="entity-table"> <table id="entity-table">
<thead> <thead>
@ -246,7 +256,7 @@
</table> </table>
</div> </div>
<div id="no-entities"> <div id="no-entities">
No entities found within 50 meter radius. Try moving to a different location and refreshing. No entities found within a <span id="no-entities-radius">100</span> meter radius. Try moving to a different location and refreshing.
</div> </div>
</body> </body>
</html> </html>

View file

@ -102,13 +102,23 @@ input[type=button] {
} }
#search-area { #search-area {
width: 100%;
padding: 0.5em; padding: 0.5em;
box-sizing: border-box; box-sizing: border-box;
padding-right: 6em;
} }
#search-area input { #filter {
width: 100%; width: 99%;
}
#radius-and-unit {
width: 6em;
float: right;
margin-right: -6em;
}
#radius {
width: 4em;
} }
textarea, input { textarea, input {

View file

@ -4,6 +4,8 @@ EntityListTool = function(opts) {
var url = Script.resolvePath('html/entityList.html'); var url = Script.resolvePath('html/entityList.html');
var webView = new WebWindow('Entities', url, 200, 280, true); var webView = new WebWindow('Entities', url, 200, 280, true);
var searchRadius = 100;
var visible = false; var visible = false;
webView.setVisible(visible); webView.setVisible(visible);
@ -33,7 +35,7 @@ EntityListTool = function(opts) {
that.sendUpdate = function() { that.sendUpdate = function() {
var entities = []; var entities = [];
var ids = Entities.findEntities(MyAvatar.position, 100); var ids = Entities.findEntities(MyAvatar.position, searchRadius);
for (var i = 0; i < ids.length; i++) { for (var i = 0; i < ids.length; i++) {
var id = ids[i]; var id = ids[i];
var properties = Entities.getEntityProperties(id); var properties = Entities.getEntityProperties(id);
@ -80,6 +82,9 @@ EntityListTool = function(opts) {
} }
} else if (data.type == "delete") { } else if (data.type == "delete") {
deleteSelectedEntities(); deleteSelectedEntities();
} else if (data.type === "radius") {
searchRadius = data.radius;
that.sendUpdate();
} }
}); });