From 416d24a1c7fe102737cc59f8c94a9e1d172be1b0 Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Mon, 28 Oct 2013 11:32:25 +0100 Subject: [PATCH] GraphViewer: Implemented Random Vertex on collection switch (#611) --- .../frontend/js/graphViewer/graph/arangoAdapter.js | 12 ++++++++++++ .../js/graphViewer/ui/arangoAdapterControls.js | 13 ++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/js/apps/system/aardvark/frontend/js/graphViewer/graph/arangoAdapter.js b/js/apps/system/aardvark/frontend/js/graphViewer/graph/arangoAdapter.js index 966dcdd877..a673b3158a 100644 --- a/js/apps/system/aardvark/frontend/js/graphViewer/graph/arangoAdapter.js +++ b/js/apps/system/aardvark/frontend/js/graphViewer/graph/arangoAdapter.js @@ -337,6 +337,18 @@ function ArangoAdapter(nodes, edges, config) { self.loadNode = function(nodeId, callback) { self.loadNodeFromTreeById(nodeId, callback); }; + + self.loadRandomNode = function(callback) { + var self = this; + getNRandom(1, function(list) { + var r = list[0]; + if (r._id) { + self.loadInitialNode(r._id, callback); + return; + } + return; + }); + }; self.loadInitialNode = function(nodeId, callback) { absAdapter.cleanUp(); diff --git a/js/apps/system/aardvark/frontend/js/graphViewer/ui/arangoAdapterControls.js b/js/apps/system/aardvark/frontend/js/graphViewer/ui/arangoAdapterControls.js index f5bc78e0e6..9a15437bb3 100644 --- a/js/apps/system/aardvark/frontend/js/graphViewer/ui/arangoAdapterControls.js +++ b/js/apps/system/aardvark/frontend/js/graphViewer/ui/arangoAdapterControls.js @@ -83,10 +83,15 @@ function ArangoAdapterControls(list, adapter) { selected: adapter.getGraphName() } ] + },{ + type: "checkbox", + text: "Start with random vertex", + id: "random", + selected: true },{ type: "checkbox", id: "undirected", - selected: (adapter.getDirection() === "any"), + selected: (adapter.getDirection() === "any") }], function () { var nodes = $("#" + idprefix + "node_collection") .children("option") @@ -101,12 +106,17 @@ function ArangoAdapterControls(list, adapter) { .filter(":selected") .text(), undirected = !!$("#" + idprefix + "undirected").attr("checked"), + random = !!$("#" + idprefix + "random").attr("checked"), selected = $("input[type='radio'][name='loadtype']:checked").attr("id"); if (selected === idprefix + "collections") { adapter.changeToCollections(nodes, edges, undirected); } else { adapter.changeToGraph(graph, undirected); } + if (random) { + adapter.loadRandomNode(callback); + return; + } if (_.isFunction(callback)) { callback(); } @@ -163,6 +173,7 @@ function ArangoAdapterControls(list, adapter) { edges = $("#" + idprefix + "edgecollection").attr("value"), undirected = !!$("#" + idprefix + "undirected").attr("checked"); adapter.changeTo(nodes, edges, undirected); + } ); });