diff --git a/domain-server/resources/web/js/tables.js b/domain-server/resources/web/js/tables.js
index 18e67ac6e7..3f7b2b7b28 100644
--- a/domain-server/resources/web/js/tables.js
+++ b/domain-server/resources/web/js/tables.js
@@ -2,16 +2,35 @@ $(document).ready(function(){
// setup a function to grab the assignments
function getNodesAndAssignments() {
$.getJSON("nodes.json", function(json){
+
+ json.nodes.sort(function(a, b){
+ if (a.type === b.type) {
+ return 0;
+ }
+
+ if (a.type === "agent" && b.type !== "agent") {
+ return 1;
+ }
+
+ if (a.type > b.type) {
+ return 1;
+ }
+
+ if (a.type < b.type) {
+ return -1;
+ }
+ });
+
nodesTableBody = "";
- $.each(json.nodes, function (uuid, data) {
+ $.each(json.nodes, function(index, data) {
nodesTableBody += "
";
nodesTableBody += "" + data.type + " | ";
- nodesTableBody += "" + uuid + " | ";
+ nodesTableBody += "" + data.uuid + " | ";
nodesTableBody += "" + (data.pool ? data.pool : "") + " | ";
nodesTableBody += "" + data.public.ip + ":" + data.public.port + " | ";
nodesTableBody += "" + data.local.ip + ":" + data.local.port + " | ";
- nodesTableBody += " | ";
+ nodesTableBody += " | ";
nodesTableBody += "
";
});
diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp
index 035e6c9a20..d18f12ec7f 100644
--- a/domain-server/src/DomainServer.cpp
+++ b/domain-server/src/DomainServer.cpp
@@ -622,6 +622,7 @@ QJsonObject DomainServer::jsonForSocket(const HifiSockAddr& socket) {
return socketJSON;
}
+const char JSON_KEY_UUID[] = "uuid";
const char JSON_KEY_TYPE[] = "type";
const char JSON_KEY_PUBLIC_SOCKET[] = "public";
const char JSON_KEY_LOCAL_SOCKET[] = "local";
@@ -635,6 +636,9 @@ QJsonObject DomainServer::jsonObjectForNode(const SharedNodePointer& node) {
nodeTypeName = nodeTypeName.toLower();
nodeTypeName.replace(' ', '-');
+ // add the node UUID
+ nodeJson[JSON_KEY_UUID] = uuidStringWithoutCurlyBraces(node->getUUID());
+
// add the node type
nodeJson[JSON_KEY_TYPE] = nodeTypeName;
@@ -707,18 +711,17 @@ bool DomainServer::handleHTTPRequest(HTTPConnection* connection, const QUrl& url
} else if (url.path() == QString("%1.json").arg(URI_NODES)) {
// setup the JSON
QJsonObject rootJSON;
- QJsonObject nodesJSON;
+ QJsonArray nodesJSONArray;
// enumerate the NodeList to find the assigned nodes
NodeList* nodeList = NodeList::getInstance();
foreach (const SharedNodePointer& node, nodeList->getNodeHash()) {
// add the node using the UUID as the key
- QString uuidString = uuidStringWithoutCurlyBraces(node->getUUID());
- nodesJSON[uuidString] = jsonObjectForNode(node);
+ nodesJSONArray.append(jsonObjectForNode(node));
}
- rootJSON["nodes"] = nodesJSON;
+ rootJSON["nodes"] = nodesJSONArray;
// print out the created JSON
QJsonDocument nodesDocument(rootJSON);