From e77a571fc42e2c9db701b1f0f3936e5e68d6390b Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Tue, 7 Jun 2016 15:48:11 +0200 Subject: [PATCH 01/16] better error messages --- .../Books/HTTP/Indexes/Persistent.mdpp | 7 ++ .../Books/HTTP/Indexes/Skiplist.mdpp | 5 +- Documentation/Books/HTTP/SUMMARY.md | 1 + .../Rest/Indexes/JSF_post_api_index.md | 9 +- .../Indexes/JSF_post_api_index_persistent.md | 108 ++++++++++++++++++ utils/generateSwagger.py | 5 +- 6 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 Documentation/Books/HTTP/Indexes/Persistent.mdpp create mode 100644 Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md diff --git a/Documentation/Books/HTTP/Indexes/Persistent.mdpp b/Documentation/Books/HTTP/Indexes/Persistent.mdpp new file mode 100644 index 0000000000..cbff7bc22b --- /dev/null +++ b/Documentation/Books/HTTP/Indexes/Persistent.mdpp @@ -0,0 +1,7 @@ +!CHAPTER Working with Persistent Indexes + +If a suitable persistent index exists, then /_api/simple/range and other operations +will use this index to execute queries. + + +@startDocuBlock JSF_post_api_index_persistent diff --git a/Documentation/Books/HTTP/Indexes/Skiplist.mdpp b/Documentation/Books/HTTP/Indexes/Skiplist.mdpp index fa0fbcc2f5..d8d1edf2ec 100644 --- a/Documentation/Books/HTTP/Indexes/Skiplist.mdpp +++ b/Documentation/Books/HTTP/Indexes/Skiplist.mdpp @@ -1,6 +1,7 @@ !CHAPTER Working with Skiplist Indexes -If a suitable skip-list index exists, then /_api/simple/range will use this index to execute a range query. +If a suitable skip-list index exists, then /_api/simple/range and other operations +will use this index to execute queries. -@startDocuBlock JSF_post_api_index_skiplist \ No newline at end of file +@startDocuBlock JSF_post_api_index_skiplist diff --git a/Documentation/Books/HTTP/SUMMARY.md b/Documentation/Books/HTTP/SUMMARY.md index e38768c6da..91d3373c9a 100644 --- a/Documentation/Books/HTTP/SUMMARY.md +++ b/Documentation/Books/HTTP/SUMMARY.md @@ -38,6 +38,7 @@ * [Working with Indexes](Indexes/WorkingWith.md) * [Hash](Indexes/Hash.md) * [Skiplist](Indexes/Skiplist.md) + * [Persistent](Indexes/Persistent.md) * [Geo](Indexes/Geo.md) * [Fulltext](Indexes/Fulltext.md) * [Transactions](Transaction/README.md) diff --git a/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index.md b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index.md index 3249422bc3..5268476e3c 100644 --- a/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index.md +++ b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index.md @@ -28,9 +28,9 @@ of the index details. Depending on the index type, a single attribute or multiple attributes can be indexed. In the latter case, an array of strings is expected. -Indexing system attributes such as *_id*, *_key*, *_from*, and *_to* -is not supported for user-defined indexes. Manually creating an index using -any of these attributes will fail with an error. +Indexing the system attribute *_id* is not supported for user-defined indexes. +Manually creating an index using *_id* as an index attribute will fail with +an error. Some indexes can be created as unique or non-unique variants. Uniqueness can be controlled for most indexes by specifying the *unique* flag in the @@ -41,12 +41,13 @@ create a non-unique index. **Note**: The following index types do not support uniqueness, and using the *unique* attribute with these types may lead to an error: +- geo indexes - fulltext indexes **Note**: Unique indexes on non-shard keys are not supported in a cluster. -Hash and skiplist indexes can optionally be created in a sparse +Hash, skiplist and persistent indexes can optionally be created in a sparse variant. A sparse index will be created if the *sparse* attribute in the index details is set to *true*. Sparse indexes do not index documents for which any of the index attributes is either not set or is *null*. diff --git a/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md new file mode 100644 index 0000000000..489dc8c3b4 --- /dev/null +++ b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md @@ -0,0 +1,108 @@ + +@startDocuBlock JSF_post_api_index_persistent +@brief creates a persistent index + +@RESTHEADER{POST /_api/index, Create a persistent index) + +@RESTQUERYPARAMETERS + +@RESTQUERYPARAM{collection-name,string,required} +The collection name. + + +@RESTBODYPARAM{type,string,required,string} +must be equal to *"persistent"*. + +@RESTBODYPARAM{fields,array,required,string} +an array of attribute paths. + +@RESTBODYPARAM{unique,boolean,required,} +if *true*, then create a unique index. + +@RESTBODYPARAM{sparse,boolean,required,} +if *true*, then create a sparse index. + +@RESTDESCRIPTION + +Creates a persistent index for the collection *collection-name*, if +it does not already exist. The call expects an object containing the index +details. + +In a sparse index all documents will be excluded from the index that do not +contain at least one of the specified index attributes (i.e. *fields*) or that +have a value of *null* in any of the specified index attributes. Such documents +will not be indexed, and not be taken into account for uniqueness checks if +the *unique* flag is set. + +In a non-sparse index, these documents will be indexed (for non-present +indexed attributes, a value of *null* will be used) and will be taken into +account for uniqueness checks if the *unique* flag is set. + +**Note**: unique indexes on non-shard keys are not supported in a cluster. + +@RESTRETURNCODES + +@RESTRETURNCODE{200} +If the index already exists, then a *HTTP 200* is +returned. + +@RESTRETURNCODE{201} +If the index does not already exist and could be created, then a *HTTP 201* +is returned. + +@RESTRETURNCODE{400} +If the collection already contains documents and you try to create a unique +persistent index in such a way that there are documents violating the +uniqueness, then a *HTTP 400* is returned. + +@RESTRETURNCODE{404} +If the *collection-name* is unknown, then a *HTTP 404* is returned. + +@EXAMPLES + +Creating a persistent index + +@EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewPersistent} + var cn = "products"; + db._drop(cn); + db._create(cn); + + var url = "/_api/index?collection=" + cn; + var body = { + type: "persistent", + unique: false, + fields: [ "a", "b" ] + }; + + var response = logCurlRequest('POST', url, body); + + assert(response.code === 201); + + logJsonResponse(response); + ~ db._drop(cn); +@END_EXAMPLE_ARANGOSH_RUN + +Creating a sparse persistent index + +@EXAMPLE_ARANGOSH_RUN{RestIndexCreateSparsePersistent} + var cn = "products"; + db._drop(cn); + db._create(cn); + + var url = "/_api/index?collection=" + cn; + var body = { + type: "persistent", + unique: false, + sparse: true, + fields: [ "a" ] + }; + + var response = logCurlRequest('POST', url, body); + + assert(response.code === 201); + + logJsonResponse(response); + ~ db._drop(cn); +@END_EXAMPLE_ARANGOSH_RUN +@endDocuBlock + diff --git a/utils/generateSwagger.py b/utils/generateSwagger.py index 768c7c412e..fbc1d85a65 100755 --- a/utils/generateSwagger.py +++ b/utils/generateSwagger.py @@ -510,6 +510,9 @@ def restheader(cargo, r=Regexen()): (fp, last) = cargo temp = parameters(last).split(',') + if temp == "": + raise Exception("Invalid restheader value. got empty string. Maybe missing closing bracket? " + path) + (ucmethod, path) = temp[0].split() #TODO: hier checken, ob der letzte alles hatte (responses) @@ -528,7 +531,7 @@ def restheader(cargo, r=Regexen()): raise Exception("Duplicate route") if currentDocuBlock == None: - raise Exception("No docublock started for this restheader: " + ucmethod + " " + path ) + raise Exception("No docublock started for this restheader: " + ucmethod + " " + path) if lastDocuBlock != None and currentDocuBlock == lastDocuBlock: raise Exception("No new docublock started for this restheader: " + ucmethod + " " + path + ' : ' + currentDocuBlock) From 0ef15e0fdf1fc28be0e9d2c80f8d429cd23056ee Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Tue, 7 Jun 2016 15:48:59 +0200 Subject: [PATCH 02/16] updated documentation --- .../DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md | 3 +-- .../DocuBlocks/Rest/Indexes/JSF_post_api_index_skiplist.md | 3 +-- js/actions/api-index.js | 5 ----- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md index 489dc8c3b4..e85783b1b5 100644 --- a/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md +++ b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_persistent.md @@ -2,14 +2,13 @@ @startDocuBlock JSF_post_api_index_persistent @brief creates a persistent index -@RESTHEADER{POST /_api/index, Create a persistent index) +@RESTHEADER{POST /_api/index#persistent, Create a persistent index} @RESTQUERYPARAMETERS @RESTQUERYPARAM{collection-name,string,required} The collection name. - @RESTBODYPARAM{type,string,required,string} must be equal to *"persistent"*. diff --git a/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_skiplist.md b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_skiplist.md index da4eccfd29..15fcfc3105 100644 --- a/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_skiplist.md +++ b/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_skiplist.md @@ -2,14 +2,13 @@ @startDocuBlock JSF_post_api_index_skiplist @brief creates a skip-list -@RESTHEADER{POST /_api/index, Create skip list} +@RESTHEADER{POST /_api/index#skiplist, Create skip list} @RESTQUERYPARAMETERS @RESTQUERYPARAM{collection-name,string,required} The collection name. - @RESTBODYPARAM{type,string,required,string} must be equal to *"skiplist"*. diff --git a/js/actions/api-index.js b/js/actions/api-index.js index 55893fb52e..c91ba7be90 100644 --- a/js/actions/api-index.js +++ b/js/actions/api-index.js @@ -33,7 +33,6 @@ var actions = require("@arangodb/actions"); var API = "_api/index"; - //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_get_api_index //////////////////////////////////////////////////////////////////////////////// @@ -111,10 +110,6 @@ function get_api_index (req, res) { } } -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_post_api_index_cap -//////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_post_api_index_geo //////////////////////////////////////////////////////////////////////////////// From 287f5a412d6306512fc93e9cb4448d14838c3a47 Mon Sep 17 00:00:00 2001 From: Max Neunhoeffer Date: Tue, 7 Jun 2016 15:54:13 +0200 Subject: [PATCH 03/16] Add /Target/CleanedServers in agency (init & read out in API). Note: Supervision still needs to add cleaned servers there. --- arangod/Cluster/AgencyComm.cpp | 4 ++++ js/actions/api-cluster.js | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arangod/Cluster/AgencyComm.cpp b/arangod/Cluster/AgencyComm.cpp index 585120bf19..34252b8fe1 100644 --- a/arangod/Cluster/AgencyComm.cpp +++ b/arangod/Cluster/AgencyComm.cpp @@ -601,6 +601,10 @@ bool AgencyComm::tryInitializeStructure(std::string const& jwtSecret) { } builder.add("NumberOfCoordinators", VPackSlice::nullSlice()); builder.add("NumberOfDBServers", VPackSlice::nullSlice()); + builder.add(VPackValue("CleanedServers")); + { + VPackArrayBuilder dd(&builder); + } builder.add("Lock", VPackValue("UNLOCKED")); addEmptyVPackObject("MapLocalToID", builder); addEmptyVPackObject("Failed", builder); diff --git a/js/actions/api-cluster.js b/js/actions/api-cluster.js index d41eb4a572..af87a9ea2e 100644 --- a/js/actions/api-cluster.js +++ b/js/actions/api-cluster.js @@ -1045,11 +1045,14 @@ actions.defineHttp({ if (req.requestType === actions.GET) { var nrCoordinators; var nrDBServers; + var cleanedServers; try { nrCoordinators = ArangoAgency.get("Target/NumberOfCoordinators"); nrCoordinators = nrCoordinators.arango.Target.NumberOfCoordinators; nrDBServers = ArangoAgency.get("Target/NumberOfDBServers"); nrDBServers = nrDBServers.arango.Target.NumberOfDBServers; + cleanedServers = ArangoAgency.get("Target/CleanedServers"); + cleanedServers = cleanedServers.arango.Target.CleanedServers; } catch (e1) { actions.resultError(req, res, actions.HTTP_SERVICE_UNAVAILABLE, @@ -1058,7 +1061,8 @@ actions.defineHttp({ } actions.resultOk(req, res, actions.HTTP_OK, {numberOfCoordinators: nrCoordinators, - numberOfDBServers: nrDBServers}); + numberOfDBServers: nrDBServers, + cleanedServers}); } else { var body = actions.getJsonBody(req, res); if (body === undefined) { From 14ea9032a9805494a77e6115523fdcbf7e38496b Mon Sep 17 00:00:00 2001 From: jsteemann Date: Tue, 7 Jun 2016 16:23:23 +0200 Subject: [PATCH 04/16] pacify cppcheck --- arangod/Aql/ExecutionPlan.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/arangod/Aql/ExecutionPlan.cpp b/arangod/Aql/ExecutionPlan.cpp index d5ff1a9a24..873066f351 100644 --- a/arangod/Aql/ExecutionPlan.cpp +++ b/arangod/Aql/ExecutionPlan.cpp @@ -767,7 +767,6 @@ AstNode const* ExecutionPlan::parseTraversalVertexNode(ExecutionNode* previous, // operand is some misc expression auto calc = createTemporaryCalculation(vertex, previous); vertex = _ast->createNodeReference(getOutVariable(calc)); - previous = calc; } return vertex; From 33ec7d8f15b7228f4ab7923c7bd8da5804219094 Mon Sep 17 00:00:00 2001 From: Max Neunhoeffer Date: Tue, 7 Jun 2016 16:25:23 +0200 Subject: [PATCH 05/16] Add a coordinator endpoint to clean out a server. --- js/actions/api-cluster.js | 79 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/js/actions/api-cluster.js b/js/actions/api-cluster.js index af87a9ea2e..2e30ed43f6 100644 --- a/js/actions/api-cluster.js +++ b/js/actions/api-cluster.js @@ -1106,3 +1106,82 @@ actions.defineHttp({ } }); +//////////////////////////////////////////////////////////////////////////////// +/// @start Docu Block JSF_postCleanOutServer +/// (intentionally not in manual) +/// @brief triggers activities to clean out a DBServer +/// +/// @ RESTHEADER{POST /_admin/cluster/cleanOutServer, Trigger activities to clean out a DBServers.} +/// +/// @ RESTQUERYPARAMETERS +/// +/// @ RESTDESCRIPTION Triggers activities to clean out a DBServer. +/// The body must be a JSON string with the ID of the server to be cleaned out. +/// +/// @ RESTRETURNCODES +/// +/// @ RESTRETURNCODE{202} is returned when everything went well and the +/// job is scheduled. +/// +/// @ RESTRETURNCODE{400} body is not valid JSON. +/// +/// @ RESTRETURNCODE{403} server is not a coordinator or method was not GET +/// or PUT. +/// +/// @ RESTRETURNCODE{503} the agency operation did not work. +/// +/// @end Docu Block +//////////////////////////////////////////////////////////////////////////////// + +actions.defineHttp({ + url: "_admin/cluster/cleanOutServer", + allowUseDatabase: true, + prefix: false, + + callback: function (req, res) { + if (!require("@arangodb/cluster").isCoordinator()) { + actions.resultError(req, res, actions.HTTP_FORBIDDEN, 0, + "only coordinators can serve this request"); + return; + } + if (req.requestType !== actions.POST) { + actions.resultError(req, res, actions.HTTP_FORBIDDEN, 0, + "only the POST method is allowed"); + return; + } + + var timeout = 60.0; + + // Now get to work: + var body = actions.getJsonBody(req, res); + if (body === undefined) { + return; + } + if (typeof body !== "object" || ! body.hasOwnProperty("server") || + ! typeof body.server === "string") { + actions.resultError(req, res, actions.HTTP_BAD, + "body must be an object with a string attribute 'server'"); + return; + } + var ok = true; + try { + var id = ArangoClusterInfo.uniqid(); + var todo = { "type": "cleanOutServer", + "server": body.server, + "jobId": id, + "timeCreated": (new Date()).toISOString(), + "creator": ArangoServerState.id() }; + ArangoAgency.set("Target/ToDo/" + id, todo); + } + catch (e1) { + ok = false; + } + if (!ok) { + actions.resultError(req, res, actions.HTTP_SERVICE_UNAVAILABLE, + "Cannot write to agency."); + return; + } + actions.resultOk(req, res, actions.HTTP_ACCEPTED, true); + } +}); + From 033371cfd34ad53da059570a01085ffa31e93039 Mon Sep 17 00:00:00 2001 From: Max Neunhoeffer Date: Tue, 7 Jun 2016 16:41:51 +0200 Subject: [PATCH 06/16] Add action to move a shard. --- js/actions/api-cluster.js | 124 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 119 insertions(+), 5 deletions(-) diff --git a/js/actions/api-cluster.js b/js/actions/api-cluster.js index 2e30ed43f6..09bb2b20bf 100644 --- a/js/actions/api-cluster.js +++ b/js/actions/api-cluster.js @@ -1116,7 +1116,8 @@ actions.defineHttp({ /// @ RESTQUERYPARAMETERS /// /// @ RESTDESCRIPTION Triggers activities to clean out a DBServer. -/// The body must be a JSON string with the ID of the server to be cleaned out. +/// The body must be a JSON object with attribute "server" that is a string +/// with the ID of the server to be cleaned out. /// /// @ RESTRETURNCODES /// @@ -1125,8 +1126,7 @@ actions.defineHttp({ /// /// @ RESTRETURNCODE{400} body is not valid JSON. /// -/// @ RESTRETURNCODE{403} server is not a coordinator or method was not GET -/// or PUT. +/// @ RESTRETURNCODE{403} server is not a coordinator or method was not POST. /// /// @ RESTRETURNCODE{503} the agency operation did not work. /// @@ -1157,8 +1157,9 @@ actions.defineHttp({ if (body === undefined) { return; } - if (typeof body !== "object" || ! body.hasOwnProperty("server") || - ! typeof body.server === "string") { + if (typeof body !== "object" || + ! body.hasOwnProperty("server") || + typeof body.server !== "string") { actions.resultError(req, res, actions.HTTP_BAD, "body must be an object with a string attribute 'server'"); return; @@ -1185,3 +1186,116 @@ actions.defineHttp({ } }); +//////////////////////////////////////////////////////////////////////////////// +/// @start Docu Block JSF_postMoveShard +/// (intentionally not in manual) +/// @brief triggers activities to move a shard +/// +/// @ RESTHEADER{POST /_admin/cluster/moveShard, Trigger activities to move a shard.} +/// +/// @ RESTQUERYPARAMETERS +/// +/// @ RESTDESCRIPTION Triggers activities to move a shard. +/// The body must be a JSON document with the following attributes: +/// - `"database"`: a string with the name of the database +/// - `"collection"`: a string with the name of the collection +/// - `"shard"`: a string with the name of the shard to move +/// - `"fromServer"`: a string with the ID of a server that is currently +/// the leader or a follower for this shard +/// - `"toServer"`: a string with the ID of a server that is currently +/// not the leader and not a follower for this shard +/// +/// @ RESTRETURNCODES +/// +/// @ RESTRETURNCODE{202} is returned when everything went well and the +/// job is scheduled. +/// +/// @ RESTRETURNCODE{400} body is not valid JSON. +/// +/// @ RESTRETURNCODE{403} server is not a coordinator or method was not POST. +/// +/// @ RESTRETURNCODE{503} the agency operation did not work. +/// +/// @end Docu Block +//////////////////////////////////////////////////////////////////////////////// + +actions.defineHttp({ + url: "_admin/cluster/moveShard", + allowUseDatabase: true, + prefix: false, + + callback: function (req, res) { + if (!require("@arangodb/cluster").isCoordinator()) { + actions.resultError(req, res, actions.HTTP_FORBIDDEN, 0, + "only coordinators can serve this request"); + return; + } + if (req.requestType !== actions.POST) { + actions.resultError(req, res, actions.HTTP_FORBIDDEN, 0, + "only the POST method is allowed"); + return; + } + + var timeout = 60.0; + + // Now get to work: + var body = actions.getJsonBody(req, res); + if (body === undefined) { + return; + } + if (typeof body !== "object" || + ! body.hasOwnProperty("database") || + typeof body.database !== "string" || + ! body.hasOwnProperty("collection") || + typeof body.collection !== "string" || + ! body.hasOwnProperty("shard") || + typeof body.shard !== "string" || + ! body.hasOwnProperty("fromServer") || + typeof body.fromServer !== "string" || + ! body.hasOwnProperty("toServer") || + typeof body.toServer !== "string") { + actions.resultError(req, res, actions.HTTP_BAD, + "body must be an object with string attributes 'database', 'collection', 'shard', 'fromServer' and 'toServer'"); + return; + } + var ok = true; + var isLeader; + try { + var coll = ArangoClusterInfo.getCollectionInfo(body.database, + body.collection); + var shards = coll.shards; + var shard = shards[body.shard]; + var pos = shard.indexOf(body.fromServer); + if (pos === -1) { + throw "Banana"; + } else if (pos === 0) { + isLeader = true; + } else { + isLeader = false; + } + } catch (e2) { + actions.resultError(req, res, actions.HTTP_BAD, + "Combination of database, collection, shard and fromServer does not make sense."); + return; + } + try { + var id = ArangoClusterInfo.uniqid(); + var todo = { "type": "moveShard", + "database": body.database, + "collection": body.collection, + "shard": body.shard, + "fromServer": body.fromServer, + "toServer": body.toServer, + "jobId": id, + "timeCreated": (new Date()).toISOString(), + "creator": ArangoServerState.id() }; + ArangoAgency.set("Target/ToDo/" + id, todo); + } catch (e1) { + actions.resultError(req, res, actions.HTTP_SERVICE_UNAVAILABLE, + "Cannot write to agency."); + return; + } + actions.resultOk(req, res, actions.HTTP_ACCEPTED, true); + } +}); + From aa380c7d313b0320e142e166568a22419a2c9082 Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 7 Jun 2016 16:47:23 +0200 Subject: [PATCH 07/16] Added compatibility mode functions in general-graph. These allow to automatically bind user-defined functions that can be used to seemlessly replace 2.8 GRAPH_ functions. Just execute this bind once and replace all calls by arangodb::GRAPH_ in AQL. --- js/common/modules/@arangodb/general-graph.js | 293 +++-- js/common/tests/shell/shell-general-graph.js | 1180 +----------------- 2 files changed, 207 insertions(+), 1266 deletions(-) diff --git a/js/common/modules/@arangodb/general-graph.js b/js/common/modules/@arangodb/general-graph.js index 537357ebfe..fcc8bcbf26 100644 --- a/js/common/modules/@arangodb/general-graph.js +++ b/js/common/modules/@arangodb/general-graph.js @@ -37,6 +37,96 @@ var arangodb = require("@arangodb"), _ = require("lodash"); +//////////////////////////////////////////////////////////////////////////////// +/// @brief Compatibility functions for 2.8 +/// This function registeres user-defined functions that follow the +/// same API as the former GRAPH_* functions did. +/// Most of these AQL functions can be simply replaced by calls to these. +//////////////////////////////////////////////////////////////////////////////// + +var registerCompatibilityFunctions = function() { + var aqlfunctions = require("@arangodb/aql/functions"); + aqlfunctions.register("arangodb::GRAPH_EDGES", function (graphName, vertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._edges(vertexExample, options); + }, false); + aqlfunctions.register("arangodb::GRAPH_VERTICES", function (graphName, vertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._vertices(vertexExample, options); + }, false); + aqlfunctions.register("arangodb::GRAPH_NEIGHBORS", function (graphName, vertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._neighbors(vertexExample, options); + }, false); + aqlfunctions.register("arangodb::GRAPH_COMMON_NEIGHBORS", function (graphName, vertex1Example, vertex2Example, options1, options2) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._commonNeighbors(vertex1Example, vertex2Example, options1, options2); + }, false); + aqlfunctions.register("arangodb::GRAPH_COMMON_PROPERTIES", function (graphName, vertex1Example, vertex2Example, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._commonProperties(vertex1Example, vertex2Example, options); + }, false); + aqlfunctions.register("arangodb::GRAPH_PATHS", function (graphName, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._paths(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_SHORTEST_PATH", function (graphName, startVertexExample, edgeVertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._shortestPath(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_DISTANCE_TO", function (graphName, startVertexExample, edgeVertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._distanceTo(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_ABSOLUTE_ECCENTRICITY", function (graphName, vertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._absoluteEccentricity(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_ECCENTRICITY", function (graphName, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._eccentricity(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_ABSOLUTE_CLOSENESS", function (graphName, vertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._farness(vertexExample, options); + }, false); + aqlfunctions.register("arangodb::GRAPH_CLOSENESS", function (graphName, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._closeness(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_ABSOLUTE_BETWEENNESS", function (graphName, vertexExample, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._absoluteBetweenness(vertexExample, options); + }, false); + aqlfunctions.register("arangodb::GRAPH_BETWEENNESS", function (graphName, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._betweenness(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_RADIUS", function (graphName, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._radius(options); + }, false); + aqlfunctions.register("arangodb::GRAPH_DIAMETER", function (graphName, options) { + var gm = require("@arangodb/general-graph"); + var g = gm._graph(graphName); + return g._diameter(options); + }, false); +}; //////////////////////////////////////////////////////////////////////////////// /// @brief transform a string into an array. @@ -1658,20 +1748,27 @@ Graph.prototype._OUTEDGES = function(vertexId) { /// @brief was docuBlock JSF_general_graph_edges //////////////////////////////////////////////////////////////////////////////// -Graph.prototype._edges = function(edgeExample) { - var AQLStmt = new AQLGenerator(this); - // If no direction is specified all edges are duplicated. - // => For initial requests a direction has to be set - return AQLStmt.outEdges(edgeExample); +Graph.prototype._edges = function(vertexExample, options) { + var bindVars = {}; + options = options || {}; + var query = ` + ${transformExampleToAQL(vertexExample, Object.keys(this.__vertexCollections), bindVars, "start")} + FOR v, e IN ${options.minDepth || 1}..${options.maxDepth || 1} ${options.direction || "ANY"} start GRAPH @graphName + RETURN ${options.includeData === true ? "v" : "v._id"}`; + bindVars.graphName = this.__name; + return db._query(query, bindVars).toArray(); }; //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_general_graph_vertices //////////////////////////////////////////////////////////////////////////////// -Graph.prototype._vertices = function(example) { - var AQLStmt = new AQLGenerator(this); - return AQLStmt.vertices(example); +Graph.prototype._vertices = function(vertexExample, options) { + options = options || {}; + var bindVars = {}; + var query = `${transformExampleToAQL(vertexExample, Object.keys(this.__vertexCollections), bindVars, "start")} + RETURN ${options.includeData === true ? "start" : "start._id"}`; + return db._query(query, bindVars).toArray(); }; //////////////////////////////////////////////////////////////////////////////// @@ -1750,14 +1847,15 @@ Graph.prototype._getVertexCollectionByName = function(name) { //////////////////////////////////////////////////////////////////////////////// Graph.prototype._neighbors = function(vertexExample, options) { - var AQLStmt = new AQLGenerator(this); - // If no direction is specified all edges are duplicated. - // => For initial requests a direction has to be set - if (!options) { - options = {}; - } - return AQLStmt.vertices(vertexExample).neighbors(options.neighborExamples, options) - .toArray(); + options = options || {}; + var bindVars = {}; + var query = ` + ${transformExampleToAQL(vertexExample, Object.keys(this.__vertexCollections), bindVars, "start")} + FOR v IN ${options.minDepth || 1}..${options.maxDepth || 1} ${options.direction || "ANY"} start + GRAPH @graphName OPTIONS {bfs: true, uniqueVertices: "global"} + RETURN ${options.includeData === true ? "v" : "v._id"}`; + bindVars.graphName = this.__name; + return db._query(query, bindVars).toArray(); }; @@ -1766,26 +1864,27 @@ Graph.prototype._neighbors = function(vertexExample, options) { //////////////////////////////////////////////////////////////////////////////// Graph.prototype._commonNeighbors = function(vertex1Example, vertex2Example, optionsVertex1, optionsVertex2) { - - var ex1 = transformExample(vertex1Example); - var ex2 = transformExample(vertex2Example); - var query = "FOR e" - + " IN GRAPH_COMMON_NEIGHBORS(@graphName" - + ',@ex1' - + ',@ex2' - + ',@options1' - + ',@options2' - + ') RETURN e'; + var bindVars = {}; optionsVertex1 = optionsVertex1 || {}; optionsVertex2 = optionsVertex2 || {}; - var bindVars = { - "graphName": this.__name, - "options1": optionsVertex1, - "options2": optionsVertex2, - "ex1": ex1, - "ex2": ex2 - }; - return db._query(query, bindVars, {count: true}).toArray(); + + var query = ` + ${transformExampleToAQL(vertex1Example, Object.keys(this.__vertexCollections), bindVars, "left")} + LET leftNeighbors = (FOR v IN ${optionsVertex1.minDepth || 1}..${optionsVertex1.maxDepth || 1} ${optionsVertex1.direction || "ANY"} left + GRAPH @graphName OPTIONS {bfs: true, uniqueVertices: "global"} RETURN v) + ${transformExampleToAQL(vertex2Example, Object.keys(this.__vertexCollections), bindVars, "right")} + FILTER right != left + LET rightNeighbors = (FOR v IN ${optionsVertex2.minDepth || 1}..${optionsVertex2.maxDepth || 1} ${optionsVertex2.direction || "ANY"} right + GRAPH @graphName OPTIONS {bfs: true, uniqueVertices: "global"} RETURN v) + LET neighbors = INTERSECTION(leftNeighbors, rightNeighbors) + FILTER LENGTH(neighbors) > 0 `; + if (optionsVertex1.includeData === true || optionsVertex2.includeData === true) { + query += `RETURN {left : left, right: right, neighbors: neighbors}`; + } else { + query += `RETURN {left : left._id, right: right._id, neighbors: neighbors[*]._id}`; + } + bindVars.graphName = this.__name; + return db._query(query, bindVars).toArray(); }; //////////////////////////////////////////////////////////////////////////////// @@ -1793,34 +1892,15 @@ Graph.prototype._commonNeighbors = function(vertex1Example, vertex2Example, opti //////////////////////////////////////////////////////////////////////////////// Graph.prototype._countCommonNeighbors = function(vertex1Example, vertex2Example, optionsVertex1, optionsVertex2) { - var ex1 = transformExample(vertex1Example); - var ex2 = transformExample(vertex2Example); - var query = "FOR e" - + " IN GRAPH_COMMON_NEIGHBORS(@graphName" - + ',@ex1' - + ',@ex2' - + ',@options1' - + ',@options2' - + ') RETURN [e.left, e.right, LENGTH(e.neighbors)]'; - optionsVertex1 = optionsVertex1 || {}; - optionsVertex2 = optionsVertex2 || {}; - var bindVars = { - "graphName": this.__name, - "options1": optionsVertex1, - "options2": optionsVertex2, - "ex1": ex1, - "ex2": ex2 - }; - - var result = db._query(query, bindVars, {count: true}).toArray(), + var result = this._commonNeighbors(vertex1Example, vertex2Example, optionsVertex1, optionsVertex2), tmp = {}, tmp2={}, returnHash = []; result.forEach(function (r) { - if (!tmp[r[0]]) { - tmp[r[0]] = []; + if (!tmp[r.left]) { + tmp[r.left] = []; } tmp2 = {}; - tmp2[r[1]] = r[2]; - tmp[r[0]].push(tmp2); + tmp2[r.right] = r.neighbors.length; + tmp[r.left].push(tmp2); }); Object.keys(tmp).forEach(function(w) { tmp2 = {}; @@ -1835,24 +1915,27 @@ Graph.prototype._countCommonNeighbors = function(vertex1Example, vertex2Example, //////////////////////////////////////////////////////////////////////////////// Graph.prototype._commonProperties = function(vertex1Example, vertex2Example, options) { - - var ex1 = transformExample(vertex1Example); - var ex2 = transformExample(vertex2Example); - var query = "FOR e" - + " IN GRAPH_COMMON_PROPERTIES(@graphName" - + ',@ex1' - + ',@ex2' - + ',@options' - + ') SORT ATTRIBUTES(e)[0] RETURN e'; options = options || {}; - var bindVars = { - "graphName": this.__name, - "options": options, - "ex1": ex1, - "ex2": ex2 - }; - return db._query(query, bindVars, {count: true}).toArray(); - + if (options.hasOwnProperty("ignoreProperties")) { + if (!Array.isArray(options.ignoreProperties)) { + options.ignoreProperties = [options.ignoreProperties]; + } + } + var bindVars = {}; + var query = ` + ${transformExampleToAQL(vertex1Example, Object.keys(this.__vertexCollections), bindVars, "left")} + SORT left._id + LET toZip = ( + ${transformExampleToAQL(vertex2Example, Object.keys(this.__vertexCollections), bindVars, "right")} + FILTER right != left + LET shared = (FOR a IN ATTRIBUTES(left) FILTER + (${options.hasOwnProperty("ignoreProperties") ? `a NOT IN ${JSON.stringify(options.ignoreProperties)} AND` : ""} left[a] == right[a]) + OR a == '_id' RETURN a) + FILTER LENGTH(shared) > 1 + RETURN KEEP(right, shared) ) + FILTER LENGTH(toZip) > 0 + RETURN ZIP([left._id], [toZip])`; + return db._query(query, bindVars).toArray(); }; //////////////////////////////////////////////////////////////////////////////// @@ -1860,46 +1943,47 @@ Graph.prototype._commonProperties = function(vertex1Example, vertex2Example, opt //////////////////////////////////////////////////////////////////////////////// Graph.prototype._countCommonProperties = function(vertex1Example, vertex2Example, options) { - var ex1 = transformExample(vertex1Example); - var ex2 = transformExample(vertex2Example); - var query = "FOR e" - + " IN GRAPH_COMMON_PROPERTIES(@graphName" - + ',@ex1' - + ',@ex2' - + ',@options' - + ') FOR a in ATTRIBUTES(e) SORT ATTRIBUTES(e)[0] RETURN [ ATTRIBUTES(e)[0], LENGTH(e[a]) ]'; options = options || {}; - var bindVars = { - "graphName": this.__name, - "options": options, - "ex1": ex1, - "ex2": ex2 - }; - var result = db._query(query, bindVars, {count: true}).toArray(), returnHash = []; - result.forEach(function (r) { - var tmp = {}; - tmp[r[0]] = r[1]; - returnHash.push(tmp); - }); - return returnHash; + if (options.hasOwnProperty("ignoreProperties")) { + if (!Array.isArray(options.ignoreProperties)) { + options.ignoreProperties = [options.ignoreProperties]; + } + } + var bindVars = {}; + var query = ` + ${transformExampleToAQL(vertex1Example, Object.keys(this.__vertexCollections), bindVars, "left")} + SORT left._id + LET s = SUM( + ${transformExampleToAQL(vertex2Example, Object.keys(this.__vertexCollections), bindVars, "right")} + FILTER right != left + LET shared = (FOR a IN ATTRIBUTES(left) FILTER + (${options.hasOwnProperty("ignoreProperties") ? `a NOT IN ${JSON.stringify(options.ignoreProperties)} AND` : ""} left[a] == right[a]) + OR a == '_id' RETURN a) + FILTER LENGTH(shared) > 1 + RETURN 1 ) + FILTER s > 0 + RETURN ZIP([left._id], [s])`; + return db._query(query, bindVars).toArray(); }; - //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_general_graph_paths //////////////////////////////////////////////////////////////////////////////// Graph.prototype._paths = function(options) { - var query = "RETURN" - + " GRAPH_PATHS(@graphName" - + ',@options' - + ')'; options = options || {}; + + var query = ` + FOR source IN ${startInAllCollections(Object.keys(this.__vertexCollections))} + FOR v, e, p IN ${options.minDepth || 0}..${options.maxDepth || 10} ${options.direction} source GRAPH @graphName `; + if (options.followCycles) { + query += `OPTIONS {uniqueEdges: "none"} `; + } + query += `RETURN {source: source, destination: v, edges: p.edges, vertice: p.vertices}`; + var bindVars = { "graphName": this.__name, - "options": options }; - var result = db._query(query, bindVars).toArray(); - return result; + return db._query(query, bindVars).toArray(); }; //////////////////////////////////////////////////////////////////////////////// @@ -2686,6 +2770,7 @@ exports._exists = _exists; exports._renameCollection = _renameCollection; exports._list = _list; exports._listObjects = _listObjects; +exports._registerCompatibilityFunctions = registerCompatibilityFunctions; //////////////////////////////////////////////////////////////////////////////// /// some more documentation diff --git a/js/common/tests/shell/shell-general-graph.js b/js/common/tests/shell/shell-general-graph.js index 273cc0a102..516aae5668 100644 --- a/js/common/tests/shell/shell-general-graph.js +++ b/js/common/tests/shell/shell-general-graph.js @@ -1,4 +1,4 @@ -/*jshint globalstrict:false, strict:false, unused: false */ +/*jshint globalstrict:false, strict:false */ /*global assertEqual, assertTrue, assertFalse, fail */ //////////////////////////////////////////////////////////////////////////////// @@ -122,7 +122,7 @@ function GeneralGraphCreationSuite() { return; } - var g = graph._create( + graph._create( gN1, graph._edgeDefinitions( graph._relation(rn1, [vn2, vn1], [vn4, vn3]) @@ -159,7 +159,7 @@ function GeneralGraphCreationSuite() { return; } - var g = graph._create( + graph._create( gN1, graph._edgeDefinitions( graph._relation(rn1, [vn2, vn1], [vn4, vn3]) @@ -187,7 +187,7 @@ function GeneralGraphCreationSuite() { return; } - var g = graph._create( + graph._create( gN1, graph._edgeDefinitions( graph._relation(rn1, [vn2, vn1], [vn4, vn3]) @@ -644,8 +644,8 @@ function GeneralGraphCreationSuite() { var dr1 = graph._relation(ec1, [vc1], [vc1, vc2]), dr2 = graph._relation(ec2, [vc3], [vc4, vc5]), dr2a = graph._relation(ec2, [vc3], [vc4]), - g1 = graph._create(gN1, [dr1]), - g2 = graph._create(gN2, [dr2]); + g1 = graph._create(gN1, [dr1]); + graph._create(gN2, [dr2]); try { g1._extendEdgeDefinitions(dr2a); @@ -680,8 +680,8 @@ function GeneralGraphCreationSuite() { var dr1 = graph._relation(ec1, [vc1], [vc1, vc2]), dr2 = graph._relation(ec2, [vc3], [vc4, vc5]), dr3 = graph._relation(ec3, [vc3], [vc4]), - g1 = graph._create(gN1, [dr1]), - g2 = graph._create(gN2, [dr2]); + g1 = graph._create(gN1, [dr1]); + graph._create(gN2, [dr2]); assertEqual([dr1], g1.__edgeDefinitions); g1._addVertexCollection(vc3); @@ -784,1143 +784,6 @@ function GeneralGraphCreationSuite() { }; } -function GeneralGraphAQLQueriesSuite() { - 'use strict'; - // Definition of names - var graphName = "UnitTestsGraph"; - var included = "UnitTestIncluded"; - var excluded = "UnitTestExcluded"; - var v1 = "UnitTestV1"; - var v2 = "UnitTestV2"; - var v3 = "UnitTestV3"; - - var dropInclExcl = function() { - if (graph._exists(graphName)) { - graph._drop(graphName, true); - } - }; - - var e1, e2, e3; - - var createInclExcl = function() { - dropInclExcl(); - var inc = graph._relation( - included, [v1], [v1, v2] - ); - var exc = graph._relation( - excluded, [v1], [v3] - ); - var g = graph._create(graphName, [inc, exc]); - g[v1].save({_key: "1"}); - g[v1].save({_key: "2"}); - g[v2].save({_key: "1"}); - g[v3].save({_key: "1"}); - e1 = g[included].save( - v1 + "/1", - v2 + "/1", - { - _key: "e1", - val: true - } - )._id; - e2 = g[included].save( - v1 + "/2", - v1 + "/1", - { - _key: "e2", - val: false - } - )._id; - e3 = g[excluded].save( - v1 + "/1", - v3 + "/1", - { - _key: "e3", - val: false - } - )._id; - return g; - }; - - var findIdInResult = function(result, id) { - return _.some(result, function(i) { - return i._id === id; - }); - }; - - // The testee graph object - var g; - - return { - -//////////////////////////////////////////////////////////////////////////////// -/// @brief setUp: query creation for edges and vertices -//////////////////////////////////////////////////////////////////////////////// - - setUp: function() { - g = createInclExcl(); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: query creation for edges and vertices -//////////////////////////////////////////////////////////////////////////////// - - tearDown: function() { - dropInclExcl(); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: restrict construct on edges -//////////////////////////////////////////////////////////////////////////////// - - test_restrictOnEdges: function() { - var query = g._edges().restrict(included); - assertEqual(query.printQuery(), "FOR edges_0 IN GRAPH_EDGES(" - + '@graphName,{},@options_0)'); - var bindVars = query.bindVars; - assertEqual(bindVars.graphName, graphName); - assertEqual(bindVars - .options_0 - .edgeCollectionRestriction, [included]); - assertEqual(bindVars - .options_0 - .direction, "outbound" - ); - - var result = query.toArray(); - assertEqual(result.length, 2); - assertTrue(findIdInResult(result, e1), "Did not include e1"); - assertTrue(findIdInResult(result, e2), "Did not include e2"); - assertFalse(findIdInResult(result, e3), "e3 is not excluded"); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: query creation for Vertices -//////////////////////////////////////////////////////////////////////////////// - - test_vertices: function() { - var query = g._vertices(v1 + "/1"); - assertEqual(query.printQuery(), 'FOR vertices_0 IN GRAPH_VERTICES(' - + '@graphName,@vertexExample_0,@options_0)'); - var bindVars = query.bindVars; - assertEqual(bindVars.graphName, graphName); - assertEqual(bindVars.vertexExample_0, {_id: v1 + "/1"}); - var result = query.toArray(); - assertEqual(result.length, 1); - assertTrue(findIdInResult(result, v1 + "/1"), "Did not include " + v1 + "/1"); - - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: restrict error handling -//////////////////////////////////////////////////////////////////////////////// - - test_restrictErrorHandlingSingle: function() { - try { - g._edges(v1 + "/1").restrict([included, "unknown"]); - fail(); - } catch (err) { - assertEqual(err.errorNum, ERRORS.ERROR_BAD_PARAMETER.code); - assertEqual(err.errorMessage, "edge collections: unknown are not known to the graph"); - } - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: restrict error handling on multiple failures -//////////////////////////////////////////////////////////////////////////////// - - test_restrictErrorHandlingMultiple: function() { - try { - g._edges(v1 + "/1").restrict(["failed", included, "unknown", "foxxle"]); - fail(); - } catch (err) { - assertEqual(err.errorNum, ERRORS.ERROR_BAD_PARAMETER.code); - assertEqual(err.errorMessage, - "edge collections: failed and unknown and foxxle are not known to the graph"); - } - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: filter construct on Edges -//////////////////////////////////////////////////////////////////////////////// - - test_filterOnEdges: function() { - var query = g._edges().filter({val: true}); - assertEqual(query.printQuery(), "FOR edges_0 IN GRAPH_EDGES(" - + '@graphName,{},@options_0) ' - + 'FILTER MATCHES(edges_0,[{"val":true}])'); - var bindVars = query.bindVars; - assertEqual(bindVars.graphName, graphName); - assertEqual(bindVars.options_0, { - direction: "outbound", - edgeExamples: [{}], - includeData: true - }); - var result = query.toArray(); - assertEqual(result.length, 1); - assertTrue(findIdInResult(result, e1), "Did not include e1"); - assertFalse(findIdInResult(result, e2), "e2 is not excluded"); - assertFalse(findIdInResult(result, e3), "e3 is not excluded"); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: counting of query results -//////////////////////////////////////////////////////////////////////////////// -// - test_queryCount: function() { - var query = g._edges(); - assertEqual(query.count(), 3); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: Cursor iteration -//////////////////////////////////////////////////////////////////////////////// - test_cursorIteration: function() { - var query = g._edges(); - var list = [e1, e2, e3]; - var next; - assertTrue(query.hasNext()); - next = query.next(); - list = _.without(list, next._id); - assertEqual(list.length, 2); - assertTrue(query.hasNext()); - next = query.next(); - list = _.without(list, next._id); - assertEqual(list.length, 1); - assertTrue(query.hasNext()); - next = query.next(); - list = _.without(list, next._id); - assertEqual(list.length, 0); - assertFalse(query.hasNext()); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: Cursor recreation after iteration -//////////////////////////////////////////////////////////////////////////////// - test_cursorIterationAndRecreation: function() { - var query = g._edges(); - var list = [e1, e2, e3]; - var next; - assertTrue(query.hasNext()); - next = query.next(); - list = _.without(list, next._id); - assertEqual(list.length, 2); - assertTrue(query.hasNext()); - next = query.next(); - list = _.without(list, next._id); - assertEqual(list.length, 1); - assertTrue(query.hasNext()); - next = query.next(); - list = _.without(list, next._id); - assertEqual(list.length, 0); - assertFalse(query.hasNext()); - query = query.filter({val: true}); - list = [e1]; - assertTrue(query.hasNext()); - next = query.next(); - list = _.without(list, next._id); - assertEqual(list.length, 0); - assertFalse(query.hasNext()); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: Is cursor recreated after counting of query results and appending filter -//////////////////////////////////////////////////////////////////////////////// - test_cursorRecreationAfterCount: function() { - var query = g._edges(); - assertEqual(query.count(), 3); - query = query.filter({val: true}); - assertEqual(query.count(), 1); - }, - -//////////////////////////////////////////////////////////////////////////////// -/// @brief test: Is cursor recreated after to array of query results and appending filter -//////////////////////////////////////////////////////////////////////////////// - test_cursorRecreationAfterToArray: function() { - var query = g._edges(); - var result = query.toArray(); - assertTrue(findIdInResult(result, e1), "Did not include e1"); - assertTrue(findIdInResult(result, e2), "Did not include e2"); - assertTrue(findIdInResult(result, e3), "Did not include e3"); - query = query.filter({val: true}); - result = query.toArray(); - assertTrue(findIdInResult(result, e1), "Did not include e1"); - assertFalse(findIdInResult(result, e2), "e2 is not excluded"); - assertFalse(findIdInResult(result, e3), "e3 is not excluded"); - } - - }; - -} - -function ChainedFluentAQLResultsSuite() { - 'use strict'; - - var gn = "UnitTestGraph"; - var user = "UnitTestUsers"; - var product = "UnitTestProducts"; - var isFriend = "UnitTestIsFriend"; - var hasBought = "UnitTestHasBought"; - var uaName = "Alice"; - var ubName = "Bob"; - var ucName = "Charly"; - var udName = "Diana"; - var p1Name = "HiFi"; - var p2Name = "Shirt"; - var p3Name = "TV"; - var pTypeElec = "Electro"; - var pTypeCloth = "Cloth"; - - var ud1 = 2000; - var ud2 = 2001; - var ud3 = 2002; - var ud4 = 2003; - - var d1 = 2004; - var d2 = 2005; - var d3 = 2006; - var d4 = 2007; - var d5 = 2008; - - var g; - - var edgeDef = []; - edgeDef.push(graph._relation(isFriend, user, user)); - edgeDef.push(graph._relation(hasBought, user, product)); - - - var findBoughts = function(result, list) { - var boughts = _.sortBy( - _.filter(result, function(e) { - return e._id.split("/")[0] === hasBought; - }), - "date" - ); - assertEqual(list.length, boughts.length, "Did not return all expected boughts"); - _.each(list.sort(), function(v, i) { - assertEqual(boughts[i].date, v); - }); - }; - - var findFriends = function(result, list) { - var friends = _.sortBy( - _.filter(result, function(e) { - return e._id.split("/")[0] === isFriend; - }), - "since" - ); - assertEqual(list.length, friends.length, "Did not return all expected friendships"); - _.each(list.sort(), function(v, i) { - assertEqual(friends[i].since, v); - }); - }; - - var dropData = function() { - try { - graph._drop(gn, true); - } catch(ignore) { - - } - }; - - var createTestData = function() { - dropData(); - g = graph._create(gn, edgeDef); - var ua = g[user].save({name: uaName})._id; - var ub = g[user].save({name: ubName})._id; - var uc = g[user].save({name: ucName})._id; - var ud = g[user].save({name: udName})._id; - - var p1 = g[product].save({name: p1Name, type: pTypeElec})._id; - var p2 = g[product].save({name: p2Name, type: pTypeCloth})._id; - var p3 = g[product].save({name: p3Name, type: pTypeElec})._id; - - g[isFriend].save(ua, ub, { - since: ud1 - }); - g[isFriend].save(ua, uc, { - since: ud2 - }); - g[isFriend].save(ub, ud, { - since: ud3 - }); - g[isFriend].save(uc, ud, { - since: ud4 - }); - - g[hasBought].save(ua, p1, { - date: d1 - }); - g[hasBought].save(ub, p1, { - date: d2 - }); - g[hasBought].save(ub, p3, { - date: d3 - }); - - g[hasBought].save(ud, p1, { - date: d4 - }); - g[hasBought].save(ud, p2, { - date: d5 - }); - - }; - - var plainVertexQueryStmt = function(depth, mergeWith) { - var stmt = "FOR vertices_" + depth + " IN " - + "GRAPH_VERTICES(" - + "@graphName,"; - if (mergeWith !== undefined) { - if (Array.isArray(mergeWith)) { - var i; - stmt += "["; - for (i = 0; i < mergeWith.length; ++i) { - if (i > 0) { - stmt += ","; - } - stmt += "MERGE(@vertexExample_" + depth - + "," + mergeWith[i] + ")"; - } - stmt += "]"; - } else { - stmt += "MERGE(@vertexExample_" + depth - + "," + mergeWith + ")"; - } - } else { - stmt += "@vertexExample_" + depth; - } - stmt += ",@options_" + depth + ")"; - return stmt; - }; - - var plainNeighborQueryStmt = function(depth, vdepth) { - return "FOR neighbors_" + depth + " IN " - + "GRAPH_NEIGHBORS(" - + "@graphName," - + "vertices_" + vdepth + "," - + "@options_" + depth + ")"; - }; - - var vertexMergeStmt = function(direction, eDepth) { - switch(direction) { - case "both": - return [ - vertexMergeStmt("from", eDepth), - vertexMergeStmt("to", eDepth) - ]; - case "from": - return "{'_id': edges_" + eDepth + "._from}"; - case "to": - return "{'_id': edges_" + eDepth + "._to}"; - default: - fail("Helper function does not know direction:" + direction); - } - - }; - - var plainEdgesQueryStmt = function(depth, vDepth, type) { - if (!type) { - type = "vertices"; - } - var q = "FOR edges_" + depth + " IN " - + "GRAPH_EDGES(" - + "@graphName,"; - if(vDepth > -1) { - q += type + "_" + vDepth; - q += ","; - } else { - q += "{},"; - } - q += "@options_" + depth + ")"; - return q; - }; - - return { - - setUp: createTestData, - - tearDown: dropData, - - test_getAllVerticesResultingAQL: function() { - var query = g._vertices(); - var stmt = query.printQuery(); - assertEqual(stmt, plainVertexQueryStmt(0)); - assertEqual(query.bindVars.vertexExample_0, {}); - assertEqual(query.bindVars.options_0, {}); - }, - - test_getAllVertices: function() { - var result = g._vertices().toArray(); - assertEqual(result.length, 7); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, uaName); - assertEqual(sorted[1].name, ubName); - assertEqual(sorted[2].name, ucName); - assertEqual(sorted[3].name, udName); - assertEqual(sorted[4].name, p1Name); - assertEqual(sorted[5].name, p2Name); - assertEqual(sorted[6].name, p3Name); - }, - - test_getVertexByIdResultingAQL: function() { - var a_id = g[user].firstExample({name: uaName})._id; - var query = g._vertices(a_id); - var stmt = query.printQuery(); - assertEqual(stmt, plainVertexQueryStmt(0)); - assertEqual(query.bindVars.vertexExample_0, {_id: a_id}); - assertEqual(query.bindVars.options_0, {}); - }, - - test_getVertexById: function() { - var a_id = g[user].firstExample({name: uaName})._id; - var result = g._vertices(a_id).toArray(); - assertEqual(result.length, 1); - assertEqual(result[0].name, uaName); - }, - - test_getVerticesByIdResultingAQL: function() { - var a_id = g[user].firstExample({name: uaName})._id; - var b_id = g[user].firstExample({name: ubName})._id; - var query = g._vertices([a_id, b_id]); - var stmt = query.printQuery(); - assertEqual(stmt, plainVertexQueryStmt(0)); - assertEqual(query.bindVars.vertexExample_0, [{_id: a_id}, {_id: b_id}]); - assertEqual(query.bindVars.options_0, {}); - }, - - test_getVerticesById: function() { - var a_id = g[user].firstExample({name: uaName})._id; - var b_id = g[user].firstExample({name: ubName})._id; - var result = g._vertices([a_id, b_id]).toArray(); - assertEqual(result.length, 2); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, uaName); - assertEqual(sorted[1].name, ubName); - }, - - test_getVertexByExampleResultingAQL: function() { - var query = g._vertices({ - name: uaName - }); - var stmt = query.printQuery(); - assertEqual(stmt, plainVertexQueryStmt(0)); - assertEqual(query.bindVars.vertexExample_0, {name: uaName}); - assertEqual(query.bindVars.options_0, {}); - }, - - test_getVertexByExample: function() { - var result = g._vertices({ - name: uaName - }).toArray(); - assertEqual(result.length, 1); - assertEqual(result[0].name, uaName); - }, - - test_getVerticesByExampleResultingAQL: function() { - var query = g._vertices([{ - name: uaName - },{ - name: p1Name - }]); - var stmt = query.printQuery(); - assertEqual(stmt, plainVertexQueryStmt(0)); - assertEqual(query.bindVars.vertexExample_0, [ - {name: uaName}, - {name: p1Name} - ]); - assertEqual(query.bindVars.options_0, {}); - }, - - test_getVerticesByExample: function() { - var result = g._vertices([{ - name: uaName - },{ - name: p1Name - }]).toArray(); - assertEqual(result.length, 2); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, uaName); - assertEqual(sorted[1].name, p1Name); - }, - - test_getVerticesByExampleAndIdMixResultingAQL: function() { - var b_id = g[user].firstExample({name: ubName})._id; - var query = g._vertices([{ - name: uaName - }, - b_id, - { - name: ucName - }]); - var stmt = query.printQuery(); - assertEqual(stmt, plainVertexQueryStmt(0)); - assertEqual(query.bindVars.vertexExample_0, [ - {name: uaName}, - {_id: b_id}, - {name: ucName} - ]); - assertEqual(query.bindVars.options_0, {}); - }, - - test_getVerticesByExampleAndIdMix: function() { - var b_id = g[user].firstExample({name: ubName})._id; - var result = g._vertices([{ - name: uaName - }, - b_id, - { - name: ucName - }]).toArray(); - assertEqual(result.length, 3); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, uaName); - assertEqual(sorted[1].name, ubName); - assertEqual(sorted[2].name, ucName); - }, - - test_getAllEdgesResultingAQL: function() { - var query = g._edges(); - var stmt = query.printQuery(); - assertEqual(stmt, plainEdgesQueryStmt(0)); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [{}], - includeData: true - }); - }, - - test_getAllEdges: function() { - var result = g._edges().toArray(); - assertEqual(result.length, 9); - findFriends(result, [ud1, ud2, ud3, ud4]); - findBoughts(result, [d1, d2, d3, d4, d5]); - }, - - test_getEdgeByIdResultingAQL: function() { - var a_id = g[hasBought].firstExample({date: d1})._id; - var query = g._edges(a_id); - var stmt = query.printQuery(); - assertEqual(stmt, plainEdgesQueryStmt(0)); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [{_id: a_id}], - includeData: true - }); - }, - - test_getEdgeById: function() { - var a_id = g[hasBought].firstExample({date: d1})._id; - var result = g._edges(a_id).toArray(); - assertEqual(result.length, 1); - findBoughts(result, [d1]); - }, - - test_getEdgesByIdResultingAQL: function() { - var a_id = g[hasBought].firstExample({date: d1})._id; - var b_id = g[isFriend].firstExample({since: ud2})._id; - var query = g._edges([a_id, b_id]); - var stmt = query.printQuery(); - assertEqual(stmt, plainEdgesQueryStmt(0)); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [ - {_id: a_id}, - {_id: b_id} - ], - includeData: true - }); - }, - - test_getEdgesById: function() { - var a_id = g[hasBought].firstExample({date: d1})._id; - var b_id = g[isFriend].firstExample({since: ud2})._id; - var result = g._edges([a_id, b_id]).toArray(); - assertEqual(result.length, 2); - findBoughts(result, [d1]); - findFriends(result, [ud2]); - }, - - test_getEdgeByExampleResultingAQL: function() { - var query = g._edges({ - date: d2 - }); - var stmt = query.printQuery(); - assertEqual(stmt, plainEdgesQueryStmt(0)); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [ - {date: d2} - ], - includeData: true - }); - }, - - test_getEdgeByExample: function() { - var result = g._edges({ - date: d2 - }).toArray(); - assertEqual(result.length, 1); - findBoughts(result, [d2]); - }, - - test_getEdgesByExampleResultingAQL: function() { - var query = g._edges([{ - since: ud3 - },{ - date: d3 - }]); - var stmt = query.printQuery(); - assertEqual(stmt, plainEdgesQueryStmt(0)); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [ - {since: ud3}, - {date: d3} - ], - includeData: true - }); - }, - - test_getEdgesByExample: function() { - var result = g._edges([{ - since: ud3 - },{ - date: d3 - }]).toArray(); - assertEqual(result.length, 2); - findBoughts(result, [d3]); - findFriends(result, [ud3]); - }, - - test_getEdgesByExampleAndIdMixResultingAQL: function() { - var b_id = g[hasBought].firstExample({date: d1})._id; - var query = g._edges([{ - date: d5 - }, - b_id, - { - since: ud1 - }]); - var stmt = query.printQuery(); - assertEqual(stmt, plainEdgesQueryStmt(0)); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [ - {date: d5}, - {_id: b_id}, - {since: ud1} - ], - includeData: true - }); - }, - - test_getEdgesByExampleAndIdMix: function() { - var b_id = g[hasBought].firstExample({date: d1})._id; - var result = g._edges([{ - date: d5 - }, - b_id, - { - since: ud1 - }]).toArray(); - assertEqual(result.length, 3); - findBoughts(result, [d1, d5]); - findFriends(result, [ud1]); - }, - - test_getEdgesForSelectedVertexResultingAQL: function() { - var query = g._vertices({name: uaName}) - .edges(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainEdgesQueryStmt(1, 0)); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.vertexExample_0, {name: uaName}); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - direction: "any", - edgeExamples: [{}], - includeData: true - }); - }, - - test_getEdgesForSelectedVertex: function() { - var result = g._vertices({name: uaName}) - .edges() - .toArray(); - assertEqual(result.length, 3); - findBoughts(result, [d1]); - findFriends(result, [ud1, ud2]); - }, - - test_getEdgesForSelectedVertexWithoutEdges: function() { - var result = g._vertices({name: p1Name}) - .edges() - .restrict(isFriend) - .toArray(); - assertEqual(result.length, 0); - }, - - test_getEdgesWithRestrictionIfThereAreNone: function() { - var emptyGN = "UnitTestEmptyGraph"; - var emptyEdges = "UnitTestEmptyEdges"; - var emptyVertices = "UnitTestEmptyVertices"; - try { - graph._drop(emptyGN, true); - } catch (ignore) { - } - var g2 = graph._create(emptyGN, [ - graph._relation(emptyEdges, emptyVertices, emptyVertices) - ]); - g2[emptyVertices].save({_key: "highlander"}); - var res = g2._vertices(emptyVertices + "/highlander").edges().restrict(emptyEdges).toArray(); - assertEqual(res, []); - graph._drop(emptyGN, true); - }, - - test_getInEdgesForSelectedVertexResultingAQL: function() { - var query = g._vertices({name: ubName}) - .inEdges(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainEdgesQueryStmt(1, 0)); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.vertexExample_0, {name: ubName}); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - direction: "inbound", - edgeExamples: [{}], - includeData: true - }); - }, - - test_getInEdgesForSelectedVertex: function() { - var result = g._vertices({name: ubName}) - .inEdges() - .toArray(); - assertEqual(result.length, 1); - findFriends(result, [ud1]); - }, - - test_getOutEdgesForSelectedVertexResultingAQL: function() { - var query = g._vertices({name: ubName}) - .outEdges(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainEdgesQueryStmt(1, 0)); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.vertexExample_0, {name: ubName}); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - direction: "outbound", - edgeExamples: [{}], - includeData: true - }); - }, - - test_getOutEdgesForSelectedVertex: function() { - var result = g._vertices({name: ubName}) - .outEdges() - .toArray(); - assertEqual(result.length, 3); - findBoughts(result, [d2, d3]); - findFriends(result, [ud3]); - }, - - test_getVerticesForSelectedEdgeResultingAQL: function() { - var query = g._edges({since: ud1}) - .vertices(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainEdgesQueryStmt(0)); - expected.push(plainVertexQueryStmt(1, vertexMergeStmt("both", 0))); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [{since: ud1}], - includeData: true - }); - assertEqual(query.bindVars.options_1, {}); - }, - - test_getVerticesForSelectedEdge: function() { - var result = g._edges({since: ud1}) - .vertices() - .toArray(); - assertEqual(result.length, 2); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, uaName); - assertEqual(sorted[1].name, ubName); - }, - - test_toVertexForSelectedEdgeResultingAQL: function() { - var query = g._edges({since: ud1}) - .toVertices(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainEdgesQueryStmt(0)); - expected.push(plainVertexQueryStmt(1, vertexMergeStmt("to", 0))); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [{since: ud1}], - includeData: true - }); - assertEqual(query.bindVars.options_1, {}); - }, - - test_toVertexForSelectedEdge: function() { - var result = g._edges({since: ud1}) - .toVertices() - .toArray(); - assertEqual(result.length, 1); - assertEqual(result[0].name, ubName); - }, - - test_fromVertexForSelectedEdgeResultingAQL: function() { - var query = g._edges({since: ud1}) - .fromVertices(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainEdgesQueryStmt(0)); - expected.push(plainVertexQueryStmt(1, vertexMergeStmt("from", 0))); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.options_0, { - direction: "outbound", - edgeExamples: [{since: ud1}], - includeData: true - }); - assertEqual(query.bindVars.options_1, {}); - }, - - test_fromVertexForSelectedEdge: function() { - var result = g._edges({since: ud1}) - .fromVertices() - .toArray(); - assertEqual(result.length, 1); - assertEqual(result[0].name, uaName); - }, - - test_getAllVerticesThroughOutgoingEdgeResultingAQL: function() { - var query = g._vertices({name: uaName}) - .outEdges() - .toVertices(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainEdgesQueryStmt(1, 0)); - expected.push(plainVertexQueryStmt(2, vertexMergeStmt("to", 1))); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.vertexExample_0, { - name: uaName - }); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - direction: "outbound", - edgeExamples: [{}], - includeData: true - }); - assertEqual(query.bindVars.options_2, {}); - }, - - test_getAllVerticesThroughOutgoingEdges: function() { - var result = g._vertices({name: uaName}) - .outEdges() - .toVertices() - .toArray(); - assertEqual(result.length, 3); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, ubName); - assertEqual(sorted[1].name, ucName); - assertEqual(sorted[2].name, p1Name); - }, - - test_getAllVerticesThroughOutgoingEdgesWithFilterResultingAQL: function() { - var query = g._vertices({name: uaName}) - .outEdges([ - {since: ud1}, - {date: d1} - ]) - .toVertices(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainEdgesQueryStmt(1, 0)); - expected.push(plainVertexQueryStmt(2, vertexMergeStmt("to", 1))); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.vertexExample_0, { - name: uaName - }); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - direction: "outbound", - edgeExamples: [ - {since: ud1}, - {date: d1} - ], - includeData: true - }); - assertEqual(query.bindVars.options_2, {}); - }, - - test_getAllVerticesThroughOutgoingEdgesWithFilter: function() { - var result = g._vertices({name: uaName}) - .outEdges([ - {since: ud1}, - {date: d1} - ]).toVertices() - .toArray(); - assertEqual(result.length, 2); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, ubName); - assertEqual(sorted[1].name, p1Name); - }, - - test_getNeighborsOfSelectedVerticesResultingAQL: function() { - var query = g._vertices({name: uaName}) - .neighbors(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainNeighborQueryStmt(1, 0)); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - neighborExamples: {}, - includeData: true - }); - }, - - test_getNeighborsOfSelectedVertices: function() { - var result = g._vertices({name: uaName}) - .neighbors() - .toArray(); - assertEqual(result.length, 3); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, ubName); - assertEqual(sorted[1].name, ucName); - assertEqual(sorted[2].name, p1Name); - }, - - test_getExampleNeighborsOfSelectedVerticesResultingAQL: function() { - var query = g._vertices({name: uaName}) - .neighbors([{ - name: ubName - },{ - name: p1Name - }]); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainNeighborQueryStmt(1, 0)); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - neighborExamples: [{ - name: ubName - },{ - name: p1Name - }], - includeData: true - }); - }, - - test_getExampleNeighborsOfSelectedVertices: function() { - var result = g._vertices({name: uaName}) - .neighbors([{ - name: ubName - },{ - name: p1Name - }]) - .toArray(); - assertEqual(result.length, 2); - var sorted = _.sortBy(result, "name"); - assertEqual(sorted[0].name, ubName); - assertEqual(sorted[1].name, p1Name); - }, - - test_getEdgesOfNeighborsResultingAQL: function() { - var query = g._vertices({name: uaName}) - .neighbors() - .outEdges(); - var stmt = query.printQuery(); - var expected = []; - expected.push(plainVertexQueryStmt(0)); - expected.push(plainNeighborQueryStmt(1, 0)); - expected.push(plainEdgesQueryStmt(2, 1, "neighbors")); - assertEqual(stmt, expected.join(" ")); - assertEqual(query.bindVars.options_0, {}); - assertEqual(query.bindVars.options_1, { - neighborExamples: {}, - includeData: true - }); - assertEqual(query.bindVars.options_2, { - direction: "outbound", - edgeExamples: [{}], - includeData: true - }); - }, - - test_getEdgesOfNeighbors: function() { - var result = g._vertices({name: uaName}) - .neighbors() - .outEdges() - .toArray(); - assertEqual(result.length, 4); - findFriends(result, [ud3, ud4]); - findBoughts(result, [d2, d3]); - }, - - test_path: function() { - var result = g._vertices({name: uaName}) - .edges() - .toVertices() - .path() - .toArray(); - assertEqual(uaName, result[0][0].name); - assertEqual(ud1, result[0][1].since); - assertEqual(ubName, result[0][2].name); - assertEqual(uaName, result[1][0].name); - assertEqual(ud2, result[1][1].since); - assertEqual(ucName, result[1][2].name); - assertEqual(uaName, result[2][0].name); - assertEqual(d1, result[2][1].date); - assertEqual(p1Name, result[2][2].name); - }, - - test_pathVertices: function() { - var result = g._vertices({name: uaName}) - .edges() - .toVertices() - .pathVertices() - .toArray(); - assertEqual(uaName, result[0][0].name); - assertEqual(ubName, result[0][1].name); - assertEqual(uaName, result[1][0].name); - assertEqual(ucName, result[1][1].name); - assertEqual(uaName, result[2][0].name); - assertEqual(p1Name, result[2][1].name); - }, - - test_pathEdges: function() { - var result = g._vertices({name: uaName}) - .edges() - .toVertices() - .pathEdges() - .toArray(); - assertEqual(ud1, result[0][0].since); - assertEqual(ud2, result[1][0].since); - assertEqual(d1, result[2][0].date); - } - - - }; -} - function EdgesAndVerticesSuite() { 'use strict'; @@ -2428,19 +1291,19 @@ function EdgesAndVerticesSuite() { graph._relation(eC1, [eC4], [vC1]) ) ); - var g2 = graph._create( + graph._create( gN2, graph._edgeDefinitions( graph._relation(eC2, [eC1], [vC2]) ) ); - var g3 = graph._create( + graph._create( gN3, graph._edgeDefinitions( graph._relation(eC3, [eC2], [vC3]) ) ); - var g4 = graph._create( + graph._create( gN4, graph._edgeDefinitions( graph._relation(eC4, [eC3], [vC4]) @@ -2455,7 +1318,9 @@ function EdgesAndVerticesSuite() { assertTrue(db._exists(vertexId2)); assertTrue(db._exists(vertexId3)); assertTrue(db._exists(vertexId4)); - var edge = g1[eC1].remove(edge1._id); + + g1[eC1].remove(edge1._id); + assertFalse(db._exists(edge1._id)); assertFalse(db._exists(edge2._id)); assertFalse(db._exists(edge3._id)); @@ -2474,7 +1339,7 @@ function EdgesAndVerticesSuite() { test_eC_malformedId : function() { [ null, "foo", [ ] ].forEach(function(v) { try { - var x= g[ec2].save(v, v, {}); + g[ec2].save(v, v, {}); fail(); } catch (e) { @@ -2626,7 +1491,7 @@ function GeneralGraphCommonNeighborsSuite() { testNeighborsAnyV3: function () { - actual = testGraph._neighbors(v3).sort(); + actual = testGraph._neighbors(v3, {includeData: true}).sort(); assertTrue(actual[0]._id, v2); assertTrue(actual[1]._id, v5); assertTrue(actual[2]._id, v7); @@ -2634,7 +1499,7 @@ function GeneralGraphCommonNeighborsSuite() { }, testNeighborsAnyV6: function () { - actual = testGraph._neighbors(v6).sort(); + actual = testGraph._neighbors(v6, {includeData: true}).sort(); assertTrue(actual[0]._id, v2); assertTrue(actual[1]._id, v7); }, @@ -2984,7 +1849,6 @@ function OrphanCollectionSuite() { function MeasurementsSuite() { 'use strict'; var g; - var vertexId1, vertexId2; var unitTestGraphName = "unitTestGraph"; var ec1 = "unitTestEdgeCollection1"; @@ -3544,18 +2408,11 @@ function MeasurementsMovedFromAQLSuite() { }; } - - - //////////////////////////////////////////////////////////////////////////////// /// @brief executes the test suites //////////////////////////////////////////////////////////////////////////////// -// OBSOLETE! -// jsunity.run(GeneralGraphAQLQueriesSuite); -// jsunity.run(ChainedFluentAQLResultsSuite); -// jsunity.run(GeneralGraphCommonNeighborsSuite); - +jsunity.run(GeneralGraphCommonNeighborsSuite); jsunity.run(EdgesAndVerticesSuite); jsunity.run(GeneralGraphCreationSuite); jsunity.run(OrphanCollectionSuite); @@ -3563,4 +2420,3 @@ jsunity.run(MeasurementsSuite); jsunity.run(MeasurementsMovedFromAQLSuite); return jsunity.done(); - From 80e2531741358bf2b5bc490d8fd1999ee8f41c8b Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 7 Jun 2016 16:59:57 +0200 Subject: [PATCH 08/16] Removed OBSOLETE AQLGenerator. Use AQB instead --- js/common/modules/@arangodb/general-graph.js | 525 ------------------- 1 file changed, 525 deletions(-) diff --git a/js/common/modules/@arangodb/general-graph.js b/js/common/modules/@arangodb/general-graph.js index fcc8bcbf26..0cdbfec567 100644 --- a/js/common/modules/@arangodb/general-graph.js +++ b/js/common/modules/@arangodb/general-graph.js @@ -263,34 +263,6 @@ var wrapCollection = function(col) { return wrapper; }; -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_example_description -//////////////////////////////////////////////////////////////////////////////// - -var transformExample = function(example) { - if (example === undefined) { - return {}; - } - if (typeof example === "string") { - return {_id: example}; - } - if (typeof example === "object") { - if (Array.isArray(example)) { - return _.map(example, function(e) { - if (typeof e === "string") { - return {_id: e}; - } - return e; - }); - } - return example; - } - var err = new ArangoError(); - err.errorNum = arangodb.errors.ERROR_GRAPH_INVALID_EXAMPLE_ARRAY_OBJECT_STRING.code; - err.errorMessage = arangodb.errors.ERROR_GRAPH_INVALID_EXAMPLE_ARRAY_OBJECT_STRING.message; - throw err; -}; - // Returns either `collection` or UNION(`all collections`) // Does not contain filters or iterator variable // Can be used as for x IN ${startInAllCollections()} return x @@ -345,32 +317,6 @@ var transformExampleToAQL = function(examples, collections, bindVars, varname) { return query; }; - - -var checkAllowsRestriction = function(list, rest, msg) { - var unknown = []; - var colList = _.map(list, function(item) { - return item.name(); - }); - _.each(rest, function(r) { - if (!_.contains(colList, r)) { - unknown.push(r); - } - }); - if (unknown.length > 0) { - var err = new ArangoError(); - err.errorNum = arangodb.errors.ERROR_BAD_PARAMETER.code; - err.errorMessage = msg + ": " - + unknown.join(" and ") - + " are not known to the graph"; - throw err; - } - return true; -}; - - - - var AQLStatement = function(query, type) { this.query = query; if (type) { @@ -412,477 +358,6 @@ AQLStatement.prototype.allowsRestrict = function() { || this.isNeighborQuery(); }; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief Starting point of the fluent interface. -/// -/// Only for internal use. -//////////////////////////////////////////////////////////////////////////////// - -var AQLGenerator = function(graph) { - this.stack = []; - this.callStack = []; - this.bindVars = { - "graphName": graph.__name - }; - this.graph = graph; - this.cursor = null; - this.lastVar = ""; - this._path = []; - this._pathVertices = []; - this._pathEdges = []; - this._getPath = false; -}; - -AQLGenerator.prototype._addToPrint = function(name) { - var args = Array.prototype.slice.call(arguments); - args.shift(); // The Name - var stackEntry = {}; - stackEntry.name = name; - if (args.length > 0 && args[0] !== undefined) { - stackEntry.params = args; - } else { - stackEntry.params = []; - } - this.callStack.push(stackEntry); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief Print the call stack of this query -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype._PRINT = function(context) { - context.output = "[ GraphAQL "; - context.output += this.graph.__name; - _.each(this.callStack, function(call) { - if(context.prettyPrint) { - context.output += "\n"; - } - context.output += "."; - context.output += call.name; - context.output += "("; - var i = 0; - for(i = 0; i < call.params.length; ++i) { - if (i > 0) { - context.output += ", "; - } - internal.printRecursive(call.params[i], context); - } - context.output += ")"; - }); - context.output += " ] "; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief Dispose and reset the current cursor of the query -/// -/// Only for internal use. -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype._clearCursor = function() { - if (this.cursor) { - this.cursor.dispose(); - this.cursor = null; - } -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief Execute the query and keep the cursor -/// -/// Only for internal use. -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype._createCursor = function() { - if (!this.cursor) { - this.cursor = this.execute(); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief General edge query, takes direction as parameter -/// -/// This will create the general AQL statement to load edges -/// connected to the vertices selected in the step before. -/// Will also bind the options into bindVars. -/// -/// Only for internal use, user gets different functions for directions -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype._edges = function(edgeExample, options) { - this._clearCursor(); - this.options = options || {}; - var ex = transformExample(edgeExample); - var edgeName = "edges_" + this.stack.length; - var query = "FOR " + edgeName - + ' IN GRAPH_EDGES(@graphName'; - if (!this.getLastVar()) { - query += ',{}'; - } else { - query += ',' + this.getLastVar(); - } - query += ',@options_' - + this.stack.length + ')'; - if (!Array.isArray(ex)) { - ex = [ex]; - } - this.options.edgeExamples = ex; - this.options.includeData = true; - this.bindVars["options_" + this.stack.length] = this.options; - var stmt = new AQLStatement(query, "edge"); - this.stack.push(stmt); - this.lastVar = edgeName; - this._path.push(edgeName); - this._pathEdges.push(edgeName); - return this; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_edges -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.edges = function(example) { - this._addToPrint("edges", example); - return this._edges(example, {direction: "any"}); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_outEdges -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.outEdges = function(example) { - this._addToPrint("outEdges", example); - return this._edges(example, {direction: "outbound"}); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_inEdges -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.inEdges = function(example) { - this._addToPrint("inEdges", example); - return this._edges(example, {direction: "inbound"}); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief General vertex query, takes direction as parameter -/// -/// This will create the general AQL statement to load vertices -/// connected to the edges selected in the step before. -/// Will also bind the options into bindVars. -/// -/// Only for internal use, user gets different functions for directions -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype._vertices = function(example, options, mergeWith) { - this._clearCursor(); - this.options = options || {}; - var ex = transformExample(example); - var vertexName = "vertices_" + this.stack.length; - var query = "FOR " + vertexName - + " IN GRAPH_VERTICES(@graphName,"; - if (mergeWith !== undefined) { - if (Array.isArray(mergeWith)) { - var i; - query += "["; - for (i = 0; i < mergeWith.length; ++i) { - if (i > 0) { - query += ","; - } - query += "MERGE(@vertexExample_" + this.stack.length - + "," + mergeWith[i] + ")"; - } - query += "]"; - } else { - if (Array.isArray(ex)) { - query += "@vertexExample_" + this.stack.length + " [ * RETURN MERGE(CURRENT," + mergeWith + ")]"; - } - else { - query += "MERGE(@vertexExample_" + this.stack.length - + "," + mergeWith + ")"; - } - } - } else { - query += "@vertexExample_" + this.stack.length; - } - query += ',@options_' + this.stack.length + ')'; - this.bindVars["vertexExample_" + this.stack.length] = ex; - this.bindVars["options_" + this.stack.length] = this.options; - var stmt = new AQLStatement(query, "vertex"); - this.stack.push(stmt); - this.lastVar = vertexName; - this._path.push(vertexName); - this._pathVertices.push(vertexName); - return this; - -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_vertices -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.vertices = function(example) { - this._addToPrint("vertices", example); - if (!this.getLastVar()) { - return this._vertices(example); - } - var edgeVar = this.getLastVar(); - return this._vertices(example, undefined, - ["{'_id': " + edgeVar + "._from}", "{'_id': " + edgeVar + "._to}"]); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_fromVertices -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.fromVertices = function(example) { - this._addToPrint("fromVertices", example); - if (!this.getLastVar()) { - return this._vertices(example); - } - var edgeVar = this.getLastVar(); - return this._vertices(example, undefined, "{'_id': " + edgeVar + "._from}"); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_toVertices -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.toVertices = function(example) { - this._addToPrint("toVertices", example); - if (!this.getLastVar()) { - return this._vertices(example); - } - var edgeVar = this.getLastVar(); - return this._vertices(example, undefined, "{'_id': " + edgeVar + "._to}"); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief Get the variable holding the last result -/// -/// Only for internal use. -/// The return statement of the AQL query has to return -/// this value. -/// Also chaining has to use this variable to restrict -/// queries in the next step to only values from this set. -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.getLastVar = function() { - if (this.lastVar === "") { - return false; - } - return this.lastVar; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_path -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.path = function() { - this._clearCursor(); - var statement = new AQLStatement("", "path"); - this.stack.push(statement); - return this; -}; - -AQLGenerator.prototype.pathVertices = function() { - this._clearCursor(); - var statement = new AQLStatement("", "pathVertices"); - this.stack.push(statement); - return this; -}; - -AQLGenerator.prototype.pathEdges = function() { - this._clearCursor(); - var statement = new AQLStatement("", "pathEdges"); - this.stack.push(statement); - return this; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_neighbors -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.neighbors = function(vertexExample, options) { - this._addToPrint("neighbors", vertexExample, options); - var ex = transformExample(vertexExample); - var resultName = "neighbors_" + this.stack.length; - var query = "FOR " + resultName - + " IN GRAPH_NEIGHBORS(@graphName," - + this.getLastVar() - + ',@options_' - + this.stack.length + ')'; - var opts; - if (options) { - opts = Object.assign({}, options); - } else { - opts = {}; - } - opts.neighborExamples = ex; - opts.includeData = true; - this.bindVars["options_" + this.stack.length] = opts; - var stmt = new AQLStatement(query, "neighbor"); - this.stack.push(stmt); - - this.lastVar = resultName; - this._path.push(resultName); - this._pathVertices.push(resultName); - - /* - this.lastVar = resultName + ".vertex"; - this._path.push(resultName + ".path"); - this._pathVertices.push("SLICE(" + resultName + ".path.vertices, 1)"); - this._pathEdges.push(resultName + ".path.edges"); - */ - return this; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief Get the last statement that can be restricted to collections -/// -/// Only for internal use. -/// This returnes the last statement that can be restricted to -/// specific collections. -/// Required to allow a chaining of `restrict` after `filter` for instance. -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype._getLastRestrictableStatementInfo = function() { - var i = this.stack.length - 1; - while (!this.stack[i].allowsRestrict()) { - i--; - } - return { - statement: this.stack[i], - options: this.bindVars["options_" + i] - }; -}; - - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_restrict -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.restrict = function(restrictions) { - var rest = stringToArray(restrictions); - if (rest.length === 0) { - return this; - } - this._addToPrint("restrict", restrictions); - this._clearCursor(); - var lastQueryInfo = this._getLastRestrictableStatementInfo(); - var lastQuery = lastQueryInfo.statement; - var opts = lastQueryInfo.options; - var restricts; - if (lastQuery.isEdgeQuery()) { - checkAllowsRestriction( - this.graph._edgeCollections(), - rest, - "edge collections" - ); - restricts = opts.edgeCollectionRestriction || []; - opts.edgeCollectionRestriction = restricts.concat(restrictions); - } else if (lastQuery.isVertexQuery() || lastQuery.isNeighborQuery()) { - checkAllowsRestriction( - this.graph._vertexCollections(), - rest, - "vertex collections" - ); - restricts = opts.vertexCollectionRestriction || []; - opts.vertexCollectionRestriction = restricts.concat(restrictions); - } - return this; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_filter -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.filter = function(example) { - this._addToPrint("filter", example); - this._clearCursor(); - var ex = []; - if (Object.prototype.toString.call(example) !== "[object Array]") { - if (Object.prototype.toString.call(example) !== "[object Object]") { - var err = new ArangoError(); - err.errorNum = arangodb.errors.ERROR_GRAPH_INVALID_EXAMPLE_ARRAY_OBJECT.code; - err.errorMessage = arangodb.errors.ERROR_GRAPH_INVALID_EXAMPLE_ARRAY_OBJECT.message; - throw err; - } - ex = [example]; - } else { - ex = example; - } - var query = "FILTER MATCHES(" + this.getLastVar() + "," + JSON.stringify(ex) + ")"; - this.stack.push(new AQLStatement(query)); - return this; -}; - -AQLGenerator.prototype.printQuery = function() { - return this.stack.map(function(stmt) { - return stmt.printQuery(); - }).join(" "); -}; - -AQLGenerator.prototype.execute = function() { - this._clearCursor(); - var query = this.printQuery(); - var bindVars = this.bindVars; - if (this.stack[this.stack.length-1].isPathQuery()) { - query += " RETURN [" + this._path + "]"; - } else if (this.stack[this.stack.length-1].isPathVerticesQuery()) { - query += " RETURN FLATTEN([" + this._pathVertices + "])"; - } else if (this.stack[this.stack.length-1].isPathEdgesQuery()) { - query += " RETURN FLATTEN([" + this._pathEdges + "])"; - } else { - query += " RETURN " + this.getLastVar(); - } - return db._query(query, bindVars, {count: true}); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_toArray -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.toArray = function() { - this._createCursor(); - - return this.cursor.toArray(); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_count -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.count = function() { - this._createCursor(); - return this.cursor.count(); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_hasNext -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.hasNext = function() { - this._createCursor(); - return this.cursor.hasNext(); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_fluent_aql_next -//////////////////////////////////////////////////////////////////////////////// - -AQLGenerator.prototype.next = function() { - this._createCursor(); - return this.cursor.next(); -}; - -AQLGenerator.prototype[Symbol.iterator] = function* () { - this._createCursor(); - for (const item of this.cursor) { - yield item; - } -}; - - //////////////////////////////////////////////////////////////////////////////// /// Deprecated block //////////////////////////////////////////////////////////////////////////////// From 6033a0f40b52490a4294176c8181e3565133a8fb Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 7 Jun 2016 17:10:35 +0200 Subject: [PATCH 09/16] Removed obsolete unused code --- js/common/modules/@arangodb/general-graph.js | 101 ------------------- 1 file changed, 101 deletions(-) diff --git a/js/common/modules/@arangodb/general-graph.js b/js/common/modules/@arangodb/general-graph.js index 0cdbfec567..b47a4047cb 100644 --- a/js/common/modules/@arangodb/general-graph.js +++ b/js/common/modules/@arangodb/general-graph.js @@ -317,94 +317,6 @@ var transformExampleToAQL = function(examples, collections, bindVars, varname) { return query; }; -var AQLStatement = function(query, type) { - this.query = query; - if (type) { - this.type = type; - } -}; - -AQLStatement.prototype.printQuery = function() { - return this.query; -}; - -AQLStatement.prototype.isPathQuery = function() { - return this.type === "path"; -}; - -AQLStatement.prototype.isPathVerticesQuery = function() { - return this.type === "pathVertices"; -}; - -AQLStatement.prototype.isPathEdgesQuery = function() { - return this.type === "pathEdges"; -}; - -AQLStatement.prototype.isEdgeQuery = function() { - return this.type === "edge"; -}; - -AQLStatement.prototype.isVertexQuery = function() { - return this.type === "vertex"; -}; - -AQLStatement.prototype.isNeighborQuery = function() { - return this.type === "neighbor"; -}; - -AQLStatement.prototype.allowsRestrict = function() { - return this.isEdgeQuery() - || this.isVertexQuery() - || this.isNeighborQuery(); -}; - -//////////////////////////////////////////////////////////////////////////////// -/// Deprecated block -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_undirectedRelation -//////////////////////////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////////////////////////// -/// Deprecated block -//////////////////////////////////////////////////////////////////////////////// -var _undirectedRelation = function (relationName, vertexCollections) { - var err; - if (arguments.length < 2) { - err = new ArangoError(); - err.errorNum = arangodb.errors.ERROR_GRAPH_INVALID_NUMBER_OF_ARGUMENTS.code; - err.errorMessage = arangodb.errors.ERROR_GRAPH_INVALID_NUMBER_OF_ARGUMENTS.message + "2"; - throw err; - } - - if (typeof relationName !== "string" || relationName === "") { - err = new ArangoError(); - err.errorNum = arangodb.errors.ERROR_GRAPH_INVALID_PARAMETER.code; - err.errorMessage = arangodb.errors.ERROR_GRAPH_INVALID_PARAMETER.message + " arg1 must not be empty"; - throw err; - } - - if (!isValidCollectionsParameter(vertexCollections)) { - err = new ArangoError(); - err.errorNum = arangodb.errors.ERROR_GRAPH_INVALID_PARAMETER.code; - err.errorMessage = arangodb.errors.ERROR_GRAPH_INVALID_PARAMETER.message + " arg2 must not be empty"; - throw err; - } - - return { - collection: relationName, - from: stringToArray(vertexCollections), - to: stringToArray(vertexCollections) - }; -}; -//////////////////////////////////////////////////////////////////////////////// -/// Deprecated block -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -/// @brief was docuBlock JSF_general_graph_directedRelation -//////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_general_graph_relation //////////////////////////////////////////////////////////////////////////////// @@ -463,14 +375,10 @@ var _listObjects = function() { return getGraphCollection().toArray(); }; - - - //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_general_graph_edge_definitions //////////////////////////////////////////////////////////////////////////////// - var _edgeDefinitions = function () { var res = [], args = arguments; @@ -482,7 +390,6 @@ var _edgeDefinitions = function () { }; - //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_general_graph_extend_edge_definitions //////////////////////////////////////////////////////////////////////////////// @@ -2229,12 +2136,6 @@ Graph.prototype._PRINT = function(context) { }; -/// Deprecated function (announced 2.3) -exports._undirectedRelation = _undirectedRelation; -/// Deprecated function (announced 2.3) -exports._directedRelation = function () { - return _relation.apply(this, arguments); -}; exports._relation = _relation; exports._graph = _graph; exports._edgeDefinitions = _edgeDefinitions; @@ -2258,5 +2159,3 @@ exports._registerCompatibilityFunctions = registerCompatibilityFunctions; //////////////////////////////////////////////////////////////////////////////// /// @brief was docuBlock JSF_general_graph_create_graph_example2 //////////////////////////////////////////////////////////////////////////////// - - From c0204e89d9ef744e936770df87c88eb2f05a4421 Mon Sep 17 00:00:00 2001 From: Kaveh Vahedipour Date: Tue, 7 Jun 2016 17:16:58 +0200 Subject: [PATCH 10/16] green tests in agencySize 3 --- arangod/Agency/Agent.cpp | 2 +- js/client/tests/agency/agency-test.js | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/arangod/Agency/Agent.cpp b/arangod/Agency/Agent.cpp index b9064bd649..705a01f186 100644 --- a/arangod/Agency/Agent.cpp +++ b/arangod/Agency/Agent.cpp @@ -363,7 +363,7 @@ void Agent::run() { while (!this->isStopping() && size() > 1) { // need only to run in multi-host if (leading()) - _appendCV.wait(500000); // Only if leading + _appendCV.wait(25000); // Only if leading else _appendCV.wait(); // Just sit there doing nothing diff --git a/js/client/tests/agency/agency-test.js b/js/client/tests/agency/agency-test.js index 90f66806ba..0e3be5527a 100644 --- a/js/client/tests/agency/agency-test.js +++ b/js/client/tests/agency/agency-test.js @@ -42,8 +42,8 @@ function agencyTestSuite () { /// @brief the agency servers //////////////////////////////////////////////////////////////////////////////// - var agencyServers = ARGUMENTS; - var whoseTurn = 0; // used to do round robin on agencyServers + var agencyServers = ARGUMENTS[0].split(" "); + var whoseTurn = 0; var request = require("@arangodb/request"); @@ -53,6 +53,7 @@ function agencyTestSuite () { var res = request({url: agencyServers[whoseTurn] + "/_api/agency/read", method: "POST", followRedirects: true, body: JSON.stringify(list), headers: {"Content-Type": "application/json"}}); + res.bodyParsed = JSON.parse(res.body); return res; } @@ -62,8 +63,10 @@ function agencyTestSuite () { // response: var res = request({url: agencyServers[whoseTurn] + "/_api/agency/write", method: "POST", followRedirects: true, body: JSON.stringify(list), - headers: {"Content-Type": "application/json"}}); + headers: {"Content-Type": "application/json", + "x-arangodb-agency-mode": "waitForCommitted"}}); res.bodyParsed = JSON.parse(res.body); + wait(.1); return res; } @@ -100,7 +103,7 @@ function agencyTestSuite () { //////////////////////////////////////////////////////////////////////////////// testSingleTopLevel : function () { - wait(10); + wait(1); assertEqual(readAndCheck([["/x"]]), [{}]); writeAndCheck([[{x:12}]]); assertEqual(readAndCheck([["/x"]]), [{x:12}]); From a88b1adf8e65d9db12f5a6fc19e43772550c8364 Mon Sep 17 00:00:00 2001 From: jsteemann Date: Tue, 7 Jun 2016 17:25:26 +0200 Subject: [PATCH 11/16] make query killable even if it did not yet start --- arangod/RestHandler/RestCursorHandler.cpp | 9 +++++++++ arangod/RestHandler/RestCursorHandler.h | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/arangod/RestHandler/RestCursorHandler.cpp b/arangod/RestHandler/RestCursorHandler.cpp index 0064143763..10e16befa6 100644 --- a/arangod/RestHandler/RestCursorHandler.cpp +++ b/arangod/RestHandler/RestCursorHandler.cpp @@ -46,6 +46,7 @@ RestCursorHandler::RestCursorHandler( _queryRegistry(queryRegistry), _queryLock(), _query(nullptr), + _hasStarted(false), _queryKilled(false) {} HttpHandler::status_t RestCursorHandler::execute() { @@ -235,6 +236,10 @@ void RestCursorHandler::processQuery(VPackSlice const& slice) { void RestCursorHandler::registerQuery(arangodb::aql::Query* query) { MUTEX_LOCKER(mutexLocker, _queryLock); + + if (_queryKilled) { + THROW_ARANGO_EXCEPTION(TRI_ERROR_REQUEST_CANCELED); + } TRI_ASSERT(_query == nullptr); _query = query; @@ -259,6 +264,10 @@ bool RestCursorHandler::cancelQuery() { if (_query != nullptr) { _query->killed(true); + _queryKilled = true; + _hasStarted = true; + return true; + } else if (!_hasStarted) { _queryKilled = true; return true; } diff --git a/arangod/RestHandler/RestCursorHandler.h b/arangod/RestHandler/RestCursorHandler.h index eb6d6b17ef..20537436f1 100644 --- a/arangod/RestHandler/RestCursorHandler.h +++ b/arangod/RestHandler/RestCursorHandler.h @@ -151,6 +151,12 @@ class RestCursorHandler : public RestVocbaseBaseHandler { ////////////////////////////////////////////////////////////////////////////// arangodb::aql::Query* _query; + + ////////////////////////////////////////////////////////////////////////////// + /// @brief whether or not the query has already started executing + ////////////////////////////////////////////////////////////////////////////// + + bool _hasStarted; ////////////////////////////////////////////////////////////////////////////// /// @brief whether or not the query was killed From c1ff7d249f695ea37749552884e7de926b400ed2 Mon Sep 17 00:00:00 2001 From: jsteemann Date: Tue, 7 Jun 2016 17:26:07 +0200 Subject: [PATCH 12/16] added tests, fixed unique constraints --- .../api-index-persistent-spec.rb | 579 ++++++++++++++++++ arangod/Indexes/RocksDBIndex.cpp | 72 ++- 2 files changed, 647 insertions(+), 4 deletions(-) create mode 100644 UnitTests/HttpInterface/api-index-persistent-spec.rb diff --git a/UnitTests/HttpInterface/api-index-persistent-spec.rb b/UnitTests/HttpInterface/api-index-persistent-spec.rb new file mode 100644 index 0000000000..6df9496968 --- /dev/null +++ b/UnitTests/HttpInterface/api-index-persistent-spec.rb @@ -0,0 +1,579 @@ +# coding: utf-8 + +require 'rspec' +require 'arangodb.rb' + +describe ArangoDB do + prefix = "api-index-persistent" + +################################################################################ +## unique constraints during create +################################################################################ + + context "creating persistent index:" do + context "dealing with unique constraints violation:" do + before do + @cn = "UnitTestsCollectionIndexes" + ArangoDB.drop_collection(@cn) + @cid = ArangoDB.create_collection(@cn) + end + + after do + ArangoDB.drop_collection(@cn) + end + + it "does not create the index in case of violation" do + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # create another document + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # try to create the index + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ] }" + doc = ArangoDB.log_post("#{prefix}-fail", cmd, :body => body) + + doc.code.should eq(400) + doc.parsed_response['error'].should eq(true) + doc.parsed_response['code'].should eq(400) + doc.parsed_response['errorNum'].should eq(1210) + end + + it "does not create the index in case of violation, null attributes" do + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : null, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # create another document + body = "{ \"a\" : null, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # try to create the index + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ] }" + doc = ArangoDB.log_post("#{prefix}-fail", cmd, :body => body) + + doc.code.should eq(400) + doc.parsed_response['error'].should eq(true) + doc.parsed_response['code'].should eq(400) + doc.parsed_response['errorNum'].should eq(1210) + end + + it "does not create the index in case of violation, sparse index" do + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # create another document + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # try to create the index + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ], \"sparse\" : true }" + doc = ArangoDB.log_post("#{prefix}-fail", cmd, :body => body) + + doc.code.should eq(400) + doc.parsed_response['error'].should eq(true) + doc.parsed_response['code'].should eq(400) + doc.parsed_response['errorNum'].should eq(1210) + end + + it "creates the index in case of null attributes, sparse index" do + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : null, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # create another document + body = "{ \"a\" : null, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + # try to create the index + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ], \"sparse\" : true }" + doc = ArangoDB.log_post("#{prefix}-fail", cmd, :body => body) + + doc.code.should eq(201) + doc.parsed_response['error'].should eq(false) + end + end + end + +################################################################################ +## unique constraints during create +################################################################################ + + context "creating documents:" do + context "dealing with unique constraints:" do + before do + @cn = "UnitTestsCollectionIndexes" + ArangoDB.drop_collection(@cn) + @cid = ArangoDB.create_collection(@cn) + end + + after do + ArangoDB.drop_collection(@cn) + end + + it "rolls back in case of violation" do + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ] }" + doc = ArangoDB.log_post("#{prefix}-create1", cmd, :body => body) + + doc.code.should eq(201) + doc.parsed_response['type'].should eq("persistent") + doc.parsed_response['unique'].should eq(true) + + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + id1 = doc.parsed_response['_id'] + id1.should be_kind_of(String) + + rev1 = doc.parsed_response['_rev'] + rev1.should be_kind_of(String) + + # check it + cmd2 = "/_api/document/#{id1}" + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # create a unique constraint violation + body = "{ \"a\" : 1, \"b\" : 2 }" + doc = ArangoDB.log_post("#{prefix}-create3", cmd1, :body => body) + + doc.code.should eq(409) + + # check it again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # third try (make sure the rollback has not destroyed anything) + body = "{ \"a\" : 1, \"b\" : 3 }" + doc = ArangoDB.log_post("#{prefix}-create4", cmd1, :body => body) + + doc.code.should eq(409) + + # check it again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # unload collection + cmd3 = "/_api/collection/#{@cn}/unload" + doc = ArangoDB.log_put("#{prefix}", cmd3) + doc.code.should eq(200) + + # flush wal + doc = ArangoDB.put("/_admin/wal/flush"); + doc.code.should eq(200) + + cmd3 = "/_api/collection/#{@cn}" + doc = ArangoDB.log_get("#{prefix}", cmd3) + doc.code.should eq(200) + + while doc.parsed_response['status'] != 2 + doc = ArangoDB.get(cmd3) + doc.code.should eq(200) + sleep 1 + end + + # check it again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + end + + it "rolls back in case of violation, sparse index" do + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ], \"sparse\" : true }" + doc = ArangoDB.log_post("#{prefix}-create1", cmd, :body => body) + + doc.code.should eq(201) + doc.parsed_response['type'].should eq("persistent") + doc.parsed_response['unique'].should eq(true) + + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-create2", cmd1, :body => body) + + doc.code.should eq(201) + + id1 = doc.parsed_response['_id'] + id1.should be_kind_of(String) + + rev1 = doc.parsed_response['_rev'] + rev1.should be_kind_of(String) + + # check it + cmd2 = "/_api/document/#{id1}" + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # create a unique constraint violation + body = "{ \"a\" : 1, \"b\" : 2 }" + doc = ArangoDB.log_post("#{prefix}-create3", cmd1, :body => body) + + doc.code.should eq(409) + + # check it again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # third try (make sure the rollback has not destroyed anything) + body = "{ \"a\" : 1, \"b\" : 3 }" + doc = ArangoDB.log_post("#{prefix}-create4", cmd1, :body => body) + + doc.code.should eq(409) + + # check it again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # unload collection + cmd3 = "/_api/collection/#{@cn}/unload" + doc = ArangoDB.log_put("#{prefix}", cmd3) + doc.code.should eq(200) + + # flush wal + doc = ArangoDB.put("/_admin/wal/flush"); + doc.code.should eq(200) + + cmd3 = "/_api/collection/#{@cn}" + doc = ArangoDB.log_get("#{prefix}", cmd3) + doc.code.should eq(200) + + while doc.parsed_response['status'] != 2 + doc = ArangoDB.get(cmd3) + doc.code.should eq(200) + sleep 1 + end + + # check it again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + end + end + end + +################################################################################ +## unique constraints during update +################################################################################ + + context "updating documents:" do + context "dealing with unique constraints:" do + before do + @cn = "UnitTestsCollectionIndexes" + ArangoDB.drop_collection(@cn) + @cid = ArangoDB.create_collection(@cn) + end + + after do + ArangoDB.drop_collection(@cn) + end + + it "rolls back in case of violation" do + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ] }" + doc = ArangoDB.log_post("#{prefix}-update1", cmd, :body => body) + + doc.code.should eq(201) + doc.parsed_response['type'].should eq("persistent") + doc.parsed_response['unique'].should eq(true) + + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-update2", cmd1, :body => body) + + doc.code.should eq(201) + + id1 = doc.parsed_response['_id'] + id1.should be_kind_of(String) + + rev1 = doc.parsed_response['_rev'] + rev1.should be_kind_of(String) + + # check it + cmd2 = "/_api/document/#{id1}" + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # create a second document + body = "{ \"a\" : 2, \"b\" : 2 }" + doc = ArangoDB.log_post("#{prefix}-update3", cmd1, :body => body) + + doc.code.should eq(201) + + id2 = doc.parsed_response['_id'] + id2.should be_kind_of(String) + + rev2 = doc.parsed_response['_rev'] + rev2.should be_kind_of(String) + + # create a unique constraint violation during update + body = "{ \"a\" : 2, \"b\" : 3 }" + doc = ArangoDB.log_put("#{prefix}", cmd2, :body => body) + + doc.code.should eq(409) + + # check first document again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + rev3 = doc.parsed_response['_rev'] + rev3.should be_kind_of(String) + + # check second document again + cmd3 = "/_api/document/#{id2}" + doc = ArangoDB.log_get("#{prefix}", cmd3) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(2) + doc.parsed_response['b'].should eq(2) + doc.parsed_response['_id'].should eq(id2) + doc.parsed_response['_rev'].should eq(rev2) + + # third try (make sure the rollback has not destroyed anything) + body = "{ \"a\" : 2, \"b\" : 4 }" + doc = ArangoDB.log_put("#{prefix}", cmd2, :body => body) + + doc.code.should eq(409) + + # check the first document again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + doc.parsed_response['_rev'].should_not eq(rev2) + + # unload collection + cmd4 = "/_api/collection/#{@cn}/unload" + doc = ArangoDB.log_put("#{prefix}", cmd4) + doc.code.should eq(200) + + # flush wal + doc = ArangoDB.put("/_admin/wal/flush"); + doc.code.should eq(200) + + cmd4 = "/_api/collection/#{@cn}" + doc = ArangoDB.log_get("#{prefix}", cmd4) + doc.code.should eq(200) + + while doc.parsed_response['status'] != 2 + doc = ArangoDB.get(cmd4) + doc.code.should eq(200) + sleep 1 + end + + # check the first document again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + doc.parsed_response['_rev'].should_not eq(rev2) + end + + it "rolls back in case of violation, sparse index" do + cmd = "/_api/index?collection=#{@cn}" + body = "{ \"type\" : \"persistent\", \"unique\" : true, \"fields\" : [ \"a\" ], \"sparse\" : true }" + doc = ArangoDB.log_post("#{prefix}-update1", cmd, :body => body) + + doc.code.should eq(201) + doc.parsed_response['type'].should eq("persistent") + doc.parsed_response['unique'].should eq(true) + + # create a document + cmd1 = "/_api/document?collection=#{@cn}" + body = "{ \"a\" : 1, \"b\" : 1 }" + doc = ArangoDB.log_post("#{prefix}-update2", cmd1, :body => body) + + doc.code.should eq(201) + + id1 = doc.parsed_response['_id'] + id1.should be_kind_of(String) + + rev1 = doc.parsed_response['_rev'] + rev1.should be_kind_of(String) + + # check it + cmd2 = "/_api/document/#{id1}" + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + # create a second document + body = "{ \"a\" : 2, \"b\" : 2 }" + doc = ArangoDB.log_post("#{prefix}-update3", cmd1, :body => body) + + doc.code.should eq(201) + + id2 = doc.parsed_response['_id'] + id2.should be_kind_of(String) + + rev2 = doc.parsed_response['_rev'] + rev2.should be_kind_of(String) + + # create a unique constraint violation during update + body = "{ \"a\" : 2, \"b\" : 3 }" + doc = ArangoDB.log_put("#{prefix}", cmd2, :body => body) + + doc.code.should eq(409) + + # check first document again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + + rev3 = doc.parsed_response['_rev'] + rev3.should be_kind_of(String) + + # check second document again + cmd3 = "/_api/document/#{id2}" + doc = ArangoDB.log_get("#{prefix}", cmd3) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(2) + doc.parsed_response['b'].should eq(2) + doc.parsed_response['_id'].should eq(id2) + doc.parsed_response['_rev'].should eq(rev2) + + # third try (make sure the rollback has not destroyed anything) + body = "{ \"a\" : 2, \"b\" : 4 }" + doc = ArangoDB.log_put("#{prefix}", cmd2, :body => body) + + doc.code.should eq(409) + + # check the first document again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + doc.parsed_response['_rev'].should_not eq(rev2) + + # unload collection + cmd4 = "/_api/collection/#{@cn}/unload" + doc = ArangoDB.log_put("#{prefix}", cmd4) + doc.code.should eq(200) + + # flush wal + doc = ArangoDB.put("/_admin/wal/flush"); + doc.code.should eq(200) + + cmd4 = "/_api/collection/#{@cn}" + doc = ArangoDB.log_get("#{prefix}", cmd4) + doc.code.should eq(200) + + while doc.parsed_response['status'] != 2 + doc = ArangoDB.get(cmd4) + doc.code.should eq(200) + sleep 1 + end + + # check the first document again + doc = ArangoDB.log_get("#{prefix}", cmd2) + + doc.code.should eq(200) + doc.parsed_response['a'].should eq(1) + doc.parsed_response['b'].should eq(1) + doc.parsed_response['_id'].should eq(id1) + doc.parsed_response['_rev'].should eq(rev1) + doc.parsed_response['_rev'].should_not eq(rev2) + end + end + + end +end diff --git a/arangod/Indexes/RocksDBIndex.cpp b/arangod/Indexes/RocksDBIndex.cpp index f75ad7a652..edf3bd2577 100644 --- a/arangod/Indexes/RocksDBIndex.cpp +++ b/arangod/Indexes/RocksDBIndex.cpp @@ -258,6 +258,7 @@ void RocksDBIndex::toVelocyPackFigures(VPackBuilder& builder) const { int RocksDBIndex::insert(arangodb::Transaction* trx, TRI_doc_mptr_t const* doc, bool) { + auto comparator = RocksDBFeature::instance()->comparator(); std::vector elements; int res; @@ -281,9 +282,18 @@ int RocksDBIndex::insert(arangodb::Transaction* trx, TRI_doc_mptr_t const* doc, } VPackSlice const key = Transaction::extractKeyFromDocument(VPackSlice(doc->vpack())); + std::string const prefix = buildPrefix(trx->vocbase()->_id, _collection->_info.id(), _iid); VPackBuilder builder; std::vector values; + values.reserve(elements.size()); + + // lower and upper bounds, only required if the index is unique + std::vector> bounds; + if (_unique) { + bounds.reserve(elements.size()); + } + for (auto& it : elements) { builder.clear(); builder.openArray(); @@ -296,9 +306,44 @@ int RocksDBIndex::insert(arangodb::Transaction* trx, TRI_doc_mptr_t const* doc, VPackSlice const s = builder.slice(); std::string value; value.reserve(keyPrefixSize() + s.byteSize()); - value += buildPrefix(trx->vocbase()->_id, _collection->_info.id(), _iid); + value += prefix; value.append(s.startAs(), s.byteSize()); values.emplace_back(std::move(value)); + + if (_unique) { + builder.clear(); + builder.openArray(); + for (size_t i = 0; i < _fields.size(); ++i) { + builder.add(it->subObjects()[i].slice(doc)); + } + builder.add(VPackSlice::minKeySlice()); + builder.close(); + + VPackSlice s = builder.slice(); + std::string value; + value.reserve(keyPrefixSize() + s.byteSize()); + value += prefix; + value.append(s.startAs(), s.byteSize()); + + std::pair p; + p.first = value; + + builder.clear(); + builder.openArray(); + for (size_t i = 0; i < _fields.size(); ++i) { + builder.add(it->subObjects()[i].slice(doc)); + } + builder.add(VPackSlice::maxKeySlice()); + builder.close(); + + s = builder.slice(); + value.clear(); + value += prefix; + value.append(s.startAs(), s.byteSize()); + + p.second = value; + bounds.emplace_back(std::move(p)); + } } auto rocksTransaction = trx->rocksTransaction(); @@ -309,10 +354,28 @@ int RocksDBIndex::insert(arangodb::Transaction* trx, TRI_doc_mptr_t const* doc, size_t const count = elements.size(); for (size_t i = 0; i < count; ++i) { if (_unique) { - std::string existing; - auto status = rocksTransaction->Get(readOptions, values[i], &existing); + bool uniqueConstraintViolated = false; + auto iterator = rocksTransaction->GetIterator(readOptions); - if (status.ok()) { + if (iterator != nullptr) { + auto& bound = bounds[i]; + iterator->Seek(rocksdb::Slice(bound.first.c_str(), bound.first.size())); + + while (iterator->Valid()) { + int res = comparator->Compare(iterator->key(), rocksdb::Slice(bound.second.c_str(), bound.second.size())); + + if (res > 0) { + break; + } + + uniqueConstraintViolated = true; + break; + } + + delete iterator; + } + + if (uniqueConstraintViolated) { // duplicate key res = TRI_ERROR_ARANGO_UNIQUE_CONSTRAINT_VIOLATED; if (!_collection->useSecondaryIndexes()) { @@ -324,6 +387,7 @@ int RocksDBIndex::insert(arangodb::Transaction* trx, TRI_doc_mptr_t const* doc, if (res == TRI_ERROR_NO_ERROR) { auto status = rocksTransaction->Put(values[i], std::string()); + if (! status.ok()) { res = TRI_ERROR_INTERNAL; } From 6e3c05817ec5d7276235a8092d46547f59bb638b Mon Sep 17 00:00:00 2001 From: jsteemann Date: Tue, 7 Jun 2016 17:33:13 +0200 Subject: [PATCH 13/16] jslint --- js/client/tests/agency/agency-test.js | 2 +- js/common/modules/@arangodb/aql/explainer.js | 25 ++++++++++---------- js/server/tests/aql/aql-general-graph.js | 2 +- js/server/tests/aql/aql-graph.js | 9 +++---- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/js/client/tests/agency/agency-test.js b/js/client/tests/agency/agency-test.js index 0e3be5527a..c1f790fd15 100644 --- a/js/client/tests/agency/agency-test.js +++ b/js/client/tests/agency/agency-test.js @@ -66,7 +66,7 @@ function agencyTestSuite () { headers: {"Content-Type": "application/json", "x-arangodb-agency-mode": "waitForCommitted"}}); res.bodyParsed = JSON.parse(res.body); - wait(.1); + wait(0.1); return res; } diff --git a/js/common/modules/@arangodb/aql/explainer.js b/js/common/modules/@arangodb/aql/explainer.js index 64c2ccbb05..f399b71066 100644 --- a/js/common/modules/@arangodb/aql/explainer.js +++ b/js/common/modules/@arangodb/aql/explainer.js @@ -789,7 +789,8 @@ function processQuery (query, explain) { }; - var label = function (node) { + var label = function (node) { + var rc, v, e, edgeCols; switch (node.type) { case "SingletonNode": return keyword("ROOT"); @@ -832,7 +833,8 @@ function processQuery (query, explain) { node.minMaxDepth = node.minDepth + ".." + node.maxDepth; node.minMaxDepthLen = node.minMaxDepth.length; - var rc = keyword("FOR "), parts = []; + rc = keyword("FOR "); + var parts = []; if (node.hasOwnProperty('vertexOutVariable')) { parts.push(variableName(node.vertexOutVariable) + " " + annotation("/* vertex */")); } @@ -876,9 +878,9 @@ function processQuery (query, explain) { node.ConditionStr = buildSimpleExpression(node.simpleExpressions); } - var e = []; + e = []; if (node.hasOwnProperty('graphDefinition')) { - var v = []; + v = []; node.graphDefinition.vertexCollectionNames.forEach(function(vcn) { v.push(collection(vcn)); }); @@ -892,7 +894,7 @@ function processQuery (query, explain) { node.edgeCollectionNameStrLen = node.graphDefinition.edgeCollectionNames.join(", ").length; } else { - var edgeCols = node.graph || [ ]; + edgeCols = node.graph || [ ]; edgeCols.forEach(function(ecn) { e.push(collection(ecn)); }); @@ -902,16 +904,15 @@ function processQuery (query, explain) { } return rc; case "ShortestPathNode": - var rc = keyword("FOR "), parts = []; if (node.hasOwnProperty('vertexOutVariable')) { parts.push(variableName(node.vertexOutVariable) + " " + annotation("/* vertex */")); } if (node.hasOwnProperty('edgeOutVariable')) { parts.push(variableName(node.edgeOutVariable) + " " + annotation("/* edge */")); } - var translate = ["ANY", "INBOUND", "OUTBOUND"]; - var defaultDirection = node.directions[0]; - var rc = `${keyword("FOR")} ${parts.join(", ")} ${keyword("IN") } ${keyword(translate[defaultDirection])} `; + translate = ["ANY", "INBOUND", "OUTBOUND"]; + defaultDirection = node.directions[0]; + rc = `${keyword("FOR")} ${parts.join(", ")} ${keyword("IN") } ${keyword(translate[defaultDirection])} `; if (node.hasOwnProperty("startVertexId")) { rc += `'${value(node.startVertexId)}'`; } else { @@ -941,9 +942,9 @@ function processQuery (query, explain) { } shortestPathDetails.push(node); - var e = []; + e = []; if (node.hasOwnProperty('graphDefinition')) { - var v = []; + v = []; node.graphDefinition.vertexCollectionNames.forEach(function(vcn) { v.push(collection(vcn)); }); @@ -957,7 +958,7 @@ function processQuery (query, explain) { node.edgeCollectionNameStrLen = node.graphDefinition.edgeCollectionNames.join(", ").length; } else { - var edgeCols = node.graph || [ ]; + edgeCols = node.graph || [ ]; edgeCols.forEach(function(ecn) { e.push(collection(ecn)); }); diff --git a/js/server/tests/aql/aql-general-graph.js b/js/server/tests/aql/aql-general-graph.js index 34d2e461ce..fb8bef9880 100644 --- a/js/server/tests/aql/aql-general-graph.js +++ b/js/server/tests/aql/aql-general-graph.js @@ -1,5 +1,5 @@ /*jshint globalstrict:false, strict:false, maxlen: 500 */ -/*global assertEqual, assertTrue, fail */ +/*global assertEqual, assertTrue */ //////////////////////////////////////////////////////////////////////////////// /// @brief tests for query language, graph functions diff --git a/js/server/tests/aql/aql-graph.js b/js/server/tests/aql/aql-graph.js index 0c52487b48..b117111b8a 100644 --- a/js/server/tests/aql/aql-graph.js +++ b/js/server/tests/aql/aql-graph.js @@ -36,7 +36,6 @@ var helper = require("@arangodb/aql-helper"); var cluster = require("@arangodb/cluster"); var getQueryResults = helper.getQueryResults; var getRawQueryResults = helper.getRawQueryResults; -var assertQueryError = helper.assertQueryError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite for graph features @@ -463,7 +462,7 @@ function ahuacatlQueryNeighborsTestSuite () { var v7 = "UnitTestsAhuacatlVertex/v7"; var v8 = "UnitTestsAhuacatlVertex/v8"; var theFox = "UnitTestsAhuacatlVertex/thefox"; - var queryStart = `FOR n IN ANY "` + var queryStart = `FOR n IN ANY "`; var queryEnd = `" UnitTestsAhuacatlEdge OPTIONS {bfs: true, uniqueVertices: "global"} SORT n._id RETURN n._id`; var queryEndData = `" UnitTestsAhuacatlEdge OPTIONS {bfs: true, uniqueVertices: "global"} SORT n RETURN n`; @@ -518,7 +517,7 @@ function ahuacatlQueryNeighborsTestSuite () { var v8 = "UnitTestsAhuacatlVertex/v8"; var theFox = "UnitTestsAhuacatlVertex/thefox"; - var queryStart = `FOR n IN INBOUND "` + var queryStart = `FOR n IN INBOUND "`; var queryEnd = `" UnitTestsAhuacatlEdge OPTIONS {bfs: true, uniqueVertices: "global"} SORT n._id RETURN n._id`; var queryEndData = `" UnitTestsAhuacatlEdge OPTIONS {bfs: true, uniqueVertices: "global"} SORT n RETURN n`; @@ -570,7 +569,7 @@ function ahuacatlQueryNeighborsTestSuite () { var v7 = "UnitTestsAhuacatlVertex/v7"; var v8 = "UnitTestsAhuacatlVertex/v8"; var theFox = "UnitTestsAhuacatlVertex/thefox"; - var queryStart = `FOR n IN OUTBOUND "` + var queryStart = `FOR n IN OUTBOUND "`; var queryEnd = `" UnitTestsAhuacatlEdge OPTIONS {bfs: true, uniqueVertices: "global"} SORT n._id RETURN n._id`; var queryEndData = `" UnitTestsAhuacatlEdge OPTIONS {bfs: true, uniqueVertices: "global"} SORT n RETURN n`; @@ -656,8 +655,6 @@ function ahuacatlQueryShortestPathTestSuite () { var vertexCollection; var edgeCollection; - var aqlfunctions = require("@arangodb/aql/functions"); - return { //////////////////////////////////////////////////////////////////////////////// From f9298c2b4328d0ddd04e7d4982f4eba2e2f451cb Mon Sep 17 00:00:00 2001 From: Frank Celler Date: Tue, 7 Jun 2016 17:39:12 +0200 Subject: [PATCH 14/16] 3.0 --- CMakeLists.txt | 0 js/common/tests/shell/shell-database.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/js/common/tests/shell/shell-database.js b/js/common/tests/shell/shell-database.js index 0099a1f76c..d9d52c3445 100644 --- a/js/common/tests/shell/shell-database.js +++ b/js/common/tests/shell/shell-database.js @@ -67,7 +67,7 @@ function DatabaseSuite () { //////////////////////////////////////////////////////////////////////////////// testVersion : function () { - assertMatch(/(^2\.[78])|(-devel$)/, internal.db._version()); + assertMatch(/(^3\.[0])|(-devel$)/, internal.db._version()); }, //////////////////////////////////////////////////////////////////////////////// From 594929aef70e13b15630a2242b1c1efe1eafa46d Mon Sep 17 00:00:00 2001 From: hkernbach Date: Tue, 7 Jun 2016 17:52:18 +0200 Subject: [PATCH 15/16] nodes view --- .../aardvark/APP/frontend/js/arango/arango.js | 7 +- .../APP/frontend/js/templates/nodesView.ejs | 4 +- .../APP/frontend/js/views/footerView.js | 73 +++++++++++-------- .../APP/frontend/js/views/nodesView.js | 44 ++++++++++- .../aardvark/APP/frontend/scss/_nodes.scss | 13 ++++ .../aardvark/APP/frontend/scss/style.scss | 2 + 6 files changed, 107 insertions(+), 36 deletions(-) create mode 100644 js/apps/system/_admin/aardvark/APP/frontend/scss/_nodes.scss diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js b/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js index 31d0fef098..0205d0c7a9 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js @@ -286,6 +286,11 @@ //nav for cluster/nodes view buildNodesSubNav: function(type) { + //if nothing is set, set default to coordinator + if (type === undefined) { + type = 'coordinator'; + } + if (this.scaleability === undefined) { var self = this; @@ -298,7 +303,7 @@ success: function(data) { if (data.numberOfCoordinators !== null && data.numberOfDBServers !== null) { self.scaleability = true; - self.buildNodesSubNav(); + self.buildNodesSubNav(type); } else { self.scaleability = false; diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs b/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs index 0c6c366a60..e9e2f43093 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs @@ -36,9 +36,9 @@
<%= node.role %>
<% if(node.status === 'ok') { %> -
+
<% } else { %> -
+
<% } %> diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/views/footerView.js b/js/apps/system/_admin/aardvark/APP/frontend/js/views/footerView.js index 41b078daad..5f913f8051 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/views/footerView.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/views/footerView.js @@ -1,6 +1,6 @@ /*jshint browser: true */ /*jshint unused: false */ -/*global Backbone, document, templateEngine, $, arangoHelper, window*/ +/*global _, Backbone, document, templateEngine, $, arangoHelper, window*/ (function() { "use strict"; @@ -61,14 +61,7 @@ } } else { - self.collection.fetch({ - success: function() { - self.renderClusterState(true); - }, - error: function() { - self.renderClusterState(false); - } - }); + this.renderClusterState(isOnline); } }, @@ -97,34 +90,54 @@ }, renderClusterState: function(connection) { - var error = 0; if (connection) { $('#offlinePlaceholder').hide(); - this.collection.each(function(value) { - if (value.toJSON().status !== 'ok') { - error++; + var callbackFunction = function(data) { + + var health = data.Health; + + var error = 0; + + _.each(health, function(node) { + if (node.Status !== 'GOOD') { + error++; + } + }); + + if (error > 0) { + $('#healthStatus').removeClass('positive'); + $('#healthStatus').addClass('negative'); + if (error === 1) { + $('.health-state').html(error + ' NODE ERROR'); + } + else { + $('.health-state').html(error + ' NODES ERROR'); + } + $('.health-icon').html(''); + } + else { + $('#healthStatus').removeClass('negative'); + $('#healthStatus').addClass('positive'); + $('.health-state').html('NODES OK'); + $('.health-icon').html(''); + } + }.bind(this); + + //check cluster state + $.ajax({ + type: "GET", + cache: false, + url: arangoHelper.databaseUrl("/_admin/cluster/health"), + contentType: "application/json", + processData: false, + async: true, + success: function(data) { + callbackFunction(data); } }); - if (error > 0) { - $('#healthStatus').removeClass('positive'); - $('#healthStatus').addClass('negative'); - if (error === 1) { - $('.health-state').html(error + ' NODE ERROR'); - } - else { - $('.health-state').html(error + ' NODES ERROR'); - } - $('.health-icon').html(''); - } - else { - $('#healthStatus').removeClass('negative'); - $('#healthStatus').addClass('positive'); - $('.health-state').html('NODES OK'); - $('.health-icon').html(''); - } } else { $('#healthStatus').removeClass('positive'); diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/views/nodesView.js b/js/apps/system/_admin/aardvark/APP/frontend/js/views/nodesView.js index 5550f1c0fe..e041ab4f3c 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/views/nodesView.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/views/nodesView.js @@ -16,6 +16,7 @@ }, initialize: function (options) { + var self = this; clearInterval(this.intervalFunction); if (window.App.isCluster) { @@ -27,20 +28,56 @@ //start polling with interval this.intervalFunction = window.setInterval(function() { if (window.location.hash === '#cNodes' || window.location.hash === '#dNodes' || window.location.hash === '#nodes') { - - console.log("rerender health"); - + self.checkNodesState(); } }, this.interval); } }, + checkNodesState: function() { + var callbackFunction = function(nodes) { + + _.each(nodes, function(node, name) { + _.each($('.pure-table-row'), function(element) { + if ($(element).attr('node') === name) { + if (node.Status === "GOOD") { + $(element).removeClass("noHover"); + $(element).find('.state').html(''); + } + else { + $(element).addClass("noHover"); + $(element).find('.state').html(''); + } + } + }); + }); + + }.bind(this); + + //check cluster state + $.ajax({ + type: "GET", + cache: false, + url: arangoHelper.databaseUrl("/_admin/cluster/health"), + contentType: "application/json", + processData: false, + async: true, + success: function(data) { + callbackFunction(data.Health); + } + }); + }, + navigateToNode: function(elem) { if (window.location.hash === '#dNodes') { return; } + if ($(elem.currentTarget).hasClass('noHover')) { + return; + } + var name = $(elem.currentTarget).attr('node'); window.App.navigate("#node/" + encodeURIComponent(name), {trigger: true}); }, @@ -76,6 +113,7 @@ })); window.arangoHelper.buildNodesSubNav(this.toRender); + this.checkNodesState(); }, waitForCoordinators: function(callback) { diff --git a/js/apps/system/_admin/aardvark/APP/frontend/scss/_nodes.scss b/js/apps/system/_admin/aardvark/APP/frontend/scss/_nodes.scss new file mode 100644 index 0000000000..a7dd4e7623 --- /dev/null +++ b/js/apps/system/_admin/aardvark/APP/frontend/scss/_nodes.scss @@ -0,0 +1,13 @@ +.cluster-nodes { + + .pure-table-row { + &.noHover { + cursor: not-allowed !important; + } + + &.noHover:hover { + cursor: not-allowed !important; + } + + } +} diff --git a/js/apps/system/_admin/aardvark/APP/frontend/scss/style.scss b/js/apps/system/_admin/aardvark/APP/frontend/scss/style.scss index 6f14313e81..e3863ee1cf 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/scss/style.scss +++ b/js/apps/system/_admin/aardvark/APP/frontend/scss/style.scss @@ -79,6 +79,8 @@ @import 'pure'; // screen hotkeys @import 'hotkeys'; +// screen nodes +@import 'nodes'; //arangoTable Template @import 'arangoTable'; From 62ada20405095c9574f1b60c74613b6fd51be32a Mon Sep 17 00:00:00 2001 From: hkernbach Date: Tue, 7 Jun 2016 17:55:30 +0200 Subject: [PATCH 16/16] grunt build [ci skip] --- .../aardvark/APP/frontend/build/app.min.js | 18 +++++++++--------- .../aardvark/APP/frontend/build/app.min.js.gz | Bin 123779 -> 123968 bytes .../APP/frontend/build/index-min.html | 6 +++--- .../APP/frontend/build/index-min.html.gz | Bin 28786 -> 28786 bytes .../APP/frontend/build/style-minified.css | 2 +- .../APP/frontend/build/style-minified.css.gz | Bin 46570 -> 46594 bytes .../aardvark/APP/frontend/build/style.css.gz | Bin 55212 -> 55243 bytes 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js b/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js index d7d182c6ca..7e2d24dfe3 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js @@ -1,14 +1,14 @@ function JSONAdapter(a,b,c,d,e,f){"use strict";var g=this,h={},i={},j=new AbstractAdapter(b,c,this,d);h.range=e/2,h.start=e/4,h.getStart=function(){return this.start+Math.random()*this.range},i.range=f/2,i.start=f/4,i.getStart=function(){return this.start+Math.random()*this.range},g.loadNode=function(a,b){g.loadNodeFromTreeById(a,b)},g.loadInitialNode=function(b,c){var d=a+b+".json";j.cleanUp(),d3.json(d,function(a,d){void 0!==a&&null!==a&&console.log(a);var e=j.insertInitialNode(d);g.requestCentralityChildren(b,function(a){e._centrality=a}),_.each(d.children,function(a){var b=j.insertNode(a),c={_from:e._id,_to:b._id,_id:e._id+"-"+b._id};j.insertEdge(c),g.requestCentralityChildren(b._id,function(a){b._centrality=a}),delete b._data.children}),delete e._data.children,c&&c(e)})},g.loadNodeFromTreeById=function(b,c){var d=a+b+".json";d3.json(d,function(a,d){void 0!==a&&null!==a&&console.log(a);var e=j.insertNode(d);g.requestCentralityChildren(b,function(a){e._centrality=a}),_.each(d.children,function(a){var b=j.insertNode(a),c={_from:e._id,_to:b._id,_id:e._id+"-"+b._id};j.insertEdge(c),g.requestCentralityChildren(b._id,function(a){e._centrality=a}),delete b._data.children}),delete e._data.children,c&&c(e)})},g.requestCentralityChildren=function(b,c){var d=a+b+".json";d3.json(d,function(a,b){void 0!==a&&null!==a&&console.log(a),void 0!==c&&c(void 0!==b.children?b.children.length:0)})},g.loadNodeFromTreeByAttributeValue=function(a,b,c){throw"Sorry this adapter is read-only"},g.loadInitialNodeByAttributeValue=function(a,b,c){throw"Sorry this adapter is read-only"},g.createEdge=function(a,b){throw"Sorry this adapter is read-only"},g.deleteEdge=function(a,b){throw"Sorry this adapter is read-only"},g.patchEdge=function(a,b,c){throw"Sorry this adapter is read-only"},g.createNode=function(a,b){throw"Sorry this adapter is read-only"},g.deleteNode=function(a,b){throw"Sorry this adapter is read-only"},g.patchNode=function(a,b,c){throw"Sorry this adapter is read-only"},g.setNodeLimit=function(a,b){},g.setChildLimit=function(a){},g.expandCommunity=function(a,b){},g.setWidth=function(){},g.explore=j.explore}function AbstractAdapter(a,b,c,d,e){"use strict";if(void 0===a)throw"The nodes have to be given.";if(void 0===b)throw"The edges have to be given.";if(void 0===c)throw"An inheriting class has to be given.";if(void 0===d)throw"A reference to the graph viewer has to be given.";e=e||{};var f,g,h,i,j,k=this,l=!1,m={},n={},o={},p={},q=0,r={},s={},t=function(a){void 0!==a.prioList&&g.changePrioList(a.prioList||[])},u=function(a){m.range=a/2,m.start=a/4,m.getStart=function(){return this.start+Math.random()*this.range}},v=function(a){n.range=a/2,n.start=a/4,n.getStart=function(){return this.start+Math.random()*this.range}},w=function(b){var c=p[b]||b,d=$.grep(a,function(a){return a._id===c});if(0===d.length)return!1;if(1===d.length)return d[0];throw"Too many nodes with the same ID, should never happen"},x=function(a){var c=$.grep(b,function(b){return b._id===a});if(0===c.length)return!1;if(1===c.length)return c[0];throw"Too many edges with the same ID, should never happen"},y=function(b,c,d){var e={_data:b,_id:b._id},f=w(e._id);return f?f:(e.x=c||m.getStart(),e.y=d||n.getStart(),e.weight=1,a.push(e),e._outboundCounter=0,e._inboundCounter=0,e)},z=function(a){var b=y(a);return b.x=2*m.start,b.y=2*n.start,b.fixed=!0,b},A=function(){a.length=0,b.length=0,p={},o={},d.cleanUp()},B=function(a){var c,d,e,f=!0,g={_data:a,_id:a._id},i=x(g._id);if(i)return i;if(c=w(a._from),d=w(a._to),!c)throw"Unable to insert Edge, source node not existing "+a._from;if(!d)throw"Unable to insert Edge, target node not existing "+a._to;return g.source=c,g.source._isCommunity?(e=o[g.source._id],g.source=e.getNode(a._from),g.source._outboundCounter++,e.insertOutboundEdge(g),f=!1):c._outboundCounter++,g.target=d,g.target._isCommunity?(e=o[g.target._id],g.target=e.getNode(a._to),g.target._inboundCounter++,e.insertInboundEdge(g),f=!1):d._inboundCounter++,b.push(g),f&&h.call("insertEdge",c._id,d._id),g},C=function(b){var c;for(c=0;c0){var c,d=[];for(c=0;cf&&(c?c.collapse():K(b))},M=function(c){var d=c.getDissolveInfo(),e=d.nodes,g=d.edges.both,i=d.edges.inbound,j=d.edges.outbound;C(c),fi){var b=g.bucketNodes(_.values(a),i);_.each(b,function(a){if(a.nodes.length>1){var b=_.map(a.nodes,function(a){return a._id});I(b,a.reason)}})}},P=function(a,b){f=a,L(),void 0!==b&&b()},Q=function(a){i=a},R=function(a,b){a._expanded=!1;var c=b.removeOutboundEdgesFromNode(a);_.each(c,function(a){j(a),E(a,!0)})},S=function(a){a._expanded=!1,p[a._id]&&o[p[a._id]].collapseNode(a);var b=H(a),c=[];_.each(b,function(b){0===q?(r=b,s=a,c.push(b)):void 0!==a&&(a._id===r.target._id?b.target._id===s._id&&c.push(r):c.push(b),r=b,s=a),q++}),_.each(c,j),q=0},T=function(a){var b=a.getDissolveInfo();C(a),_.each(b.nodes,function(a){delete p[a._id]}),_.each(b.edges.outbound,function(a){j(a),E(a,!0)}),delete o[a._id]},U=function(a,b){a._isCommunity?k.expandCommunity(a,b):(a._expanded=!0,c.loadNode(a._id,b))},V=function(a,b){a._expanded?S(a):U(a,b)};j=function(a){var b,c=a.target;return c._isCommunity?(b=a._target,c.removeInboundEdge(a),b._inboundCounter--,0===b._inboundCounter&&(R(b,c),c.removeNode(b),delete p[b._id]),void(0===c._inboundCounter&&T(c))):(c._inboundCounter--,void(0===c._inboundCounter&&(S(c),C(c))))},i=Number.POSITIVE_INFINITY,g=e.prioList?new NodeReducer(e.prioList):new NodeReducer,h=new WebWorkerWrapper(ModularityJoiner,J),m.getStart=function(){return 0},n.getStart=function(){return 0},this.cleanUp=A,this.setWidth=u,this.setHeight=v,this.insertNode=y,this.insertInitialNode=z,this.insertEdge=B,this.removeNode=C,this.removeEdge=E,this.removeEdgesForNode=F,this.expandCommunity=N,this.setNodeLimit=P,this.setChildLimit=Q,this.checkSizeOfInserted=O,this.checkNodeLimit=L,this.explore=V,this.changeTo=t,this.getPrioList=g.getPrioList,this.dissolveCommunity=M}function ArangoAdapter(a,b,c,d){"use strict";if(void 0===a)throw"The nodes have to be given.";if(void 0===b)throw"The edges have to be given.";if(void 0===c)throw"A reference to the graph viewer has to be given.";if(void 0===d)throw"A configuration with node- and edgeCollection has to be given.";if(void 0===d.graph){if(void 0===d.nodeCollection)throw"The nodeCollection or a graphname has to be given.";if(void 0===d.edgeCollection)throw"The edgeCollection or a graphname has to be given."}var e,f,g,h,i,j=this,k={},l={},m={},n=function(a){h=a},o=function(a){f=a,l.node=l.base+"document?collection="+f},p=function(a){g=a,l.edge=l.base+"edge?collection="+g},q=function(a){$.ajax({cache:!1,type:"GET",async:!1,url:l.graph+"/"+a,contentType:"application/json",success:function(a){o(a.graph.vertices),p(a.graph.edges)}})},r=function(a){console.log(a.baseUrl);var b=a.baseUrl||"";void 0!==a.width&&e.setWidth(a.width),void 0!==a.height&&e.setHeight(a.height),i=void 0!==a.undirected&&a.undirected===!0?"any":"outbound",l.base=b+"_api/",l.cursor=l.base+"cursor",l.graph=l.base+"graph",l.collection=l.base+"collection/",l.document=l.base+"document/",l.any=l.base+"simple/any",a.graph?(q(a.graph),n(a.graph)):(o(a.nodeCollection),p(a.edgeCollection),n(void 0))},s=function(a,b,c){a!==m.getAllGraphs&&(a!==m.connectedEdges&&(b["@nodes"]=f,a!==m.childrenCentrality&&(b.dir=i)),b["@edges"]=g);var d={query:a,bindVars:b};$.ajax({type:"POST",url:l.cursor,data:JSON.stringify(d),contentType:"application/json",dataType:"json",processData:!1,success:function(a){c(a.result)},error:function(a){try{throw console.log(a.statusText),"["+a.errorNum+"] "+a.errorMessage}catch(b){throw"Undefined ERROR"}}})},t=function(a,b){var c=[],d=0,e=function(d){c.push(d.document||{}),c.length===a&&b(c)};for(d=0;a>d;d++)$.ajax({cache:!1,type:"PUT",url:l.any,data:JSON.stringify({collection:f}),contentType:"application/json",success:e})},u=function(b,c){if(0===b.length)return void(c&&c({errorCode:404}));b=b[0];var d={},f=e.insertNode(b[0].vertex),g=a.length;_.each(b,function(b){var c=e.insertNode(b.vertex),f=b.path;g=2&&$.ajax({cache:!1,type:"GET",url:l.collection,contentType:"application/json",dataType:"json",processData:!1,success:function(b){var c=b.collections,d=[],e=[];_.each(c,function(a){a.name.match(/^_/)||(3===a.type?e.push(a.name):2===a.type&&d.push(a.name))}),a(d,e)},error:function(a){throw a.statusText}})},j.getGraphs=function(a){a&&a.length>=1&&s(m.getAllGraphs,{},a)},j.getAttributeExamples=function(a){a&&a.length>=1&&t(10,function(b){var c=_.sortBy(_.uniq(_.flatten(_.map(b,function(a){return _.keys(a)}))),function(a){return a.toLowerCase()});a(c)})},j.getNodeCollection=function(){return f},j.getEdgeCollection=function(){return g},j.getDirection=function(){return i},j.getGraphName=function(){return h},j.setWidth=e.setWidth,j.changeTo=e.changeTo,j.getPrioList=e.getPrioList}function ColourMapper(){"use strict";var a,b={},c={},d=[],e=this,f=0;d.push({back:"#C8E6C9",front:"black"}),d.push({back:"#8aa249",front:"white"}),d.push({back:"#8BC34A",front:"black"}),d.push({back:"#388E3C",front:"white"}),d.push({back:"#4CAF50",front:"white"}),d.push({back:"#212121",front:"white"}),d.push({back:"#727272",front:"white"}),d.push({back:"#B6B6B6",front:"black"}),d.push({back:"#e5f0a3",front:"black"}),d.push({back:"#6c4313",front:"white"}),d.push({back:"#9d8564",front:"white"}),this.getColour=function(g){return void 0===b[g]&&(b[g]=d[f],void 0===c[d[f].back]&&(c[d[f].back]={front:d[f].front,list:[]}),c[d[f].back].list.push(g),f++,f===d.length&&(f=0)),void 0!==a&&a(e.getList()),b[g].back},this.getCommunityColour=function(){return"#333333"},this.getForegroundColour=function(g){return void 0===b[g]&&(b[g]=d[f],void 0===c[d[f].back]&&(c[d[f].back]={front:d[f].front,list:[]}),c[d[f].back].list.push(g),f++,f===d.length&&(f=0)),void 0!==a&&a(e.getList()),b[g].front},this.getForegroundCommunityColour=function(){return"white"},this.reset=function(){b={},c={},f=0,void 0!==a&&a(e.getList())},this.getList=function(){return c},this.setChangeListener=function(b){a=b},this.reset()}function CommunityNode(a,b){"use strict";if(_.isUndefined(a)||!_.isFunction(a.dissolveCommunity)||!_.isFunction(a.checkNodeLimit))throw"A parent element has to be given.";b=b||[];var c,d,e,f,g,h=this,i={},j=[],k=[],l={},m={},n={},o={},p=function(a){return h._expanded?2*a*Math.sqrt(j.length):a},q=function(a){return h._expanded?4*a*Math.sqrt(j.length):a},r=function(a){var b=h.position,c=a.x*b.z+b.x,d=a.y*b.z+b.y,e=a.z*b.z;return{x:c,y:d,z:e}},s=function(a){return h._expanded?r(a._source.position):h.position},t=function(a){return h._expanded?r(a._target.position):h.position},u=function(){var a=document.getElementById(h._id).getBBox();c.attr("transform","translate("+(a.x-5)+","+(a.y-25)+")"),d.attr("width",a.width+10).attr("height",a.height+30),e.attr("width",a.width+10)},v=function(){if(!f){var a=new DomObserverFactory;f=a.createObserver(function(a){_.any(a,function(a){return"transform"===a.attributeName})&&(u(),f.disconnect())})}return f},w=function(){g.stop(),j.length=0,_.each(i,function(a){j.push(a)}),g.start()},x=function(){g.stop(),k.length=0,_.each(l,function(a){k.push(a)}),g.start()},y=function(a){var b=[];return _.each(a,function(a){b.push(a)}),b},z=function(a){return!!i[a]},A=function(){return j},B=function(a){return i[a]},C=function(a){i[a._id]=a,w(),h._size++},D=function(a){_.each(a,function(a){i[a._id]=a,h._size++}),w()},E=function(a){var b=a._id||a;delete i[b],w(),h._size--},F=function(a){var b;return _.has(a,"_id")?b=a._id:(b=a,a=l[b]||m[b]),a.target=a._target,delete a._target,l[b]?(delete l[b],h._outboundCounter++,n[b]=a,void x()):(delete m[b],void h._inboundCounter--)},G=function(a){var b;return _.has(a,"_id")?b=a._id:(b=a,a=l[b]||n[b]),a.source=a._source,delete a._source,delete o[a.source._id][b],l[b]?(delete l[b],h._inboundCounter++,m[b]=a,void x()):(delete n[b],void h._outboundCounter--)},H=function(a){var b=a._id||a,c=[];return _.each(o[b],function(a){G(a),c.push(a)}),delete o[b],c},I=function(a){return a._target=a.target,a.target=h,n[a._id]?(delete n[a._id],h._outboundCounter--,l[a._id]=a,x(),!0):(m[a._id]=a,h._inboundCounter++,!1)},J=function(a){var b=a.source._id;return a._source=a.source,a.source=h,o[b]=o[b]||{},o[b][a._id]=a,m[a._id]?(delete m[a._id],h._inboundCounter--,l[a._id]=a,x(),!0):(h._outboundCounter++,n[a._id]=a,!1)},K=function(){return{nodes:j,edges:{both:k,inbound:y(m),outbound:y(n)}}},L=function(){this._expanded=!0},M=function(){a.dissolveCommunity(h)},N=function(){this._expanded=!1},O=function(a,b){var c=a.select("rect").attr("width"),d=a.append("text").attr("text-anchor","middle").attr("fill",b.getForegroundCommunityColour()).attr("stroke","none");c*=2,c/=3,h._reason&&h._reason.key&&(d.append("tspan").attr("x","0").attr("dy","-4").text(h._reason.key+":"),d.append("tspan").attr("x","0").attr("dy","16").text(h._reason.value)),d.append("tspan").attr("x",c).attr("y","0").attr("fill",b.getCommunityColour()).text(h._size)},P=function(b,c,d,e){var f=b.append("g").attr("stroke",e.getForegroundCommunityColour()).attr("fill",e.getCommunityColour());c(f,9),c(f,6),c(f,3),c(f),f.on("click",function(){h.expand(),a.checkNodeLimit(h),d()}),O(f,e)},Q=function(a,b){var c=a.selectAll(".node").data(j,function(a){return a._id});c.enter().append("g").attr("class","node").attr("id",function(a){return a._id}),c.exit().remove(),c.selectAll("* > *").remove(),b(c)},R=function(a,b){c=a.append("g"),d=c.append("rect").attr("rx","8").attr("ry","8").attr("fill","none").attr("stroke","black"),e=c.append("rect").attr("rx","8").attr("ry","8").attr("height","20").attr("fill","#686766").attr("stroke","none"),c.append("image").attr("id",h._id+"_dissolve").attr("xlink:href","img/icon_delete.png").attr("width","16").attr("height","16").attr("x","5").attr("y","2").attr("style","cursor:pointer").on("click",function(){h.dissolve(),b()}),c.append("image").attr("id",h._id+"_collapse").attr("xlink:href","img/gv_collapse.png").attr("width","16").attr("height","16").attr("x","25").attr("y","2").attr("style","cursor:pointer").on("click",function(){h.collapse(),b()});var f=c.append("text").attr("x","45").attr("y","15").attr("fill","white").attr("stroke","none").attr("text-anchor","left");h._reason&&f.text(h._reason.text),v().observe(document.getElementById(h._id),{subtree:!0,attributes:!0})},S=function(a){if(h._expanded){var b=a.focus(),c=[b[0]-h.position.x,b[1]-h.position.y];a.focus(c),_.each(j,function(b){b.position=a(b),b.position.x/=h.position.z,b.position.y/=h.position.z,b.position.z/=h.position.z}),a.focus(b)}},T=function(a,b,c,d,e){return a.on("click",null),h._expanded?(R(a,d),void Q(a,c,d,e)):void P(a,b,d,e)},U=function(a,b,c){if(h._expanded){var d=a.selectAll(".link"),e=d.select("line");b(e,d),c(d)}},V=function(a,b){var c,d,e=function(a){return a._id};h._expanded&&(d=a.selectAll(".link").data(k,e),d.enter().append("g").attr("class","link").attr("id",e),d.exit().remove(),d.selectAll("* > *").remove(),c=d.append("line"),b(c,d))},W=function(a){H(a)};g=new ForceLayouter({distance:100,gravity:.1,charge:-500,width:1,height:1,nodes:j,links:k}),this._id="*community_"+Math.floor(1e6*Math.random()),b.length>0?(this.x=b[0].x,this.y=b[0].y):(this.x=0,this.y=0),this._size=0,this._inboundCounter=0,this._outboundCounter=0,this._expanded=!1,this._isCommunity=!0,D(b),this.hasNode=z,this.getNodes=A,this.getNode=B,this.getDistance=p,this.getCharge=q,this.insertNode=C,this.insertInboundEdge=I,this.insertOutboundEdge=J,this.removeNode=E,this.removeInboundEdge=F,this.removeOutboundEdge=G,this.removeOutboundEdgesFromNode=H,this.collapseNode=W,this.dissolve=M,this.getDissolveInfo=K,this.collapse=N,this.expand=L,this.shapeNodes=T,this.shapeInnerEdges=V,this.updateInnerEdges=U,this.addDistortion=S,this.getSourcePosition=s,this.getTargetPosition=t}function DomObserverFactory(){"use strict";var a=window.WebKitMutationObserver||window.MutationObserver;this.createObserver=function(b){if(!a)throw"Observer not supported";return new a(b)}}function EdgeShaper(a,b,c){"use strict";var d,e,f,g=this,h=[],i={},j=new ContextMenu("gv_edge_cm"),k=function(a,b){return _.isArray(a)?b[_.find(a,function(a){return b[a]})]:b[a]},l=function(a){if(void 0===a)return[""];"string"!=typeof a&&(a=String(a));var b=a.match(/[\w\W]{1,10}(\s|$)|\S+?(\s|$)/g);return b[0]=$.trim(b[0]),b[1]=$.trim(b[1]),b[0].length>12&&(b[0]=$.trim(a.substring(0,10))+"-",b[1]=$.trim(a.substring(10)),b[1].length>12&&(b[1]=b[1].split(/\W/)[0],b[1].length>12&&(b[1]=b[1].substring(0,10)+"...")),b.length=2),b.length>2&&(b.length=2,b[1]+="..."),b},m=!0,n={},o=function(a){return a._id},p=function(a,b){},q=new ColourMapper,r=function(){q.reset()},s=p,t=p,u=p,v=p,w=function(){f={click:p,dblclick:p,mousedown:p,mouseup:p,mousemove:p,mouseout:p,mouseover:p}},x=function(a,b){return 180*Math.atan2(b.y-a.y,b.x-a.x)/Math.PI},y=function(a,b){var c,d=Math.sqrt((b.y-a.y)*(b.y-a.y)+(b.x-a.x)*(b.x-a.x));return a.x===b.x?d-=18*b.z:(c=Math.abs((b.y-a.y)/(b.x-a.x)),d-=.4>c?Math.abs(d*b.z*45/(b.x-a.x)):Math.abs(d*b.z*18/(b.y-a.y))),d},z=function(a,b){_.each(f,function(a,c){b.on(c,a)})},A=function(a,b){if("update"===a)s=b;else{if(void 0===f[a])throw"Sorry Unknown Event "+a+" cannot be bound.";f[a]=b}},B=function(a){var b,c,d,e;return d=a.source,e=a.target,d._isCommunity?(i[d._id]=d,b=d.getSourcePosition(a)):b=d.position,e._isCommunity?(i[e._id]=e,c=e.getTargetPosition(a)):c=e.position,{s:b,t:c}},C=function(a,b){i={},b.attr("transform",function(a){var b=B(a);return"translate("+b.s.x+", "+b.s.y+")rotate("+x(b.s,b.t)+")"}),a.attr("x2",function(a){var b=B(a);return y(b.s,b.t)})},D=function(a,b){t(a,b),m&&u(a,b),v(a,b),z(a,b),C(a,b)},E=function(a){void 0!==a&&(h=a);var b,c=g.parent.selectAll(".link").data(h,o);c.enter().append("g").attr("class","link").attr("id",o),c.exit().remove(),c.selectAll("* > *").remove(),b=c.append("line"),D(b,c),_.each(i,function(a){a.shapeInnerEdges(d3.select(this),D)}),j.bindMenu($(".link"))},F=function(){var a=g.parent.selectAll(".link"),b=a.select("line");C(b,a),s(a),_.each(i,function(a){a.updateInnerEdges(d3.select(this),C,s)})},G=function(a){switch($("svg defs marker#arrow").remove(),a.type){case EdgeShaper.shapes.NONE:t=p;break;case EdgeShaper.shapes.ARROW:t=function(a,b){a.attr("marker-end","url(#arrow)")},0===d.selectAll("defs")[0].length&&d.append("defs"),d.select("defs").append("marker").attr("id","arrow").attr("refX","10").attr("refY","5").attr("markerUnits","strokeWidth").attr("markerHeight","10").attr("markerWidth","10").attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z");break;default:throw"Sorry given Shape not known!"}},H=function(a){u=_.isFunction(a)?function(b,c){c.append("text").attr("text-anchor","middle").text(a)}:function(b,c){c.append("text").attr("text-anchor","middle").text(function(b){var c=l(k(a,b._data));return c[0]||""})},s=function(a){a.select("text").attr("transform",function(a){var b=B(a);return"translate("+y(b.s,b.t)/2+", -3)"})}},I=function(a){void 0!==a.reset&&a.reset&&w(),_.each(a,function(a,b){"reset"!==b&&A(b,a)})},J=function(a){switch($("svg defs #gradientEdgeColor").remove(),r(),a.type){case"single":v=function(b,c){b.attr("stroke",a.stroke)};break;case"gradient":0===d.selectAll("defs")[0].length&&d.append("defs");var b=d.select("defs").append("linearGradient").attr("id","gradientEdgeColor");b.append("stop").attr("offset","0").attr("stop-color",a.source),b.append("stop").attr("offset","0.4").attr("stop-color",a.source),b.append("stop").attr("offset","0.6").attr("stop-color",a.target),b.append("stop").attr("offset","1").attr("stop-color",a.target),v=function(a,b){a.attr("stroke","url(#gradientEdgeColor)"),a.attr("y2","0.0000000000000001")};break;case"attribute":v=function(b,c){c.attr("stroke",function(b){return q.getColour(b._data[a.key])})};break;default:throw"Sorry given colour-scheme not known"}},K=function(a){void 0!==a.shape&&G(a.shape),void 0!==a.label&&(H(a.label),g.label=a.label),void 0!==a.actions&&I(a.actions),void 0!==a.color&&J(a.color)};for(g.parent=a,w(),d=a;d[0][0]&&d[0][0].ownerSVGElement;)d=d3.select(d[0][0].ownerSVGElement);void 0===b&&(b={color:{type:"single",stroke:"#686766"}}),void 0===b.color&&(b.color={type:"single",stroke:"#686766"}),K(b),_.isFunction(c)&&(o=c),e=d.append("g"),g.changeTo=function(a){K(a),E(),F()},g.drawEdges=function(a){E(a),F()},g.updateEdges=function(){F()},g.reshapeEdges=function(){E()},g.activateLabel=function(a){m=a?!0:!1,E()},g.addAnEdgeFollowingTheCursor=function(a,b){return n=e.append("line"),n.attr("stroke","black").attr("id","connectionLine").attr("x1",a).attr("y1",b).attr("x2",a).attr("y2",b),function(a,b){n.attr("x2",a).attr("y2",b)}},g.removeCursorFollowingEdge=function(){n.remove&&(n.remove(),n={})},g.addMenuEntry=function(a,b){j.addEntry(a,b)},g.getLabel=function(){return g.label||""},g.resetColourMap=r}function EventDispatcher(a,b,c){"use strict";var d,e,f,g,h=this,i=function(b){if(void 0===b.shaper&&(b.shaper=a),d.checkNodeEditorConfig(b)){var c=new d.InsertNode(b),e=new d.PatchNode(b),f=new d.DeleteNode(b);h.events.CREATENODE=function(a,b,d,e){var f;return f=_.isFunction(a)?a():a,function(){c(f,b,d,e)}},h.events.PATCHNODE=function(a,b,c){if(!_.isFunction(b))throw"Please give a function to extract the new node data";return function(){e(a,b(),c)}},h.events.DELETENODE=function(a){return function(b){f(b,a)}}}},j=function(a){if(void 0===a.shaper&&(a.shaper=b),d.checkEdgeEditorConfig(a)){var c=new d.InsertEdge(a),e=new d.PatchEdge(a),f=new d.DeleteEdge(a),g=null,i=!1;h.events.STARTCREATEEDGE=function(a){return function(b){var c=d3.event||window.event;g=b,i=!1,void 0!==a&&a(b,c),c.stopPropagation()}},h.events.CANCELCREATEEDGE=function(a){return function(){g=null,void 0===a||i||a()}},h.events.FINISHCREATEEDGE=function(a){return function(b){null!==g&&b!==g&&(c(g,b,a),i=!0)}},h.events.PATCHEDGE=function(a,b,c){if(!_.isFunction(b))throw"Please give a function to extract the new node data";return function(){e(a,b(),c)}},h.events.DELETEEDGE=function(a){return function(b){f(b,a)}}}},k=function(){g=g||$("svg"),g.unbind(),_.each(e,function(a,b){g.bind(b,function(c){_.each(a,function(a){a(c)}),f[b]&&f[b](c)})})};if(void 0===a)throw"NodeShaper has to be given.";if(void 0===b)throw"EdgeShaper has to be given.";d=new EventLibrary,e={click:[],dblclick:[],mousedown:[],mouseup:[],mousemove:[],mouseout:[],mouseover:[]},f={},h.events={},void 0!==c&&(void 0!==c.expand&&d.checkExpandConfig(c.expand)&&(h.events.EXPAND=new d.Expand(c.expand),a.setGVStartFunction(function(){c.expand.reshapeNodes(),c.expand.startCallback()})),void 0!==c.drag&&d.checkDragConfig(c.drag)&&(h.events.DRAG=d.Drag(c.drag)),void 0!==c.nodeEditor&&i(c.nodeEditor),void 0!==c.edgeEditor&&j(c.edgeEditor)),Object.freeze(h.events),h.bind=function(c,d,e){if(void 0===e||!_.isFunction(e))throw"You have to give a function that should be bound as a third argument";var g={};switch(c){case"nodes":g[d]=e,a.changeTo({actions:g});break;case"edges":g[d]=e,b.changeTo({actions:g});break;case"svg":f[d]=e,k();break;default:if(void 0===c.bind)throw'Sorry cannot bind to object. Please give either "nodes", "edges" or a jQuery-selected DOM-Element';c.unbind(d),c.bind(d,e)}},h.rebind=function(c,d){switch(d=d||{},d.reset=!0,c){case"nodes":a.changeTo({actions:d});break;case"edges":b.changeTo({actions:d});break;case"svg":f={},_.each(d,function(a,b){"reset"!==b&&(f[b]=a)}),k();break;default:throw'Sorry cannot rebind to object. Please give either "nodes", "edges" or "svg"'}},h.fixSVG=function(a,b){if(void 0===e[a])throw"Sorry unkown event";e[a].push(b),k()},Object.freeze(h.events)}function EventLibrary(){"use strict";var a=this;this.checkExpandConfig=function(a){if(void 0===a.startCallback)throw"A callback to the Start-method has to be defined";if(void 0===a.adapter||void 0===a.adapter.explore)throw"An adapter to load data has to be defined";if(void 0===a.reshapeNodes)throw"A callback to reshape nodes has to be defined";return!0},this.Expand=function(b){a.checkExpandConfig(b);var c=b.startCallback,d=b.adapter.explore,e=b.reshapeNodes;return function(a){d(a,c),e(),c()}},this.checkDragConfig=function(a){if(void 0===a.layouter)throw"A layouter has to be defined";if(void 0===a.layouter.drag||!_.isFunction(a.layouter.drag))throw"The layouter has to offer a drag function";return!0},this.Drag=function(b){return a.checkDragConfig(b),b.layouter.drag},this.checkNodeEditorConfig=function(a){if(void 0===a.adapter)throw"An adapter has to be defined";if(void 0===a.shaper)throw"A node shaper has to be defined";return!0},this.checkEdgeEditorConfig=function(a){if(void 0===a.adapter)throw"An adapter has to be defined";if(void 0===a.shaper)throw"An edge Shaper has to be defined";return!0},this.InsertNode=function(b){a.checkNodeEditorConfig(b);var c=b.adapter,d=b.shaper;return function(a,b,e,f){var g,h;_.isFunction(a)&&!b?(g=a,h={}):(g=b,h=a),c.createNode(h,function(a){d.reshapeNodes(),g(a)},e,f)}},this.PatchNode=function(b){a.checkNodeEditorConfig(b);var c=b.adapter,d=b.shaper;return function(a,b,e){c.patchNode(a,b,function(a){d.reshapeNodes(),e(a)})}},this.DeleteNode=function(b){a.checkNodeEditorConfig(b);var c=b.adapter,d=b.shaper;return function(a,b){c.deleteNode(a,function(){d.reshapeNodes(),b()})}},this.SelectNodeCollection=function(b){a.checkNodeEditorConfig(b);var c=b.adapter;if(!_.isFunction(c.useNodeCollection))throw"The adapter has to support collection changes";return function(a,b){c.useNodeCollection(a),b()}},this.InsertEdge=function(b){a.checkEdgeEditorConfig(b);var c=b.adapter,d=b.shaper;return function(a,b,e){c.createEdge({source:a,target:b},function(a){d.reshapeEdges(),e(a)})}},this.PatchEdge=function(b){a.checkEdgeEditorConfig(b);var c=b.adapter,d=b.shaper;return function(a,b,e){c.patchEdge(a,b,function(a){d.reshapeEdges(),e(a)})}},this.DeleteEdge=function(b){a.checkEdgeEditorConfig(b);var c=b.adapter,d=b.shaper;return function(a,b){c.deleteEdge(a,function(){d.reshapeEdges(),b()})}}}function ForceLayouter(a){"use strict";var b=this,c=d3.layout.force(),d=a.charge||-600,e=a.distance||80,f=a.gravity||.01,g=function(a){ var b=0;return b+=a.source._isCommunity?a.source.getDistance(e):e,b+=a.target._isCommunity?a.target.getDistance(e):e},h=function(a){return a._isCommunity?a.getCharge(d):d},i=a.onUpdate||function(){},j=a.width||880,k=a.height||680,l=function(a){a.distance&&(e=a.distance),a.gravity&&c.gravity(a.gravity),a.charge&&(d=a.charge)};if(void 0===a.nodes)throw"No nodes defined";if(void 0===a.links)throw"No links defined";c.nodes(a.nodes),c.links(a.links),c.size([j,k]),c.linkDistance(g),c.gravity(f),c.charge(h),c.on("tick",function(){}),b.start=function(){c.start()},b.stop=function(){c.stop()},b.drag=c.drag,b.setCombinedUpdateFunction=function(a,d,e){void 0!==e?(i=function(){c.alpha()<.1&&(a.updateNodes(),d.updateEdges(),e(),c.alpha()<.05&&b.stop())},c.on("tick",i)):(i=function(){c.alpha()<.1&&(a.updateNodes(),d.updateEdges(),c.alpha()<.05&&b.stop())},c.on("tick",i))},b.changeTo=function(a){l(a)},b.changeWidth=function(a){j=a,c.size([j,k])}}function FoxxAdapter(a,b,c,d,e){"use strict";if(void 0===a)throw"The nodes have to be given.";if(void 0===b)throw"The edges have to be given.";if(void 0===c)throw"The route has to be given.";if(void 0===d)throw"A reference to the graph viewer has to be given.";e=e||{};var f,g=this,h={},i={},j=c,k={cache:!1,contentType:"application/json",dataType:"json",processData:!1,error:function(a){try{throw console.log(a.statusText),"["+a.errorNum+"] "+a.errorMessage}catch(b){throw console.log(b),"Undefined ERROR"}}},l=function(){i.query={get:function(a,b){var c=$.extend(k,{type:"GET",url:j+"/query/"+a,success:b});$.ajax(c)}},i.nodes={post:function(a,b){var c=$.extend(k,{type:"POST",url:j+"/nodes",data:JSON.stringify(a),success:b});$.ajax(c)},put:function(a,b,c){var d=$.extend(k,{type:"PUT",url:j+"/nodes/"+a,data:JSON.stringify(b),success:c});$.ajax(d)},del:function(a,b){var c=$.extend(k,{type:"DELETE",url:j+"/nodes/"+a,success:b});$.ajax(c)}},i.edges={post:function(a,b){var c=$.extend(k,{type:"POST",url:j+"/edges",data:JSON.stringify(a),success:b});$.ajax(c)},put:function(a,b,c){var d=$.extend(k,{type:"PUT",url:j+"/edges/"+a,data:JSON.stringify(b),success:c});$.ajax(d)},del:function(a,b){var c=$.extend(k,{type:"DELETE",url:j+"/edges/"+a,success:b});$.ajax(c)}},i.forNode={del:function(a,b){var c=$.extend(k,{type:"DELETE",url:j+"/edges/forNode/"+a,success:b});$.ajax(c)}}},m=function(a,b,c){i[a].get(b,c)},n=function(a,b,c){i[a].post(b,c)},o=function(a,b,c){i[a].del(b,c)},p=function(a,b,c,d){i[a].put(b,c,d)},q=function(a){void 0!==a.width&&f.setWidth(a.width),void 0!==a.height&&f.setHeight(a.height)},r=function(b,c){var d={},e=b.first,g=a.length;e=f.insertNode(e),_.each(b.nodes,function(b){b=f.insertNode(b),g=l.TOTAL_NODES?$(".infoField").hide():$(".infoField").show());var e=t(l.NODES_TO_DISPLAY,d[c]);if(e.length>0){return _.each(e,function(a){l.randomNodes.push(a)}),void l.loadInitialNode(e[0]._id,a)}}a({errorCode:404})},l.loadInitialNode=function(a,b){e.cleanUp(),l.loadNode(a,v(b))},l.getRandomNodes=function(){var a=[],b=[];l.definedNodes.length>0&&_.each(l.definedNodes,function(a){b.push(a)}),l.randomNodes.length>0&&_.each(l.randomNodes,function(a){b.push(a)});var c=0;return _.each(b,function(b){c0?_.each(d,function(a){s(o.traversal,{example:a.vertex._id},function(a){_.each(a[0][0],function(a){c[0][0].push(a)}),u(c,b)})}):s(o.traversal,{example:a},function(a){u(a,b)})})},l.loadNodeFromTreeByAttributeValue=function(a,b,c){var d={};d[a]=b,s(o.traversal,{example:d},function(a){u(a,c)})},l.getNodeExampleFromTreeByAttributeValue=function(a,b,c){var d={};d[a]=b,s(o.traversal,{example:d},function(d){if(void 0===d[0][0])throw arangoHelper.arangoError("Graph error","no nodes found"),"No suitable nodes have been found.";_.each(d[0][0],function(d){if(d.vertex[a]===b){var f={};f._key=d.vertex._key,f._id=d.vertex._id,f._rev=d.vertex._rev,e.insertNode(f),c(f)}})})},l.loadAdditionalNodeByAttributeValue=function(a,b,c){l.getNodeExampleFromTreeByAttributeValue(a,b,c)},l.loadInitialNodeByAttributeValue=function(a,b,c){e.cleanUp(),l.loadNodeFromTreeByAttributeValue(a,b,v(c))},l.requestCentralityChildren=function(a,b){s(o.childrenCentrality,{id:a},function(a){b(a[0])})},l.createEdge=function(a,b){var c={};c._from=a.source._id,c._to=a.target._id,$.ajax({cache:!1,type:"POST",url:n.edges+i,data:JSON.stringify(c),dataType:"json",contentType:"application/json",processData:!1,success:function(a){if(a.error===!1){var d,f=a.edge;f._from=c._from,f._to=c._to,d=e.insertEdge(f),b(d)}},error:function(a){var b="";try{b=JSON.parse(a.responseText).errorMessage+" ("+JSON.parse(a.responseText).errorNum+")",arangoHelper.arangoError(a.statusText,b)}catch(c){throw a.statusText}}})},l.deleteEdge=function(a,b){$.ajax({cache:!1,type:"DELETE",url:n.edges+a._id,contentType:"application/json",dataType:"json",processData:!1,success:function(){e.removeEdge(a),void 0!==b&&_.isFunction(b)&&b()},error:function(a){var b="";try{b=JSON.parse(a.responseText).errorMessage+" ("+JSON.parse(a.responseText).errorNum+")",arangoHelper.arangoError(a.statusText,b)}catch(c){throw a.statusText}}})},l.patchEdge=function(a,b,c){$.ajax({cache:!1,type:"PUT",url:n.edges+a._id,data:JSON.stringify(b),dataType:"json",contentType:"application/json",processData:!1,success:function(){a._data=$.extend(a._data,b),c()},error:function(a){var b="";try{b=JSON.parse(a.responseText).errorMessage+" ("+JSON.parse(a.responseText).errorNum+")",arangoHelper.arangoError(a.statusText,b)}catch(c){throw a.statusText}}})},l.createNode=function(a,b){$.ajax({cache:!1,type:"POST",url:n.vertices+g,data:JSON.stringify(a),dataType:"json",contentType:"application/json",processData:!1,success:function(c){c.error===!1&&(a._key=c.vertex._key,a._id=c.vertex._id,a._rev=c.vertex._rev,e.insertNode(a),b(a))},error:function(a){var b="";try{b=JSON.parse(a.responseText).errorMessage+" ("+JSON.parse(a.responseText).errorNum+")",arangoHelper.arangoError(a.statusText,b)}catch(c){throw a.statusText}}})},l.deleteNode=function(a,b){$.ajax({cache:!1,type:"DELETE",url:n.vertices+a._id,dataType:"json",contentType:"application/json",processData:!1,success:function(){e.removeEdgesForNode(a),e.removeNode(a),void 0!==b&&_.isFunction(b)&&b()},error:function(a){var b="";try{b=JSON.parse(a.responseText).errorMessage+" ("+JSON.parse(a.responseText).errorNum+")",arangoHelper.arangoError(a.statusText,b)}catch(c){throw a.statusText}}})},l.patchNode=function(a,b,c){$.ajax({cache:!1,type:"PUT",url:n.vertices+a._id,data:JSON.stringify(b),dataType:"json",contentType:"application/json",processData:!1,success:function(){a._data=$.extend(a._data,b),c(a)},error:function(a){throw a.statusText}})},l.changeToGraph=function(a,b){e.cleanUp(),q(a),void 0!==b&&(k=b===!0?"any":"outbound")},l.setNodeLimit=function(a,b){e.setNodeLimit(a,b)},l.setChildLimit=function(a){e.setChildLimit(a)},l.expandCommunity=function(a,b){e.expandCommunity(a),void 0!==b&&b()},l.getGraphs=function(a){a&&a.length>=1&&s(o.getAllGraphs,{},a)},l.getAttributeExamples=function(a){if(a&&a.length>=1){var b,c=[],d=_.shuffle(l.getNodeCollections());for(b=0;b0&&(c=c.concat(_.flatten(_.map(e,function(a){return _.keys(a)}))))}var c=_.sortBy(_.uniq(c),function(a){return a.toLowerCase()});a(c)}},l.getEdgeCollections=function(){return h},l.getSelectedEdgeCollection=function(){return i},l.useEdgeCollection=function(a){if(!_.contains(h,a))throw"Collection "+a+" is not available in the graph.";i=a},l.getNodeCollections=function(){return f},l.getSelectedNodeCollection=function(){return g},l.useNodeCollection=function(a){if(!_.contains(f,a))throw"Collection "+a+" is not available in the graph.";g=a},l.getDirection=function(){return k},l.getGraphName=function(){return j},l.setWidth=e.setWidth,l.changeTo=e.changeTo,l.getPrioList=e.getPrioList}function ModularityJoiner(){"use strict";var a={},b=Array.prototype.forEach,c=Object.keys,d=Array.isArray,e=Object.prototype.toString,f=Array.prototype.indexOf,g=Array.prototype.map,h=Array.prototype.some,i={isArray:d||function(a){return"[object Array]"===e.call(a)},isFunction:function(a){return"function"==typeof a},isString:function(a){return"[object String]"===e.call(a)},each:function(c,d,e){if(null!==c&&void 0!==c){var f,g,h;if(b&&c.forEach===b)c.forEach(d,e);else if(c.length===+c.length){for(f=0,g=c.length;g>f;f++)if(d.call(e,c[f],f,c)===a)return}else for(h in c)if(c.hasOwnProperty(h)&&d.call(e,c[h],h,c)===a)return}},keys:c||function(a){if("object"!=typeof a||Array.isArray(a))throw new TypeError("Invalid object");var b,c=[];for(b in a)a.hasOwnProperty(b)&&(c[c.length]=b);return c},min:function(a,b,c){if(!b&&i.isArray(a)&&a[0]===+a[0]&&a.length<65535)return Math.min.apply(Math,a);if(!b&&i.isEmpty(a))return 1/0;var d={computed:1/0,value:1/0};return i.each(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;gc&&(c=a,b=d)}),0>c?void delete q[a]:void(q[a]=b)},t=function(a,b){s(b)},u=function(a,b){return b>a?p[a]&&p[a][b]:p[b]&&p[b][a]},v=function(a,b){return b>a?p[a][b]:p[b][a]},w=function(a,b,c){return b>a?(p[a]=p[a]||{},void(p[a][b]=c)):(p[b]=p[b]||{},void(p[b][a]=c))},x=function(a,b){if(b>a){if(!p[a])return;return delete p[a][b],void(i.isEmpty(p[a])&&delete p[a])}a!==b&&x(b,a)},y=function(a,b){var c,d;return b>a?u(a,b)?(d=v(a,b),q[a]===b?void s(a):u(a,q[a])?(c=v(a,q[a]),void(d>c&&(q[a]=b))):void s(a)):void s(a):void(a!==b&&y(b,a))},z=function(a,b){o[a]._in+=o[b]._in,o[a]._out+=o[b]._out,delete o[b]},A=function(a,b){j[a]=j[a]||{},j[a][b]=(j[a][b]||0)+1,k[b]=k[b]||{},k[b][a]=(k[b][a]||0)+1,l[a]=l[a]||{_in:0,_out:0},l[b]=l[b]||{_in:0,_out:0},l[a]._out++,l[b]._in++,m++,n=Math.pow(m,-1)},B=function(a,b){j[a]&&(j[a][b]--,0===j[a][b]&&delete j[a][b],k[b][a]--,0===k[b][a]&&delete k[b][a],l[a]._out--,l[b]._in--,m--,n=m>0?Math.pow(m,-1):0,i.isEmpty(j[a])&&delete j[a],i.isEmpty(k[b])&&delete k[b],0===l[a]._in&&0===l[a]._out&&delete l[a],0===l[b]._in&&0===l[b]._out&&delete l[b])},C=function(){return o={},i.each(l,function(a,b){o[b]={_in:a._in/m,_out:a._out/m}}),o},D=function(a,b){return o[a]._out*o[b]._in+o[a]._in*o[b]._out},E=function(a){var b=i.keys(j[a]||{}),c=i.keys(k[a]||{});return i.union(b,c)},F=function(){p={},i.each(j,function(a,b){var c=k[b]||{},d=E(b);i.each(d,function(d){var e,f=a[d]||0;f+=c[d]||0,e=f*n-D(b,d),e>0&&w(b,d,e)})})},G=function(){return q={},i.each(p,t),q},H=function(a,b,c){var d;return u(c,a)?(d=v(c,a),u(c,b)?(d+=v(c,b),w(c,a,d),x(c,b),y(c,a),void y(c,b)):(d-=D(c,b),0>d&&x(c,a),void y(c,a))):void(u(c,b)&&(d=v(c,b),d-=D(c,a),d>0&&w(c,a,d),y(c,a),x(c,b),y(c,b)))},I=function(a,b){i.each(p,function(c,d){return d===a||d===b?void i.each(c,function(c,d){return d===b?(x(a,b),void y(a,b)):void H(a,b,d)}):void H(a,b,d)})},J=function(){return j},K=function(){return q},L=function(){return p},M=function(){return o},N=function(){return r},O=function(){var a,b,c=Number.NEGATIVE_INFINITY;return i.each(q,function(d,e){c=c?null:{sID:b,lID:a,val:c}},P=function(a){var b,c=Number.NEGATIVE_INFINITY;return i.each(a,function(a){a.q>c&&(c=a.q,b=a.nodes)}),b},Q=function(){C(),F(),G(),r={}},R=function(a){var b=a.sID,c=a.lID,d=a.val;r[b]=r[b]||{nodes:[b],q:0},r[c]?(r[b].nodes=r[b].nodes.concat(r[c].nodes),r[b].q+=r[c].q,delete r[c]):r[b].nodes.push(c),r[b].q+=d,I(b,c),z(b,c)},S=function(a,b,c){if(0===c.length)return!0;var d=[];return i.each(c,function(c){a[c]===Number.POSITIVE_INFINITY&&(a[c]=b,d=d.concat(E(c)))}),S(a,b+1,d)},T=function(a){var b={};if(i.each(j,function(a,c){b[c]=Number.POSITIVE_INFINITY}),b[a]=0,S(b,1,E(a)))return b;throw"FAIL!"},U=function(a){return function(b){return a[b]}},V=function(a,b){var c,d={},e=[],f={},g=function(a,b){var c=f[i.min(a,U(f))],e=f[i.min(b,U(f))],g=e-c;return 0===g&&(g=d[b[b.length-1]].q-d[a[a.length-1]].q),g};for(Q(),c=O();null!==c;)R(c),c=O();return d=N(),void 0!==b?(i.each(d,function(a,c){i.contains(a.nodes,b)&&delete d[c]}),e=i.pluck(i.values(d),"nodes"),f=T(b),e.sort(g),e[0]):P(d)};this.insertEdge=A,this.deleteEdge=B,this.getAdjacencyMatrix=J,this.getHeap=K,this.getDQ=L,this.getDegrees=M,this.getCommunities=N,this.getBest=O,this.setup=Q,this.joinCommunity=R,this.getCommunity=V}function NodeReducer(a){"use strict";a=a||[];var b=function(a,b){a.push(b)},c=function(a,b){if(!a.reason.example)return a.reason.example=b,1;var c=b._data||{},d=a.reason.example._data||{},e=_.union(_.keys(d),_.keys(c)),f=0,g=0;return _.each(e,function(a){void 0!==d[a]&&void 0!==c[a]&&(f++,d[a]===c[a]&&(f+=4))}),g=5*e.length,g++,f++,f/g},d=function(){return a},e=function(b){a=b},f=function(b,c){var d={},e=[];return _.each(b,function(b){var c,e,f=b._data,g=0;for(g=0;gd;d++){if(g[d]=g[d]||{reason:{type:"similar",text:"Similar Nodes"},nodes:[]},c(g[d],a)>h)return void b(g[d].nodes,a);i>g[d].nodes.length&&(f=d,i=g[d].nodes.length)}b(g[f].nodes,a)}),g):f(d,e)};this.bucketNodes=g,this.changePrioList=e,this.getPrioList=d}function NodeShaper(a,b,c){"use strict";var d,e,f=this,g=[],h=!0,i=new ContextMenu("gv_node_cm"),j=function(a,b){return _.isArray(a)?b[_.find(a,function(a){return b[a]})]:b[a]},k=function(a){if(void 0===a)return[""];"string"!=typeof a&&(a=String(a));var b=a.match(/[\w\W]{1,10}(\s|$)|\S+?(\s|$)/g);return b[0]=$.trim(b[0]),b[1]=$.trim(b[1]),b[0].length>12&&(b[0]=$.trim(a.substring(0,10)),b[1]=$.trim(a.substring(10)),b[1].length>12&&(b[1]=b[1].split(/\W/)[0],b[1].length>2&&(b[1]=b[1].substring(0,5)+"...")),b.length=2),b.length>2&&(b.length=2,b[1]+="..."),b},l=function(a){},m=l,n=function(a){return{x:a.x,y:a.y,z:1}},o=n,p=function(){_.each(g,function(a){a.position=o(a),a._isCommunity&&a.addDistortion(o)})},q=new ColourMapper,r=function(){q.reset()},s=function(a){return a._id},t=l,u=l,v=l,w=function(){return"black"},x=function(){f.parent.selectAll(".node").on("mousedown.drag",null),d={click:l,dblclick:l,drag:l,mousedown:l,mouseup:l,mousemove:l,mouseout:l,mouseover:l},e=l},y=function(a){_.each(d,function(b,c){"drag"===c?a.call(b):a.on(c,b)})},z=function(a){var b=a.filter(function(a){return a._isCommunity}),c=a.filter(function(a){return!a._isCommunity});u(c),b.each(function(a){a.shapeNodes(d3.select(this),u,z,m,q)}),h&&v(c),t(c),y(c),p()},A=function(a,b){if("update"===a)e=b;else{if(void 0===d[a])throw"Sorry Unknown Event "+a+" cannot be bound.";d[a]=b}},B=function(){var a=f.parent.selectAll(".node");p(),a.attr("transform",function(a){return"translate("+a.position.x+","+a.position.y+")scale("+a.position.z+")"}),e(a)},C=function(a){void 0!==a&&(g=a);var b=f.parent.selectAll(".node").data(g,s);b.enter().append("g").attr("class",function(a){return a._isCommunity?"node communitynode":"node"}).attr("id",s),b.exit().remove(),b.selectAll("* > *").remove(),z(b),B(),i.bindMenu($(".node"))},D=function(a){var b,c,d,e,f,g,h;switch(a.type){case NodeShaper.shapes.NONE:u=l;break;case NodeShaper.shapes.CIRCLE:b=a.radius||25,u=function(a,c){a.append("circle").attr("r",b),c&&a.attr("cx",-c).attr("cy",-c)};break;case NodeShaper.shapes.RECT:c=a.width||90,d=a.height||36,e=_.isFunction(c)?function(a){return-(c(a)/2)}:function(a){return-(c/2)},f=_.isFunction(d)?function(a){return-(d(a)/2)}:function(){return-(d/2)},u=function(a,b){b=b||0,a.append("rect").attr("width",c).attr("height",d).attr("x",function(a){return e(a)-b}).attr("y",function(a){return f(a)-b}).attr("rx","8").attr("ry","8")};break;case NodeShaper.shapes.IMAGE:c=a.width||32,d=a.height||32,g=a.fallback||"",h=a.source||g,e=_.isFunction(c)?function(a){return-(c(a)/2)}:-(c/2),f=_.isFunction(d)?function(a){return-(d(a)/2)}:-(d/2),u=function(a){var b=a.append("image").attr("width",c).attr("height",d).attr("x",e).attr("y",f);_.isFunction(h)?b.attr("xlink:href",h):b.attr("xlink:href",function(a){return a._data[h]?a._data[h]:g})};break;case void 0:break;default:throw"Sorry given Shape not known!"}},E=function(a){var b=[];_.each(a,function(a){b=$(a).find("text"),$(a).css("width","90px"),$(a).css("height","36px"),$(a).textfill({innerTag:"text",maxFontPixels:16,minFontPixels:10,explicitWidth:90,explicitHeight:36})})},F=function(a){v=_.isFunction(a)?function(b){var c=b.append("text").attr("text-anchor","middle").attr("fill",w).attr("stroke","none");c.each(function(b){var c=k(a(b)),d=c[0];2===c.length&&(d+=c[1]),d.length>15&&(d=d.substring(0,13)+"..."),(void 0===d||""===d)&&(d="ATTR NOT SET"),d3.select(this).append("tspan").attr("x","0").attr("dy","5").text(d)}),E(b)}:function(b){var c=b.append("text").attr("text-anchor","middle").attr("fill",w).attr("stroke","none");c.each(function(b){var c=k(j(a,b._data)),d=c[0];2===c.length&&(d+=c[1]),d.length>15&&(d=d.substring(0,13)+"..."),(void 0===d||""===d)&&(d="ATTR NOT SET"),d3.select(this).append("tspan").attr("x","0").attr("dy","5").text(d)}),E(b)}},G=function(a){void 0!==a.reset&&a.reset&&x(),_.each(a,function(a,b){"reset"!==b&&A(b,a)})},H=function(a){switch(r(),a.type){case"single":t=function(b){b.attr("fill",a.fill)},w=function(b){return a.stroke};break;case"expand":t=function(b){b.attr("fill",function(b){return b._expanded?a.expanded:a.collapsed})},w=function(a){return"white"};break;case"attribute":t=function(b){b.attr("fill",function(b){return void 0===b._data?q.getCommunityColour():q.getColour(j(a.key,b._data))}).attr("stroke",function(a){return a._expanded?"#fff":"transparent"}).attr("fill-opacity",function(a){return a._expanded?"1":"0.3"})},w=function(b){return void 0===b._data?q.getForegroundCommunityColour():q.getForegroundColour(j(a.key,b._data))};break;default:throw"Sorry given colour-scheme not known"}},I=function(a){if("reset"===a)o=n;else{if(!_.isFunction(a))throw"Sorry distortion cannot be parsed.";o=a}},J=function(a){void 0!==a.shape&&D(a.shape),void 0!==a.label&&(F(a.label),f.label=a.label),void 0!==a.actions&&G(a.actions),void 0!==a.color&&(H(a.color),f.color=a.color),void 0!==a.distortion&&I(a.distortion)};f.parent=a,x(),void 0===b&&(b={}),void 0===b.shape&&(b.shape={type:NodeShaper.shapes.RECT}),void 0===b.color&&(b.color={type:"single",fill:"#333333",stroke:"white"}),void 0===b.distortion&&(b.distortion="reset"),J(b),_.isFunction(c)&&(s=c),f.changeTo=function(a){J(a),C()},f.drawNodes=function(a){C(a)},f.updateNodes=function(){B()},f.reshapeNodes=function(){C()},f.activateLabel=function(a){h=a?!0:!1,C()},f.getColourMapping=function(){return q.getList()},f.setColourMappingListener=function(a){q.setChangeListener(a)},f.setGVStartFunction=function(a){m=a},f.getLabel=function(){return f.label||""},f.getColor=function(){return f.color.key||""},f.addMenuEntry=function(a,b){i.addEntry(a,b)},f.resetColourMap=r}function PreviewAdapter(a,b,c,d){"use strict";if(void 0===a)throw"The nodes have to be given.";if(void 0===b)throw"The edges have to be given.";if(void 0===c)throw"A reference to the graph viewer has to be given.";var e=this,f=new AbstractAdapter(a,b,this,c),g=function(a){void 0!==a.width&&f.setWidth(a.width),void 0!==a.height&&f.setHeight(a.height)},h=function(a,b){var c={},d=a.first;d=f.insertNode(d),_.each(a.nodes,function(a){a=f.insertNode(a),c[a._id]=a}),_.each(a.edges,function(a){f.insertEdge(a)}),delete c[d._id],void 0!==b&&_.isFunction(b)&&b(d)};d=d||{},g(d),e.loadInitialNode=function(a,b){f.cleanUp();var c=function(a){b(f.insertInitialNode(a))};e.loadNode(a,c)},e.loadNode=function(a,b){var c=[],d=[],e={},f={_id:1,label:"Node 1",image:"img/stored.png"},g={_id:2,label:"Node 2"},i={_id:3,label:"Node 3"},j={_id:4,label:"Node 4"},k={_id:5,label:"Node 5"},l={_id:"1-2",_from:1,_to:2,label:"Edge 1"},m={_id:"1-3",_from:1,_to:3,label:"Edge 2"},n={_id:"1-4",_from:1,_to:4,label:"Edge 3"},o={_id:"1-5",_from:1,_to:5,label:"Edge 4"},p={_id:"2-3",_from:2,_to:3,label:"Edge 5"};c.push(f),c.push(g),c.push(i),c.push(j),c.push(k),d.push(l),d.push(m),d.push(n),d.push(o),d.push(p),e.first=f,e.nodes=c,e.edges=d,h(e,b)},e.explore=f.explore,e.requestCentralityChildren=function(a,b){},e.createEdge=function(a,b){arangoHelper.arangoError("Server-side","createEdge was triggered.")},e.deleteEdge=function(a,b){arangoHelper.arangoError("Server-side","deleteEdge was triggered.")},e.patchEdge=function(a,b,c){arangoHelper.arangoError("Server-side","patchEdge was triggered.")},e.createNode=function(a,b){arangoHelper.arangoError("Server-side","createNode was triggered.")},e.deleteNode=function(a,b){arangoHelper.arangoError("Server-side","deleteNode was triggered."),arangoHelper.arangoError("Server-side","onNodeDelete was triggered.")},e.patchNode=function(a,b,c){arangoHelper.arangoError("Server-side","patchNode was triggered.")},e.setNodeLimit=function(a,b){f.setNodeLimit(a,b)},e.setChildLimit=function(a){f.setChildLimit(a)},e.setWidth=f.setWidth,e.expandCommunity=function(a,b){f.expandCommunity(a),void 0!==b&&b()}}function WebWorkerWrapper(a,b){"use strict";if(void 0===a)throw"A class has to be given.";if(void 0===b)throw"A callback has to be given.";var c,d=Array.prototype.slice.call(arguments),e={},f=function(){var c,d=function(a){switch(a.data.cmd){case"construct":try{w=new(Function.prototype.bind.apply(Construct,[null].concat(a.data.args))),w?self.postMessage({cmd:"construct",result:!0}):self.postMessage({cmd:"construct",result:!1})}catch(b){self.postMessage({cmd:"construct",result:!1,error:b.message||b})}break;default:var c,d={cmd:a.data.cmd};if(w&&"function"==typeof w[a.data.cmd])try{c=w[a.data.cmd].apply(w,a.data.args),c&&(d.result=c),self.postMessage(d)}catch(e){d.error=e.message||e,self.postMessage(d)}else d.error="Method not known",self.postMessage(d)}},e=function(a){var b="var w, Construct = "+a.toString()+";self.onmessage = "+d.toString();return new window.Blob(b.split())},f=window.URL,g=new e(a);return c=new window.Worker(f.createObjectURL(g)),c.onmessage=b,c},g=function(){return a.apply(this,d)};try{return c=f(),e.call=function(a){var b=Array.prototype.slice.call(arguments);b.shift(),c.postMessage({cmd:a,args:b})},d.shift(),d.shift(),d.unshift("construct"),e.call.apply(this,d),e}catch(h){d.shift(),d.shift(),g.prototype=a.prototype;try{c=new g}catch(i){return void b({data:{cmd:"construct",error:i}})}return e.call=function(a){var d=Array.prototype.slice.call(arguments),e={data:{cmd:a}};if(!_.isFunction(c[a]))return e.data.error="Method not known",void b(e);d.shift();try{e.data.result=c[a].apply(c,d),b(e)}catch(f){e.data.error=f,b(e)}},b({data:{cmd:"construct",result:!0}}),e}}function ZoomManager(a,b,c,d,e,f,g,h){"use strict";if(void 0===a||0>a)throw"A width has to be given.";if(void 0===b||0>b)throw"A height has to be given.";if(void 0===c||void 0===c.node||"svg"!==c.node().tagName.toLowerCase())throw"A svg has to be given.";if(void 0===d||void 0===d.node||"g"!==d.node().tagName.toLowerCase())throw"A group has to be given.";if(void 0===e||void 0===e.activateLabel||void 0===e.changeTo||void 0===e.updateNodes)throw"The Node shaper has to be given.";if(void 0===f||void 0===f.activateLabel||void 0===f.updateEdges)throw"The Edge shaper has to be given.";var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x=this,y=a*b,z=h||function(){},A=function(){var a,b;return l>=k?(b=i*l,b*=b,a=60*b):(b=j*l,b*=b,a=4*Math.PI*b),Math.floor(y/a)},B=function(){q=s/l-.99999999,r=t/l,p.distortion(q),p.radius(r)},C=function(a,b,c,g){g?null!==a&&(l=a):l=a,null!==b&&(m[0]+=b),null!==c&&(m[1]+=c),o=A(),z(o),e.activateLabel(l>=k),f.activateLabel(l>=k),B();var h="translate("+m+")",i=" scale("+l+")";d._isCommunity?d.attr("transform",h):d.attr("transform",h+i),v&&v.slider("option","value",l)},D=function(a){var b=[];return b[0]=a[0]-n[0],b[1]=a[1]-n[1],n[0]=a[0],n[1]=a[1],b},E=function(a){void 0===a&&(a={});var b=a.maxFont||16,c=a.minFont||6,d=a.maxRadius||25,e=a.minRadius||4;s=a.focusZoom||1,t=a.focusRadius||100,w=e/d,i=b,j=d,k=c/b,l=1,m=[0,0],n=[0,0],B(),o=A(),u=d3.behavior.zoom().scaleExtent([w,1]).on("zoom",function(){var a,b=d3.event.sourceEvent,c=l;"mousewheel"===b.type||"DOMMouseScroll"===b.type?(b.wheelDelta?b.wheelDelta>0?(c+=.01,c>1&&(c=1)):(c-=.01,w>c&&(c=w)):b.detail>0?(c+=.01,c>1&&(c=1)):(c-=.01,w>c&&(c=w)),a=[0,0]):a=D(d3.event.translate),C(c,a[0],a[1])})},F=function(){};p=d3.fisheye.circular(),E(g),c.call(u),e.changeTo({distortion:p}),c.on("mousemove",F),x.translation=function(){return null},x.scaleFactor=function(){return l},x.scaledMouse=function(){return null},x.getDistortion=function(){return q},x.getDistortionRadius=function(){return r},x.getNodeLimit=function(){return o},x.getMinimalZoomFactor=function(){return w},x.registerSlider=function(a){v=a},x.triggerScale=function(a){C(a,null,null,!0)},x.triggerTranslation=function(a,b){C(null,a,b,!0)},x.changeWidth=function(c){y=a*b}}function ArangoAdapterControls(a,b){"use strict";if(void 0===a)throw"A list element has to be given.";if(void 0===b)throw"The ArangoAdapter has to be given.";this.addControlChangeCollections=function(c){var d="control_adapter_collections",e=d+"_";b.getCollections(function(f,g){b.getGraphs(function(h){uiComponentsHelper.createButton(a,"Collections",d,function(){modalDialogHelper.createModalDialog("Switch Collections",e,[{type:"decission",id:"collections",group:"loadtype",text:"Select existing collections",isDefault:void 0===b.getGraphName(),interior:[{type:"list",id:"node_collection",text:"Vertex collection",objects:f,selected:b.getNodeCollection()},{type:"list",id:"edge_collection",text:"Edge collection",objects:g,selected:b.getEdgeCollection()}]},{type:"decission", id:"graphs",group:"loadtype",text:"Select existing graph",isDefault:void 0!==b.getGraphName(),interior:[{type:"list",id:"graph",objects:h,selected:b.getGraphName()}]},{type:"checkbox",text:"Start with random vertex",id:"random",selected:!0},{type:"checkbox",id:"undirected",selected:"any"===b.getDirection()}],function(){var a=$("#"+e+"node_collection").children("option").filter(":selected").text(),d=$("#"+e+"edge_collection").children("option").filter(":selected").text(),f=$("#"+e+"graph").children("option").filter(":selected").text(),g=!!$("#"+e+"undirected").prop("checked"),h=!!$("#"+e+"random").prop("checked"),i=$("input[type='radio'][name='loadtype']:checked").prop("id");return i===e+"collections"?b.changeToCollections(a,d,g):b.changeToGraph(f,g),h?void b.loadRandomNode(c):void(_.isFunction(c)&&c())})})})})},this.addControlChangePriority=function(){var c="control_adapter_priority",d=c+"_",e=(b.getPrioList(),"Group vertices");uiComponentsHelper.createButton(a,e,c,function(){modalDialogHelper.createModalChangeDialog(e,d,[{type:"extendable",id:"attribute",objects:b.getPrioList()}],function(){var a=$("input[id^="+d+"attribute_]"),c=[];a.each(function(a,b){var d=$(b).val();""!==d&&c.push(d)}),b.changeTo({prioList:c})})})},this.addAll=function(){this.addControlChangeCollections(),this.addControlChangePriority()}}function ContextMenu(a){"use strict";if(void 0===a)throw"An id has to be given.";var b,c,d="#"+a,e=function(a,d){var e,f;e=document.createElement("div"),e.className="context-menu-item",f=document.createElement("div"),f.className="context-menu-item-inner",f.appendChild(document.createTextNode(a)),f.onclick=function(){d(d3.select(c.target).data()[0])},e.appendChild(f),b.appendChild(e)},f=function(a){c=$.contextMenu.create(d,{shadow:!1}),a.each(function(){$(this).bind("contextmenu",function(a){return c.show(this,a),!1})})},g=function(){return b=document.getElementById(a),b&&b.parentElement.removeChild(b),b=document.createElement("div"),b.className="context-menu context-menu-theme-osx",b.id=a,document.body.appendChild(b),b};g(),this.addEntry=e,this.bindMenu=f}function EdgeShaperControls(a,b){"use strict";if(void 0===a)throw"A list element has to be given.";if(void 0===b)throw"The EdgeShaper has to be given.";var c=this;this.addControlOpticShapeNone=function(){var c="control_edge_none";uiComponentsHelper.createButton(a,"None",c,function(){b.changeTo({shape:{type:EdgeShaper.shapes.NONE}})})},this.addControlOpticShapeArrow=function(){var c="control_edge_arrow";uiComponentsHelper.createButton(a,"Arrow",c,function(){b.changeTo({shape:{type:EdgeShaper.shapes.ARROW}})})},this.addControlOpticLabel=function(){var c="control_edge_label",d=c+"_";uiComponentsHelper.createButton(a,"Configure Label",c,function(){modalDialogHelper.createModalDialog("Switch Label Attribute",d,[{type:"text",id:"key",text:"Edge label attribute",value:b.getLabel()}],function(){var a=$("#"+d+"key").attr("value");b.changeTo({label:a})})})},this.addControlOpticLabelList=function(){var d="control_edge_label",e=d+"_";uiComponentsHelper.createButton(a,"Configure Label",d,function(){modalDialogHelper.createModalDialog("Change Label Attribute",e,[{type:"extendable",id:"label",text:"Edge label attribute",objects:b.getLabel()}],function(){var a=$("input[id^="+e+"label_]"),d=[];a.each(function(a,b){var c=$(b).val();""!==c&&d.push(c)});var f={label:d};c.applyLocalStorage(f),b.changeTo(f)})})},this.applyLocalStorage=function(a){if("undefined"!==Storage)try{var b=JSON.parse(localStorage.getItem("graphSettings")),c=window.location.hash.split("/")[1],d=window.location.pathname.split("/")[2],e=c+d;_.each(a,function(a,c){void 0!==c&&(b[e].viewer.hasOwnProperty("edgeShaper")||(b[e].viewer.edgeShaper={}),b[e].viewer.edgeShaper[c]=a)}),localStorage.setItem("graphSettings",JSON.stringify(b))}catch(f){console.log(f)}},this.addControlOpticSingleColour=function(){var c="control_edge_singlecolour",d=c+"_";uiComponentsHelper.createButton(a,"Single Colour",c,function(){modalDialogHelper.createModalDialog("Switch to Colour",d,[{type:"text",id:"stroke"}],function(){var a=$("#"+d+"stroke").attr("value");b.changeTo({color:{type:"single",stroke:a}})})})},this.addControlOpticAttributeColour=function(){var c="control_edge_attributecolour",d=c+"_";uiComponentsHelper.createButton(a,"Colour by Attribute",c,function(){modalDialogHelper.createModalDialog("Display colour by attribute",d,[{type:"text",id:"key"}],function(){var a=$("#"+d+"key").attr("value");b.changeTo({color:{type:"attribute",key:a}})})})},this.addControlOpticGradientColour=function(){var c="control_edge_gradientcolour",d=c+"_";uiComponentsHelper.createButton(a,"Gradient Colour",c,function(){modalDialogHelper.createModalDialog("Change colours for gradient",d,[{type:"text",id:"source"},{type:"text",id:"target"}],function(){var a=$("#"+d+"source").attr("value"),c=$("#"+d+"target").attr("value");b.changeTo({color:{type:"gradient",source:a,target:c}})})})},this.addAllOptics=function(){c.addControlOpticShapeNone(),c.addControlOpticShapeArrow(),c.addControlOpticLabel(),c.addControlOpticSingleColour(),c.addControlOpticAttributeColour(),c.addControlOpticGradientColour()},this.addAllActions=function(){},this.addAll=function(){c.addAllOptics(),c.addAllActions()}}function EventDispatcherControls(a,b,c,d,e){"use strict";if(void 0===a)throw"A list element has to be given.";if(void 0===b)throw"The NodeShaper has to be given.";if(void 0===c)throw"The EdgeShaper has to be given.";if(void 0===d)throw"The Start callback has to be given.";var f=this,g={expand:{icon:"hand-pointer-o",title:"Expand a node."},add:{icon:"plus-square",title:"Add a node."},trash:{icon:"minus-square",title:"Remove a node/edge."},drag:{icon:"hand-rock-o",title:"Drag a node."},edge:{icon:"external-link-square",title:"Create an edge between two nodes."},edit:{icon:"pencil-square",title:"Edit attributes of a node."},view:{icon:"search",title:"View attributes of a node."}},h=new EventDispatcher(b,c,e),i=e.edgeEditor.adapter,j=!!i&&_.isFunction(i.useNodeCollection)&&_.isFunction(i.useEdgeCollection),k=function(b){a.appendChild(b)},l=function(a,b,c){var d=uiComponentsHelper.createIconButton(a,"control_event_"+b,c);k(d)},m=function(a){h.rebind("nodes",a)},n=function(a){h.rebind("edges",a)},o=function(a){h.rebind("svg",a)},p=function(a){var b=a||window.event,c={};return c.x=b.clientX,c.y=b.clientY,c.x+=document.body.scrollLeft,c.y+=document.body.scrollTop,c},q=function(a){var b,c,d,e=p(a),f=$("svg#graphViewerSVG").offset();return b=d3.select("svg#graphViewerSVG").node(),d=b.getBoundingClientRect(),$("svg#graphViewerSVG").height()<=d.height?{x:e.x-f.left,y:e.y-f.top}:(c=b.getBBox(),{x:e.x-(d.left-c.x),y:e.y-(d.top-c.y)})},r={nodes:{},edges:{},svg:{}},s=function(){var a="control_event_new_node",c=a+"_",e=function(a){var e=q(a);modalDialogHelper.createModalCreateDialog("Create New Node",c,{},function(a){h.events.CREATENODE(a,function(a){$("#"+c+"modal").modal("hide"),b.reshapeNodes(),d()},e.x,e.y)()})};r.nodes.newNode=e},t=function(){var a=function(a){modalDialogHelper.createModalViewDialog("View Node "+a._id,"control_event_node_view_",a._data,function(){modalDialogHelper.createModalEditDialog("Edit Node "+a._id,"control_event_node_edit_",a._data,function(b){h.events.PATCHNODE(a,b,function(){$("#control_event_node_edit_modal").modal("hide")})()})})},b=function(a){modalDialogHelper.createModalViewDialog("View Edge "+a._id,"control_event_edge_view_",a._data,function(){modalDialogHelper.createModalEditDialog("Edit Edge "+a._id,"control_event_edge_edit_",a._data,function(b){h.events.PATCHEDGE(a,b,function(){$("#control_event_edge_edit_modal").modal("hide")})()})})};r.nodes.view=a,r.edges.view=b},u=function(){var a=h.events.STARTCREATEEDGE(function(a,b){var d=q(b),e=c.addAnEdgeFollowingTheCursor(d.x,d.y);h.bind("svg","mousemove",function(a){var b=q(a);e(b.x,b.y)})}),b=h.events.FINISHCREATEEDGE(function(a){c.removeCursorFollowingEdge(),h.bind("svg","mousemove",function(){return void 0}),d()}),e=function(){h.events.CANCELCREATEEDGE(),c.removeCursorFollowingEdge(),h.bind("svg","mousemove",function(){return void 0})};r.nodes.startEdge=a,r.nodes.endEdge=b,r.svg.cancelEdge=e},v=function(){var a=function(a){arangoHelper.openDocEditor(a._id,"document")},b=function(a){arangoHelper.openDocEditor(a._id,"edge")};r.nodes.edit=a,r.edges.edit=b},w=function(){var a=function(a){modalDialogHelper.createModalDeleteDialog("Delete Node "+a._id,"control_event_node_delete_",a,function(a){h.events.DELETENODE(function(){$("#control_event_node_delete_modal").modal("hide"),b.reshapeNodes(),c.reshapeEdges(),d()})(a)})},e=function(a){modalDialogHelper.createModalDeleteDialog("Delete Edge "+a._id,"control_event_edge_delete_",a,function(a){h.events.DELETEEDGE(function(){$("#control_event_edge_delete_modal").modal("hide"),b.reshapeNodes(),c.reshapeEdges(),d()})(a)})};r.nodes.del=a,r.edges.del=e},x=function(){r.nodes.spot=h.events.EXPAND};s(),t(),u(),v(),w(),x(),this.dragRebinds=function(){return{nodes:{drag:h.events.DRAG}}},this.newNodeRebinds=function(){return{svg:{click:r.nodes.newNode}}},this.viewRebinds=function(){return{nodes:{click:r.nodes.view},edges:{click:r.edges.view}}},this.connectNodesRebinds=function(){return{nodes:{mousedown:r.nodes.startEdge,mouseup:r.nodes.endEdge},svg:{mouseup:r.svg.cancelEdge}}},this.editRebinds=function(){return{nodes:{click:r.nodes.edit},edges:{click:r.edges.edit}}},this.expandRebinds=function(){return{nodes:{click:r.nodes.spot}}},this.deleteRebinds=function(){return{nodes:{click:r.nodes.del},edges:{click:r.edges.del}}},this.rebindAll=function(a){m(a.nodes),n(a.edges),o(a.svg)},b.addMenuEntry("Edit",r.nodes.edit),b.addMenuEntry("Spot",r.nodes.spot),b.addMenuEntry("Trash",r.nodes.del),c.addMenuEntry("Edit",r.edges.edit),c.addMenuEntry("Trash",r.edges.del),this.addControlNewNode=function(){var a=g.add,b="select_node_collection",c=function(){j&&i.getNodeCollections().length>1&&modalDialogHelper.createModalDialog("Select Vertex Collection",b,[{type:"list",id:"vertex",objects:i.getNodeCollections(),text:"Select collection",selected:i.getSelectedNodeCollection()}],function(){var a=$("#"+b+"vertex").children("option").filter(":selected").text();i.useNodeCollection(a)},"Select"),f.rebindAll(f.newNodeRebinds())};l(a,"new_node",c)},this.addControlView=function(){var a=g.view,b=function(){f.rebindAll(f.viewRebinds())};l(a,"view",b)},this.addControlDrag=function(){var a=g.drag,b=function(){f.rebindAll(f.dragRebinds())};l(a,"drag",b)},this.addControlEdit=function(){var a=g.edit,b=function(){f.rebindAll(f.editRebinds())};l(a,"edit",b)},this.addControlExpand=function(){var a=g.expand,b=function(){f.rebindAll(f.expandRebinds())};l(a,"expand",b)},this.addControlDelete=function(){var a=g.trash,b=function(){f.rebindAll(f.deleteRebinds())};l(a,"delete",b)},this.addControlConnect=function(){var a=g.edge,b="select_edge_collection",c=function(){j&&i.getEdgeCollections().length>1&&modalDialogHelper.createModalDialog("Select Edge Collection",b,[{type:"list",id:"edge",objects:i.getEdgeCollections(),text:"Select collection",selected:i.getSelectedEdgeCollection()}],function(){var a=$("#"+b+"edge").children("option").filter(":selected").text();i.useEdgeCollection(a)},"Select"),f.rebindAll(f.connectNodesRebinds())};l(a,"connect",c)},this.addAll=function(){f.addControlExpand(),f.addControlDrag(),f.addControlEdit(),f.addControlConnect(),f.addControlNewNode(),f.addControlDelete()}}function GharialAdapterControls(a,b){"use strict";if(void 0===a)throw"A list element has to be given.";if(void 0===b)throw"The GharialAdapter has to be given.";this.addControlChangeGraph=function(c){var d="control_adapter_graph",e=d+"_";b.getGraphs(function(f){uiComponentsHelper.createButton(a,"Switch Graph",d,function(){modalDialogHelper.createModalDialog("Switch Graph",e,[{type:"list",id:"graph",objects:f,text:"Select graph",selected:b.getGraphName()},{type:"checkbox",text:"Start with random vertex",id:"random",selected:!0}],function(){var a=$("#"+e+"graph").children("option").filter(":selected").text(),d=!!$("#"+e+"undirected").prop("checked"),f=!!$("#"+e+"random").prop("checked");return b.changeToGraph(a,d),f?void b.loadRandomNode(c):void(_.isFunction(c)&&c())})})})},this.addControlChangePriority=function(){var c="control_adapter_priority",d=c+"_",e="Group vertices";uiComponentsHelper.createButton(a,e,c,function(){modalDialogHelper.createModalChangeDialog(e+" by attribute",d,[{type:"extendable",id:"attribute",objects:b.getPrioList()}],function(){var a=$("input[id^="+d+"attribute_]"),c=[];_.each(a,function(a){var b=$(a).val();""!==b&&c.push(b)}),b.changeTo({prioList:c})})})},this.addAll=function(){this.addControlChangeGraph(),this.addControlChangePriority()}}function GraphViewerPreview(a,b){"use strict";var c,d,e,f,g,h,i,j=function(){return d3.select(a).append("svg").attr("id","graphViewerSVG").attr("width",d).attr("height",e).attr("class","graph-viewer").attr("style","width:"+d+"px;height:"+e+";")},k=function(a){var b=0;return _.each(a,function(c,d){c===!1?delete a[d]:b++}),b>0},l=function(a,b){_.each(b,function(b,c){a[c]=a[c]||{},_.each(b,function(b,d){a[c][d]=b})})},m=function(a){if(a){var b={};a.drag&&l(b,i.dragRebinds()),a.create&&(l(b,i.newNodeRebinds()),l(b,i.connectNodesRebinds())),a.remove&&l(b,i.deleteRebinds()),a.expand&&l(b,i.expandRebinds()),a.edit&&l(b,i.editRebinds()),i.rebindAll(b)}},n=function(b){var c=document.createElement("div");i=new EventDispatcherControls(c,f.nodeShaper,f.edgeShaper,f.start,f.dispatcherConfig),c.id="toolbox",c.className="btn-group btn-group-vertical pull-left toolbox",a.appendChild(c),_.each(b,function(a,b){switch(b){case"expand":i.addControlExpand();break;case"create":i.addControlNewNode(),i.addControlConnect();break;case"drag":i.addControlDrag();break;case"edit":i.addControlEdit();break;case"remove":i.addControlDelete()}})},o=function(a){var b=document.createElement("div");i=new EventDispatcherControls(b,f.nodeShaper,f.edgeShaper,f.start,f.dispatcherConfig)},p=function(){b&&(b.nodeShaper&&(b.nodeShaper.label&&(b.nodeShaper.label="label"),b.nodeShaper.shape&&b.nodeShaper.shape.type===NodeShaper.shapes.IMAGE&&b.nodeShaper.shape.source&&(b.nodeShaper.shape.source="image")),b.edgeShaper&&b.edgeShaper.label&&(b.edgeShaper.label="label"))},q=function(){return p(),new GraphViewer(c,d,e,h,b)};d=a.getBoundingClientRect().width,e=a.getBoundingClientRect().height,h={type:"preview"},b=b||{},g=k(b.toolbox),g&&(d-=43),c=j(),f=q(),g?n(b.toolbox):o(),f.loadGraph("1"),m(b.actions)}function GraphViewerUI(a,b,c,d,e,f){"use strict";if(void 0===a)throw"A parent element has to be given.";if(!a.id)throw"The parent element needs an unique id.";if(void 0===b)throw"An adapter configuration has to be given";var g,h,i,j,k,l,m,n,o,p=c+20||a.getBoundingClientRect().width-81+20,q=d||a.getBoundingClientRect().height,r=document.createElement("ul"),s=document.createElement("div"),t=function(){g.adapter.NODES_TO_DISPLAYGraph too big. A random section is rendered.
'),$(".infoField .fa-info-circle").attr("title","You can display additional/other vertices by using the toolbar buttons.").tooltip())},u=function(){var a,b=document.createElement("div"),c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("div"),f=document.createElement("button"),h=document.createElement("span"),i=document.createElement("input"),j=document.createElement("i"),k=document.createElement("span"),l=function(){$(s).css("cursor","progress")},n=function(){$(s).css("cursor","")},o=function(a){return n(),a&&a.errorCode&&404===a.errorCode?void arangoHelper.arangoError("Graph error","could not find a matching node."):void 0},p=function(){l(),""===a.value||void 0===a.value?g.loadGraph(i.value,o):g.loadGraphWithAttributeValue(a.value,i.value,o)};b.id="filterDropdown",b.className="headerDropdown smallDropdown",c.className="dropdownInner",d.className="queryline",a=document.createElement("input"),m=document.createElement("ul"),e.className="pull-left input-append searchByAttribute",a.id="attribute",a.type="text",a.placeholder="Attribute name",f.id="attribute_example_toggle",f.className="button-neutral gv_example_toggle",h.className="caret gv_caret",m.className="gv-dropdown-menu",i.id="value",i.className="searchInput gv_searchInput",i.type="text",i.placeholder="Attribute value",j.id="loadnode",j.className="fa fa-search",k.className="searchEqualsLabel",k.appendChild(document.createTextNode("==")),c.appendChild(d),d.appendChild(e),e.appendChild(a),e.appendChild(f),e.appendChild(m),f.appendChild(h),d.appendChild(k),d.appendChild(i),d.appendChild(j),j.onclick=p,$(i).keypress(function(a){return 13===a.keyCode||13===a.which?(p(),!1):void 0}),f.onclick=function(){$(m).slideToggle(200)};var q=document.createElement("p");return q.className="dropdown-title",q.innerHTML="Filter graph by attribute:",b.appendChild(q),b.appendChild(c),b},v=function(){var a,b=document.createElement("div"),c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("div"),f=document.createElement("button"),h=document.createElement("span"),i=document.createElement("input"),j=document.createElement("i"),k=document.createElement("span"),l=function(){$(s).css("cursor","progress")},m=function(){$(s).css("cursor","")},o=function(a){return m(),a&&a.errorCode&&404===a.errorCode?void arangoHelper.arangoError("Graph error","could not find a matching node."):void 0},p=function(){l(),""!==a.value&&g.loadGraphWithAdditionalNode(a.value,i.value,o)};b.id="nodeDropdown",b.className="headerDropdown smallDropdown",c.className="dropdownInner",d.className="queryline",a=document.createElement("input"),n=document.createElement("ul"),e.className="pull-left input-append searchByAttribute",a.id="attribute",a.type="text",a.placeholder="Attribute name",f.id="attribute_example_toggle2",f.className="button-neutral gv_example_toggle",h.className="caret gv_caret",n.className="gv-dropdown-menu",i.id="value",i.className="searchInput gv_searchInput",i.type="text",i.placeholder="Attribute value",j.id="loadnode",j.className="fa fa-search",k.className="searchEqualsLabel",k.appendChild(document.createTextNode("==")),c.appendChild(d),d.appendChild(e),e.appendChild(a),e.appendChild(f),e.appendChild(n),f.appendChild(h),d.appendChild(k),d.appendChild(i),d.appendChild(j),C(n),j.onclick=p,$(i).keypress(function(a){return 13===a.keyCode||13===a.which?(p(),!1):void 0}),f.onclick=function(){$(n).slideToggle(200)};var q=document.createElement("p");return q.className="dropdown-title",q.innerHTML="Add specific node by attribute:",b.appendChild(q),b.appendChild(c),b},w=function(){var a,b,c,d,e,f,g,h;return a=document.createElement("div"),a.id="configureDropdown",a.className="headerDropdown",b=document.createElement("div"),b.className="dropdownInner",c=document.createElement("ul"),d=document.createElement("li"),d.className="nav-header",d.appendChild(document.createTextNode("Vertices")),g=document.createElement("ul"),h=document.createElement("li"),h.className="nav-header",h.appendChild(document.createTextNode("Edges")),e=document.createElement("ul"),f=document.createElement("li"),f.className="nav-header",f.appendChild(document.createTextNode("Connection")),c.appendChild(d),g.appendChild(h),e.appendChild(f),b.appendChild(c),b.appendChild(g),b.appendChild(e),a.appendChild(b),{configure:a,nodes:c,edges:g,col:e}},x=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;return a.className="headerButtonBar",e=document.createElement("ul"),e.className="headerButtonList",a.appendChild(e),g=document.createElement("li"),g.className="enabled",h=document.createElement("a"),h.id=b,h.className="headerButton",i=document.createElement("span"),i.className="icon_arangodb_settings2",$(i).attr("title","Configure"),e.appendChild(g),g.appendChild(h),h.appendChild(i),j=document.createElement("li"),j.className="enabled",k=document.createElement("a"),k.id=d,k.className="headerButton",l=document.createElement("span"),l.className="fa fa-search-plus",$(l).attr("title","Show additional vertices"),e.appendChild(j),j.appendChild(k),k.appendChild(l),m=document.createElement("li"),m.className="enabled",n=document.createElement("a"),n.id=c,n.className="headerButton",o=document.createElement("span"),o.className="icon_arangodb_filter",$(o).attr("title","Filter"),e.appendChild(m),m.appendChild(n),n.appendChild(o),f=w(),f.filter=u(),f.node=v(),h.onclick=function(){$("#filterdropdown").removeClass("activated"),$("#nodedropdown").removeClass("activated"),$("#configuredropdown").toggleClass("activated"),$(f.configure).slideToggle(200),$(f.filter).hide(),$(f.node).hide()},k.onclick=function(){$("#filterdropdown").removeClass("activated"),$("#configuredropdown").removeClass("activated"),$("#nodedropdown").toggleClass("activated"),$(f.node).slideToggle(200),$(f.filter).hide(),$(f.configure).hide()},n.onclick=function(){$("#configuredropdown").removeClass("activated"),$("#nodedropdown").removeClass("activated"),$("#filterdropdown").toggleClass("activated"),$(f.filter).slideToggle(200),$(f.node).hide(),$(f.configure).hide()},f},y=function(){return console.log(q),d3.select("#"+a.id+" #background").append("svg").attr("id","graphViewerSVG").attr("width",p).attr("height",q).attr("class","graph-viewer").style("width",p+"px").style("height",q+"px")},z=function(){var a=document.createElement("div"),b=document.createElement("div"),c=document.createElement("button"),d=document.createElement("button"),e=document.createElement("button"),f=document.createElement("button");a.className="gv_zoom_widget",b.className="gv_zoom_buttons_bg",c.className="btn btn-icon btn-zoom btn-zoom-top gv-zoom-btn pan-top",d.className="btn btn-icon btn-zoom btn-zoom-left gv-zoom-btn pan-left",e.className="btn btn-icon btn-zoom btn-zoom-right gv-zoom-btn pan-right",f.className="btn btn-icon btn-zoom btn-zoom-bottom gv-zoom-btn pan-bottom",c.onclick=function(){g.zoomManager.triggerTranslation(0,-10)},d.onclick=function(){g.zoomManager.triggerTranslation(-10,0)},e.onclick=function(){g.zoomManager.triggerTranslation(10,0)},f.onclick=function(){g.zoomManager.triggerTranslation(0,10)},b.appendChild(c),b.appendChild(d),b.appendChild(e),b.appendChild(f),l=document.createElement("div"),l.id="gv_zoom_slider",l.className="gv_zoom_slider",s.appendChild(a),s.insertBefore(a,o[0][0]),a.appendChild(b),a.appendChild(l),$("#gv_zoom_slider").slider({orientation:"vertical",min:g.zoomManager.getMinimalZoomFactor(),max:1,value:1,step:.01,slide:function(a,b){g.zoomManager.triggerScale(b.value)}}),g.zoomManager.registerSlider($("#gv_zoom_slider"))},A=function(){var a=document.createElement("div"),b=new EventDispatcherControls(a,g.nodeShaper,g.edgeShaper,g.start,g.dispatcherConfig);a.id="toolbox",a.className="btn-group btn-group-vertical toolbox",s.insertBefore(a,o[0][0]),b.addAll(),$("#control_event_expand").click()},B=function(){var a='
  • ';$(".headerBar .headerButtonList").prepend(a)},C=function(a){var b;b=a?$(a):$(m),b.innerHTML="";var c=document.createElement("li"),d=document.createElement("img");$(c).append(d),d.className="gv-throbber",b.append(c),g.adapter.getAttributeExamples(function(a){$(b).html(""),_.each(a,function(a){var c=document.createElement("li"),d=document.createElement("a"),e=document.createElement("label");$(c).append(d),$(d).append(e),$(e).append(document.createTextNode(a)),e.className="gv_dropdown_label",b.append(c),c.onclick=function(){b.value=a,$(b).parent().find("input").val(a),$(b).slideToggle(200)}})})},D=function(){var a=document.createElement("div"),b=document.createElement("div"),c=(document.createElement("a"),x(b,"configuredropdown","filterdropdown","nodedropdown"));i=new NodeShaperControls(c.nodes,g.nodeShaper),j=new EdgeShaperControls(c.edges,g.edgeShaper),k=new GharialAdapterControls(c.col,g.adapter),r.id="menubar",a.className="headerBar",b.id="modifiers",r.appendChild(a),r.appendChild(c.configure),r.appendChild(c.filter),r.appendChild(c.node),a.appendChild(b),k.addControlChangeGraph(function(){C(),g.start(!0)}),k.addControlChangePriority(),i.addControlOpticLabelAndColourList(g.adapter),j.addControlOpticLabelList(),C()},E=function(){h=i.createColourMappingList(),h.className="gv-colour-list",s.insertBefore(h,o[0][0])};a.appendChild(r),a.appendChild(s),s.className="contentDiv gv-background ",s.id="background",e=e||{},e.zoom=!0,o=y(),"undefined"!==Storage&&(this.graphSettings={},this.loadLocalStorage=function(){var a=b.baseUrl.split("/")[2],c=b.graphName+a;if(null===localStorage.getItem("graphSettings")||"null"===localStorage.getItem("graphSettings")){var d={};d[c]={viewer:e,adapter:b},localStorage.setItem("graphSettings",JSON.stringify(d))}else try{var f=JSON.parse(localStorage.getItem("graphSettings"));this.graphSettings=f,void 0!==f[c].viewer&&(e=f[c].viewer),void 0!==f[c].adapter&&(b=f[c].adapter)}catch(g){console.log("Could not load graph settings, resetting graph settings."),this.graphSettings[c]={viewer:e,adapter:b},localStorage.setItem("graphSettings",JSON.stringify(this.graphSettings))}},this.loadLocalStorage(),this.writeLocalStorage=function(){}),g=new GraphViewer(o,p,q,b,e),A(),z(),D(),E(),t(),B(),$("#graphSize").on("change",function(){var a=$("#graphSize").find(":selected").val();g.loadGraphWithRandomStart(function(a){a&&a.errorCode&&arangoHelper.arangoError("Graph","Sorry your graph seems to be empty")},a)}),f&&("string"==typeof f?g.loadGraph(f):g.loadGraphWithRandomStart(function(a){a&&a.errorCode&&arangoHelper.arangoError("Graph","Sorry your graph seems to be empty")})),this.changeWidth=function(a){g.changeWidth(a);var b=a-55;o.attr("width",b).style("width",b+"px")}}function GraphViewerWidget(a,b){"use strict";var c,d,e,f,g,h,i,j,k=function(){return d3.select(d).append("svg").attr("id","graphViewerSVG").attr("width",e).attr("height",f).attr("class","graph-viewer").attr("style","width:"+e+"px;height:"+f+"px;")},l=function(a){var b=0;return _.each(a,function(c,d){c===!1?delete a[d]:b++}),b>0},m=function(a,b){_.each(b,function(b,c){a[c]=a[c]||{},_.each(b,function(b,d){a[c][d]=b})})},n=function(a){if(a){var b={};a.drag&&m(b,j.dragRebinds()),a.create&&(m(b,j.newNodeRebinds()),m(b,j.connectNodesRebinds())),a.remove&&m(b,j.deleteRebinds()),a.expand&&m(b,j.expandRebinds()),a.edit&&m(b,j.editRebinds()),j.rebindAll(b)}},o=function(a){var b=document.createElement("div");j=new EventDispatcherControls(b,g.nodeShaper,g.edgeShaper,g.start,g.dispatcherConfig),b.id="toolbox",b.className="btn-group btn-group-vertical pull-left toolbox",d.appendChild(b),_.each(a,function(a,b){switch(b){case"expand":j.addControlExpand();break;case"create":j.addControlNewNode(),j.addControlConnect();break;case"drag":j.addControlDrag();break;case"edit":j.addControlEdit();break;case"remove":j.addControlDelete()}})},p=function(a){var b=document.createElement("div");j=new EventDispatcherControls(b,g.nodeShaper,g.edgeShaper,g.start,g.dispatcherConfig)},q=function(){return new GraphViewer(c,e,f,i,a)};d=document.body,e=d.getBoundingClientRect().width,f=d.getBoundingClientRect().height,i={type:"foxx",route:"."},a=a||{},h=l(a.toolbox),h&&(e-=43),c=k(),g=q(),h?o(a.toolbox):p(),b&&g.loadGraph(b),n(a.actions)}function LayouterControls(a,b){"use strict";if(void 0===a)throw"A list element has to be given.";if(void 0===b)throw"The Layouter has to be given.";var c=this;this.addControlGravity=function(){var c="control_layout_gravity",d=c+"_";uiComponentsHelper.createButton(a,"Gravity",c,function(){modalDialogHelper.createModalDialog("Switch Gravity Strength",d,[{type:"text",id:"value"}],function(){var a=$("#"+d+"value").attr("value");b.changeTo({gravity:a})})})},this.addControlCharge=function(){var c="control_layout_charge",d=c+"_";uiComponentsHelper.createButton(a,"Charge",c,function(){modalDialogHelper.createModalDialog("Switch Charge Strength",d,[{type:"text",id:"value"}],function(){var a=$("#"+d+"value").attr("value");b.changeTo({charge:a})})})},this.addControlDistance=function(){var c="control_layout_distance",d=c+"_";uiComponentsHelper.createButton(a,"Distance",c,function(){modalDialogHelper.createModalDialog("Switch Distance Strength",d,[{type:"text",id:"value"}],function(){var a=$("#"+d+"value").attr("value");b.changeTo({distance:a})})})},this.addAll=function(){c.addControlDistance(),c.addControlGravity(),c.addControlCharge()}}function NodeShaperControls(a,b){"use strict";if(void 0===a)throw"A list element has to be given.";if(void 0===b)throw"The NodeShaper has to be given.";var c,d=this,e=function(a){for(;c.hasChildNodes();)c.removeChild(c.lastChild);var b=document.createElement("ul");c.appendChild(b),_.each(a,function(a,c){var d=document.createElement("ul"),e=a.list,f=a.front;d.style.backgroundColor=c,d.style.color=f,_.each(e,function(a){var b=document.createElement("li");b.appendChild(document.createTextNode(a)),d.appendChild(b)}),b.appendChild(d)})};this.addControlOpticShapeNone=function(){uiComponentsHelper.createButton(a,"None","control_node_none",function(){b.changeTo({shape:{type:NodeShaper.shapes.NONE}})})},this.applyLocalStorage=function(a){if("undefined"!==Storage)try{var b=JSON.parse(localStorage.getItem("graphSettings")),c=window.location.hash.split("/")[1],d=window.location.pathname.split("/")[2],e=c+d;_.each(a,function(a,c){void 0!==c&&(b[e].viewer.nodeShaper[c]=a)}),localStorage.setItem("graphSettings",JSON.stringify(b))}catch(f){console.log(f)}},this.addControlOpticShapeCircle=function(){var c="control_node_circle",d=c+"_";uiComponentsHelper.createButton(a,"Circle",c,function(){modalDialogHelper.createModalDialog("Switch to Circle",d,[{type:"text",id:"radius"}],function(){var a=$("#"+d+"radius").attr("value");b.changeTo({shape:{type:NodeShaper.shapes.CIRCLE,radius:a}})})})},this.addControlOpticShapeRect=function(){var c="control_node_rect",d=c+"_";uiComponentsHelper.createButton(a,"Rectangle",c,function(){modalDialogHelper.createModalDialog("Switch to Rectangle","control_node_rect_",[{type:"text",id:"width"},{type:"text",id:"height"}],function(){var a=$("#"+d+"width").attr("value"),c=$("#"+d+"height").attr("value");b.changeTo({shape:{type:NodeShaper.shapes.RECT,width:a,height:c}})})})},this.addControlOpticLabel=function(){var c="control_node_label",e=c+"_";uiComponentsHelper.createButton(a,"Configure Label",c,function(){modalDialogHelper.createModalChangeDialog("Change label attribute",e,[{type:"text",id:"key"}],function(){var a=$("#"+e+"key").attr("value"),c={label:a};d.applyLocalStorage(c),b.changeTo(c)})})},this.addControlOpticSingleColour=function(){var c="control_node_singlecolour",d=c+"_";uiComponentsHelper.createButton(a,"Single Colour",c,function(){modalDialogHelper.createModalDialog("Switch to Colour",d,[{type:"text",id:"fill"},{type:"text",id:"stroke"}],function(){var a=$("#"+d+"fill").attr("value"),c=$("#"+d+"stroke").attr("value");b.changeTo({color:{type:"single",fill:a,stroke:c}})})})},this.addControlOpticAttributeColour=function(){var c="control_node_attributecolour",d=c+"_";uiComponentsHelper.createButton(a,"Colour by Attribute",c,function(){modalDialogHelper.createModalDialog("Display colour by attribute",d,[{type:"text",id:"key"}],function(){var a=$("#"+d+"key").attr("value");b.changeTo({color:{type:"attribute",key:a}})})})},this.addControlOpticExpandColour=function(){var c="control_node_expandcolour",d=c+"_";uiComponentsHelper.createButton(a,"Expansion Colour",c,function(){modalDialogHelper.createModalDialog("Display colours for expansion",d,[{type:"text",id:"expanded"},{ -type:"text",id:"collapsed"}],function(){var a=$("#"+d+"expanded").attr("value"),c=$("#"+d+"collapsed").attr("value");b.changeTo({color:{type:"expand",expanded:a,collapsed:c}})})})},this.addControlOpticLabelAndColour=function(e){var f="control_node_labelandcolour",g=f+"_";uiComponentsHelper.createButton(a,"Configure Label",f,function(){modalDialogHelper.createModalChangeDialog("Change label attribute",g,[{type:"text",id:"label-attribute",text:"Vertex label attribute",value:b.getLabel()||""},{type:"decission",id:"samecolour",group:"colour",text:"Use this attribute for coloring, too",isDefault:b.getLabel()===b.getColor()},{type:"decission",id:"othercolour",group:"colour",text:"Use different attribute for coloring",isDefault:b.getLabel()!==b.getColor(),interior:[{type:"text",id:"colour-attribute",text:"Color attribute",value:b.getColor()||""}]}],function(){var a=$("#"+g+"label-attribute").attr("value"),e=$("#"+g+"colour-attribute").attr("value"),f=$("input[type='radio'][name='colour']:checked").attr("id");f===g+"samecolour"&&(e=a);var h={label:a,color:{type:"attribute",key:e}};d.applyLocalStorage(h),b.changeTo(h),void 0===c&&(c=d.createColourMappingList())})})},this.addControlOpticLabelAndColourList=function(e){var f="control_node_labelandcolourlist",g=f+"_";uiComponentsHelper.createButton(a,"Configure Label",f,function(){modalDialogHelper.createModalChangeDialog("Change label attribute",g,[{type:"extendable",id:"label",text:"Vertex label attribute",objects:b.getLabel()},{type:"decission",id:"samecolour",group:"colour",text:"Use this attribute for coloring, too",isDefault:b.getLabel()===b.getColor()},{type:"decission",id:"othercolour",group:"colour",text:"Use different attribute for coloring",isDefault:b.getLabel()!==b.getColor(),interior:[{type:"extendable",id:"colour",text:"Color attribute",objects:b.getColor()||""}]}],function(){var a=$("input[id^="+g+"label_]"),e=$("input[id^="+g+"colour_]"),f=$("input[type='radio'][name='colour']:checked").attr("id"),h=[],i=[];a.each(function(a,b){var c=$(b).val();""!==c&&h.push(c)}),e.each(function(a,b){var c=$(b).val();""!==c&&i.push(c)}),f===g+"samecolour"&&(i=h);var j={label:h,color:{type:"attribute",key:i}};d.applyLocalStorage(j),b.changeTo(j),void 0===c&&(c=d.createColourMappingList())})})},this.addAllOptics=function(){d.addControlOpticShapeNone(),d.addControlOpticShapeCircle(),d.addControlOpticShapeRect(),d.addControlOpticLabel(),d.addControlOpticSingleColour(),d.addControlOpticAttributeColour(),d.addControlOpticExpandColour()},this.addAllActions=function(){},this.addAll=function(){d.addAllOptics(),d.addAllActions()},this.createColourMappingList=function(){return void 0!==c?c:(c=document.createElement("div"),c.id="node_colour_list",e(b.getColourMapping()),b.setColourMappingListener(e),c)}}function GraphViewer(a,b,c,d,e){"use strict";if($("html").attr("xmlns:xlink","http://www.w3.org/1999/xlink"),void 0===a||void 0===a.append)throw"SVG has to be given and has to be selected using d3.select";if(void 0===b||0>=b)throw"A width greater 0 has to be given";if(void 0===c||0>=c)throw"A height greater 0 has to be given";if(void 0===d||void 0===d.type)throw"An adapter configuration has to be given";var f,g,h,i,j,k,l,m,n=this,o=[],p=[],q=function(a){if(!a)return a={},a.nodes=p,a.links=o,a.width=b,a.height=c,void(i=new ForceLayouter(a));switch(a.type.toLowerCase()){case"force":a.nodes=p,a.links=o,a.width=b,a.height=c,i=new ForceLayouter(a);break;default:throw"Sorry unknown layout type."}},r=function(a){f.setNodeLimit(a,n.start)},s=function(d){d&&(j=new ZoomManager(b,c,a,k,g,h,{},r))},t=function(a){var b=a.edgeShaper||{},c=a.nodeShaper||{},d=c.idfunc||void 0,e=a.zoom||!1;b.shape=b.shape||{type:EdgeShaper.shapes.ARROW},q(a.layouter),m=k.append("g"),h=new EdgeShaper(m,b),l=k.append("g"),g=new NodeShaper(l,c,d),i.setCombinedUpdateFunction(g,h),s(e)};switch(d.type.toLowerCase()){case"arango":d.width=b,d.height=c,f=new ArangoAdapter(p,o,this,d),f.setChildLimit(10);break;case"gharial":d.width=b,d.height=c,f=new GharialAdapter(p,o,this,d),f.setChildLimit(10);break;case"foxx":d.width=b,d.height=c,f=new FoxxAdapter(p,o,d.route,this,d);break;case"json":f=new JSONAdapter(d.path,p,o,this,b,c);break;case"preview":d.width=b,d.height=c,f=new PreviewAdapter(p,o,this,d);break;default:throw"Sorry unknown adapter type."}k=a.append("g"),t(e||{}),this.start=function(a){i.stop(),a&&(""!==$(".infoField").text()?_.each(p,function(a){_.each(f.randomNodes,function(b){a._id===b._id&&(a._expanded=!0)})}):_.each(p,function(a){a._expanded=!0})),g.drawNodes(p),h.drawEdges(o),i.start()},this.loadGraph=function(a,b){f.loadInitialNode(a,function(a){return a.errorCode?void b(a):(a._expanded=!0,n.start(),void(_.isFunction(b)&&b()))})},this.loadGraphWithRandomStart=function(a,b){f.loadRandomNode(function(b){return b.errorCode&&404===b.errorCode?void a(b):(b._expanded=!0,n.start(!0),void(_.isFunction(a)&&a()))},b)},this.loadGraphWithAdditionalNode=function(a,b,c){f.loadAdditionalNodeByAttributeValue(a,b,function(a){return a.errorCode?void c(a):(a._expanded=!0,n.start(),void(_.isFunction(c)&&c()))})},this.loadGraphWithAttributeValue=function(a,b,c){f.randomNodes=[],f.definedNodes=[],f.loadInitialNodeByAttributeValue(a,b,function(a){return a.errorCode?void c(a):(a._expanded=!0,n.start(),void(_.isFunction(c)&&c()))})},this.cleanUp=function(){g.resetColourMap(),h.resetColourMap()},this.changeWidth=function(a){i.changeWidth(a),j.changeWidth(a),f.setWidth(a)},this.dispatcherConfig={expand:{edges:o,nodes:p,startCallback:n.start,adapter:f,reshapeNodes:g.reshapeNodes},drag:{layouter:i},nodeEditor:{nodes:p,adapter:f},edgeEditor:{edges:o,adapter:f}},this.adapter=f,this.nodeShaper=g,this.edgeShaper=h,this.layouter=i,this.zoomManager=j}EdgeShaper.shapes=Object.freeze({NONE:0,ARROW:1}),NodeShaper.shapes=Object.freeze({NONE:0,CIRCLE:1,RECT:2,IMAGE:3});var modalDialogHelper=modalDialogHelper||{};!function(){"use strict";var a,b=function(a){$(document).bind("keypress.key13",function(b){b.which&&13===b.which&&$(a).click()})},c=function(){$(document).unbind("keypress.key13")},d=function(a,b,c,d,e){var f,g,h=function(){e(f)},i=modalDialogHelper.modalDivTemplate(a,b,c,h),j=document.createElement("tr"),k=document.createElement("th"),l=document.createElement("th"),m=document.createElement("th"),n=document.createElement("button"),o=1;f=function(){var a={};return _.each($("#"+c+"table tr:not(#first_row)"),function(b){var c=$(".keyCell input",b).val(),d=$(".valueCell input",b).val();a[c]=d}),a},i.appendChild(j),j.id="first_row",j.appendChild(k),k.className="keyCell",j.appendChild(l),l.className="valueCell",j.appendChild(m),m.className="actionCell",m.appendChild(n),n.id=c+"new",n.className="graphViewer-icon-button gv-icon-small add",g=function(a,b){var d,e,f,g=/^_(id|rev|key|from|to)/,h=document.createElement("tr"),j=document.createElement("th"),k=document.createElement("th"),l=document.createElement("th");g.test(b)||(i.appendChild(h),h.appendChild(k),k.className="keyCell",e=document.createElement("input"),e.type="text",e.id=c+b+"_key",e.value=b,k.appendChild(e),h.appendChild(l),l.className="valueCell",f=document.createElement("input"),f.type="text",f.id=c+b+"_value","object"==typeof a?f.value=JSON.stringify(a):f.value=a,l.appendChild(f),h.appendChild(j),j.className="actionCell",d=document.createElement("button"),d.id=c+b+"_delete",d.className="graphViewer-icon-button gv-icon-small delete",j.appendChild(d),d.onclick=function(){i.removeChild(h)})},n.onclick=function(){g("","new_"+o),o++},_.each(d,g),$("#"+c+"modal").modal("show")},e=function(a,b,c,d,e){var f=modalDialogHelper.modalDivTemplate(a,b,c,e),g=document.createElement("tr"),h=document.createElement("th"),i=document.createElement("pre");f.appendChild(g),g.appendChild(h),h.appendChild(i),i.className="gv-object-view",i.innerHTML=JSON.stringify(d,null,2),$("#"+c+"modal").modal("show")},f=function(a,b){var c=document.createElement("input");return c.type="text",c.id=a,c.value=b,c},g=function(a,b){var c=document.createElement("input");return c.type="checkbox",c.id=a,c.checked=b,c},h=function(a,b,c){var d=document.createElement("select");return d.id=a,_.each(_.sortBy(b,function(a){return a.toLowerCase()}),function(a){var b=document.createElement("option");b.value=a,b.selected=a===c,b.appendChild(document.createTextNode(a)),d.appendChild(b)}),d},i=function(a){var b=$(".decission_"+a),c=$("input[type='radio'][name='"+a+"']:checked").attr("id");b.each(function(){$(this).attr("decider")===c?$(this).css("display",""):$(this).css("display","none")})},j=function(b,c,d,e,f,g,h,j){var k=document.createElement("input"),l=b+c,m=document.createElement("label"),n=document.createElement("tbody");k.id=l,k.type="radio",k.name=d,k.className="gv-radio-button",m.className="radio",h.appendChild(m),m.appendChild(k),m.appendChild(document.createTextNode(e)),j.appendChild(n),$(n).toggleClass("decission_"+d,!0),$(n).attr("decider",l),_.each(g,function(c){a(n,b,c)}),f?k.checked=!0:k.checked=!1,m.onclick=function(a){i(d),a.stopPropagation()},i(d)},k=function(a,b,c,d,e,f){var g,h=[],i=a+b,j=1,k=document.createElement("th"),l=document.createElement("button"),m=document.createElement("input"),n=function(a){j++;var c,d=document.createElement("tr"),g=document.createElement("th"),k=document.createElement("th"),l=document.createElement("th"),m=document.createElement("input"),n=document.createElement("button");m.type="text",m.id=i+"_"+j,m.value=a||"",c=0===h.length?$(f):$(h[h.length-1]),c.after(d),d.appendChild(g),g.className="collectionTh capitalize",g.appendChild(document.createTextNode(b+" "+j+":")),d.appendChild(k),k.className="collectionTh",k.appendChild(m),n.id=i+"_"+j+"_remove",n.className="graphViewer-icon-button gv-icon-small delete",n.onclick=function(){e.removeChild(d),h.splice(h.indexOf(d),1)},l.appendChild(n),d.appendChild(l),h.push(d)};for(m.type="text",m.id=i+"_1",d.appendChild(m),k.appendChild(l),f.appendChild(k),l.onclick=function(){n()},l.id=i+"_addLine",l.className="graphViewer-icon-button gv-icon-small add","string"==typeof c&&c.length>0&&(c=[c]),c.length>0&&(m.value=c[0]),g=1;g'+c+""),a.disabled||$("#subNavigationBar .bottom").children().last().bind("click",function(){window.App.navigate(a.route,{trigger:!0})})})},buildNodeSubNav:function(a,b,c){var d={Dashboard:{route:"#node/"+encodeURIComponent(a)},Logs:{route:"#nLogs/"+encodeURIComponent(a),disabled:!0}};d[b].active=!0,d[c].disabled=!0,this.buildSubNavBar(d)},scaleability:void 0,buildNodesSubNav:function(a){if(void 0===this.scaleability){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){null!==a.numberOfCoordinators&&null!==a.numberOfDBServers?(b.scaleability=!0,b.buildNodesSubNav()):b.scaleability=!1}})}var c={Coordinators:{route:"#cNodes"},DBServers:{route:"#dNodes"}};c.Scale={route:"#sNodes",disabled:!0},"coordinator"===a?c.Coordinators.active=!0:"scale"===a?this.scaleability===!0?c.Scale.active=!0:window.App.navigate("#nodes",{trigger:!0}):c.DBServers.active=!0,this.scaleability===!0&&(c.Scale.disabled=!1),this.buildSubNavBar(c)},buildCollectionSubNav:function(a,b){var c="#collection/"+encodeURIComponent(a),d={Content:{route:c+"/documents/1"},Indices:{route:"#cIndices/"+encodeURIComponent(a)},Info:{route:"#cInfo/"+encodeURIComponent(a)},Settings:{route:"#cSettings/"+encodeURIComponent(a)}};d[b].active=!0,this.buildSubNavBar(d)},enableKeyboardHotkeys:function(a){var b=window.arangoHelper.hotkeysFunctions;a===!0&&($(document).on("keydown",null,"j",b.scrollDown),$(document).on("keydown",null,"k",b.scrollUp))},databaseAllowed:function(a){var b=function(b,c){b?arangoHelper.arangoError("",""):$.ajax({type:"GET",cache:!1,url:this.databaseUrl("/_api/database/",c),contentType:"application/json",processData:!1,success:function(){a(!1,!0)},error:function(){a(!0,!1)}})}.bind(this);this.currentDatabase(b)},arangoNotification:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"success"})},arangoError:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"error"})},arangoWarning:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"warning"})},hideArangoNotifications:function(){$.noty.clearQueue(),$.noty.closeAll()},openDocEditor:function(a,b,c){var d=a.split("/"),e=this,f=new window.DocumentView({collection:window.App.arangoDocumentStore});f.breadcrumb=function(){},f.colid=d[0],f.docid=d[1],f.el=".arangoFrame .innerDiv",f.render(),f.setType(b),$(".arangoFrame .headerBar").remove(),$(".arangoFrame .outerDiv").prepend(''),$(".arangoFrame .outerDiv").click(function(){e.closeDocEditor()}),$(".arangoFrame .innerDiv").click(function(a){a.stopPropagation()}),$(".fa-times").click(function(){e.closeDocEditor()}),$(".arangoFrame").show(),f.customView=!0,f.customDeleteFunction=function(){window.modalView.hide(),$(".arangoFrame").hide()},$(".arangoFrame #deleteDocumentButton").click(function(){f.deleteDocumentModal()}),$(".arangoFrame #saveDocumentButton").click(function(){f.saveDocument()}),$(".arangoFrame #deleteDocumentButton").css("display","none")},closeDocEditor:function(){$(".arangoFrame .outerDiv .fa-times").remove(),$(".arangoFrame").hide()},addAardvarkJob:function(a,b){$.ajax({cache:!1,type:"POST",url:this.databaseUrl("/_admin/aardvark/job"),data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){b&&b(!1,a)},error:function(a){b&&b(!0,a)}})},deleteAardvarkJob:function(a,b){$.ajax({cache:!1,type:"DELETE",url:this.databaseUrl("/_admin/aardvark/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a){b&&b(!1,a)},error:function(a){b&&b(!0,a)}})},deleteAllAardvarkJobs:function(a){$.ajax({cache:!1,type:"DELETE",url:this.databaseUrl("/_admin/aardvark/job"),contentType:"application/json",processData:!1,success:function(b){a&&a(!1,b)},error:function(b){a&&a(!0,b)}})},getAardvarkJobs:function(a){$.ajax({cache:!1,type:"GET",url:this.databaseUrl("/_admin/aardvark/job"),contentType:"application/json",processData:!1,success:function(b){a&&a(!1,b)},error:function(b){console.log("error"),a&&a(!0,b)}})},getPendingJobs:function(a){$.ajax({cache:!1,type:"GET",url:this.databaseUrl("/_api/job/pending"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},syncAndReturnUninishedAardvarkJobs:function(a,b){var c=function(c,d){if(c)b(!0);else{var e=function(c,e){if(c)arangoHelper.arangoError("","");else{var f=[];e.length>0?_.each(d,function(b){if(b.type===a||void 0===b.type){var c=!1;_.each(e,function(a){b.id===a&&(c=!0)}),c?f.push({collection:b.collection,id:b.id,type:b.type,desc:b.desc}):window.arangoHelper.deleteAardvarkJob(b.id)}}):d.length>0&&this.deleteAllAardvarkJobs(),b(!1,f)}}.bind(this);this.getPendingJobs(e)}}.bind(this);this.getAardvarkJobs(c)},getRandomToken:function(){return Math.round((new Date).getTime())},isSystemAttribute:function(a){var b=this.systemAttributes();return b[a]},isSystemCollection:function(a){return"_"===a.name.substr(0,1)},setDocumentStore:function(a){this.arangoDocumentStore=a},collectionApiType:function(a,b,c){if(b||void 0===this.CollectionTypes[a]){var d=function(b,c,d){b?arangoHelper.arangoError("Error","Could not detect collection type"):(this.CollectionTypes[a]=c.type,3===this.CollectionTypes[a]?d(!1,"edge"):d(!1,"document"))}.bind(this);this.arangoDocumentStore.getCollectionInfo(a,d,c)}else c(!1,this.CollectionTypes[a])},collectionType:function(a){if(!a||""===a.name)return"-";var b;return b=2===a.type?"document":3===a.type?"edge":"unknown",this.isSystemCollection(a)&&(b+=" (system)"),b},formatDT:function(a){var b=function(a){return 10>a?"0"+a:a};return a.getUTCFullYear()+"-"+b(a.getUTCMonth()+1)+"-"+b(a.getUTCDate())+" "+b(a.getUTCHours())+":"+b(a.getUTCMinutes())+":"+b(a.getUTCSeconds())},escapeHtml:function(a){return String(a).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},backendUrl:function(a){return frontendConfig.basePath+a},databaseUrl:function(a,b){if("/_db/"===a.substr(0,5))throw new Error("Calling databaseUrl with a databased url ("+a+") doesn't make any sense");return b||(b="_system",frontendConfig.db&&(b=frontendConfig.db)),this.backendUrl("/_db/"+encodeURIComponent(b)+a)}}}(),function(){"use strict";if(!window.hasOwnProperty("TEST_BUILD")){var a=function(){var a={};return a.createTemplate=function(a){var b=$("#"+a.replace(".","\\.")).html();return{render:function(a){var c=_.template(b);return c=c(a)}}},a};window.templateEngine=new a}}(),function(){"use strict";window.dygraphConfig={defaultFrame:12e5,zeropad:function(a){return 10>a?"0"+a:a},xAxisFormat:function(a){if(-1===a)return"";var b=new Date(a);return this.zeropad(b.getHours())+":"+this.zeropad(b.getMinutes())+":"+this.zeropad(b.getSeconds())},mergeObjects:function(a,b,c){c||(c=[]);var d,e={};return c.forEach(function(c){var d=a[c],f=b[c];void 0===d&&(d={}),void 0===f&&(f={}),e[c]=_.extend(d,f)}),d=_.extend(a,b),Object.keys(e).forEach(function(a){d[a]=e[a]}),d},mapStatToFigure:{residentSize:["times","residentSizePercent"],pageFaults:["times","majorPageFaultsPerSecond","minorPageFaultsPerSecond"],systemUserTime:["times","systemTimePerSecond","userTimePerSecond"],totalTime:["times","avgQueueTime","avgRequestTime","avgIoTime"],dataTransfer:["times","bytesSentPerSecond","bytesReceivedPerSecond"],requests:["times","getsPerSecond","putsPerSecond","postsPerSecond","deletesPerSecond","patchesPerSecond","headsPerSecond","optionsPerSecond","othersPerSecond"]},colors:["rgb(95, 194, 135)","rgb(238, 190, 77)","#81ccd8","#7ca530","#3c3c3c","#aa90bd","#e1811d","#c7d4b2","#d0b2d4"],figureDependedOptions:{clusterRequestsPerSecond:{showLabelsOnHighlight:!0,title:"",header:"Cluster Requests per Second",stackedGraph:!0,div:"lineGraphLegend",labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}},residentSize:{header:"Memory",axes:{y:{labelsKMG2:!1,axisLabelFormatter:function(a){return parseFloat(100*a.toPrecision(3))+"%"},valueFormatter:function(a){return parseFloat(100*a.toPrecision(3))+"%"}}}},pageFaults:{header:"Page Faults",visibility:[!0,!1],labels:["datetime","Major Page","Minor Page"],div:"pageFaultsChart",labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}},systemUserTime:{div:"systemUserTimeChart",header:"System and User Time",labels:["datetime","System Time","User Time"],stackedGraph:!0,labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}},totalTime:{div:"totalTimeChart",header:"Total Time",labels:["datetime","Queue","Computation","I/O"],labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}},stackedGraph:!0},dataTransfer:{header:"Data Transfer",labels:["datetime","Bytes sent","Bytes received"],stackedGraph:!0,div:"dataTransferChart"},requests:{header:"Requests",labels:["datetime","Reads","Writes"],stackedGraph:!0,div:"requestsChart",axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}}},getDashBoardFigures:function(a){var b=[],c=this;return Object.keys(this.figureDependedOptions).forEach(function(d){"clusterRequestsPerSecond"!==d&&(c.figureDependedOptions[d].div||a)&&b.push(d)}),b},getDefaultConfig:function(a){var b=this,c={digitsAfterDecimal:1,drawGapPoints:!0,fillGraph:!0,fillAlpha:.85,showLabelsOnHighlight:!1,strokeWidth:0,lineWidth:0,strokeBorderWidth:0,includeZero:!0,highlightCircleSize:2.5,labelsSeparateLines:!0,strokeBorderColor:"rgba(0,0,0,0)",interactionModel:{},maxNumberWidth:10,colors:[this.colors[0]],xAxisLabelWidth:"50",rightGap:15,showRangeSelector:!1,rangeSelectorHeight:50,rangeSelectorPlotStrokeColor:"#365300",rangeSelectorPlotFillColor:"",pixelsPerLabel:50,labelsKMG2:!0,dateWindow:[(new Date).getTime()-this.defaultFrame,(new Date).getTime()],axes:{x:{valueFormatter:function(a){return b.xAxisFormat(a)}},y:{ticker:Dygraph.numericLinearTicks}}};return this.figureDependedOptions[a]&&(c=this.mergeObjects(c,this.figureDependedOptions[a],["axes"]),c.div&&c.labels&&(c.colors=this.getColors(c.labels),c.labelsDiv=document.getElementById(c.div+"Legend"),c.legend="always",c.showLabelsOnHighlight=!0)),c},getDetailChartConfig:function(a){var b=_.extend(this.getDefaultConfig(a),{showRangeSelector:!0,interactionModel:null,showLabelsOnHighlight:!0,highlightCircleSize:2.5,legend:"always",labelsDiv:"div#detailLegend.dashboard-legend-inner"});return"pageFaults"===a&&(b.visibility=[!0,!0]),b.labels||(b.labels=["datetime",b.header],b.colors=this.getColors(b.labels)),b},getColors:function(a){var b;return b=this.colors.concat([]),b.slice(0,a.length-1)}}}(),function(){"use strict";window.arangoCollectionModel=Backbone.Model.extend({idAttribute:"name",urlRoot:arangoHelper.databaseUrl("/_api/collection"),defaults:{id:"",name:"",status:"",type:"",isSystem:!1,picture:"",locked:!1,desc:void 0},getProperties:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/collection/"+encodeURIComponent(this.get("id"))+"/properties"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},getFigures:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/figures"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(){a(!0)}})},getRevision:function(a,b){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/revision"),contentType:"application/json",processData:!1,success:function(c){a(!1,c,b)},error:function(){a(!0)}})},getIndex:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/index/?collection="+this.get("id")),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},createIndex:function(a,b){var c=this;$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/index?collection="+c.get("id")),headers:{"x-arango-async":"store"},data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a,d,e){e.getResponseHeader("x-arango-async-id")?(window.arangoHelper.addAardvarkJob({id:e.getResponseHeader("x-arango-async-id"),type:"index",desc:"Creating Index",collection:c.get("id")}),b(!1,a)):b(!0,a)},error:function(a){b(!0,a)}})},deleteIndex:function(a,b){var c=this;$.ajax({cache:!1,type:"DELETE",url:arangoHelper.databaseUrl("/_api/index/"+this.get("name")+"/"+encodeURIComponent(a)),headers:{"x-arango-async":"store"},success:function(a,d,e){e.getResponseHeader("x-arango-async-id")?(window.arangoHelper.addAardvarkJob({id:e.getResponseHeader("x-arango-async-id"),type:"index",desc:"Removing Index",collection:c.get("id")}),b(!1,a)):b(!0,a)},error:function(a){b(!0,a)}}),b()},truncateCollection:function(){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/truncate"),success:function(){arangoHelper.arangoNotification("Collection truncated.")},error:function(){arangoHelper.arangoError("Collection error.")}})},loadCollection:function(a){$.ajax({cache:!1, -type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/load"),success:function(){a(!1)},error:function(){a(!0)}}),a()},unloadCollection:function(a){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/unload?flush=true"),success:function(){a(!1)},error:function(){a(!0)}}),a()},renameCollection:function(a,b){var c=this;$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/rename"),data:JSON.stringify({name:a}),contentType:"application/json",processData:!1,success:function(){c.set("name",a),b(!1)},error:function(a){b(!0,a)}})},changeCollection:function(a,b,c,d){var e=!1;"true"===a?a=!0:"false"===a&&(a=!1);var f={waitForSync:a,journalSize:parseInt(b),indexBuckets:parseInt(c)};return $.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/properties"),data:JSON.stringify(f),contentType:"application/json",processData:!1,success:function(){d(!1)},error:function(a){d(!1,a)}}),e}})}(),window.DatabaseModel=Backbone.Model.extend({idAttribute:"name",initialize:function(){"use strict"},isNew:function(){"use strict";return!1},sync:function(a,b,c){"use strict";return"update"===a&&(a="create"),Backbone.sync(a,b,c)},url:arangoHelper.databaseUrl("/_api/database"),defaults:{}}),window.arangoDocumentModel=Backbone.Model.extend({initialize:function(){"use strict"},urlRoot:arangoHelper.databaseUrl("/_api/document"),defaults:{_id:"",_rev:"",_key:""},getSorted:function(){"use strict";var a=this,b=Object.keys(a.attributes).sort(function(a,b){var c=arangoHelper.isSystemAttribute(a),d=arangoHelper.isSystemAttribute(b);return c!==d?c?-1:1:b>a?-1:1}),c={};return _.each(b,function(b){c[b]=a.attributes[b]}),c}}),function(){"use strict";window.ArangoQuery=Backbone.Model.extend({urlRoot:arangoHelper.databaseUrl("/_api/user"),defaults:{name:"",type:"custom",value:""}})}(),window.Replication=Backbone.Model.extend({defaults:{state:{},server:{}},initialize:function(){}}),window.Statistics=Backbone.Model.extend({defaults:{},url:function(){"use strict";return"/_admin/statistics"}}),window.StatisticsDescription=Backbone.Model.extend({defaults:{figures:"",groups:""},url:function(){"use strict";return"/_admin/statistics-description"}}),window.Users=Backbone.Model.extend({defaults:{user:"",active:!1,extra:{}},idAttribute:"user",parse:function(a){return this.isNotNew=!0,a},isNew:function(){return!this.isNotNew},url:function(){return this.isNew()?arangoHelper.databaseUrl("/_api/user"):""!==this.get("user")?arangoHelper.databaseUrl("/_api/user/"+this.get("user")):arangoHelper.databaseUrl("/_api/user")},checkPassword:function(a,b){$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/user/"+this.get("user")),data:JSON.stringify({passwd:a}),contentType:"application/json",processData:!1,success:function(a){b(!1,a)},error:function(a){b(!0,a)}})},setPassword:function(a){$.ajax({cache:!1,type:"PATCH",url:arangoHelper.databaseUrl("/_api/user/"+this.get("user")),data:JSON.stringify({passwd:a}),contentType:"application/json",processData:!1})},setExtras:function(a,b,c){$.ajax({cache:!1,type:"PATCH",url:arangoHelper.databaseUrl("/_api/user/"+this.get("user")),data:JSON.stringify({extra:{name:a,img:b}}),contentType:"application/json",processData:!1,success:function(){c(!1)},error:function(){c(!0)}})}}),function(){"use strict";window.ClusterCoordinator=Backbone.Model.extend({defaults:{name:"",status:"ok",address:"",protocol:""},idAttribute:"name",forList:function(){return{name:this.get("name"),status:this.get("status"),url:this.get("url")}}})}(),function(){"use strict";window.ClusterServer=Backbone.Model.extend({defaults:{name:"",address:"",role:"",status:"ok"},idAttribute:"name",forList:function(){return{name:this.get("name"),address:this.get("address"),status:this.get("status")}}})}(),function(){"use strict";window.Coordinator=Backbone.Model.extend({defaults:{address:"",protocol:"",name:"",status:""}})}(),function(){"use strict";window.CurrentDatabase=Backbone.Model.extend({url:arangoHelper.databaseUrl("/_api/database/current",frontendConfig.db),parse:function(a){return a.result}})}(),function(){"use strict";var a=function(a,b,c,d,e,f){var g={contentType:"application/json",processData:!1,type:c};b=b||function(){},f=_.extend({mount:a.encodedMount()},f);var h=_.reduce(f,function(a,b,c){return a+encodeURIComponent(c)+"="+encodeURIComponent(b)+"&"},"?");g.url=arangoHelper.databaseUrl("/_admin/aardvark/foxxes"+(d?"/"+d:"")+h.slice(0,h.length-1)),void 0!==e&&(g.data=JSON.stringify(e)),$.ajax(g).then(function(a){b(null,a)},function(a){window.xhr=a,b(_.extend(a.status?new Error(a.responseJSON?a.responseJSON.errorMessage:a.responseText):new Error("Network Error"),{statusCode:a.status}))})};window.Foxx=Backbone.Model.extend({idAttribute:"mount",defaults:{author:"Unknown Author",name:"",version:"Unknown Version",description:"No description",license:"Unknown License",contributors:[],scripts:{},config:{},deps:{},git:"",system:!1,development:!1},isNew:function(){return!1},encodedMount:function(){return encodeURIComponent(this.get("mount"))},destroy:function(b,c){a(this,c,"DELETE",void 0,void 0,b)},isBroken:function(){return!1},needsAttention:function(){return this.isBroken()||this.needsConfiguration()||this.hasUnconfiguredDependencies()},needsConfiguration:function(){return _.any(this.get("config"),function(a){return void 0===a.current&&a.required!==!1})},hasUnconfiguredDependencies:function(){return _.any(this.get("deps"),function(a){return void 0===a.current&&a.definition.required!==!1})},getConfiguration:function(b){a(this,function(a,c){a||this.set("config",c),"function"==typeof b&&b(a,c)}.bind(this),"GET","config")},setConfiguration:function(b,c){a(this,c,"PATCH","config",b)},getDependencies:function(b){a(this,function(a,c){a||this.set("deps",c),"function"==typeof b&&b(a,c)}.bind(this),"GET","deps")},setDependencies:function(b,c){a(this,c,"PATCH","deps",b)},toggleDevelopment:function(b,c){a(this,function(a,d){a||this.set("development",b),"function"==typeof c&&c(a,d)}.bind(this),"PATCH","devel",b)},runScript:function(b,c,d){a(this,d,"POST","scripts/"+b,c)},runTests:function(b,c){a(this,function(a,b){"function"==typeof c&&c(a?a.responseJSON:a,b)}.bind(this),"POST","tests",b)},isSystem:function(){return this.get("system")},isDevelopment:function(){return this.get("development")},download:function(){window.open(arangoHelper.databaseUrl("/_admin/aardvark/foxxes/download/zip?mount="+this.encodedMount()))},fetchThumbnail:function(a){var b=new XMLHttpRequest;b.responseType="blob",b.onload=function(){this.thumbnailUrl=URL.createObjectURL(b.response),a()}.bind(this),b.onerror=a,b.open("GET","foxxes/thumbnail?mount="+this.encodedMount()),b.setRequestHeader("Authorization","bearer "+window.arangoHelper.getCurrentJwt()),b.send()}})}(),function(){"use strict";window.Graph=Backbone.Model.extend({idAttribute:"_key",urlRoot:arangoHelper.databaseUrl("/_api/gharial"),isNew:function(){return!this.get("_id")},parse:function(a){return a.graph||a},addEdgeDefinition:function(a){$.ajax({async:!1,type:"POST",url:this.urlRoot+"/"+this.get("_key")+"/edge",data:JSON.stringify(a)})},deleteEdgeDefinition:function(a){$.ajax({async:!1,type:"DELETE",url:this.urlRoot+"/"+this.get("_key")+"/edge/"+a})},modifyEdgeDefinition:function(a){$.ajax({async:!1,type:"PUT",url:this.urlRoot+"/"+this.get("_key")+"/edge/"+a.collection,data:JSON.stringify(a)})},addVertexCollection:function(a){$.ajax({async:!1,type:"POST",url:this.urlRoot+"/"+this.get("_key")+"/vertex",data:JSON.stringify({collection:a})})},deleteVertexCollection:function(a){$.ajax({async:!1,type:"DELETE",url:this.urlRoot+"/"+this.get("_key")+"/vertex/"+a})},defaults:{name:"",edgeDefinitions:[],orphanCollections:[]}})}(),function(){"use strict";window.newArangoLog=Backbone.Model.extend({defaults:{lid:"",level:"",timestamp:"",text:"",totalAmount:""},getLogStatus:function(){switch(this.get("level")){case 1:return"Error";case 2:return"Warning";case 3:return"Info";case 4:return"Debug";default:return"Unknown"}}})}(),function(){"use strict";window.Notification=Backbone.Model.extend({defaults:{title:"",date:0,content:"",priority:"",tags:"",seen:!1}})}(),function(){"use strict";window.queryManagementModel=Backbone.Model.extend({defaults:{id:"",query:"",started:"",runTime:""}})}(),function(){"use strict";window.workMonitorModel=Backbone.Model.extend({defaults:{name:"",number:"",status:"",type:""}})}(),function(){"use strict";window.AutomaticRetryCollection=Backbone.Collection.extend({_retryCount:0,checkRetries:function(){var a=this;return this.updateUrl(),this._retryCount>10?(window.setTimeout(function(){a._retryCount=0},1e4),window.App.clusterUnreachable(),!1):!0},successFullTry:function(){this._retryCount=0},failureTry:function(a,b,c){401===c.status?window.App.requestAuth():(window.App.clusterPlan.rotateCoordinator(),this._retryCount++,a())}})}(),function(){"use strict";window.PaginatedCollection=Backbone.Collection.extend({page:0,pagesize:10,totalAmount:0,getPage:function(){return this.page+1},setPage:function(a){return a>=this.getLastPageNumber()?void(this.page=this.getLastPageNumber()-1):1>a?void(this.page=0):void(this.page=a-1)},getLastPageNumber:function(){return Math.max(Math.ceil(this.totalAmount/this.pagesize),1)},getOffset:function(){return this.page*this.pagesize},getPageSize:function(){return this.pagesize},setPageSize:function(a){if("all"===a)this.pagesize="all";else try{a=parseInt(a,10),this.pagesize=a}catch(b){}},setToFirst:function(){this.page=0},setToLast:function(){this.setPage(this.getLastPageNumber())},setToPrev:function(){this.setPage(this.getPage()-1)},setToNext:function(){this.setPage(this.getPage()+1)},setTotal:function(a){this.totalAmount=a},getTotal:function(){return this.totalAmount},setTotalMinusOne:function(){this.totalAmount--}})}(),window.ClusterStatisticsCollection=Backbone.Collection.extend({model:window.Statistics,url:"/_admin/statistics",updateUrl:function(){this.url=window.App.getNewRoute(this.host)+this.url},initialize:function(a,b){this.host=b.host,window.App.registerForUpdate(this)}}),function(){"use strict";window.arangoCollections=Backbone.Collection.extend({url:arangoHelper.databaseUrl("/_api/collection"),model:arangoCollectionModel,searchOptions:{searchPhrase:null,includeSystem:!1,includeDocument:!0,includeEdge:!0,includeLoaded:!0,includeUnloaded:!0,sortBy:"name",sortOrder:1},translateStatus:function(a){switch(a){case 0:return"corrupted";case 1:return"new born collection";case 2:return"unloaded";case 3:return"loaded";case 4:return"unloading";case 5:return"deleted";case 6:return"loading";default:return}},translateTypePicture:function(a){var b="";switch(a){case"document":b+="fa-file-text-o";break;case"edge":b+="fa-share-alt";break;case"unknown":b+="fa-question";break;default:b+="fa-cogs"}return b},parse:function(a){var b=this;return _.each(a.result,function(a){a.isSystem=arangoHelper.isSystemCollection(a),a.type=arangoHelper.collectionType(a),a.status=b.translateStatus(a.status),a.picture=b.translateTypePicture(a.type)}),a.result},getPosition:function(a){var b,c=this.getFiltered(this.searchOptions),d=null,e=null;for(b=0;b0&&(d=c[b-1]),b0){var e,f=d.get("name").toLowerCase();for(e=0;ed?-1:1):0}),b},newCollection:function(a,b){var c={};c.name=a.collName,c.waitForSync=a.wfs,a.journalSize>0&&(c.journalSize=a.journalSize),c.isSystem=a.isSystem,c.type=parseInt(a.collType,10),a.shards&&(c.numberOfShards=a.shards,c.shardKeys=a.keys),a.replicationFactor&&(c.replicationFactor=JSON.parse(a.replicationFactor)),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/collection"),data:JSON.stringify(c),contentType:"application/json",processData:!1,success:function(a){b(!1,a)},error:function(a){b(!0,a)}})}})}(),function(){"use strict";window.ArangoDatabase=Backbone.Collection.extend({model:window.DatabaseModel,sortOptions:{desc:!1},url:arangoHelper.databaseUrl("/_api/database"),comparator:function(a,b){var c=a.get("name").toLowerCase(),d=b.get("name").toLowerCase();return this.sortOptions.desc===!0?d>c?1:c>d?-1:0:c>d?1:d>c?-1:0},parse:function(a){return a?_.map(a.result,function(a){return{name:a}}):void 0},initialize:function(){var a=this;this.fetch().done(function(){a.sort()})},setSortingDesc:function(a){this.sortOptions.desc=a},getDatabases:function(){var a=this;return this.fetch().done(function(){a.sort()}),this.models},getDatabasesForUser:function(a){$.ajax({type:"GET",cache:!1,url:this.url+"/user",contentType:"application/json",processData:!1,success:function(b){a(!1,b.result.sort())},error:function(){a(!0,[])}})},createDatabaseURL:function(a,b,c){var d=window.location,e=window.location.hash;b=b?"SSL"===b||"https:"===b?"https:":"http:":d.protocol,c=c||d.port;var f=b+"//"+window.location.hostname+":"+c+"/_db/"+encodeURIComponent(a)+"/_admin/aardvark/standalone.html";if(e){var g=e.split("/")[0];0===g.indexOf("#collection")&&(g="#collections"),0===g.indexOf("#service")&&(g="#services"),f+=g}return f},getCurrentDatabase:function(a){$.ajax({type:"GET",cache:!1,url:this.url+"/current",contentType:"application/json",processData:!1,success:function(b){200===b.code?a(!1,b.result.name):a(!1,b)},error:function(b){a(!0,b)}})},hasSystemAccess:function(a){var b=function(b,c){b?arangoHelper.arangoError("DB","Could not fetch databases"):a(!1,_.contains(c,"_system"))}.bind(this);this.getDatabasesForUser(b)}})}(),window.arangoDocument=Backbone.Collection.extend({url:"/_api/document/",model:arangoDocumentModel,collectionInfo:{},deleteEdge:function(a,b,c){this.deleteDocument(a,b,c)},deleteDocument:function(a,b,c){$.ajax({cache:!1,type:"DELETE",contentType:"application/json",url:arangoHelper.databaseUrl("/_api/document/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),success:function(){c(!1)},error:function(){c(!0)}})},addDocument:function(a,b){var c=this;c.createTypeDocument(a,b)},createTypeEdge:function(a,b,c,d,e){var f;f=d?JSON.stringify({_key:d,_from:b,_to:c}):JSON.stringify({_from:b,_to:c}),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/document?collection="+encodeURIComponent(a)),data:f,contentType:"application/json",processData:!1,success:function(a){e(!1,a)},error:function(a){e(!0,a)}})},createTypeDocument:function(a,b,c){var d;d=b?JSON.stringify({_key:b}):JSON.stringify({}),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/document?collection="+encodeURIComponent(a)),data:d,contentType:"application/json",processData:!1,success:function(a){c(!1,a._id)},error:function(a){c(!0,a._id)}})},getCollectionInfo:function(a,b,c){var d=this;$.ajax({cache:!1,type:"GET",url:arangoHelper.databaseUrl("/_api/collection/"+a+"?"+arangoHelper.getRandomToken()),contentType:"application/json",processData:!1,success:function(a){d.collectionInfo=a,b(!1,a,c)},error:function(a){b(!0,a,c)}})},getEdge:function(a,b,c){this.getDocument(a,b,c)},getDocument:function(a,b,c){var d=this;this.clearDocument(),$.ajax({cache:!1,type:"GET",url:arangoHelper.databaseUrl("/_api/document/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),contentType:"application/json",processData:!1,success:function(a){d.add(a),c(!1,a,"document")},error:function(a){d.add(!0,a)}})},saveEdge:function(a,b,c,d){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/edge/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),data:c,contentType:"application/json",processData:!1,success:function(a){d(!1,a)},error:function(a){d(!0,a)}})},saveDocument:function(a,b,c,d){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/document/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),data:c,contentType:"application/json",processData:!1,success:function(a){d(!1,a)},error:function(a){d(!0,a)}})},updateLocalDocument:function(a){this.clearDocument(),this.add(a)},clearDocument:function(){this.reset()}}),function(){"use strict";window.arangoDocuments=window.PaginatedCollection.extend({collectionID:1,filters:[],checkCursorTimer:void 0,MAX_SORT:12e3,lastQuery:{},sortAttribute:"",url:arangoHelper.databaseUrl("/_api/documents"),model:window.arangoDocumentModel,loadTotal:function(a){var b=this;$.ajax({cache:!1,type:"GET",url:arangoHelper.databaseUrl("/_api/collection/"+this.collectionID+"/count"),contentType:"application/json",processData:!1,success:function(c){b.setTotal(c.count),a(!1)},error:function(){a(!0)}})},setCollection:function(a){var b=function(a){a&&arangoHelper.arangoError("Documents","Could not fetch documents count")}.bind(this);this.resetFilter(),this.collectionID=a,this.setPage(1),this.loadTotal(b)},setSort:function(a){this.sortAttribute=a},getSort:function(){return this.sortAttribute},addFilter:function(a,b,c){this.filters.push({attr:a,op:b,val:c})},setFiltersForQuery:function(a){if(0===this.filters.length)return"";var b=" FILTER",c="",d=_.map(this.filters,function(b,d){return"LIKE"===b.op?(c=" "+b.op+"(x.`"+b.attr+"`, @param",c+=d,c+=")"):(c="IN"===b.op||"NOT IN"===b.op?" ":" x.`",c+=b.attr,c+="IN"===b.op||"NOT IN"===b.op?" ":"` ",c+=b.op,c+="IN"===b.op||"NOT IN"===b.op?" x.@param":" @param",c+=d),a["param"+d]=b.val,c});return b+d.join(" &&")},setPagesize:function(a){this.setPageSize(a)},resetFilter:function(){this.filters=[]},moveDocument:function(a,b,c,d){var e,f,g,h,i={"@collection":b,filterid:a};e="FOR x IN @@collection",e+=" FILTER x._key == @filterid",e+=" INSERT x IN ",e+=c,f="FOR x in @@collection",f+=" FILTER x._key == @filterid",f+=" REMOVE x IN @@collection",g={query:e,bindVars:i},h={query:f,bindVars:i},window.progressView.show(),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),data:JSON.stringify(g),contentType:"application/json",success:function(){$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),data:JSON.stringify(h),contentType:"application/json",success:function(){d&&d(),window.progressView.hide()},error:function(){window.progressView.hide(),arangoHelper.arangoError("Document error","Documents inserted, but could not be removed.")}})},error:function(){window.progressView.hide(),arangoHelper.arangoError("Document error","Could not move selected documents.")}})},getDocuments:function(a){var b,c,d,e,f=this;c={"@collection":this.collectionID,offset:this.getOffset(),count:this.getPageSize()},b="FOR x IN @@collection LET att = SLICE(ATTRIBUTES(x), 0, 25)",b+=this.setFiltersForQuery(c),this.getTotal()0&&(a+=" SORT x."+this.getSort()),a+=" RETURN x",b={query:a,bindVars:c}},uploadDocuments:function(a,b){$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/import?type=auto&collection="+encodeURIComponent(this.collectionID)+"&createCollection=false"),data:a,processData:!1,contentType:"json",dataType:"json",complete:function(a){if(4===a.readyState&&201===a.status)b(!1);else try{var c=JSON.parse(a.responseText);if(c.errors>0){var d="At least one error occurred during upload";b(!1,d)}}catch(e){console.log(e)}}})}})}(),function(){"use strict";window.ArangoLogs=window.PaginatedCollection.extend({upto:!1,loglevel:0,totalPages:0,parse:function(a){var b=[];return _.each(a.lid,function(c,d){b.push({level:a.level[d],lid:c,text:a.text[d],timestamp:a.timestamp[d],totalAmount:a.totalAmount})}),this.totalAmount=a.totalAmount,this.totalPages=Math.ceil(this.totalAmount/this.pagesize),b},initialize:function(a){a.upto===!0&&(this.upto=!0),this.loglevel=a.loglevel},model:window.newArangoLog,url:function(){var a,b,c,d;c=this.page*this.pagesize;var e=this.totalAmount-(this.page+1)*this.pagesize;return 0>e&&this.page===this.totalPages-1?(e=0,d=this.totalAmount%this.pagesize):d=this.pagesize,0===this.totalAmount&&(d=1),a=this.upto?"upto":"level",b="/_admin/log?"+a+"="+this.loglevel+"&size="+d+"&offset="+e,arangoHelper.databaseUrl(b)}})}(),function(){"use strict";window.ArangoQueries=Backbone.Collection.extend({initialize:function(a,b){var c=this;$.ajax("whoAmI?_="+Date.now(),{async:!0}).done(function(a){this.activeUser===!1?c.activeUser="root":c.activeUser=a.user})},url:arangoHelper.databaseUrl("/_api/user/"),model:ArangoQuery,activeUser:null,parse:function(a){var b,c=this;return this.activeUser===!1&&(this.activeUser="root"),_.each(a.result,function(a){if(a.user===c.activeUser)try{a.extra.queries&&(b=a.extra.queries)}catch(d){}}),b},saveCollectionQueries:function(a){if(0===this.activeUser)return!1;this.activeUser===!1&&(this.activeUser="root");var b=[];this.each(function(a){b.push({value:a.attributes.value,parameter:a.attributes.parameter,name:a.attributes.name})}),$.ajax({cache:!1,type:"PATCH",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(this.activeUser)),data:JSON.stringify({extra:{queries:b}}),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(){a(!0)}})},saveImportQueries:function(a,b){return 0===this.activeUser?!1:(window.progressView.show("Fetching documents..."),void $.ajax({cache:!1,type:"POST",url:"query/upload/"+encodeURIComponent(this.activeUser),data:a,contentType:"application/json",processData:!1,success:function(){window.progressView.hide(),arangoHelper.arangoNotification("Queries successfully imported."),b()},error:function(){window.progressView.hide(),arangoHelper.arangoError("Query error","queries could not be imported")}}))}})}(),window.ArangoReplication=Backbone.Collection.extend({model:window.Replication,url:"../api/user",getLogState:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/replication/logger-state"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},getApplyState:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/replication/applier-state"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})}}),window.StatisticsCollection=Backbone.Collection.extend({model:window.Statistics,url:"/_admin/statistics"}),window.StatisticsDescriptionCollection=Backbone.Collection.extend({model:window.StatisticsDescription,url:"/_admin/statistics-description",parse:function(a){return a}}),window.ArangoUsers=Backbone.Collection.extend({model:window.Users,activeUser:null,activeUserSettings:{query:{},shell:{},testing:!0},sortOptions:{desc:!1},url:frontendConfig.basePath+"/_api/user",comparator:function(a,b){var c=a.get("user").toLowerCase(),d=b.get("user").toLowerCase();return this.sortOptions.desc===!0?d>c?1:c>d?-1:0:c>d?1:d>c?-1:0},login:function(a,b,c){var d=this;$.ajax({url:arangoHelper.databaseUrl("/_open/auth"),method:"POST",data:JSON.stringify({username:a,password:b}),dataType:"json"}).success(function(a){arangoHelper.setCurrentJwt(a.jwt);var b=a.jwt.split(".");if(!b[1])throw new Error("Invalid JWT");if(!window.atob)throw new Error("base64 support missing in browser");var e=JSON.parse(atob(b[1]));d.activeUser=e.preferred_username,c(!1,d.activeUser)}).error(function(){arangoHelper.setCurrentJwt(null),d.activeUser=null,c(!0,null)})},setSortingDesc:function(a){this.sortOptions.desc=a},logout:function(){arangoHelper.setCurrentJwt(null),this.activeUser=null,this.reset(),window.App.navigate(""),window.location.reload()},setUserSettings:function(a,b){this.activeUserSettings.identifier=b},loadUserSettings:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:frontendConfig.basePath+"/_api/user/"+encodeURIComponent(b.activeUser),contentType:"application/json",processData:!1,success:function(c){b.activeUserSettings=c.extra,a(!1,c)},error:function(b){a(!0,b)}})},saveUserSettings:function(a){var b=this;$.ajax({cache:!1,type:"PUT",url:frontendConfig.basePath+"/_api/user/"+encodeURIComponent(b.activeUser),data:JSON.stringify({extra:b.activeUserSettings}),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},parse:function(a){var b=[];return _.each(a.result,function(a){b.push(a)}),b},whoAmI:function(a){return this.activeUser?void a(!1,this.activeUser):void $.ajax("whoAmI?_="+Date.now()).success(function(b){a(!1,b.user)}).error(function(b){a(!0,null)})}}),function(){"use strict";window.ClusterCoordinators=window.AutomaticRetryCollection.extend({model:window.ClusterCoordinator,url:arangoHelper.databaseUrl("/_admin/aardvark/cluster/Coordinators"),updateUrl:function(){this.url=window.App.getNewRoute("Coordinators")},initialize:function(){},statusClass:function(a){switch(a){case"ok":return"success";case"warning":return"warning";case"critical":return"danger";case"missing":return"inactive";default:return"danger"}},getStatuses:function(a,b){if(this.checkRetries()){var c=this;this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:c.failureTry.bind(c,c.getStatuses.bind(c,a,b))}).done(function(){c.successFullTry(),c.forEach(function(b){a(c.statusClass(b.get("status")),b.get("address"))}),b()})}},byAddress:function(a,b){if(this.checkRetries()){var c=this;this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:c.failureTry.bind(c,c.byAddress.bind(c,a,b))}).done(function(){c.successFullTry(),a=a||{},c.forEach(function(b){var c=b.get("address");c=c.split(":")[0],a[c]=a[c]||{},a[c].coords=a[c].coords||[],a[c].coords.push(b)}),b(a)})}},checkConnection:function(a){var b=this;this.checkRetries()&&this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:b.failureTry.bind(b,b.checkConnection.bind(b,a))}).done(function(){b.successFullTry(),a()})}})}(),function(){"use strict";window.ClusterServers=window.AutomaticRetryCollection.extend({model:window.ClusterServer,host:"",url:arangoHelper.databaseUrl("/_admin/aardvark/cluster/DBServers"),updateUrl:function(){this.url=window.App.getNewRoute(this.host)+this.url},initialize:function(a,b){this.host=b.host},statusClass:function(a){switch(a){case"ok":return"success";case"warning":return"warning";case"critical":return"danger";case"missing":return"inactive";default:return"danger"}},getStatuses:function(a){if(this.checkRetries()){var b=this,c=function(){b.successFullTry(),b._retryCount=0,b.forEach(function(c){a(b.statusClass(c.get("status")),c.get("address"))})};this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:b.failureTry.bind(b,b.getStatuses.bind(b,a))}).done(c)}},byAddress:function(a,b){if(this.checkRetries()){var c=this;this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:c.failureTry.bind(c,c.byAddress.bind(c,a,b))}).done(function(){c.successFullTry(),a=a||{},c.forEach(function(b){var c=b.get("address");c=c.split(":")[0],a[c]=a[c]||{},a[c].dbs=a[c].dbs||[],a[c].dbs.push(b)}),b(a)}).error(function(a){console.log("error"),console.log(a)})}},getList:function(){throw"Do not use"},getOverview:function(){throw"Do not use DbServer.getOverview"}})}(),function(){"use strict";window.CoordinatorCollection=Backbone.Collection.extend({model:window.Coordinator,url:arangoHelper.databaseUrl("/_admin/aardvark/cluster/Coordinators")})}(),function(){"use strict";window.FoxxCollection=Backbone.Collection.extend({model:window.Foxx,sortOptions:{desc:!1},url:arangoHelper.databaseUrl("/_admin/aardvark/foxxes"),comparator:function(a,b){var c,d;return this.sortOptions.desc===!0?(c=a.get("mount"),d=b.get("mount"),d>c?1:c>d?-1:0):(c=a.get("mount"),d=b.get("mount"),c>d?1:d>c?-1:0)},setSortingDesc:function(a){this.sortOptions.desc=a},installFromGithub:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/git?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})},installFromStore:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/store?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})},installFromZip:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/zip?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify({zipFile:a}),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})},generate:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/generate?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})}})}(),function(){"use strict";window.GraphCollection=Backbone.Collection.extend({model:window.Graph,sortOptions:{desc:!1},url:frontendConfig.basePath+"/_api/gharial",dropAndDeleteGraph:function(a,b){$.ajax({type:"DELETE",url:frontendConfig.basePath+"/_api/gharial/"+encodeURIComponent(a)+"?dropCollections=true",contentType:"application/json",processData:!0,success:function(){b(!0)},error:function(){b(!1)}})},comparator:function(a,b){var c=a.get("_key")||"",d=b.get("_key")||"";return c=c.toLowerCase(),d=d.toLowerCase(),this.sortOptions.desc===!0?d>c?1:c>d?-1:0:c>d?1:d>c?-1:0},setSortingDesc:function(a){this.sortOptions.desc=a},parse:function(a){return a.error?void 0:a.graphs}})}(),function(){"use strict";window.NotificationCollection=Backbone.Collection.extend({model:window.Notification,url:""})}(),function(){"use strict";window.QueryManagementActive=Backbone.Collection.extend({ +type:"text",id:"collapsed"}],function(){var a=$("#"+d+"expanded").attr("value"),c=$("#"+d+"collapsed").attr("value");b.changeTo({color:{type:"expand",expanded:a,collapsed:c}})})})},this.addControlOpticLabelAndColour=function(e){var f="control_node_labelandcolour",g=f+"_";uiComponentsHelper.createButton(a,"Configure Label",f,function(){modalDialogHelper.createModalChangeDialog("Change label attribute",g,[{type:"text",id:"label-attribute",text:"Vertex label attribute",value:b.getLabel()||""},{type:"decission",id:"samecolour",group:"colour",text:"Use this attribute for coloring, too",isDefault:b.getLabel()===b.getColor()},{type:"decission",id:"othercolour",group:"colour",text:"Use different attribute for coloring",isDefault:b.getLabel()!==b.getColor(),interior:[{type:"text",id:"colour-attribute",text:"Color attribute",value:b.getColor()||""}]}],function(){var a=$("#"+g+"label-attribute").attr("value"),e=$("#"+g+"colour-attribute").attr("value"),f=$("input[type='radio'][name='colour']:checked").attr("id");f===g+"samecolour"&&(e=a);var h={label:a,color:{type:"attribute",key:e}};d.applyLocalStorage(h),b.changeTo(h),void 0===c&&(c=d.createColourMappingList())})})},this.addControlOpticLabelAndColourList=function(e){var f="control_node_labelandcolourlist",g=f+"_";uiComponentsHelper.createButton(a,"Configure Label",f,function(){modalDialogHelper.createModalChangeDialog("Change label attribute",g,[{type:"extendable",id:"label",text:"Vertex label attribute",objects:b.getLabel()},{type:"decission",id:"samecolour",group:"colour",text:"Use this attribute for coloring, too",isDefault:b.getLabel()===b.getColor()},{type:"decission",id:"othercolour",group:"colour",text:"Use different attribute for coloring",isDefault:b.getLabel()!==b.getColor(),interior:[{type:"extendable",id:"colour",text:"Color attribute",objects:b.getColor()||""}]}],function(){var a=$("input[id^="+g+"label_]"),e=$("input[id^="+g+"colour_]"),f=$("input[type='radio'][name='colour']:checked").attr("id"),h=[],i=[];a.each(function(a,b){var c=$(b).val();""!==c&&h.push(c)}),e.each(function(a,b){var c=$(b).val();""!==c&&i.push(c)}),f===g+"samecolour"&&(i=h);var j={label:h,color:{type:"attribute",key:i}};d.applyLocalStorage(j),b.changeTo(j),void 0===c&&(c=d.createColourMappingList())})})},this.addAllOptics=function(){d.addControlOpticShapeNone(),d.addControlOpticShapeCircle(),d.addControlOpticShapeRect(),d.addControlOpticLabel(),d.addControlOpticSingleColour(),d.addControlOpticAttributeColour(),d.addControlOpticExpandColour()},this.addAllActions=function(){},this.addAll=function(){d.addAllOptics(),d.addAllActions()},this.createColourMappingList=function(){return void 0!==c?c:(c=document.createElement("div"),c.id="node_colour_list",e(b.getColourMapping()),b.setColourMappingListener(e),c)}}function GraphViewer(a,b,c,d,e){"use strict";if($("html").attr("xmlns:xlink","http://www.w3.org/1999/xlink"),void 0===a||void 0===a.append)throw"SVG has to be given and has to be selected using d3.select";if(void 0===b||0>=b)throw"A width greater 0 has to be given";if(void 0===c||0>=c)throw"A height greater 0 has to be given";if(void 0===d||void 0===d.type)throw"An adapter configuration has to be given";var f,g,h,i,j,k,l,m,n=this,o=[],p=[],q=function(a){if(!a)return a={},a.nodes=p,a.links=o,a.width=b,a.height=c,void(i=new ForceLayouter(a));switch(a.type.toLowerCase()){case"force":a.nodes=p,a.links=o,a.width=b,a.height=c,i=new ForceLayouter(a);break;default:throw"Sorry unknown layout type."}},r=function(a){f.setNodeLimit(a,n.start)},s=function(d){d&&(j=new ZoomManager(b,c,a,k,g,h,{},r))},t=function(a){var b=a.edgeShaper||{},c=a.nodeShaper||{},d=c.idfunc||void 0,e=a.zoom||!1;b.shape=b.shape||{type:EdgeShaper.shapes.ARROW},q(a.layouter),m=k.append("g"),h=new EdgeShaper(m,b),l=k.append("g"),g=new NodeShaper(l,c,d),i.setCombinedUpdateFunction(g,h),s(e)};switch(d.type.toLowerCase()){case"arango":d.width=b,d.height=c,f=new ArangoAdapter(p,o,this,d),f.setChildLimit(10);break;case"gharial":d.width=b,d.height=c,f=new GharialAdapter(p,o,this,d),f.setChildLimit(10);break;case"foxx":d.width=b,d.height=c,f=new FoxxAdapter(p,o,d.route,this,d);break;case"json":f=new JSONAdapter(d.path,p,o,this,b,c);break;case"preview":d.width=b,d.height=c,f=new PreviewAdapter(p,o,this,d);break;default:throw"Sorry unknown adapter type."}k=a.append("g"),t(e||{}),this.start=function(a){i.stop(),a&&(""!==$(".infoField").text()?_.each(p,function(a){_.each(f.randomNodes,function(b){a._id===b._id&&(a._expanded=!0)})}):_.each(p,function(a){a._expanded=!0})),g.drawNodes(p),h.drawEdges(o),i.start()},this.loadGraph=function(a,b){f.loadInitialNode(a,function(a){return a.errorCode?void b(a):(a._expanded=!0,n.start(),void(_.isFunction(b)&&b()))})},this.loadGraphWithRandomStart=function(a,b){f.loadRandomNode(function(b){return b.errorCode&&404===b.errorCode?void a(b):(b._expanded=!0,n.start(!0),void(_.isFunction(a)&&a()))},b)},this.loadGraphWithAdditionalNode=function(a,b,c){f.loadAdditionalNodeByAttributeValue(a,b,function(a){return a.errorCode?void c(a):(a._expanded=!0,n.start(),void(_.isFunction(c)&&c()))})},this.loadGraphWithAttributeValue=function(a,b,c){f.randomNodes=[],f.definedNodes=[],f.loadInitialNodeByAttributeValue(a,b,function(a){return a.errorCode?void c(a):(a._expanded=!0,n.start(),void(_.isFunction(c)&&c()))})},this.cleanUp=function(){g.resetColourMap(),h.resetColourMap()},this.changeWidth=function(a){i.changeWidth(a),j.changeWidth(a),f.setWidth(a)},this.dispatcherConfig={expand:{edges:o,nodes:p,startCallback:n.start,adapter:f,reshapeNodes:g.reshapeNodes},drag:{layouter:i},nodeEditor:{nodes:p,adapter:f},edgeEditor:{edges:o,adapter:f}},this.adapter=f,this.nodeShaper=g,this.edgeShaper=h,this.layouter=i,this.zoomManager=j}EdgeShaper.shapes=Object.freeze({NONE:0,ARROW:1}),NodeShaper.shapes=Object.freeze({NONE:0,CIRCLE:1,RECT:2,IMAGE:3});var modalDialogHelper=modalDialogHelper||{};!function(){"use strict";var a,b=function(a){$(document).bind("keypress.key13",function(b){b.which&&13===b.which&&$(a).click()})},c=function(){$(document).unbind("keypress.key13")},d=function(a,b,c,d,e){var f,g,h=function(){e(f)},i=modalDialogHelper.modalDivTemplate(a,b,c,h),j=document.createElement("tr"),k=document.createElement("th"),l=document.createElement("th"),m=document.createElement("th"),n=document.createElement("button"),o=1;f=function(){var a={};return _.each($("#"+c+"table tr:not(#first_row)"),function(b){var c=$(".keyCell input",b).val(),d=$(".valueCell input",b).val();a[c]=d}),a},i.appendChild(j),j.id="first_row",j.appendChild(k),k.className="keyCell",j.appendChild(l),l.className="valueCell",j.appendChild(m),m.className="actionCell",m.appendChild(n),n.id=c+"new",n.className="graphViewer-icon-button gv-icon-small add",g=function(a,b){var d,e,f,g=/^_(id|rev|key|from|to)/,h=document.createElement("tr"),j=document.createElement("th"),k=document.createElement("th"),l=document.createElement("th");g.test(b)||(i.appendChild(h),h.appendChild(k),k.className="keyCell",e=document.createElement("input"),e.type="text",e.id=c+b+"_key",e.value=b,k.appendChild(e),h.appendChild(l),l.className="valueCell",f=document.createElement("input"),f.type="text",f.id=c+b+"_value","object"==typeof a?f.value=JSON.stringify(a):f.value=a,l.appendChild(f),h.appendChild(j),j.className="actionCell",d=document.createElement("button"),d.id=c+b+"_delete",d.className="graphViewer-icon-button gv-icon-small delete",j.appendChild(d),d.onclick=function(){i.removeChild(h)})},n.onclick=function(){g("","new_"+o),o++},_.each(d,g),$("#"+c+"modal").modal("show")},e=function(a,b,c,d,e){var f=modalDialogHelper.modalDivTemplate(a,b,c,e),g=document.createElement("tr"),h=document.createElement("th"),i=document.createElement("pre");f.appendChild(g),g.appendChild(h),h.appendChild(i),i.className="gv-object-view",i.innerHTML=JSON.stringify(d,null,2),$("#"+c+"modal").modal("show")},f=function(a,b){var c=document.createElement("input");return c.type="text",c.id=a,c.value=b,c},g=function(a,b){var c=document.createElement("input");return c.type="checkbox",c.id=a,c.checked=b,c},h=function(a,b,c){var d=document.createElement("select");return d.id=a,_.each(_.sortBy(b,function(a){return a.toLowerCase()}),function(a){var b=document.createElement("option");b.value=a,b.selected=a===c,b.appendChild(document.createTextNode(a)),d.appendChild(b)}),d},i=function(a){var b=$(".decission_"+a),c=$("input[type='radio'][name='"+a+"']:checked").attr("id");b.each(function(){$(this).attr("decider")===c?$(this).css("display",""):$(this).css("display","none")})},j=function(b,c,d,e,f,g,h,j){var k=document.createElement("input"),l=b+c,m=document.createElement("label"),n=document.createElement("tbody");k.id=l,k.type="radio",k.name=d,k.className="gv-radio-button",m.className="radio",h.appendChild(m),m.appendChild(k),m.appendChild(document.createTextNode(e)),j.appendChild(n),$(n).toggleClass("decission_"+d,!0),$(n).attr("decider",l),_.each(g,function(c){a(n,b,c)}),f?k.checked=!0:k.checked=!1,m.onclick=function(a){i(d),a.stopPropagation()},i(d)},k=function(a,b,c,d,e,f){var g,h=[],i=a+b,j=1,k=document.createElement("th"),l=document.createElement("button"),m=document.createElement("input"),n=function(a){j++;var c,d=document.createElement("tr"),g=document.createElement("th"),k=document.createElement("th"),l=document.createElement("th"),m=document.createElement("input"),n=document.createElement("button");m.type="text",m.id=i+"_"+j,m.value=a||"",c=0===h.length?$(f):$(h[h.length-1]),c.after(d),d.appendChild(g),g.className="collectionTh capitalize",g.appendChild(document.createTextNode(b+" "+j+":")),d.appendChild(k),k.className="collectionTh",k.appendChild(m),n.id=i+"_"+j+"_remove",n.className="graphViewer-icon-button gv-icon-small delete",n.onclick=function(){e.removeChild(d),h.splice(h.indexOf(d),1)},l.appendChild(n),d.appendChild(l),h.push(d)};for(m.type="text",m.id=i+"_1",d.appendChild(m),k.appendChild(l),f.appendChild(k),l.onclick=function(){n()},l.id=i+"_addLine",l.className="graphViewer-icon-button gv-icon-small add","string"==typeof c&&c.length>0&&(c=[c]),c.length>0&&(m.value=c[0]),g=1;g'+c+""),a.disabled||$("#subNavigationBar .bottom").children().last().bind("click",function(){window.App.navigate(a.route,{trigger:!0})})})},buildNodeSubNav:function(a,b,c){var d={Dashboard:{route:"#node/"+encodeURIComponent(a)},Logs:{route:"#nLogs/"+encodeURIComponent(a),disabled:!0}};d[b].active=!0,d[c].disabled=!0,this.buildSubNavBar(d)},scaleability:void 0,buildNodesSubNav:function(a){if(void 0===a&&(a="coordinator"),void 0===this.scaleability){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(c){null!==c.numberOfCoordinators&&null!==c.numberOfDBServers?(b.scaleability=!0,b.buildNodesSubNav(a)):b.scaleability=!1}})}var c={Coordinators:{route:"#cNodes"},DBServers:{route:"#dNodes"}};c.Scale={route:"#sNodes",disabled:!0},"coordinator"===a?c.Coordinators.active=!0:"scale"===a?this.scaleability===!0?c.Scale.active=!0:window.App.navigate("#nodes",{trigger:!0}):c.DBServers.active=!0,this.scaleability===!0&&(c.Scale.disabled=!1),this.buildSubNavBar(c)},buildCollectionSubNav:function(a,b){var c="#collection/"+encodeURIComponent(a),d={Content:{route:c+"/documents/1"},Indices:{route:"#cIndices/"+encodeURIComponent(a)},Info:{route:"#cInfo/"+encodeURIComponent(a)},Settings:{route:"#cSettings/"+encodeURIComponent(a)}};d[b].active=!0,this.buildSubNavBar(d)},enableKeyboardHotkeys:function(a){var b=window.arangoHelper.hotkeysFunctions;a===!0&&($(document).on("keydown",null,"j",b.scrollDown),$(document).on("keydown",null,"k",b.scrollUp))},databaseAllowed:function(a){var b=function(b,c){b?arangoHelper.arangoError("",""):$.ajax({type:"GET",cache:!1,url:this.databaseUrl("/_api/database/",c),contentType:"application/json",processData:!1,success:function(){a(!1,!0)},error:function(){a(!0,!1)}})}.bind(this);this.currentDatabase(b)},arangoNotification:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"success"})},arangoError:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"error"})},arangoWarning:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"warning"})},hideArangoNotifications:function(){$.noty.clearQueue(),$.noty.closeAll()},openDocEditor:function(a,b,c){var d=a.split("/"),e=this,f=new window.DocumentView({collection:window.App.arangoDocumentStore});f.breadcrumb=function(){},f.colid=d[0],f.docid=d[1],f.el=".arangoFrame .innerDiv",f.render(),f.setType(b),$(".arangoFrame .headerBar").remove(),$(".arangoFrame .outerDiv").prepend(''),$(".arangoFrame .outerDiv").click(function(){e.closeDocEditor()}),$(".arangoFrame .innerDiv").click(function(a){a.stopPropagation()}),$(".fa-times").click(function(){e.closeDocEditor()}),$(".arangoFrame").show(),f.customView=!0,f.customDeleteFunction=function(){window.modalView.hide(),$(".arangoFrame").hide()},$(".arangoFrame #deleteDocumentButton").click(function(){f.deleteDocumentModal()}),$(".arangoFrame #saveDocumentButton").click(function(){f.saveDocument()}),$(".arangoFrame #deleteDocumentButton").css("display","none")},closeDocEditor:function(){$(".arangoFrame .outerDiv .fa-times").remove(),$(".arangoFrame").hide()},addAardvarkJob:function(a,b){$.ajax({cache:!1,type:"POST",url:this.databaseUrl("/_admin/aardvark/job"),data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){b&&b(!1,a)},error:function(a){b&&b(!0,a)}})},deleteAardvarkJob:function(a,b){$.ajax({cache:!1,type:"DELETE",url:this.databaseUrl("/_admin/aardvark/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a){b&&b(!1,a)},error:function(a){b&&b(!0,a)}})},deleteAllAardvarkJobs:function(a){$.ajax({cache:!1,type:"DELETE",url:this.databaseUrl("/_admin/aardvark/job"),contentType:"application/json",processData:!1,success:function(b){a&&a(!1,b)},error:function(b){a&&a(!0,b)}})},getAardvarkJobs:function(a){$.ajax({cache:!1,type:"GET",url:this.databaseUrl("/_admin/aardvark/job"),contentType:"application/json",processData:!1,success:function(b){a&&a(!1,b)},error:function(b){console.log("error"),a&&a(!0,b)}})},getPendingJobs:function(a){$.ajax({cache:!1,type:"GET",url:this.databaseUrl("/_api/job/pending"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},syncAndReturnUninishedAardvarkJobs:function(a,b){var c=function(c,d){if(c)b(!0);else{var e=function(c,e){if(c)arangoHelper.arangoError("","");else{var f=[];e.length>0?_.each(d,function(b){if(b.type===a||void 0===b.type){var c=!1;_.each(e,function(a){b.id===a&&(c=!0)}),c?f.push({collection:b.collection,id:b.id,type:b.type,desc:b.desc}):window.arangoHelper.deleteAardvarkJob(b.id)}}):d.length>0&&this.deleteAllAardvarkJobs(),b(!1,f)}}.bind(this);this.getPendingJobs(e)}}.bind(this);this.getAardvarkJobs(c)},getRandomToken:function(){return Math.round((new Date).getTime())},isSystemAttribute:function(a){var b=this.systemAttributes();return b[a]},isSystemCollection:function(a){return"_"===a.name.substr(0,1)},setDocumentStore:function(a){this.arangoDocumentStore=a},collectionApiType:function(a,b,c){if(b||void 0===this.CollectionTypes[a]){var d=function(b,c,d){b?arangoHelper.arangoError("Error","Could not detect collection type"):(this.CollectionTypes[a]=c.type,3===this.CollectionTypes[a]?d(!1,"edge"):d(!1,"document"))}.bind(this);this.arangoDocumentStore.getCollectionInfo(a,d,c)}else c(!1,this.CollectionTypes[a])},collectionType:function(a){if(!a||""===a.name)return"-";var b;return b=2===a.type?"document":3===a.type?"edge":"unknown",this.isSystemCollection(a)&&(b+=" (system)"),b},formatDT:function(a){var b=function(a){return 10>a?"0"+a:a};return a.getUTCFullYear()+"-"+b(a.getUTCMonth()+1)+"-"+b(a.getUTCDate())+" "+b(a.getUTCHours())+":"+b(a.getUTCMinutes())+":"+b(a.getUTCSeconds())},escapeHtml:function(a){return String(a).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},backendUrl:function(a){return frontendConfig.basePath+a},databaseUrl:function(a,b){if("/_db/"===a.substr(0,5))throw new Error("Calling databaseUrl with a databased url ("+a+") doesn't make any sense");return b||(b="_system",frontendConfig.db&&(b=frontendConfig.db)),this.backendUrl("/_db/"+encodeURIComponent(b)+a)}}}(),function(){"use strict";if(!window.hasOwnProperty("TEST_BUILD")){var a=function(){var a={};return a.createTemplate=function(a){var b=$("#"+a.replace(".","\\.")).html();return{render:function(a){var c=_.template(b);return c=c(a)}}},a};window.templateEngine=new a}}(),function(){"use strict";window.dygraphConfig={defaultFrame:12e5,zeropad:function(a){return 10>a?"0"+a:a},xAxisFormat:function(a){if(-1===a)return"";var b=new Date(a);return this.zeropad(b.getHours())+":"+this.zeropad(b.getMinutes())+":"+this.zeropad(b.getSeconds())},mergeObjects:function(a,b,c){c||(c=[]);var d,e={};return c.forEach(function(c){var d=a[c],f=b[c];void 0===d&&(d={}),void 0===f&&(f={}),e[c]=_.extend(d,f)}),d=_.extend(a,b),Object.keys(e).forEach(function(a){d[a]=e[a]}),d},mapStatToFigure:{residentSize:["times","residentSizePercent"],pageFaults:["times","majorPageFaultsPerSecond","minorPageFaultsPerSecond"],systemUserTime:["times","systemTimePerSecond","userTimePerSecond"],totalTime:["times","avgQueueTime","avgRequestTime","avgIoTime"],dataTransfer:["times","bytesSentPerSecond","bytesReceivedPerSecond"],requests:["times","getsPerSecond","putsPerSecond","postsPerSecond","deletesPerSecond","patchesPerSecond","headsPerSecond","optionsPerSecond","othersPerSecond"]},colors:["rgb(95, 194, 135)","rgb(238, 190, 77)","#81ccd8","#7ca530","#3c3c3c","#aa90bd","#e1811d","#c7d4b2","#d0b2d4"],figureDependedOptions:{clusterRequestsPerSecond:{showLabelsOnHighlight:!0,title:"",header:"Cluster Requests per Second",stackedGraph:!0,div:"lineGraphLegend",labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}},residentSize:{header:"Memory",axes:{y:{labelsKMG2:!1,axisLabelFormatter:function(a){return parseFloat(100*a.toPrecision(3))+"%"},valueFormatter:function(a){return parseFloat(100*a.toPrecision(3))+"%"}}}},pageFaults:{header:"Page Faults",visibility:[!0,!1],labels:["datetime","Major Page","Minor Page"],div:"pageFaultsChart",labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}},systemUserTime:{div:"systemUserTimeChart",header:"System and User Time",labels:["datetime","System Time","User Time"],stackedGraph:!0,labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}},totalTime:{div:"totalTimeChart",header:"Total Time",labels:["datetime","Queue","Computation","I/O"],labelsKMG2:!1,axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}},stackedGraph:!0},dataTransfer:{header:"Data Transfer",labels:["datetime","Bytes sent","Bytes received"],stackedGraph:!0,div:"dataTransferChart"},requests:{header:"Requests",labels:["datetime","Reads","Writes"],stackedGraph:!0,div:"requestsChart",axes:{y:{valueFormatter:function(a){return parseFloat(a.toPrecision(3))},axisLabelFormatter:function(a){return 0===a?0:parseFloat(a.toPrecision(3))}}}}},getDashBoardFigures:function(a){var b=[],c=this;return Object.keys(this.figureDependedOptions).forEach(function(d){"clusterRequestsPerSecond"!==d&&(c.figureDependedOptions[d].div||a)&&b.push(d)}),b},getDefaultConfig:function(a){var b=this,c={digitsAfterDecimal:1,drawGapPoints:!0,fillGraph:!0,fillAlpha:.85,showLabelsOnHighlight:!1,strokeWidth:0,lineWidth:0,strokeBorderWidth:0,includeZero:!0,highlightCircleSize:2.5,labelsSeparateLines:!0,strokeBorderColor:"rgba(0,0,0,0)",interactionModel:{},maxNumberWidth:10,colors:[this.colors[0]],xAxisLabelWidth:"50",rightGap:15,showRangeSelector:!1,rangeSelectorHeight:50,rangeSelectorPlotStrokeColor:"#365300",rangeSelectorPlotFillColor:"",pixelsPerLabel:50,labelsKMG2:!0,dateWindow:[(new Date).getTime()-this.defaultFrame,(new Date).getTime()],axes:{x:{valueFormatter:function(a){return b.xAxisFormat(a)}},y:{ticker:Dygraph.numericLinearTicks}}};return this.figureDependedOptions[a]&&(c=this.mergeObjects(c,this.figureDependedOptions[a],["axes"]),c.div&&c.labels&&(c.colors=this.getColors(c.labels),c.labelsDiv=document.getElementById(c.div+"Legend"),c.legend="always",c.showLabelsOnHighlight=!0)),c},getDetailChartConfig:function(a){var b=_.extend(this.getDefaultConfig(a),{showRangeSelector:!0,interactionModel:null,showLabelsOnHighlight:!0,highlightCircleSize:2.5,legend:"always",labelsDiv:"div#detailLegend.dashboard-legend-inner"});return"pageFaults"===a&&(b.visibility=[!0,!0]),b.labels||(b.labels=["datetime",b.header],b.colors=this.getColors(b.labels)),b},getColors:function(a){var b;return b=this.colors.concat([]),b.slice(0,a.length-1)}}}(),function(){"use strict";window.arangoCollectionModel=Backbone.Model.extend({idAttribute:"name",urlRoot:arangoHelper.databaseUrl("/_api/collection"),defaults:{id:"",name:"",status:"",type:"",isSystem:!1,picture:"",locked:!1,desc:void 0},getProperties:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/collection/"+encodeURIComponent(this.get("id"))+"/properties"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},getFigures:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/figures"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(){a(!0)}})},getRevision:function(a,b){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/revision"),contentType:"application/json",processData:!1,success:function(c){a(!1,c,b)},error:function(){a(!0)}})},getIndex:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/index/?collection="+this.get("id")),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},createIndex:function(a,b){var c=this;$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/index?collection="+c.get("id")),headers:{"x-arango-async":"store"},data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a,d,e){e.getResponseHeader("x-arango-async-id")?(window.arangoHelper.addAardvarkJob({id:e.getResponseHeader("x-arango-async-id"),type:"index",desc:"Creating Index",collection:c.get("id")}),b(!1,a)):b(!0,a)},error:function(a){b(!0,a)}})},deleteIndex:function(a,b){var c=this;$.ajax({cache:!1,type:"DELETE",url:arangoHelper.databaseUrl("/_api/index/"+this.get("name")+"/"+encodeURIComponent(a)),headers:{"x-arango-async":"store"},success:function(a,d,e){e.getResponseHeader("x-arango-async-id")?(window.arangoHelper.addAardvarkJob({id:e.getResponseHeader("x-arango-async-id"),type:"index",desc:"Removing Index",collection:c.get("id")}),b(!1,a)):b(!0,a)},error:function(a){b(!0,a)}}),b()},truncateCollection:function(){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/truncate"),success:function(){arangoHelper.arangoNotification("Collection truncated.")},error:function(){arangoHelper.arangoError("Collection error.")}})},loadCollection:function(a){ +$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/load"),success:function(){a(!1)},error:function(){a(!0)}}),a()},unloadCollection:function(a){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/unload?flush=true"),success:function(){a(!1)},error:function(){a(!0)}}),a()},renameCollection:function(a,b){var c=this;$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/rename"),data:JSON.stringify({name:a}),contentType:"application/json",processData:!1,success:function(){c.set("name",a),b(!1)},error:function(a){b(!0,a)}})},changeCollection:function(a,b,c,d){var e=!1;"true"===a?a=!0:"false"===a&&(a=!1);var f={waitForSync:a,journalSize:parseInt(b),indexBuckets:parseInt(c)};return $.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/collection/"+this.get("id")+"/properties"),data:JSON.stringify(f),contentType:"application/json",processData:!1,success:function(){d(!1)},error:function(a){d(!1,a)}}),e}})}(),window.DatabaseModel=Backbone.Model.extend({idAttribute:"name",initialize:function(){"use strict"},isNew:function(){"use strict";return!1},sync:function(a,b,c){"use strict";return"update"===a&&(a="create"),Backbone.sync(a,b,c)},url:arangoHelper.databaseUrl("/_api/database"),defaults:{}}),window.arangoDocumentModel=Backbone.Model.extend({initialize:function(){"use strict"},urlRoot:arangoHelper.databaseUrl("/_api/document"),defaults:{_id:"",_rev:"",_key:""},getSorted:function(){"use strict";var a=this,b=Object.keys(a.attributes).sort(function(a,b){var c=arangoHelper.isSystemAttribute(a),d=arangoHelper.isSystemAttribute(b);return c!==d?c?-1:1:b>a?-1:1}),c={};return _.each(b,function(b){c[b]=a.attributes[b]}),c}}),function(){"use strict";window.ArangoQuery=Backbone.Model.extend({urlRoot:arangoHelper.databaseUrl("/_api/user"),defaults:{name:"",type:"custom",value:""}})}(),window.Replication=Backbone.Model.extend({defaults:{state:{},server:{}},initialize:function(){}}),window.Statistics=Backbone.Model.extend({defaults:{},url:function(){"use strict";return"/_admin/statistics"}}),window.StatisticsDescription=Backbone.Model.extend({defaults:{figures:"",groups:""},url:function(){"use strict";return"/_admin/statistics-description"}}),window.Users=Backbone.Model.extend({defaults:{user:"",active:!1,extra:{}},idAttribute:"user",parse:function(a){return this.isNotNew=!0,a},isNew:function(){return!this.isNotNew},url:function(){return this.isNew()?arangoHelper.databaseUrl("/_api/user"):""!==this.get("user")?arangoHelper.databaseUrl("/_api/user/"+this.get("user")):arangoHelper.databaseUrl("/_api/user")},checkPassword:function(a,b){$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/user/"+this.get("user")),data:JSON.stringify({passwd:a}),contentType:"application/json",processData:!1,success:function(a){b(!1,a)},error:function(a){b(!0,a)}})},setPassword:function(a){$.ajax({cache:!1,type:"PATCH",url:arangoHelper.databaseUrl("/_api/user/"+this.get("user")),data:JSON.stringify({passwd:a}),contentType:"application/json",processData:!1})},setExtras:function(a,b,c){$.ajax({cache:!1,type:"PATCH",url:arangoHelper.databaseUrl("/_api/user/"+this.get("user")),data:JSON.stringify({extra:{name:a,img:b}}),contentType:"application/json",processData:!1,success:function(){c(!1)},error:function(){c(!0)}})}}),function(){"use strict";window.ClusterCoordinator=Backbone.Model.extend({defaults:{name:"",status:"ok",address:"",protocol:""},idAttribute:"name",forList:function(){return{name:this.get("name"),status:this.get("status"),url:this.get("url")}}})}(),function(){"use strict";window.ClusterServer=Backbone.Model.extend({defaults:{name:"",address:"",role:"",status:"ok"},idAttribute:"name",forList:function(){return{name:this.get("name"),address:this.get("address"),status:this.get("status")}}})}(),function(){"use strict";window.Coordinator=Backbone.Model.extend({defaults:{address:"",protocol:"",name:"",status:""}})}(),function(){"use strict";window.CurrentDatabase=Backbone.Model.extend({url:arangoHelper.databaseUrl("/_api/database/current",frontendConfig.db),parse:function(a){return a.result}})}(),function(){"use strict";var a=function(a,b,c,d,e,f){var g={contentType:"application/json",processData:!1,type:c};b=b||function(){},f=_.extend({mount:a.encodedMount()},f);var h=_.reduce(f,function(a,b,c){return a+encodeURIComponent(c)+"="+encodeURIComponent(b)+"&"},"?");g.url=arangoHelper.databaseUrl("/_admin/aardvark/foxxes"+(d?"/"+d:"")+h.slice(0,h.length-1)),void 0!==e&&(g.data=JSON.stringify(e)),$.ajax(g).then(function(a){b(null,a)},function(a){window.xhr=a,b(_.extend(a.status?new Error(a.responseJSON?a.responseJSON.errorMessage:a.responseText):new Error("Network Error"),{statusCode:a.status}))})};window.Foxx=Backbone.Model.extend({idAttribute:"mount",defaults:{author:"Unknown Author",name:"",version:"Unknown Version",description:"No description",license:"Unknown License",contributors:[],scripts:{},config:{},deps:{},git:"",system:!1,development:!1},isNew:function(){return!1},encodedMount:function(){return encodeURIComponent(this.get("mount"))},destroy:function(b,c){a(this,c,"DELETE",void 0,void 0,b)},isBroken:function(){return!1},needsAttention:function(){return this.isBroken()||this.needsConfiguration()||this.hasUnconfiguredDependencies()},needsConfiguration:function(){return _.any(this.get("config"),function(a){return void 0===a.current&&a.required!==!1})},hasUnconfiguredDependencies:function(){return _.any(this.get("deps"),function(a){return void 0===a.current&&a.definition.required!==!1})},getConfiguration:function(b){a(this,function(a,c){a||this.set("config",c),"function"==typeof b&&b(a,c)}.bind(this),"GET","config")},setConfiguration:function(b,c){a(this,c,"PATCH","config",b)},getDependencies:function(b){a(this,function(a,c){a||this.set("deps",c),"function"==typeof b&&b(a,c)}.bind(this),"GET","deps")},setDependencies:function(b,c){a(this,c,"PATCH","deps",b)},toggleDevelopment:function(b,c){a(this,function(a,d){a||this.set("development",b),"function"==typeof c&&c(a,d)}.bind(this),"PATCH","devel",b)},runScript:function(b,c,d){a(this,d,"POST","scripts/"+b,c)},runTests:function(b,c){a(this,function(a,b){"function"==typeof c&&c(a?a.responseJSON:a,b)}.bind(this),"POST","tests",b)},isSystem:function(){return this.get("system")},isDevelopment:function(){return this.get("development")},download:function(){window.open(arangoHelper.databaseUrl("/_admin/aardvark/foxxes/download/zip?mount="+this.encodedMount()))},fetchThumbnail:function(a){var b=new XMLHttpRequest;b.responseType="blob",b.onload=function(){this.thumbnailUrl=URL.createObjectURL(b.response),a()}.bind(this),b.onerror=a,b.open("GET","foxxes/thumbnail?mount="+this.encodedMount()),b.setRequestHeader("Authorization","bearer "+window.arangoHelper.getCurrentJwt()),b.send()}})}(),function(){"use strict";window.Graph=Backbone.Model.extend({idAttribute:"_key",urlRoot:arangoHelper.databaseUrl("/_api/gharial"),isNew:function(){return!this.get("_id")},parse:function(a){return a.graph||a},addEdgeDefinition:function(a){$.ajax({async:!1,type:"POST",url:this.urlRoot+"/"+this.get("_key")+"/edge",data:JSON.stringify(a)})},deleteEdgeDefinition:function(a){$.ajax({async:!1,type:"DELETE",url:this.urlRoot+"/"+this.get("_key")+"/edge/"+a})},modifyEdgeDefinition:function(a){$.ajax({async:!1,type:"PUT",url:this.urlRoot+"/"+this.get("_key")+"/edge/"+a.collection,data:JSON.stringify(a)})},addVertexCollection:function(a){$.ajax({async:!1,type:"POST",url:this.urlRoot+"/"+this.get("_key")+"/vertex",data:JSON.stringify({collection:a})})},deleteVertexCollection:function(a){$.ajax({async:!1,type:"DELETE",url:this.urlRoot+"/"+this.get("_key")+"/vertex/"+a})},defaults:{name:"",edgeDefinitions:[],orphanCollections:[]}})}(),function(){"use strict";window.newArangoLog=Backbone.Model.extend({defaults:{lid:"",level:"",timestamp:"",text:"",totalAmount:""},getLogStatus:function(){switch(this.get("level")){case 1:return"Error";case 2:return"Warning";case 3:return"Info";case 4:return"Debug";default:return"Unknown"}}})}(),function(){"use strict";window.Notification=Backbone.Model.extend({defaults:{title:"",date:0,content:"",priority:"",tags:"",seen:!1}})}(),function(){"use strict";window.queryManagementModel=Backbone.Model.extend({defaults:{id:"",query:"",started:"",runTime:""}})}(),function(){"use strict";window.workMonitorModel=Backbone.Model.extend({defaults:{name:"",number:"",status:"",type:""}})}(),function(){"use strict";window.AutomaticRetryCollection=Backbone.Collection.extend({_retryCount:0,checkRetries:function(){var a=this;return this.updateUrl(),this._retryCount>10?(window.setTimeout(function(){a._retryCount=0},1e4),window.App.clusterUnreachable(),!1):!0},successFullTry:function(){this._retryCount=0},failureTry:function(a,b,c){401===c.status?window.App.requestAuth():(window.App.clusterPlan.rotateCoordinator(),this._retryCount++,a())}})}(),function(){"use strict";window.PaginatedCollection=Backbone.Collection.extend({page:0,pagesize:10,totalAmount:0,getPage:function(){return this.page+1},setPage:function(a){return a>=this.getLastPageNumber()?void(this.page=this.getLastPageNumber()-1):1>a?void(this.page=0):void(this.page=a-1)},getLastPageNumber:function(){return Math.max(Math.ceil(this.totalAmount/this.pagesize),1)},getOffset:function(){return this.page*this.pagesize},getPageSize:function(){return this.pagesize},setPageSize:function(a){if("all"===a)this.pagesize="all";else try{a=parseInt(a,10),this.pagesize=a}catch(b){}},setToFirst:function(){this.page=0},setToLast:function(){this.setPage(this.getLastPageNumber())},setToPrev:function(){this.setPage(this.getPage()-1)},setToNext:function(){this.setPage(this.getPage()+1)},setTotal:function(a){this.totalAmount=a},getTotal:function(){return this.totalAmount},setTotalMinusOne:function(){this.totalAmount--}})}(),window.ClusterStatisticsCollection=Backbone.Collection.extend({model:window.Statistics,url:"/_admin/statistics",updateUrl:function(){this.url=window.App.getNewRoute(this.host)+this.url},initialize:function(a,b){this.host=b.host,window.App.registerForUpdate(this)}}),function(){"use strict";window.arangoCollections=Backbone.Collection.extend({url:arangoHelper.databaseUrl("/_api/collection"),model:arangoCollectionModel,searchOptions:{searchPhrase:null,includeSystem:!1,includeDocument:!0,includeEdge:!0,includeLoaded:!0,includeUnloaded:!0,sortBy:"name",sortOrder:1},translateStatus:function(a){switch(a){case 0:return"corrupted";case 1:return"new born collection";case 2:return"unloaded";case 3:return"loaded";case 4:return"unloading";case 5:return"deleted";case 6:return"loading";default:return}},translateTypePicture:function(a){var b="";switch(a){case"document":b+="fa-file-text-o";break;case"edge":b+="fa-share-alt";break;case"unknown":b+="fa-question";break;default:b+="fa-cogs"}return b},parse:function(a){var b=this;return _.each(a.result,function(a){a.isSystem=arangoHelper.isSystemCollection(a),a.type=arangoHelper.collectionType(a),a.status=b.translateStatus(a.status),a.picture=b.translateTypePicture(a.type)}),a.result},getPosition:function(a){var b,c=this.getFiltered(this.searchOptions),d=null,e=null;for(b=0;b0&&(d=c[b-1]),b0){var e,f=d.get("name").toLowerCase();for(e=0;ed?-1:1):0}),b},newCollection:function(a,b){var c={};c.name=a.collName,c.waitForSync=a.wfs,a.journalSize>0&&(c.journalSize=a.journalSize),c.isSystem=a.isSystem,c.type=parseInt(a.collType,10),a.shards&&(c.numberOfShards=a.shards,c.shardKeys=a.keys),a.replicationFactor&&(c.replicationFactor=JSON.parse(a.replicationFactor)),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/collection"),data:JSON.stringify(c),contentType:"application/json",processData:!1,success:function(a){b(!1,a)},error:function(a){b(!0,a)}})}})}(),function(){"use strict";window.ArangoDatabase=Backbone.Collection.extend({model:window.DatabaseModel,sortOptions:{desc:!1},url:arangoHelper.databaseUrl("/_api/database"),comparator:function(a,b){var c=a.get("name").toLowerCase(),d=b.get("name").toLowerCase();return this.sortOptions.desc===!0?d>c?1:c>d?-1:0:c>d?1:d>c?-1:0},parse:function(a){return a?_.map(a.result,function(a){return{name:a}}):void 0},initialize:function(){var a=this;this.fetch().done(function(){a.sort()})},setSortingDesc:function(a){this.sortOptions.desc=a},getDatabases:function(){var a=this;return this.fetch().done(function(){a.sort()}),this.models},getDatabasesForUser:function(a){$.ajax({type:"GET",cache:!1,url:this.url+"/user",contentType:"application/json",processData:!1,success:function(b){a(!1,b.result.sort())},error:function(){a(!0,[])}})},createDatabaseURL:function(a,b,c){var d=window.location,e=window.location.hash;b=b?"SSL"===b||"https:"===b?"https:":"http:":d.protocol,c=c||d.port;var f=b+"//"+window.location.hostname+":"+c+"/_db/"+encodeURIComponent(a)+"/_admin/aardvark/standalone.html";if(e){var g=e.split("/")[0];0===g.indexOf("#collection")&&(g="#collections"),0===g.indexOf("#service")&&(g="#services"),f+=g}return f},getCurrentDatabase:function(a){$.ajax({type:"GET",cache:!1,url:this.url+"/current",contentType:"application/json",processData:!1,success:function(b){200===b.code?a(!1,b.result.name):a(!1,b)},error:function(b){a(!0,b)}})},hasSystemAccess:function(a){var b=function(b,c){b?arangoHelper.arangoError("DB","Could not fetch databases"):a(!1,_.contains(c,"_system"))}.bind(this);this.getDatabasesForUser(b)}})}(),window.arangoDocument=Backbone.Collection.extend({url:"/_api/document/",model:arangoDocumentModel,collectionInfo:{},deleteEdge:function(a,b,c){this.deleteDocument(a,b,c)},deleteDocument:function(a,b,c){$.ajax({cache:!1,type:"DELETE",contentType:"application/json",url:arangoHelper.databaseUrl("/_api/document/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),success:function(){c(!1)},error:function(){c(!0)}})},addDocument:function(a,b){var c=this;c.createTypeDocument(a,b)},createTypeEdge:function(a,b,c,d,e){var f;f=d?JSON.stringify({_key:d,_from:b,_to:c}):JSON.stringify({_from:b,_to:c}),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/document?collection="+encodeURIComponent(a)),data:f,contentType:"application/json",processData:!1,success:function(a){e(!1,a)},error:function(a){e(!0,a)}})},createTypeDocument:function(a,b,c){var d;d=b?JSON.stringify({_key:b}):JSON.stringify({}),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/document?collection="+encodeURIComponent(a)),data:d,contentType:"application/json",processData:!1,success:function(a){c(!1,a._id)},error:function(a){c(!0,a._id)}})},getCollectionInfo:function(a,b,c){var d=this;$.ajax({cache:!1,type:"GET",url:arangoHelper.databaseUrl("/_api/collection/"+a+"?"+arangoHelper.getRandomToken()),contentType:"application/json",processData:!1,success:function(a){d.collectionInfo=a,b(!1,a,c)},error:function(a){b(!0,a,c)}})},getEdge:function(a,b,c){this.getDocument(a,b,c)},getDocument:function(a,b,c){var d=this;this.clearDocument(),$.ajax({cache:!1,type:"GET",url:arangoHelper.databaseUrl("/_api/document/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),contentType:"application/json",processData:!1,success:function(a){d.add(a),c(!1,a,"document")},error:function(a){d.add(!0,a)}})},saveEdge:function(a,b,c,d){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/edge/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),data:c,contentType:"application/json",processData:!1,success:function(a){d(!1,a)},error:function(a){d(!0,a)}})},saveDocument:function(a,b,c,d){$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/document/"+encodeURIComponent(a)+"/"+encodeURIComponent(b)),data:c,contentType:"application/json",processData:!1,success:function(a){d(!1,a)},error:function(a){d(!0,a)}})},updateLocalDocument:function(a){this.clearDocument(),this.add(a)},clearDocument:function(){this.reset()}}),function(){"use strict";window.arangoDocuments=window.PaginatedCollection.extend({collectionID:1,filters:[],checkCursorTimer:void 0,MAX_SORT:12e3,lastQuery:{},sortAttribute:"",url:arangoHelper.databaseUrl("/_api/documents"),model:window.arangoDocumentModel,loadTotal:function(a){var b=this;$.ajax({cache:!1,type:"GET",url:arangoHelper.databaseUrl("/_api/collection/"+this.collectionID+"/count"),contentType:"application/json",processData:!1,success:function(c){b.setTotal(c.count),a(!1)},error:function(){a(!0)}})},setCollection:function(a){var b=function(a){a&&arangoHelper.arangoError("Documents","Could not fetch documents count")}.bind(this);this.resetFilter(),this.collectionID=a,this.setPage(1),this.loadTotal(b)},setSort:function(a){this.sortAttribute=a},getSort:function(){return this.sortAttribute},addFilter:function(a,b,c){this.filters.push({attr:a,op:b,val:c})},setFiltersForQuery:function(a){if(0===this.filters.length)return"";var b=" FILTER",c="",d=_.map(this.filters,function(b,d){return"LIKE"===b.op?(c=" "+b.op+"(x.`"+b.attr+"`, @param",c+=d,c+=")"):(c="IN"===b.op||"NOT IN"===b.op?" ":" x.`",c+=b.attr,c+="IN"===b.op||"NOT IN"===b.op?" ":"` ",c+=b.op,c+="IN"===b.op||"NOT IN"===b.op?" x.@param":" @param",c+=d),a["param"+d]=b.val,c});return b+d.join(" &&")},setPagesize:function(a){this.setPageSize(a)},resetFilter:function(){this.filters=[]},moveDocument:function(a,b,c,d){var e,f,g,h,i={"@collection":b,filterid:a};e="FOR x IN @@collection",e+=" FILTER x._key == @filterid",e+=" INSERT x IN ",e+=c,f="FOR x in @@collection",f+=" FILTER x._key == @filterid",f+=" REMOVE x IN @@collection",g={query:e,bindVars:i},h={query:f,bindVars:i},window.progressView.show(),$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),data:JSON.stringify(g),contentType:"application/json",success:function(){$.ajax({cache:!1,type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),data:JSON.stringify(h),contentType:"application/json",success:function(){d&&d(),window.progressView.hide()},error:function(){window.progressView.hide(),arangoHelper.arangoError("Document error","Documents inserted, but could not be removed.")}})},error:function(){window.progressView.hide(),arangoHelper.arangoError("Document error","Could not move selected documents.")}})},getDocuments:function(a){var b,c,d,e,f=this;c={"@collection":this.collectionID,offset:this.getOffset(),count:this.getPageSize()},b="FOR x IN @@collection LET att = SLICE(ATTRIBUTES(x), 0, 25)",b+=this.setFiltersForQuery(c),this.getTotal()0&&(a+=" SORT x."+this.getSort()),a+=" RETURN x",b={query:a,bindVars:c}},uploadDocuments:function(a,b){$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/import?type=auto&collection="+encodeURIComponent(this.collectionID)+"&createCollection=false"),data:a,processData:!1,contentType:"json",dataType:"json",complete:function(a){if(4===a.readyState&&201===a.status)b(!1);else try{var c=JSON.parse(a.responseText);if(c.errors>0){var d="At least one error occurred during upload";b(!1,d)}}catch(e){console.log(e)}}})}})}(),function(){"use strict";window.ArangoLogs=window.PaginatedCollection.extend({upto:!1,loglevel:0,totalPages:0,parse:function(a){var b=[];return _.each(a.lid,function(c,d){b.push({level:a.level[d],lid:c,text:a.text[d],timestamp:a.timestamp[d],totalAmount:a.totalAmount})}),this.totalAmount=a.totalAmount,this.totalPages=Math.ceil(this.totalAmount/this.pagesize),b},initialize:function(a){a.upto===!0&&(this.upto=!0),this.loglevel=a.loglevel},model:window.newArangoLog,url:function(){var a,b,c,d;c=this.page*this.pagesize;var e=this.totalAmount-(this.page+1)*this.pagesize;return 0>e&&this.page===this.totalPages-1?(e=0,d=this.totalAmount%this.pagesize):d=this.pagesize,0===this.totalAmount&&(d=1),a=this.upto?"upto":"level",b="/_admin/log?"+a+"="+this.loglevel+"&size="+d+"&offset="+e,arangoHelper.databaseUrl(b)}})}(),function(){"use strict";window.ArangoQueries=Backbone.Collection.extend({initialize:function(a,b){var c=this;$.ajax("whoAmI?_="+Date.now(),{async:!0}).done(function(a){this.activeUser===!1?c.activeUser="root":c.activeUser=a.user})},url:arangoHelper.databaseUrl("/_api/user/"),model:ArangoQuery,activeUser:null,parse:function(a){var b,c=this;return this.activeUser===!1&&(this.activeUser="root"),_.each(a.result,function(a){if(a.user===c.activeUser)try{a.extra.queries&&(b=a.extra.queries)}catch(d){}}),b},saveCollectionQueries:function(a){if(0===this.activeUser)return!1;this.activeUser===!1&&(this.activeUser="root");var b=[];this.each(function(a){b.push({value:a.attributes.value,parameter:a.attributes.parameter,name:a.attributes.name})}),$.ajax({cache:!1,type:"PATCH",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(this.activeUser)),data:JSON.stringify({extra:{queries:b}}),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(){a(!0)}})},saveImportQueries:function(a,b){return 0===this.activeUser?!1:(window.progressView.show("Fetching documents..."),void $.ajax({cache:!1,type:"POST",url:"query/upload/"+encodeURIComponent(this.activeUser),data:a,contentType:"application/json",processData:!1,success:function(){window.progressView.hide(),arangoHelper.arangoNotification("Queries successfully imported."),b()},error:function(){window.progressView.hide(),arangoHelper.arangoError("Query error","queries could not be imported")}}))}})}(),window.ArangoReplication=Backbone.Collection.extend({model:window.Replication,url:"../api/user",getLogState:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/replication/logger-state"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},getApplyState:function(a){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/replication/applier-state"),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})}}),window.StatisticsCollection=Backbone.Collection.extend({model:window.Statistics,url:"/_admin/statistics"}),window.StatisticsDescriptionCollection=Backbone.Collection.extend({model:window.StatisticsDescription,url:"/_admin/statistics-description",parse:function(a){return a}}),window.ArangoUsers=Backbone.Collection.extend({model:window.Users,activeUser:null,activeUserSettings:{query:{},shell:{},testing:!0},sortOptions:{desc:!1},url:frontendConfig.basePath+"/_api/user",comparator:function(a,b){var c=a.get("user").toLowerCase(),d=b.get("user").toLowerCase();return this.sortOptions.desc===!0?d>c?1:c>d?-1:0:c>d?1:d>c?-1:0},login:function(a,b,c){var d=this;$.ajax({url:arangoHelper.databaseUrl("/_open/auth"),method:"POST",data:JSON.stringify({username:a,password:b}),dataType:"json"}).success(function(a){arangoHelper.setCurrentJwt(a.jwt);var b=a.jwt.split(".");if(!b[1])throw new Error("Invalid JWT");if(!window.atob)throw new Error("base64 support missing in browser");var e=JSON.parse(atob(b[1]));d.activeUser=e.preferred_username,c(!1,d.activeUser)}).error(function(){arangoHelper.setCurrentJwt(null),d.activeUser=null,c(!0,null)})},setSortingDesc:function(a){this.sortOptions.desc=a},logout:function(){arangoHelper.setCurrentJwt(null),this.activeUser=null,this.reset(),window.App.navigate(""),window.location.reload()},setUserSettings:function(a,b){this.activeUserSettings.identifier=b},loadUserSettings:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:frontendConfig.basePath+"/_api/user/"+encodeURIComponent(b.activeUser),contentType:"application/json",processData:!1,success:function(c){b.activeUserSettings=c.extra,a(!1,c)},error:function(b){a(!0,b)}})},saveUserSettings:function(a){var b=this;$.ajax({cache:!1,type:"PUT",url:frontendConfig.basePath+"/_api/user/"+encodeURIComponent(b.activeUser),data:JSON.stringify({extra:b.activeUserSettings}),contentType:"application/json",processData:!1,success:function(b){a(!1,b)},error:function(b){a(!0,b)}})},parse:function(a){var b=[];return _.each(a.result,function(a){b.push(a)}),b},whoAmI:function(a){return this.activeUser?void a(!1,this.activeUser):void $.ajax("whoAmI?_="+Date.now()).success(function(b){a(!1,b.user)}).error(function(b){a(!0,null)})}}),function(){"use strict";window.ClusterCoordinators=window.AutomaticRetryCollection.extend({model:window.ClusterCoordinator,url:arangoHelper.databaseUrl("/_admin/aardvark/cluster/Coordinators"),updateUrl:function(){this.url=window.App.getNewRoute("Coordinators")},initialize:function(){},statusClass:function(a){switch(a){case"ok":return"success";case"warning":return"warning";case"critical":return"danger";case"missing":return"inactive";default:return"danger"}},getStatuses:function(a,b){if(this.checkRetries()){var c=this;this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:c.failureTry.bind(c,c.getStatuses.bind(c,a,b))}).done(function(){c.successFullTry(),c.forEach(function(b){a(c.statusClass(b.get("status")),b.get("address"))}),b()})}},byAddress:function(a,b){if(this.checkRetries()){var c=this;this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:c.failureTry.bind(c,c.byAddress.bind(c,a,b))}).done(function(){c.successFullTry(),a=a||{},c.forEach(function(b){var c=b.get("address");c=c.split(":")[0],a[c]=a[c]||{},a[c].coords=a[c].coords||[],a[c].coords.push(b)}),b(a)})}},checkConnection:function(a){var b=this;this.checkRetries()&&this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:b.failureTry.bind(b,b.checkConnection.bind(b,a))}).done(function(){b.successFullTry(),a()})}})}(),function(){"use strict";window.ClusterServers=window.AutomaticRetryCollection.extend({model:window.ClusterServer,host:"",url:arangoHelper.databaseUrl("/_admin/aardvark/cluster/DBServers"),updateUrl:function(){this.url=window.App.getNewRoute(this.host)+this.url},initialize:function(a,b){this.host=b.host},statusClass:function(a){switch(a){case"ok":return"success";case"warning":return"warning";case"critical":return"danger";case"missing":return"inactive";default:return"danger"}},getStatuses:function(a){if(this.checkRetries()){var b=this,c=function(){b.successFullTry(),b._retryCount=0,b.forEach(function(c){a(b.statusClass(c.get("status")),c.get("address"))})};this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:b.failureTry.bind(b,b.getStatuses.bind(b,a))}).done(c)}},byAddress:function(a,b){if(this.checkRetries()){var c=this;this.fetch({beforeSend:window.App.addAuth.bind(window.App),error:c.failureTry.bind(c,c.byAddress.bind(c,a,b))}).done(function(){c.successFullTry(),a=a||{},c.forEach(function(b){var c=b.get("address");c=c.split(":")[0],a[c]=a[c]||{},a[c].dbs=a[c].dbs||[],a[c].dbs.push(b)}),b(a)}).error(function(a){console.log("error"),console.log(a)})}},getList:function(){throw"Do not use"},getOverview:function(){throw"Do not use DbServer.getOverview"}})}(),function(){"use strict";window.CoordinatorCollection=Backbone.Collection.extend({model:window.Coordinator,url:arangoHelper.databaseUrl("/_admin/aardvark/cluster/Coordinators")})}(),function(){"use strict";window.FoxxCollection=Backbone.Collection.extend({model:window.Foxx,sortOptions:{desc:!1},url:arangoHelper.databaseUrl("/_admin/aardvark/foxxes"),comparator:function(a,b){var c,d;return this.sortOptions.desc===!0?(c=a.get("mount"),d=b.get("mount"),d>c?1:c>d?-1:0):(c=a.get("mount"),d=b.get("mount"),c>d?1:d>c?-1:0)},setSortingDesc:function(a){this.sortOptions.desc=a},installFromGithub:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/git?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})},installFromStore:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/store?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})},installFromZip:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/zip?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify({zipFile:a}),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})},generate:function(a,b,c,d){var e=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/generate?mount="+encodeURIComponent(b));void 0!==d&&(e+=d?"&replace=true":"&upgrade=true"),$.ajax({cache:!1,type:"PUT",url:e,data:JSON.stringify(a),contentType:"application/json",processData:!1,success:function(a){c(a)},error:function(a){c(a)}})}})}(),function(){"use strict";window.GraphCollection=Backbone.Collection.extend({model:window.Graph,sortOptions:{desc:!1},url:frontendConfig.basePath+"/_api/gharial",dropAndDeleteGraph:function(a,b){$.ajax({type:"DELETE",url:frontendConfig.basePath+"/_api/gharial/"+encodeURIComponent(a)+"?dropCollections=true",contentType:"application/json",processData:!0,success:function(){b(!0)},error:function(){b(!1)}})},comparator:function(a,b){var c=a.get("_key")||"",d=b.get("_key")||"";return c=c.toLowerCase(),d=d.toLowerCase(),this.sortOptions.desc===!0?d>c?1:c>d?-1:0:c>d?1:d>c?-1:0},setSortingDesc:function(a){this.sortOptions.desc=a},parse:function(a){return a.error?void 0:a.graphs}})}(),function(){"use strict";window.NotificationCollection=Backbone.Collection.extend({model:window.Notification,url:""})}(),function(){"use strict";window.QueryManagementActive=Backbone.Collection.extend({ model:window.queryManagementModel,url:function(){return frontendConfig.basePath+"/_api/query/current"},killRunningQuery:function(a,b){$.ajax({url:frontendConfig.basePath+"/_api/query/"+encodeURIComponent(a),type:"DELETE",success:function(a){b()}})}})}(),function(){"use strict";window.QueryManagementSlow=Backbone.Collection.extend({model:window.queryManagementModel,url:"/_api/query/slow",deleteSlowQueryHistory:function(a){var b=this;$.ajax({url:b.url,type:"DELETE",success:function(b){a()}})}})}(),function(){"use strict";window.WorkMonitorCollection=Backbone.Collection.extend({model:window.workMonitorModel,url:"/_admin/work-monitor",parse:function(a){return a.work}})}(),function(){"use strict";window.PaginationView=Backbone.View.extend({collection:null,paginationDiv:"",idPrefix:"",rerender:function(){},jumpTo:function(a){this.collection.setPage(a),this.rerender()},firstPage:function(){this.jumpTo(1)},lastPage:function(){this.jumpTo(this.collection.getLastPageNumber())},firstDocuments:function(){this.jumpTo(1)},lastDocuments:function(){this.jumpTo(this.collection.getLastPageNumber())},prevDocuments:function(){this.jumpTo(this.collection.getPage()-1)},nextDocuments:function(){this.jumpTo(this.collection.getPage()+1)},renderPagination:function(){$(this.paginationDiv).html("");var a=this,b=this.collection.getPage(),c=this.collection.getLastPageNumber(),d=$(this.paginationDiv),e={page:b,lastPage:c,click:function(b){var c=window.location.hash.split("/");"documents"===c[2]?(e.page=b,window.location.hash=c[0]+"/"+c[1]+"/"+c[2]+"/"+b):(a.jumpTo(b),e.page=b)}};d.html(""),d.pagination(e),$(this.paginationDiv).prepend('
    '),$(this.paginationDiv).append('
    ')}})}(),function(){"use strict";window.ApplicationDetailView=Backbone.View.extend({el:"#content",divs:["#readme","#swagger","#app-info","#sideinformation","#information","#settings"],navs:["#service-info","#service-api","#service-readme","#service-settings"],template:templateEngine.createTemplate("applicationDetailView.ejs"),events:{"click .open":"openApp","click .delete":"deleteApp","click #app-deps":"showDepsDialog","click #app-switch-mode":"toggleDevelopment","click #app-scripts [data-script]":"runScript","click #app-tests":"runTests","click #app-replace":"replaceApp","click #download-app":"downloadApp","click .subMenuEntries li":"changeSubview","mouseenter #app-scripts":"showDropdown","mouseleave #app-scripts":"hideDropdown"},changeSubview:function(a){_.each(this.navs,function(a){$(a).removeClass("active")}),$(a.currentTarget).addClass("active"),_.each(this.divs,function(a){$(".headerButtonBar").hide(),$(a).hide()}),"service-readme"===a.currentTarget.id?$("#readme").show():"service-api"===a.currentTarget.id?$("#swagger").show():"service-info"===a.currentTarget.id?(this.render(),$("#information").show(),$("#sideinformation").show()):"service-settings"===a.currentTarget.id&&(this.showConfigDialog(),$(".headerButtonBar").show(),$("#settings").show())},downloadApp:function(){this.model.isSystem()||this.model.download()},replaceApp:function(){var a=this.model.get("mount");window.foxxInstallView.upgrade(a,function(){window.App.applicationDetail(encodeURIComponent(a))}),$(".createModalDialog .arangoHeader").html("Replace Service"),$("#infoTab").click()},updateConfig:function(){this.model.getConfiguration(function(){$("#app-warning")[this.model.needsAttention()?"show":"hide"](),$("#app-warning-config")[this.model.needsConfiguration()?"show":"hide"](),this.model.needsConfiguration()?$("#app-config").addClass("error"):$("#app-config").removeClass("error")}.bind(this))},updateDeps:function(){this.model.getDependencies(function(){$("#app-warning")[this.model.needsAttention()?"show":"hide"](),$("#app-warning-deps")[this.model.hasUnconfiguredDependencies()?"show":"hide"](),this.model.hasUnconfiguredDependencies()?$("#app-deps").addClass("error"):$("#app-deps").removeClass("error")}.bind(this))},toggleDevelopment:function(){this.model.toggleDevelopment(!this.model.isDevelopment(),function(){this.model.isDevelopment()?($(".app-switch-mode").text("Set Production"),$("#app-development-indicator").css("display","inline"),$("#app-development-path").css("display","inline")):($(".app-switch-mode").text("Set Development"),$("#app-development-indicator").css("display","none"),$("#app-development-path").css("display","none"))}.bind(this))},runScript:function(a){a.preventDefault();var b=$(a.currentTarget).attr("data-script"),c=[window.modalView.createBlobEntry("app_script_arguments","Script arguments","",null,"optional",!1,[{rule:function(a){return a&&JSON.parse(a)},msg:"Must be well-formed JSON or empty"}])],d=[window.modalView.createSuccessButton("Run script",function(){var a=$("#app_script_arguments").val();a=a&&JSON.parse(a),window.modalView.hide(),this.model.runScript(b,a,function(a,c){var d;d=a?"

    The script failed with an error"+(a.statusCode?" (HTTP "+a.statusCode+")":"")+":

    "+a.message+"
    ":c?"

    Script results:

    "+JSON.stringify(c,null,2)+"
    ":"

    The script ran successfully.

    ",window.modalView.show("modalTable.ejs",'Result of script "'+b+'"',void 0,void 0,void 0,d)})}.bind(this))];window.modalView.show("modalTable.ejs",'Run script "'+b+'" on "'+this.model.get("mount")+'"',d,c)},showSwagger:function(a){a.preventDefault(),this.render("swagger")},showReadme:function(a){a.preventDefault(),this.render("readme")},runTests:function(a){a.preventDefault();var b="

    WARNING: Running tests may result in destructive side-effects including data loss. Please make sure not to run tests on a production database.

    ";this.model.isDevelopment()&&(b+="

    WARNING: This app is running in development mode. If any of the tests access the app's HTTP API they may become non-deterministic.

    ");var c=[window.modalView.createSuccessButton("Run tests",function(){window.modalView.hide(),this.model.runTests({reporter:"suite"},function(a,b){window.modalView.show("modalTestResults.ejs","Test results",void 0,void 0,void 0,a||b)})}.bind(this))];window.modalView.show("modalTable.ejs",'Run tests for app "'+this.model.get("mount")+'"',c,void 0,void 0,b)},render:function(a){return this.model.fetchThumbnail(function(){var b=function(b,c){var d=this;b?arangoHelper.arangoError("DB","Could not get current database"):(console.log(this),$(this.el).html(this.template.render({app:this.model,db:c,mode:a})),$.get(this.appUrl(c)).success(function(){$(".open",this.el).prop("disabled",!1)}.bind(this)),this.updateConfig(),this.updateDeps(),"swagger"===a&&$.get("./foxxes/docs/swagger.json?mount="+encodeURIComponent(this.model.get("mount")),function(a){Object.keys(a.paths).length<1&&(d.render("readme"),$("#app-show-swagger").attr("disabled","true"))})),this.breadcrumb()}.bind(this);arangoHelper.currentDatabase(b),_.isEmpty(this.model.get("config"))&&$("#service-settings").attr("disabled",!0)}.bind(this)),$(this.el)},breadcrumb:function(){var a="Service: "+this.model.get("name")+'',b='

    Contributors:';this.model.get("contributors")&&this.model.get("contributors").length>0?_.each(this.model.get("contributors"),function(a){b+=''+a.name+""}):b+="No contributors",b+="

    ",$(".information").append(b),this.model.get("author")&&$(".information").append('

    Author:'+this.model.get("author")+"

    "),this.model.get("mount")&&$(".information").append('

    Mount:'+this.model.get("mount")+"

    "),this.model.get("development")&&this.model.get("path")&&$(".information").append('

    Path:'+this.model.get("path")+"

    "),$("#subNavigationBar .breadcrumb").html(a)},openApp:function(){var a=function(a,b){a?arangoHelper.arangoError("DB","Could not get current database"):window.open(this.appUrl(b),this.model.get("title")).focus()}.bind(this);arangoHelper.currentDatabase(a)},deleteApp:function(){var a=[window.modalView.createDeleteButton("Delete",function(){var a={teardown:$("#app_delete_run_teardown").is(":checked")};this.model.destroy(a,function(a,b){a||b.error!==!1||(window.modalView.hide(),window.App.navigate("services",{trigger:!0}))})}.bind(this))],b=[window.modalView.createCheckboxEntry("app_delete_run_teardown","Run teardown?",!0,"Should this app's teardown script be executed before removing the app?",!0)];window.modalView.show("modalTable.ejs",'Delete Foxx App mounted at "'+this.model.get("mount")+'"',a,b,void 0,"

    Are you sure? There is no way back...

    ",!0)},appUrl:function(a){return window.location.origin+"/_db/"+encodeURIComponent(a)+this.model.get("mount")},applyConfig:function(){var a={};_.each(this.model.get("config"),function(b,c){var d=$("#app_config_"+c),e=d.val();if("boolean"===b.type||"bool"===b.type)return void(a[c]=d.is(":checked"));if(""===e&&b.hasOwnProperty("default"))return a[c]=b["default"],void("json"===b.type&&(a[c]=JSON.stringify(b["default"])));if("number"===b.type)a[c]=parseFloat(e);else if("integer"===b.type||"int"===b.type)a[c]=parseInt(e,10);else{if("json"!==b.type)return void(a[c]=window.arangoHelper.escapeHtml(e));a[c]=e&&JSON.stringify(JSON.parse(e))}}),this.model.setConfiguration(a,function(){this.updateConfig(),arangoHelper.arangoNotification(this.model.get("name"),"Settings applied.")}.bind(this))},showConfigDialog:function(){if(_.isEmpty(this.model.get("config")))return void $("#settings .buttons").html($("#hidden_buttons").html());var a=_.map(this.model.get("config"),function(a,b){var c=void 0===a["default"]?"":String(a["default"]),d=void 0===a.current?"":String(a.current),e="createTextEntry",f=!1,g=[];return"boolean"===a.type||"bool"===a.type?(e="createCheckboxEntry",a["default"]=a["default"]||!1,c=a["default"]||!1,d=a.current||!1):"json"===a.type?(e="createBlobEntry",c=void 0===a["default"]?"":JSON.stringify(a["default"]),d=void 0===a.current?"":a.current,g.push({rule:function(a){return a&&JSON.parse(a)},msg:"Must be well-formed JSON or empty."})):"integer"===a.type||"int"===a.type?g.push({rule:Joi.number().integer().optional().allow(""),msg:"Has to be an integer."}):"number"===a.type?g.push({rule:Joi.number().optional().allow(""),msg:"Has to be a number."}):("password"===a.type&&(e="createPasswordEntry"),g.push({rule:Joi.string().optional().allow(""),msg:"Has to be a string."})),void 0===a["default"]&&a.required!==!1&&(f=!0,g.unshift({rule:Joi.any().required(),msg:"This field is required."})),window.modalView[e]("app_config_"+b,b,d,a.description,c,f,g)}),b=[window.modalView.createSuccessButton("Apply",this.applyConfig.bind(this))];window.modalView.show("modalTable.ejs","Configuration",b,a,null,null,null,null,null,"settings"),$(".modal-footer").prepend($("#hidden_buttons").html())},applyDeps:function(){var a={};_.each(this.model.get("deps"),function(b,c){var d=$("#app_deps_"+c);a[c]=window.arangoHelper.escapeHtml(d.val())}),this.model.setDependencies(a,function(){window.modalView.hide(),this.updateDeps()}.bind(this))},showDepsDialog:function(){if(!_.isEmpty(this.model.get("deps"))){var a=_.map(this.model.get("deps"),function(a,b){var c=void 0===a.current?"":String(a.current),d="",e=a.definition.name;"*"!==a.definition.version&&(e+="@"+a.definition.version);var f=[{rule:Joi.string().optional().allow(""),msg:"Has to be a string."}];return a.definition.required&&f.push({rule:Joi.string().required(),msg:"This value is required."}),window.modalView.createTextEntry("app_deps_"+b,a.title,c,e,d,a.definition.required,f)}),b=[window.modalView.createSuccessButton("Apply",this.applyDeps.bind(this))];window.modalView.show("modalTable.ejs","Dependencies",b,a)}},showDropdown:function(){_.isEmpty(this.model.get("scripts"))||$("#scripts_dropdown").show(200)},hideDropdown:function(){$("#scripts_dropdown").hide()}})}(),function(){"use strict";window.ApplicationsView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("applicationsView.ejs"),events:{"click #addApp":"createInstallModal","click #foxxToggle":"slideToggle","click #checkDevel":"toggleDevel","click #checkProduction":"toggleProduction","click #checkSystem":"toggleSystem"},fixCheckboxes:function(){this._showDevel?$("#checkDevel").attr("checked","checked"):$("#checkDevel").removeAttr("checked"),this._showSystem?$("#checkSystem").attr("checked","checked"):$("#checkSystem").removeAttr("checked"),this._showProd?$("#checkProduction").attr("checked","checked"):$("#checkProduction").removeAttr("checked"),$("#checkDevel").next().removeClass("fa fa-check-square-o fa-square-o").addClass("fa"),$("#checkSystem").next().removeClass("fa fa-check-square-o fa-square-o").addClass("fa"),$("#checkProduction").next().removeClass("fa fa-check-square-o fa-square-o").addClass("fa"),arangoHelper.setCheckboxStatus("#foxxDropdown")},toggleDevel:function(){var a=this;this._showDevel=!this._showDevel,_.each(this._installedSubViews,function(b){b.toggle("devel",a._showDevel)}),this.fixCheckboxes()},toggleProduction:function(){var a=this;this._showProd=!this._showProd,_.each(this._installedSubViews,function(b){b.toggle("production",a._showProd)}),this.fixCheckboxes()},toggleSystem:function(){this._showSystem=!this._showSystem;var a=this;_.each(this._installedSubViews,function(b){b.toggle("system",a._showSystem)}),this.fixCheckboxes()},reload:function(){var a=this;_.each(this._installedSubViews,function(a){a.undelegateEvents()}),this.collection.fetch({success:function(){a.createSubViews(),a.render()}})},createSubViews:function(){var a=this;this._installedSubViews={},a.collection.each(function(b){var c=new window.FoxxActiveView({model:b,appsView:a});a._installedSubViews[b.get("mount")]=c})},initialize:function(){this._installedSubViews={},this._showDevel=!0,this._showProd=!0,this._showSystem=!1},slideToggle:function(){$("#foxxToggle").toggleClass("activated"),$("#foxxDropdownOut").slideToggle(200)},createInstallModal:function(a){a.preventDefault(),window.foxxInstallView.install(this.reload.bind(this))},render:function(){this.collection.sort(),$(this.el).html(this.template.render({})),_.each(this._installedSubViews,function(a){$("#installedList").append(a.render())}),this.delegateEvents(),$("#checkDevel").attr("checked",this._showDevel),$("#checkProduction").attr("checked",this._showProd),$("#checkSystem").attr("checked",this._showSystem),arangoHelper.setCheckboxStatus("#foxxDropdown");var a=this;return _.each(this._installedSubViews,function(b){b.toggle("devel",a._showDevel),b.toggle("system",a._showSystem)}),arangoHelper.fixTooltips("icon_arangodb","left"),this}})}(),function(){"use strict";window.ClusterView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("clusterView.ejs"),events:{},statsEnabled:!1,historyInit:!1,initDone:!1,interval:5e3,maxValues:100,knownServers:[],chartData:{},charts:{},nvcharts:[],startHistory:{},startHistoryAccumulated:{},initialize:function(a){var b=this;window.App.isCluster&&(this.dbServers=a.dbServers,this.coordinators=a.coordinators,this.updateServerTime(),window.setInterval(function(){if("#cluster"===window.location.hash||""===window.location.hash||"#"===window.location.hash){var a=function(a){b.rerenderValues(a),b.rerenderGraphs(a)};b.getCoordStatHistory(a)}},this.interval))},render:function(){this.$el.html(this.template.render({})),this.initDone||(void 0!==this.coordinators.first()?this.getServerStatistics():this.waitForCoordinators(),this.initDone=!0),this.initGraphs()},waitForCoordinators:function(){var a=this;window.setTimeout(function(){a.coordinators?a.getServerStatistics():a.waitForCoordinators()},500)},updateServerTime:function(){this.serverTime=(new Date).getTime()},getServerStatistics:function(){var a=this;this.data=void 0;var b=this.coordinators.first();this.statCollectCoord=new window.ClusterStatisticsCollection([],{host:b.get("address")}),this.statCollectDBS=new window.ClusterStatisticsCollection([],{host:b.get("address")});var c=[];_.each(this.dbServers,function(a){a.each(function(a){c.push(a)})}),_.each(c,function(c){if("ok"===c.get("status")){-1===a.knownServers.indexOf(c.id)&&a.knownServers.push(c.id);var d=new window.Statistics({name:c.id});d.url=b.get("protocol")+"://"+b.get("address")+"/_admin/clusterStatistics?DBserver="+c.get("name"),a.statCollectDBS.add(d)}}),this.coordinators.forEach(function(b){if("ok"===b.get("status")){-1===a.knownServers.indexOf(b.id)&&a.knownServers.push(b.id);var c=new window.Statistics({name:b.id});c.url=b.get("protocol")+"://"+b.get("address")+"/_admin/statistics",a.statCollectCoord.add(c)}});var d=function(b){a.rerenderValues(b),a.rerenderGraphs(b)}.bind(this);a.getCoordStatHistory(d),a.coordinators.fetch({success:function(){a.renderNode(!0)},error:function(){a.renderNode(!1)}})},rerenderValues:function(a){var b=this;this.coordinators.fetch({success:function(){b.renderNode(!0)},error:function(){b.renderNode(!1)}}),this.renderValue("#clusterConnections",Math.round(a.clientConnectionsCurrent)),this.renderValue("#clusterConnectionsAvg",Math.round(a.clientConnections15M));var c=a.physicalMemory,d=a.residentSizeCurrent;this.renderValue("#clusterRam",[d,c])},renderValue:function(a,b,c){if("number"==typeof b)$(a).html(b);else if($.isArray(b)){var d=b[0],e=b[1],f=1/(e/d)*100;$(a).html(f.toFixed(1)+" %")}else"string"==typeof b&&$(a).html(b);c?($(a).addClass("negative"),$(a).removeClass("positive")):($(a).addClass("positive"),$(a).removeClass("negative"))},renderNode:function(a){var b=0,c=0;if(a)if(this.coordinators.each(function(a){"ok"===a.toJSON().status?b++:c++}),c>0){var d=c+b;this.renderValue("#clusterNodes",b+"/"+d,!0)}else this.renderValue("#clusterNodes",b);else this.renderValue("#clusterNodes","OFFLINE",!0)},initValues:function(){var a=["#clusterNodes","#clusterRam","#clusterConnections","#clusterConnectionsAvg"];_.each(a,function(a){$(a).html('')})},graphData:{data:{sent:[],received:[]},http:[],average:[]},checkArraySizes:function(){var a=this;_.each(a.chartsOptions,function(b,c){_.each(b.options,function(b,d){b.values.length>a.maxValues-1&&a.chartsOptions[c].options[d].values.shift()})})},formatDataForGraph:function(a){var b=this;b.historyInit?(b.checkArraySizes(),b.chartsOptions[0].options[0].values.push({x:a.times[a.times.length-1],y:a.bytesSentPerSecond[a.bytesSentPerSecond.length-1]}),b.chartsOptions[0].options[1].values.push({x:a.times[a.times.length-1],y:a.bytesReceivedPerSecond[a.bytesReceivedPerSecond.length-1]}),b.chartsOptions[1].options[0].values.push({x:a.times[a.times.length-1],y:b.calcTotalHttp(a.http,a.bytesSentPerSecond.length-1)}),b.chartsOptions[2].options[0].values.push({x:a.times[a.times.length-1],y:a.avgRequestTime[a.bytesSentPerSecond.length-1]/b.coordinators.length})):(_.each(a.times,function(c,d){b.chartsOptions[0].options[0].values.push({x:c,y:a.bytesSentPerSecond[d]}),b.chartsOptions[0].options[1].values.push({x:c,y:a.bytesReceivedPerSecond[d]}),b.chartsOptions[1].options[0].values.push({x:c,y:b.calcTotalHttp(a.http,d)}),b.chartsOptions[2].options[0].values.push({x:c,y:a.avgRequestTime[d]/b.coordinators.length})}),b.historyInit=!0)},chartsOptions:[{id:"#clusterData",type:"bytes",count:2,options:[{area:!0,values:[],key:"Bytes out",color:"rgb(23,190,207)",strokeWidth:2,fillOpacity:.1},{area:!0,values:[],key:"Bytes in",color:"rgb(188, 189, 34)",strokeWidth:2,fillOpacity:.1}]},{id:"#clusterHttp",type:"bytes",options:[{area:!0,values:[],key:"Bytes",color:"rgb(0, 166, 90)",fillOpacity:.1}]},{id:"#clusterAverage",data:[],type:"seconds",options:[{area:!0,values:[],key:"Seconds",color:"rgb(243, 156, 18)",fillOpacity:.1}]}],initGraphs:function(){var a=this,b="Fetching data...";a.statsEnabled===!1&&(b="Statistics disabled."),_.each(a.chartsOptions,function(c){nv.addGraph(function(){a.charts[c.id]=nv.models.stackedAreaChart().options({useInteractiveGuideline:!0,showControls:!1,noData:b,duration:0}),a.charts[c.id].xAxis.axisLabel("").tickFormat(function(a){var b=new Date(1e3*a);return(b.getHours()<10?"0":"")+b.getHours()+":"+(b.getMinutes()<10?"0":"")+b.getMinutes()+":"+(b.getSeconds()<10?"0":"")+b.getSeconds()}).staggerLabels(!1),a.charts[c.id].yAxis.axisLabel("").tickFormat(function(a){var b;return"bytes"===c.type?null===a?"N/A":(b=parseFloat(d3.format(".2f")(a)),prettyBytes(b)):"seconds"===c.type?null===a?"N/A":b=parseFloat(d3.format(".3f")(a)):void 0});var d,e=a.returnGraphOptions(c.id);return e.length>0?_.each(e,function(a,b){c.options[b].values=a}):c.options[0].values=[],d=c.options,a.chartData[c.id]=d3.select(c.id).append("svg").datum(d).transition().duration(300).call(a.charts[c.id]).each("start",function(){window.setTimeout(function(){d3.selectAll(c.id+" *").each(function(){this.__transition__&&(this.__transition__.duration=0)})},0)}),nv.utils.windowResize(a.charts[c.id].update),a.nvcharts.push(a.charts[c.id]),a.charts[c.id]})})},returnGraphOptions:function(a){var b=[];return b="#clusterData"===a?[this.chartsOptions[0].options[0].values,this.chartsOptions[0].options[1].values]:"#clusterHttp"===a?[this.chartsOptions[1].options[0].values]:"#clusterAverage"===a?[this.chartsOptions[2].options[0].values]:[]},rerenderGraphs:function(a){if(this.statsEnabled){var b,c,d=this;this.formatDataForGraph(a),_.each(d.chartsOptions,function(a){c=d.returnGraphOptions(a.id),c.length>0?_.each(c,function(b,c){a.options[c].values=b}):a.options[0].values=[],b=a.options,b[0].values.length>0&&d.historyInit&&d.charts[a.id]&&d.charts[a.id].update()})}},calcTotalHttp:function(a,b){var c=0;return _.each(a,function(a){c+=a[b]}),c},getCoordStatHistory:function(a){var b,c=this,d=[],e={http:{}},f=function(a){return $.get(a,{count:c.statCollectCoord.size()},null,"json")},g=function(a){var b,d=["times"],f=["physicalMemory","residentSizeCurrent","clientConnections15M","clientConnectionsCurrent"],g=["optionsPerSecond","putsPerSecond","headsPerSecond","postsPerSecond","getsPerSecond","deletesPerSecond","othersPerSecond","patchesPerSecond"],h=["bytesSentPerSecond","bytesReceivedPerSecond","avgRequestTime"],i=0;_.each(a,function(a){a.enabled?c.statsEnabled=!0:c.statsEnabled=!1,"object"==typeof a&&(0===i?(_.each(d,function(b){e[b]=a[b]}),_.each(f,function(b){e[b]=a[b]}),_.each(g,function(b){e.http[b]=a[b]}),_.each(h,function(b){e[b]=a[b]})):(_.each(f,function(b){e[b]=e[b]+a[b]}),_.each(g,function(c){b=0,_.each(a[c],function(a){e.http[c][i]=e.http[c][i]+a,b++})}),_.each(h,function(c){b=0,_.each(a[c],function(a){e[c][i]=e[c][i]+a,b++})})),i++)})};this.statCollectCoord.each(function(a){b=a.url+"/short",d.push(f(b))}),$.when.apply($,d).done(function(){var b=[];_.each(d,function(a){b.push(a.responseJSON)}),g(b),a(e)})}})}(),function(){"use strict";window.CollectionListItemView=Backbone.View.extend({tagName:"div",className:"tile pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6",template:templateEngine.createTemplate("collectionsItemView.ejs"),initialize:function(a){this.collectionsView=a.collectionsView},events:{"click .iconSet.icon_arangodb_settings2":"createEditPropertiesModal","click .pull-left":"noop","click .icon_arangodb_settings2":"editProperties","click .spanInfo":"showProperties",click:"selectCollection"},render:function(){return this.model.get("locked")?($(this.el).addClass("locked"),$(this.el).addClass(this.model.get("lockType"))):$(this.el).removeClass("locked"),("loading"===this.model.get("status")||"unloading"===this.model.get("status"))&&$(this.el).addClass("locked"),$(this.el).html(this.template.render({model:this.model})),$(this.el).attr("id","collection_"+this.model.get("name")),this},editProperties:function(a){return this.model.get("locked")?0:(a.stopPropagation(),void this.createEditPropertiesModal())},showProperties:function(a){return this.model.get("locked")?0:(a.stopPropagation(),void this.createInfoModal())},selectCollection:function(a){return $(a.target).hasClass("disabled")?0:this.model.get("locked")?0:"loading"===this.model.get("status")?0:void("unloaded"===this.model.get("status")?this.loadCollection():window.App.navigate("collection/"+encodeURIComponent(this.model.get("name"))+"/documents/1",{trigger:!0}))},noop:function(a){a.stopPropagation()},unloadCollection:function(){var a=function(a){a?arangoHelper.arangoError("Collection error",this.model.get("name")+" could not be unloaded."):void 0===a?(this.model.set("status","unloading"),this.render()):"#collections"===window.location.hash?(this.model.set("status","unloaded"),this.render()):arangoHelper.arangoNotification("Collection "+this.model.get("name")+" unloaded.")}.bind(this);this.model.unloadCollection(a),window.modalView.hide()},loadCollection:function(){var a=function(a){a?arangoHelper.arangoError("Collection error",this.model.get("name")+" could not be loaded."):void 0===a?(this.model.set("status","loading"),this.render()):"#collections"===window.location.hash?(this.model.set("status","loaded"),this.render()):arangoHelper.arangoNotification("Collection "+this.model.get("name")+" loaded.")}.bind(this);this.model.loadCollection(a),window.modalView.hide()},truncateCollection:function(){this.model.truncateCollection(),window.modalView.hide()},deleteCollection:function(){this.model.destroy({error:function(){arangoHelper.arangoError("Could not delete collection.")},success:function(){window.modalView.hide()}}),this.collectionsView.render()},saveModifiedCollection:function(){var a=function(a,b){if(a)arangoHelper.arangoError("Error","Could not get coordinator info");else{var c;c=b?this.model.get("name"):$("#change-collection-name").val();var d=this.model.get("status");if("loaded"===d){var e;try{e=JSON.parse(1024*$("#change-collection-size").val()*1024)}catch(f){return arangoHelper.arangoError("Please enter a valid number"),0}var g;try{if(g=JSON.parse($("#change-index-buckets").val()),1>g||parseInt(g)!==Math.pow(2,Math.log2(g)))throw"invalid indexBuckets value"}catch(f){return arangoHelper.arangoError("Please enter a valid number of index buckets"),0}var h=function(a){a?arangoHelper.arangoError("Collection error: "+a.responseText):(this.collectionsView.render(),window.modalView.hide())}.bind(this),i=function(a){if(a)arangoHelper.arangoError("Collection error: "+a.responseText);else{var b=$("#change-collection-sync").val();this.model.changeCollection(b,e,g,h)}}.bind(this);this.model.renameCollection(c,i)}else if("unloaded"===d)if(this.model.get("name")!==c){var j=function(a,b){a?arangoHelper.arangoError("Collection error: "+b.responseText):(this.collectionsView.render(),window.modalView.hide())}.bind(this);this.model.renameCollection(c,j)}else window.modalView.hide()}}.bind(this);window.isCoordinator(a)},createEditPropertiesModal:function(){var a=function(a,b){if(a)arangoHelper.arangoError("Error","Could not get coordinator info");else{var c=!1;"loaded"===this.model.get("status")&&(c=!0);var d=[],e=[];b||e.push(window.modalView.createTextEntry("change-collection-name","Name",this.model.get("name"),!1,"",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Collection name must always start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only Symbols "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No collection name given."}]));var f=function(){e.push(window.modalView.createReadOnlyEntry("change-collection-id","ID",this.model.get("id"),"")),e.push(window.modalView.createReadOnlyEntry("change-collection-type","Type",this.model.get("type"),"")),e.push(window.modalView.createReadOnlyEntry("change-collection-status","Status",this.model.get("status"),"")),d.push(window.modalView.createDeleteButton("Delete",this.deleteCollection.bind(this))),d.push(window.modalView.createDeleteButton("Truncate",this.truncateCollection.bind(this))),c?d.push(window.modalView.createNotificationButton("Unload",this.unloadCollection.bind(this))):d.push(window.modalView.createNotificationButton("Load",this.loadCollection.bind(this))),d.push(window.modalView.createSuccessButton("Save",this.saveModifiedCollection.bind(this)));var a=["General","Indices"],b=["modalTable.ejs","indicesView.ejs"];window.modalView.show(b,"Modify Collection",d,e,null,null,this.events,null,a),"loaded"===this.model.get("status")?this.getIndex():$($("#infoTab").children()[1]).remove()}.bind(this);if(c){var g=function(a,b){if(a)arangoHelper.arangoError("Collection","Could not fetch properties");else{var c=b.journalSize/1048576,d=b.indexBuckets,g=b.waitForSync;e.push(window.modalView.createTextEntry("change-collection-size","Journal size",c,"The maximal size of a journal or datafile (in MB). Must be at least 1.","",!0,[{rule:Joi.string().allow("").optional().regex(/^[0-9]*$/),msg:"Must be a number."}])),e.push(window.modalView.createTextEntry("change-index-buckets","Index buckets",d,"The number of index buckets for this collection. Must be at least 1 and a power of 2.","",!0,[{rule:Joi.string().allow("").optional().regex(/^[1-9][0-9]*$/),msg:"Must be a number greater than 1 and a power of 2."}])),e.push(window.modalView.createSelectEntry("change-collection-sync","Wait for sync",g,"Synchronize to disk before returning from a create or update of a document.",[{value:!1,label:"No"},{value:!0,label:"Yes"}]))}f()}.bind(this);this.model.getProperties(g)}else f()}}.bind(this);window.isCoordinator(a)},bindIndexEvents:function(){this.unbindIndexEvents();var a=this;$("#indexEditView #addIndex").bind("click",function(){a.toggleNewIndexView(),$("#cancelIndex").unbind("click"),$("#cancelIndex").bind("click",function(){a.toggleNewIndexView()}),$("#createIndex").unbind("click"),$("#createIndex").bind("click",function(){a.createIndex()})}),$("#newIndexType").bind("change",function(){a.selectIndexType()}),$(".deleteIndex").bind("click",function(b){a.prepDeleteIndex(b)}),$("#infoTab a").bind("click",function(a){if($("#indexDeleteModal").remove(),"Indices"!==$(a.currentTarget).html()||$(a.currentTarget).parent().hasClass("active")||($("#newIndexView").hide(),$("#indexEditView").show(),$("#modal-dialog .modal-footer .button-danger").hide(),$("#modal-dialog .modal-footer .button-success").hide(),$("#modal-dialog .modal-footer .button-notification").hide()),"General"===$(a.currentTarget).html()&&!$(a.currentTarget).parent().hasClass("active")){$("#modal-dialog .modal-footer .button-danger").show(),$("#modal-dialog .modal-footer .button-success").show(),$("#modal-dialog .modal-footer .button-notification").show();var b=($(".index-button-bar")[0],$(".index-button-bar2")[0]);$("#cancelIndex").is(":visible")&&($("#cancelIndex").detach().appendTo(b),$("#createIndex").detach().appendTo(b))}})},unbindIndexEvents:function(){$("#indexEditView #addIndex").unbind("click"),$("#newIndexType").unbind("change"),$("#infoTab a").unbind("click"),$(".deleteIndex").unbind("click")},createInfoModal:function(){var a=function(a,b,c){if(a)arangoHelper.arangoError("Figures","Could not get revision.");else{var d=[],e={figures:c,revision:b,model:this.model};window.modalView.show("modalCollectionInfo.ejs","Collection: "+this.model.get("name"),d,e)}}.bind(this),b=function(b,c){if(b)arangoHelper.arangoError("Figures","Could not get figures.");else{var d=c;this.model.getRevision(a,d)}}.bind(this);this.model.getFigures(b)},resetIndexForms:function(){$("#indexHeader input").val("").prop("checked",!1),$("#newIndexType").val("Geo").prop("selected",!0),this.selectIndexType()},createIndex:function(){var a,b,c,d=this,e=$("#newIndexType").val(),f={};switch(e){case"Geo":a=$("#newGeoFields").val();var g=d.checkboxToValue("#newGeoJson"),h=d.checkboxToValue("#newGeoConstraint"),i=d.checkboxToValue("#newGeoIgnoreNull");f={type:"geo",fields:d.stringToArray(a),geoJson:g,constraint:h,ignoreNull:i};break;case"Hash":a=$("#newHashFields").val(),b=d.checkboxToValue("#newHashUnique"),c=d.checkboxToValue("#newHashSparse"),f={type:"hash",fields:d.stringToArray(a), unique:b,sparse:c};break;case"Fulltext":a=$("#newFulltextFields").val();var j=parseInt($("#newFulltextMinLength").val(),10)||0;f={type:"fulltext",fields:d.stringToArray(a),minLength:j};break;case"Skiplist":a=$("#newSkiplistFields").val(),b=d.checkboxToValue("#newSkiplistUnique"),c=d.checkboxToValue("#newSkiplistSparse"),f={type:"skiplist",fields:d.stringToArray(a),unique:b,sparse:c}}var k=function(a,b){if(a)if(b){var c=JSON.parse(b.responseText);arangoHelper.arangoError("Document error",c.errorMessage)}else arangoHelper.arangoError("Document error","Could not create index.");d.refreshCollectionsView()};window.modalView.hide(),d.model.createIndex(f,k)},lastTarget:null,prepDeleteIndex:function(a){var b=this;this.lastTarget=a,this.lastId=$(this.lastTarget.currentTarget).parent().parent().first().children().first().text(),$("#modal-dialog .modal-footer").after(''),$("#indexConfirmDelete").unbind("click"),$("#indexConfirmDelete").bind("click",function(){$("#indexDeleteModal").remove(),b.deleteIndex()}),$("#indexAbortDelete").unbind("click"),$("#indexAbortDelete").bind("click",function(){$("#indexDeleteModal").remove()})},refreshCollectionsView:function(){window.App.arangoCollectionsStore.fetch({success:function(){window.App.collectionsView.render()}})},deleteIndex:function(){var a=function(a){a?(arangoHelper.arangoError("Could not delete index"),$("tr th:contains('"+this.lastId+"')").parent().children().last().html(''),this.model.set("locked",!1),this.refreshCollectionsView()):a||void 0===a||($("tr th:contains('"+this.lastId+"')").parent().remove(),this.model.set("locked",!1),this.refreshCollectionsView()),this.refreshCollectionsView()}.bind(this);this.model.set("locked",!0),this.model.deleteIndex(this.lastId,a),$("tr th:contains('"+this.lastId+"')").parent().children().last().html('')},selectIndexType:function(){$(".newIndexClass").hide();var a=$("#newIndexType").val();$("#newIndexType"+a).show()},getIndex:function(){var a=function(a,b){a?window.arangoHelper.arangoError("Index",b.errorMessage):this.renderIndex(b)}.bind(this);this.model.getIndex(a)},renderIndex:function(a){this.index=a;var b="collectionInfoTh modal-text";if(this.index){var c="",d="";_.each(this.index.indexes,function(a){d="primary"===a.type||"edge"===a.type?'':'',void 0!==a.fields&&(c=a.fields.join(", "));var e=a.id.indexOf("/"),f=a.id.substr(e+1,a.id.length),g=a.hasOwnProperty("selectivityEstimate")?(100*a.selectivityEstimate).toFixed(2)+"%":"n/a",h=a.hasOwnProperty("sparse")?a.sparse:"n/a";$("#collectionEditIndexTable").append(""+f+""+a.type+""+a.unique+""+h+""+g+""+c+""+d+"")})}this.bindIndexEvents()},toggleNewIndexView:function(){var a=$(".index-button-bar2")[0];$("#indexEditView").is(":visible")?($("#indexEditView").hide(),$("#newIndexView").show(),$("#cancelIndex").detach().appendTo("#modal-dialog .modal-footer"),$("#createIndex").detach().appendTo("#modal-dialog .modal-footer")):($("#indexEditView").show(),$("#newIndexView").hide(),$("#cancelIndex").detach().appendTo(a),$("#createIndex").detach().appendTo(a)),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","right"),this.resetIndexForms()},stringToArray:function(a){var b=[];return a.split(",").forEach(function(a){a=a.replace(/(^\s+|\s+$)/g,""),""!==a&&b.push(a)}),b},checkboxToValue:function(a){return $(a).prop("checked")}})}(),function(){"use strict";window.CollectionsView=Backbone.View.extend({el:"#content",el2:"#collectionsThumbnailsIn",searchTimeout:null,refreshRate:1e4,template:templateEngine.createTemplate("collectionsView.ejs"),refetchCollections:function(){var a=this;this.collection.fetch({success:function(){a.checkLockedCollections()}})},checkLockedCollections:function(){var a=function(a,b){var c=this;a?console.log("Could not check locked collections"):(this.collection.each(function(a){a.set("locked",!1)}),_.each(b,function(a){var b=c.collection.findWhere({id:a.collection});b.set("locked",!0),b.set("lockType",a.type),b.set("desc",a.desc)}),this.collection.each(function(a){a.get("locked")||($("#collection_"+a.get("name")).find(".corneredBadge").removeClass("loaded unloaded"),$("#collection_"+a.get("name")+" .corneredBadge").text(a.get("status")),$("#collection_"+a.get("name")+" .corneredBadge").addClass(a.get("status"))),a.get("locked")||"loading"===a.get("status")?($("#collection_"+a.get("name")).addClass("locked"),a.get("locked")?($("#collection_"+a.get("name")).find(".corneredBadge").removeClass("loaded unloaded"),$("#collection_"+a.get("name")).find(".corneredBadge").addClass("inProgress"),$("#collection_"+a.get("name")+" .corneredBadge").text(a.get("desc"))):$("#collection_"+a.get("name")+" .corneredBadge").text(a.get("status"))):($("#collection_"+a.get("name")).removeClass("locked"),$("#collection_"+a.get("name")+" .corneredBadge").text(a.get("status")),$("#collection_"+a.get("name")+" .corneredBadge").hasClass("inProgress")&&($("#collection_"+a.get("name")+" .corneredBadge").text(a.get("status")),$("#collection_"+a.get("name")+" .corneredBadge").removeClass("inProgress"),$("#collection_"+a.get("name")+" .corneredBadge").addClass("loaded")),"unloaded"===a.get("status")&&$("#collection_"+a.get("name")+" .icon_arangodb_info").addClass("disabled"))}))}.bind(this);window.arangoHelper.syncAndReturnUninishedAardvarkJobs("index",a)},initialize:function(){var a=this;window.setInterval(function(){"#collections"===window.location.hash&&window.VISIBLE&&a.refetchCollections()},a.refreshRate)},render:function(){this.checkLockedCollections();var a=!1;$("#collectionsDropdown").is(":visible")&&(a=!0),$(this.el).html(this.template.render({})),this.setFilterValues(),a===!0&&$("#collectionsDropdown2").show();var b=this.collection.searchOptions;this.collection.getFiltered(b).forEach(function(a){$("#collectionsThumbnailsIn",this.el).append(new window.CollectionListItemView({model:a,collectionsView:this}).render().el)},this),"none"===$("#collectionsDropdown2").css("display")?$("#collectionsToggle").removeClass("activated"):$("#collectionsToggle").addClass("activated");var c;arangoHelper.setCheckboxStatus("#collectionsDropdown");try{c=b.searchPhrase.length}catch(d){}return $("#searchInput").val(b.searchPhrase),$("#searchInput").focus(),$("#searchInput")[0].setSelectionRange(c,c),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","left"),this},events:{"click #createCollection":"createCollection","keydown #searchInput":"restrictToSearchPhraseKey","change #searchInput":"restrictToSearchPhrase","click #searchSubmit":"restrictToSearchPhrase","click .checkSystemCollections":"checkSystem","click #checkLoaded":"checkLoaded","click #checkUnloaded":"checkUnloaded","click #checkDocument":"checkDocument","click #checkEdge":"checkEdge","click #sortName":"sortName","click #sortType":"sortType","click #sortOrder":"sortOrder","click #collectionsToggle":"toggleView","click .css-label":"checkBoxes"},updateCollectionsView:function(){var a=this;this.collection.fetch({success:function(){a.render()}})},toggleView:function(){$("#collectionsToggle").toggleClass("activated"),$("#collectionsDropdown2").slideToggle(200)},checkBoxes:function(a){var b=a.currentTarget.id;$("#"+b).click()},checkSystem:function(){var a=this.collection.searchOptions,b=a.includeSystem;a.includeSystem=$(".checkSystemCollections").is(":checked")===!0,b!==a.includeSystem&&this.render()},checkEdge:function(){var a=this.collection.searchOptions,b=a.includeEdge;a.includeEdge=$("#checkEdge").is(":checked")===!0,b!==a.includeEdge&&this.render()},checkDocument:function(){var a=this.collection.searchOptions,b=a.includeDocument;a.includeDocument=$("#checkDocument").is(":checked")===!0,b!==a.includeDocument&&this.render()},checkLoaded:function(){var a=this.collection.searchOptions,b=a.includeLoaded;a.includeLoaded=$("#checkLoaded").is(":checked")===!0,b!==a.includeLoaded&&this.render()},checkUnloaded:function(){var a=this.collection.searchOptions,b=a.includeUnloaded;a.includeUnloaded=$("#checkUnloaded").is(":checked")===!0,b!==a.includeUnloaded&&this.render()},sortName:function(){var a=this.collection.searchOptions,b=a.sortBy;a.sortBy=$("#sortName").is(":checked")===!0?"name":"type",b!==a.sortBy&&this.render()},sortType:function(){var a=this.collection.searchOptions,b=a.sortBy;a.sortBy=$("#sortType").is(":checked")===!0?"type":"name",b!==a.sortBy&&this.render()},sortOrder:function(){var a=this.collection.searchOptions,b=a.sortOrder;a.sortOrder=$("#sortOrder").is(":checked")===!0?-1:1,b!==a.sortOrder&&this.render()},setFilterValues:function(){var a=this.collection.searchOptions;$("#checkLoaded").attr("checked",a.includeLoaded),$("#checkUnloaded").attr("checked",a.includeUnloaded),$(".checkSystemCollections").attr("checked",a.includeSystem),$("#checkEdge").attr("checked",a.includeEdge),$("#checkDocument").attr("checked",a.includeDocument),$("#sortName").attr("checked","type"!==a.sortBy),$("#sortType").attr("checked","type"===a.sortBy),$("#sortOrder").attr("checked",1!==a.sortOrder)},search:function(){var a=this.collection.searchOptions,b=$("#searchInput").val();b!==a.searchPhrase&&(a.searchPhrase=b,this.render())},resetSearch:function(){this.searchTimeout&&(clearTimeout(this.searchTimeout),this.searchTimeout=null);var a=this.collection.searchOptions;a.searchPhrase=null},restrictToSearchPhraseKey:function(){var a=this;this.resetSearch(),a.searchTimeout=setTimeout(function(){a.search()},200)},restrictToSearchPhrase:function(){this.resetSearch(),this.search()},createCollection:function(a){a.preventDefault(),this.createNewCollectionModal()},submitCreateCollection:function(){var a=function(a,b){if(a)arangoHelper.arangoError("DB","Could not check coordinator state");else{var c=$("#new-collection-name").val(),d=$("#new-collection-size").val(),e=$("#new-replication-factor").val(),f=$("#new-collection-type").val(),g=$("#new-collection-sync").val(),h=1,i=[];if(""===e&&(e=1),b){if(h=$("#new-collection-shards").val(),""===h&&(h=1),h=parseInt(h,10),1>h)return arangoHelper.arangoError("Number of shards has to be an integer value greater or equal 1"),0;i=_.pluck($("#new-collection-shardBy").select2("data"),"text"),0===i.length&&i.push("_key")}if("_"===c.substr(0,1))return arangoHelper.arangoError('No "_" allowed as first character!'),0;var j=!1,k="true"===g;if(d>0)try{d=1024*JSON.parse(d)*1024}catch(l){return arangoHelper.arangoError("Please enter a valid number"),0}if(""===c)return arangoHelper.arangoError("No collection name entered!"),0;var m=function(a,b){if(a)try{b=JSON.parse(b.responseText),arangoHelper.arangoError("Error",b.errorMessage)}catch(c){console.log(c)}else this.updateCollectionsView();window.modalView.hide()}.bind(this);this.collection.newCollection({collName:c,wfs:k,isSystem:j,collSize:d,replicationFactor:e,collType:f,shards:h,shardBy:i},m)}}.bind(this);window.isCoordinator(a)},createNewCollectionModal:function(){var a=function(a,b){if(a)arangoHelper.arangoError("DB","Could not check coordinator state");else{var c=[],d=[],e={},f=[];d.push(window.modalView.createTextEntry("new-collection-name","Name","",!1,"",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Collection name must always start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only symbols, "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No collection name given."}])),d.push(window.modalView.createSelectEntry("new-collection-type","Type","","The type of the collection to create.",[{value:2,label:"Document"},{value:3,label:"Edge"}])),b&&(d.push(window.modalView.createTextEntry("new-collection-shards","Shards","","The number of shards to create. You cannot change this afterwards. Recommended: DBServers squared","",!0)),d.push(window.modalView.createSelect2Entry("new-collection-shardBy","shardBy","","The keys used to distribute documents on shards. Type the key and press return to add it.","_key",!1))),c.push(window.modalView.createSuccessButton("Save",this.submitCreateCollection.bind(this))),f.push(window.modalView.createTextEntry("new-collection-size","Journal size","","The maximal size of a journal or datafile (in MB). Must be at least 1.","",!1,[{rule:Joi.string().allow("").optional().regex(/^[0-9]*$/),msg:"Must be a number."}])),window.App.isCluster&&f.push(window.modalView.createTextEntry("new-replication-factor","Replication factor","","Numeric value. Must be at least 1. Description: TODO","",!1,[{rule:Joi.string().allow("").optional().regex(/^[0-9]*$/),msg:"Must be a number."}])),f.push(window.modalView.createSelectEntry("new-collection-sync","Wait for sync","","Synchronize to disk before returning from a create or update of a document.",[{value:!1,label:"No"},{value:!0,label:"Yes"}])),e.header="Advanced",e.content=f,window.modalView.show("modalTable.ejs","New Collection",c,d,e)}}.bind(this);window.isCoordinator(a)}})}(),function(){"use strict";function a(a,b){return(void 0===a||null===a)&&(a=0),a.toFixed(b)}window.DashboardView=Backbone.View.extend({el:"#content",interval:1e4,defaultTimeFrame:12e5,defaultDetailFrame:1728e5,history:{},graphs:{},events:{"click .subViewNavbar .subMenuEntry":"toggleViews"},tendencies:{asyncPerSecondCurrent:["asyncPerSecondCurrent","asyncPerSecondPercentChange"],syncPerSecondCurrent:["syncPerSecondCurrent","syncPerSecondPercentChange"],clientConnectionsCurrent:["clientConnectionsCurrent","clientConnectionsPercentChange"],clientConnectionsAverage:["clientConnections15M","clientConnections15MPercentChange"],numberOfThreadsCurrent:["numberOfThreadsCurrent","numberOfThreadsPercentChange"],numberOfThreadsAverage:["numberOfThreads15M","numberOfThreads15MPercentChange"],virtualSizeCurrent:["virtualSizeCurrent","virtualSizePercentChange"],virtualSizeAverage:["virtualSize15M","virtualSize15MPercentChange"]},barCharts:{totalTimeDistribution:["queueTimeDistributionPercent","requestTimeDistributionPercent"],dataTransferDistribution:["bytesSentDistributionPercent","bytesReceivedDistributionPercent"]},barChartsElementNames:{queueTimeDistributionPercent:"Queue",requestTimeDistributionPercent:"Computation",bytesSentDistributionPercent:"Bytes sent",bytesReceivedDistributionPercent:"Bytes received"},getDetailFigure:function(a){var b=$(a.currentTarget).attr("id").replace(/ChartButton/g,"");return b},showDetail:function(a){var b,c=this,d=this.getDetailFigure(a);b=this.dygraphConfig.getDetailChartConfig(d),this.getHistoryStatistics(d),this.detailGraphFigure=d,window.modalView.hideFooter=!0,window.modalView.hide(),window.modalView.show("modalGraph.ejs",b.header,void 0,void 0,void 0,void 0,this.events),window.modalView.hideFooter=!1,$("#modal-dialog").on("hidden",function(){c.hidden()}),$("#modal-dialog").toggleClass("modal-chart-detail",!0),b.height=.7*$(window).height(),b.width=$(".modal-inner-detail").width(),b.labelsDiv=$(b.labelsDiv)[0],this.detailGraph=new Dygraph(document.getElementById("lineChartDetail"),this.history[this.server][d],b)},hidden:function(){this.detailGraph.destroy(),delete this.detailGraph,delete this.detailGraphFigure},getCurrentSize:function(a){"#"!==a.substr(0,1)&&(a="#"+a);var b,c;return $(a).attr("style",""),b=$(a).height(),c=$(a).width(),{height:b,width:c}},prepareDygraphs:function(){var a,b=this;this.dygraphConfig.getDashBoardFigures().forEach(function(c){a=b.dygraphConfig.getDefaultConfig(c);var d=b.getCurrentSize(a.div);a.height=d.height,a.width=d.width,b.graphs[c]=new Dygraph(document.getElementById(a.div),b.history[b.server][c]||[],a)})},initialize:function(a){this.options=a,this.dygraphConfig=a.dygraphConfig,this.d3NotInitialized=!0,this.events["click .dashboard-sub-bar-menu-sign"]=this.showDetail.bind(this),this.events["mousedown .dygraph-rangesel-zoomhandle"]=this.stopUpdating.bind(this),this.events["mouseup .dygraph-rangesel-zoomhandle"]=this.startUpdating.bind(this),this.serverInfo=a.serverToShow,this.serverInfo?this.server=this.serverInfo.target:this.server="-local-",this.history[this.server]={}},toggleViews:function(a){var b=a.currentTarget.id.split("-")[0],c=this,d=["replication","requests","system"];_.each(d,function(a){b!==a?$("#"+a).hide():($("#"+a).show(),c.resize(),$(window).resize())}),$(".subMenuEntries").children().removeClass("active"),$("#"+b+"-statistics").addClass("active"),window.setTimeout(function(){c.resize(),$(window).resize()},200)},cleanupHistory:function(a){if(this.history[this.server].hasOwnProperty(a)&&this.history[this.server][a].length>this.defaultTimeFrame/this.interval)for(;this.history[this.server][a].length>this.defaultTimeFrame/this.interval;)this.history[this.server][a].shift()},updateCharts:function(){var a=this;return this.detailGraph?void this.updateLineChart(this.detailGraphFigure,!0):(this.prepareD3Charts(this.isUpdating),this.prepareResidentSize(this.isUpdating),this.updateTendencies(),void Object.keys(this.graphs).forEach(function(b){a.updateLineChart(b,!1)}))},updateTendencies:function(){var a=this,b=this.tendencies,c="";Object.keys(b).forEach(function(b){var d="",e=0;a.history.hasOwnProperty(a.server)&&a.history[a.server].hasOwnProperty(b)&&(e=a.history[a.server][b][1]),0>e?c="#d05448":(c="#7da817",d="+"),a.history.hasOwnProperty(a.server)&&a.history[a.server].hasOwnProperty(b)?$("#"+b).html(a.history[a.server][b][0]+'
    '+d+e+"%"):$("#"+b).html('

    data not ready yet

    ')})},updateDateWindow:function(a,b){var c,d,e=(new Date).getTime();return b&&a.dateWindow_?(c=a.dateWindow_[0],d=e-a.dateWindow_[1]-5*this.interval>0?a.dateWindow_[1]:e,[c,d]):[e-this.defaultTimeFrame,e]},updateLineChart:function(a,b){var c=b?this.detailGraph:this.graphs[a],d={file:this.history[this.server][a],dateWindow:this.updateDateWindow(c,b)},e=0,f=[];_.each(d.file,function(a){var b=a[0].getSeconds()-a[0].getSeconds()%10;d.file[e][0].setSeconds(b),f.push(d.file[e][0]),e++});for(var g=new Date(Math.max.apply(null,f)),h=new Date(Math.min.apply(null,f)),i=new Date(h.getTime()),j=[],k=[];g>i;)i=new Date(i.setSeconds(i.getSeconds()+10)),k.push(i);_.each(k,function(a){var b=!1;_.each(d.file,function(c){Math.floor(a.getTime()/1e3)===Math.floor(c[0].getTime()/1e3)&&(b=!0)}),b===!1&&a1)){var f=0,g=0;9===c.length&&(f+=c[1],f+=c[6],f+=c[7],f+=c[8],g+=c[2],g+=c[3],g+=c[4],g+=c[5],c=[c[0],f,g]),d.history[d.server][e].push(c)}})},cutOffHistory:function(a,b){for(var c,d=this;0!==d.history[d.server][a].length&&(c=d.history[d.server][a][0][0],!(c>=b));)d.history[d.server][a].shift()},cutOffDygraphHistory:function(a){var b=this,c=new Date(a);this.dygraphConfig.getDashBoardFigures(!0).forEach(function(a){b.dygraphConfig.mapStatToFigure[a]&&b.history[b.server][a]&&b.cutOffHistory(a,c)})},mergeHistory:function(b){var c,d=this;for(c=0;c=0;--c)d.values.push({label:this.getLabel(b[a[0]].cuts,c),value:b[a[0]].values[c]}),e.values.push({label:this.getLabel(b[a[1]].cuts,c),value:b[a[1]].values[c]});return[d,e]},getLabel:function(a,b){return a[b]?0===b?"0 - "+a[b]:a[b-1]+" - "+a[b]:">"+a[b-1]},renderReplicationStatistics:function(a){$("#repl-numbers table tr:nth-child(1) > td:nth-child(2)").html(a.state.totalEvents),$("#repl-numbers table tr:nth-child(2) > td:nth-child(2)").html(a.state.totalRequests),$("#repl-numbers table tr:nth-child(3) > td:nth-child(2)").html(a.state.totalFailedConnects),a.state.lastAppliedContinuousTick?$("#repl-ticks table tr:nth-child(1) > td:nth-child(2)").html(a.state.lastAppliedContinuousTick):$("#repl-ticks table tr:nth-child(1) > td:nth-child(2)").html("no data available").addClass("no-data"),a.state.lastProcessedContinuousTick?$("#repl-ticks table tr:nth-child(2) > td:nth-child(2)").html(a.state.lastProcessedContinuousTick):$("#repl-ticks table tr:nth-child(2) > td:nth-child(2)").html("no data available").addClass("no-data"),a.state.lastAvailableContinuousTick?$("#repl-ticks table tr:nth-child(3) > td:nth-child(2)").html(a.state.lastAvailableContinuousTick):$("#repl-ticks table tr:nth-child(3) > td:nth-child(2)").html("no data available").addClass("no-data"),$("#repl-progress table tr:nth-child(1) > td:nth-child(2)").html(a.state.progress.message),$("#repl-progress table tr:nth-child(2) > td:nth-child(2)").html(a.state.progress.time),$("#repl-progress table tr:nth-child(3) > td:nth-child(2)").html(a.state.progress.failedConnects)},getReplicationStatistics:function(){var a=this;$.ajax(arangoHelper.databaseUrl("/_api/replication/applier-state"),{async:!0}).done(function(b){if(b.hasOwnProperty("state")){var c;c=b.state.running?"active":"inactive",c=''+c+"",$("#replication-chart .dashboard-sub-bar").html("Replication "+c),a.renderReplicationStatistics(b)}})},getStatistics:function(a,b){var c=this,d=arangoHelper.databaseUrl("/_admin/aardvark/statistics/short","_system"),e="?start=";e+=c.nextStart?c.nextStart:((new Date).getTime()-c.defaultTimeFrame)/1e3,"-local-"!==c.server&&(e+="&type=short&DBserver="+c.serverInfo.target,c.history.hasOwnProperty(c.server)||(c.history[c.server]={})),$.ajax(d+e,{async:!0,xhrFields:{withCredentials:!0},crossDomain:!0}).done(function(d){d.times.length>0&&(c.isUpdating=!0,c.mergeHistory(d)),c.isUpdating!==!1&&(a&&a(d.enabled,b),c.updateCharts())}).error(function(a){console.log("stat fetch req error"),console.log(a)}),this.getReplicationStatistics()},getHistoryStatistics:function(a){var b=this,c="statistics/long",d="?filter="+this.dygraphConfig.mapStatToFigure[a].join();"-local-"!==b.server&&(c=b.server.endpoint+arangoHelper.databaseUrl("/_admin/aardvark/statistics/cluster"),d+="&type=long&DBserver="+b.server.target,b.history.hasOwnProperty(b.server)||(b.history[b.server]={}));var e=window.location.href.split("/"),f=e[0]+"//"+e[2]+"/"+e[3]+"/_system/"+e[5]+"/"+e[6]+"/";$.ajax(f+c+d,{async:!0}).done(function(c){var d;for(b.history[b.server][a]=[],d=0;d data not ready yet

    '),$("#totalTimeDistribution").prepend('

    data not ready yet

    '),$(".dashboard-bar-chart-title").append('

    data not ready yet

    '))},removeEmptyDataLabels:function(){$(".dataNotReadyYet").remove()},prepareResidentSize:function(b){var c=this,d=this.getCurrentSize("#residentSizeChartContainer"),e=c.history[c.server].residentSizeCurrent/1024/1024,f="";f=1025>e?a(e,2)+" MB":a(e/1024,2)+" GB";var g=a(100*c.history[c.server].residentSizePercent,2),h=[a(c.history[c.server].physicalMemory/1024/1024/1024,0)+" GB"];return void 0===c.history[c.server].residentSizeChart?void this.addEmptyDataLabels():(this.removeEmptyDataLabels(),void nv.addGraph(function(){var a=nv.models.multiBarHorizontalChart().x(function(a){return a.label}).y(function(a){return a.value}).width(d.width).height(d.height).margin({top:($("residentSizeChartContainer").outerHeight()-$("residentSizeChartContainer").height())/2,right:1,bottom:($("residentSizeChartContainer").outerHeight()-$("residentSizeChartContainer").height())/2,left:1}).showValues(!1).showYAxis(!1).showXAxis(!1).showLegend(!1).showControls(!1).stacked(!0);return a.yAxis.tickFormat(function(a){return a+"%"}).showMaxMin(!1),a.xAxis.showMaxMin(!1),d3.select("#residentSizeChart svg").datum(c.history[c.server].residentSizeChart).call(a),d3.select("#residentSizeChart svg").select(".nv-zeroLine").remove(),b&&(d3.select("#residentSizeChart svg").select("#total").remove(),d3.select("#residentSizeChart svg").select("#percentage").remove()),d3.select(".dashboard-bar-chart-title .percentage").html(f+" ("+g+" %)"),d3.select(".dashboard-bar-chart-title .absolut").html(h[0]),nv.utils.windowResize(a.update),a},function(){d3.selectAll("#residentSizeChart .nv-bar").on("click",function(){})}))},prepareD3Charts:function(b){var c=this,d={totalTimeDistribution:["queueTimeDistributionPercent","requestTimeDistributionPercent"],dataTransferDistribution:["bytesSentDistributionPercent","bytesReceivedDistributionPercent"]};this.d3NotInitialized&&(b=!1,this.d3NotInitialized=!1),_.each(Object.keys(d),function(b){var d=c.getCurrentSize("#"+b+"Container .dashboard-interior-chart"),e="#"+b+"Container svg";return void 0===c.history[c.server].residentSizeChart?void c.addEmptyDataLabels():(c.removeEmptyDataLabels(),void nv.addGraph(function(){var f=[0,.25,.5,.75,1],g=75,h=23,i=6;d.width<219?(f=[0,.5,1],g=72,h=21,i=5):d.width<299?(f=[0,.3334,.6667,1],g=77):d.width<379?g=87:d.width<459?g=95:d.width<539?g=100:d.width<619&&(g=105);var j=nv.models.multiBarHorizontalChart().x(function(a){return a.label}).y(function(a){return a.value}).width(d.width).height(d.height).margin({top:5,right:20,bottom:h,left:g}).showValues(!1).showYAxis(!0).showXAxis(!0).showLegend(!1).showControls(!1).forceY([0,1]);j.yAxis.showMaxMin(!1);d3.select(".nv-y.nv-axis").selectAll("text").attr("transform","translate (0, "+i+")");return j.yAxis.tickValues(f).tickFormat(function(b){return a(100*b*100/100,0)+"%"}),d3.select(e).datum(c.history[c.server][b]).call(j),nv.utils.windowResize(j.update),j},function(){d3.selectAll(e+" .nv-bar").on("click",function(){})}))})},stopUpdating:function(){this.isUpdating=!1},startUpdating:function(){var a=this;a.timer||(a.timer=window.setInterval(function(){window.App.isCluster?window.location.hash.indexOf(a.serverInfo.target)>-1&&a.getStatistics():a.getStatistics()},a.interval))},resize:function(){if(this.isUpdating){var a,b=this;_.each(this.graphs,function(c){a=b.getCurrentSize(c.maindiv_.id),c.resize(a.width,a.height)}),this.detailGraph&&(a=this.getCurrentSize(this.detailGraph.maindiv_.id),this.detailGraph.resize(a.width,a.height)),this.prepareD3Charts(!0),this.prepareResidentSize(!0)}},template:templateEngine.createTemplate("dashboardView.ejs"),render:function(a){var b=function(a,b){return b||$(this.el).html(this.template.render()),a&&"_system"===frontendConfig.db?(this.prepareDygraphs(),this.isUpdating&&(this.prepareD3Charts(),this.prepareResidentSize(),this.updateTendencies(),$(window).trigger("resize")),this.startUpdating(),void $(window).resize()):($(this.el).html(""),void(this.server?$(this.el).append('
    Server statistics ('+this.server+") are disabled.
    "):$(this.el).append('
    Server statistics are disabled.
    ')))}.bind(this),c=function(){$(this.el).html(""),$(".contentDiv").remove(),$(".headerBar").remove(),$(".dashboard-headerbar").remove(),$(".dashboard-row").remove(),$(this.el).append('
    You do not have permission to view this page.
    '),$(this.el).append("
    You can switch to '_system' to see the dashboard.
    ")}.bind(this);if("_system"!==frontendConfig.db)return void c();var d=function(d,e){d||(e?this.getStatistics(b,a):c())}.bind(this);void 0===window.App.currentDB.get("name")?window.setTimeout(function(){return"_system"!==window.App.currentDB.get("name")?void c():void this.options.database.hasSystemAccess(d)}.bind(this),300):this.options.database.hasSystemAccess(d)}})}(),function(){"use strict";window.databaseView=Backbone.View.extend({users:null,el:"#content",template:templateEngine.createTemplate("databaseView.ejs"),dropdownVisible:!1,currentDB:"",events:{"click #createDatabase":"createDatabase","click #submitCreateDatabase":"submitCreateDatabase","click .editDatabase":"editDatabase","click .icon":"editDatabase","click #selectDatabase":"updateDatabase","click #submitDeleteDatabase":"submitDeleteDatabase","click .contentRowInactive a":"changeDatabase","keyup #databaseSearchInput":"search","click #databaseSearchSubmit":"search","click #databaseToggle":"toggleSettingsDropdown","click .css-label":"checkBoxes","click #dbSortDesc":"sorting"},sorting:function(){$("#dbSortDesc").is(":checked")?this.collection.setSortingDesc(!0):this.collection.setSortingDesc(!1),$("#databaseDropdown").is(":visible")?this.dropdownVisible=!0:this.dropdownVisible=!1,this.render()},initialize:function(){this.collection.fetch({async:!0})},checkBoxes:function(a){var b=a.currentTarget.id;$("#"+b).click()},render:function(){var a=function(a,b){a?arangoHelper.arangoError("DB","Could not get current db properties"):(this.currentDB=b,this.collection.sort(),$(this.el).html(this.template.render({collection:this.collection,searchString:"",currentDB:this.currentDB})),this.dropdownVisible===!0&&($("#dbSortDesc").attr("checked",this.collection.sortOptions.desc),$("#databaseToggle").toggleClass("activated"),$("#databaseDropdown2").show()),arangoHelper.setCheckboxStatus("#databaseDropdown"),this.replaceSVGs())}.bind(this);return this.collection.getCurrentDatabase(a),this},toggleSettingsDropdown:function(){$("#dbSortDesc").attr("checked",this.collection.sortOptions.desc),$("#databaseToggle").toggleClass("activated"),$("#databaseDropdown2").slideToggle(200)},selectedDatabase:function(){return $("#selectDatabases").val()},handleError:function(a,b,c){return 409===a?void arangoHelper.arangoError("DB","Database "+c+" already exists."):400===a?void arangoHelper.arangoError("DB","Invalid Parameters"):403===a?void arangoHelper.arangoError("DB","Insufficent rights. Execute this from _system database"):void 0; -},validateDatabaseInfo:function(a,b){return""===b?(arangoHelper.arangoError("DB","You have to define an owner for the new database"),!1):""===a?(arangoHelper.arangoError("DB","You have to define a name for the new database"),!1):0===a.indexOf("_")?(arangoHelper.arangoError("DB ","Databasename should not start with _"),!1):a.match(/^[a-zA-Z][a-zA-Z0-9_\-]*$/)?!0:(arangoHelper.arangoError("DB","Databasename may only contain numbers, letters, _ and -"),!1)},createDatabase:function(a){a.preventDefault(),this.createAddDatabaseModal()},switchDatabase:function(a){if(!$(a.target).parent().hasClass("iconSet")){var b=$(a.currentTarget).find("h5").text();if(""!==b){var c=this.collection.createDatabaseURL(b);window.location.replace(c)}}},submitCreateDatabase:function(){var a,b=this,c=$("#newDatabaseName").val(),d=$("#newUser").val();if(a="true"===$("#useDefaultPassword").val()?"ARANGODB_DEFAULT_ROOT_PASSWORD":$("#newPassword").val(),this.validateDatabaseInfo(c,d,a)){var e={name:c,users:[{username:d,passwd:a,active:!0}]};this.collection.create(e,{wait:!0,error:function(a,d){b.handleError(d.status,d.statusText,c)},success:function(){b.updateDatabases(),window.modalView.hide(),window.App.naviView.dbSelectionView.render($("#dbSelect"))}})}},submitDeleteDatabase:function(a){var b=this.collection.where({name:a});b[0].destroy({wait:!0,url:arangoHelper.databaseUrl("/_api/database/"+a)}),this.updateDatabases(),window.App.naviView.dbSelectionView.render($("#dbSelect")),window.modalView.hide()},changeDatabase:function(a){var b=$(a.currentTarget).attr("id"),c=this.collection.createDatabaseURL(b);window.location.replace(c)},updateDatabases:function(){var a=this;this.collection.fetch({success:function(){a.render(),window.App.handleSelectDatabase()}})},editDatabase:function(a){var b=this.evaluateDatabaseName($(a.currentTarget).attr("id"),"_edit-database"),c=!0;b===this.currentDB&&(c=!1),this.createEditDatabaseModal(b,c)},search:function(){var a,b,c,d;a=$("#databaseSearchInput"),b=$("#databaseSearchInput").val(),d=this.collection.filter(function(a){return-1!==a.get("name").indexOf(b)}),$(this.el).html(this.template.render({collection:d,searchString:b,currentDB:this.currentDB})),this.replaceSVGs(),a=$("#databaseSearchInput"),c=a.val().length,a.focus(),a[0].setSelectionRange(c,c)},replaceSVGs:function(){$(".svgToReplace").each(function(){var a=$(this),b=a.attr("id"),c=a.attr("src");$.get(c,function(c){var d=$(c).find("svg");d.attr("id",b).attr("class","tile-icon-svg").removeAttr("xmlns:a"),a.replaceWith(d)},"xml")})},evaluateDatabaseName:function(a,b){var c=a.lastIndexOf(b);return a.substring(0,c)},createEditDatabaseModal:function(a,b){var c=[],d=[];d.push(window.modalView.createReadOnlyEntry("id_name","Name",a,"")),b?c.push(window.modalView.createDeleteButton("Delete",this.submitDeleteDatabase.bind(this,a))):c.push(window.modalView.createDisabledButton("Delete")),window.modalView.show("modalTable.ejs","Delete database",c,d)},createAddDatabaseModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("newDatabaseName","Name","",!1,"Database Name",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Database name must start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only Symbols "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No database name given."}])),b.push(window.modalView.createTextEntry("newUser","Username",null!==this.users?this.users.whoAmI():"root","Please define the owner of this database. This will be the only user having initial access to this database if authentication is turned on. Please note that if you specify a username different to your account you will not be able to access the database with your account after having creating it. Specifying a username is mandatory even with authentication turned off. If there is a failure you will be informed.","Database Owner",!0,[{rule:Joi.string().required(),msg:"No username given."}])),b.push(window.modalView.createSelectEntry("useDefaultPassword","Use default password",!0,"Read the password from the environment variable ARANGODB_DEFAULT_ROOT_PASSWORD.",[{value:!1,label:"No"},{value:!0,label:"Yes"}])),b.push(window.modalView.createPasswordEntry("newPassword","Password","",!1,"",!1)),a.push(window.modalView.createSuccessButton("Create",this.submitCreateDatabase.bind(this))),window.modalView.show("modalTable.ejs","Create Database",a,b),$("#useDefaultPassword").change(function(){"true"===$("#useDefaultPassword").val()?$("#row_newPassword").hide():$("#row_newPassword").show()}),$("#row_newPassword").hide()}})}(),function(){"use strict";window.DBSelectionView=Backbone.View.extend({template:templateEngine.createTemplate("dbSelectionView.ejs"),events:{"click .dbSelectionLink":"changeDatabase"},initialize:function(a){this.current=a.current},changeDatabase:function(a){var b=$(a.currentTarget).closest(".dbSelectionLink.tab").attr("id"),c=this.collection.createDatabaseURL(b);window.location.replace(c)},render:function(a){var b=function(b,c){b?arangoHelper.arangoError("DB","Could not fetch databases"):(this.$el=a,this.$el.html(this.template.render({list:c,current:this.current.get("name")})),this.delegateEvents())}.bind(this);return this.collection.getDatabasesForUser(b),this.el}})}(),function(){"use strict";var a=function(a){var b=a.split("/");return"collection/"+encodeURIComponent(b[0])+"/"+encodeURIComponent(b[1])};window.DocumentView=Backbone.View.extend({el:"#content",colid:0,docid:0,customView:!1,defaultMode:"tree",template:templateEngine.createTemplate("documentView.ejs"),events:{"click #saveDocumentButton":"saveDocument","click #deleteDocumentButton":"deleteDocumentModal","click #confirmDeleteDocument":"deleteDocument","click #document-from":"navigateToDocument","click #document-to":"navigateToDocument","keydown #documentEditor .ace_editor":"keyPress","keyup .jsoneditor .search input":"checkSearchBox","click .jsoneditor .modes":"storeMode","click #addDocument":"addDocument"},checkSearchBox:function(a){""===$(a.currentTarget).val()&&this.editor.expandAll()},addDocument:function(){window.App.documentsView.addDocumentModal()},storeMode:function(){var a=this;$(".type-modes").on("click",function(b){a.defaultMode=$(b.currentTarget).text().toLowerCase()})},keyPress:function(a){a.ctrlKey&&13===a.keyCode?(a.preventDefault(),this.saveDocument()):a.metaKey&&13===a.keyCode&&(a.preventDefault(),this.saveDocument())},editor:0,setType:function(a){a=2===a?"document":"edge";var b=function(a,b,c){if(a)console.log(b),arangoHelper.arangoError("Error","Could not fetch data.");else{var d=c+": ";this.type=c,this.fillInfo(d),this.fillEditor()}}.bind(this);"edge"===a?this.collection.getEdge(this.colid,this.docid,b):"document"===a&&this.collection.getDocument(this.colid,this.docid,b)},deleteDocumentModal:function(){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry("doc-delete-button","Delete","Delete this "+this.type+"?",void 0,void 0,!1,/[<>&'"]/)),a.push(window.modalView.createDeleteButton("Delete",this.deleteDocument.bind(this))),window.modalView.show("modalTable.ejs","Delete Document",a,b)},deleteDocument:function(){var a=function(){if(this.customView)this.customDeleteFunction();else{var a="collection/"+encodeURIComponent(this.colid)+"/documents/1";window.modalView.hide(),window.App.navigate(a,{trigger:!0})}}.bind(this);if("document"===this.type){var b=function(b){b?arangoHelper.arangoError("Error","Could not delete document"):a()}.bind(this);this.collection.deleteDocument(this.colid,this.docid,b)}else if("edge"===this.type){var c=function(b){b?arangoHelper.arangoError("Edge error","Could not delete edge"):a()}.bind(this);this.collection.deleteEdge(this.colid,this.docid,c)}},navigateToDocument:function(a){var b=$(a.target).attr("documentLink");b&&window.App.navigate(b,{trigger:!0})},fillInfo:function(b){var c=this.collection.first(),d=c.get("_id"),e=c.get("_key"),f=c.get("_rev"),g=c.get("_from"),h=c.get("_to");if($("#document-type").text(b),$("#document-id").text(d),$("#document-key").text(e),$("#document-rev").text(f),g&&h){var i=a(g),j=a(h);$("#document-from").text(g),$("#document-from").attr("documentLink",i),$("#document-to").text(h),$("#document-to").attr("documentLink",j)}else $(".edge-info-container").hide()},fillEditor:function(){var a=this.removeReadonlyKeys(this.collection.first().attributes);$(".disabledBread").last().text(this.collection.first().get("_key")),this.editor.set(a),$(".ace_content").attr("font-size","11pt")},jsonContentChanged:function(){this.enableSaveButton()},resize:function(){$("#documentEditor").height($(".centralRow").height()-300)},render:function(){$(this.el).html(this.template.render({})),$("#documentEditor").height($(".centralRow").height()-300),this.disableSaveButton(),this.breadcrumb();var a=this,b=document.getElementById("documentEditor"),c={change:function(){a.jsonContentChanged()},search:!0,mode:"tree",modes:["tree","code"],iconlib:"fontawesome4"};return this.editor=new JSONEditor(b,c),this.editor.setMode(this.defaultMode),this},removeReadonlyKeys:function(a){return _.omit(a,["_key","_id","_from","_to","_rev"])},saveDocument:function(){if(void 0===$("#saveDocumentButton").attr("disabled"))if("_"===this.collection.first().attributes._id.substr(0,1)){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry("doc-save-system-button","Caution","You are modifying a system collection. Really continue?",void 0,void 0,!1,/[<>&'"]/)),a.push(window.modalView.createSuccessButton("Save",this.confirmSaveDocument.bind(this))),window.modalView.show("modalTable.ejs","Modify System Collection",a,b)}else this.confirmSaveDocument()},confirmSaveDocument:function(){window.modalView.hide();var a;try{a=this.editor.get()}catch(b){return this.errorConfirmation(b),void this.disableSaveButton()}if(a=JSON.stringify(a),"document"===this.type){var c=function(a){a?arangoHelper.arangoError("Error","Could not save document."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveDocument(this.colid,this.docid,a,c)}else if("edge"===this.type){var d=function(a){a?arangoHelper.arangoError("Error","Could not save edge."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveEdge(this.colid,this.docid,a,d)}},successConfirmation:function(){arangoHelper.arangoNotification("Document saved."),$("#documentEditor .tree").animate({backgroundColor:"#C6FFB0"},500),$("#documentEditor .tree").animate({backgroundColor:"#FFFFF"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#C6FFB0"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#FFFFF"},500)},errorConfirmation:function(a){arangoHelper.arangoError("Document editor: ",a),$("#documentEditor .tree").animate({backgroundColor:"#FFB0B0"},500),$("#documentEditor .tree").animate({backgroundColor:"#FFFFF"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#FFB0B0"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#FFFFF"},500)},enableSaveButton:function(){$("#saveDocumentButton").prop("disabled",!1),$("#saveDocumentButton").addClass("button-success"),$("#saveDocumentButton").removeClass("button-close")},disableSaveButton:function(){$("#saveDocumentButton").prop("disabled",!0),$("#saveDocumentButton").addClass("button-close"),$("#saveDocumentButton").removeClass("button-success")},breadcrumb:function(){var a=window.location.hash.split("/");$("#subNavigationBar .breadcrumb").html('Collection: '+a[1]+'Document: '+a[2])},escaped:function(a){return a.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}})}(),function(){"use strict";window.DocumentsView=window.PaginationView.extend({filters:{0:!0},filterId:0,paginationDiv:"#documentsToolbarF",idPrefix:"documents",addDocumentSwitch:!0,activeFilter:!1,lastCollectionName:void 0,restoredFilters:[],editMode:!1,allowUpload:!1,el:"#content",table:"#documentsTableID",template:templateEngine.createTemplate("documentsView.ejs"),collectionContext:{prev:null,next:null},editButtons:["#deleteSelected","#moveSelected"],initialize:function(a){this.documentStore=a.documentStore,this.collectionsStore=a.collectionsStore,this.tableView=new window.TableView({el:this.table,collection:this.collection}),this.tableView.setRowClick(this.clicked.bind(this)),this.tableView.setRemoveClick(this.remove.bind(this))},resize:function(){$("#docPureTable").height($(".centralRow").height()-210),$("#docPureTable .pure-table-body").css("max-height",$("#docPureTable").height()-47)},setCollectionId:function(a,b){this.collection.setCollection(a),this.collection.setPage(b),this.page=b;var c=function(b,c){b?arangoHelper.arangoError("Error","Could not get collection properties."):(this.type=c,this.collection.getDocuments(this.getDocsCallback.bind(this)),this.collectionModel=this.collectionsStore.get(a))}.bind(this);arangoHelper.collectionApiType(a,null,c)},getDocsCallback:function(a){$("#documents_last").css("visibility","hidden"),$("#documents_first").css("visibility","hidden"),a?(window.progressView.hide(),arangoHelper.arangoError("Document error","Could not fetch requested documents.")):a&&void 0===a||(window.progressView.hide(),this.drawTable(),this.renderPaginationElements())},events:{"click #collectionPrev":"prevCollection","click #collectionNext":"nextCollection","click #filterCollection":"filterCollection","click #markDocuments":"editDocuments","click #importCollection":"importCollection","click #exportCollection":"exportCollection","click #filterSend":"sendFilter","click #addFilterItem":"addFilterItem","click .removeFilterItem":"removeFilterItem","click #deleteSelected":"deleteSelectedDocs","click #moveSelected":"moveSelectedDocs","click #addDocumentButton":"addDocumentModal","click #documents_first":"firstDocuments","click #documents_last":"lastDocuments","click #documents_prev":"prevDocuments","click #documents_next":"nextDocuments","click #confirmDeleteBtn":"confirmDelete","click .key":"nop",keyup:"returnPressedHandler","keydown .queryline input":"filterValueKeydown","click #importModal":"showImportModal","click #resetView":"resetView","click #confirmDocImport":"startUpload","click #exportDocuments":"startDownload","change #documentSize":"setPagesize","change #docsSort":"setSorting"},showSpinner:function(){$("#uploadIndicator").show()},hideSpinner:function(){$("#uploadIndicator").hide()},showImportModal:function(){$("#docImportModal").modal("show")},hideImportModal:function(){$("#docImportModal").modal("hide")},setPagesize:function(){var a=$("#documentSize").find(":selected").val();this.collection.setPagesize(a),this.collection.getDocuments(this.getDocsCallback.bind(this))},setSorting:function(){var a=$("#docsSort").val();(""===a||void 0===a||null===a)&&(a="_key"),this.collection.setSort(a)},returnPressedHandler:function(a){13===a.keyCode&&$(a.target).is($("#docsSort"))&&this.collection.getDocuments(this.getDocsCallback.bind(this)),13===a.keyCode&&$("#confirmDeleteBtn").attr("disabled")===!1&&this.confirmDelete()},nop:function(a){a.stopPropagation()},resetView:function(){var a=function(a){a&&arangoHelper.arangoError("Document","Could not fetch documents count")}.bind(this);$("input").val(""),$("select").val("=="),this.removeAllFilterItems(),$("#documentSize").val(this.collection.getPageSize()),$("#documents_last").css("visibility","visible"),$("#documents_first").css("visibility","visible"),this.addDocumentSwitch=!0,this.collection.resetFilter(),this.collection.loadTotal(a),this.restoredFilters=[],this.allowUpload=!1,this.files=void 0,this.file=void 0,$("#confirmDocImport").attr("disabled",!0),this.markFilterToggle(),this.collection.getDocuments(this.getDocsCallback.bind(this))},startDownload:function(){var a=this.collection.buildDownloadDocumentQuery();""!==a||void 0!==a||null!==a?window.open(encodeURI("query/result/download/"+btoa(JSON.stringify(a)))):arangoHelper.arangoError("Document error","could not download documents")},startUpload:function(){var a=function(a,b){a?(arangoHelper.arangoError("Upload",b),this.hideSpinner()):(this.hideSpinner(),this.hideImportModal(),this.resetView())}.bind(this);this.allowUpload===!0&&(this.showSpinner(),this.collection.uploadDocuments(this.file,a))},uploadSetup:function(){var a=this;$("#importDocuments").change(function(b){a.files=b.target.files||b.dataTransfer.files,a.file=a.files[0],$("#confirmDocImport").attr("disabled",!1),a.allowUpload=!0})},buildCollectionLink:function(a){return"collection/"+encodeURIComponent(a.get("name"))+"/documents/1"},markFilterToggle:function(){this.restoredFilters.length>0?$("#filterCollection").addClass("activated"):$("#filterCollection").removeClass("activated")},editDocuments:function(){$("#importCollection").removeClass("activated"),$("#exportCollection").removeClass("activated"),this.markFilterToggle(),$("#markDocuments").toggleClass("activated"),this.changeEditMode(),$("#filterHeader").hide(),$("#importHeader").hide(),$("#editHeader").slideToggle(200),$("#exportHeader").hide()},filterCollection:function(){$("#importCollection").removeClass("activated"),$("#exportCollection").removeClass("activated"),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),this.markFilterToggle(),this.activeFilter=!0,$("#importHeader").hide(),$("#editHeader").hide(),$("#exportHeader").hide(),$("#filterHeader").slideToggle(200);var a;for(a in this.filters)if(this.filters.hasOwnProperty(a))return void $("#attribute_name"+a).focus()},exportCollection:function(){$("#importCollection").removeClass("activated"),$("#filterHeader").removeClass("activated"),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#exportCollection").toggleClass("activated"),this.markFilterToggle(),$("#exportHeader").slideToggle(200),$("#importHeader").hide(),$("#filterHeader").hide(),$("#editHeader").hide()},importCollection:function(){this.markFilterToggle(),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#importCollection").toggleClass("activated"),$("#exportCollection").removeClass("activated"),$("#importHeader").slideToggle(200),$("#filterHeader").hide(),$("#editHeader").hide(),$("#exportHeader").hide()},changeEditMode:function(a){a===!1||this.editMode===!0?($("#docPureTable .pure-table-body .pure-table-row").css("cursor","default"),$(".deleteButton").fadeIn(),$(".addButton").fadeIn(),$(".selected-row").removeClass("selected-row"),this.editMode=!1,this.tableView.setRowClick(this.clicked.bind(this))):($("#docPureTable .pure-table-body .pure-table-row").css("cursor","copy"),$(".deleteButton").fadeOut(),$(".addButton").fadeOut(),$(".selectedCount").text(0),this.editMode=!0,this.tableView.setRowClick(this.editModeClick.bind(this)))},getFilterContent:function(){var a,b,c=[];for(a in this.filters)if(this.filters.hasOwnProperty(a)){b=$("#attribute_value"+a).val();try{b=JSON.parse(b)}catch(d){b=String(b)}""!==$("#attribute_name"+a).val()&&c.push({attribute:$("#attribute_name"+a).val(),operator:$("#operator"+a).val(),value:b})}return c},sendFilter:function(){this.restoredFilters=this.getFilterContent();var a=this;this.collection.resetFilter(),this.addDocumentSwitch=!1,_.each(this.restoredFilters,function(b){void 0!==b.operator&&a.collection.addFilter(b.attribute,b.operator,b.value)}),this.collection.setToFirst(),this.collection.getDocuments(this.getDocsCallback.bind(this)),this.markFilterToggle()},restoreFilter:function(){var a=this,b=0;this.filterId=0,$("#docsSort").val(this.collection.getSort()),_.each(this.restoredFilters,function(c){0!==b&&a.addFilterItem(),void 0!==c.operator&&($("#attribute_name"+b).val(c.attribute),$("#operator"+b).val(c.operator),$("#attribute_value"+b).val(c.value)),b++,a.collection.addFilter(c.attribute,c.operator,c.value)})},addFilterItem:function(){var a=++this.filterId;$("#filterHeader").append('
    '),this.filters[a]=!0},filterValueKeydown:function(a){13===a.keyCode&&this.sendFilter()},removeFilterItem:function(a){var b=a.currentTarget,c=b.id.replace(/^removeFilter/,"");delete this.filters[c],delete this.restoredFilters[c],$(b.parentElement).remove()},removeAllFilterItems:function(){var a,b=$("#filterHeader").children().length;for(a=1;b>=a;a++)$("#removeFilter"+a).parent().remove();this.filters={0:!0},this.filterId=0},addDocumentModal:function(){var a=window.location.hash.split("/")[1],b=[],c=[],d=function(a,d){a?arangoHelper.arangoError("Error","Could not fetch collection type"):"edge"===d?(c.push(window.modalView.createTextEntry("new-edge-from-attr","_from","","document _id: document handle of the linked vertex (incoming relation)",void 0,!1,[{rule:Joi.string().required(),msg:"No _from attribute given."}])),c.push(window.modalView.createTextEntry("new-edge-to","_to","","document _id: document handle of the linked vertex (outgoing relation)",void 0,!1,[{rule:Joi.string().required(),msg:"No _to attribute given."}])),c.push(window.modalView.createTextEntry("new-edge-key-attr","_key",void 0,"the edges unique key(optional attribute, leave empty for autogenerated key","is optional: leave empty for autogenerated key",!1,[{rule:Joi.string().allow("").optional(),msg:""}])),b.push(window.modalView.createSuccessButton("Create",this.addEdge.bind(this))),window.modalView.show("modalTable.ejs","Create edge",b,c)):(c.push(window.modalView.createTextEntry("new-document-key-attr","_key",void 0,"the documents unique key(optional attribute, leave empty for autogenerated key","is optional: leave empty for autogenerated key",!1,[{rule:Joi.string().allow("").optional(),msg:""}])),b.push(window.modalView.createSuccessButton("Create",this.addDocument.bind(this))),window.modalView.show("modalTable.ejs","Create document",b,c))}.bind(this);arangoHelper.collectionApiType(a,!0,d)},addEdge:function(){var a,b=window.location.hash.split("/")[1],c=$(".modal-body #new-edge-from-attr").last().val(),d=$(".modal-body #new-edge-to").last().val(),e=$(".modal-body #new-edge-key-attr").last().val(),f=function(b,c){if(b)arangoHelper.arangoError("Error","Could not create edge");else{window.modalView.hide(),c=c._id.split("/");try{a="collection/"+c[0]+"/"+c[1],decodeURI(a)}catch(d){a="collection/"+c[0]+"/"+encodeURIComponent(c[1])}window.location.hash=a}}.bind(this);""!==e||void 0!==e?this.documentStore.createTypeEdge(b,c,d,e,f):this.documentStore.createTypeEdge(b,c,d,null,f)},addDocument:function(){var a,b=window.location.hash.split("/")[1],c=$(".modal-body #new-document-key-attr").last().val(),d=function(b,c){if(b)arangoHelper.arangoError("Error","Could not create document");else{window.modalView.hide(),c=c.split("/");try{a="collection/"+c[0]+"/"+c[1],decodeURI(a)}catch(d){a="collection/"+c[0]+"/"+encodeURIComponent(c[1])}window.location.hash=a}}.bind(this);""!==c||void 0!==c?this.documentStore.createTypeDocument(b,c,d):this.documentStore.createTypeDocument(b,null,d)},moveSelectedDocs:function(){var a=[],b=[],c=this.getSelectedDocs();0!==c.length&&(b.push(window.modalView.createTextEntry("move-documents-to","Move to","",!1,"collection-name",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Collection name must always start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only Symbols "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No collection name given."}])),a.push(window.modalView.createSuccessButton("Move",this.confirmMoveSelectedDocs.bind(this))),window.modalView.show("modalTable.ejs","Move documents",a,b))},confirmMoveSelectedDocs:function(){var a=this.getSelectedDocs(),b=this,c=$(".modal-body").last().find("#move-documents-to").val(),d=function(){this.collection.getDocuments(this.getDocsCallback.bind(this)),$("#markDocuments").click(),window.modalView.hide()}.bind(this);_.each(a,function(a){b.collection.moveDocument(a,b.collection.collectionID,c,d)})},deleteSelectedDocs:function(){var a=[],b=[],c=this.getSelectedDocs();0!==c.length&&(b.push(window.modalView.createReadOnlyEntry(void 0,c.length+" documents selected","Do you want to delete all selected documents?",void 0,void 0,!1,void 0)),a.push(window.modalView.createDeleteButton("Delete",this.confirmDeleteSelectedDocs.bind(this))),window.modalView.show("modalTable.ejs","Delete documents",a,b))},confirmDeleteSelectedDocs:function(){var a=this.getSelectedDocs(),b=[],c=this;_.each(a,function(a){if("document"===c.type){var d=function(a){a?(b.push(!1),arangoHelper.arangoError("Document error","Could not delete document.")):(b.push(!0),c.collection.setTotalMinusOne(),c.collection.getDocuments(this.getDocsCallback.bind(this)),$("#markDocuments").click(),window.modalView.hide())}.bind(c);c.documentStore.deleteDocument(c.collection.collectionID,a,d)}else if("edge"===c.type){var e=function(a){a?(b.push(!1),arangoHelper.arangoError("Edge error","Could not delete edge")):(c.collection.setTotalMinusOne(),b.push(!0),c.collection.getDocuments(this.getDocsCallback.bind(this)),$("#markDocuments").click(),window.modalView.hide())}.bind(c);c.documentStore.deleteEdge(c.collection.collectionID,a,e)}})},getSelectedDocs:function(){var a=[];return _.each($("#docPureTable .pure-table-body .pure-table-row"),function(b){$(b).hasClass("selected-row")&&a.push($($(b).children()[1]).find(".key").text())}),a},remove:function(a){this.docid=$(a.currentTarget).parent().parent().prev().find(".key").text(),$("#confirmDeleteBtn").attr("disabled",!1),$("#docDeleteModal").modal("show")},confirmDelete:function(){$("#confirmDeleteBtn").attr("disabled",!0);var a=window.location.hash.split("/"),b=a[3];"source"!==b&&this.reallyDelete()},reallyDelete:function(){if("document"===this.type){var a=function(a){a?arangoHelper.arangoError("Error","Could not delete document"):(this.collection.setTotalMinusOne(),this.collection.getDocuments(this.getDocsCallback.bind(this)),$("#docDeleteModal").modal("hide"))}.bind(this);this.documentStore.deleteDocument(this.collection.collectionID,this.docid,a)}else if("edge"===this.type){var b=function(a){a?arangoHelper.arangoError("Edge error","Could not delete edge"):(this.collection.setTotalMinusOne(),this.collection.getDocuments(this.getDocsCallback.bind(this)),$("#docDeleteModal").modal("hide"))}.bind(this);this.documentStore.deleteEdge(this.collection.collectionID,this.docid,b)}},editModeClick:function(a){var b=$(a.currentTarget);b.hasClass("selected-row")?b.removeClass("selected-row"):b.addClass("selected-row"),console.log(b);var c=this.getSelectedDocs();$(".selectedCount").text(c.length),_.each(this.editButtons,function(a){c.length>0?($(a).prop("disabled",!1),$(a).removeClass("button-neutral"),$(a).removeClass("disabled"),"#moveSelected"===a?$(a).addClass("button-success"):$(a).addClass("button-danger")):($(a).prop("disabled",!0),$(a).addClass("disabled"),$(a).addClass("button-neutral"),"#moveSelected"===a?$(a).removeClass("button-success"):$(a).removeClass("button-danger"))})},clicked:function(a){var b,c=a.currentTarget,d=$(c).attr("id").substr(4);try{b="collection/"+this.collection.collectionID+"/"+d,decodeURI(d)}catch(e){b="collection/"+this.collection.collectionID+"/"+encodeURIComponent(d)}window.location.hash=b},drawTable:function(){this.tableView.setElement($("#docPureTable")).render(),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","top"),$(".prettify").snippet("javascript",{style:"nedit",menu:!1,startText:!1,transparent:!0,showNum:!1}),this.resize()},checkCollectionState:function(){this.lastCollectionName===this.collectionName?this.activeFilter&&(this.filterCollection(),this.restoreFilter()):void 0!==this.lastCollectionName&&(this.collection.resetFilter(),this.collection.setSort(""),this.restoredFilters=[],this.activeFilter=!1)},render:function(){return $(this.el).html(this.template.render({})),2===this.type?this.type="document":3===this.type&&(this.type="edge"),this.tableView.setElement($(this.table)).drawLoading(),this.collectionContext=this.collectionsStore.getPosition(this.collection.collectionID),this.collectionName=window.location.hash.split("/")[1],this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Content"),this.checkCollectionState(),this.lastCollectionName=this.collectionName,this.uploadSetup(),$("[data-toggle=tooltip]").tooltip(),$(".upload-info").tooltip(),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","top"),this.renderPaginationElements(),this.selectActivePagesize(),this.markFilterToggle(),this.resize(),this},rerender:function(){this.collection.getDocuments(this.getDocsCallback.bind(this)),this.resize()},selectActivePagesize:function(){$("#documentSize").val(this.collection.getPageSize())},renderPaginationElements:function(){this.renderPagination();var a=$("#totalDocuments");0===a.length&&($("#documentsToolbarFL").append(''),a=$("#totalDocuments")),"document"===this.type&&a.html(numeral(this.collection.getTotal()).format("0,0")+" doc(s)"),"edge"===this.type&&a.html(numeral(this.collection.getTotal()).format("0,0")+" edge(s)")},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)}})}(),function(){"use strict";window.EditListEntryView=Backbone.View.extend({template:templateEngine.createTemplate("editListEntryView.ejs"),initialize:function(a){this.key=a.key,this.value=a.value,this.render()},events:{"click .deleteAttribute":"removeRow"},render:function(){$(this.el).html(this.template.render({key:this.key,value:JSON.stringify(this.value),isReadOnly:this.isReadOnly()}))},isReadOnly:function(){return 0===this.key.indexOf("_")},getKey:function(){return $(".key").val()},getValue:function(){var val=$(".val").val();try{val=JSON.parse(val)}catch(e){try{return eval("val = "+val),val}catch(e2){return $(".val").val()}}return val},removeRow:function(){this.remove()}})}(),function(){"use strict";window.FooterView=Backbone.View.extend({el:"#footerBar",system:{},isOffline:!0,isOfflineCounter:0,firstLogin:!0,timer:15e3,lap:0,timerFunction:null,events:{"click .footer-center p":"showShortcutModal"},initialize:function(){var a=this;window.setInterval(function(){a.getVersion()},a.timer),a.getVersion(),window.VISIBLE=!0,document.addEventListener("visibilitychange",function(){window.VISIBLE=!window.VISIBLE}),$("#offlinePlaceholder button").on("click",function(){a.getVersion()})},template:templateEngine.createTemplate("footerView.ejs"),showServerStatus:function(a){var b=this;window.App.isCluster?b.collection.fetch({success:function(){b.renderClusterState(!0)},error:function(){b.renderClusterState(!1)}}):a===!0?($("#healthStatus").removeClass("negative"),$("#healthStatus").addClass("positive"),$(".health-state").html("GOOD"),$(".health-icon").html(''),$("#offlinePlaceholder").hide()):($("#healthStatus").removeClass("positive"),$("#healthStatus").addClass("negative"),$(".health-state").html("UNKNOWN"),$(".health-icon").html(''),$("#offlinePlaceholder").show(),this.reconnectAnimation(0))},reconnectAnimation:function(a){var b=this;0===a&&(b.lap=a,$("#offlineSeconds").text(b.timer/1e3),clearTimeout(b.timerFunction)),b.lap0?($("#healthStatus").removeClass("positive"), -$("#healthStatus").addClass("negative"),1===b?$(".health-state").html(b+" NODE ERROR"):$(".health-state").html(b+" NODES ERROR"),$(".health-icon").html('')):($("#healthStatus").removeClass("negative"),$("#healthStatus").addClass("positive"),$(".health-state").html("NODES OK"),$(".health-icon").html(''))):($("#healthStatus").removeClass("positive"),$("#healthStatus").addClass("negative"),$(".health-state").html(window.location.host+" OFFLINE"),$(".health-icon").html(''),$("#offlinePlaceholder").show(),this.reconnectAnimation(0))},showShortcutModal:function(){window.arangoHelper.hotkeysFunctions.showHotkeysModal()},getVersion:function(){var a=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/version"),contentType:"application/json",processData:!1,async:!0,success:function(b){a.showServerStatus(!0),a.isOffline===!0&&(a.isOffline=!1,a.isOfflineCounter=0,a.firstLogin?a.firstLogin=!1:window.setTimeout(function(){a.showServerStatus(!0)},1e3),a.system.name=b.server,a.system.version=b.version,a.render())},error:function(){a.isOffline=!0,a.isOfflineCounter++,a.isOfflineCounter>=1&&a.showServerStatus(!1)}}),a.system.hasOwnProperty("database")||$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/database/current"),contentType:"application/json",processData:!1,async:!0,success:function(b){var c=b.result.name;a.system.database=c;var d=window.setInterval(function(){var b=$("#databaseNavi");b&&(window.clearTimeout(d),d=null,a.render())},50)}})},renderVersion:function(){this.system.hasOwnProperty("database")&&this.system.hasOwnProperty("name")&&$(this.el).html(this.template.render({name:this.system.name,version:this.system.version,database:this.system.database}))},render:function(){return this.system.version||this.getVersion(),$(this.el).html(this.template.render({name:this.system.name,version:this.system.version})),this}})}(),function(){"use strict";window.FoxxActiveView=Backbone.View.extend({tagName:"div",className:"tile pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6",template:templateEngine.createTemplate("foxxActiveView.ejs"),_show:!0,events:{click:"openAppDetailView"},openAppDetailView:function(){window.App.navigate("service/"+encodeURIComponent(this.model.get("mount")),{trigger:!0})},toggle:function(a,b){switch(a){case"devel":this.model.isDevelopment()&&(this._show=b);break;case"production":this.model.isDevelopment()||this.model.isSystem()||(this._show=b);break;case"system":this.model.isSystem()&&(this._show=b)}this._show?$(this.el).show():$(this.el).hide()},render:function(){return this.model.fetchThumbnail(function(){$(this.el).html(this.template.render({model:this.model}));var a=function(){this.model.needsConfiguration()&&($(this.el).find(".warning-icons").length>0?$(this.el).find(".warning-icons").append(''):$(this.el).find("img").after(''))}.bind(this),b=function(){this.model.hasUnconfiguredDependencies()&&($(this.el).find(".warning-icons").length>0?$(this.el).find(".warning-icons").append(''):$(this.el).find("img").after(''))}.bind(this);this.model.getConfiguration(a),this.model.getDependencies(b)}.bind(this)),$(this.el)}})}(),function(){"use strict";var a={ERROR_APPLICATION_DOWNLOAD_FAILED:{code:1752,message:"application download failed"}},b=templateEngine.createTemplate("applicationListView.ejs"),c=function(a){this.collection=a.collection},d=function(b){var c=this;if(b.error===!1)this.collection.fetch({success:function(){window.modalView.hide(),c.reload()}});else{var d=b;switch(b.hasOwnProperty("responseJSON")&&(d=b.responseJSON),d.errorNum){case a.ERROR_APPLICATION_DOWNLOAD_FAILED.code:arangoHelper.arangoError("Services","Unable to download application from the given repository.");break;default:arangoHelper.arangoError("Services",d.errorNum+". "+d.errorMessage)}}},e=function(){window.modalView.modalBindValidation({id:"new-app-mount",validateInput:function(){return[{rule:Joi.string().regex(/^(\/(APP[^\/]+|(?!APP)[a-zA-Z0-9_\-%]+))+$/i),msg:"May not contain /APP"},{rule:Joi.string().regex(/^(\/[a-zA-Z0-9_\-%]+)+$/),msg:"Can only contain [a-zA-Z0-9_-%]"},{rule:Joi.string().regex(/^\/([^_]|_open\/)/),msg:"Mountpoints with _ are reserved for internal use"},{rule:Joi.string().regex(/[^\/]$/),msg:"May not end with /"},{rule:Joi.string().regex(/^\//),msg:"Has to start with /"},{rule:Joi.string().required().min(2),msg:"Has to be non-empty"}]}})},f=function(){window.modalView.modalBindValidation({id:"repository",validateInput:function(){return[{rule:Joi.string().required().regex(/^[a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+$/),msg:"No valid Github account and repository."}]}})},g=function(){window.modalView.modalBindValidation({id:"new-app-author",validateInput:function(){return[{rule:Joi.string().required().min(1),msg:"Has to be non empty."}]}}),window.modalView.modalBindValidation({id:"new-app-name",validateInput:function(){return[{rule:Joi.string().required().regex(/^[a-zA-Z\-_][a-zA-Z0-9\-_]*$/),msg:"Can only contain a to z, A to Z, 0-9, '-' and '_'."}]}}),window.modalView.modalBindValidation({id:"new-app-description",validateInput:function(){return[{rule:Joi.string().required().min(1),msg:"Has to be non empty."}]}}),window.modalView.modalBindValidation({id:"new-app-license",validateInput:function(){return[{rule:Joi.string().required().regex(/^[a-zA-Z0-9 \.,;\-]+$/),msg:"Has to be non empty."}]}}),window.modalView.modalTestAll()},h=function(a){window.modalView.clearValidators();var b=$("#modalButton1");switch(this._upgrade||e(),a){case"newApp":b.html("Generate"),b.prop("disabled",!1),g();break;case"appstore":b.html("Install"),b.prop("disabled",!0);break;case"github":f(),b.html("Install"),b.prop("disabled",!1);break;case"zip":b.html("Install"),b.prop("disabled",!1)}b.prop("disabled")||window.modalView.modalTestAll()||b.prop("disabled",!0)},i=function(a){var b=$(a.currentTarget).attr("href").substr(1);h.call(this,b)},j=function(a){if(h.call(this,"appstore"),window.modalView.modalTestAll()){var b,c;this._upgrade?(b=this.mount,c=$("#new-app-teardown").prop("checked")):b=window.arangoHelper.escapeHtml($("#new-app-mount").val());var e=$(a.currentTarget).attr("appId"),f=$(a.currentTarget).attr("appVersion");void 0!==c?this.collection.installFromStore({name:e,version:f},b,d.bind(this),c):this.collection.installFromStore({name:e,version:f},b,d.bind(this))}},k=function(a,b){if(void 0===b?b=this._uploadData:this._uploadData=b,b&&window.modalView.modalTestAll()){var c,e;this._upgrade?(c=this.mount,e=$("#new-app-teardown").prop("checked")):c=window.arangoHelper.escapeHtml($("#new-app-mount").val()),void 0!==e?this.collection.installFromZip(b.filename,c,d.bind(this),e):this.collection.installFromZip(b.filename,c,d.bind(this))}},l=function(){if(window.modalView.modalTestAll()){var a,b,c,e;this._upgrade?(c=this.mount,e=$("#new-app-teardown").prop("checked")):c=window.arangoHelper.escapeHtml($("#new-app-mount").val()),a=window.arangoHelper.escapeHtml($("#repository").val()),b=window.arangoHelper.escapeHtml($("#tag").val()),""===b&&(b="master");var f={url:window.arangoHelper.escapeHtml($("#repository").val()),version:window.arangoHelper.escapeHtml($("#tag").val())};try{Joi.assert(a,Joi.string().regex(/^[a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+$/))}catch(g){return}void 0!==e?this.collection.installFromGithub(f,c,d.bind(this),e):this.collection.installFromGithub(f,c,d.bind(this))}},m=function(){if(window.modalView.modalTestAll()){var a,b;this._upgrade?(a=this.mount,b=$("#new-app-teardown").prop("checked")):a=window.arangoHelper.escapeHtml($("#new-app-mount").val());var c={name:window.arangoHelper.escapeHtml($("#new-app-name").val()),documentCollections:_.map($("#new-app-document-collections").select2("data"),function(a){return window.arangoHelper.escapeHtml(a.text)}),edgeCollections:_.map($("#new-app-edge-collections").select2("data"),function(a){return window.arangoHelper.escapeHtml(a.text)}),author:window.arangoHelper.escapeHtml($("#new-app-author").val()),license:window.arangoHelper.escapeHtml($("#new-app-license").val()),description:window.arangoHelper.escapeHtml($("#new-app-description").val())};void 0!==b?this.collection.generate(c,a,d.bind(this),b):this.collection.generate(c,a,d.bind(this))}},n=function(){var a=$(".modal-body .tab-pane.active").attr("id");switch(a){case"newApp":m.apply(this);break;case"github":l.apply(this);break;case"zip":k.apply(this)}},o=function(a,c){var d=[],e={"click #infoTab a":i.bind(a),"click .install-app":j.bind(a)};d.push(window.modalView.createSuccessButton("Generate",n.bind(a))),window.modalView.show("modalApplicationMount.ejs","Install Service",d,c,void 0,void 0,e),$("#new-app-document-collections").select2({tags:[],showSearchBox:!1,minimumResultsForSearch:-1,width:"336px"}),$("#new-app-edge-collections").select2({tags:[],showSearchBox:!1,minimumResultsForSearch:-1,width:"336px"});var f=function(){var a=$("#modalButton1");a.prop("disabled")||window.modalView.modalTestAll()?a.prop("disabled",!1):a.prop("disabled",!0)};$(".select2-search-field input").focusout(function(){f(),window.setTimeout(function(){$(".select2-drop").is(":visible")&&($("#select2-search-field input").is(":focus")||($("#s2id_new-app-document-collections").select2("close"),$("#s2id_new-app-edge-collections").select2("close"),f()))},80)}),$(".select2-search-field input").focusin(function(){if($(".select2-drop").is(":visible")){var a=$("#modalButton1");a.prop("disabled",!0)}}),$("#upload-foxx-zip").uploadFile({url:arangoHelper.databaseUrl("/_api/upload?multipart=true"),allowedTypes:"zip",multiple:!1,onSuccess:k.bind(a)}),$.get("foxxes/fishbowl",function(a){var c=$("#appstore-content");c.html(""),_.each(_.sortBy(a,"name"),function(a){c.append(b.render(a))})}).fail(function(){var a=$("#appstore-content");a.append("Store is not available. ArangoDB is not able to connect to github.com")})};c.prototype.install=function(a){this.reload=a,this._upgrade=!1,this._uploadData=void 0,delete this.mount,o(this,!1),window.modalView.clearValidators(),e(),g()},c.prototype.upgrade=function(a,b){this.reload=b,this._upgrade=!0,this._uploadData=void 0,this.mount=a,o(this,!0),window.modalView.clearValidators(),g()},window.FoxxInstallView=c}(),function(){"use strict";window.GraphManagementView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("graphManagementView.ejs"),edgeDefintionTemplate:templateEngine.createTemplate("edgeDefinitionTable.ejs"),eCollList:[],removedECollList:[],dropdownVisible:!1,initialize:function(a){this.options=a},events:{"click #deleteGraph":"deleteGraph","click .icon_arangodb_settings2.editGraph":"editGraph","click #createGraph":"addNewGraph","keyup #graphManagementSearchInput":"search","click #graphManagementSearchSubmit":"search","click .tile-graph":"redirectToGraphViewer","click #graphManagementToggle":"toggleGraphDropdown","click .css-label":"checkBoxes","change #graphSortDesc":"sorting"},toggleTab:function(a){var b=a.currentTarget.id;b=b.replace("tab-",""),$("#tab-content-create-graph .tab-pane").removeClass("active"),$("#tab-content-create-graph #"+b).addClass("active"),"exampleGraphs"===b?$("#modal-dialog .modal-footer .button-success").css("display","none"):$("#modal-dialog .modal-footer .button-success").css("display","initial")},redirectToGraphViewer:function(a){var b=$(a.currentTarget).attr("id");b=b.substr(0,b.length-5),window.location=window.location+"/"+encodeURIComponent(b)},loadGraphViewer:function(a,b){var c=function(b){if(b)arangoHelper.arangoError("","");else{var c=this.collection.get(a).get("edgeDefinitions");if(!c||0===c.length)return;var d={type:"gharial",graphName:a,baseUrl:arangoHelper.databaseUrl("/")},e=$("#content").width()-75;$("#content").html("");var f=arangoHelper.calculateCenterDivHeight();this.ui=new GraphViewerUI($("#content")[0],d,e,$(".centralRow").height()-135,{nodeShaper:{label:"_key",color:{type:"attribute",key:"_key"}}},!0),$(".contentDiv").height(f)}}.bind(this);b?this.collection.fetch({success:function(){c()}}):c()},handleResize:function(a){this.width&&this.width===a||(this.width=a,this.ui&&this.ui.changeWidth(a))},addNewGraph:function(a){a.preventDefault(),this.createEditGraphModal()},deleteGraph:function(){var a=this,b=$("#editGraphName")[0].value;if($("#dropGraphCollections").is(":checked")){var c=function(c){c?(a.collection.remove(a.collection.get(b)),a.updateGraphManagementView(),window.modalView.hide()):(window.modalView.hide(),arangoHelper.arangoError("Graph","Could not delete Graph."))}.bind(this);this.collection.dropAndDeleteGraph(b,c)}else this.collection.get(b).destroy({success:function(){a.updateGraphManagementView(),window.modalView.hide()},error:function(a,b){var c=JSON.parse(b.responseText),d=c.errorMessage;arangoHelper.arangoError(d),window.modalView.hide()}})},checkBoxes:function(a){var b=a.currentTarget.id;$("#"+b).click()},toggleGraphDropdown:function(){$("#graphSortDesc").attr("checked",this.collection.sortOptions.desc),$("#graphManagementToggle").toggleClass("activated"),$("#graphManagementDropdown2").slideToggle(200)},sorting:function(){$("#graphSortDesc").is(":checked")?this.collection.setSortingDesc(!0):this.collection.setSortingDesc(!1),$("#graphManagementDropdown").is(":visible")?this.dropdownVisible=!0:this.dropdownVisible=!1,this.render()},createExampleGraphs:function(a){var b=$(a.currentTarget).attr("graph-id"),c=this;$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_admin/aardvark/graph-examples/create/"+encodeURIComponent(b)),success:function(){window.modalView.hide(),c.updateGraphManagementView(),arangoHelper.arangoNotification("Example Graphs","Graph: "+b+" created.")},error:function(a){if(window.modalView.hide(),console.log(a),a.responseText)try{var c=JSON.parse(a.responseText);arangoHelper.arangoError("Example Graphs",c.errorMessage)}catch(d){arangoHelper.arangoError("Example Graphs","Could not create example graph: "+b)}else arangoHelper.arangoError("Example Graphs","Could not create example graph: "+b)}})},render:function(a,b){var c=this;return this.collection.fetch({success:function(){c.collection.sort(),$(c.el).html(c.template.render({graphs:c.collection,searchString:""})),c.dropdownVisible===!0&&($("#graphManagementDropdown2").show(),$("#graphSortDesc").attr("checked",c.collection.sortOptions.desc),$("#graphManagementToggle").toggleClass("activated"),$("#graphManagementDropdown").show()),c.events["click .tableRow"]=c.showHideDefinition.bind(c),c.events['change tr[id*="newEdgeDefinitions"]']=c.setFromAndTo.bind(c),c.events["click .graphViewer-icon-button"]=c.addRemoveDefinition.bind(c),c.events["click #graphTab a"]=c.toggleTab.bind(c),c.events["click .createExampleGraphs"]=c.createExampleGraphs.bind(c),c.events["focusout .select2-search-field input"]=function(a){$(".select2-drop").is(":visible")&&($("#select2-search-field input").is(":focus")||window.setTimeout(function(){$(a.currentTarget).parent().parent().parent().select2("close")},80))}.bind(c),arangoHelper.setCheckboxStatus("#graphManagementDropdown")}}),a&&this.loadGraphViewer(a,b),this},setFromAndTo:function(a){a.stopPropagation();var b,c=this.calculateEdgeDefinitionMap();if(a.added){if(-1===this.eCollList.indexOf(a.added.id)&&-1!==this.removedECollList.indexOf(a.added.id))return b=a.currentTarget.id.split("row_newEdgeDefinitions")[1],$('input[id*="newEdgeDefinitions'+b+'"]').select2("val",null),void $('input[id*="newEdgeDefinitions'+b+'"]').attr("placeholder","The collection "+a.added.id+" is already used.");this.removedECollList.push(a.added.id),this.eCollList.splice(this.eCollList.indexOf(a.added.id),1)}else this.eCollList.push(a.removed.id),this.removedECollList.splice(this.removedECollList.indexOf(a.removed.id),1);c[a.val]?(b=a.currentTarget.id.split("row_newEdgeDefinitions")[1],$("#s2id_fromCollections"+b).select2("val",c[a.val].from),$("#fromCollections"+b).attr("disabled",!0),$("#s2id_toCollections"+b).select2("val",c[a.val].to),$("#toCollections"+b).attr("disabled",!0)):(b=a.currentTarget.id.split("row_newEdgeDefinitions")[1],$("#s2id_fromCollections"+b).select2("val",null),$("#fromCollections"+b).attr("disabled",!1),$("#s2id_toCollections"+b).select2("val",null),$("#toCollections"+b).attr("disabled",!1))},editGraph:function(a){a.stopPropagation(),this.collection.fetch(),this.graphToEdit=this.evaluateGraphName($(a.currentTarget).attr("id"),"_settings");var b=this.collection.findWhere({_key:this.graphToEdit});this.createEditGraphModal(b)},saveEditedGraph:function(){var a,b,c,d,e,f=$("#editGraphName")[0].value,g=_.pluck($("#newVertexCollections").select2("data"),"text"),h=[],i={};if(e=$("[id^=s2id_newEdgeDefinitions]").toArray(),e.forEach(function(e){if(d=$(e).attr("id"),d=d.replace("s2id_newEdgeDefinitions",""),a=_.pluck($("#s2id_newEdgeDefinitions"+d).select2("data"),"text")[0],a&&""!==a&&(b=_.pluck($("#s2id_fromCollections"+d).select2("data"),"text"),c=_.pluck($("#s2id_toCollections"+d).select2("data"),"text"),0!==b.length&&0!==c.length)){var f={collection:a,from:b,to:c};h.push(f),i[a]=f}}),0===h.length)return $("#s2id_newEdgeDefinitions0 .select2-choices").css("border-color","red"),$("#s2id_newEdgeDefinitions0").parent().parent().next().find(".select2-choices").css("border-color","red"),void $("#s2id_newEdgeDefinitions0").parent().parent().next().next().find(".select2-choices").css("border-color","red");var j=this.collection.findWhere({_key:f}),k=j.get("edgeDefinitions"),l=j.get("orphanCollections"),m=[];l.forEach(function(a){-1===g.indexOf(a)&&j.deleteVertexCollection(a)}),g.forEach(function(a){-1===l.indexOf(a)&&j.addVertexCollection(a)});var n=[],o=[],p=[];k.forEach(function(a){var b=a.collection;m.push(b);var c=i[b];void 0===c?p.push(b):JSON.stringify(c)!==JSON.stringify(a)&&o.push(b)}),h.forEach(function(a){var b=a.collection;-1===m.indexOf(b)&&n.push(b)}),n.forEach(function(a){j.addEdgeDefinition(i[a])}),o.forEach(function(a){j.modifyEdgeDefinition(i[a])}),p.forEach(function(a){j.deleteEdgeDefinition(a)}),this.updateGraphManagementView(),window.modalView.hide()},evaluateGraphName:function(a,b){var c=a.lastIndexOf(b);return a.substring(0,c)},search:function(){var a,b,c,d;a=$("#graphManagementSearchInput"),b=$("#graphManagementSearchInput").val(),d=this.collection.filter(function(a){return-1!==a.get("_key").indexOf(b)}),$(this.el).html(this.template.render({graphs:d,searchString:b})),a=$("#graphManagementSearchInput"),c=a.val().length,a.focus(),a[0].setSelectionRange(c,c)},updateGraphManagementView:function(){var a=this;this.collection.fetch({success:function(){a.render()}})},createNewGraph:function(){var a,b,c,d,e,f=$("#createNewGraphName").val(),g=_.pluck($("#newVertexCollections").select2("data"),"text"),h=[],i=this;return f?this.collection.findWhere({_key:f})?(arangoHelper.arangoError("The graph '"+f+"' already exists."),0):(e=$("[id^=s2id_newEdgeDefinitions]").toArray(),e.forEach(function(e){d=$(e).attr("id"),d=d.replace("s2id_newEdgeDefinitions",""),a=_.pluck($("#s2id_newEdgeDefinitions"+d).select2("data"),"text")[0],a&&""!==a&&(b=_.pluck($("#s2id_fromCollections"+d).select2("data"),"text"),c=_.pluck($("#s2id_toCollections"+d).select2("data"),"text"),1!==b&&1!==c&&h.push({collection:a,from:b,to:c}))}),0===h.length?($("#s2id_newEdgeDefinitions0 .select2-choices").css("border-color","red"),$("#s2id_newEdgeDefinitions0").parent().parent().next().find(".select2-choices").css("border-color","red"),void $("#s2id_newEdgeDefinitions0").parent().parent().next().next().find(".select2-choices").css("border-color","red")):void this.collection.create({name:f,edgeDefinitions:h,orphanCollections:g},{success:function(){i.updateGraphManagementView(),window.modalView.hide()},error:function(a,b){var c=JSON.parse(b.responseText),d=c.errorMessage;d=d.replace("<",""),d=d.replace(">",""),arangoHelper.arangoError(d)}})):(arangoHelper.arangoError("A name for the graph has to be provided."),0)},createEditGraphModal:function(a){var b,c=[],d=[],e=[],f=this.options.collectionCollection.models,g=this,h="",i=[{collection:"",from:"",to:""}],j="",k=function(a,b){return a=a.toLowerCase(),b=b.toLowerCase(),b>a?-1:a>b?1:0};if(this.eCollList=[],this.removedECollList=[],f.forEach(function(a){a.get("isSystem")||("edge"===a.get("type")?g.eCollList.push(a.id):d.push(a.id))}),window.modalView.enableHotKeys=!1,this.counter=0,a?(b="Edit Graph",h=a.get("_key"),i=a.get("edgeDefinitions"),i&&0!==i.length||(i=[{collection:"",from:"",to:""}]),j=a.get("orphanCollections"),e.push(window.modalView.createReadOnlyEntry("editGraphName","Name",h,"The name to identify the graph. Has to be unique")),c.push(window.modalView.createDeleteButton("Delete",this.deleteGraph.bind(this))),c.push(window.modalView.createSuccessButton("Save",this.saveEditedGraph.bind(this)))):(b="Create Graph",e.push(window.modalView.createTextEntry("createNewGraphName","Name","","The name to identify the graph. Has to be unique.","graphName",!0)),c.push(window.modalView.createSuccessButton("Create",this.createNewGraph.bind(this)))),i.forEach(function(a){0===g.counter?(a.collection&&(g.removedECollList.push(a.collection),g.eCollList.splice(g.eCollList.indexOf(a.collection),1)),e.push(window.modalView.createSelect2Entry("newEdgeDefinitions"+g.counter,"Edge definitions",a.collection,"An edge definition defines a relation of the graph","Edge definitions",!0,!1,!0,1,g.eCollList.sort(k)))):e.push(window.modalView.createSelect2Entry("newEdgeDefinitions"+g.counter,"Edge definitions",a.collection,"An edge definition defines a relation of the graph","Edge definitions",!1,!0,!1,1,g.eCollList.sort(k))),e.push(window.modalView.createSelect2Entry("fromCollections"+g.counter,"fromCollections",a.from,"The collections that contain the start vertices of the relation.","fromCollections",!0,!1,!1,10,d.sort(k))),e.push(window.modalView.createSelect2Entry("toCollections"+g.counter,"toCollections",a.to,"The collections that contain the end vertices of the relation.","toCollections",!0,!1,!1,10,d.sort(k))),g.counter++}),e.push(window.modalView.createSelect2Entry("newVertexCollections","Vertex collections",j,"Collections that are part of a graph but not used in an edge definition","Vertex Collections",!1,!1,!1,10,d.sort(k))),window.modalView.show("modalGraphTable.ejs",b,c,e,void 0,void 0,this.events),a){$(".modal-body table").css("border-collapse","separate");var l;for($(".modal-body .spacer").remove(),l=0;l<=this.counter;l++)$("#row_fromCollections"+l).show(),$("#row_toCollections"+l).show(),$("#row_newEdgeDefinitions"+l).addClass("first"),$("#row_fromCollections"+l).addClass("middle"),$("#row_toCollections"+l).addClass("last"),$("#row_toCollections"+l).after('');$("#graphTab").hide(),$("#modal-dialog .modal-delete-confirmation").append('
    ')}},showHideDefinition:function(a){},addRemoveDefinition:function(a){var b=[],c=this.options.collectionCollection.models;c.forEach(function(a){a.get("isSystem")||b.push(a.id)}),a.stopPropagation();var d,e=$(a.currentTarget).attr("id");if(-1===e.indexOf("addAfter_newEdgeDefinitions"))-1!==e.indexOf("remove_newEdgeDefinitions")&&(d=e.split("remove_newEdgeDefinitions")[1],$("#row_newEdgeDefinitions"+d).remove(),$("#row_fromCollections"+d).remove(),$("#row_toCollections"+d).remove(),$("#spacer"+d).remove());else{this.counter++,$("#row_newVertexCollections").before(this.edgeDefintionTemplate.render({number:this.counter})),$("#newEdgeDefinitions"+this.counter).select2({tags:this.eCollList,showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:1}),$("#fromCollections"+this.counter).select2({tags:b,showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:10}),$("#toCollections"+this.counter).select2({tags:b,showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:10}),window.modalView.undelegateEvents(),window.modalView.delegateEvents(this.events);var f;for($(".modal-body .spacer").remove(),f=0;f<=this.counter;f++)$("#row_fromCollections"+f).show(),$("#row_toCollections"+f).show(),$("#row_newEdgeDefinitions"+f).addClass("first"),$("#row_fromCollections"+f).addClass("middle"),$("#row_toCollections"+f).addClass("last"),$("#row_toCollections"+f).after('')}},calculateEdgeDefinitionMap:function(){var a={};return this.collection.models.forEach(function(b){b.get("edgeDefinitions").forEach(function(b){a[b.collection]={from:b.from,to:b.to}})}),a}})}(),function(){"use strict";window.HelpUsView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("helpUsView.ejs"),render:function(){this.$el.html(this.template.render({}))}})}(),function(){"use strict";window.IndicesView=Backbone.View.extend({el:"#content",initialize:function(a){this.collectionName=a.collectionName,this.model=this.collection},template:templateEngine.createTemplate("indicesView.ejs"),events:{},render:function(){$(this.el).html(this.template.render({model:this.model})),this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Indices"),this.getIndex()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},getIndex:function(){var a=function(a,b){a?window.arangoHelper.arangoError("Index",b.errorMessage):this.renderIndex(b)}.bind(this);this.model.getIndex(a)},createIndex:function(){var a,b,c,d=this,e=$("#newIndexType").val(),f={};switch(e){case"Geo":a=$("#newGeoFields").val();var g=d.checkboxToValue("#newGeoJson");f={type:"geo",fields:d.stringToArray(a),geoJson:g};break;case"Persistent":a=$("#newPersistentFields").val(),b=d.checkboxToValue("#newPersistentUnique"),c=d.checkboxToValue("#newPersistentSparse"),f={type:"persistent",fields:d.stringToArray(a),unique:b,sparse:c};break;case"Hash":a=$("#newHashFields").val(),b=d.checkboxToValue("#newHashUnique"),c=d.checkboxToValue("#newHashSparse"),f={type:"hash",fields:d.stringToArray(a),unique:b,sparse:c};break;case"Fulltext":a=$("#newFulltextFields").val();var h=parseInt($("#newFulltextMinLength").val(),10)||0;f={type:"fulltext",fields:d.stringToArray(a),minLength:h};break;case"Skiplist":a=$("#newSkiplistFields").val(),b=d.checkboxToValue("#newSkiplistUnique"),c=d.checkboxToValue("#newSkiplistSparse"),f={type:"skiplist",fields:d.stringToArray(a),unique:b,sparse:c}}var i=function(a,b){if(a)if(b){var c=JSON.parse(b.responseText);arangoHelper.arangoError("Document error",c.errorMessage)}else arangoHelper.arangoError("Document error","Could not create index.");d.toggleNewIndexView(),d.render()};this.model.createIndex(f,i)},bindIndexEvents:function(){this.unbindIndexEvents();var a=this;$("#indexEditView #addIndex").bind("click",function(){a.toggleNewIndexView(),$("#cancelIndex").unbind("click"),$("#cancelIndex").bind("click",function(){a.toggleNewIndexView(),a.render()}),$("#createIndex").unbind("click"),$("#createIndex").bind("click",function(){a.createIndex()})}),$("#newIndexType").bind("change",function(){a.selectIndexType()}),$(".deleteIndex").bind("click",function(b){a.prepDeleteIndex(b)}),$("#infoTab a").bind("click",function(a){if($("#indexDeleteModal").remove(),"Indices"!==$(a.currentTarget).html()||$(a.currentTarget).parent().hasClass("active")||($("#newIndexView").hide(),$("#indexEditView").show(),$("#indexHeaderContent #modal-dialog .modal-footer .button-danger").hide(),$("#indexHeaderContent #modal-dialog .modal-footer .button-success").hide(),$("#indexHeaderContent #modal-dialog .modal-footer .button-notification").hide()),"General"===$(a.currentTarget).html()&&!$(a.currentTarget).parent().hasClass("active")){$("#indexHeaderContent #modal-dialog .modal-footer .button-danger").show(),$("#indexHeaderContent #modal-dialog .modal-footer .button-success").show(),$("#indexHeaderContent #modal-dialog .modal-footer .button-notification").show();var b=$(".index-button-bar2")[0];$("#cancelIndex").is(":visible")&&($("#cancelIndex").detach().appendTo(b),$("#createIndex").detach().appendTo(b))}})},prepDeleteIndex:function(a){var b=this;this.lastTarget=a,this.lastId=$(this.lastTarget.currentTarget).parent().parent().first().children().first().text(),$("#modal-dialog .modal-footer").after(''),$("#indexConfirmDelete").unbind("click"),$("#indexConfirmDelete").bind("click",function(){$("#indexDeleteModal").remove(),b.deleteIndex()}),$("#indexAbortDelete").unbind("click"),$("#indexAbortDelete").bind("click",function(){$("#indexDeleteModal").remove()})},unbindIndexEvents:function(){$("#indexEditView #addIndex").unbind("click"),$("#newIndexType").unbind("change"),$("#infoTab a").unbind("click"),$(".deleteIndex").unbind("click")},deleteIndex:function(){var a=function(a){a?(arangoHelper.arangoError("Could not delete index"),$("tr th:contains('"+this.lastId+"')").parent().children().last().html(''),this.model.set("locked",!1)):a||void 0===a||($("tr th:contains('"+this.lastId+"')").parent().remove(),this.model.set("locked",!1))}.bind(this);this.model.set("locked",!0),this.model.deleteIndex(this.lastId,a),$("tr th:contains('"+this.lastId+"')").parent().children().last().html('')},renderIndex:function(a){this.index=a;var b="collectionInfoTh modal-text";if(this.index){var c="",d="";_.each(this.index.indexes,function(a){d="primary"===a.type||"edge"===a.type?'':'',void 0!==a.fields&&(c=a.fields.join(", "));var e=a.id.indexOf("/"),f=a.id.substr(e+1,a.id.length),g=a.hasOwnProperty("selectivityEstimate")?(100*a.selectivityEstimate).toFixed(2)+"%":"n/a",h=a.hasOwnProperty("sparse")?a.sparse:"n/a";$("#collectionEditIndexTable").append(""+f+""+a.type+""+a.unique+""+h+""+g+""+c+""+d+"")})}this.bindIndexEvents()},selectIndexType:function(){$(".newIndexClass").hide();var a=$("#newIndexType").val();$("#newIndexType"+a).show()},resetIndexForms:function(){$("#indexHeader input").val("").prop("checked",!1),$("#newIndexType").val("Geo").prop("selected",!0),this.selectIndexType()},toggleNewIndexView:function(){var a=$(".index-button-bar2")[0];$("#indexEditView").is(":visible")?($("#indexEditView").hide(),$("#newIndexView").show(),$("#cancelIndex").detach().appendTo("#indexHeaderContent #modal-dialog .modal-footer"),$("#createIndex").detach().appendTo("#indexHeaderContent #modal-dialog .modal-footer")):($("#indexEditView").show(),$("#newIndexView").hide(),$("#cancelIndex").detach().appendTo(a),$("#createIndex").detach().appendTo(a)),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","right"),this.resetIndexForms()},stringToArray:function(a){var b=[];return a.split(",").forEach(function(a){a=a.replace(/(^\s+|\s+$)/g,""),""!==a&&b.push(a)}),b},checkboxToValue:function(a){return $(a).prop("checked")}})}(),function(){"use strict";window.InfoView=Backbone.View.extend({el:"#content",initialize:function(a){ -this.collectionName=a.collectionName,this.model=this.collection},events:{},render:function(){this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Info"),this.renderInfoView()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},renderInfoView:function(){if(this.model.get("locked"))return 0;var a=function(a,b,c){if(a)arangoHelper.arangoError("Figures","Could not get revision.");else{var d=[],e={figures:c,revision:b,model:this.model};window.modalView.show("modalCollectionInfo.ejs","Collection: "+this.model.get("name"),d,e,null,null,null,null,null,"content")}}.bind(this),b=function(b,c){if(b)arangoHelper.arangoError("Figures","Could not get figures.");else{var d=c;this.model.getRevision(a,d)}}.bind(this);this.model.getFigures(b)}})}(),function(){"use strict";window.loginView=Backbone.View.extend({el:"#content",el2:".header",el3:".footer",loggedIn:!1,events:{"keyPress #loginForm input":"keyPress","click #submitLogin":"validate","submit #dbForm":"goTo","click #logout":"logout","change #loginDatabase":"renderDBS"},template:templateEngine.createTemplate("loginView.ejs"),render:function(a){var b=this;if($(this.el).html(this.template.render({})),$(this.el2).hide(),$(this.el3).hide(),frontendConfig.authenticationEnabled&&a!==!0)window.setTimeout(function(){$("#loginUsername").focus()},300);else{var c=arangoHelper.databaseUrl("/_api/database/user");frontendConfig.authenticationEnabled===!1&&($("#logout").hide(),$(".login-window #databases").css("height","90px")),$("#loginForm").hide(),$(".login-window #databases").show(),$.ajax(c).success(function(a){$("#loginDatabase").html(""),_.each(a.result,function(a){$("#loginDatabase").append("")}),b.renderDBS()})}return $(".bodyWrapper").show(),this},clear:function(){$("#loginForm input").removeClass("form-error"),$(".wrong-credentials").hide()},keyPress:function(a){a.ctrlKey&&13===a.keyCode?(a.preventDefault(),this.validate()):a.metaKey&&13===a.keyCode&&(a.preventDefault(),this.validate())},validate:function(a){a.preventDefault(),this.clear();var b=$("#loginUsername").val(),c=$("#loginPassword").val();if(b){var d=function(a){var b=this;if(a)$(".wrong-credentials").show(),$("#loginDatabase").html(""),$("#loginDatabase").append("");else{var c=arangoHelper.databaseUrl("/_api/database/user","_system");frontendConfig.authenticationEnabled===!1&&(c=arangoHelper.databaseUrl("/_api/database/user")),$(".wrong-credentials").hide(),b.loggedIn=!0,$.ajax(c).success(function(a){$("#loginForm").hide(),$("#databases").show(),$("#loginDatabase").html(""),_.each(a.result,function(a){$("#loginDatabase").append("")}),b.renderDBS()})}}.bind(this);this.collection.login(b,c,d)}},renderDBS:function(){var a=$("#loginDatabase").val();$("#goToDatabase").html("Select: "+a),window.setTimeout(function(){$("#goToDatabase").focus()},300)},logout:function(){this.collection.logout()},goTo:function(a){a.preventDefault();var b=$("#loginUsername").val(),c=$("#loginDatabase").val();console.log(window.App.dbSet),window.App.dbSet=c,console.log(window.App.dbSet);var d=function(a){a&&arangoHelper.arangoError("User","Could not fetch user settings")},e=window.location.protocol+"//"+window.location.host+frontendConfig.basePath+"/_db/"+c+"/_admin/aardvark/index.html";window.location.href=e,$(this.el2).show(),$(this.el3).show(),$(".bodyWrapper").show(),$(".navbar").show(),$("#currentUser").text(b),this.collection.loadUserSettings(d)}})}(),function(){"use strict";window.LogsView=window.PaginationView.extend({el:"#content",id:"#logContent",paginationDiv:"#logPaginationDiv",idPrefix:"logTable",fetchedAmount:!1,initialize:function(a){this.options=a,this.convertModelToJSON()},currentLoglevel:"logall",events:{"click #arangoLogTabbar button":"setActiveLoglevel","click #logTable_first":"firstPage","click #logTable_last":"lastPage"},template:templateEngine.createTemplate("logsView.ejs"),tabbar:templateEngine.createTemplate("arangoTabbar.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),tabbarElements:{id:"arangoLogTabbar",titles:[["All","logall"],["Info","loginfo"],["Error","logerror"],["Warning","logwarning"],["Debug","logdebug"]]},tableDescription:{id:"arangoLogTable",titles:["Loglevel","Date","Message"],rows:[]},convertedRows:null,setActiveLoglevel:function(a){$(".arangodb-tabbar").removeClass("arango-active-tab"),this.currentLoglevel!==a.currentTarget.id&&(this.currentLoglevel=a.currentTarget.id,this.convertModelToJSON())},initTotalAmount:function(){var a=this;this.collection=this.options[this.currentLoglevel],this.collection.fetch({data:$.param({test:!0}),success:function(){a.convertModelToJSON()}}),this.fetchedAmount=!0},invertArray:function(a){var b,c=[],d=0;for(b=a.length-1;b>=0;b--)c[d]=a[b],d++;return c},convertModelToJSON:function(){if(!this.fetchedAmount)return void this.initTotalAmount();var a,b=this,c=[];this.collection=this.options[this.currentLoglevel],this.collection.fetch({success:function(){b.collection.each(function(b){a=new Date(1e3*b.get("timestamp")),c.push([b.getLogStatus(),arangoHelper.formatDT(a),b.get("text")])}),b.tableDescription.rows=b.invertArray(c),b.render()}})},render:function(){return $(this.el).html(this.template.render({})),$(this.id).html(this.tabbar.render({content:this.tabbarElements})),$(this.id).append(this.table.render({content:this.tableDescription})),$("#"+this.currentLoglevel).addClass("arango-active-tab"),$("#logContent").append('
    '),this.renderPagination(),this},rerender:function(){this.convertModelToJSON()}})}(),function(){"use strict";var a=function(a,b,c,d){return{type:a,title:b,callback:c,confirm:d}},b=function(a,b,c,d,e,f,g,h,i,j,k){var l={type:a,label:b};return void 0!==c&&(l.value=c),void 0!==d&&(l.info=d),void 0!==e&&(l.placeholder=e),void 0!==f&&(l.mandatory=f),void 0!==h&&(l.addDelete=h),void 0!==i&&(l.addAdd=i),void 0!==j&&(l.maxEntrySize=j),void 0!==k&&(l.tags=k),g&&(l.validateInput=function(){return g}),l};window.ModalView=Backbone.View.extend({_validators:[],_validateWatchers:[],baseTemplate:templateEngine.createTemplate("modalBase.ejs"),tableTemplate:templateEngine.createTemplate("modalTable.ejs"),el:"#modalPlaceholder",contentEl:"#modalContent",hideFooter:!1,confirm:{list:"#modal-delete-confirmation",yes:"#modal-confirm-delete",no:"#modal-abort-delete"},enabledHotkey:!1,enableHotKeys:!0,buttons:{SUCCESS:"success",NOTIFICATION:"notification",DELETE:"danger",NEUTRAL:"neutral",CLOSE:"close"},tables:{READONLY:"readonly",TEXT:"text",BLOB:"blob",PASSWORD:"password",SELECT:"select",SELECT2:"select2",CHECKBOX:"checkbox"},initialize:function(){Object.freeze(this.buttons),Object.freeze(this.tables)},createModalHotkeys:function(){$(this.el).unbind("keydown"),$(this.el).unbind("return"),$(this.el).bind("keydown","return",function(){$(".createModalDialog .modal-footer .button-success").click()}),$(".modal-body input").unbind("keydown"),$(".modal-body input").unbind("return"),$(".modal-body input",$(this.el)).bind("keydown","return",function(){$(".createModalDialog .modal-footer .button-success").click()}),$(".modal-body select").unbind("keydown"),$(".modal-body select").unbind("return"),$(".modal-body select",$(this.el)).bind("keydown","return",function(){$(".createModalDialog .modal-footer .button-success").click()})},createInitModalHotkeys:function(){var a=this;$(this.el).bind("keydown","left",function(){a.navigateThroughButtons("left")}),$(this.el).bind("keydown","right",function(){a.navigateThroughButtons("right")})},navigateThroughButtons:function(a){var b=$(".createModalDialog .modal-footer button").is(":focus");b===!1?"left"===a?$(".createModalDialog .modal-footer button").first().focus():"right"===a&&$(".createModalDialog .modal-footer button").last().focus():b===!0&&("left"===a?$(":focus").prev().focus():"right"===a&&$(":focus").next().focus())},createCloseButton:function(b,c){var d=this;return a(this.buttons.CLOSE,b,function(){d.hide(),c&&c()})},createSuccessButton:function(b,c){return a(this.buttons.SUCCESS,b,c)},createNotificationButton:function(b,c){return a(this.buttons.NOTIFICATION,b,c)},createDeleteButton:function(b,c,d){return a(this.buttons.DELETE,b,c,d)},createNeutralButton:function(b,c){return a(this.buttons.NEUTRAL,b,c)},createDisabledButton:function(b){var c=a(this.buttons.NEUTRAL,b);return c.disabled=!0,c},createReadOnlyEntry:function(a,c,d,e,f,g){var h=b(this.tables.READONLY,c,d,e,void 0,void 0,void 0,f,g);return h.id=a,h},createTextEntry:function(a,c,d,e,f,g,h){var i=b(this.tables.TEXT,c,d,e,f,g,h);return i.id=a,i},createBlobEntry:function(a,c,d,e,f,g,h){var i=b(this.tables.BLOB,c,d,e,f,g,h);return i.id=a,i},createSelect2Entry:function(a,c,d,e,f,g,h,i,j,k){var l=b(this.tables.SELECT2,c,d,e,f,g,void 0,h,i,j,k);return l.id=a,l},createPasswordEntry:function(a,c,d,e,f,g,h){var i=b(this.tables.PASSWORD,c,d,e,f,g,h);return i.id=a,i},createCheckboxEntry:function(a,c,d,e,f){var g=b(this.tables.CHECKBOX,c,d,e);return g.id=a,f&&(g.checked=f),g},createSelectEntry:function(a,c,d,e,f){var g=b(this.tables.SELECT,c,null,e);return g.id=a,d&&(g.selected=d),g.options=f,g},createOptionEntry:function(a,b){return{label:a,value:b||a}},show:function(a,b,c,d,e,f,g,h,i,j){var k,l,m=this,n=!1;c=c||[],h=Boolean(h),this.clearValidators(),c.length>0?(c.forEach(function(a){a.type===m.buttons.CLOSE&&(n=!0),a.type===m.buttons.DELETE&&(l=l||a.confirm)}),n||(k=c.pop(),c.push(m.createCloseButton("Cancel")),c.push(k))):c.push(m.createCloseButton("Close")),j?($("#"+j).html(this.baseTemplate.render({title:b,buttons:c,hideFooter:this.hideFooter,confirm:l,tabBar:i})),$("#"+j+" #modal-dialog").removeClass("fade hide modal"),$("#"+j+" .modal-header").remove(),$("#"+j+" .modal-tabbar").remove(),$("#"+j+" .modal-tabbar").remove(),$("#"+j+" .button-close").remove(),0===$("#"+j+" .modal-footer").children().length&&$("#"+j+" .modal-footer").remove()):$(this.el).html(this.baseTemplate.render({title:b,buttons:c,hideFooter:this.hideFooter,confirm:l,tabBar:i})),_.each(c,function(a,b){return!a.disabled&&a.callback?a.type!==m.buttons.DELETE||h?void $("#modalButton"+b).bind("click",a.callback):void $("#modalButton"+b).bind("click",function(){$(m.confirm.yes).unbind("click"),$(m.confirm.yes).bind("click",a.callback),$(m.confirm.list).css("display","block")}):void 0}),$(this.confirm.no).bind("click",function(){$(m.confirm.list).css("display","none")});var o;if("string"==typeof a)o=templateEngine.createTemplate(a),j?$("#"+j+" .createModalDialog .modal-body").html(o.render({content:d,advancedContent:e,info:f})):$("#modalPlaceholder .createModalDialog .modal-body").html(o.render({content:d,advancedContent:e,info:f}));else{var p=0;_.each(a,function(a){o=templateEngine.createTemplate(a),$(".createModalDialog .modal-body .tab-content #"+i[p]).html(o.render({content:d,advancedContent:e,info:f})),p++})}$(".createModalDialog .modalTooltips").tooltip({position:{my:"left top",at:"right+55 top-1"}});var q=d||[];e&&e.content&&(q=q.concat(e.content)),_.each(q,function(a){m.modalBindValidation(a),a.type===m.tables.SELECT2&&$("#"+a.id).select2({tags:a.tags||[],showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:a.maxEntrySize||8})}),g&&(this.events=g,this.delegateEvents()),$("#accordion2")&&($("#accordion2 .accordion-toggle").bind("click",function(){$("#collapseOne").is(":visible")?($("#collapseOne").hide(),setTimeout(function(){$(".accordion-toggle").addClass("collapsed")},100)):($("#collapseOne").show(),setTimeout(function(){$(".accordion-toggle").removeClass("collapsed")},100))}),$("#collapseOne").hide(),setTimeout(function(){$(".accordion-toggle").addClass("collapsed")},100)),j||$("#modal-dialog").modal("show"),this.enabledHotkey===!1&&(this.createInitModalHotkeys(),this.enabledHotkey=!0),this.enableHotKeys&&this.createModalHotkeys();var r=$("#modal-dialog").find("input");r&&setTimeout(function(){var a=$("#modal-dialog");a.length>0&&(a=a.find("input"),a.length>0&&$(a[0]).focus())},400)},modalBindValidation:function(a){var b=this;if(a.hasOwnProperty("id")&&a.hasOwnProperty("validateInput")){var c=function(){var b=$("#"+a.id),c=a.validateInput(b),d=!1;return _.each(c,function(a){var c=b.val();if(a.rule||(a={rule:a}),"function"==typeof a.rule)try{a.rule(c)}catch(e){d=a.msg||e.message}else{var f=Joi.validate(c,a.rule);f.error&&(d=a.msg||f.error.message)}return d?!1:void 0}),d?d:void 0},d=$("#"+a.id);d.on("keyup focusout",function(){var a=c(),e=d.next()[0];a?(d.addClass("invalid-input"),e?$(e).text(a):d.after('

    '+a+"

    "),$(".createModalDialog .modal-footer .button-success").prop("disabled",!0).addClass("disabled")):(d.removeClass("invalid-input"),e&&$(e).remove(),b.modalTestAll())}),this._validators.push(c),this._validateWatchers.push(d)}},modalTestAll:function(){var a=_.map(this._validators,function(a){return a()}),b=_.any(a);return b?$(".createModalDialog .modal-footer .button-success").prop("disabled",!0).addClass("disabled"):$(".createModalDialog .modal-footer .button-success").prop("disabled",!1).removeClass("disabled"),!b},clearValidators:function(){this._validators=[],_.each(this._validateWatchers,function(a){a.unbind("keyup focusout")}),this._validateWatchers=[]},hide:function(){this.clearValidators(),$("#modal-dialog").modal("hide")}})}(),function(){"use strict";window.NavigationView=Backbone.View.extend({el:"#navigationBar",subEl:"#subNavigationBar",events:{"change #arangoCollectionSelect":"navigateBySelect","click .tab":"navigateByTab","click li":"switchTab","click .arangodbLogo":"selectMenuItem","mouseenter .dropdown > *":"showDropdown","click .shortcut-icons p":"showShortcutModal","mouseleave .dropdown":"hideDropdown"},renderFirst:!0,activeSubMenu:void 0,changeDB:function(){window.location.hash="#login"},initialize:function(a){var b=this;this.userCollection=a.userCollection,this.currentDB=a.currentDB,this.dbSelectionView=new window.DBSelectionView({collection:a.database,current:this.currentDB}),this.userBarView=new window.UserBarView({userCollection:this.userCollection}),this.notificationView=new window.NotificationView({collection:a.notificationCollection}),this.statisticBarView=new window.StatisticBarView({currentDB:this.currentDB}),this.isCluster=a.isCluster,this.handleKeyboardHotkeys(),Backbone.history.on("all",function(){b.selectMenuItem()})},showShortcutModal:function(){arangoHelper.hotkeysFunctions.showHotkeysModal()},handleSelectDatabase:function(){this.dbSelectionView.render($("#dbSelect"))},template:templateEngine.createTemplate("navigationView.ejs"),templateSub:templateEngine.createTemplate("subNavigationView.ejs"),render:function(){var a=this;$(this.el).html(this.template.render({currentDB:this.currentDB,isCluster:this.isCluster})),"_system"!==this.currentDB.get("name")&&$("#dashboard").parent().remove(),$(this.subEl).html(this.templateSub.render({currentDB:this.currentDB.toJSON()})),this.dbSelectionView.render($("#dbSelect"));var b=function(a){a||this.userBarView.render()}.bind(this);return this.userCollection.whoAmI(b),this.renderFirst&&(this.renderFirst=!1,this.selectMenuItem(),$(".arangodbLogo").on("click",function(){a.selectMenuItem()}),$("#dbStatus").on("click",function(){a.changeDB()})),this},navigateBySelect:function(){var a=$("#arangoCollectionSelect").find("option:selected").val();window.App.navigate(a,{trigger:!0})},handleKeyboardHotkeys:function(){arangoHelper.enableKeyboardHotkeys(!0)},navigateByTab:function(a){var b=a.target||a.srcElement,c=b.id,d=!1;$(b).hasClass("fa")||(""===c&&(c=$(b).attr("class")),"links"===c?(d=!0,$("#link_dropdown").slideToggle(1),a.preventDefault()):"tools"===c?(d=!0,$("#tools_dropdown").slideToggle(1),a.preventDefault()):"dbselection"===c&&(d=!0,$("#dbs_dropdown").slideToggle(1),a.preventDefault()),d||(window.App.navigate(c,{trigger:!0}),a.preventDefault()))},handleSelectNavigation:function(){var a=this;$("#arangoCollectionSelect").change(function(){a.navigateBySelect()})},subViewConfig:{documents:"collections",collection:"collections"},subMenuConfig:{cluster:[{name:"Dashboard",view:void 0,active:!0},{name:"Logs",view:void 0,disabled:!0}],collections:[{name:"",view:void 0,active:!1}],queries:[{name:"Editor",route:"query",active:!0},{name:"Running Queries",route:"queryManagement",params:{active:!0},active:void 0},{name:"Slow Query History",route:"queryManagement",params:{active:!1},active:void 0}]},renderSubMenu:function(a){var b=this;if(void 0===a&&(a=window.isCluster?"cluster":"dashboard"),this.subMenuConfig[a]){$(this.subEl+" .bottom").html("");var c="";_.each(this.subMenuConfig[a],function(a){c=a.active?"active":"",a.disabled&&(c="disabled"),$(b.subEl+" .bottom").append('"),a.disabled||$(b.subEl+" .bottom").children().last().bind("click",function(c){b.activeSubMenu=a,b.renderSubView(a,c)})})}},renderSubView:function(a,b){window.App[a.route]&&(window.App[a.route].resetState&&window.App[a.route].resetState(),window.App[a.route]()),$(this.subEl+" .bottom").children().removeClass("active"),$(b.currentTarget).addClass("active")},switchTab:function(a){var b=$(a.currentTarget).children().first().attr("id");b&&this.selectMenuItem(b+"-menu")},selectMenuItem:function(a,b){void 0===a&&(a=window.location.hash.split("/")[0],a=a.substr(1,a.length-1)),""===a?a=window.App.isCluster?"cluster":"dashboard":("cNodes"===a||"dNodes"===a)&&(a="nodes");try{this.renderSubMenu(a.split("-")[0])}catch(c){this.renderSubMenu(a)}$(".navlist li").removeClass("active"),"string"==typeof a&&(b?$("."+this.subViewConfig[a]+"-menu").addClass("active"):a&&($("."+a).addClass("active"),$("."+a+"-menu").addClass("active"))),arangoHelper.hideArangoNotifications()},showSubDropdown:function(a){console.log($(a.currentTarget)),console.log($(a.currentTarget).find(".subBarDropdown")),$(a.currentTarget).find(".subBarDropdown").toggle()},showDropdown:function(a){var b=a.target||a.srcElement,c=b.id;"links"===c||"link_dropdown"===c||"links"===a.currentTarget.id?$("#link_dropdown").fadeIn(1):"tools"===c||"tools_dropdown"===c||"tools"===a.currentTarget.id?$("#tools_dropdown").fadeIn(1):("dbselection"===c||"dbs_dropdown"===c||"dbselection"===a.currentTarget.id)&&$("#dbs_dropdown").fadeIn(1)},hideDropdown:function(a){var b=a.target||a.srcElement;b=$(b).parent(),$("#link_dropdown").fadeOut(1),$("#tools_dropdown").fadeOut(1),$("#dbs_dropdown").fadeOut(1)}})}(),function(){"use strict";window.NodeView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("nodeView.ejs"),interval:5e3,dashboards:[],events:{},initialize:function(a){window.App.isCluster&&(this.coordinators=a.coordinators,this.dbServers=a.dbServers,this.coordname=a.coordname,this.updateServerTime(),window.setInterval(function(){if(0===window.location.hash.indexOf("#node/"));},this.interval))},breadcrumb:function(a){$("#subNavigationBar .breadcrumb").html("Node: "+a)},render:function(){this.$el.html(this.template.render({coords:[]}));var a=function(){this.continueRender(),this.breadcrumb(this.coordname),$(window).trigger("resize")}.bind(this),b=function(){console.log("")};this.initCoordDone||this.waitForCoordinators(b),this.initDBDone?(this.coordname=window.location.hash.split("/")[1],this.coordinator=this.coordinators.findWhere({name:this.coordname}),a()):this.waitForDBServers(a)},continueRender:function(){var a=this;this.dashboards[this.coordinator.get("name")]=new window.DashboardView({dygraphConfig:window.dygraphConfig,database:window.App.arangoDatabase,serverToShow:{raw:this.coordinator.get("address"),isDBServer:!1,endpoint:this.coordinator.get("protocol")+"://"+this.coordinator.get("address"),target:this.coordinator.get("name")}}),this.dashboards[this.coordinator.get("name")].render(),window.setTimeout(function(){a.dashboards[a.coordinator.get("name")].resize()},500)},waitForCoordinators:function(a){var b=this;window.setTimeout(function(){0===b.coordinators.length?b.waitForCoordinators(a):(b.coordinator=b.coordinators.findWhere({name:b.coordname}),b.initCoordDone=!0,a())},200)},waitForDBServers:function(a){var b=this;window.setTimeout(function(){0===b.dbServers[0].length?b.waitForDBServers(a):(b.initDBDone=!0,b.dbServer=b.dbServers[0],b.dbServer.each(function(a){"DBServer1"===a.get("name")&&(b.dbServer=a)}),a())},200)},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),function(){"use strict";window.NodesView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("nodesView.ejs"),interval:5e3,knownServers:[],events:{"click #nodesContent .pure-table-body .pure-table-row":"navigateToNode"},initialize:function(a){clearInterval(this.intervalFunction),window.App.isCluster&&(this.dbServers=a.dbServers,this.coordinators=a.coordinators,this.updateServerTime(),this.toRender=a.toRender,this.intervalFunction=window.setInterval(function(){("#cNodes"===window.location.hash||"#dNodes"===window.location.hash||"#nodes"===window.location.hash)&&console.log("rerender health")},this.interval))},navigateToNode:function(a){if("#dNodes"!==window.location.hash){var b=$(a.currentTarget).attr("node");window.App.navigate("#node/"+encodeURIComponent(b),{trigger:!0})}},render:function(){var a=function(){this.continueRender()}.bind(this);this.initDoneCoords?a():this.waitForCoordinators(a)},continueRender:function(){var a;a="coordinator"===this.toRender?this.coordinators.toJSON():this.dbServers.toJSON(),this.$el.html(this.template.render({coords:a,type:this.toRender})),window.arangoHelper.buildNodesSubNav(this.toRender)},waitForCoordinators:function(a){var b=this;window.setTimeout(function(){0===b.coordinators.length?b.waitForCoordinators(a):(this.initDoneCoords=!0,a())},200)},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),function(){"use strict";window.NotificationView=Backbone.View.extend({events:{"click .navlogo #stat_hd":"toggleNotification","click .notificationItem .fa":"removeNotification","click #removeAllNotifications":"removeAllNotifications"},initialize:function(){this.collection.bind("add",this.renderNotifications.bind(this)),this.collection.bind("remove",this.renderNotifications.bind(this)),this.collection.bind("reset",this.renderNotifications.bind(this)),window.setTimeout(function(){frontendConfig.authenticationEnabled===!1&&window.arangoHelper.arangoWarning("Warning","Authentication is disabled. Do not use this setup in production mode.")},2e3)},notificationItem:templateEngine.createTemplate("notificationItem.ejs"),el:"#notificationBar",template:templateEngine.createTemplate("notificationView.ejs"),toggleNotification:function(){var a=this.collection.length;0!==a&&$("#notification_menu").toggle()},removeAllNotifications:function(){$.noty.clearQueue(),$.noty.closeAll(),this.collection.reset(),$("#notification_menu").hide()},removeNotification:function(a){var b=a.target.id;this.collection.get(b).destroy()},renderNotifications:function(a,b,c){if(c&&c.add){var d,e=this.collection.at(this.collection.length-1),f=e.get("title"),g=3e3,h=["click"];if(e.get("content")&&(f=f+": "+e.get("content")),"error"===e.get("type")?(g=!1,h=["button"],d=[{addClass:"button-danger",text:"Close",onClick:function(a){a.close()}}]):"warning"===e.get("type")&&(g=2e4),$.noty.clearQueue(),$.noty.closeAll(),noty({theme:"relax",text:f,template:'
    ',maxVisible:1,closeWith:["click"],type:e.get("type"),layout:"bottom",timeout:g,buttons:d,animation:{open:{height:"show"},close:{height:"hide"},easing:"swing",speed:200,closeWith:h}}),"success"===e.get("type"))return void e.destroy()}$("#stat_hd_counter").text(this.collection.length),0===this.collection.length?($("#stat_hd").removeClass("fullNotification"),$("#notification_menu").hide()):$("#stat_hd").addClass("fullNotification"),$(".innerDropdownInnerUL").html(this.notificationItem.render({notifications:this.collection})),$(".notificationInfoIcon").tooltip({position:{my:"left top",at:"right+55 top-1"}})},render:function(){return $(this.el).html(this.template.render({notifications:this.collection})),this.renderNotifications(),this.delegateEvents(),this.el}})}(),function(){"use strict";window.ProgressView=Backbone.View.extend({template:templateEngine.createTemplate("progressBase.ejs"),el:"#progressPlaceholder",el2:"#progressPlaceholderIcon",toShow:!1,lastDelay:0,action:function(){},events:{"click .progress-action button":"performAction"},performAction:function(){"function"==typeof this.action&&this.action(),window.progressView.hide()},initialize:function(){},showWithDelay:function(a,b,c,d){var e=this;e.toShow=!0,e.lastDelay=a,setTimeout(function(){e.toShow===!0&&e.show(b,c,d)},e.lastDelay)},show:function(a,b,c){$(this.el).html(this.template.render({})),$(".progress-text").text(a),c?$(".progress-action").html('"):$(".progress-action").html(''),b?this.action=b:this.action=this.hide(),$(this.el).show()},hide:function(){var a=this;a.toShow=!1,$(this.el).hide(),this.action=function(){}}})}(),function(){"use strict";window.queryManagementView=Backbone.View.extend({el:"#content",id:"#queryManagementContent",templateActive:templateEngine.createTemplate("queryManagementViewActive.ejs"),templateSlow:templateEngine.createTemplate("queryManagementViewSlow.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),active:!0,shouldRender:!0,timer:0,refreshRate:2e3,initialize:function(){var a=this;this.activeCollection=new window.QueryManagementActive,this.slowCollection=new window.QueryManagementSlow,this.convertModelToJSON(!0),window.setInterval(function(){"#queries"===window.location.hash&&window.VISIBLE&&a.shouldRender&&"queryManagement"===arangoHelper.getCurrentSub().route&&(a.active?$("#arangoQueryManagementTable").is(":visible")&&a.convertModelToJSON(!0):$("#arangoQueryManagementTable").is(":visible")&&a.convertModelToJSON(!1))},a.refreshRate)},events:{"click #deleteSlowQueryHistory":"deleteSlowQueryHistoryModal","click #arangoQueryManagementTable .fa-minus-circle":"deleteRunningQueryModal"},tableDescription:{id:"arangoQueryManagementTable",titles:["ID","Query String","Runtime","Started",""],rows:[],unescaped:[!1,!1,!1,!1,!0]},deleteRunningQueryModal:function(a){this.killQueryId=$(a.currentTarget).attr("data-id");var b=[],c=[];c.push(window.modalView.createReadOnlyEntry(void 0,"Running Query","Do you want to kill the running query?",void 0,void 0,!1,void 0)),b.push(window.modalView.createDeleteButton("Kill",this.killRunningQuery.bind(this))),window.modalView.show("modalTable.ejs","Kill Running Query",b,c),$(".modal-delete-confirmation strong").html("Really kill?")},killRunningQuery:function(){this.collection.killRunningQuery(this.killQueryId,this.killRunningQueryCallback.bind(this)),window.modalView.hide()},killRunningQueryCallback:function(){this.convertModelToJSON(!0),this.renderActive()},deleteSlowQueryHistoryModal:function(){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry(void 0,"Slow Query Log","Do you want to delete the slow query log entries?",void 0,void 0,!1,void 0)),a.push(window.modalView.createDeleteButton("Delete",this.deleteSlowQueryHistory.bind(this))),window.modalView.show("modalTable.ejs","Delete Slow Query Log",a,b)},deleteSlowQueryHistory:function(){this.collection.deleteSlowQueryHistory(this.slowQueryCallback.bind(this)),window.modalView.hide()},slowQueryCallback:function(){this.convertModelToJSON(!1),this.renderSlow()},render:function(){var a=arangoHelper.getCurrentSub();a.params.active?(this.active=!0,this.convertModelToJSON(!0)):(this.active=!1,this.convertModelToJSON(!1))},addEvents:function(){var a=this;$("#queryManagementContent tbody").on("mousedown",function(){clearTimeout(a.timer),a.shouldRender=!1}),$("#queryManagementContent tbody").on("mouseup",function(){a.timer=window.setTimeout(function(){a.shouldRender=!0},3e3)})},renderActive:function(){this.$el.html(this.templateActive.render({})),$(this.id).append(this.table.render({content:this.tableDescription})),$("#activequeries").addClass("arango-active-tab"),this.addEvents()},renderSlow:function(){this.$el.html(this.templateSlow.render({})),$(this.id).append(this.table.render({content:this.tableDescription})),$("#slowqueries").addClass("arango-active-tab"),this.addEvents()},convertModelToJSON:function(a){var b=this,c=[];a===!0?this.collection=this.activeCollection:this.collection=this.slowCollection,this.collection.fetch({success:function(){b.collection.each(function(b){var d="";a&&(d=''),c.push([b.get("id"),b.get("query"),b.get("runTime").toFixed(2)+" s",b.get("started"),d])});var d="No running queries.";a||(d="No slow queries."),0===c.length&&c.push([d,"","","",""]),b.tableDescription.rows=c,a?b.renderActive():b.renderSlow()}})}})}(),function(){"use strict";window.queryView=Backbone.View.extend({el:"#content",id:"#customsDiv",warningTemplate:templateEngine.createTemplate("warningList.ejs"),tabArray:[],execPending:!1,initialize:function(){this.refreshAQL(),this.tableDescription.rows=this.customQueries},events:{"click #result-switch":"switchTab","click #query-switch":"switchTab","click #customs-switch":"switchTab","click #submitQueryButton":"submitQuery","click #explainQueryButton":"explainQuery","click #commentText":"commentText","click #uncommentText":"uncommentText","click #undoText":"undoText","click #redoText":"redoText","click #smallOutput":"smallOutput","click #bigOutput":"bigOutput","click #clearOutput":"clearOutput","click #clearInput":"clearInput","click #clearQueryButton":"clearInput","click #addAQL":"addAQL","mouseover #querySelect":function(){this.refreshAQL(!0)},"change #querySelect":"importSelected","keypress #aqlEditor":"aqlShortcuts","click #arangoQueryTable .table-cell0":"editCustomQuery","click #arangoQueryTable .table-cell1":"editCustomQuery","click #arangoQueryTable .table-cell2 a":"deleteAQL","click #confirmQueryImport":"importCustomQueries","click #confirmQueryExport":"exportCustomQueries","click #export-query":"exportCustomQueries","click #import-query":"openExportDialog","click #closeQueryModal":"closeExportDialog","click #downloadQueryResult":"downloadQueryResult"},openExportDialog:function(){$("#queryImportDialog").modal("show")},closeExportDialog:function(){$("#queryImportDialog").modal("hide")},createCustomQueryModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("new-query-name","Name","",void 0,void 0,!1,[{rule:Joi.string().required(),msg:"No query name given."}])),a.push(window.modalView.createSuccessButton("Save",this.saveAQL.bind(this))),window.modalView.show("modalTable.ejs","Save Query",a,b,void 0,void 0,{"keyup #new-query-name":this.listenKey.bind(this)})},updateTable:function(){this.tableDescription.rows=this.customQueries,_.each(this.tableDescription.rows,function(a){a.thirdRow='',a.hasOwnProperty("parameter")&&delete a.parameter}),this.tableDescription.unescaped=[!1,!1,!0],this.$(this.id).html(this.table.render({content:this.tableDescription}))},editCustomQuery:function(a){var b=$(a.target).parent().children().first().text(),c=ace.edit("aqlEditor"),d=ace.edit("varsEditor");c.setValue(this.getCustomQueryValueByName(b)),d.setValue(JSON.stringify(this.getCustomQueryParameterByName(b))),this.deselect(d),this.deselect(c),$("#querySelect").val(b),this.switchTab("query-switch")},initTabArray:function(){var a=this;$(".arango-tab").children().each(function(){a.tabArray.push($(this).children().first().attr("id"))})},listenKey:function(a){13===a.keyCode&&this.saveAQL(a),this.checkSaveName()},checkSaveName:function(){var a=$("#new-query-name").val();if("Insert Query"===a)return void $("#new-query-name").val("");var b=this.customQueries.some(function(b){return b.name===a});b?($("#modalButton1").removeClass("button-success"), -$("#modalButton1").addClass("button-warning"),$("#modalButton1").text("Update")):($("#modalButton1").removeClass("button-warning"),$("#modalButton1").addClass("button-success"),$("#modalButton1").text("Save"))},clearOutput:function(){var a=ace.edit("queryOutput");a.setValue("")},clearInput:function(){var a=ace.edit("aqlEditor"),b=ace.edit("varsEditor");this.setCachedQuery(a.getValue(),b.getValue()),a.setValue(""),b.setValue("")},smallOutput:function(){var a=ace.edit("queryOutput");a.getSession().foldAll()},bigOutput:function(){var a=ace.edit("queryOutput");a.getSession().unfold()},aqlShortcuts:function(a){a.ctrlKey&&13===a.keyCode?this.submitQuery():a.metaKey&&!a.ctrlKey&&13===a.keyCode&&this.submitQuery()},queries:[],customQueries:[],tableDescription:{id:"arangoQueryTable",titles:["Name","Content",""],rows:[]},template:templateEngine.createTemplate("queryView.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),render:function(){var a=this;this.$el.html(this.template.render({})),this.$(this.id).html(this.table.render({content:this.tableDescription}));var b=1e3,c=$("#querySize");c.empty(),[100,250,500,1e3,2500,5e3,1e4,"all"].forEach(function(a){c.append('")});var d=ace.edit("queryOutput");d.setReadOnly(!0),d.setHighlightActiveLine(!1),d.getSession().setMode("ace/mode/json"),d.setFontSize("13px"),d.setValue("");var e=ace.edit("aqlEditor");e.getSession().setMode("ace/mode/aql"),e.setFontSize("13px"),e.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"});var f=ace.edit("varsEditor");f.getSession().setMode("ace/mode/aql"),f.setFontSize("13px"),f.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"});var g=this.getCachedQuery();null!==g&&void 0!==g&&""!==g&&(e.setValue(g.query),""===g.parameter||void 0===g?f.setValue("{}"):f.setValue(g.parameter));var h=function(){var b=e.getSession(),c=e.getCursorPosition(),d=b.getTokenAt(c.row,c.column);d&&("comment"===d.type?$("#commentText i").removeClass("fa-comment").addClass("fa-comment-o").attr("data-original-title","Uncomment"):$("#commentText i").removeClass("fa-comment-o").addClass("fa-comment").attr("data-original-title","Comment"));var g=e.getValue(),h=f.getValue();1===g.length&&(g=""),1===h.length&&(h=""),a.setCachedQuery(g,h)};e.getSession().selection.on("changeCursor",function(){h()}),f.getSession().selection.on("changeCursor",function(){h()}),$("#queryOutput").resizable({handles:"s",ghost:!0,stop:function(){setTimeout(function(){var a=ace.edit("queryOutput");a.resize()},200)}}),arangoHelper.fixTooltips(".vars-editor-header i, .queryTooltips, .icon_arangodb","top"),$("#aqlEditor .ace_text-input").focus();var i=$(window).height()-295;return $("#aqlEditor").height(i-100-29),$("#varsEditor").height(100),$("#queryOutput").height(i),e.resize(),d.resize(),this.initTabArray(),this.renderSelectboxes(),this.deselect(f),this.deselect(d),this.deselect(e),$("#queryDiv").show(),$("#customsDiv").show(),this.initQueryImport(),this.switchTab("query-switch"),this},getCachedQuery:function(){if("undefined"!==Storage){var a=localStorage.getItem("cachedQuery");if(void 0!==a){var b=JSON.parse(a);return b}}},setCachedQuery:function(a,b){if("undefined"!==Storage){var c={query:a,parameter:b};localStorage.setItem("cachedQuery",JSON.stringify(c))}},initQueryImport:function(){var a=this;a.allowUpload=!1,$("#importQueries").change(function(b){a.files=b.target.files||b.dataTransfer.files,a.file=a.files[0],a.allowUpload=!0,$("#confirmQueryImport").removeClass("disabled")})},importCustomQueries:function(){var a=this;if(this.allowUpload===!0){var b=function(){this.collection.fetch({success:function(){a.updateLocalQueries(),a.renderSelectboxes(),a.updateTable(),a.allowUpload=!1,$("#customs-switch").click(),$("#confirmQueryImport").addClass("disabled"),$("#queryImportDialog").modal("hide")},error:function(a){arangoHelper.arangoError("Custom Queries",a.responseText)}})}.bind(this);a.collection.saveImportQueries(a.file,b.bind(this))}},downloadQueryResult:function(){var a=ace.edit("aqlEditor"),b=a.getValue();""!==b||void 0!==b||null!==b?window.open("query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:b})))):arangoHelper.arangoError("Query error","could not query result.")},exportCustomQueries:function(){var a,b={},c=[];_.each(this.customQueries,function(a){c.push({name:a.name,value:a.value,parameter:a.parameter})}),b={extra:{queries:c}},$.ajax("whoAmI?_="+Date.now()).success(function(b){a=b.user,(null===a||a===!1)&&(a="root"),window.open("query/download/"+encodeURIComponent(a))})},deselect:function(a){var b=a.getSelection(),c=b.lead.row,d=b.lead.column;b.setSelectionRange({start:{row:c,column:d},end:{row:c,column:d}}),a.focus()},addAQL:function(){this.refreshAQL(!0),this.createCustomQueryModal(),$("#new-query-name").val($("#querySelect").val()),setTimeout(function(){$("#new-query-name").focus()},500),this.checkSaveName()},getAQL:function(a){var b=this;this.collection.fetch({success:function(){var c=localStorage.getItem("customQueries");if(c){var d=JSON.parse(c);_.each(d,function(a){b.collection.add({value:a.value,name:a.name})});var e=function(a,b){a?arangoHelper.arangoError("Custom Queries","Could not import old local storage queries"):localStorage.removeItem("customQueries")}.bind(b);b.collection.saveCollectionQueries(e)}b.updateLocalQueries(),a&&a()}})},deleteAQL:function(a){var b=function(a){a?arangoHelper.arangoError("Query","Could not delete query."):(this.updateLocalQueries(),this.renderSelectboxes(),this.updateTable())}.bind(this),c=$(a.target).parent().parent().parent().children().first().text(),d=this.collection.findWhere({name:c});this.collection.remove(d),this.collection.saveCollectionQueries(b)},updateLocalQueries:function(){var a=this;this.customQueries=[],this.collection.each(function(b){a.customQueries.push({name:b.get("name"),value:b.get("value"),parameter:b.get("parameter")})})},saveAQL:function(a){a.stopPropagation(),this.refreshAQL();var b=ace.edit("aqlEditor"),c=ace.edit("varsEditor"),d=$("#new-query-name").val(),e=c.getValue();if(!$("#new-query-name").hasClass("invalid-input")&&""!==d.trim()){var f=b.getValue(),g=!1;if($.each(this.customQueries,function(a,b){return b.name===d?(b.value=f,void(g=!0)):void 0}),g===!0)this.collection.findWhere({name:d}).set("value",f);else{if((""===e||void 0===e)&&(e="{}"),"string"==typeof e)try{e=JSON.parse(e)}catch(h){console.log("could not parse bind parameter")}this.collection.add({name:d,parameter:e,value:f})}var i=function(a){if(a)arangoHelper.arangoError("Query","Could not save query");else{var b=this;this.collection.fetch({success:function(){b.updateLocalQueries(),b.renderSelectboxes(),$("#querySelect").val(d)}})}}.bind(this);this.collection.saveCollectionQueries(i),window.modalView.hide()}},getSystemQueries:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:"js/arango/aqltemplates.json",contentType:"application/json",processData:!1,success:function(c){a&&a(!1),b.queries=c},error:function(){a&&a(!0),arangoHelper.arangoNotification("Query","Error while loading system templates")}})},getCustomQueryValueByName:function(a){return this.collection.findWhere({name:a}).get("value")},getCustomQueryParameterByName:function(a){return this.collection.findWhere({name:a}).get("parameter")},refreshAQL:function(a){var b=this,c=function(c){if(c)arangoHelper.arangoError("Query","Could not reload Queries");else if(b.updateLocalQueries(),a){var d=$("#querySelect").val();b.renderSelectboxes(),$("#querySelect").val(d)}}.bind(b),d=function(){b.getSystemQueries(c)}.bind(b);this.getAQL(d)},importSelected:function(a){var b=ace.edit("aqlEditor"),c=ace.edit("varsEditor");_.each(this.queries,function(d){$("#"+a.currentTarget.id).val()===d.name&&(b.setValue(d.value),d.hasOwnProperty("parameter")?((""===d.parameter||void 0===d.parameter)&&(d.parameter="{}"),"object"==typeof d.parameter?c.setValue(JSON.stringify(d.parameter)):c.setValue(d.parameter)):c.setValue("{}"))}),_.each(this.customQueries,function(d){$("#"+a.currentTarget.id).val()===d.name&&(b.setValue(d.value),d.hasOwnProperty("parameter")?((""===d.parameter||void 0===d.parameter||"{}"===JSON.stringify(d.parameter))&&(d.parameter="{}"),c.setValue(d.parameter)):c.setValue("{}"))}),this.deselect(ace.edit("varsEditor")),this.deselect(ace.edit("aqlEditor"))},renderSelectboxes:function(){this.sortQueries();var a="";a="#querySelect",$(a).empty(),$(a).append(''),$(a).append(''),jQuery.each(this.queries,function(b,c){$(a).append('")}),$(a).append(""),this.customQueries.length>0&&($(a).append(''),jQuery.each(this.customQueries,function(b,c){$(a).append('")}),$(a).append(""))},undoText:function(){var a=ace.edit("aqlEditor");a.undo()},redoText:function(){var a=ace.edit("aqlEditor");a.redo()},commentText:function(){var a=ace.edit("aqlEditor");a.toggleCommentLines()},sortQueries:function(){this.queries=_.sortBy(this.queries,"name"),this.customQueries=_.sortBy(this.customQueries,"name")},readQueryData:function(){var a=ace.edit("aqlEditor"),b=ace.edit("varsEditor"),c=a.session.getTextRange(a.getSelectionRange()),d=$("#querySize"),e={query:c||a.getValue(),id:"currentFrontendQuery"};"all"!==d.val()&&(e.batchSize=parseInt(d.val(),10));var f=b.getValue();if(f.length>0)try{var g=JSON.parse(f);0!==Object.keys(g).length&&(e.bindVars=g)}catch(h){return arangoHelper.arangoError("Query error","Could not parse bind parameters."),!1}return JSON.stringify(e)},heatmapColors:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"],heatmap:function(a){return this.heatmapColors[Math.floor(10*a)]},followQueryPath:function(a,b){var c={},d=0;c[b[0].id]=a;var e,f,g,h;for(e=1;e0&&(b+="Warnings:\r\n\r\n",a.extra.warnings.forEach(function(a){b+="["+a.code+"], '"+a.message+"'\r\n"})),""!==b&&(b+="\r\nResult:\r\n\r\n"),d.setValue(b+JSON.stringify(a.result,void 0,2))},g=function(a){f(a),c.switchTab("result-switch"),window.progressView.hide();var e="-";a&&a.extra&&a.extra.stats&&(e=a.extra.stats.executionTime.toFixed(3)+" s"),$(".queryExecutionTime").text("Execution time: "+e),c.deselect(d),$("#downloadQueryResult").show(),"function"==typeof b&&b()},h=function(){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a,b,d){201===d.status?g(a):204===d.status&&(c.checkQueryTimer=window.setTimeout(function(){h()},500))},error:function(a){try{var b=JSON.parse(a.responseText);b.errorMessage&&arangoHelper.arangoError("Query",b.errorMessage)}catch(c){arangoHelper.arangoError("Query","Something went wrong.")}window.progressView.hide()}})};h()},fillResult:function(a){var b=this,c=ace.edit("queryOutput");c.setValue("");var d=this.readQueryData();d&&$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),headers:{"x-arango-async":"store"},data:d,contentType:"application/json",processData:!1,success:function(c,d,e){e.getResponseHeader("x-arango-async-id")&&b.queryCallbackFunction(e.getResponseHeader("x-arango-async-id"),a),$.noty.clearQueue(),$.noty.closeAll()},error:function(d){b.switchTab("result-switch"),$("#downloadQueryResult").hide();try{var e=JSON.parse(d.responseText);c.setValue("["+e.errorNum+"] "+e.errorMessage)}catch(f){c.setValue("ERROR"),arangoHelper.arangoError("Query error","ERROR")}window.progressView.hide(),"function"==typeof a&&a()}})},submitQuery:function(){var a=ace.edit("queryOutput");this.fillResult(this.switchTab.bind(this,"result-switch")),a.resize();var b=ace.edit("aqlEditor");this.deselect(b),$("#downloadQueryResult").show()},explainQuery:function(){this.fillExplain()},switchTab:function(a){var b;b="string"==typeof a?a:a.target.id;var c=this,d=function(a){var d="#"+a.replace("-switch",""),e="#tabContent"+d.charAt(1).toUpperCase()+d.substr(2);a===b?($("#"+a).parent().addClass("active"),$(d).addClass("active"),$(e).show(),"query-switch"===b?$("#aqlEditor .ace_text-input").focus():"result-switch"===b&&c.execPending&&c.fillResult()):($("#"+a).parent().removeClass("active"),$(d).removeClass("active"),$(e).hide())};this.tabArray.forEach(d),this.updateTable()}})}(),function(){"use strict";window.queryView2=Backbone.View.extend({el:"#content",bindParamId:"#bindParamEditor",myQueriesId:"#queryTable",template:templateEngine.createTemplate("queryView2.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),outputDiv:"#outputEditors",outputTemplate:templateEngine.createTemplate("queryViewOutput.ejs"),outputCounter:0,allowUpload:!1,customQueries:[],queries:[],state:{lastQuery:{query:void 0,bindParam:void 0}},settings:{aqlWidth:void 0},currentQuery:{},initDone:!1,bindParamRegExp:/@(@?\w+\d*)/,bindParamTableObj:{},bindParamTableDesc:{id:"arangoBindParamTable",titles:["Key","Value"],rows:[]},myQueriesTableDesc:{id:"arangoMyQueriesTable",titles:["Name","Actions"],rows:[]},execPending:!1,aqlEditor:null,queryPreview:null,initialize:function(){this.refreshAQL()},allowParamToggle:!0,events:{"click #executeQuery":"executeQuery","click #explainQuery":"explainQuery","click #clearQuery":"clearQuery","click .outputEditorWrapper #downloadQueryResult":"downloadQueryResult","click .outputEditorWrapper .switchAce":"switchAce","click .outputEditorWrapper .fa-close":"closeResult","click #toggleQueries1":"toggleQueries","click #toggleQueries2":"toggleQueries","click #saveCurrentQuery":"addAQL","click #exportQuery":"exportCustomQueries","click #importQuery":"openImportDialog","click #removeResults":"removeResults","click #querySpotlight":"showSpotlight","click #deleteQuery":"selectAndDeleteQueryFromTable","click #explQuery":"selectAndExplainQueryFromTable","keydown #arangoBindParamTable input":"updateBindParams","change #arangoBindParamTable input":"updateBindParams","click #arangoMyQueriesTable tbody tr":"showQueryPreview","dblclick #arangoMyQueriesTable tbody tr":"selectQueryFromTable","click #arangoMyQueriesTable #copyQuery":"selectQueryFromTable","click #closeQueryModal":"closeExportDialog","click #confirmQueryImport":"importCustomQueries","click #switchTypes":"toggleBindParams","click #arangoMyQueriesTable #runQuery":"selectAndRunQueryFromTable"},clearQuery:function(){this.aqlEditor.setValue("",1)},toggleBindParams:function(){this.allowParamToggle?($("#bindParamEditor").toggle(),$("#bindParamAceEditor").toggle(),"JSON"===$("#switchTypes").text()?($("#switchTypes").text("Table"),this.updateQueryTable(),this.bindParamAceEditor.setValue(JSON.stringify(this.bindParamTableObj,null," "),1),this.deselect(this.bindParamAceEditor)):($("#switchTypes").text("JSON"),this.renderBindParamTable())):arangoHelper.arangoError("Bind parameter","Could not parse bind parameter"),this.resize()},openExportDialog:function(){$("#queryImportDialog").modal("show")},closeExportDialog:function(){$("#queryImportDialog").modal("hide")},initQueryImport:function(){var a=this;a.allowUpload=!1,$("#importQueries").change(function(b){a.files=b.target.files||b.dataTransfer.files,a.file=a.files[0],a.allowUpload=!0,$("#confirmQueryImport").removeClass("disabled")})},importCustomQueries:function(){var a=this;if(this.allowUpload===!0){var b=function(){this.collection.fetch({success:function(){a.updateLocalQueries(),a.updateQueryTable(),a.resize(),a.allowUpload=!1,$("#confirmQueryImport").addClass("disabled"),$("#queryImportDialog").modal("hide")},error:function(a){arangoHelper.arangoError("Custom Queries",a.responseText)}})}.bind(this);a.collection.saveImportQueries(a.file,b.bind(this))}},removeResults:function(){$(".outputEditorWrapper").hide("fast",function(){$(".outputEditorWrapper").remove()}),$("#removeResults").hide()},getCustomQueryParameterByName:function(a){return this.collection.findWhere({name:a}).get("parameter")},getCustomQueryValueByName:function(a){var b;return a&&(b=this.collection.findWhere({name:a})),b?b=b.get("value"):_.each(this.queries,function(c){c.name===a&&(b=c.value)}),b},openImportDialog:function(){$("#queryImportDialog").modal("show")},closeImportDialog:function(){$("#queryImportDialog").modal("hide")},exportCustomQueries:function(){var a;$.ajax("whoAmI?_="+Date.now()).success(function(b){a=b.user,(null===a||a===!1)&&(a="root"),window.open("query/download/"+encodeURIComponent(a))})},toggleQueries:function(a){a&&"toggleQueries1"===a.currentTarget.id?(this.updateQueryTable(),$("#bindParamAceEditor").hide(),$("#bindParamEditor").show(),$("#switchTypes").text("JSON"),$(".aqlEditorWrapper").first().width(.33*$(window).width()),this.queryPreview.setValue("No query selected.",1),this.deselect(this.queryPreview)):void 0===this.settings.aqlWidth?$(".aqlEditorWrapper").first().width(.33*$(window).width()):$(".aqlEditorWrapper").first().width(this.settings.aqlWidth),this.resize();var b=["aqlEditor","queryTable","previewWrapper","querySpotlight","bindParamEditor","toggleQueries1","toggleQueries2","saveCurrentQuery","querySize","executeQuery","switchTypes","explainQuery","importQuery","exportQuery"];_.each(b,function(a){$("#"+a).toggle()}),this.resize()},showQueryPreview:function(a){$("#arangoMyQueriesTable tr").removeClass("selected"),$(a.currentTarget).addClass("selected");var b=this.getQueryNameFromTable(a);this.queryPreview.setValue(this.getCustomQueryValueByName(b),1),this.deselect(this.queryPreview)},getQueryNameFromTable:function(a){var b;return $(a.currentTarget).is("tr")?b=$(a.currentTarget).children().first().text():$(a.currentTarget).is("span")&&(b=$(a.currentTarget).parent().parent().prev().text()),b},deleteQueryModal:function(a){var b=[],c=[];c.push(window.modalView.createReadOnlyEntry(void 0,a,"Do you want to delete the query?",void 0,void 0,!1,void 0)),b.push(window.modalView.createDeleteButton("Delete",this.deleteAQL.bind(this,a))),window.modalView.show("modalTable.ejs","Delete Query",b,c)},selectAndDeleteQueryFromTable:function(a){var b=this.getQueryNameFromTable(a);this.deleteQueryModal(b)},selectAndExplainQueryFromTable:function(a){this.selectQueryFromTable(a,!1),this.explainQuery()},selectAndRunQueryFromTable:function(a){this.selectQueryFromTable(a,!1),this.executeQuery()},selectQueryFromTable:function(a,b){var c=this.getQueryNameFromTable(a),d=this;void 0===b&&this.toggleQueries(),this.state.lastQuery.query=this.aqlEditor.getValue(),this.state.lastQuery.bindParam=this.bindParamTableObj,this.aqlEditor.setValue(this.getCustomQueryValueByName(c),1),this.fillBindParamTable(this.getCustomQueryParameterByName(c)),this.updateBindParams(),$("#lastQuery").remove(),$("#queryContent .arangoToolbarTop .pull-left").append('Previous Query'),$("#lastQuery").hide().fadeIn(500).on("click",function(){d.aqlEditor.setValue(d.state.lastQuery.query,1),d.fillBindParamTable(d.state.lastQuery.bindParam),d.updateBindParams(),$("#lastQuery").fadeOut(500,function(){$(this).remove()})})},deleteAQL:function(a){var b=function(a){a?arangoHelper.arangoError("Query","Could not delete query."):(this.updateLocalQueries(),this.updateQueryTable(),this.resize(),window.modalView.hide())}.bind(this),c=this.collection.findWhere({name:a});this.collection.remove(c),this.collection.saveCollectionQueries(b)},switchAce:function(a){var b=$(a.currentTarget).attr("counter");"Result"===$(a.currentTarget).text()?$(a.currentTarget).text("AQL"):$(a.currentTarget).text("Result"),$("#outputEditor"+b).toggle(),$("#sentWrapper"+b).toggle(),this.deselect(ace.edit("outputEditor"+b)),this.deselect(ace.edit("sentQueryEditor"+b)),this.deselect(ace.edit("sentBindParamEditor"+b))},downloadQueryResult:function(a){var b=$(a.currentTarget).attr("counter"),c=ace.edit("sentQueryEditor"+b),d=c.getValue();""!==d||void 0!==d||null!==d?0===Object.keys(this.bindParamTableObj).length?window.open("query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d})))):window.open("query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d,bindVars:this.bindParamTableObj})))):arangoHelper.arangoError("Query error","could not query result.")},explainQuery:function(){if(!this.verifyQueryAndParams()){this.$(this.outputDiv).prepend(this.outputTemplate.render({counter:this.outputCounter,type:"Explain"}));var a=this.outputCounter,b=ace.edit("outputEditor"+a),c=ace.edit("sentQueryEditor"+a),d=ace.edit("sentBindParamEditor"+a);c.getSession().setMode("ace/mode/aql"),c.setOption("vScrollBarAlwaysVisible",!0),c.setReadOnly(!0),this.setEditorAutoHeight(c),b.setReadOnly(!0),b.getSession().setMode("ace/mode/json"),b.setOption("vScrollBarAlwaysVisible",!0),this.setEditorAutoHeight(b),d.setValue(JSON.stringify(this.bindParamTableObj),1),d.setOption("vScrollBarAlwaysVisible",!0),d.getSession().setMode("ace/mode/json"),d.setReadOnly(!0),this.setEditorAutoHeight(d),this.fillExplain(b,c,a),this.outputCounter++}},fillExplain:function(a,b,c){b.setValue(this.aqlEditor.getValue(),1);var d=this,e=this.readQueryData();if($("#outputEditorWrapper"+c+" .queryExecutionTime").text(""),this.execPending=!1,e){var f=function(){$("#outputEditorWrapper"+c+" #spinner").remove(),$("#outputEditor"+c).css("opacity","1"),$("#outputEditorWrapper"+c+" .fa-close").show(),$("#outputEditorWrapper"+c+" .switchAce").show()};$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_admin/aardvark/query/explain/"),data:e,contentType:"application/json",processData:!1,success:function(b){b.msg.includes("errorMessage")?(d.removeOutputEditor(c),arangoHelper.arangoError("Explain",b.msg)):(a.setValue(b.msg,1),d.deselect(a),$.noty.clearQueue(),$.noty.closeAll(),d.handleResult(c)),f()},error:function(a){try{var b=JSON.parse(a.responseText);arangoHelper.arangoError("Explain",b.errorMessage)}catch(e){arangoHelper.arangoError("Explain","ERROR")}d.handleResult(c),d.removeOutputEditor(c),f()}})}},removeOutputEditor:function(a){$("#outputEditorWrapper"+a).hide(),$("#outputEditorWrapper"+a).remove(),0===$(".outputEditorWrapper").length&&$("#removeResults").hide()},getCachedQueryAfterRender:function(){var a=this.getCachedQuery(),b=this;if(null!==a&&void 0!==a&&""!==a&&(this.aqlEditor.setValue(a.query,1),this.aqlEditor.getSession().setUndoManager(new ace.UndoManager),""!==a.parameter||void 0!==a))try{b.bindParamTableObj=JSON.parse(a.parameter);var c;_.each($("#arangoBindParamTable input"),function(a){c=$(a).attr("name"),$(a).val(b.bindParamTableObj[c])}),b.setCachedQuery(b.aqlEditor.getValue(),JSON.stringify(b.bindParamTableObj))}catch(d){}},getCachedQuery:function(){if("undefined"!==Storage){var a=localStorage.getItem("cachedQuery");if(void 0!==a){var b=JSON.parse(a);this.currentQuery=b;try{this.bindParamTableObj=JSON.parse(b.parameter)}catch(c){}return b}}},setCachedQuery:function(a,b){if("undefined"!==Storage){var c={query:a,parameter:b};this.currentQuery=c,localStorage.setItem("cachedQuery",JSON.stringify(c))}},closeResult:function(a){var b=$("#"+$(a.currentTarget).attr("element")).parent();$(b).hide("fast",function(){$(b).remove(),0===$(".outputEditorWrapper").length&&$("#removeResults").hide()})},fillSelectBoxes:function(){var a=1e3,b=$("#querySize");b.empty(),[100,250,500,1e3,2500,5e3,1e4,"all"].forEach(function(c){b.append('")})},render:function(){this.$el.html(this.template.render({})),this.afterRender(),this.initDone||(this.settings.aqlWidth=$(".aqlEditorWrapper").width()),this.initDone=!0,this.renderBindParamTable(!0)},afterRender:function(){var a=this;this.initAce(),this.initTables(),this.fillSelectBoxes(),this.makeResizeable(),this.initQueryImport(),this.getCachedQueryAfterRender(),$(".inputEditorWrapper").height($(window).height()/10*5+25),window.setTimeout(function(){a.resize()},10),a.deselect(a.aqlEditor)},showSpotlight:function(a){var b,c;if((void 0===a||"click"===a.type)&&(a="aql"),"aql"===a)b=function(a){this.aqlEditor.insert(a),$("#aqlEditor .ace_text-input").focus()}.bind(this),c=function(){$("#aqlEditor .ace_text-input").focus()};else{var d=$(":focus");b=function(a){var b=$(d).val();$(d).val(b+a),$(d).focus()}.bind(this),c=function(){$(d).focus()}}window.spotlightView.show(b,c,a)},resize:function(){this.resizeFunction()},resizeFunction:function(){$("#toggleQueries1").is(":visible")?(this.aqlEditor.resize(),$("#arangoBindParamTable thead").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable thead th").css("width",$("#bindParamEditor").width()/2),$("#arangoBindParamTable tr").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable tbody").css("height",$("#aqlEditor").height()-35),$("#arangoBindParamTable tbody").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable tbody tr").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable tbody td").css("width",$("#bindParamEditor").width()/2)):(this.queryPreview.resize(),$("#arangoMyQueriesTable thead").css("width",$("#queryTable").width()),$("#arangoMyQueriesTable thead th").css("width",$("#queryTable").width()/2),$("#arangoMyQueriesTable tr").css("width",$("#queryTable").width()),$("#arangoMyQueriesTable tbody").css("height",$("#queryTable").height()-35),$("#arangoMyQueriesTable tbody").css("width",$("#queryTable").width()),$("#arangoMyQueriesTable tbody td").css("width",$("#queryTable").width()/2))},makeResizeable:function(){var a=this;$(".aqlEditorWrapper").resizable({resize:function(){a.resizeFunction(),a.settings.aqlWidth=$(".aqlEditorWrapper").width()},handles:"e"}),$(".inputEditorWrapper").resizable({resize:function(){a.resizeFunction()},handles:"s"}),this.resizeFunction()},initTables:function(){this.$(this.bindParamId).html(this.table.render({content:this.bindParamTableDesc})),this.$(this.myQueriesId).html(this.table.render({content:this.myQueriesTableDesc}))},checkType:function(a){var b="stringtype";try{a=JSON.parse(a),b=a instanceof Array?"arraytype":typeof a+"type"}catch(c){}return b},updateBindParams:function(a){var b,c=this;if(a){b=$(a.currentTarget).attr("name"),this.bindParamTableObj[b]=arangoHelper.parseInput(a.currentTarget);var d=["arraytype","objecttype","booleantype","numbertype","stringtype"];_.each(d,function(b){$(a.currentTarget).removeClass(b)}),$(a.currentTarget).addClass(c.checkType($(a.currentTarget).val()))}else _.each($("#arangoBindParamTable input"),function(a){b=$(a).attr("name"),c.bindParamTableObj[b]=arangoHelper.parseInput(a)});this.setCachedQuery(this.aqlEditor.getValue(),JSON.stringify(this.bindParamTableObj)),a&&((a.ctrlKey||a.metaKey)&&13===a.keyCode&&(a.preventDefault(),this.executeQuery()),(a.ctrlKey||a.metaKey)&&32===a.keyCode&&(a.preventDefault(),this.showSpotlight("bind")))},parseQuery:function(a){var b=0,c=1,d=2,e=3,f=4,g=5,h=6,i=7;a+=" ";var j,k,l,m=this,n=b,o=a.length,p=[];for(k=0;o>k;++k)switch(l=a.charAt(k),n){case b:"@"===l?(n=h,j=k):"'"===l?n=c:'"'===l?n=d:"`"===l?n=e:"´"===l?n=i:"/"===l&&o>k+1&&("/"===a.charAt(k+1)?(n=f,++k):"*"===a.charAt(k+1)&&(n=g,++k));break;case f:("\r"===l||"\n"===l)&&(n=b);break;case g:"*"===l&&o>=k+1&&"/"===a.charAt(k+1)&&(n=b,++k);break;case c:"\\"===l?++k:"'"===l&&(n=b);break;case d:"\\"===l?++k:'"'===l&&(n=b);break;case e:"`"===l&&(n=b);break;case i:"´"===l&&(n=b);break;case h:/^[@a-zA-Z0-9_]+$/.test(l)||(p.push(a.substring(j,k)),n=b,j=void 0)}var q;return _.each(p,function(a,b){q=a.match(m.bindParamRegExp),q&&(p[b]=q[1])}),{query:a,bindParams:p}},checkForNewBindParams:function(){var a=this,b=this.parseQuery(this.aqlEditor.getValue()).bindParams,c={};_.each(b,function(b){a.bindParamTableObj[b]?c[b]=a.bindParamTableObj[b]:c[b]=""}),Object.keys(b).forEach(function(b){Object.keys(a.bindParamTableObj).forEach(function(d){b===d&&(c[b]=a.bindParamTableObj[d])})}),a.bindParamTableObj=c},renderBindParamTable:function(a){$("#arangoBindParamTable tbody").html(""),a&&this.getCachedQuery();var b=0;_.each(this.bindParamTableObj,function(a,c){$("#arangoBindParamTable tbody").append(""+c+"'),b++,_.each($("#arangoBindParamTable input"),function(b){$(b).attr("name")===c&&(a instanceof Array?$(b).val(JSON.stringify(a)).addClass("arraytype"):"object"==typeof a?$(b).val(JSON.stringify(a)).addClass(typeof a+"type"):$(b).val(a).addClass(typeof a+"type"))})}),0===b&&$("#arangoBindParamTable tbody").append('No bind parameters defined.')},fillBindParamTable:function(a){_.each(a,function(a,b){_.each($("#arangoBindParamTable input"),function(c){$(c).attr("name")===b&&$(c).val(a)})})},initAce:function(){var a=this;this.aqlEditor=ace.edit("aqlEditor"),this.aqlEditor.getSession().setMode("ace/mode/aql"),this.aqlEditor.setFontSize("10pt"),this.aqlEditor.setShowPrintMargin(!1),this.bindParamAceEditor=ace.edit("bindParamAceEditor"),this.bindParamAceEditor.getSession().setMode("ace/mode/json"),this.bindParamAceEditor.setFontSize("10pt"),this.bindParamAceEditor.setShowPrintMargin(!1),this.bindParamAceEditor.getSession().on("change",function(){try{a.bindParamTableObj=JSON.parse(a.bindParamAceEditor.getValue()),a.allowParamToggle=!0,a.setCachedQuery(a.aqlEditor.getValue(),JSON.stringify(a.bindParamTableObj))}catch(b){""===a.bindParamAceEditor.getValue()?(_.each(a.bindParamTableObj,function(b,c){a.bindParamTableObj[c]=""}),a.allowParamToggle=!0):a.allowParamToggle=!1}}),this.aqlEditor.getSession().on("change",function(){a.checkForNewBindParams(),a.renderBindParamTable(),a.initDone&&a.setCachedQuery(a.aqlEditor.getValue(),JSON.stringify(a.bindParamTableObj)),a.bindParamAceEditor.setValue(JSON.stringify(a.bindParamTableObj,null," "),1),$("#aqlEditor .ace_text-input").focus(),a.resize()}),this.aqlEditor.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach" -}),this.aqlEditor.commands.addCommand({name:"executeQuery",bindKey:{win:"Ctrl-Return",mac:"Command-Return",linux:"Ctrl-Return"},exec:function(){a.executeQuery()}}),this.aqlEditor.commands.addCommand({name:"saveQuery",bindKey:{win:"Ctrl-Shift-S",mac:"Command-Shift-S",linux:"Ctrl-Shift-S"},exec:function(){a.addAQL()}}),this.aqlEditor.commands.addCommand({name:"explainQuery",bindKey:{win:"Ctrl-Shift-Return",mac:"Command-Shift-Return",linux:"Ctrl-Shift-Return"},exec:function(){a.explainQuery()}}),this.aqlEditor.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"}),this.aqlEditor.commands.addCommand({name:"showSpotlight",bindKey:{win:"Ctrl-Space",mac:"Ctrl-Space",linux:"Ctrl-Space"},exec:function(){a.showSpotlight()}}),this.queryPreview=ace.edit("queryPreview"),this.queryPreview.getSession().setMode("ace/mode/aql"),this.queryPreview.setReadOnly(!0),this.queryPreview.setFontSize("13px"),$("#aqlEditor .ace_text-input").focus()},updateQueryTable:function(){function a(a,b){var c;return c=a.nameb.name?1:0}var b=this;this.updateLocalQueries(),this.myQueriesTableDesc.rows=this.customQueries,_.each(this.myQueriesTableDesc.rows,function(a){a.secondRow='
    ',a.hasOwnProperty("parameter")&&delete a.parameter,delete a.value}),this.myQueriesTableDesc.rows.sort(a),_.each(this.queries,function(a){a.hasOwnProperty("parameter")&&delete a.parameter,b.myQueriesTableDesc.rows.push({name:a.name,thirdRow:''})}),this.myQueriesTableDesc.unescaped=[!1,!0,!0],this.$(this.myQueriesId).html(this.table.render({content:this.myQueriesTableDesc}))},listenKey:function(a){13===a.keyCode&&this.saveAQL(a),this.checkSaveName()},addAQL:function(){this.refreshAQL(!0),this.createCustomQueryModal(),setTimeout(function(){$("#new-query-name").focus()},500)},createCustomQueryModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("new-query-name","Name","",void 0,void 0,!1,[{rule:Joi.string().required(),msg:"No query name given."}])),a.push(window.modalView.createSuccessButton("Save",this.saveAQL.bind(this))),window.modalView.show("modalTable.ejs","Save Query",a,b,void 0,void 0,{"keyup #new-query-name":this.listenKey.bind(this)})},checkSaveName:function(){var a=$("#new-query-name").val();if("Insert Query"===a)return void $("#new-query-name").val("");var b=this.customQueries.some(function(b){return b.name===a});b?($("#modalButton1").removeClass("button-success"),$("#modalButton1").addClass("button-warning"),$("#modalButton1").text("Update")):($("#modalButton1").removeClass("button-warning"),$("#modalButton1").addClass("button-success"),$("#modalButton1").text("Save"))},saveAQL:function(a){a.stopPropagation(),this.refreshAQL();var b=$("#new-query-name").val(),c=this.bindParamTableObj;if(!$("#new-query-name").hasClass("invalid-input")&&""!==b.trim()){var d=this.aqlEditor.getValue(),e=!1;if(_.each(this.customQueries,function(a){return a.name===b?(a.value=d,void(e=!0)):void 0}),e===!0)this.collection.findWhere({name:b}).set("value",d);else{if((""===c||void 0===c)&&(c="{}"),"string"==typeof c)try{c=JSON.parse(c)}catch(f){arangoHelper.arangoError("Query","Could not parse bind parameter")}this.collection.add({name:b,parameter:c,value:d})}var g=function(a){if(a)arangoHelper.arangoError("Query","Could not save query");else{var b=this;this.collection.fetch({success:function(){b.updateLocalQueries()}})}}.bind(this);this.collection.saveCollectionQueries(g),window.modalView.hide()}},verifyQueryAndParams:function(){var a=!1;0===this.aqlEditor.getValue().length&&(arangoHelper.arangoError("Query","Your query is empty"),a=!0);var b=[];return _.each(this.bindParamTableObj,function(c,d){""===c&&(a=!0,b.push(d))}),b.length>0&&arangoHelper.arangoError("Bind Parameter",JSON.stringify(b)+" not defined."),a},executeQuery:function(){if(!this.verifyQueryAndParams()){this.$(this.outputDiv).prepend(this.outputTemplate.render({counter:this.outputCounter,type:"Query"})),$("#outputEditorWrapper"+this.outputCounter).hide(),$("#outputEditorWrapper"+this.outputCounter).show("fast");var a=this.outputCounter,b=ace.edit("outputEditor"+a),c=ace.edit("sentQueryEditor"+a),d=ace.edit("sentBindParamEditor"+a);c.getSession().setMode("ace/mode/aql"),c.setOption("vScrollBarAlwaysVisible",!0),c.setFontSize("13px"),c.setReadOnly(!0),this.setEditorAutoHeight(c),b.setFontSize("13px"),b.getSession().setMode("ace/mode/json"),b.setReadOnly(!0),b.setOption("vScrollBarAlwaysVisible",!0),b.setShowPrintMargin(!1),this.setEditorAutoHeight(b),d.setValue(JSON.stringify(this.bindParamTableObj),1),d.setOption("vScrollBarAlwaysVisible",!0),d.getSession().setMode("ace/mode/json"),d.setReadOnly(!0),this.setEditorAutoHeight(d),this.fillResult(b,c,a),this.outputCounter++}},readQueryData:function(){var a=$("#querySize"),b={query:this.aqlEditor.getValue(),id:"currentFrontendQuery"};return"all"===a.val()?b.batchSize=1e6:b.batchSize=parseInt(a.val(),10),Object.keys(this.bindParamTableObj).length>0&&(b.bindVars=this.bindParamTableObj),JSON.stringify(b)},fillResult:function(a,b,c){var d=this,e=this.readQueryData();e&&(b.setValue(d.aqlEditor.getValue(),1),$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),headers:{"x-arango-async":"store"},data:e,contentType:"application/json",processData:!1,success:function(b,e,f){f.getResponseHeader("x-arango-async-id")&&d.queryCallbackFunction(f.getResponseHeader("x-arango-async-id"),a,c),$.noty.clearQueue(),$.noty.closeAll(),d.handleResult(c)},error:function(a){try{var b=JSON.parse(a.responseText);arangoHelper.arangoError("["+b.errorNum+"]",b.errorMessage)}catch(e){arangoHelper.arangoError("Query error","ERROR")}d.handleResult(c)}}))},handleResult:function(){var a=this;window.progressView.hide(),$("#removeResults").show(),window.setTimeout(function(){a.aqlEditor.focus()},300),$(".centralRow").animate({scrollTop:$("#queryContent").height()},"fast")},setEditorAutoHeight:function(a){var b=$(".centralRow").height(),c=(b-250)/17;a.setOptions({maxLines:c,minLines:10})},deselect:function(a){var b=a.getSelection(),c=b.lead.row,d=b.lead.column;b.setSelectionRange({start:{row:c,column:d},end:{row:c,column:d}}),a.focus()},queryCallbackFunction:function(a,b,c){var d=this,e=function(a,b){$.ajax({url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)+"/cancel"),type:"PUT",success:function(){window.clearTimeout(d.checkQueryTimer),$("#outputEditorWrapper"+b).remove(),arangoHelper.arangoNotification("Query","Query canceled.")}})};$("#outputEditorWrapper"+c+" #cancelCurrentQuery").bind("click",function(){e(a,c)}),$("#outputEditorWrapper"+c+" #copy2aqlEditor").bind("click",function(){$("#toggleQueries1").is(":visible")||d.toggleQueries();var a=ace.edit("sentQueryEditor"+c).getValue(),b=JSON.parse(ace.edit("sentBindParamEditor"+c).getValue());d.aqlEditor.setValue(a,1),d.deselect(d.aqlEditor),Object.keys(b).length>0&&(d.bindParamTableObj=b,d.setCachedQuery(d.aqlEditor.getValue(),JSON.stringify(d.bindParamTableObj)),$("#bindParamEditor").is(":visible")?d.renderBindParamTable():(d.bindParamAceEditor.setValue(JSON.stringify(b),1),d.deselect(d.bindParamAceEditor))),$(".centralRow").animate({scrollTop:0},"fast"),d.resize()}),this.execPending=!1;var f=function(a){var c="";a.extra&&a.extra.warnings&&a.extra.warnings.length>0&&(c+="Warnings:\r\n\r\n",a.extra.warnings.forEach(function(a){c+="["+a.code+"], '"+a.message+"'\r\n"})),""!==c&&(c+="\r\nResult:\r\n\r\n"),b.setValue(c+JSON.stringify(a.result,void 0,2),1),b.getSession().setScrollTop(0)},g=function(a){f(a),window.progressView.hide();var e=function(a,b,d){d||(d=""),$("#outputEditorWrapper"+c+" .arangoToolbarTop .pull-left").append(''+a+"")};$("#outputEditorWrapper"+c+" .pull-left #spinner").remove();var g="-";a&&a.extra&&a.extra.stats&&(g=a.extra.stats.executionTime.toFixed(3)+" s"),e(a.result.length+" elements","fa-calculator"),e(g,"fa-clock-o"),a.extra&&a.extra.stats&&((a.extra.stats.writesExecuted>0||a.extra.stats.writesIgnored>0)&&(e(a.extra.stats.writesExecuted+" writes","fa-check-circle positive"),0===a.extra.stats.writesIgnored?e(a.extra.stats.writesIgnored+" writes ignored","fa-check-circle positive","additional"):e(a.extra.stats.writesIgnored+" writes ignored","fa-exclamation-circle warning","additional")),a.extra.stats.scannedFull>0?e("full collection scan","fa-exclamation-circle warning","additional"):e("no full collection scan","fa-check-circle positive","additional")),$("#outputEditorWrapper"+c+" .switchAce").show(),$("#outputEditorWrapper"+c+" .fa-close").show(),$("#outputEditor"+c).css("opacity","1"),$("#outputEditorWrapper"+c+" #downloadQueryResult").show(),$("#outputEditorWrapper"+c+" #copy2aqlEditor").show(),$("#outputEditorWrapper"+c+" #cancelCurrentQuery").remove(),d.setEditorAutoHeight(b),d.deselect(b),a.id&&$.ajax({url:"/_api/cursor/"+encodeURIComponent(a.id),type:"DELETE",error:function(a){console.log(a)}})},h=function(){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a,b,c){201===c.status?g(a):204===c.status&&(d.checkQueryTimer=window.setTimeout(function(){h()},500))},error:function(a){var b;try{if("Gone"===a.statusText)return arangoHelper.arangoNotification("Query","Query execution aborted."),void d.removeOutputEditor(c);b=JSON.parse(a.responseText),arangoHelper.arangoError("Query",b.errorMessage),b.errorMessage&&(null!==b.errorMessage.match(/\d+:\d+/g)?d.markPositionError(b.errorMessage.match(/'.*'/g)[0],b.errorMessage.match(/\d+:\d+/g)[0]):d.markPositionError(b.errorMessage.match(/\(\w+\)/g)[0]),d.removeOutputEditor(c))}catch(e){console.log(b),400!==b.code&&arangoHelper.arangoError("Query","Successfully aborted."),d.removeOutputEditor(c)}window.progressView.hide()}})};h()},markPositionError:function(a,b){var c;b&&(c=b.split(":")[0],a=a.substr(1,a.length-2));var d=this.aqlEditor.find(a);!d&&b&&(this.aqlEditor.selection.moveCursorToPosition({row:c,column:0}),this.aqlEditor.selection.selectLine()),window.setTimeout(function(){$(".ace_start").first().css("background","rgba(255, 129, 129, 0.7)")},100)},refreshAQL:function(){var a=this,b=function(b){b?arangoHelper.arangoError("Query","Could not reload Queries"):(a.updateLocalQueries(),a.updateQueryTable())}.bind(a),c=function(){a.getSystemQueries(b)}.bind(a);this.getAQL(c)},getSystemQueries:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:"js/arango/aqltemplates.json",contentType:"application/json",processData:!1,success:function(c){a&&a(!1),b.queries=c},error:function(){a&&a(!0),arangoHelper.arangoNotification("Query","Error while loading system templates")}})},updateLocalQueries:function(){var a=this;this.customQueries=[],this.collection.each(function(b){a.customQueries.push({name:b.get("name"),value:b.get("value"),parameter:b.get("parameter")})})},getAQL:function(a){var b=this;this.collection.fetch({success:function(){var c=localStorage.getItem("customQueries");if(c){var d=JSON.parse(c);_.each(d,function(a){b.collection.add({value:a.value,name:a.name})});var e=function(a){a?arangoHelper.arangoError("Custom Queries","Could not import old local storage queries"):localStorage.removeItem("customQueries")}.bind(b);b.collection.saveCollectionQueries(e)}b.updateLocalQueries(),a&&a()}})}})}(),function(){"use strict";window.ScaleView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("scaleView.ejs"),interval:5e3,knownServers:[],events:{"click #addCoord":"addCoord","click #removeCoord":"removeCoord","click #addDBs":"addDBs","click #removeDBs":"removeDBs"},setCoordSize:function(a){var b=this,c={numberOfCoordinators:a};$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",data:JSON.stringify(c),success:function(){b.updateTable(c)},error:function(){arangoHelper.arangoError("Scale","Could not set coordinator size.")}})},setDBsSize:function(a){var b=this,c={numberOfDBServers:a};$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",data:JSON.stringify(c),success:function(){b.updateTable(c)},error:function(){arangoHelper.arangoError("Scale","Could not set coordinator size.")}})},addCoord:function(){this.setCoordSize(this.readNumberFromID("#plannedCoords",!0))},removeCoord:function(){this.setCoordSize(this.readNumberFromID("#plannedCoords",!1,!0))},addDBs:function(){this.setDBsSize(this.readNumberFromID("#plannedDBs",!0))},removeDBs:function(){this.setDBsSize(this.readNumberFromID("#plannedDBs",!1,!0))},readNumberFromID:function(a,b,c){var d=$(a).html(),e=!1;try{e=JSON.parse(d)}catch(f){}return b&&e++,c&&1!==e&&e--,e},initialize:function(a){window.App.isCluster&&(this.dbServers=a.dbServers,this.coordinators=a.coordinators,this.updateServerTime(),window.setInterval(function(){if("#sNodes"===window.location.hash);},this.interval))},render:function(){var a=this,b=function(){var b=function(){a.continueRender()}.bind(this);this.waitForDBServers(b)}.bind(this);this.initDoneCoords?b():this.waitForCoordinators(b),window.arangoHelper.buildNodesSubNav("scale")},continueRender:function(){var a,b,c=this;a=this.coordinators.toJSON(),b=this.dbServers.toJSON(),this.$el.html(this.template.render({runningCoords:a.length,runningDBs:b.length,plannedCoords:void 0,plannedDBs:void 0})),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){c.updateTable(a)}})},updateTable:function(a){var b='scaling in progress',c='no scaling process active';a.numberOfCoordinators&&($("#plannedCoords").html(a.numberOfCoordinators),this.coordinators.toJSON().length===a.numberOfCoordinators?$("#statusCoords").html(c):$("#statusCoords").html(b)),a.numberOfDBServers&&($("#plannedDBs").html(a.numberOfDBServers),this.dbServers.toJSON().length===a.numberOfDBServers?$("#statusDBs").html(c):$("#statusDBs").html(b))},waitForDBServers:function(a){var b=this;0===this.dbServers.length?window.setInterval(function(){b.waitForDBServers(a)},300):a()},waitForCoordinators:function(a){var b=this;window.setTimeout(function(){0===b.coordinators.length?b.waitForCoordinators(a):(this.initDoneCoords=!0,a())},200)},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),function(){"use strict";window.SettingsView=Backbone.View.extend({el:"#content",initialize:function(a){this.collectionName=a.collectionName,this.model=this.collection},events:{},render:function(){this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Settings"),this.renderSettings()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},unloadCollection:function(){var a=function(a){a?arangoHelper.arangoError("Collection error",this.model.get("name")+" could not be unloaded."):void 0===a?(this.model.set("status","unloading"),this.render()):"#collections"===window.location.hash?(this.model.set("status","unloaded"),this.render()):arangoHelper.arangoNotification("Collection "+this.model.get("name")+" unloaded.")}.bind(this);this.model.unloadCollection(a),window.modalView.hide()},loadCollection:function(){var a=function(a){a?arangoHelper.arangoError("Collection error",this.model.get("name")+" could not be loaded."):void 0===a?(this.model.set("status","loading"),this.render()):"#collections"===window.location.hash?(this.model.set("status","loaded"),this.render()):arangoHelper.arangoNotification("Collection "+this.model.get("name")+" loaded.")}.bind(this);this.model.loadCollection(a),window.modalView.hide()},truncateCollection:function(){this.model.truncateCollection(),window.modalView.hide()},deleteCollection:function(){this.model.destroy({error:function(){arangoHelper.arangoError("Could not delete collection.")},success:function(){window.App.navigate("#collections",{trigger:!0})}})},saveModifiedCollection:function(){var a=function(a,b){if(a)arangoHelper.arangoError("Error","Could not get coordinator info");else{var c;c=b?this.model.get("name"):$("#change-collection-name").val();var d=this.model.get("status");if("loaded"===d){var e;try{e=JSON.parse(1024*$("#change-collection-size").val()*1024)}catch(f){return arangoHelper.arangoError("Please enter a valid number"),0}var g;try{if(g=JSON.parse($("#change-index-buckets").val()),1>g||parseInt(g)!==Math.pow(2,Math.log2(g)))throw"invalid indexBuckets value"}catch(f){return arangoHelper.arangoError("Please enter a valid number of index buckets"),0}var h=function(a){a?arangoHelper.arangoError("Collection error: "+a.responseText):(arangoHelper.arangoNotification("Collection: Successfully changed."),window.App.navigate("#cSettings/"+c,{trigger:!0}))}.bind(this),i=function(a){if(a)arangoHelper.arangoError("Collection error: "+a.responseText);else{var b=$("#change-collection-sync").val();this.model.changeCollection(b,e,g,h)}}.bind(this);this.model.renameCollection(c,i)}else if("unloaded"===d)if(this.model.get("name")!==c){var j=function(a,b){a?arangoHelper.arangoError("Collection"+b.responseText):(arangoHelper.arangoNotification("CollectionSuccessfully changed."),window.App.navigate("#cSettings/"+c,{trigger:!0}))}.bind(this);this.model.renameCollection(c,j)}else window.modalView.hide()}}.bind(this);window.isCoordinator(a)},renderSettings:function(){var a=function(a,b){if(a)arangoHelper.arangoError("Error","Could not get coordinator info");else{var c=!1;"loaded"===this.model.get("status")&&(c=!0);var d=[],e=[];b||e.push(window.modalView.createTextEntry("change-collection-name","Name",this.model.get("name"),!1,"",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Collection name must always start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only Symbols "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No collection name given."}]));var f=function(){e.push(window.modalView.createReadOnlyEntry("change-collection-id","ID",this.model.get("id"),"")),e.push(window.modalView.createReadOnlyEntry("change-collection-type","Type",this.model.get("type"),"")),e.push(window.modalView.createReadOnlyEntry("change-collection-status","Status",this.model.get("status"),"")),d.push(window.modalView.createDeleteButton("Delete",this.deleteCollection.bind(this))),d.push(window.modalView.createDeleteButton("Truncate",this.truncateCollection.bind(this))),c?d.push(window.modalView.createNotificationButton("Unload",this.unloadCollection.bind(this))):d.push(window.modalView.createNotificationButton("Load",this.loadCollection.bind(this))),d.push(window.modalView.createSuccessButton("Save",this.saveModifiedCollection.bind(this)));var a=["General","Indices"],b=["modalTable.ejs","indicesView.ejs"];window.modalView.show(b,"Modify Collection",d,e,null,null,this.events,null,a,"content"),$($("#infoTab").children()[1]).remove()}.bind(this);if(c){var g=function(a,b){if(a)arangoHelper.arangoError("Collection","Could not fetch properties");else{var c=b.journalSize/1048576,d=b.indexBuckets,g=b.waitForSync;e.push(window.modalView.createTextEntry("change-collection-size","Journal size",c,"The maximal size of a journal or datafile (in MB). Must be at least 1.","",!0,[{rule:Joi.string().allow("").optional().regex(/^[0-9]*$/),msg:"Must be a number."}])),e.push(window.modalView.createTextEntry("change-index-buckets","Index buckets",d,"The number of index buckets for this collection. Must be at least 1 and a power of 2.","",!0,[{rule:Joi.string().allow("").optional().regex(/^[1-9][0-9]*$/),msg:"Must be a number greater than 1 and a power of 2."}])),e.push(window.modalView.createSelectEntry("change-collection-sync","Wait for sync",g,"Synchronize to disk before returning from a create or update of a document.",[{value:!1,label:"No"},{value:!0,label:"Yes"}]))}f()}.bind(this);this.model.getProperties(g)}else f()}}.bind(this);window.isCoordinator(a)}})}(),function(){"use strict";window.ShowClusterView=Backbone.View.extend({detailEl:"#modalPlaceholder",el:"#content",defaultFrame:12e5,template:templateEngine.createTemplate("showCluster.ejs"),modal:templateEngine.createTemplate("waitModal.ejs"),detailTemplate:templateEngine.createTemplate("detailView.ejs"),events:{"change #selectDB":"updateCollections","change #selectCol":"updateShards","click .dbserver.success":"dashboard","click .coordinator.success":"dashboard"},replaceSVGs:function(){$(".svgToReplace").each(function(){var a=$(this),b=a.attr("id"),c=a.attr("src");$.get(c,function(c){var d=$(c).find("svg");d.attr("id",b).attr("class","icon").removeAttr("xmlns:a"),a.replaceWith(d)},"xml")})},updateServerTime:function(){this.serverTime=(new Date).getTime()},setShowAll:function(){this.graphShowAll=!0},resetShowAll:function(){this.graphShowAll=!1,this.renderLineChart()},initialize:function(a){this.options=a,this.interval=1e4,this.isUpdating=!1,this.timer=null,this.knownServers=[],this.graph=void 0,this.graphShowAll=!1,this.updateServerTime(),this.dygraphConfig=this.options.dygraphConfig,this.dbservers=new window.ClusterServers([],{interval:this.interval}),this.coordinators=new window.ClusterCoordinators([],{interval:this.interval}),this.documentStore=new window.arangoDocuments,this.statisticsDescription=new window.StatisticsDescription,this.statisticsDescription.fetch({async:!1}),this.dbs=new window.ClusterDatabases([],{interval:this.interval}),this.cols=new window.ClusterCollections,this.shards=new window.ClusterShards,this.startUpdating()},listByAddress:function(a){var b={},c=this;this.dbservers.byAddress(b,function(b){c.coordinators.byAddress(b,a)})},updateCollections:function(){var a=this,b=$("#selectCol"),c=$("#selectDB").find(":selected").attr("id");if(c){var d=b.find(":selected").attr("id");b.html(""),this.cols.getList(c,function(c){_.each(_.pluck(c,"name"),function(a){b.append('")});var e=$("#"+d,b);1===e.length&&e.prop("selected",!0),a.updateShards()})}},updateShards:function(){var a=$("#selectDB").find(":selected").attr("id"),b=$("#selectCol").find(":selected").attr("id");this.shards.getList(a,b,function(a){$(".shardCounter").html("0"),_.each(a,function(a){$("#"+a.server+"Shards").html(a.shards.length)})})},updateServerStatus:function(a){var b=this,c=function(a,b,c){var d,e,f=c;f=f.replace(/\./g,"-"),f=f.replace(/\:/g,"_"),e=$("#id"+f),e.length<1||(d=e.attr("class").split(/\s+/)[1],e.attr("class",a+" "+d+" "+b),"coordinator"===a&&("success"===b?$(".button-gui",e.closest(".tile")).toggleClass("button-gui-disabled",!1):$(".button-gui",e.closest(".tile")).toggleClass("button-gui-disabled",!0)))};this.coordinators.getStatuses(c.bind(this,"coordinator"),function(){b.dbservers.getStatuses(c.bind(b,"dbserver")),a()})},updateDBDetailList:function(){var a=this,b=$("#selectDB"),c=b.find(":selected").attr("id");b.html(""),this.dbs.getList(function(d){_.each(_.pluck(d,"name"),function(a){b.append('")});var e=$("#"+c,b);1===e.length&&e.prop("selected",!0),a.updateCollections()})},rerender:function(){var a=this;this.updateServerStatus(function(){a.getServerStatistics(function(){a.updateServerTime(),a.data=a.generatePieData(),a.renderPieChart(a.data),a.renderLineChart(),a.updateDBDetailList()})})},render:function(){this.knownServers=[],delete this.hist;var a=this;this.listByAddress(function(b){1===Object.keys(b).length?a.type="testPlan":a.type="other",a.updateDBDetailList(),a.dbs.getList(function(c){$(a.el).html(a.template.render({dbs:_.pluck(c,"name"),byAddress:b,type:a.type})),$(a.el).append(a.modal.render({})),a.replaceSVGs(),a.getServerStatistics(function(){a.data=a.generatePieData(),a.renderPieChart(a.data),a.renderLineChart(),a.updateDBDetailList(),a.startUpdating()})})})},generatePieData:function(){var a=[],b=this;return this.data.forEach(function(c){a.push({key:c.get("name"),value:c.get("system").virtualSize,time:b.serverTime})}),a},addStatisticsItem:function(a,b,c,d){var e=this;e.hasOwnProperty("hist")||(e.hist={}),e.hist.hasOwnProperty(a)||(e.hist[a]=[]);var f=e.hist[a],g=f.length;if(0===g)f.push({time:b,snap:d,requests:c,requestsPerSecond:0});else{var h=f[g-1].time,i=f[g-1].requests;if(c>i){var j=b-h,k=0;j>0&&(k=(c-i)/j),f.push({time:b,snap:d,requests:c,requestsPerSecond:k})}}},getServerStatistics:function(a){var b=this,c=Math.round(b.serverTime/1e3);this.data=void 0;var d=new window.ClusterStatisticsCollection,e=this.coordinators.first();this.dbservers.forEach(function(a){if("ok"===a.get("status")){-1===b.knownServers.indexOf(a.id)&&b.knownServers.push(a.id);var c=new window.Statistics({name:a.id});c.url=e.get("protocol")+"://"+e.get("address")+"/_admin/clusterStatistics?DBserver="+a.get("name"),d.add(c)}}),this.coordinators.forEach(function(a){if("ok"===a.get("status")){-1===b.knownServers.indexOf(a.id)&&b.knownServers.push(a.id);var c=new window.Statistics({name:a.id});c.url=a.get("protocol")+"://"+a.get("address")+"/_admin/statistics",d.add(c)}});var f=d.size();this.data=[];var g=function(d){f--;var e=d.get("time"),g=d.get("name"),h=d.get("http").requestsTotal;b.addStatisticsItem(g,e,h,c),b.data.push(d),0===f&&a()},h=function(){f--,0===f&&a()};d.fetch(g,h)},renderPieChart:function(a){var b=$("#clusterGraphs svg").width(),c=$("#clusterGraphs svg").height(),d=Math.min(b,c)/2,e=this.dygraphConfig.colors,f=d3.svg.arc().outerRadius(d-20).innerRadius(0),g=d3.layout.pie().sort(function(a){return a.value}).value(function(a){return a.value});d3.select("#clusterGraphs").select("svg").remove();var h=d3.select("#clusterGraphs").append("svg").attr("class","clusterChart").append("g").attr("transform","translate("+b/2+","+(c/2-10)+")"),i=d3.svg.arc().outerRadius(d-2).innerRadius(d-2),j=h.selectAll(".arc").data(g(a)).enter().append("g").attr("class","slice");j.append("path").attr("d",f).style("fill",function(a,b){return e[b%e.length]}).style("stroke",function(a,b){return e[b%e.length]}),j.append("text").attr("transform",function(a){return"translate("+f.centroid(a)+")"}).style("text-anchor","middle").text(function(a){var b=a.data.value/1024/1024/1024;return b.toFixed(2)}),j.append("text").attr("transform",function(a){return"translate("+i.centroid(a)+")"}).style("text-anchor","middle").text(function(a){return a.data.key})},renderLineChart:function(){var a,b,c,d,e,f,g=this,h=1200,i=[],j=[],k=Math.round((new Date).getTime()/1e3)-h,l=g.knownServers,m=function(){return null};for(c=0;cf||(j.hasOwnProperty(f)?a=j[f]:(e=new Date(1e3*f),a=j[f]=[e].concat(l.map(m))),a[c+1]=b[d].requestsPerSecond);i=[],Object.keys(j).sort().forEach(function(a){i.push(j[a])});var n=this.dygraphConfig.getDefaultConfig("clusterRequestsPerSecond");n.labelsDiv=$("#lineGraphLegend")[0],n.labels=["datetime"].concat(l),g.graph=new Dygraph(document.getElementById("lineGraph"),i,n)},stopUpdating:function(){window.clearTimeout(this.timer),delete this.graph,this.isUpdating=!1},startUpdating:function(){if(!this.isUpdating){this.isUpdating=!0;var a=this;this.timer=window.setInterval(function(){a.rerender()},this.interval)}},dashboard:function(a){this.stopUpdating();var b,c,d=$(a.currentTarget),e={},f=d.attr("id");f=f.replace(/\-/g,"."),f=f.replace(/\_/g,":"),f=f.substr(2),e.raw=f,e.isDBServer=d.hasClass("dbserver"),e.isDBServer?(b=this.dbservers.findWhere({address:e.raw}),c=this.coordinators.findWhere({status:"ok"}),e.endpoint=c.get("protocol")+"://"+c.get("address")):(b=this.coordinators.findWhere({address:e.raw}),e.endpoint=b.get("protocol")+"://"+b.get("address")),e.target=encodeURIComponent(b.get("name")),window.App.serverToShow=e,window.App.dashboard()},getCurrentSize:function(a){"#"!==a.substr(0,1)&&(a="#"+a);var b,c;return $(a).attr("style",""),b=$(a).height(),c=$(a).width(),{height:b,width:c}},resize:function(){var a;this.graph&&(a=this.getCurrentSize(this.graph.maindiv_.id),this.graph.resize(a.width,a.height))}})}(),function(){"use strict";window.SpotlightView=Backbone.View.extend({template:templateEngine.createTemplate("spotlightView.ejs"),el:"#spotlightPlaceholder",displayLimit:8,typeahead:null,callbackSuccess:null,callbackCancel:null,collections:{system:[],doc:[],edge:[]},events:{"focusout #spotlight .tt-input":"hide","keyup #spotlight .typeahead":"listenKey"},aqlKeywordsArray:[],aqlBuiltinFunctionsArray:[],aqlKeywords:"for|return|filter|sort|limit|let|collect|asc|desc|in|into|insert|update|remove|replace|upsert|options|with|and|or|not|distinct|graph|outbound|inbound|any|all|none|aggregate|like|count|shortest_path",hide:function(){this.typeahead=$("#spotlight .typeahead").typeahead("destroy"),$(this.el).hide()},listenKey:function(a){27===a.keyCode?(this.hide(),this.callbackSuccess&&this.callbackCancel()):13===a.keyCode&&this.callbackSuccess&&(this.hide(),this.callbackSuccess($(this.typeahead).val()))},substringMatcher:function(a){return function(b,c){var d,e;d=[],e=new RegExp(b,"i"),_.each(a,function(a){e.test(a)&&d.push(a)}),c(d)}},updateDatasets:function(){var a=this;this.collections={system:[],doc:[],edge:[]},window.App.arangoCollectionsStore.each(function(b){b.get("isSystem")?a.collections.system.push(b.get("name")):"document"===b.get("type")?a.collections.doc.push(b.get("name")):a.collections.edge.push(b.get("name"))})},stringToArray:function(){var a=this;_.each(this.aqlKeywords.split("|"),function(b){a.aqlKeywordsArray.push(b.toUpperCase())}),a.aqlKeywordsArray.push(!0),a.aqlKeywordsArray.push(!1),a.aqlKeywordsArray.push(null)},fetchKeywords:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/aql-builtin"),contentType:"application/json",success:function(c){b.stringToArray(),b.updateDatasets(),_.each(c.functions,function(a){b.aqlBuiltinFunctionsArray.push(a.name)}),a&&a()},error:function(){a&&a(),arangoHelper.arangoError("AQL","Could not fetch AQL function definition.")}})},show:function(a,b,c){var d=this;this.callbackSuccess=a,this.callbackCancel=b;var e=function(){var a=function(a,b,c){var d='

    '+a+"

    ";return b&&(d+=''),c&&(d+=''+c.toUpperCase()+""),d+="
    "};$(this.el).html(this.template.render({})),$(this.el).show(),"aql"===c?this.typeahead=$("#spotlight .typeahead").typeahead({hint:!0,highlight:!0,minLength:1},{name:"Functions",source:this.substringMatcher(this.aqlBuiltinFunctionsArray),limit:this.displayLimit,templates:{header:a("Functions","fa-code","aql")}},{name:"Keywords",source:this.substringMatcher(this.aqlKeywordsArray),limit:this.displayLimit,templates:{header:a("Keywords","fa-code","aql")}},{name:"Documents",source:this.substringMatcher(this.collections.doc),limit:this.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:this.substringMatcher(this.collections.edge),limit:this.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System",limit:this.displayLimit,source:this.substringMatcher(this.collections.system),templates:{header:a("System","fa-cogs","Collection")}}):this.typeahead=$("#spotlight .typeahead").typeahead({hint:!0,highlight:!0,minLength:1},{name:"Documents",source:this.substringMatcher(this.collections.doc),limit:this.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:this.substringMatcher(this.collections.edge),limit:this.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System",limit:this.displayLimit,source:this.substringMatcher(this.collections.system), -templates:{header:a("System","fa-cogs","Collection")}}),$("#spotlight .typeahead").focus()}.bind(this);0===d.aqlBuiltinFunctionsArray.length?this.fetchKeywords(e):e()}})}(),function(){"use strict";window.StatisticBarView=Backbone.View.extend({el:"#statisticBar",events:{"change #arangoCollectionSelect":"navigateBySelect","click .tab":"navigateByTab"},template:templateEngine.createTemplate("statisticBarView.ejs"),initialize:function(a){this.currentDB=a.currentDB},replaceSVG:function(a){var b=a.attr("id"),c=a.attr("class"),d=a.attr("src");$.get(d,function(d){var e=$(d).find("svg");void 0===b&&(e=e.attr("id",b)),void 0===c&&(e=e.attr("class",c+" replaced-svg")),e=e.removeAttr("xmlns:a"),a.replaceWith(e)},"xml")},render:function(){var a=this;return $(this.el).html(this.template.render({isSystem:this.currentDB.get("isSystem")})),$("img.svg").each(function(){a.replaceSVG($(this))}),this},navigateBySelect:function(){var a=$("#arangoCollectionSelect").find("option:selected").val();window.App.navigate(a,{trigger:!0})},navigateByTab:function(a){var b=a.target||a.srcElement,c=b.id;return"links"===c?($("#link_dropdown").slideToggle(200),void a.preventDefault()):"tools"===c?($("#tools_dropdown").slideToggle(200),void a.preventDefault()):(window.App.navigate(c,{trigger:!0}),void a.preventDefault())},handleSelectNavigation:function(){$("#arangoCollectionSelect").change(function(){var a=$(this).find("option:selected").val();window.App.navigate(a,{trigger:!0})})},selectMenuItem:function(a){$(".navlist li").removeClass("active"),a&&$("."+a).addClass("active")}})}(),function(){"use strict";window.TableView=Backbone.View.extend({template:templateEngine.createTemplate("tableView.ejs"),loading:templateEngine.createTemplate("loadingTableView.ejs"),initialize:function(a){this.rowClickCallback=a.rowClick},events:{"click .pure-table-body .pure-table-row":"rowClick","click .deleteButton":"removeClick"},rowClick:function(a){this.hasOwnProperty("rowClickCallback")&&this.rowClickCallback(a)},removeClick:function(a){this.hasOwnProperty("removeClickCallback")&&(this.removeClickCallback(a),a.stopPropagation())},setRowClick:function(a){this.rowClickCallback=a},setRemoveClick:function(a){this.removeClickCallback=a},render:function(){$(this.el).html(this.template.render({docs:this.collection}))},drawLoading:function(){$(this.el).html(this.loading.render({}))}})}(),function(){"use strict";window.testView=Backbone.View.extend({el:"#content",graph:{edges:[],nodes:[]},events:{},initialize:function(){console.log(void 0)},template:templateEngine.createTemplate("testView.ejs"),render:function(){return $(this.el).html(this.template.render({})),this.renderGraph(),this},renderGraph:function(){this.convertData(),console.log(this.graph),this.s=new sigma({graph:this.graph,container:"graph-container",verbose:!0,renderers:[{container:document.getElementById("graph-container"),type:"webgl"}]})},convertData:function(){var a=this;return _.each(this.dump,function(b){_.each(b.p,function(c){a.graph.nodes.push({id:c.verticesvalue.v._id,label:b.v._key,x:Math.random(),y:Math.random(),size:Math.random()}),a.graph.edges.push({id:b.e._id,source:b.e._from,target:b.e._to})})}),null},dump:[{v:{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},e:{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"}]}},{v:{label:"8",_id:"circles/H",_rev:"1841664067459",_key:"H"},e:{theFalse:!1,theTruth:!0,label:"right_blob",_id:"edges/1841666295683",_rev:"1841666295683",_key:"1841666295683",_from:"circles/G",_to:"circles/H"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"8",_id:"circles/H",_rev:"1841664067459",_key:"H"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_blob",_id:"edges/1841666295683",_rev:"1841666295683",_key:"1841666295683",_from:"circles/G",_to:"circles/H"}]}},{v:{label:"9",_id:"circles/I",_rev:"1841664264067",_key:"I"},e:{theFalse:!1,theTruth:!0,label:"right_blub",_id:"edges/1841666492291",_rev:"1841666492291",_key:"1841666492291",_from:"circles/H",_to:"circles/I"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"8",_id:"circles/H",_rev:"1841664067459",_key:"H"},{label:"9",_id:"circles/I",_rev:"1841664264067",_key:"I"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_blob",_id:"edges/1841666295683",_rev:"1841666295683",_key:"1841666295683",_from:"circles/G",_to:"circles/H"},{theFalse:!1,theTruth:!0,label:"right_blub",_id:"edges/1841666492291",_rev:"1841666492291",_key:"1841666492291",_from:"circles/H",_to:"circles/I"}]}},{v:{label:"10",_id:"circles/J",_rev:"1841664460675",_key:"J"},e:{theFalse:!1,theTruth:!0,label:"right_zip",_id:"edges/1841666688899",_rev:"1841666688899",_key:"1841666688899",_from:"circles/G",_to:"circles/J"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"10",_id:"circles/J",_rev:"1841664460675",_key:"J"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_zip",_id:"edges/1841666688899",_rev:"1841666688899",_key:"1841666688899",_from:"circles/G",_to:"circles/J"}]}},{v:{label:"11",_id:"circles/K",_rev:"1841664657283",_key:"K"},e:{theFalse:!1,theTruth:!0,label:"right_zup",_id:"edges/1841666885507",_rev:"1841666885507",_key:"1841666885507",_from:"circles/J",_to:"circles/K"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"10",_id:"circles/J",_rev:"1841664460675",_key:"J"},{label:"11",_id:"circles/K",_rev:"1841664657283",_key:"K"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_zip",_id:"edges/1841666688899",_rev:"1841666688899",_key:"1841666688899",_from:"circles/G",_to:"circles/J"},{theFalse:!1,theTruth:!0,label:"right_zup",_id:"edges/1841666885507",_rev:"1841666885507",_key:"1841666885507",_from:"circles/J",_to:"circles/K"}]}},{v:{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},e:{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"}]}},{v:{label:"5",_id:"circles/E",_rev:"1841663477635",_key:"E"},e:{theFalse:!1,theTruth:!0,label:"left_blub",_id:"edges/1841665705859",_rev:"1841665705859",_key:"1841665705859",_from:"circles/B",_to:"circles/E"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"5",_id:"circles/E",_rev:"1841663477635",_key:"E"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blub",_id:"edges/1841665705859",_rev:"1841665705859",_key:"1841665705859",_from:"circles/B",_to:"circles/E"}]}},{v:{label:"6",_id:"circles/F",_rev:"1841663674243",_key:"F"},e:{theFalse:!1,theTruth:!0,label:"left_schubi",_id:"edges/1841665902467",_rev:"1841665902467",_key:"1841665902467",_from:"circles/E",_to:"circles/F"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"5",_id:"circles/E",_rev:"1841663477635",_key:"E"},{label:"6",_id:"circles/F",_rev:"1841663674243",_key:"F"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blub",_id:"edges/1841665705859",_rev:"1841665705859",_key:"1841665705859",_from:"circles/B",_to:"circles/E"},{theFalse:!1,theTruth:!0,label:"left_schubi",_id:"edges/1841665902467",_rev:"1841665902467",_key:"1841665902467",_from:"circles/E",_to:"circles/F"}]}},{v:{label:"3",_id:"circles/C",_rev:"1841663084419",_key:"C"},e:{theFalse:!1,theTruth:!0,label:"left_blarg",_id:"edges/1841665312643",_rev:"1841665312643",_key:"1841665312643",_from:"circles/B",_to:"circles/C"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"3",_id:"circles/C",_rev:"1841663084419",_key:"C"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blarg",_id:"edges/1841665312643",_rev:"1841665312643",_key:"1841665312643",_from:"circles/B",_to:"circles/C"}]}},{v:{label:"4",_id:"circles/D",_rev:"1841663281027",_key:"D"},e:{theFalse:!1,theTruth:!0,label:"left_blorg",_id:"edges/1841665509251",_rev:"1841665509251",_key:"1841665509251",_from:"circles/C",_to:"circles/D"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"3",_id:"circles/C",_rev:"1841663084419",_key:"C"},{label:"4",_id:"circles/D",_rev:"1841663281027",_key:"D"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blarg",_id:"edges/1841665312643",_rev:"1841665312643",_key:"1841665312643",_from:"circles/B",_to:"circles/C"},{theFalse:!1,theTruth:!0,label:"left_blorg",_id:"edges/1841665509251",_rev:"1841665509251",_key:"1841665509251",_from:"circles/C",_to:"circles/D"}]}}]})}(),function(){"use strict";window.UserBarView=Backbone.View.extend({events:{"change #userBarSelect":"navigateBySelect","click .tab":"navigateByTab","mouseenter .dropdown":"showDropdown","mouseleave .dropdown":"hideDropdown","click #userLogoutIcon":"userLogout","click #userLogout":"userLogout"},initialize:function(a){this.userCollection=a.userCollection,this.userCollection.fetch({async:!0}),this.userCollection.bind("change:extra",this.render.bind(this))},template:templateEngine.createTemplate("userBarView.ejs"),navigateBySelect:function(){var a=$("#arangoCollectionSelect").find("option:selected").val();window.App.navigate(a,{trigger:!0})},navigateByTab:function(a){var b=a.target||a.srcElement;b=$(b).closest("a");var c=b.attr("id");return"user"===c?($("#user_dropdown").slideToggle(200),void a.preventDefault()):(window.App.navigate(c,{trigger:!0}),void a.preventDefault())},toggleUserMenu:function(){$("#userBar .subBarDropdown").toggle()},showDropdown:function(){$("#user_dropdown").fadeIn(1)},hideDropdown:function(){$("#user_dropdown").fadeOut(1)},render:function(){if(frontendConfig.authenticationEnabled!==!1){var a=this,b=function(a,b){if(a)arangoHelper.arangoErro("User","Could not fetch user.");else{var c=null,d=null,e=!1,f=null;if(b!==!1)return f=this.userCollection.findWhere({user:b}),f.set({loggedIn:!0}),d=f.get("extra").name,c=f.get("extra").img,e=f.get("active"),c=c?"https://s.gravatar.com/avatar/"+c+"?s=80":"img/default_user.png",d||(d=""),this.$el=$("#userBar"),this.$el.html(this.template.render({img:c,name:d,username:b,active:e})),this.delegateEvents(),this.$el}}.bind(this);$("#userBar").on("click",function(){a.toggleUserMenu()}),this.userCollection.whoAmI(b)}},userLogout:function(){var a=function(a){a?arangoHelper.arangoError("User","Logout error"):this.userCollection.logout()}.bind(this);this.userCollection.whoAmI(a)}})}(),function(){"use strict";window.userManagementView=Backbone.View.extend({el:"#content",el2:"#userManagementThumbnailsIn",template:templateEngine.createTemplate("userManagementView.ejs"),events:{"click #createUser":"createUser","click #submitCreateUser":"submitCreateUser","click #userManagementThumbnailsIn .tile":"editUser","click #submitEditUser":"submitEditUser","click #userManagementToggle":"toggleView","keyup #userManagementSearchInput":"search","click #userManagementSearchSubmit":"search","click #callEditUserPassword":"editUserPassword","click #submitEditUserPassword":"submitEditUserPassword","click #submitEditCurrentUserProfile":"submitEditCurrentUserProfile","click .css-label":"checkBoxes","change #userSortDesc":"sorting"},dropdownVisible:!1,initialize:function(){var a=this,b=function(a,b){frontendConfig.authenticationEnabled===!0&&(a||null===b?arangoHelper.arangoError("User","Could not fetch user data"):this.currentUser=this.collection.findWhere({user:b}))}.bind(this);this.collection.fetch({success:function(){a.collection.whoAmI(b)}})},checkBoxes:function(a){var b=a.currentTarget.id;$("#"+b).click()},sorting:function(){$("#userSortDesc").is(":checked")?this.collection.setSortingDesc(!0):this.collection.setSortingDesc(!1),$("#userManagementDropdown").is(":visible")?this.dropdownVisible=!0:this.dropdownVisible=!1,this.render()},render:function(a){var b=!1;return $("#userManagementDropdown").is(":visible")&&(b=!0),this.collection.sort(),$(this.el).html(this.template.render({collection:this.collection,searchString:""})),b===!0&&($("#userManagementDropdown2").show(),$("#userSortDesc").attr("checked",this.collection.sortOptions.desc),$("#userManagementToggle").toggleClass("activated"),$("#userManagementDropdown").show()),a&&this.editCurrentUser(),arangoHelper.setCheckboxStatus("#userManagementDropdown"),this},search:function(){var a,b,c,d;a=$("#userManagementSearchInput"),b=$("#userManagementSearchInput").val(),d=this.collection.filter(function(a){return-1!==a.get("user").indexOf(b)}),$(this.el).html(this.template.render({collection:d,searchString:b})),a=$("#userManagementSearchInput"),c=a.val().length,a.focus(),a[0].setSelectionRange(c,c)},createUser:function(a){a.preventDefault(),this.createCreateUserModal()},submitCreateUser:function(){var a=this,b=$("#newUsername").val(),c=$("#newName").val(),d=$("#newPassword").val(),e=$("#newStatus").is(":checked");if(this.validateUserInfo(c,b,d,e)){var f={user:b,passwd:d,active:e,extra:{name:c}};this.collection.create(f,{wait:!0,error:function(a,b){arangoHelper.parseError("User",b,a)},success:function(){a.updateUserManagement(),window.modalView.hide()}})}},validateUserInfo:function(a,b,c,d){return""===b?(arangoHelper.arangoError("You have to define an username"),$("#newUsername").closest("th").css("backgroundColor","red"),!1):!0},updateUserManagement:function(){var a=this;this.collection.fetch({success:function(){a.render()}})},submitDeleteUser:function(a){var b=this.collection.findWhere({user:a});b.destroy({wait:!0}),window.modalView.hide(),this.updateUserManagement()},editUser:function(a){if("createUser"!==$(a.currentTarget).find("a").attr("id")){$(a.currentTarget).hasClass("tile")&&(a.currentTarget=$(a.currentTarget).find("img")),this.collection.fetch();var b=this.evaluateUserName($(a.currentTarget).attr("id"),"_edit-user");""===b&&(b=$(a.currentTarget).attr("id"));var c=this.collection.findWhere({user:b});c.get("loggedIn")?this.editCurrentUser():this.createEditUserModal(c.get("user"),c.get("extra").name,c.get("active"))}},editCurrentUser:function(){this.createEditCurrentUserModal(this.currentUser.get("user"),this.currentUser.get("extra").name,this.currentUser.get("extra").img)},submitEditUser:function(a){var b=$("#editName").val(),c=$("#editStatus").is(":checked");if(!this.validateStatus(c))return void $("#editStatus").closest("th").css("backgroundColor","red");if(!this.validateName(b))return void $("#editName").closest("th").css("backgroundColor","red");var d=this.collection.findWhere({user:a});d.save({extra:{name:b},active:c},{type:"PATCH"}),window.modalView.hide(),this.updateUserManagement()},validateUsername:function(a){return""===a?(arangoHelper.arangoError("You have to define an username"),$("#newUsername").closest("th").css("backgroundColor","red"),!1):a.match(/^[a-zA-Z][a-zA-Z0-9_\-]*$/)?!0:(arangoHelper.arangoError("Wrong Username","Username may only contain numbers, letters, _ and -"),!1)},validatePassword:function(a){return!0},validateName:function(a){return""===a?!0:a.match(/^[a-zA-Z][a-zA-Z0-9_\-\ ]*$/)?!0:(arangoHelper.arangoError("Wrong Username","Username may only contain numbers, letters, _ and -"),!1)},validateStatus:function(a){return""===a?!1:!0},toggleView:function(){$("#userSortDesc").attr("checked",this.collection.sortOptions.desc),$("#userManagementToggle").toggleClass("activated"),$("#userManagementDropdown2").slideToggle(200)},setFilterValues:function(){},evaluateUserName:function(a,b){if(a){var c=a.lastIndexOf(b);return a.substring(0,c)}},editUserPassword:function(){window.modalView.hide(),this.createEditUserPasswordModal()},submitEditUserPassword:function(){var a=$("#oldCurrentPassword").val(),b=$("#newCurrentPassword").val(),c=$("#confirmCurrentPassword").val();$("#oldCurrentPassword").val(""),$("#newCurrentPassword").val(""),$("#confirmCurrentPassword").val(""),$("#oldCurrentPassword").closest("th").css("backgroundColor","white"),$("#newCurrentPassword").closest("th").css("backgroundColor","white"),$("#confirmCurrentPassword").closest("th").css("backgroundColor","white");var d=!1,e=function(a,e){a?arangoHelper.arangoError("User","Could not verify old password"):e&&(b!==c&&(arangoHelper.arangoError("User","New passwords do not match"),d=!0),d||(this.currentUser.setPassword(b),arangoHelper.arangoNotification("User","Password changed"),window.modalView.hide()))}.bind(this);this.currentUser.checkPassword(a,e)},submitEditCurrentUserProfile:function(){var a=$("#editCurrentName").val(),b=$("#editCurrentUserProfileImg").val();b=this.parseImgString(b);var c=function(a){a?arangoHelper.arangoError("User","Could not edit user settings"):(arangoHelper.arangoNotification("User","Changes confirmed."),this.updateUserProfile())}.bind(this);this.currentUser.setExtras(a,b,c),window.modalView.hide()},updateUserProfile:function(){var a=this;this.collection.fetch({success:function(){a.render()}})},parseImgString:function(a){return-1===a.indexOf("@")?a:CryptoJS.MD5(a).toString()},createEditUserModal:function(a,b,c){var d,e;e=[{type:window.modalView.tables.READONLY,label:"Username",value:_.escape(a)},{type:window.modalView.tables.TEXT,label:"Name",value:b,id:"editName",placeholder:"Name"},{type:window.modalView.tables.CHECKBOX,label:"Active",value:"active",checked:c,id:"editStatus"}],d=[{title:"Delete",type:window.modalView.buttons.DELETE,callback:this.submitDeleteUser.bind(this,a)},{title:"Save",type:window.modalView.buttons.SUCCESS,callback:this.submitEditUser.bind(this,a)}],window.modalView.show("modalTable.ejs","Edit User",d,e)},createCreateUserModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("newUsername","Username","",!1,"Username",!0,[{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only symbols, "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No username given."}])),b.push(window.modalView.createTextEntry("newName","Name","",!1,"Name",!1)),b.push(window.modalView.createPasswordEntry("newPassword","Password","",!1,"",!1)),b.push(window.modalView.createCheckboxEntry("newStatus","Active","active",!1,!0)),a.push(window.modalView.createSuccessButton("Create",this.submitCreateUser.bind(this))),window.modalView.show("modalTable.ejs","Create New User",a,b)},createEditCurrentUserModal:function(a,b,c){var d=[],e=[];e.push(window.modalView.createReadOnlyEntry("id_username","Username",a)),e.push(window.modalView.createTextEntry("editCurrentName","Name",b,!1,"Name",!1)),e.push(window.modalView.createTextEntry("editCurrentUserProfileImg","Gravatar account (Mail)",c,"Mailaddress or its md5 representation of your gravatar account. The address will be converted into a md5 string. Only the md5 string will be stored, not the mailaddress.","myAccount(at)gravatar.com")),d.push(window.modalView.createNotificationButton("Change Password",this.editUserPassword.bind(this))),d.push(window.modalView.createSuccessButton("Save",this.submitEditCurrentUserProfile.bind(this))),window.modalView.show("modalTable.ejs","Edit User Profile",d,e)},createEditUserPasswordModal:function(){var a=[],b=[];b.push(window.modalView.createPasswordEntry("oldCurrentPassword","Old Password","",!1,"old password",!1)),b.push(window.modalView.createPasswordEntry("newCurrentPassword","New Password","",!1,"new password",!1)),b.push(window.modalView.createPasswordEntry("confirmCurrentPassword","Confirm New Password","",!1,"confirm new password",!1)),a.push(window.modalView.createSuccessButton("Save",this.submitEditUserPassword.bind(this))),window.modalView.show("modalTable.ejs","Edit User Password",a,b)}})}(),function(){"use strict";window.workMonitorView=Backbone.View.extend({el:"#content",id:"#workMonitorContent",template:templateEngine.createTemplate("workMonitorView.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),initialize:function(){},events:{},tableDescription:{id:"workMonitorTable",titles:["Type","Database","Task ID","Started","Url","User","Description","Method"],rows:[],unescaped:[!1,!1,!1,!1,!1,!1,!1,!1]},render:function(){var a=this;this.$el.html(this.template.render({})),this.collection.fetch({success:function(){a.parseTableData(),$(a.id).append(a.table.render({content:a.tableDescription}))}})},parseTableData:function(){var a=this;this.collection.each(function(b){if("AQL query"===b.get("type")){var c=b.get("parent");if(c)try{a.tableDescription.rows.push([b.get("type"),"(p) "+c.database,"(p) "+c.taskId,"(p) "+c.startTime,"(p) "+c.url,"(p) "+c.user,b.get("description"),"(p) "+c.method])}catch(d){console.log("some parse error")}}else"thread"!==b.get("type")&&a.tableDescription.rows.push([b.get("type"),b.get("database"),b.get("taskId"),b.get("startTime"),b.get("url"),b.get("user"),b.get("description"),b.get("method")])})}})}(),function(){"use strict";window.Router=Backbone.Router.extend({toUpdate:[],dbServers:[],isCluster:void 0,routes:{"":"cluster",dashboard:"dashboard",collections:"collections","new":"newCollection",login:"login","collection/:colid/documents/:pageid":"documents","cIndices/:colname":"cIndices","cSettings/:colname":"cSettings","cInfo/:colname":"cInfo","collection/:colid/:docid":"document",shell:"shell",queries:"query",workMonitor:"workMonitor",databases:"databases",settings:"databases",services:"applications","service/:mount":"applicationDetail",graphs:"graphManagement","graphs/:name":"showGraph",users:"userManagement",userProfile:"userProfile",cluster:"cluster",nodes:"cNodes",cNodes:"cNodes",dNodes:"dNodes",sNodes:"sNodes","node/:name":"node",logs:"logs",helpus:"helpUs"},execute:function(a,b){$("#subNavigationBar .breadcrumb").html(""),$("#subNavigationBar .bottom").html(""),$("#loadingScreen").hide(),$("#content").show(),a&&a.apply(this,b)},checkUser:function(){if("#login"!==window.location.hash){var a=function(){this.initOnce(),$(".bodyWrapper").show(),$(".navbar").show()}.bind(this),b=function(b,c){frontendConfig.authenticationEnabled&&(b||null===c)?"#login"!==window.location.hash&&this.navigate("login",{trigger:!0}):a()}.bind(this);frontendConfig.authenticationEnabled?this.userCollection.whoAmI(b):(this.initOnce(),$(".bodyWrapper").show(),$(".navbar").show())}},waitForInit:function(a,b,c){this.initFinished?(b||a(!0),b&&!c&&a(b,!0),b&&c&&a(b,c,!0)):setTimeout(function(){b||a(!1),b&&!c&&a(b,!1),b&&c&&a(b,c,!1)},350)},initFinished:!1,initialize:function(){frontendConfig.isCluster===!0&&(this.isCluster=!0),window.modalView=new window.ModalView,this.foxxList=new window.FoxxCollection,window.foxxInstallView=new window.FoxxInstallView({collection:this.foxxList}),window.progressView=new window.ProgressView;var a=this;this.userCollection=new window.ArangoUsers,this.initOnce=function(){this.initOnce=function(){};var b=function(b,c){a=this,c===!0&&a.coordinatorCollection.fetch({success:function(){a.fetchDBS()}})}.bind(this);window.isCoordinator(b),frontendConfig.isCluster===!1&&(this.initFinished=!0),this.arangoDatabase=new window.ArangoDatabase,this.currentDB=new window.CurrentDatabase,this.arangoCollectionsStore=new window.arangoCollections,this.arangoDocumentStore=new window.arangoDocument,this.coordinatorCollection=new window.ClusterCoordinators,arangoHelper.setDocumentStore(this.arangoDocumentStore),this.arangoCollectionsStore.fetch(),window.spotlightView=new window.SpotlightView({collection:this.arangoCollectionsStore}),this.footerView=new window.FooterView({collection:a.coordinatorCollection}),this.notificationList=new window.NotificationCollection,this.currentDB.fetch({success:function(){a.naviView=new window.NavigationView({database:a.arangoDatabase,currentDB:a.currentDB,notificationCollection:a.notificationList,userCollection:a.userCollection,isCluster:a.isCluster}),a.naviView.render()}}),this.queryCollection=new window.ArangoQueries,this.footerView.render(),window.checkVersion(),this.documentsView=new window.DocumentsView({collection:new window.arangoDocuments,documentStore:this.arangoDocumentStore,collectionsStore:this.arangoCollectionsStore})}.bind(this),$(window).resize(function(){a.handleResize()}),$(window).scroll(function(){})},handleScroll:function(){$(window).scrollTop()>50?($(".navbar > .secondary").css("top",$(window).scrollTop()),$(".navbar > .secondary").css("position","absolute"),$(".navbar > .secondary").css("z-index","10"),$(".navbar > .secondary").css("width",$(window).width())):($(".navbar > .secondary").css("top","0"),$(".navbar > .secondary").css("position","relative"),$(".navbar > .secondary").css("width",""))},cluster:function(a){return this.checkUser(),a?this.isCluster===!1||void 0===this.isCluster?void("_system"===this.currentDB.get("name")?(this.routes[""]="dashboard",this.navigate("#dashboard",{trigger:!0})):(this.routes[""]="collections",this.navigate("#collections",{trigger:!0}))):(this.clusterView||(this.clusterView=new window.ClusterView({coordinators:this.coordinatorCollection,dbServers:this.dbServers})),void this.clusterView.render()):void this.waitForInit(this.cluster.bind(this))},node:function(a,b){return this.checkUser(),b&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.nodeView||(this.nodeView=new window.NodeView({coordname:a,coordinators:this.coordinatorCollection,dbServers:this.dbServers})),void this.nodeView.render()):void this.waitForInit(this.node.bind(this),a)},cNodes:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.nodesView=new window.NodesView({coordinators:this.coordinatorCollection,dbServers:this.dbServers[0],toRender:"coordinator"}),void this.nodesView.render()):void this.waitForInit(this.cNodes.bind(this))},dNodes:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):0===this.dbServers.length?void this.navigate("#cNodes",{trigger:!0}):(this.nodesView=new window.NodesView({coordinators:this.coordinatorCollection,dbServers:this.dbServers[0],toRender:"dbserver"}),void this.nodesView.render()):void this.waitForInit(this.dNodes.bind(this))},sNodes:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.scaleView=new window.ScaleView({coordinators:this.coordinatorCollection,dbServers:this.dbServers[0]}),void this.scaleView.render()):void this.waitForInit(this.sNodes.bind(this))},addAuth:function(a){var b=this.clusterPlan.get("user");if(!b)return a.abort(),void(this.isCheckingUser||this.requestAuth());var c=b.name,d=b.passwd,e=c.concat(":",d);a.setRequestHeader("Authorization","Basic "+btoa(e))},logs:function(a,b){if(this.checkUser(),!b)return void this.waitForInit(this.logs.bind(this),a);if(!this.logsView){var c=new window.ArangoLogs({upto:!0,loglevel:4}),d=new window.ArangoLogs({loglevel:4}),e=new window.ArangoLogs({loglevel:3}),f=new window.ArangoLogs({loglevel:2}),g=new window.ArangoLogs({loglevel:1});this.logsView=new window.LogsView({logall:c,logdebug:d,loginfo:e,logwarning:f,logerror:g})}this.logsView.render()},applicationDetail:function(a,b){if(this.checkUser(),!b)return void this.waitForInit(this.applicationDetail.bind(this),a);var c=function(){this.hasOwnProperty("applicationDetailView")||(this.applicationDetailView=new window.ApplicationDetailView({model:this.foxxList.get(decodeURIComponent(a))})),this.applicationDetailView.model=this.foxxList.get(decodeURIComponent(a)),this.applicationDetailView.render("swagger")}.bind(this);0===this.foxxList.length?this.foxxList.fetch({success:function(){c()}}):c()},login:function(){var a=function(a,b){this.loginView||(this.loginView=new window.loginView({collection:this.userCollection})),a||null===b?this.loginView.render():this.loginView.render(!0)}.bind(this);this.userCollection.whoAmI(a)},collections:function(a){if(this.checkUser(),!a)return void this.waitForInit(this.collections.bind(this));var b=this;this.collectionsView||(this.collectionsView=new window.CollectionsView({collection:this.arangoCollectionsStore})),this.arangoCollectionsStore.fetch({success:function(){b.collectionsView.render()}})},cIndices:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({success:function(){c.indicesView=new window.IndicesView({collectionName:a,collection:c.arangoCollectionsStore.findWhere({name:a})}),c.indicesView.render()}}):void this.waitForInit(this.cIndices.bind(this),a)},cSettings:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({success:function(){c.settingsView=new window.SettingsView({collectionName:a,collection:c.arangoCollectionsStore.findWhere({name:a})}),c.settingsView.render()}}):void this.waitForInit(this.cSettings.bind(this),a)},cInfo:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({success:function(){c.infoView=new window.InfoView({collectionName:a,collection:c.arangoCollectionsStore.findWhere({name:a})}),c.infoView.render()}}):void this.waitForInit(this.cInfo.bind(this),a)},documents:function(a,b,c){return this.checkUser(),c?(this.documentsView||(this.documentsView=new window.DocumentsView({collection:new window.arangoDocuments,documentStore:this.arangoDocumentStore,collectionsStore:this.arangoCollectionsStore})),this.documentsView.setCollectionId(a,b),void this.documentsView.render()):void this.waitForInit(this.documents.bind(this),a,b)},document:function(a,b,c){if(this.checkUser(),!c)return void this.waitForInit(this.document.bind(this),a,b);this.documentView||(this.documentView=new window.DocumentView({collection:this.arangoDocumentStore})),this.documentView.colid=a;var d=window.location.hash.split("/")[2],e=(d.split("%").length-1)%3;decodeURI(d)!==d&&0!==e&&(d=decodeURIComponent(d)),this.documentView.docid=d,this.documentView.render();var f=function(a,b){a?console.log("Error","Could not fetch collection type"):this.documentView.setType(b)}.bind(this);arangoHelper.collectionApiType(a,null,f)},shell:function(a){return this.checkUser(),a?(this.shellView||(this.shellView=new window.shellView), -void this.shellView.render()):void this.waitForInit(this.shell.bind(this))},query:function(a){return this.checkUser(),a?(this.queryView2||(this.queryView2=new window.queryView2({collection:this.queryCollection})),void this.queryView2.render()):void this.waitForInit(this.query.bind(this))},helpUs:function(a){return this.checkUser(),a?(this.testView||(this.helpUsView=new window.HelpUsView({})),void this.helpUsView.render()):void this.waitForInit(this.helpUs.bind(this))},workMonitor:function(a){return this.checkUser(),a?(this.workMonitorCollection||(this.workMonitorCollection=new window.WorkMonitorCollection),this.workMonitorView||(this.workMonitorView=new window.workMonitorView({collection:this.workMonitorCollection})),void this.workMonitorView.render()):void this.waitForInit(this.workMonitor.bind(this))},queryManagement:function(a){return this.checkUser(),a?(this.queryManagementView||(this.queryManagementView=new window.queryManagementView({collection:void 0})),void this.queryManagementView.render()):void this.waitForInit(this.queryManagement.bind(this))},databases:function(a){if(this.checkUser(),!a)return void this.waitForInit(this.databases.bind(this));var b=function(a){a?(arangoHelper.arangoError("DB","Could not get list of allowed databases"),this.navigate("#",{trigger:!0}),$("#databaseNavi").css("display","none"),$("#databaseNaviSelect").css("display","none")):(this.databaseView||(this.databaseView=new window.databaseView({users:this.userCollection,collection:this.arangoDatabase})),this.databaseView.render())}.bind(this);arangoHelper.databaseAllowed(b)},dashboard:function(a){return this.checkUser(),a?(void 0===this.dashboardView&&(this.dashboardView=new window.DashboardView({dygraphConfig:window.dygraphConfig,database:this.arangoDatabase})),void this.dashboardView.render()):void this.waitForInit(this.dashboard.bind(this))},graphManagement:function(a){return this.checkUser(),a?(this.graphManagementView||(this.graphManagementView=new window.GraphManagementView({collection:new window.GraphCollection,collectionCollection:this.arangoCollectionsStore})),void this.graphManagementView.render()):void this.waitForInit(this.graphManagement.bind(this))},showGraph:function(a,b){return this.checkUser(),b?void(this.graphManagementView?this.graphManagementView.loadGraphViewer(a):(this.graphManagementView=new window.GraphManagementView({collection:new window.GraphCollection,collectionCollection:this.arangoCollectionsStore}),this.graphManagementView.render(a,!0))):void this.waitForInit(this.showGraph.bind(this),a)},applications:function(a){return this.checkUser(),a?(void 0===this.applicationsView&&(this.applicationsView=new window.ApplicationsView({collection:this.foxxList})),void this.applicationsView.reload()):void this.waitForInit(this.applications.bind(this))},handleSelectDatabase:function(a){return this.checkUser(),a?void this.naviView.handleSelectDatabase():void this.waitForInit(this.handleSelectDatabase.bind(this))},handleResize:function(){this.dashboardView&&this.dashboardView.resize(),this.graphManagementView&&this.graphManagementView.handleResize($("#content").width()),this.queryView&&this.queryView.resize(),this.queryView2&&this.queryView2.resize(),this.documentsView&&this.documentsView.resize(),this.documentView&&this.documentView.resize()},userManagement:function(a){return this.checkUser(),a?(this.userManagementView||(this.userManagementView=new window.userManagementView({collection:this.userCollection})),void this.userManagementView.render()):void this.waitForInit(this.userManagement.bind(this))},userProfile:function(a){return this.checkUser(),a?(this.userManagementView||(this.userManagementView=new window.userManagementView({collection:this.userCollection})),void this.userManagementView.render(!0)):void this.waitForInit(this.userProfile.bind(this))},fetchDBS:function(a){var b=this,c=!1;this.coordinatorCollection.each(function(a){b.dbServers.push(new window.ClusterServers([],{host:a.get("address")}))}),this.initFinished=!0,_.each(this.dbServers,function(b){b.fetch({success:function(){c===!1&&a&&(a(),c=!0)}})})},getNewRoute:function(a){return"http://"+a},registerForUpdate:function(a){this.toUpdate.push(a),a.updateUrl()}})}(),function(){"use strict";var a=function(a,b){var c=[];c.push(window.modalView.createSuccessButton("Download Page",function(){window.open("https://www.arangodb.com/download","_blank"),window.modalView.hide()}));var d=[],e=window.modalView.createReadOnlyEntry.bind(window.modalView);d.push(e("current","Current",a.toString())),b.major&&d.push(e("major","Major",b.major.version)),b.minor&&d.push(e("minor","Minor",b.minor.version)),b.bugfix&&d.push(e("bugfix","Bugfix",b.bugfix.version)),window.modalView.show("modalTable.ejs","New Version Available",c,d)};window.checkVersion=function(){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/version"),contentType:"application/json",processData:!1,async:!0,success:function(b){var c=window.versionHelper.fromString(b.version);$(".navbar #currentVersion").text(" "+b.version.substr(0,3)),window.parseVersions=function(b){return _.isEmpty(b)?void $("#currentVersion").addClass("up-to-date"):($("#currentVersion").addClass("out-of-date"),void $("#currentVersion").click(function(){a(c,b)}))},$.ajax({type:"GET",async:!0,crossDomain:!0,timeout:3e3,dataType:"jsonp",url:"https://www.arangodb.com/repositories/versions.php?jsonp=parseVersions&version="+encodeURIComponent(c.toString())})}})}}(),function(){"use strict";window.hasOwnProperty("TEST_BUILD")||($(document).ajaxSend(function(a,b,c){var d=window.arangoHelper.getCurrentJwt();d&&b.setRequestHeader("Authorization","bearer "+d)}),$(document).ready(function(){window.App=new window.Router,Backbone.history.start(),window.App.handleResize()}),$(document).click(function(a){a.stopPropagation(),$(a.target).hasClass("subBarDropdown")||$(a.target).hasClass("dropdown-header")||$(a.target).hasClass("dropdown-footer")||$(a.target).hasClass("toggle")||$("#userInfo").is(":visible")&&$(".subBarDropdown").hide()}))}(); \ No newline at end of file +},validateDatabaseInfo:function(a,b){return""===b?(arangoHelper.arangoError("DB","You have to define an owner for the new database"),!1):""===a?(arangoHelper.arangoError("DB","You have to define a name for the new database"),!1):0===a.indexOf("_")?(arangoHelper.arangoError("DB ","Databasename should not start with _"),!1):a.match(/^[a-zA-Z][a-zA-Z0-9_\-]*$/)?!0:(arangoHelper.arangoError("DB","Databasename may only contain numbers, letters, _ and -"),!1)},createDatabase:function(a){a.preventDefault(),this.createAddDatabaseModal()},switchDatabase:function(a){if(!$(a.target).parent().hasClass("iconSet")){var b=$(a.currentTarget).find("h5").text();if(""!==b){var c=this.collection.createDatabaseURL(b);window.location.replace(c)}}},submitCreateDatabase:function(){var a,b=this,c=$("#newDatabaseName").val(),d=$("#newUser").val();if(a="true"===$("#useDefaultPassword").val()?"ARANGODB_DEFAULT_ROOT_PASSWORD":$("#newPassword").val(),this.validateDatabaseInfo(c,d,a)){var e={name:c,users:[{username:d,passwd:a,active:!0}]};this.collection.create(e,{wait:!0,error:function(a,d){b.handleError(d.status,d.statusText,c)},success:function(){b.updateDatabases(),window.modalView.hide(),window.App.naviView.dbSelectionView.render($("#dbSelect"))}})}},submitDeleteDatabase:function(a){var b=this.collection.where({name:a});b[0].destroy({wait:!0,url:arangoHelper.databaseUrl("/_api/database/"+a)}),this.updateDatabases(),window.App.naviView.dbSelectionView.render($("#dbSelect")),window.modalView.hide()},changeDatabase:function(a){var b=$(a.currentTarget).attr("id"),c=this.collection.createDatabaseURL(b);window.location.replace(c)},updateDatabases:function(){var a=this;this.collection.fetch({success:function(){a.render(),window.App.handleSelectDatabase()}})},editDatabase:function(a){var b=this.evaluateDatabaseName($(a.currentTarget).attr("id"),"_edit-database"),c=!0;b===this.currentDB&&(c=!1),this.createEditDatabaseModal(b,c)},search:function(){var a,b,c,d;a=$("#databaseSearchInput"),b=$("#databaseSearchInput").val(),d=this.collection.filter(function(a){return-1!==a.get("name").indexOf(b)}),$(this.el).html(this.template.render({collection:d,searchString:b,currentDB:this.currentDB})),this.replaceSVGs(),a=$("#databaseSearchInput"),c=a.val().length,a.focus(),a[0].setSelectionRange(c,c)},replaceSVGs:function(){$(".svgToReplace").each(function(){var a=$(this),b=a.attr("id"),c=a.attr("src");$.get(c,function(c){var d=$(c).find("svg");d.attr("id",b).attr("class","tile-icon-svg").removeAttr("xmlns:a"),a.replaceWith(d)},"xml")})},evaluateDatabaseName:function(a,b){var c=a.lastIndexOf(b);return a.substring(0,c)},createEditDatabaseModal:function(a,b){var c=[],d=[];d.push(window.modalView.createReadOnlyEntry("id_name","Name",a,"")),b?c.push(window.modalView.createDeleteButton("Delete",this.submitDeleteDatabase.bind(this,a))):c.push(window.modalView.createDisabledButton("Delete")),window.modalView.show("modalTable.ejs","Delete database",c,d)},createAddDatabaseModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("newDatabaseName","Name","",!1,"Database Name",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Database name must start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only Symbols "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No database name given."}])),b.push(window.modalView.createTextEntry("newUser","Username",null!==this.users?this.users.whoAmI():"root","Please define the owner of this database. This will be the only user having initial access to this database if authentication is turned on. Please note that if you specify a username different to your account you will not be able to access the database with your account after having creating it. Specifying a username is mandatory even with authentication turned off. If there is a failure you will be informed.","Database Owner",!0,[{rule:Joi.string().required(),msg:"No username given."}])),b.push(window.modalView.createSelectEntry("useDefaultPassword","Use default password",!0,"Read the password from the environment variable ARANGODB_DEFAULT_ROOT_PASSWORD.",[{value:!1,label:"No"},{value:!0,label:"Yes"}])),b.push(window.modalView.createPasswordEntry("newPassword","Password","",!1,"",!1)),a.push(window.modalView.createSuccessButton("Create",this.submitCreateDatabase.bind(this))),window.modalView.show("modalTable.ejs","Create Database",a,b),$("#useDefaultPassword").change(function(){"true"===$("#useDefaultPassword").val()?$("#row_newPassword").hide():$("#row_newPassword").show()}),$("#row_newPassword").hide()}})}(),function(){"use strict";window.DBSelectionView=Backbone.View.extend({template:templateEngine.createTemplate("dbSelectionView.ejs"),events:{"click .dbSelectionLink":"changeDatabase"},initialize:function(a){this.current=a.current},changeDatabase:function(a){var b=$(a.currentTarget).closest(".dbSelectionLink.tab").attr("id"),c=this.collection.createDatabaseURL(b);window.location.replace(c)},render:function(a){var b=function(b,c){b?arangoHelper.arangoError("DB","Could not fetch databases"):(this.$el=a,this.$el.html(this.template.render({list:c,current:this.current.get("name")})),this.delegateEvents())}.bind(this);return this.collection.getDatabasesForUser(b),this.el}})}(),function(){"use strict";var a=function(a){var b=a.split("/");return"collection/"+encodeURIComponent(b[0])+"/"+encodeURIComponent(b[1])};window.DocumentView=Backbone.View.extend({el:"#content",colid:0,docid:0,customView:!1,defaultMode:"tree",template:templateEngine.createTemplate("documentView.ejs"),events:{"click #saveDocumentButton":"saveDocument","click #deleteDocumentButton":"deleteDocumentModal","click #confirmDeleteDocument":"deleteDocument","click #document-from":"navigateToDocument","click #document-to":"navigateToDocument","keydown #documentEditor .ace_editor":"keyPress","keyup .jsoneditor .search input":"checkSearchBox","click .jsoneditor .modes":"storeMode","click #addDocument":"addDocument"},checkSearchBox:function(a){""===$(a.currentTarget).val()&&this.editor.expandAll()},addDocument:function(){window.App.documentsView.addDocumentModal()},storeMode:function(){var a=this;$(".type-modes").on("click",function(b){a.defaultMode=$(b.currentTarget).text().toLowerCase()})},keyPress:function(a){a.ctrlKey&&13===a.keyCode?(a.preventDefault(),this.saveDocument()):a.metaKey&&13===a.keyCode&&(a.preventDefault(),this.saveDocument())},editor:0,setType:function(a){a=2===a?"document":"edge";var b=function(a,b,c){if(a)console.log(b),arangoHelper.arangoError("Error","Could not fetch data.");else{var d=c+": ";this.type=c,this.fillInfo(d),this.fillEditor()}}.bind(this);"edge"===a?this.collection.getEdge(this.colid,this.docid,b):"document"===a&&this.collection.getDocument(this.colid,this.docid,b)},deleteDocumentModal:function(){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry("doc-delete-button","Delete","Delete this "+this.type+"?",void 0,void 0,!1,/[<>&'"]/)),a.push(window.modalView.createDeleteButton("Delete",this.deleteDocument.bind(this))),window.modalView.show("modalTable.ejs","Delete Document",a,b)},deleteDocument:function(){var a=function(){if(this.customView)this.customDeleteFunction();else{var a="collection/"+encodeURIComponent(this.colid)+"/documents/1";window.modalView.hide(),window.App.navigate(a,{trigger:!0})}}.bind(this);if("document"===this.type){var b=function(b){b?arangoHelper.arangoError("Error","Could not delete document"):a()}.bind(this);this.collection.deleteDocument(this.colid,this.docid,b)}else if("edge"===this.type){var c=function(b){b?arangoHelper.arangoError("Edge error","Could not delete edge"):a()}.bind(this);this.collection.deleteEdge(this.colid,this.docid,c)}},navigateToDocument:function(a){var b=$(a.target).attr("documentLink");b&&window.App.navigate(b,{trigger:!0})},fillInfo:function(b){var c=this.collection.first(),d=c.get("_id"),e=c.get("_key"),f=c.get("_rev"),g=c.get("_from"),h=c.get("_to");if($("#document-type").text(b),$("#document-id").text(d),$("#document-key").text(e),$("#document-rev").text(f),g&&h){var i=a(g),j=a(h);$("#document-from").text(g),$("#document-from").attr("documentLink",i),$("#document-to").text(h),$("#document-to").attr("documentLink",j)}else $(".edge-info-container").hide()},fillEditor:function(){var a=this.removeReadonlyKeys(this.collection.first().attributes);$(".disabledBread").last().text(this.collection.first().get("_key")),this.editor.set(a),$(".ace_content").attr("font-size","11pt")},jsonContentChanged:function(){this.enableSaveButton()},resize:function(){$("#documentEditor").height($(".centralRow").height()-300)},render:function(){$(this.el).html(this.template.render({})),$("#documentEditor").height($(".centralRow").height()-300),this.disableSaveButton(),this.breadcrumb();var a=this,b=document.getElementById("documentEditor"),c={change:function(){a.jsonContentChanged()},search:!0,mode:"tree",modes:["tree","code"],iconlib:"fontawesome4"};return this.editor=new JSONEditor(b,c),this.editor.setMode(this.defaultMode),this},removeReadonlyKeys:function(a){return _.omit(a,["_key","_id","_from","_to","_rev"])},saveDocument:function(){if(void 0===$("#saveDocumentButton").attr("disabled"))if("_"===this.collection.first().attributes._id.substr(0,1)){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry("doc-save-system-button","Caution","You are modifying a system collection. Really continue?",void 0,void 0,!1,/[<>&'"]/)),a.push(window.modalView.createSuccessButton("Save",this.confirmSaveDocument.bind(this))),window.modalView.show("modalTable.ejs","Modify System Collection",a,b)}else this.confirmSaveDocument()},confirmSaveDocument:function(){window.modalView.hide();var a;try{a=this.editor.get()}catch(b){return this.errorConfirmation(b),void this.disableSaveButton()}if(a=JSON.stringify(a),"document"===this.type){var c=function(a){a?arangoHelper.arangoError("Error","Could not save document."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveDocument(this.colid,this.docid,a,c)}else if("edge"===this.type){var d=function(a){a?arangoHelper.arangoError("Error","Could not save edge."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveEdge(this.colid,this.docid,a,d)}},successConfirmation:function(){arangoHelper.arangoNotification("Document saved."),$("#documentEditor .tree").animate({backgroundColor:"#C6FFB0"},500),$("#documentEditor .tree").animate({backgroundColor:"#FFFFF"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#C6FFB0"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#FFFFF"},500)},errorConfirmation:function(a){arangoHelper.arangoError("Document editor: ",a),$("#documentEditor .tree").animate({backgroundColor:"#FFB0B0"},500),$("#documentEditor .tree").animate({backgroundColor:"#FFFFF"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#FFB0B0"},500),$("#documentEditor .ace_content").animate({backgroundColor:"#FFFFF"},500)},enableSaveButton:function(){$("#saveDocumentButton").prop("disabled",!1),$("#saveDocumentButton").addClass("button-success"),$("#saveDocumentButton").removeClass("button-close")},disableSaveButton:function(){$("#saveDocumentButton").prop("disabled",!0),$("#saveDocumentButton").addClass("button-close"),$("#saveDocumentButton").removeClass("button-success")},breadcrumb:function(){var a=window.location.hash.split("/");$("#subNavigationBar .breadcrumb").html('Collection: '+a[1]+'Document: '+a[2])},escaped:function(a){return a.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}})}(),function(){"use strict";window.DocumentsView=window.PaginationView.extend({filters:{0:!0},filterId:0,paginationDiv:"#documentsToolbarF",idPrefix:"documents",addDocumentSwitch:!0,activeFilter:!1,lastCollectionName:void 0,restoredFilters:[],editMode:!1,allowUpload:!1,el:"#content",table:"#documentsTableID",template:templateEngine.createTemplate("documentsView.ejs"),collectionContext:{prev:null,next:null},editButtons:["#deleteSelected","#moveSelected"],initialize:function(a){this.documentStore=a.documentStore,this.collectionsStore=a.collectionsStore,this.tableView=new window.TableView({el:this.table,collection:this.collection}),this.tableView.setRowClick(this.clicked.bind(this)),this.tableView.setRemoveClick(this.remove.bind(this))},resize:function(){$("#docPureTable").height($(".centralRow").height()-210),$("#docPureTable .pure-table-body").css("max-height",$("#docPureTable").height()-47)},setCollectionId:function(a,b){this.collection.setCollection(a),this.collection.setPage(b),this.page=b;var c=function(b,c){b?arangoHelper.arangoError("Error","Could not get collection properties."):(this.type=c,this.collection.getDocuments(this.getDocsCallback.bind(this)),this.collectionModel=this.collectionsStore.get(a))}.bind(this);arangoHelper.collectionApiType(a,null,c)},getDocsCallback:function(a){$("#documents_last").css("visibility","hidden"),$("#documents_first").css("visibility","hidden"),a?(window.progressView.hide(),arangoHelper.arangoError("Document error","Could not fetch requested documents.")):a&&void 0===a||(window.progressView.hide(),this.drawTable(),this.renderPaginationElements())},events:{"click #collectionPrev":"prevCollection","click #collectionNext":"nextCollection","click #filterCollection":"filterCollection","click #markDocuments":"editDocuments","click #importCollection":"importCollection","click #exportCollection":"exportCollection","click #filterSend":"sendFilter","click #addFilterItem":"addFilterItem","click .removeFilterItem":"removeFilterItem","click #deleteSelected":"deleteSelectedDocs","click #moveSelected":"moveSelectedDocs","click #addDocumentButton":"addDocumentModal","click #documents_first":"firstDocuments","click #documents_last":"lastDocuments","click #documents_prev":"prevDocuments","click #documents_next":"nextDocuments","click #confirmDeleteBtn":"confirmDelete","click .key":"nop",keyup:"returnPressedHandler","keydown .queryline input":"filterValueKeydown","click #importModal":"showImportModal","click #resetView":"resetView","click #confirmDocImport":"startUpload","click #exportDocuments":"startDownload","change #documentSize":"setPagesize","change #docsSort":"setSorting"},showSpinner:function(){$("#uploadIndicator").show()},hideSpinner:function(){$("#uploadIndicator").hide()},showImportModal:function(){$("#docImportModal").modal("show")},hideImportModal:function(){$("#docImportModal").modal("hide")},setPagesize:function(){var a=$("#documentSize").find(":selected").val();this.collection.setPagesize(a),this.collection.getDocuments(this.getDocsCallback.bind(this))},setSorting:function(){var a=$("#docsSort").val();(""===a||void 0===a||null===a)&&(a="_key"),this.collection.setSort(a)},returnPressedHandler:function(a){13===a.keyCode&&$(a.target).is($("#docsSort"))&&this.collection.getDocuments(this.getDocsCallback.bind(this)),13===a.keyCode&&$("#confirmDeleteBtn").attr("disabled")===!1&&this.confirmDelete()},nop:function(a){a.stopPropagation()},resetView:function(){var a=function(a){a&&arangoHelper.arangoError("Document","Could not fetch documents count")}.bind(this);$("input").val(""),$("select").val("=="),this.removeAllFilterItems(),$("#documentSize").val(this.collection.getPageSize()),$("#documents_last").css("visibility","visible"),$("#documents_first").css("visibility","visible"),this.addDocumentSwitch=!0,this.collection.resetFilter(),this.collection.loadTotal(a),this.restoredFilters=[],this.allowUpload=!1,this.files=void 0,this.file=void 0,$("#confirmDocImport").attr("disabled",!0),this.markFilterToggle(),this.collection.getDocuments(this.getDocsCallback.bind(this))},startDownload:function(){var a=this.collection.buildDownloadDocumentQuery();""!==a||void 0!==a||null!==a?window.open(encodeURI("query/result/download/"+btoa(JSON.stringify(a)))):arangoHelper.arangoError("Document error","could not download documents")},startUpload:function(){var a=function(a,b){a?(arangoHelper.arangoError("Upload",b),this.hideSpinner()):(this.hideSpinner(),this.hideImportModal(),this.resetView())}.bind(this);this.allowUpload===!0&&(this.showSpinner(),this.collection.uploadDocuments(this.file,a))},uploadSetup:function(){var a=this;$("#importDocuments").change(function(b){a.files=b.target.files||b.dataTransfer.files,a.file=a.files[0],$("#confirmDocImport").attr("disabled",!1),a.allowUpload=!0})},buildCollectionLink:function(a){return"collection/"+encodeURIComponent(a.get("name"))+"/documents/1"},markFilterToggle:function(){this.restoredFilters.length>0?$("#filterCollection").addClass("activated"):$("#filterCollection").removeClass("activated")},editDocuments:function(){$("#importCollection").removeClass("activated"),$("#exportCollection").removeClass("activated"),this.markFilterToggle(),$("#markDocuments").toggleClass("activated"),this.changeEditMode(),$("#filterHeader").hide(),$("#importHeader").hide(),$("#editHeader").slideToggle(200),$("#exportHeader").hide()},filterCollection:function(){$("#importCollection").removeClass("activated"),$("#exportCollection").removeClass("activated"),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),this.markFilterToggle(),this.activeFilter=!0,$("#importHeader").hide(),$("#editHeader").hide(),$("#exportHeader").hide(),$("#filterHeader").slideToggle(200);var a;for(a in this.filters)if(this.filters.hasOwnProperty(a))return void $("#attribute_name"+a).focus()},exportCollection:function(){$("#importCollection").removeClass("activated"),$("#filterHeader").removeClass("activated"),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#exportCollection").toggleClass("activated"),this.markFilterToggle(),$("#exportHeader").slideToggle(200),$("#importHeader").hide(),$("#filterHeader").hide(),$("#editHeader").hide()},importCollection:function(){this.markFilterToggle(),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#importCollection").toggleClass("activated"),$("#exportCollection").removeClass("activated"),$("#importHeader").slideToggle(200),$("#filterHeader").hide(),$("#editHeader").hide(),$("#exportHeader").hide()},changeEditMode:function(a){a===!1||this.editMode===!0?($("#docPureTable .pure-table-body .pure-table-row").css("cursor","default"),$(".deleteButton").fadeIn(),$(".addButton").fadeIn(),$(".selected-row").removeClass("selected-row"),this.editMode=!1,this.tableView.setRowClick(this.clicked.bind(this))):($("#docPureTable .pure-table-body .pure-table-row").css("cursor","copy"),$(".deleteButton").fadeOut(),$(".addButton").fadeOut(),$(".selectedCount").text(0),this.editMode=!0,this.tableView.setRowClick(this.editModeClick.bind(this)))},getFilterContent:function(){var a,b,c=[];for(a in this.filters)if(this.filters.hasOwnProperty(a)){b=$("#attribute_value"+a).val();try{b=JSON.parse(b)}catch(d){b=String(b)}""!==$("#attribute_name"+a).val()&&c.push({attribute:$("#attribute_name"+a).val(),operator:$("#operator"+a).val(),value:b})}return c},sendFilter:function(){this.restoredFilters=this.getFilterContent();var a=this;this.collection.resetFilter(),this.addDocumentSwitch=!1,_.each(this.restoredFilters,function(b){void 0!==b.operator&&a.collection.addFilter(b.attribute,b.operator,b.value)}),this.collection.setToFirst(),this.collection.getDocuments(this.getDocsCallback.bind(this)),this.markFilterToggle()},restoreFilter:function(){var a=this,b=0;this.filterId=0,$("#docsSort").val(this.collection.getSort()),_.each(this.restoredFilters,function(c){0!==b&&a.addFilterItem(),void 0!==c.operator&&($("#attribute_name"+b).val(c.attribute),$("#operator"+b).val(c.operator),$("#attribute_value"+b).val(c.value)),b++,a.collection.addFilter(c.attribute,c.operator,c.value)})},addFilterItem:function(){var a=++this.filterId;$("#filterHeader").append('
    '),this.filters[a]=!0},filterValueKeydown:function(a){13===a.keyCode&&this.sendFilter()},removeFilterItem:function(a){var b=a.currentTarget,c=b.id.replace(/^removeFilter/,"");delete this.filters[c],delete this.restoredFilters[c],$(b.parentElement).remove()},removeAllFilterItems:function(){var a,b=$("#filterHeader").children().length;for(a=1;b>=a;a++)$("#removeFilter"+a).parent().remove();this.filters={0:!0},this.filterId=0},addDocumentModal:function(){var a=window.location.hash.split("/")[1],b=[],c=[],d=function(a,d){a?arangoHelper.arangoError("Error","Could not fetch collection type"):"edge"===d?(c.push(window.modalView.createTextEntry("new-edge-from-attr","_from","","document _id: document handle of the linked vertex (incoming relation)",void 0,!1,[{rule:Joi.string().required(),msg:"No _from attribute given."}])),c.push(window.modalView.createTextEntry("new-edge-to","_to","","document _id: document handle of the linked vertex (outgoing relation)",void 0,!1,[{rule:Joi.string().required(),msg:"No _to attribute given."}])),c.push(window.modalView.createTextEntry("new-edge-key-attr","_key",void 0,"the edges unique key(optional attribute, leave empty for autogenerated key","is optional: leave empty for autogenerated key",!1,[{rule:Joi.string().allow("").optional(),msg:""}])),b.push(window.modalView.createSuccessButton("Create",this.addEdge.bind(this))),window.modalView.show("modalTable.ejs","Create edge",b,c)):(c.push(window.modalView.createTextEntry("new-document-key-attr","_key",void 0,"the documents unique key(optional attribute, leave empty for autogenerated key","is optional: leave empty for autogenerated key",!1,[{rule:Joi.string().allow("").optional(),msg:""}])),b.push(window.modalView.createSuccessButton("Create",this.addDocument.bind(this))),window.modalView.show("modalTable.ejs","Create document",b,c))}.bind(this);arangoHelper.collectionApiType(a,!0,d)},addEdge:function(){var a,b=window.location.hash.split("/")[1],c=$(".modal-body #new-edge-from-attr").last().val(),d=$(".modal-body #new-edge-to").last().val(),e=$(".modal-body #new-edge-key-attr").last().val(),f=function(b,c){if(b)arangoHelper.arangoError("Error","Could not create edge");else{window.modalView.hide(),c=c._id.split("/");try{a="collection/"+c[0]+"/"+c[1],decodeURI(a)}catch(d){a="collection/"+c[0]+"/"+encodeURIComponent(c[1])}window.location.hash=a}}.bind(this);""!==e||void 0!==e?this.documentStore.createTypeEdge(b,c,d,e,f):this.documentStore.createTypeEdge(b,c,d,null,f)},addDocument:function(){var a,b=window.location.hash.split("/")[1],c=$(".modal-body #new-document-key-attr").last().val(),d=function(b,c){if(b)arangoHelper.arangoError("Error","Could not create document");else{window.modalView.hide(),c=c.split("/");try{a="collection/"+c[0]+"/"+c[1],decodeURI(a)}catch(d){a="collection/"+c[0]+"/"+encodeURIComponent(c[1])}window.location.hash=a}}.bind(this);""!==c||void 0!==c?this.documentStore.createTypeDocument(b,c,d):this.documentStore.createTypeDocument(b,null,d)},moveSelectedDocs:function(){var a=[],b=[],c=this.getSelectedDocs();0!==c.length&&(b.push(window.modalView.createTextEntry("move-documents-to","Move to","",!1,"collection-name",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Collection name must always start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only Symbols "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No collection name given."}])),a.push(window.modalView.createSuccessButton("Move",this.confirmMoveSelectedDocs.bind(this))),window.modalView.show("modalTable.ejs","Move documents",a,b))},confirmMoveSelectedDocs:function(){var a=this.getSelectedDocs(),b=this,c=$(".modal-body").last().find("#move-documents-to").val(),d=function(){this.collection.getDocuments(this.getDocsCallback.bind(this)),$("#markDocuments").click(),window.modalView.hide()}.bind(this);_.each(a,function(a){b.collection.moveDocument(a,b.collection.collectionID,c,d)})},deleteSelectedDocs:function(){var a=[],b=[],c=this.getSelectedDocs();0!==c.length&&(b.push(window.modalView.createReadOnlyEntry(void 0,c.length+" documents selected","Do you want to delete all selected documents?",void 0,void 0,!1,void 0)),a.push(window.modalView.createDeleteButton("Delete",this.confirmDeleteSelectedDocs.bind(this))),window.modalView.show("modalTable.ejs","Delete documents",a,b))},confirmDeleteSelectedDocs:function(){var a=this.getSelectedDocs(),b=[],c=this;_.each(a,function(a){if("document"===c.type){var d=function(a){a?(b.push(!1),arangoHelper.arangoError("Document error","Could not delete document.")):(b.push(!0),c.collection.setTotalMinusOne(),c.collection.getDocuments(this.getDocsCallback.bind(this)),$("#markDocuments").click(),window.modalView.hide())}.bind(c);c.documentStore.deleteDocument(c.collection.collectionID,a,d)}else if("edge"===c.type){var e=function(a){a?(b.push(!1),arangoHelper.arangoError("Edge error","Could not delete edge")):(c.collection.setTotalMinusOne(),b.push(!0),c.collection.getDocuments(this.getDocsCallback.bind(this)),$("#markDocuments").click(),window.modalView.hide())}.bind(c);c.documentStore.deleteEdge(c.collection.collectionID,a,e)}})},getSelectedDocs:function(){var a=[];return _.each($("#docPureTable .pure-table-body .pure-table-row"),function(b){$(b).hasClass("selected-row")&&a.push($($(b).children()[1]).find(".key").text())}),a},remove:function(a){this.docid=$(a.currentTarget).parent().parent().prev().find(".key").text(),$("#confirmDeleteBtn").attr("disabled",!1),$("#docDeleteModal").modal("show")},confirmDelete:function(){$("#confirmDeleteBtn").attr("disabled",!0);var a=window.location.hash.split("/"),b=a[3];"source"!==b&&this.reallyDelete()},reallyDelete:function(){if("document"===this.type){var a=function(a){a?arangoHelper.arangoError("Error","Could not delete document"):(this.collection.setTotalMinusOne(),this.collection.getDocuments(this.getDocsCallback.bind(this)),$("#docDeleteModal").modal("hide"))}.bind(this);this.documentStore.deleteDocument(this.collection.collectionID,this.docid,a)}else if("edge"===this.type){var b=function(a){a?arangoHelper.arangoError("Edge error","Could not delete edge"):(this.collection.setTotalMinusOne(),this.collection.getDocuments(this.getDocsCallback.bind(this)),$("#docDeleteModal").modal("hide"))}.bind(this);this.documentStore.deleteEdge(this.collection.collectionID,this.docid,b)}},editModeClick:function(a){var b=$(a.currentTarget);b.hasClass("selected-row")?b.removeClass("selected-row"):b.addClass("selected-row"),console.log(b);var c=this.getSelectedDocs();$(".selectedCount").text(c.length),_.each(this.editButtons,function(a){c.length>0?($(a).prop("disabled",!1),$(a).removeClass("button-neutral"),$(a).removeClass("disabled"),"#moveSelected"===a?$(a).addClass("button-success"):$(a).addClass("button-danger")):($(a).prop("disabled",!0),$(a).addClass("disabled"),$(a).addClass("button-neutral"),"#moveSelected"===a?$(a).removeClass("button-success"):$(a).removeClass("button-danger"))})},clicked:function(a){var b,c=a.currentTarget,d=$(c).attr("id").substr(4);try{b="collection/"+this.collection.collectionID+"/"+d,decodeURI(d)}catch(e){b="collection/"+this.collection.collectionID+"/"+encodeURIComponent(d)}window.location.hash=b},drawTable:function(){this.tableView.setElement($("#docPureTable")).render(),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","top"),$(".prettify").snippet("javascript",{style:"nedit",menu:!1,startText:!1,transparent:!0,showNum:!1}),this.resize()},checkCollectionState:function(){this.lastCollectionName===this.collectionName?this.activeFilter&&(this.filterCollection(),this.restoreFilter()):void 0!==this.lastCollectionName&&(this.collection.resetFilter(),this.collection.setSort(""),this.restoredFilters=[],this.activeFilter=!1)},render:function(){return $(this.el).html(this.template.render({})),2===this.type?this.type="document":3===this.type&&(this.type="edge"),this.tableView.setElement($(this.table)).drawLoading(),this.collectionContext=this.collectionsStore.getPosition(this.collection.collectionID),this.collectionName=window.location.hash.split("/")[1],this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Content"),this.checkCollectionState(),this.lastCollectionName=this.collectionName,this.uploadSetup(),$("[data-toggle=tooltip]").tooltip(),$(".upload-info").tooltip(),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","top"),this.renderPaginationElements(),this.selectActivePagesize(),this.markFilterToggle(),this.resize(),this},rerender:function(){this.collection.getDocuments(this.getDocsCallback.bind(this)),this.resize()},selectActivePagesize:function(){$("#documentSize").val(this.collection.getPageSize())},renderPaginationElements:function(){this.renderPagination();var a=$("#totalDocuments");0===a.length&&($("#documentsToolbarFL").append(''),a=$("#totalDocuments")),"document"===this.type&&a.html(numeral(this.collection.getTotal()).format("0,0")+" doc(s)"),"edge"===this.type&&a.html(numeral(this.collection.getTotal()).format("0,0")+" edge(s)")},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)}})}(),function(){"use strict";window.EditListEntryView=Backbone.View.extend({template:templateEngine.createTemplate("editListEntryView.ejs"),initialize:function(a){this.key=a.key,this.value=a.value,this.render()},events:{"click .deleteAttribute":"removeRow"},render:function(){$(this.el).html(this.template.render({key:this.key,value:JSON.stringify(this.value),isReadOnly:this.isReadOnly()}))},isReadOnly:function(){return 0===this.key.indexOf("_")},getKey:function(){return $(".key").val()},getValue:function(){var val=$(".val").val();try{val=JSON.parse(val)}catch(e){try{return eval("val = "+val),val}catch(e2){return $(".val").val()}}return val},removeRow:function(){this.remove()}})}(),function(){"use strict";window.FooterView=Backbone.View.extend({el:"#footerBar",system:{},isOffline:!0,isOfflineCounter:0,firstLogin:!0,timer:15e3,lap:0,timerFunction:null,events:{"click .footer-center p":"showShortcutModal"},initialize:function(){var a=this;window.setInterval(function(){a.getVersion()},a.timer),a.getVersion(),window.VISIBLE=!0,document.addEventListener("visibilitychange",function(){window.VISIBLE=!window.VISIBLE}),$("#offlinePlaceholder button").on("click",function(){a.getVersion()})},template:templateEngine.createTemplate("footerView.ejs"),showServerStatus:function(a){window.App.isCluster?this.renderClusterState(a):a===!0?($("#healthStatus").removeClass("negative"),$("#healthStatus").addClass("positive"),$(".health-state").html("GOOD"),$(".health-icon").html(''),$("#offlinePlaceholder").hide()):($("#healthStatus").removeClass("positive"),$("#healthStatus").addClass("negative"),$(".health-state").html("UNKNOWN"),$(".health-icon").html(''),$("#offlinePlaceholder").show(),this.reconnectAnimation(0))},reconnectAnimation:function(a){var b=this;0===a&&(b.lap=a,$("#offlineSeconds").text(b.timer/1e3),clearTimeout(b.timerFunction)),b.lap0?($("#healthStatus").removeClass("positive"),$("#healthStatus").addClass("negative"),1===c?$(".health-state").html(c+" NODE ERROR"):$(".health-state").html(c+" NODES ERROR"), +$(".health-icon").html('')):($("#healthStatus").removeClass("negative"),$("#healthStatus").addClass("positive"),$(".health-state").html("NODES OK"),$(".health-icon").html(''))}.bind(this);$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,async:!0,success:function(a){b(a)}})}else $("#healthStatus").removeClass("positive"),$("#healthStatus").addClass("negative"),$(".health-state").html(window.location.host+" OFFLINE"),$(".health-icon").html(''),$("#offlinePlaceholder").show(),this.reconnectAnimation(0)},showShortcutModal:function(){window.arangoHelper.hotkeysFunctions.showHotkeysModal()},getVersion:function(){var a=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/version"),contentType:"application/json",processData:!1,async:!0,success:function(b){a.showServerStatus(!0),a.isOffline===!0&&(a.isOffline=!1,a.isOfflineCounter=0,a.firstLogin?a.firstLogin=!1:window.setTimeout(function(){a.showServerStatus(!0)},1e3),a.system.name=b.server,a.system.version=b.version,a.render())},error:function(){a.isOffline=!0,a.isOfflineCounter++,a.isOfflineCounter>=1&&a.showServerStatus(!1)}}),a.system.hasOwnProperty("database")||$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/database/current"),contentType:"application/json",processData:!1,async:!0,success:function(b){var c=b.result.name;a.system.database=c;var d=window.setInterval(function(){var b=$("#databaseNavi");b&&(window.clearTimeout(d),d=null,a.render())},50)}})},renderVersion:function(){this.system.hasOwnProperty("database")&&this.system.hasOwnProperty("name")&&$(this.el).html(this.template.render({name:this.system.name,version:this.system.version,database:this.system.database}))},render:function(){return this.system.version||this.getVersion(),$(this.el).html(this.template.render({name:this.system.name,version:this.system.version})),this}})}(),function(){"use strict";window.FoxxActiveView=Backbone.View.extend({tagName:"div",className:"tile pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6",template:templateEngine.createTemplate("foxxActiveView.ejs"),_show:!0,events:{click:"openAppDetailView"},openAppDetailView:function(){window.App.navigate("service/"+encodeURIComponent(this.model.get("mount")),{trigger:!0})},toggle:function(a,b){switch(a){case"devel":this.model.isDevelopment()&&(this._show=b);break;case"production":this.model.isDevelopment()||this.model.isSystem()||(this._show=b);break;case"system":this.model.isSystem()&&(this._show=b)}this._show?$(this.el).show():$(this.el).hide()},render:function(){return this.model.fetchThumbnail(function(){$(this.el).html(this.template.render({model:this.model}));var a=function(){this.model.needsConfiguration()&&($(this.el).find(".warning-icons").length>0?$(this.el).find(".warning-icons").append(''):$(this.el).find("img").after(''))}.bind(this),b=function(){this.model.hasUnconfiguredDependencies()&&($(this.el).find(".warning-icons").length>0?$(this.el).find(".warning-icons").append(''):$(this.el).find("img").after(''))}.bind(this);this.model.getConfiguration(a),this.model.getDependencies(b)}.bind(this)),$(this.el)}})}(),function(){"use strict";var a={ERROR_APPLICATION_DOWNLOAD_FAILED:{code:1752,message:"application download failed"}},b=templateEngine.createTemplate("applicationListView.ejs"),c=function(a){this.collection=a.collection},d=function(b){var c=this;if(b.error===!1)this.collection.fetch({success:function(){window.modalView.hide(),c.reload()}});else{var d=b;switch(b.hasOwnProperty("responseJSON")&&(d=b.responseJSON),d.errorNum){case a.ERROR_APPLICATION_DOWNLOAD_FAILED.code:arangoHelper.arangoError("Services","Unable to download application from the given repository.");break;default:arangoHelper.arangoError("Services",d.errorNum+". "+d.errorMessage)}}},e=function(){window.modalView.modalBindValidation({id:"new-app-mount",validateInput:function(){return[{rule:Joi.string().regex(/^(\/(APP[^\/]+|(?!APP)[a-zA-Z0-9_\-%]+))+$/i),msg:"May not contain /APP"},{rule:Joi.string().regex(/^(\/[a-zA-Z0-9_\-%]+)+$/),msg:"Can only contain [a-zA-Z0-9_-%]"},{rule:Joi.string().regex(/^\/([^_]|_open\/)/),msg:"Mountpoints with _ are reserved for internal use"},{rule:Joi.string().regex(/[^\/]$/),msg:"May not end with /"},{rule:Joi.string().regex(/^\//),msg:"Has to start with /"},{rule:Joi.string().required().min(2),msg:"Has to be non-empty"}]}})},f=function(){window.modalView.modalBindValidation({id:"repository",validateInput:function(){return[{rule:Joi.string().required().regex(/^[a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+$/),msg:"No valid Github account and repository."}]}})},g=function(){window.modalView.modalBindValidation({id:"new-app-author",validateInput:function(){return[{rule:Joi.string().required().min(1),msg:"Has to be non empty."}]}}),window.modalView.modalBindValidation({id:"new-app-name",validateInput:function(){return[{rule:Joi.string().required().regex(/^[a-zA-Z\-_][a-zA-Z0-9\-_]*$/),msg:"Can only contain a to z, A to Z, 0-9, '-' and '_'."}]}}),window.modalView.modalBindValidation({id:"new-app-description",validateInput:function(){return[{rule:Joi.string().required().min(1),msg:"Has to be non empty."}]}}),window.modalView.modalBindValidation({id:"new-app-license",validateInput:function(){return[{rule:Joi.string().required().regex(/^[a-zA-Z0-9 \.,;\-]+$/),msg:"Has to be non empty."}]}}),window.modalView.modalTestAll()},h=function(a){window.modalView.clearValidators();var b=$("#modalButton1");switch(this._upgrade||e(),a){case"newApp":b.html("Generate"),b.prop("disabled",!1),g();break;case"appstore":b.html("Install"),b.prop("disabled",!0);break;case"github":f(),b.html("Install"),b.prop("disabled",!1);break;case"zip":b.html("Install"),b.prop("disabled",!1)}b.prop("disabled")||window.modalView.modalTestAll()||b.prop("disabled",!0)},i=function(a){var b=$(a.currentTarget).attr("href").substr(1);h.call(this,b)},j=function(a){if(h.call(this,"appstore"),window.modalView.modalTestAll()){var b,c;this._upgrade?(b=this.mount,c=$("#new-app-teardown").prop("checked")):b=window.arangoHelper.escapeHtml($("#new-app-mount").val());var e=$(a.currentTarget).attr("appId"),f=$(a.currentTarget).attr("appVersion");void 0!==c?this.collection.installFromStore({name:e,version:f},b,d.bind(this),c):this.collection.installFromStore({name:e,version:f},b,d.bind(this))}},k=function(a,b){if(void 0===b?b=this._uploadData:this._uploadData=b,b&&window.modalView.modalTestAll()){var c,e;this._upgrade?(c=this.mount,e=$("#new-app-teardown").prop("checked")):c=window.arangoHelper.escapeHtml($("#new-app-mount").val()),void 0!==e?this.collection.installFromZip(b.filename,c,d.bind(this),e):this.collection.installFromZip(b.filename,c,d.bind(this))}},l=function(){if(window.modalView.modalTestAll()){var a,b,c,e;this._upgrade?(c=this.mount,e=$("#new-app-teardown").prop("checked")):c=window.arangoHelper.escapeHtml($("#new-app-mount").val()),a=window.arangoHelper.escapeHtml($("#repository").val()),b=window.arangoHelper.escapeHtml($("#tag").val()),""===b&&(b="master");var f={url:window.arangoHelper.escapeHtml($("#repository").val()),version:window.arangoHelper.escapeHtml($("#tag").val())};try{Joi.assert(a,Joi.string().regex(/^[a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+$/))}catch(g){return}void 0!==e?this.collection.installFromGithub(f,c,d.bind(this),e):this.collection.installFromGithub(f,c,d.bind(this))}},m=function(){if(window.modalView.modalTestAll()){var a,b;this._upgrade?(a=this.mount,b=$("#new-app-teardown").prop("checked")):a=window.arangoHelper.escapeHtml($("#new-app-mount").val());var c={name:window.arangoHelper.escapeHtml($("#new-app-name").val()),documentCollections:_.map($("#new-app-document-collections").select2("data"),function(a){return window.arangoHelper.escapeHtml(a.text)}),edgeCollections:_.map($("#new-app-edge-collections").select2("data"),function(a){return window.arangoHelper.escapeHtml(a.text)}),author:window.arangoHelper.escapeHtml($("#new-app-author").val()),license:window.arangoHelper.escapeHtml($("#new-app-license").val()),description:window.arangoHelper.escapeHtml($("#new-app-description").val())};void 0!==b?this.collection.generate(c,a,d.bind(this),b):this.collection.generate(c,a,d.bind(this))}},n=function(){var a=$(".modal-body .tab-pane.active").attr("id");switch(a){case"newApp":m.apply(this);break;case"github":l.apply(this);break;case"zip":k.apply(this)}},o=function(a,c){var d=[],e={"click #infoTab a":i.bind(a),"click .install-app":j.bind(a)};d.push(window.modalView.createSuccessButton("Generate",n.bind(a))),window.modalView.show("modalApplicationMount.ejs","Install Service",d,c,void 0,void 0,e),$("#new-app-document-collections").select2({tags:[],showSearchBox:!1,minimumResultsForSearch:-1,width:"336px"}),$("#new-app-edge-collections").select2({tags:[],showSearchBox:!1,minimumResultsForSearch:-1,width:"336px"});var f=function(){var a=$("#modalButton1");a.prop("disabled")||window.modalView.modalTestAll()?a.prop("disabled",!1):a.prop("disabled",!0)};$(".select2-search-field input").focusout(function(){f(),window.setTimeout(function(){$(".select2-drop").is(":visible")&&($("#select2-search-field input").is(":focus")||($("#s2id_new-app-document-collections").select2("close"),$("#s2id_new-app-edge-collections").select2("close"),f()))},80)}),$(".select2-search-field input").focusin(function(){if($(".select2-drop").is(":visible")){var a=$("#modalButton1");a.prop("disabled",!0)}}),$("#upload-foxx-zip").uploadFile({url:arangoHelper.databaseUrl("/_api/upload?multipart=true"),allowedTypes:"zip",multiple:!1,onSuccess:k.bind(a)}),$.get("foxxes/fishbowl",function(a){var c=$("#appstore-content");c.html(""),_.each(_.sortBy(a,"name"),function(a){c.append(b.render(a))})}).fail(function(){var a=$("#appstore-content");a.append("Store is not available. ArangoDB is not able to connect to github.com")})};c.prototype.install=function(a){this.reload=a,this._upgrade=!1,this._uploadData=void 0,delete this.mount,o(this,!1),window.modalView.clearValidators(),e(),g()},c.prototype.upgrade=function(a,b){this.reload=b,this._upgrade=!0,this._uploadData=void 0,this.mount=a,o(this,!0),window.modalView.clearValidators(),g()},window.FoxxInstallView=c}(),function(){"use strict";window.GraphManagementView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("graphManagementView.ejs"),edgeDefintionTemplate:templateEngine.createTemplate("edgeDefinitionTable.ejs"),eCollList:[],removedECollList:[],dropdownVisible:!1,initialize:function(a){this.options=a},events:{"click #deleteGraph":"deleteGraph","click .icon_arangodb_settings2.editGraph":"editGraph","click #createGraph":"addNewGraph","keyup #graphManagementSearchInput":"search","click #graphManagementSearchSubmit":"search","click .tile-graph":"redirectToGraphViewer","click #graphManagementToggle":"toggleGraphDropdown","click .css-label":"checkBoxes","change #graphSortDesc":"sorting"},toggleTab:function(a){var b=a.currentTarget.id;b=b.replace("tab-",""),$("#tab-content-create-graph .tab-pane").removeClass("active"),$("#tab-content-create-graph #"+b).addClass("active"),"exampleGraphs"===b?$("#modal-dialog .modal-footer .button-success").css("display","none"):$("#modal-dialog .modal-footer .button-success").css("display","initial")},redirectToGraphViewer:function(a){var b=$(a.currentTarget).attr("id");b=b.substr(0,b.length-5),window.location=window.location+"/"+encodeURIComponent(b)},loadGraphViewer:function(a,b){var c=function(b){if(b)arangoHelper.arangoError("","");else{var c=this.collection.get(a).get("edgeDefinitions");if(!c||0===c.length)return;var d={type:"gharial",graphName:a,baseUrl:arangoHelper.databaseUrl("/")},e=$("#content").width()-75;$("#content").html("");var f=arangoHelper.calculateCenterDivHeight();this.ui=new GraphViewerUI($("#content")[0],d,e,$(".centralRow").height()-135,{nodeShaper:{label:"_key",color:{type:"attribute",key:"_key"}}},!0),$(".contentDiv").height(f)}}.bind(this);b?this.collection.fetch({success:function(){c()}}):c()},handleResize:function(a){this.width&&this.width===a||(this.width=a,this.ui&&this.ui.changeWidth(a))},addNewGraph:function(a){a.preventDefault(),this.createEditGraphModal()},deleteGraph:function(){var a=this,b=$("#editGraphName")[0].value;if($("#dropGraphCollections").is(":checked")){var c=function(c){c?(a.collection.remove(a.collection.get(b)),a.updateGraphManagementView(),window.modalView.hide()):(window.modalView.hide(),arangoHelper.arangoError("Graph","Could not delete Graph."))}.bind(this);this.collection.dropAndDeleteGraph(b,c)}else this.collection.get(b).destroy({success:function(){a.updateGraphManagementView(),window.modalView.hide()},error:function(a,b){var c=JSON.parse(b.responseText),d=c.errorMessage;arangoHelper.arangoError(d),window.modalView.hide()}})},checkBoxes:function(a){var b=a.currentTarget.id;$("#"+b).click()},toggleGraphDropdown:function(){$("#graphSortDesc").attr("checked",this.collection.sortOptions.desc),$("#graphManagementToggle").toggleClass("activated"),$("#graphManagementDropdown2").slideToggle(200)},sorting:function(){$("#graphSortDesc").is(":checked")?this.collection.setSortingDesc(!0):this.collection.setSortingDesc(!1),$("#graphManagementDropdown").is(":visible")?this.dropdownVisible=!0:this.dropdownVisible=!1,this.render()},createExampleGraphs:function(a){var b=$(a.currentTarget).attr("graph-id"),c=this;$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_admin/aardvark/graph-examples/create/"+encodeURIComponent(b)),success:function(){window.modalView.hide(),c.updateGraphManagementView(),arangoHelper.arangoNotification("Example Graphs","Graph: "+b+" created.")},error:function(a){if(window.modalView.hide(),console.log(a),a.responseText)try{var c=JSON.parse(a.responseText);arangoHelper.arangoError("Example Graphs",c.errorMessage)}catch(d){arangoHelper.arangoError("Example Graphs","Could not create example graph: "+b)}else arangoHelper.arangoError("Example Graphs","Could not create example graph: "+b)}})},render:function(a,b){var c=this;return this.collection.fetch({success:function(){c.collection.sort(),$(c.el).html(c.template.render({graphs:c.collection,searchString:""})),c.dropdownVisible===!0&&($("#graphManagementDropdown2").show(),$("#graphSortDesc").attr("checked",c.collection.sortOptions.desc),$("#graphManagementToggle").toggleClass("activated"),$("#graphManagementDropdown").show()),c.events["click .tableRow"]=c.showHideDefinition.bind(c),c.events['change tr[id*="newEdgeDefinitions"]']=c.setFromAndTo.bind(c),c.events["click .graphViewer-icon-button"]=c.addRemoveDefinition.bind(c),c.events["click #graphTab a"]=c.toggleTab.bind(c),c.events["click .createExampleGraphs"]=c.createExampleGraphs.bind(c),c.events["focusout .select2-search-field input"]=function(a){$(".select2-drop").is(":visible")&&($("#select2-search-field input").is(":focus")||window.setTimeout(function(){$(a.currentTarget).parent().parent().parent().select2("close")},80))}.bind(c),arangoHelper.setCheckboxStatus("#graphManagementDropdown")}}),a&&this.loadGraphViewer(a,b),this},setFromAndTo:function(a){a.stopPropagation();var b,c=this.calculateEdgeDefinitionMap();if(a.added){if(-1===this.eCollList.indexOf(a.added.id)&&-1!==this.removedECollList.indexOf(a.added.id))return b=a.currentTarget.id.split("row_newEdgeDefinitions")[1],$('input[id*="newEdgeDefinitions'+b+'"]').select2("val",null),void $('input[id*="newEdgeDefinitions'+b+'"]').attr("placeholder","The collection "+a.added.id+" is already used.");this.removedECollList.push(a.added.id),this.eCollList.splice(this.eCollList.indexOf(a.added.id),1)}else this.eCollList.push(a.removed.id),this.removedECollList.splice(this.removedECollList.indexOf(a.removed.id),1);c[a.val]?(b=a.currentTarget.id.split("row_newEdgeDefinitions")[1],$("#s2id_fromCollections"+b).select2("val",c[a.val].from),$("#fromCollections"+b).attr("disabled",!0),$("#s2id_toCollections"+b).select2("val",c[a.val].to),$("#toCollections"+b).attr("disabled",!0)):(b=a.currentTarget.id.split("row_newEdgeDefinitions")[1],$("#s2id_fromCollections"+b).select2("val",null),$("#fromCollections"+b).attr("disabled",!1),$("#s2id_toCollections"+b).select2("val",null),$("#toCollections"+b).attr("disabled",!1))},editGraph:function(a){a.stopPropagation(),this.collection.fetch(),this.graphToEdit=this.evaluateGraphName($(a.currentTarget).attr("id"),"_settings");var b=this.collection.findWhere({_key:this.graphToEdit});this.createEditGraphModal(b)},saveEditedGraph:function(){var a,b,c,d,e,f=$("#editGraphName")[0].value,g=_.pluck($("#newVertexCollections").select2("data"),"text"),h=[],i={};if(e=$("[id^=s2id_newEdgeDefinitions]").toArray(),e.forEach(function(e){if(d=$(e).attr("id"),d=d.replace("s2id_newEdgeDefinitions",""),a=_.pluck($("#s2id_newEdgeDefinitions"+d).select2("data"),"text")[0],a&&""!==a&&(b=_.pluck($("#s2id_fromCollections"+d).select2("data"),"text"),c=_.pluck($("#s2id_toCollections"+d).select2("data"),"text"),0!==b.length&&0!==c.length)){var f={collection:a,from:b,to:c};h.push(f),i[a]=f}}),0===h.length)return $("#s2id_newEdgeDefinitions0 .select2-choices").css("border-color","red"),$("#s2id_newEdgeDefinitions0").parent().parent().next().find(".select2-choices").css("border-color","red"),void $("#s2id_newEdgeDefinitions0").parent().parent().next().next().find(".select2-choices").css("border-color","red");var j=this.collection.findWhere({_key:f}),k=j.get("edgeDefinitions"),l=j.get("orphanCollections"),m=[];l.forEach(function(a){-1===g.indexOf(a)&&j.deleteVertexCollection(a)}),g.forEach(function(a){-1===l.indexOf(a)&&j.addVertexCollection(a)});var n=[],o=[],p=[];k.forEach(function(a){var b=a.collection;m.push(b);var c=i[b];void 0===c?p.push(b):JSON.stringify(c)!==JSON.stringify(a)&&o.push(b)}),h.forEach(function(a){var b=a.collection;-1===m.indexOf(b)&&n.push(b)}),n.forEach(function(a){j.addEdgeDefinition(i[a])}),o.forEach(function(a){j.modifyEdgeDefinition(i[a])}),p.forEach(function(a){j.deleteEdgeDefinition(a)}),this.updateGraphManagementView(),window.modalView.hide()},evaluateGraphName:function(a,b){var c=a.lastIndexOf(b);return a.substring(0,c)},search:function(){var a,b,c,d;a=$("#graphManagementSearchInput"),b=$("#graphManagementSearchInput").val(),d=this.collection.filter(function(a){return-1!==a.get("_key").indexOf(b)}),$(this.el).html(this.template.render({graphs:d,searchString:b})),a=$("#graphManagementSearchInput"),c=a.val().length,a.focus(),a[0].setSelectionRange(c,c)},updateGraphManagementView:function(){var a=this;this.collection.fetch({success:function(){a.render()}})},createNewGraph:function(){var a,b,c,d,e,f=$("#createNewGraphName").val(),g=_.pluck($("#newVertexCollections").select2("data"),"text"),h=[],i=this;return f?this.collection.findWhere({_key:f})?(arangoHelper.arangoError("The graph '"+f+"' already exists."),0):(e=$("[id^=s2id_newEdgeDefinitions]").toArray(),e.forEach(function(e){d=$(e).attr("id"),d=d.replace("s2id_newEdgeDefinitions",""),a=_.pluck($("#s2id_newEdgeDefinitions"+d).select2("data"),"text")[0],a&&""!==a&&(b=_.pluck($("#s2id_fromCollections"+d).select2("data"),"text"),c=_.pluck($("#s2id_toCollections"+d).select2("data"),"text"),1!==b&&1!==c&&h.push({collection:a,from:b,to:c}))}),0===h.length?($("#s2id_newEdgeDefinitions0 .select2-choices").css("border-color","red"),$("#s2id_newEdgeDefinitions0").parent().parent().next().find(".select2-choices").css("border-color","red"),void $("#s2id_newEdgeDefinitions0").parent().parent().next().next().find(".select2-choices").css("border-color","red")):void this.collection.create({name:f,edgeDefinitions:h,orphanCollections:g},{success:function(){i.updateGraphManagementView(),window.modalView.hide()},error:function(a,b){var c=JSON.parse(b.responseText),d=c.errorMessage;d=d.replace("<",""),d=d.replace(">",""),arangoHelper.arangoError(d)}})):(arangoHelper.arangoError("A name for the graph has to be provided."),0)},createEditGraphModal:function(a){var b,c=[],d=[],e=[],f=this.options.collectionCollection.models,g=this,h="",i=[{collection:"",from:"",to:""}],j="",k=function(a,b){return a=a.toLowerCase(),b=b.toLowerCase(),b>a?-1:a>b?1:0};if(this.eCollList=[],this.removedECollList=[],f.forEach(function(a){a.get("isSystem")||("edge"===a.get("type")?g.eCollList.push(a.id):d.push(a.id))}),window.modalView.enableHotKeys=!1,this.counter=0,a?(b="Edit Graph",h=a.get("_key"),i=a.get("edgeDefinitions"),i&&0!==i.length||(i=[{collection:"",from:"",to:""}]),j=a.get("orphanCollections"),e.push(window.modalView.createReadOnlyEntry("editGraphName","Name",h,"The name to identify the graph. Has to be unique")),c.push(window.modalView.createDeleteButton("Delete",this.deleteGraph.bind(this))),c.push(window.modalView.createSuccessButton("Save",this.saveEditedGraph.bind(this)))):(b="Create Graph",e.push(window.modalView.createTextEntry("createNewGraphName","Name","","The name to identify the graph. Has to be unique.","graphName",!0)),c.push(window.modalView.createSuccessButton("Create",this.createNewGraph.bind(this)))),i.forEach(function(a){0===g.counter?(a.collection&&(g.removedECollList.push(a.collection),g.eCollList.splice(g.eCollList.indexOf(a.collection),1)),e.push(window.modalView.createSelect2Entry("newEdgeDefinitions"+g.counter,"Edge definitions",a.collection,"An edge definition defines a relation of the graph","Edge definitions",!0,!1,!0,1,g.eCollList.sort(k)))):e.push(window.modalView.createSelect2Entry("newEdgeDefinitions"+g.counter,"Edge definitions",a.collection,"An edge definition defines a relation of the graph","Edge definitions",!1,!0,!1,1,g.eCollList.sort(k))),e.push(window.modalView.createSelect2Entry("fromCollections"+g.counter,"fromCollections",a.from,"The collections that contain the start vertices of the relation.","fromCollections",!0,!1,!1,10,d.sort(k))),e.push(window.modalView.createSelect2Entry("toCollections"+g.counter,"toCollections",a.to,"The collections that contain the end vertices of the relation.","toCollections",!0,!1,!1,10,d.sort(k))),g.counter++}),e.push(window.modalView.createSelect2Entry("newVertexCollections","Vertex collections",j,"Collections that are part of a graph but not used in an edge definition","Vertex Collections",!1,!1,!1,10,d.sort(k))),window.modalView.show("modalGraphTable.ejs",b,c,e,void 0,void 0,this.events),a){$(".modal-body table").css("border-collapse","separate");var l;for($(".modal-body .spacer").remove(),l=0;l<=this.counter;l++)$("#row_fromCollections"+l).show(),$("#row_toCollections"+l).show(),$("#row_newEdgeDefinitions"+l).addClass("first"),$("#row_fromCollections"+l).addClass("middle"),$("#row_toCollections"+l).addClass("last"),$("#row_toCollections"+l).after('');$("#graphTab").hide(),$("#modal-dialog .modal-delete-confirmation").append('
    ')}},showHideDefinition:function(a){},addRemoveDefinition:function(a){var b=[],c=this.options.collectionCollection.models;c.forEach(function(a){a.get("isSystem")||b.push(a.id)}),a.stopPropagation();var d,e=$(a.currentTarget).attr("id");if(-1===e.indexOf("addAfter_newEdgeDefinitions"))-1!==e.indexOf("remove_newEdgeDefinitions")&&(d=e.split("remove_newEdgeDefinitions")[1],$("#row_newEdgeDefinitions"+d).remove(),$("#row_fromCollections"+d).remove(),$("#row_toCollections"+d).remove(),$("#spacer"+d).remove());else{this.counter++,$("#row_newVertexCollections").before(this.edgeDefintionTemplate.render({number:this.counter})),$("#newEdgeDefinitions"+this.counter).select2({tags:this.eCollList,showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:1}),$("#fromCollections"+this.counter).select2({tags:b,showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:10}),$("#toCollections"+this.counter).select2({tags:b,showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:10}),window.modalView.undelegateEvents(),window.modalView.delegateEvents(this.events);var f;for($(".modal-body .spacer").remove(),f=0;f<=this.counter;f++)$("#row_fromCollections"+f).show(),$("#row_toCollections"+f).show(),$("#row_newEdgeDefinitions"+f).addClass("first"),$("#row_fromCollections"+f).addClass("middle"),$("#row_toCollections"+f).addClass("last"),$("#row_toCollections"+f).after('')}},calculateEdgeDefinitionMap:function(){var a={};return this.collection.models.forEach(function(b){b.get("edgeDefinitions").forEach(function(b){a[b.collection]={from:b.from,to:b.to}})}),a}})}(),function(){"use strict";window.HelpUsView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("helpUsView.ejs"),render:function(){this.$el.html(this.template.render({}))}})}(),function(){"use strict";window.IndicesView=Backbone.View.extend({el:"#content",initialize:function(a){this.collectionName=a.collectionName,this.model=this.collection},template:templateEngine.createTemplate("indicesView.ejs"),events:{},render:function(){$(this.el).html(this.template.render({model:this.model})),this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Indices"),this.getIndex()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},getIndex:function(){var a=function(a,b){a?window.arangoHelper.arangoError("Index",b.errorMessage):this.renderIndex(b)}.bind(this);this.model.getIndex(a)},createIndex:function(){var a,b,c,d=this,e=$("#newIndexType").val(),f={};switch(e){case"Geo":a=$("#newGeoFields").val();var g=d.checkboxToValue("#newGeoJson");f={type:"geo",fields:d.stringToArray(a),geoJson:g};break;case"Persistent":a=$("#newPersistentFields").val(),b=d.checkboxToValue("#newPersistentUnique"),c=d.checkboxToValue("#newPersistentSparse"),f={type:"persistent",fields:d.stringToArray(a),unique:b,sparse:c};break;case"Hash":a=$("#newHashFields").val(),b=d.checkboxToValue("#newHashUnique"),c=d.checkboxToValue("#newHashSparse"),f={type:"hash",fields:d.stringToArray(a),unique:b,sparse:c};break;case"Fulltext":a=$("#newFulltextFields").val();var h=parseInt($("#newFulltextMinLength").val(),10)||0;f={type:"fulltext",fields:d.stringToArray(a),minLength:h};break;case"Skiplist":a=$("#newSkiplistFields").val(),b=d.checkboxToValue("#newSkiplistUnique"),c=d.checkboxToValue("#newSkiplistSparse"),f={type:"skiplist",fields:d.stringToArray(a),unique:b,sparse:c}}var i=function(a,b){if(a)if(b){var c=JSON.parse(b.responseText);arangoHelper.arangoError("Document error",c.errorMessage)}else arangoHelper.arangoError("Document error","Could not create index.");d.toggleNewIndexView(),d.render()};this.model.createIndex(f,i)},bindIndexEvents:function(){this.unbindIndexEvents();var a=this;$("#indexEditView #addIndex").bind("click",function(){a.toggleNewIndexView(),$("#cancelIndex").unbind("click"),$("#cancelIndex").bind("click",function(){a.toggleNewIndexView(),a.render()}),$("#createIndex").unbind("click"),$("#createIndex").bind("click",function(){a.createIndex()})}),$("#newIndexType").bind("change",function(){a.selectIndexType()}),$(".deleteIndex").bind("click",function(b){a.prepDeleteIndex(b)}),$("#infoTab a").bind("click",function(a){if($("#indexDeleteModal").remove(),"Indices"!==$(a.currentTarget).html()||$(a.currentTarget).parent().hasClass("active")||($("#newIndexView").hide(),$("#indexEditView").show(),$("#indexHeaderContent #modal-dialog .modal-footer .button-danger").hide(),$("#indexHeaderContent #modal-dialog .modal-footer .button-success").hide(),$("#indexHeaderContent #modal-dialog .modal-footer .button-notification").hide()),"General"===$(a.currentTarget).html()&&!$(a.currentTarget).parent().hasClass("active")){$("#indexHeaderContent #modal-dialog .modal-footer .button-danger").show(),$("#indexHeaderContent #modal-dialog .modal-footer .button-success").show(),$("#indexHeaderContent #modal-dialog .modal-footer .button-notification").show();var b=$(".index-button-bar2")[0];$("#cancelIndex").is(":visible")&&($("#cancelIndex").detach().appendTo(b),$("#createIndex").detach().appendTo(b))}})},prepDeleteIndex:function(a){var b=this;this.lastTarget=a,this.lastId=$(this.lastTarget.currentTarget).parent().parent().first().children().first().text(),$("#modal-dialog .modal-footer").after(''),$("#indexConfirmDelete").unbind("click"),$("#indexConfirmDelete").bind("click",function(){$("#indexDeleteModal").remove(),b.deleteIndex()}),$("#indexAbortDelete").unbind("click"),$("#indexAbortDelete").bind("click",function(){$("#indexDeleteModal").remove()})},unbindIndexEvents:function(){$("#indexEditView #addIndex").unbind("click"),$("#newIndexType").unbind("change"),$("#infoTab a").unbind("click"),$(".deleteIndex").unbind("click")},deleteIndex:function(){var a=function(a){a?(arangoHelper.arangoError("Could not delete index"),$("tr th:contains('"+this.lastId+"')").parent().children().last().html(''),this.model.set("locked",!1)):a||void 0===a||($("tr th:contains('"+this.lastId+"')").parent().remove(),this.model.set("locked",!1))}.bind(this);this.model.set("locked",!0),this.model.deleteIndex(this.lastId,a),$("tr th:contains('"+this.lastId+"')").parent().children().last().html('')},renderIndex:function(a){this.index=a;var b="collectionInfoTh modal-text";if(this.index){var c="",d="";_.each(this.index.indexes,function(a){d="primary"===a.type||"edge"===a.type?'':'',void 0!==a.fields&&(c=a.fields.join(", "));var e=a.id.indexOf("/"),f=a.id.substr(e+1,a.id.length),g=a.hasOwnProperty("selectivityEstimate")?(100*a.selectivityEstimate).toFixed(2)+"%":"n/a",h=a.hasOwnProperty("sparse")?a.sparse:"n/a";$("#collectionEditIndexTable").append(""+f+""+a.type+""+a.unique+""+h+""+g+""+c+""+d+"")})}this.bindIndexEvents()},selectIndexType:function(){$(".newIndexClass").hide();var a=$("#newIndexType").val();$("#newIndexType"+a).show()},resetIndexForms:function(){$("#indexHeader input").val("").prop("checked",!1),$("#newIndexType").val("Geo").prop("selected",!0),this.selectIndexType()},toggleNewIndexView:function(){var a=$(".index-button-bar2")[0];$("#indexEditView").is(":visible")?($("#indexEditView").hide(),$("#newIndexView").show(),$("#cancelIndex").detach().appendTo("#indexHeaderContent #modal-dialog .modal-footer"),$("#createIndex").detach().appendTo("#indexHeaderContent #modal-dialog .modal-footer")):($("#indexEditView").show(),$("#newIndexView").hide(),$("#cancelIndex").detach().appendTo(a),$("#createIndex").detach().appendTo(a)),arangoHelper.fixTooltips(".icon_arangodb, .arangoicon","right"),this.resetIndexForms()},stringToArray:function(a){var b=[];return a.split(",").forEach(function(a){a=a.replace(/(^\s+|\s+$)/g,""),""!==a&&b.push(a)}),b},checkboxToValue:function(a){return $(a).prop("checked")}})}(),function(){"use strict";window.InfoView=Backbone.View.extend({ +el:"#content",initialize:function(a){this.collectionName=a.collectionName,this.model=this.collection},events:{},render:function(){this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Info"),this.renderInfoView()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},renderInfoView:function(){if(this.model.get("locked"))return 0;var a=function(a,b,c){if(a)arangoHelper.arangoError("Figures","Could not get revision.");else{var d=[],e={figures:c,revision:b,model:this.model};window.modalView.show("modalCollectionInfo.ejs","Collection: "+this.model.get("name"),d,e,null,null,null,null,null,"content")}}.bind(this),b=function(b,c){if(b)arangoHelper.arangoError("Figures","Could not get figures.");else{var d=c;this.model.getRevision(a,d)}}.bind(this);this.model.getFigures(b)}})}(),function(){"use strict";window.loginView=Backbone.View.extend({el:"#content",el2:".header",el3:".footer",loggedIn:!1,events:{"keyPress #loginForm input":"keyPress","click #submitLogin":"validate","submit #dbForm":"goTo","click #logout":"logout","change #loginDatabase":"renderDBS"},template:templateEngine.createTemplate("loginView.ejs"),render:function(a){var b=this;if($(this.el).html(this.template.render({})),$(this.el2).hide(),$(this.el3).hide(),frontendConfig.authenticationEnabled&&a!==!0)window.setTimeout(function(){$("#loginUsername").focus()},300);else{var c=arangoHelper.databaseUrl("/_api/database/user");frontendConfig.authenticationEnabled===!1&&($("#logout").hide(),$(".login-window #databases").css("height","90px")),$("#loginForm").hide(),$(".login-window #databases").show(),$.ajax(c).success(function(a){$("#loginDatabase").html(""),_.each(a.result,function(a){$("#loginDatabase").append("")}),b.renderDBS()})}return $(".bodyWrapper").show(),this},clear:function(){$("#loginForm input").removeClass("form-error"),$(".wrong-credentials").hide()},keyPress:function(a){a.ctrlKey&&13===a.keyCode?(a.preventDefault(),this.validate()):a.metaKey&&13===a.keyCode&&(a.preventDefault(),this.validate())},validate:function(a){a.preventDefault(),this.clear();var b=$("#loginUsername").val(),c=$("#loginPassword").val();if(b){var d=function(a){var b=this;if(a)$(".wrong-credentials").show(),$("#loginDatabase").html(""),$("#loginDatabase").append("");else{var c=arangoHelper.databaseUrl("/_api/database/user","_system");frontendConfig.authenticationEnabled===!1&&(c=arangoHelper.databaseUrl("/_api/database/user")),$(".wrong-credentials").hide(),b.loggedIn=!0,$.ajax(c).success(function(a){$("#loginForm").hide(),$("#databases").show(),$("#loginDatabase").html(""),_.each(a.result,function(a){$("#loginDatabase").append("")}),b.renderDBS()})}}.bind(this);this.collection.login(b,c,d)}},renderDBS:function(){var a=$("#loginDatabase").val();$("#goToDatabase").html("Select: "+a),window.setTimeout(function(){$("#goToDatabase").focus()},300)},logout:function(){this.collection.logout()},goTo:function(a){a.preventDefault();var b=$("#loginUsername").val(),c=$("#loginDatabase").val();console.log(window.App.dbSet),window.App.dbSet=c,console.log(window.App.dbSet);var d=function(a){a&&arangoHelper.arangoError("User","Could not fetch user settings")},e=window.location.protocol+"//"+window.location.host+frontendConfig.basePath+"/_db/"+c+"/_admin/aardvark/index.html";window.location.href=e,$(this.el2).show(),$(this.el3).show(),$(".bodyWrapper").show(),$(".navbar").show(),$("#currentUser").text(b),this.collection.loadUserSettings(d)}})}(),function(){"use strict";window.LogsView=window.PaginationView.extend({el:"#content",id:"#logContent",paginationDiv:"#logPaginationDiv",idPrefix:"logTable",fetchedAmount:!1,initialize:function(a){this.options=a,this.convertModelToJSON()},currentLoglevel:"logall",events:{"click #arangoLogTabbar button":"setActiveLoglevel","click #logTable_first":"firstPage","click #logTable_last":"lastPage"},template:templateEngine.createTemplate("logsView.ejs"),tabbar:templateEngine.createTemplate("arangoTabbar.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),tabbarElements:{id:"arangoLogTabbar",titles:[["All","logall"],["Info","loginfo"],["Error","logerror"],["Warning","logwarning"],["Debug","logdebug"]]},tableDescription:{id:"arangoLogTable",titles:["Loglevel","Date","Message"],rows:[]},convertedRows:null,setActiveLoglevel:function(a){$(".arangodb-tabbar").removeClass("arango-active-tab"),this.currentLoglevel!==a.currentTarget.id&&(this.currentLoglevel=a.currentTarget.id,this.convertModelToJSON())},initTotalAmount:function(){var a=this;this.collection=this.options[this.currentLoglevel],this.collection.fetch({data:$.param({test:!0}),success:function(){a.convertModelToJSON()}}),this.fetchedAmount=!0},invertArray:function(a){var b,c=[],d=0;for(b=a.length-1;b>=0;b--)c[d]=a[b],d++;return c},convertModelToJSON:function(){if(!this.fetchedAmount)return void this.initTotalAmount();var a,b=this,c=[];this.collection=this.options[this.currentLoglevel],this.collection.fetch({success:function(){b.collection.each(function(b){a=new Date(1e3*b.get("timestamp")),c.push([b.getLogStatus(),arangoHelper.formatDT(a),b.get("text")])}),b.tableDescription.rows=b.invertArray(c),b.render()}})},render:function(){return $(this.el).html(this.template.render({})),$(this.id).html(this.tabbar.render({content:this.tabbarElements})),$(this.id).append(this.table.render({content:this.tableDescription})),$("#"+this.currentLoglevel).addClass("arango-active-tab"),$("#logContent").append('
    '),this.renderPagination(),this},rerender:function(){this.convertModelToJSON()}})}(),function(){"use strict";var a=function(a,b,c,d){return{type:a,title:b,callback:c,confirm:d}},b=function(a,b,c,d,e,f,g,h,i,j,k){var l={type:a,label:b};return void 0!==c&&(l.value=c),void 0!==d&&(l.info=d),void 0!==e&&(l.placeholder=e),void 0!==f&&(l.mandatory=f),void 0!==h&&(l.addDelete=h),void 0!==i&&(l.addAdd=i),void 0!==j&&(l.maxEntrySize=j),void 0!==k&&(l.tags=k),g&&(l.validateInput=function(){return g}),l};window.ModalView=Backbone.View.extend({_validators:[],_validateWatchers:[],baseTemplate:templateEngine.createTemplate("modalBase.ejs"),tableTemplate:templateEngine.createTemplate("modalTable.ejs"),el:"#modalPlaceholder",contentEl:"#modalContent",hideFooter:!1,confirm:{list:"#modal-delete-confirmation",yes:"#modal-confirm-delete",no:"#modal-abort-delete"},enabledHotkey:!1,enableHotKeys:!0,buttons:{SUCCESS:"success",NOTIFICATION:"notification",DELETE:"danger",NEUTRAL:"neutral",CLOSE:"close"},tables:{READONLY:"readonly",TEXT:"text",BLOB:"blob",PASSWORD:"password",SELECT:"select",SELECT2:"select2",CHECKBOX:"checkbox"},initialize:function(){Object.freeze(this.buttons),Object.freeze(this.tables)},createModalHotkeys:function(){$(this.el).unbind("keydown"),$(this.el).unbind("return"),$(this.el).bind("keydown","return",function(){$(".createModalDialog .modal-footer .button-success").click()}),$(".modal-body input").unbind("keydown"),$(".modal-body input").unbind("return"),$(".modal-body input",$(this.el)).bind("keydown","return",function(){$(".createModalDialog .modal-footer .button-success").click()}),$(".modal-body select").unbind("keydown"),$(".modal-body select").unbind("return"),$(".modal-body select",$(this.el)).bind("keydown","return",function(){$(".createModalDialog .modal-footer .button-success").click()})},createInitModalHotkeys:function(){var a=this;$(this.el).bind("keydown","left",function(){a.navigateThroughButtons("left")}),$(this.el).bind("keydown","right",function(){a.navigateThroughButtons("right")})},navigateThroughButtons:function(a){var b=$(".createModalDialog .modal-footer button").is(":focus");b===!1?"left"===a?$(".createModalDialog .modal-footer button").first().focus():"right"===a&&$(".createModalDialog .modal-footer button").last().focus():b===!0&&("left"===a?$(":focus").prev().focus():"right"===a&&$(":focus").next().focus())},createCloseButton:function(b,c){var d=this;return a(this.buttons.CLOSE,b,function(){d.hide(),c&&c()})},createSuccessButton:function(b,c){return a(this.buttons.SUCCESS,b,c)},createNotificationButton:function(b,c){return a(this.buttons.NOTIFICATION,b,c)},createDeleteButton:function(b,c,d){return a(this.buttons.DELETE,b,c,d)},createNeutralButton:function(b,c){return a(this.buttons.NEUTRAL,b,c)},createDisabledButton:function(b){var c=a(this.buttons.NEUTRAL,b);return c.disabled=!0,c},createReadOnlyEntry:function(a,c,d,e,f,g){var h=b(this.tables.READONLY,c,d,e,void 0,void 0,void 0,f,g);return h.id=a,h},createTextEntry:function(a,c,d,e,f,g,h){var i=b(this.tables.TEXT,c,d,e,f,g,h);return i.id=a,i},createBlobEntry:function(a,c,d,e,f,g,h){var i=b(this.tables.BLOB,c,d,e,f,g,h);return i.id=a,i},createSelect2Entry:function(a,c,d,e,f,g,h,i,j,k){var l=b(this.tables.SELECT2,c,d,e,f,g,void 0,h,i,j,k);return l.id=a,l},createPasswordEntry:function(a,c,d,e,f,g,h){var i=b(this.tables.PASSWORD,c,d,e,f,g,h);return i.id=a,i},createCheckboxEntry:function(a,c,d,e,f){var g=b(this.tables.CHECKBOX,c,d,e);return g.id=a,f&&(g.checked=f),g},createSelectEntry:function(a,c,d,e,f){var g=b(this.tables.SELECT,c,null,e);return g.id=a,d&&(g.selected=d),g.options=f,g},createOptionEntry:function(a,b){return{label:a,value:b||a}},show:function(a,b,c,d,e,f,g,h,i,j){var k,l,m=this,n=!1;c=c||[],h=Boolean(h),this.clearValidators(),c.length>0?(c.forEach(function(a){a.type===m.buttons.CLOSE&&(n=!0),a.type===m.buttons.DELETE&&(l=l||a.confirm)}),n||(k=c.pop(),c.push(m.createCloseButton("Cancel")),c.push(k))):c.push(m.createCloseButton("Close")),j?($("#"+j).html(this.baseTemplate.render({title:b,buttons:c,hideFooter:this.hideFooter,confirm:l,tabBar:i})),$("#"+j+" #modal-dialog").removeClass("fade hide modal"),$("#"+j+" .modal-header").remove(),$("#"+j+" .modal-tabbar").remove(),$("#"+j+" .modal-tabbar").remove(),$("#"+j+" .button-close").remove(),0===$("#"+j+" .modal-footer").children().length&&$("#"+j+" .modal-footer").remove()):$(this.el).html(this.baseTemplate.render({title:b,buttons:c,hideFooter:this.hideFooter,confirm:l,tabBar:i})),_.each(c,function(a,b){return!a.disabled&&a.callback?a.type!==m.buttons.DELETE||h?void $("#modalButton"+b).bind("click",a.callback):void $("#modalButton"+b).bind("click",function(){$(m.confirm.yes).unbind("click"),$(m.confirm.yes).bind("click",a.callback),$(m.confirm.list).css("display","block")}):void 0}),$(this.confirm.no).bind("click",function(){$(m.confirm.list).css("display","none")});var o;if("string"==typeof a)o=templateEngine.createTemplate(a),j?$("#"+j+" .createModalDialog .modal-body").html(o.render({content:d,advancedContent:e,info:f})):$("#modalPlaceholder .createModalDialog .modal-body").html(o.render({content:d,advancedContent:e,info:f}));else{var p=0;_.each(a,function(a){o=templateEngine.createTemplate(a),$(".createModalDialog .modal-body .tab-content #"+i[p]).html(o.render({content:d,advancedContent:e,info:f})),p++})}$(".createModalDialog .modalTooltips").tooltip({position:{my:"left top",at:"right+55 top-1"}});var q=d||[];e&&e.content&&(q=q.concat(e.content)),_.each(q,function(a){m.modalBindValidation(a),a.type===m.tables.SELECT2&&$("#"+a.id).select2({tags:a.tags||[],showSearchBox:!1,minimumResultsForSearch:-1,width:"336px",maximumSelectionSize:a.maxEntrySize||8})}),g&&(this.events=g,this.delegateEvents()),$("#accordion2")&&($("#accordion2 .accordion-toggle").bind("click",function(){$("#collapseOne").is(":visible")?($("#collapseOne").hide(),setTimeout(function(){$(".accordion-toggle").addClass("collapsed")},100)):($("#collapseOne").show(),setTimeout(function(){$(".accordion-toggle").removeClass("collapsed")},100))}),$("#collapseOne").hide(),setTimeout(function(){$(".accordion-toggle").addClass("collapsed")},100)),j||$("#modal-dialog").modal("show"),this.enabledHotkey===!1&&(this.createInitModalHotkeys(),this.enabledHotkey=!0),this.enableHotKeys&&this.createModalHotkeys();var r=$("#modal-dialog").find("input");r&&setTimeout(function(){var a=$("#modal-dialog");a.length>0&&(a=a.find("input"),a.length>0&&$(a[0]).focus())},400)},modalBindValidation:function(a){var b=this;if(a.hasOwnProperty("id")&&a.hasOwnProperty("validateInput")){var c=function(){var b=$("#"+a.id),c=a.validateInput(b),d=!1;return _.each(c,function(a){var c=b.val();if(a.rule||(a={rule:a}),"function"==typeof a.rule)try{a.rule(c)}catch(e){d=a.msg||e.message}else{var f=Joi.validate(c,a.rule);f.error&&(d=a.msg||f.error.message)}return d?!1:void 0}),d?d:void 0},d=$("#"+a.id);d.on("keyup focusout",function(){var a=c(),e=d.next()[0];a?(d.addClass("invalid-input"),e?$(e).text(a):d.after('

    '+a+"

    "),$(".createModalDialog .modal-footer .button-success").prop("disabled",!0).addClass("disabled")):(d.removeClass("invalid-input"),e&&$(e).remove(),b.modalTestAll())}),this._validators.push(c),this._validateWatchers.push(d)}},modalTestAll:function(){var a=_.map(this._validators,function(a){return a()}),b=_.any(a);return b?$(".createModalDialog .modal-footer .button-success").prop("disabled",!0).addClass("disabled"):$(".createModalDialog .modal-footer .button-success").prop("disabled",!1).removeClass("disabled"),!b},clearValidators:function(){this._validators=[],_.each(this._validateWatchers,function(a){a.unbind("keyup focusout")}),this._validateWatchers=[]},hide:function(){this.clearValidators(),$("#modal-dialog").modal("hide")}})}(),function(){"use strict";window.NavigationView=Backbone.View.extend({el:"#navigationBar",subEl:"#subNavigationBar",events:{"change #arangoCollectionSelect":"navigateBySelect","click .tab":"navigateByTab","click li":"switchTab","click .arangodbLogo":"selectMenuItem","mouseenter .dropdown > *":"showDropdown","click .shortcut-icons p":"showShortcutModal","mouseleave .dropdown":"hideDropdown"},renderFirst:!0,activeSubMenu:void 0,changeDB:function(){window.location.hash="#login"},initialize:function(a){var b=this;this.userCollection=a.userCollection,this.currentDB=a.currentDB,this.dbSelectionView=new window.DBSelectionView({collection:a.database,current:this.currentDB}),this.userBarView=new window.UserBarView({userCollection:this.userCollection}),this.notificationView=new window.NotificationView({collection:a.notificationCollection}),this.statisticBarView=new window.StatisticBarView({currentDB:this.currentDB}),this.isCluster=a.isCluster,this.handleKeyboardHotkeys(),Backbone.history.on("all",function(){b.selectMenuItem()})},showShortcutModal:function(){arangoHelper.hotkeysFunctions.showHotkeysModal()},handleSelectDatabase:function(){this.dbSelectionView.render($("#dbSelect"))},template:templateEngine.createTemplate("navigationView.ejs"),templateSub:templateEngine.createTemplate("subNavigationView.ejs"),render:function(){var a=this;$(this.el).html(this.template.render({currentDB:this.currentDB,isCluster:this.isCluster})),"_system"!==this.currentDB.get("name")&&$("#dashboard").parent().remove(),$(this.subEl).html(this.templateSub.render({currentDB:this.currentDB.toJSON()})),this.dbSelectionView.render($("#dbSelect"));var b=function(a){a||this.userBarView.render()}.bind(this);return this.userCollection.whoAmI(b),this.renderFirst&&(this.renderFirst=!1,this.selectMenuItem(),$(".arangodbLogo").on("click",function(){a.selectMenuItem()}),$("#dbStatus").on("click",function(){a.changeDB()})),this},navigateBySelect:function(){var a=$("#arangoCollectionSelect").find("option:selected").val();window.App.navigate(a,{trigger:!0})},handleKeyboardHotkeys:function(){arangoHelper.enableKeyboardHotkeys(!0)},navigateByTab:function(a){var b=a.target||a.srcElement,c=b.id,d=!1;$(b).hasClass("fa")||(""===c&&(c=$(b).attr("class")),"links"===c?(d=!0,$("#link_dropdown").slideToggle(1),a.preventDefault()):"tools"===c?(d=!0,$("#tools_dropdown").slideToggle(1),a.preventDefault()):"dbselection"===c&&(d=!0,$("#dbs_dropdown").slideToggle(1),a.preventDefault()),d||(window.App.navigate(c,{trigger:!0}),a.preventDefault()))},handleSelectNavigation:function(){var a=this;$("#arangoCollectionSelect").change(function(){a.navigateBySelect()})},subViewConfig:{documents:"collections",collection:"collections"},subMenuConfig:{cluster:[{name:"Dashboard",view:void 0,active:!0},{name:"Logs",view:void 0,disabled:!0}],collections:[{name:"",view:void 0,active:!1}],queries:[{name:"Editor",route:"query",active:!0},{name:"Running Queries",route:"queryManagement",params:{active:!0},active:void 0},{name:"Slow Query History",route:"queryManagement",params:{active:!1},active:void 0}]},renderSubMenu:function(a){var b=this;if(void 0===a&&(a=window.isCluster?"cluster":"dashboard"),this.subMenuConfig[a]){$(this.subEl+" .bottom").html("");var c="";_.each(this.subMenuConfig[a],function(a){c=a.active?"active":"",a.disabled&&(c="disabled"),$(b.subEl+" .bottom").append('"),a.disabled||$(b.subEl+" .bottom").children().last().bind("click",function(c){b.activeSubMenu=a,b.renderSubView(a,c)})})}},renderSubView:function(a,b){window.App[a.route]&&(window.App[a.route].resetState&&window.App[a.route].resetState(),window.App[a.route]()),$(this.subEl+" .bottom").children().removeClass("active"),$(b.currentTarget).addClass("active")},switchTab:function(a){var b=$(a.currentTarget).children().first().attr("id");b&&this.selectMenuItem(b+"-menu")},selectMenuItem:function(a,b){void 0===a&&(a=window.location.hash.split("/")[0],a=a.substr(1,a.length-1)),""===a?a=window.App.isCluster?"cluster":"dashboard":("cNodes"===a||"dNodes"===a)&&(a="nodes");try{this.renderSubMenu(a.split("-")[0])}catch(c){this.renderSubMenu(a)}$(".navlist li").removeClass("active"),"string"==typeof a&&(b?$("."+this.subViewConfig[a]+"-menu").addClass("active"):a&&($("."+a).addClass("active"),$("."+a+"-menu").addClass("active"))),arangoHelper.hideArangoNotifications()},showSubDropdown:function(a){console.log($(a.currentTarget)),console.log($(a.currentTarget).find(".subBarDropdown")),$(a.currentTarget).find(".subBarDropdown").toggle()},showDropdown:function(a){var b=a.target||a.srcElement,c=b.id;"links"===c||"link_dropdown"===c||"links"===a.currentTarget.id?$("#link_dropdown").fadeIn(1):"tools"===c||"tools_dropdown"===c||"tools"===a.currentTarget.id?$("#tools_dropdown").fadeIn(1):("dbselection"===c||"dbs_dropdown"===c||"dbselection"===a.currentTarget.id)&&$("#dbs_dropdown").fadeIn(1)},hideDropdown:function(a){var b=a.target||a.srcElement;b=$(b).parent(),$("#link_dropdown").fadeOut(1),$("#tools_dropdown").fadeOut(1),$("#dbs_dropdown").fadeOut(1)}})}(),function(){"use strict";window.NodeView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("nodeView.ejs"),interval:5e3,dashboards:[],events:{},initialize:function(a){window.App.isCluster&&(this.coordinators=a.coordinators,this.dbServers=a.dbServers,this.coordname=a.coordname,this.updateServerTime(),window.setInterval(function(){if(0===window.location.hash.indexOf("#node/"));},this.interval))},breadcrumb:function(a){$("#subNavigationBar .breadcrumb").html("Node: "+a)},render:function(){this.$el.html(this.template.render({coords:[]}));var a=function(){this.continueRender(),this.breadcrumb(this.coordname),$(window).trigger("resize")}.bind(this),b=function(){console.log("")};this.initCoordDone||this.waitForCoordinators(b),this.initDBDone?(this.coordname=window.location.hash.split("/")[1],this.coordinator=this.coordinators.findWhere({name:this.coordname}),a()):this.waitForDBServers(a)},continueRender:function(){var a=this;this.dashboards[this.coordinator.get("name")]=new window.DashboardView({dygraphConfig:window.dygraphConfig,database:window.App.arangoDatabase,serverToShow:{raw:this.coordinator.get("address"),isDBServer:!1,endpoint:this.coordinator.get("protocol")+"://"+this.coordinator.get("address"),target:this.coordinator.get("name")}}),this.dashboards[this.coordinator.get("name")].render(),window.setTimeout(function(){a.dashboards[a.coordinator.get("name")].resize()},500)},waitForCoordinators:function(a){var b=this;window.setTimeout(function(){0===b.coordinators.length?b.waitForCoordinators(a):(b.coordinator=b.coordinators.findWhere({name:b.coordname}),b.initCoordDone=!0,a())},200)},waitForDBServers:function(a){var b=this;window.setTimeout(function(){0===b.dbServers[0].length?b.waitForDBServers(a):(b.initDBDone=!0,b.dbServer=b.dbServers[0],b.dbServer.each(function(a){"DBServer1"===a.get("name")&&(b.dbServer=a)}),a())},200)},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),function(){"use strict";window.NodesView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("nodesView.ejs"),interval:5e3,knownServers:[],events:{"click #nodesContent .pure-table-body .pure-table-row":"navigateToNode"},initialize:function(a){var b=this;clearInterval(this.intervalFunction),window.App.isCluster&&(this.dbServers=a.dbServers,this.coordinators=a.coordinators,this.updateServerTime(),this.toRender=a.toRender,this.intervalFunction=window.setInterval(function(){("#cNodes"===window.location.hash||"#dNodes"===window.location.hash||"#nodes"===window.location.hash)&&b.checkNodesState()},this.interval))},checkNodesState:function(){var a=function(a){_.each(a,function(a,b){_.each($(".pure-table-row"),function(c){$(c).attr("node")===b&&("GOOD"===a.Status?($(c).removeClass("noHover"),$(c).find(".state").html('')):($(c).addClass("noHover"),$(c).find(".state").html('')))})})}.bind(this);$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,async:!0,success:function(b){a(b.Health)}})},navigateToNode:function(a){if("#dNodes"!==window.location.hash&&!$(a.currentTarget).hasClass("noHover")){var b=$(a.currentTarget).attr("node");window.App.navigate("#node/"+encodeURIComponent(b),{trigger:!0})}},render:function(){var a=function(){this.continueRender()}.bind(this);this.initDoneCoords?a():this.waitForCoordinators(a)},continueRender:function(){var a;a="coordinator"===this.toRender?this.coordinators.toJSON():this.dbServers.toJSON(),this.$el.html(this.template.render({coords:a,type:this.toRender})),window.arangoHelper.buildNodesSubNav(this.toRender),this.checkNodesState()},waitForCoordinators:function(a){var b=this;window.setTimeout(function(){0===b.coordinators.length?b.waitForCoordinators(a):(this.initDoneCoords=!0,a())},200)},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),function(){"use strict";window.NotificationView=Backbone.View.extend({events:{"click .navlogo #stat_hd":"toggleNotification","click .notificationItem .fa":"removeNotification","click #removeAllNotifications":"removeAllNotifications"},initialize:function(){this.collection.bind("add",this.renderNotifications.bind(this)),this.collection.bind("remove",this.renderNotifications.bind(this)),this.collection.bind("reset",this.renderNotifications.bind(this)),window.setTimeout(function(){frontendConfig.authenticationEnabled===!1&&window.arangoHelper.arangoWarning("Warning","Authentication is disabled. Do not use this setup in production mode.")},2e3)},notificationItem:templateEngine.createTemplate("notificationItem.ejs"),el:"#notificationBar",template:templateEngine.createTemplate("notificationView.ejs"),toggleNotification:function(){var a=this.collection.length;0!==a&&$("#notification_menu").toggle()},removeAllNotifications:function(){$.noty.clearQueue(),$.noty.closeAll(),this.collection.reset(),$("#notification_menu").hide()},removeNotification:function(a){var b=a.target.id;this.collection.get(b).destroy()},renderNotifications:function(a,b,c){if(c&&c.add){var d,e=this.collection.at(this.collection.length-1),f=e.get("title"),g=3e3,h=["click"];if(e.get("content")&&(f=f+": "+e.get("content")),"error"===e.get("type")?(g=!1,h=["button"],d=[{addClass:"button-danger",text:"Close",onClick:function(a){a.close()}}]):"warning"===e.get("type")&&(g=2e4),$.noty.clearQueue(),$.noty.closeAll(),noty({theme:"relax",text:f,template:'
    ',maxVisible:1,closeWith:["click"],type:e.get("type"),layout:"bottom",timeout:g,buttons:d,animation:{open:{height:"show"},close:{height:"hide"},easing:"swing",speed:200,closeWith:h}}),"success"===e.get("type"))return void e.destroy()}$("#stat_hd_counter").text(this.collection.length),0===this.collection.length?($("#stat_hd").removeClass("fullNotification"),$("#notification_menu").hide()):$("#stat_hd").addClass("fullNotification"),$(".innerDropdownInnerUL").html(this.notificationItem.render({notifications:this.collection})),$(".notificationInfoIcon").tooltip({position:{my:"left top",at:"right+55 top-1"}})},render:function(){return $(this.el).html(this.template.render({notifications:this.collection})),this.renderNotifications(),this.delegateEvents(),this.el}})}(),function(){"use strict";window.ProgressView=Backbone.View.extend({template:templateEngine.createTemplate("progressBase.ejs"),el:"#progressPlaceholder",el2:"#progressPlaceholderIcon",toShow:!1,lastDelay:0,action:function(){},events:{"click .progress-action button":"performAction"},performAction:function(){"function"==typeof this.action&&this.action(),window.progressView.hide()},initialize:function(){},showWithDelay:function(a,b,c,d){var e=this;e.toShow=!0,e.lastDelay=a,setTimeout(function(){e.toShow===!0&&e.show(b,c,d)},e.lastDelay)},show:function(a,b,c){$(this.el).html(this.template.render({})),$(".progress-text").text(a),c?$(".progress-action").html('"):$(".progress-action").html(''),b?this.action=b:this.action=this.hide(),$(this.el).show()},hide:function(){var a=this;a.toShow=!1,$(this.el).hide(),this.action=function(){}}})}(),function(){"use strict";window.queryManagementView=Backbone.View.extend({el:"#content",id:"#queryManagementContent",templateActive:templateEngine.createTemplate("queryManagementViewActive.ejs"),templateSlow:templateEngine.createTemplate("queryManagementViewSlow.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),active:!0,shouldRender:!0,timer:0,refreshRate:2e3,initialize:function(){var a=this;this.activeCollection=new window.QueryManagementActive,this.slowCollection=new window.QueryManagementSlow,this.convertModelToJSON(!0),window.setInterval(function(){"#queries"===window.location.hash&&window.VISIBLE&&a.shouldRender&&"queryManagement"===arangoHelper.getCurrentSub().route&&(a.active?$("#arangoQueryManagementTable").is(":visible")&&a.convertModelToJSON(!0):$("#arangoQueryManagementTable").is(":visible")&&a.convertModelToJSON(!1))},a.refreshRate)},events:{"click #deleteSlowQueryHistory":"deleteSlowQueryHistoryModal","click #arangoQueryManagementTable .fa-minus-circle":"deleteRunningQueryModal"},tableDescription:{id:"arangoQueryManagementTable",titles:["ID","Query String","Runtime","Started",""],rows:[],unescaped:[!1,!1,!1,!1,!0]},deleteRunningQueryModal:function(a){this.killQueryId=$(a.currentTarget).attr("data-id");var b=[],c=[];c.push(window.modalView.createReadOnlyEntry(void 0,"Running Query","Do you want to kill the running query?",void 0,void 0,!1,void 0)),b.push(window.modalView.createDeleteButton("Kill",this.killRunningQuery.bind(this))),window.modalView.show("modalTable.ejs","Kill Running Query",b,c),$(".modal-delete-confirmation strong").html("Really kill?")},killRunningQuery:function(){this.collection.killRunningQuery(this.killQueryId,this.killRunningQueryCallback.bind(this)),window.modalView.hide()},killRunningQueryCallback:function(){this.convertModelToJSON(!0),this.renderActive()},deleteSlowQueryHistoryModal:function(){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry(void 0,"Slow Query Log","Do you want to delete the slow query log entries?",void 0,void 0,!1,void 0)),a.push(window.modalView.createDeleteButton("Delete",this.deleteSlowQueryHistory.bind(this))),window.modalView.show("modalTable.ejs","Delete Slow Query Log",a,b)},deleteSlowQueryHistory:function(){this.collection.deleteSlowQueryHistory(this.slowQueryCallback.bind(this)),window.modalView.hide()},slowQueryCallback:function(){this.convertModelToJSON(!1),this.renderSlow()},render:function(){var a=arangoHelper.getCurrentSub();a.params.active?(this.active=!0,this.convertModelToJSON(!0)):(this.active=!1,this.convertModelToJSON(!1))},addEvents:function(){var a=this;$("#queryManagementContent tbody").on("mousedown",function(){clearTimeout(a.timer),a.shouldRender=!1}),$("#queryManagementContent tbody").on("mouseup",function(){a.timer=window.setTimeout(function(){a.shouldRender=!0},3e3)})},renderActive:function(){this.$el.html(this.templateActive.render({})),$(this.id).append(this.table.render({content:this.tableDescription})),$("#activequeries").addClass("arango-active-tab"),this.addEvents()},renderSlow:function(){this.$el.html(this.templateSlow.render({})),$(this.id).append(this.table.render({content:this.tableDescription})),$("#slowqueries").addClass("arango-active-tab"),this.addEvents()},convertModelToJSON:function(a){var b=this,c=[];a===!0?this.collection=this.activeCollection:this.collection=this.slowCollection,this.collection.fetch({success:function(){b.collection.each(function(b){var d="";a&&(d=''),c.push([b.get("id"),b.get("query"),b.get("runTime").toFixed(2)+" s",b.get("started"),d])});var d="No running queries.";a||(d="No slow queries."),0===c.length&&c.push([d,"","","",""]),b.tableDescription.rows=c,a?b.renderActive():b.renderSlow()}})}})}(),function(){"use strict";window.queryView=Backbone.View.extend({el:"#content",id:"#customsDiv",warningTemplate:templateEngine.createTemplate("warningList.ejs"),tabArray:[],execPending:!1,initialize:function(){this.refreshAQL(),this.tableDescription.rows=this.customQueries},events:{"click #result-switch":"switchTab","click #query-switch":"switchTab","click #customs-switch":"switchTab","click #submitQueryButton":"submitQuery","click #explainQueryButton":"explainQuery","click #commentText":"commentText","click #uncommentText":"uncommentText","click #undoText":"undoText","click #redoText":"redoText","click #smallOutput":"smallOutput","click #bigOutput":"bigOutput","click #clearOutput":"clearOutput","click #clearInput":"clearInput","click #clearQueryButton":"clearInput","click #addAQL":"addAQL","mouseover #querySelect":function(){this.refreshAQL(!0)},"change #querySelect":"importSelected","keypress #aqlEditor":"aqlShortcuts","click #arangoQueryTable .table-cell0":"editCustomQuery","click #arangoQueryTable .table-cell1":"editCustomQuery","click #arangoQueryTable .table-cell2 a":"deleteAQL","click #confirmQueryImport":"importCustomQueries","click #confirmQueryExport":"exportCustomQueries","click #export-query":"exportCustomQueries","click #import-query":"openExportDialog","click #closeQueryModal":"closeExportDialog","click #downloadQueryResult":"downloadQueryResult"},openExportDialog:function(){$("#queryImportDialog").modal("show")},closeExportDialog:function(){$("#queryImportDialog").modal("hide")},createCustomQueryModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("new-query-name","Name","",void 0,void 0,!1,[{rule:Joi.string().required(),msg:"No query name given."}])),a.push(window.modalView.createSuccessButton("Save",this.saveAQL.bind(this))),window.modalView.show("modalTable.ejs","Save Query",a,b,void 0,void 0,{"keyup #new-query-name":this.listenKey.bind(this)})},updateTable:function(){this.tableDescription.rows=this.customQueries,_.each(this.tableDescription.rows,function(a){a.thirdRow='',a.hasOwnProperty("parameter")&&delete a.parameter}),this.tableDescription.unescaped=[!1,!1,!0],this.$(this.id).html(this.table.render({content:this.tableDescription}))},editCustomQuery:function(a){var b=$(a.target).parent().children().first().text(),c=ace.edit("aqlEditor"),d=ace.edit("varsEditor");c.setValue(this.getCustomQueryValueByName(b)), +d.setValue(JSON.stringify(this.getCustomQueryParameterByName(b))),this.deselect(d),this.deselect(c),$("#querySelect").val(b),this.switchTab("query-switch")},initTabArray:function(){var a=this;$(".arango-tab").children().each(function(){a.tabArray.push($(this).children().first().attr("id"))})},listenKey:function(a){13===a.keyCode&&this.saveAQL(a),this.checkSaveName()},checkSaveName:function(){var a=$("#new-query-name").val();if("Insert Query"===a)return void $("#new-query-name").val("");var b=this.customQueries.some(function(b){return b.name===a});b?($("#modalButton1").removeClass("button-success"),$("#modalButton1").addClass("button-warning"),$("#modalButton1").text("Update")):($("#modalButton1").removeClass("button-warning"),$("#modalButton1").addClass("button-success"),$("#modalButton1").text("Save"))},clearOutput:function(){var a=ace.edit("queryOutput");a.setValue("")},clearInput:function(){var a=ace.edit("aqlEditor"),b=ace.edit("varsEditor");this.setCachedQuery(a.getValue(),b.getValue()),a.setValue(""),b.setValue("")},smallOutput:function(){var a=ace.edit("queryOutput");a.getSession().foldAll()},bigOutput:function(){var a=ace.edit("queryOutput");a.getSession().unfold()},aqlShortcuts:function(a){a.ctrlKey&&13===a.keyCode?this.submitQuery():a.metaKey&&!a.ctrlKey&&13===a.keyCode&&this.submitQuery()},queries:[],customQueries:[],tableDescription:{id:"arangoQueryTable",titles:["Name","Content",""],rows:[]},template:templateEngine.createTemplate("queryView.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),render:function(){var a=this;this.$el.html(this.template.render({})),this.$(this.id).html(this.table.render({content:this.tableDescription}));var b=1e3,c=$("#querySize");c.empty(),[100,250,500,1e3,2500,5e3,1e4,"all"].forEach(function(a){c.append('")});var d=ace.edit("queryOutput");d.setReadOnly(!0),d.setHighlightActiveLine(!1),d.getSession().setMode("ace/mode/json"),d.setFontSize("13px"),d.setValue("");var e=ace.edit("aqlEditor");e.getSession().setMode("ace/mode/aql"),e.setFontSize("13px"),e.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"});var f=ace.edit("varsEditor");f.getSession().setMode("ace/mode/aql"),f.setFontSize("13px"),f.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"});var g=this.getCachedQuery();null!==g&&void 0!==g&&""!==g&&(e.setValue(g.query),""===g.parameter||void 0===g?f.setValue("{}"):f.setValue(g.parameter));var h=function(){var b=e.getSession(),c=e.getCursorPosition(),d=b.getTokenAt(c.row,c.column);d&&("comment"===d.type?$("#commentText i").removeClass("fa-comment").addClass("fa-comment-o").attr("data-original-title","Uncomment"):$("#commentText i").removeClass("fa-comment-o").addClass("fa-comment").attr("data-original-title","Comment"));var g=e.getValue(),h=f.getValue();1===g.length&&(g=""),1===h.length&&(h=""),a.setCachedQuery(g,h)};e.getSession().selection.on("changeCursor",function(){h()}),f.getSession().selection.on("changeCursor",function(){h()}),$("#queryOutput").resizable({handles:"s",ghost:!0,stop:function(){setTimeout(function(){var a=ace.edit("queryOutput");a.resize()},200)}}),arangoHelper.fixTooltips(".vars-editor-header i, .queryTooltips, .icon_arangodb","top"),$("#aqlEditor .ace_text-input").focus();var i=$(window).height()-295;return $("#aqlEditor").height(i-100-29),$("#varsEditor").height(100),$("#queryOutput").height(i),e.resize(),d.resize(),this.initTabArray(),this.renderSelectboxes(),this.deselect(f),this.deselect(d),this.deselect(e),$("#queryDiv").show(),$("#customsDiv").show(),this.initQueryImport(),this.switchTab("query-switch"),this},getCachedQuery:function(){if("undefined"!==Storage){var a=localStorage.getItem("cachedQuery");if(void 0!==a){var b=JSON.parse(a);return b}}},setCachedQuery:function(a,b){if("undefined"!==Storage){var c={query:a,parameter:b};localStorage.setItem("cachedQuery",JSON.stringify(c))}},initQueryImport:function(){var a=this;a.allowUpload=!1,$("#importQueries").change(function(b){a.files=b.target.files||b.dataTransfer.files,a.file=a.files[0],a.allowUpload=!0,$("#confirmQueryImport").removeClass("disabled")})},importCustomQueries:function(){var a=this;if(this.allowUpload===!0){var b=function(){this.collection.fetch({success:function(){a.updateLocalQueries(),a.renderSelectboxes(),a.updateTable(),a.allowUpload=!1,$("#customs-switch").click(),$("#confirmQueryImport").addClass("disabled"),$("#queryImportDialog").modal("hide")},error:function(a){arangoHelper.arangoError("Custom Queries",a.responseText)}})}.bind(this);a.collection.saveImportQueries(a.file,b.bind(this))}},downloadQueryResult:function(){var a=ace.edit("aqlEditor"),b=a.getValue();""!==b||void 0!==b||null!==b?window.open("query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:b})))):arangoHelper.arangoError("Query error","could not query result.")},exportCustomQueries:function(){var a,b={},c=[];_.each(this.customQueries,function(a){c.push({name:a.name,value:a.value,parameter:a.parameter})}),b={extra:{queries:c}},$.ajax("whoAmI?_="+Date.now()).success(function(b){a=b.user,(null===a||a===!1)&&(a="root"),window.open("query/download/"+encodeURIComponent(a))})},deselect:function(a){var b=a.getSelection(),c=b.lead.row,d=b.lead.column;b.setSelectionRange({start:{row:c,column:d},end:{row:c,column:d}}),a.focus()},addAQL:function(){this.refreshAQL(!0),this.createCustomQueryModal(),$("#new-query-name").val($("#querySelect").val()),setTimeout(function(){$("#new-query-name").focus()},500),this.checkSaveName()},getAQL:function(a){var b=this;this.collection.fetch({success:function(){var c=localStorage.getItem("customQueries");if(c){var d=JSON.parse(c);_.each(d,function(a){b.collection.add({value:a.value,name:a.name})});var e=function(a,b){a?arangoHelper.arangoError("Custom Queries","Could not import old local storage queries"):localStorage.removeItem("customQueries")}.bind(b);b.collection.saveCollectionQueries(e)}b.updateLocalQueries(),a&&a()}})},deleteAQL:function(a){var b=function(a){a?arangoHelper.arangoError("Query","Could not delete query."):(this.updateLocalQueries(),this.renderSelectboxes(),this.updateTable())}.bind(this),c=$(a.target).parent().parent().parent().children().first().text(),d=this.collection.findWhere({name:c});this.collection.remove(d),this.collection.saveCollectionQueries(b)},updateLocalQueries:function(){var a=this;this.customQueries=[],this.collection.each(function(b){a.customQueries.push({name:b.get("name"),value:b.get("value"),parameter:b.get("parameter")})})},saveAQL:function(a){a.stopPropagation(),this.refreshAQL();var b=ace.edit("aqlEditor"),c=ace.edit("varsEditor"),d=$("#new-query-name").val(),e=c.getValue();if(!$("#new-query-name").hasClass("invalid-input")&&""!==d.trim()){var f=b.getValue(),g=!1;if($.each(this.customQueries,function(a,b){return b.name===d?(b.value=f,void(g=!0)):void 0}),g===!0)this.collection.findWhere({name:d}).set("value",f);else{if((""===e||void 0===e)&&(e="{}"),"string"==typeof e)try{e=JSON.parse(e)}catch(h){console.log("could not parse bind parameter")}this.collection.add({name:d,parameter:e,value:f})}var i=function(a){if(a)arangoHelper.arangoError("Query","Could not save query");else{var b=this;this.collection.fetch({success:function(){b.updateLocalQueries(),b.renderSelectboxes(),$("#querySelect").val(d)}})}}.bind(this);this.collection.saveCollectionQueries(i),window.modalView.hide()}},getSystemQueries:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:"js/arango/aqltemplates.json",contentType:"application/json",processData:!1,success:function(c){a&&a(!1),b.queries=c},error:function(){a&&a(!0),arangoHelper.arangoNotification("Query","Error while loading system templates")}})},getCustomQueryValueByName:function(a){return this.collection.findWhere({name:a}).get("value")},getCustomQueryParameterByName:function(a){return this.collection.findWhere({name:a}).get("parameter")},refreshAQL:function(a){var b=this,c=function(c){if(c)arangoHelper.arangoError("Query","Could not reload Queries");else if(b.updateLocalQueries(),a){var d=$("#querySelect").val();b.renderSelectboxes(),$("#querySelect").val(d)}}.bind(b),d=function(){b.getSystemQueries(c)}.bind(b);this.getAQL(d)},importSelected:function(a){var b=ace.edit("aqlEditor"),c=ace.edit("varsEditor");_.each(this.queries,function(d){$("#"+a.currentTarget.id).val()===d.name&&(b.setValue(d.value),d.hasOwnProperty("parameter")?((""===d.parameter||void 0===d.parameter)&&(d.parameter="{}"),"object"==typeof d.parameter?c.setValue(JSON.stringify(d.parameter)):c.setValue(d.parameter)):c.setValue("{}"))}),_.each(this.customQueries,function(d){$("#"+a.currentTarget.id).val()===d.name&&(b.setValue(d.value),d.hasOwnProperty("parameter")?((""===d.parameter||void 0===d.parameter||"{}"===JSON.stringify(d.parameter))&&(d.parameter="{}"),c.setValue(d.parameter)):c.setValue("{}"))}),this.deselect(ace.edit("varsEditor")),this.deselect(ace.edit("aqlEditor"))},renderSelectboxes:function(){this.sortQueries();var a="";a="#querySelect",$(a).empty(),$(a).append(''),$(a).append(''),jQuery.each(this.queries,function(b,c){$(a).append('")}),$(a).append(""),this.customQueries.length>0&&($(a).append(''),jQuery.each(this.customQueries,function(b,c){$(a).append('")}),$(a).append(""))},undoText:function(){var a=ace.edit("aqlEditor");a.undo()},redoText:function(){var a=ace.edit("aqlEditor");a.redo()},commentText:function(){var a=ace.edit("aqlEditor");a.toggleCommentLines()},sortQueries:function(){this.queries=_.sortBy(this.queries,"name"),this.customQueries=_.sortBy(this.customQueries,"name")},readQueryData:function(){var a=ace.edit("aqlEditor"),b=ace.edit("varsEditor"),c=a.session.getTextRange(a.getSelectionRange()),d=$("#querySize"),e={query:c||a.getValue(),id:"currentFrontendQuery"};"all"!==d.val()&&(e.batchSize=parseInt(d.val(),10));var f=b.getValue();if(f.length>0)try{var g=JSON.parse(f);0!==Object.keys(g).length&&(e.bindVars=g)}catch(h){return arangoHelper.arangoError("Query error","Could not parse bind parameters."),!1}return JSON.stringify(e)},heatmapColors:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"],heatmap:function(a){return this.heatmapColors[Math.floor(10*a)]},followQueryPath:function(a,b){var c={},d=0;c[b[0].id]=a;var e,f,g,h;for(e=1;e0&&(b+="Warnings:\r\n\r\n",a.extra.warnings.forEach(function(a){b+="["+a.code+"], '"+a.message+"'\r\n"})),""!==b&&(b+="\r\nResult:\r\n\r\n"),d.setValue(b+JSON.stringify(a.result,void 0,2))},g=function(a){f(a),c.switchTab("result-switch"),window.progressView.hide();var e="-";a&&a.extra&&a.extra.stats&&(e=a.extra.stats.executionTime.toFixed(3)+" s"),$(".queryExecutionTime").text("Execution time: "+e),c.deselect(d),$("#downloadQueryResult").show(),"function"==typeof b&&b()},h=function(){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a,b,d){201===d.status?g(a):204===d.status&&(c.checkQueryTimer=window.setTimeout(function(){h()},500))},error:function(a){try{var b=JSON.parse(a.responseText);b.errorMessage&&arangoHelper.arangoError("Query",b.errorMessage)}catch(c){arangoHelper.arangoError("Query","Something went wrong.")}window.progressView.hide()}})};h()},fillResult:function(a){var b=this,c=ace.edit("queryOutput");c.setValue("");var d=this.readQueryData();d&&$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),headers:{"x-arango-async":"store"},data:d,contentType:"application/json",processData:!1,success:function(c,d,e){e.getResponseHeader("x-arango-async-id")&&b.queryCallbackFunction(e.getResponseHeader("x-arango-async-id"),a),$.noty.clearQueue(),$.noty.closeAll()},error:function(d){b.switchTab("result-switch"),$("#downloadQueryResult").hide();try{var e=JSON.parse(d.responseText);c.setValue("["+e.errorNum+"] "+e.errorMessage)}catch(f){c.setValue("ERROR"),arangoHelper.arangoError("Query error","ERROR")}window.progressView.hide(),"function"==typeof a&&a()}})},submitQuery:function(){var a=ace.edit("queryOutput");this.fillResult(this.switchTab.bind(this,"result-switch")),a.resize();var b=ace.edit("aqlEditor");this.deselect(b),$("#downloadQueryResult").show()},explainQuery:function(){this.fillExplain()},switchTab:function(a){var b;b="string"==typeof a?a:a.target.id;var c=this,d=function(a){var d="#"+a.replace("-switch",""),e="#tabContent"+d.charAt(1).toUpperCase()+d.substr(2);a===b?($("#"+a).parent().addClass("active"),$(d).addClass("active"),$(e).show(),"query-switch"===b?$("#aqlEditor .ace_text-input").focus():"result-switch"===b&&c.execPending&&c.fillResult()):($("#"+a).parent().removeClass("active"),$(d).removeClass("active"),$(e).hide())};this.tabArray.forEach(d),this.updateTable()}})}(),function(){"use strict";window.queryView2=Backbone.View.extend({el:"#content",bindParamId:"#bindParamEditor",myQueriesId:"#queryTable",template:templateEngine.createTemplate("queryView2.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),outputDiv:"#outputEditors",outputTemplate:templateEngine.createTemplate("queryViewOutput.ejs"),outputCounter:0,allowUpload:!1,customQueries:[],queries:[],state:{lastQuery:{query:void 0,bindParam:void 0}},settings:{aqlWidth:void 0},currentQuery:{},initDone:!1,bindParamRegExp:/@(@?\w+\d*)/,bindParamTableObj:{},bindParamTableDesc:{id:"arangoBindParamTable",titles:["Key","Value"],rows:[]},myQueriesTableDesc:{id:"arangoMyQueriesTable",titles:["Name","Actions"],rows:[]},execPending:!1,aqlEditor:null,queryPreview:null,initialize:function(){this.refreshAQL()},allowParamToggle:!0,events:{"click #executeQuery":"executeQuery","click #explainQuery":"explainQuery","click #clearQuery":"clearQuery","click .outputEditorWrapper #downloadQueryResult":"downloadQueryResult","click .outputEditorWrapper .switchAce":"switchAce","click .outputEditorWrapper .fa-close":"closeResult","click #toggleQueries1":"toggleQueries","click #toggleQueries2":"toggleQueries","click #saveCurrentQuery":"addAQL","click #exportQuery":"exportCustomQueries","click #importQuery":"openImportDialog","click #removeResults":"removeResults","click #querySpotlight":"showSpotlight","click #deleteQuery":"selectAndDeleteQueryFromTable","click #explQuery":"selectAndExplainQueryFromTable","keydown #arangoBindParamTable input":"updateBindParams","change #arangoBindParamTable input":"updateBindParams","click #arangoMyQueriesTable tbody tr":"showQueryPreview","dblclick #arangoMyQueriesTable tbody tr":"selectQueryFromTable","click #arangoMyQueriesTable #copyQuery":"selectQueryFromTable","click #closeQueryModal":"closeExportDialog","click #confirmQueryImport":"importCustomQueries","click #switchTypes":"toggleBindParams","click #arangoMyQueriesTable #runQuery":"selectAndRunQueryFromTable"},clearQuery:function(){this.aqlEditor.setValue("",1)},toggleBindParams:function(){this.allowParamToggle?($("#bindParamEditor").toggle(),$("#bindParamAceEditor").toggle(),"JSON"===$("#switchTypes").text()?($("#switchTypes").text("Table"),this.updateQueryTable(),this.bindParamAceEditor.setValue(JSON.stringify(this.bindParamTableObj,null," "),1),this.deselect(this.bindParamAceEditor)):($("#switchTypes").text("JSON"),this.renderBindParamTable())):arangoHelper.arangoError("Bind parameter","Could not parse bind parameter"),this.resize()},openExportDialog:function(){$("#queryImportDialog").modal("show")},closeExportDialog:function(){$("#queryImportDialog").modal("hide")},initQueryImport:function(){var a=this;a.allowUpload=!1,$("#importQueries").change(function(b){a.files=b.target.files||b.dataTransfer.files,a.file=a.files[0],a.allowUpload=!0,$("#confirmQueryImport").removeClass("disabled")})},importCustomQueries:function(){var a=this;if(this.allowUpload===!0){var b=function(){this.collection.fetch({success:function(){a.updateLocalQueries(),a.updateQueryTable(),a.resize(),a.allowUpload=!1,$("#confirmQueryImport").addClass("disabled"),$("#queryImportDialog").modal("hide")},error:function(a){arangoHelper.arangoError("Custom Queries",a.responseText)}})}.bind(this);a.collection.saveImportQueries(a.file,b.bind(this))}},removeResults:function(){$(".outputEditorWrapper").hide("fast",function(){$(".outputEditorWrapper").remove()}),$("#removeResults").hide()},getCustomQueryParameterByName:function(a){return this.collection.findWhere({name:a}).get("parameter")},getCustomQueryValueByName:function(a){var b;return a&&(b=this.collection.findWhere({name:a})),b?b=b.get("value"):_.each(this.queries,function(c){c.name===a&&(b=c.value)}),b},openImportDialog:function(){$("#queryImportDialog").modal("show")},closeImportDialog:function(){$("#queryImportDialog").modal("hide")},exportCustomQueries:function(){var a;$.ajax("whoAmI?_="+Date.now()).success(function(b){a=b.user,(null===a||a===!1)&&(a="root"),window.open("query/download/"+encodeURIComponent(a))})},toggleQueries:function(a){a&&"toggleQueries1"===a.currentTarget.id?(this.updateQueryTable(),$("#bindParamAceEditor").hide(),$("#bindParamEditor").show(),$("#switchTypes").text("JSON"),$(".aqlEditorWrapper").first().width(.33*$(window).width()),this.queryPreview.setValue("No query selected.",1),this.deselect(this.queryPreview)):void 0===this.settings.aqlWidth?$(".aqlEditorWrapper").first().width(.33*$(window).width()):$(".aqlEditorWrapper").first().width(this.settings.aqlWidth),this.resize();var b=["aqlEditor","queryTable","previewWrapper","querySpotlight","bindParamEditor","toggleQueries1","toggleQueries2","saveCurrentQuery","querySize","executeQuery","switchTypes","explainQuery","importQuery","exportQuery"];_.each(b,function(a){$("#"+a).toggle()}),this.resize()},showQueryPreview:function(a){$("#arangoMyQueriesTable tr").removeClass("selected"),$(a.currentTarget).addClass("selected");var b=this.getQueryNameFromTable(a);this.queryPreview.setValue(this.getCustomQueryValueByName(b),1),this.deselect(this.queryPreview)},getQueryNameFromTable:function(a){var b;return $(a.currentTarget).is("tr")?b=$(a.currentTarget).children().first().text():$(a.currentTarget).is("span")&&(b=$(a.currentTarget).parent().parent().prev().text()),b},deleteQueryModal:function(a){var b=[],c=[];c.push(window.modalView.createReadOnlyEntry(void 0,a,"Do you want to delete the query?",void 0,void 0,!1,void 0)),b.push(window.modalView.createDeleteButton("Delete",this.deleteAQL.bind(this,a))),window.modalView.show("modalTable.ejs","Delete Query",b,c)},selectAndDeleteQueryFromTable:function(a){var b=this.getQueryNameFromTable(a);this.deleteQueryModal(b)},selectAndExplainQueryFromTable:function(a){this.selectQueryFromTable(a,!1),this.explainQuery()},selectAndRunQueryFromTable:function(a){this.selectQueryFromTable(a,!1),this.executeQuery()},selectQueryFromTable:function(a,b){var c=this.getQueryNameFromTable(a),d=this;void 0===b&&this.toggleQueries(),this.state.lastQuery.query=this.aqlEditor.getValue(),this.state.lastQuery.bindParam=this.bindParamTableObj,this.aqlEditor.setValue(this.getCustomQueryValueByName(c),1),this.fillBindParamTable(this.getCustomQueryParameterByName(c)),this.updateBindParams(),$("#lastQuery").remove(),$("#queryContent .arangoToolbarTop .pull-left").append('Previous Query'),$("#lastQuery").hide().fadeIn(500).on("click",function(){d.aqlEditor.setValue(d.state.lastQuery.query,1),d.fillBindParamTable(d.state.lastQuery.bindParam),d.updateBindParams(),$("#lastQuery").fadeOut(500,function(){$(this).remove()})})},deleteAQL:function(a){var b=function(a){a?arangoHelper.arangoError("Query","Could not delete query."):(this.updateLocalQueries(),this.updateQueryTable(),this.resize(),window.modalView.hide())}.bind(this),c=this.collection.findWhere({name:a});this.collection.remove(c),this.collection.saveCollectionQueries(b)},switchAce:function(a){var b=$(a.currentTarget).attr("counter");"Result"===$(a.currentTarget).text()?$(a.currentTarget).text("AQL"):$(a.currentTarget).text("Result"),$("#outputEditor"+b).toggle(),$("#sentWrapper"+b).toggle(),this.deselect(ace.edit("outputEditor"+b)),this.deselect(ace.edit("sentQueryEditor"+b)),this.deselect(ace.edit("sentBindParamEditor"+b))},downloadQueryResult:function(a){var b=$(a.currentTarget).attr("counter"),c=ace.edit("sentQueryEditor"+b),d=c.getValue();""!==d||void 0!==d||null!==d?0===Object.keys(this.bindParamTableObj).length?window.open("query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d})))):window.open("query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d,bindVars:this.bindParamTableObj})))):arangoHelper.arangoError("Query error","could not query result.")},explainQuery:function(){if(!this.verifyQueryAndParams()){this.$(this.outputDiv).prepend(this.outputTemplate.render({counter:this.outputCounter,type:"Explain"}));var a=this.outputCounter,b=ace.edit("outputEditor"+a),c=ace.edit("sentQueryEditor"+a),d=ace.edit("sentBindParamEditor"+a);c.getSession().setMode("ace/mode/aql"),c.setOption("vScrollBarAlwaysVisible",!0),c.setReadOnly(!0),this.setEditorAutoHeight(c),b.setReadOnly(!0),b.getSession().setMode("ace/mode/json"),b.setOption("vScrollBarAlwaysVisible",!0),this.setEditorAutoHeight(b),d.setValue(JSON.stringify(this.bindParamTableObj),1),d.setOption("vScrollBarAlwaysVisible",!0),d.getSession().setMode("ace/mode/json"),d.setReadOnly(!0),this.setEditorAutoHeight(d),this.fillExplain(b,c,a),this.outputCounter++}},fillExplain:function(a,b,c){b.setValue(this.aqlEditor.getValue(),1);var d=this,e=this.readQueryData();if($("#outputEditorWrapper"+c+" .queryExecutionTime").text(""),this.execPending=!1,e){var f=function(){$("#outputEditorWrapper"+c+" #spinner").remove(),$("#outputEditor"+c).css("opacity","1"),$("#outputEditorWrapper"+c+" .fa-close").show(),$("#outputEditorWrapper"+c+" .switchAce").show()};$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_admin/aardvark/query/explain/"),data:e,contentType:"application/json",processData:!1,success:function(b){b.msg.includes("errorMessage")?(d.removeOutputEditor(c),arangoHelper.arangoError("Explain",b.msg)):(a.setValue(b.msg,1),d.deselect(a),$.noty.clearQueue(),$.noty.closeAll(),d.handleResult(c)),f()},error:function(a){try{var b=JSON.parse(a.responseText);arangoHelper.arangoError("Explain",b.errorMessage)}catch(e){arangoHelper.arangoError("Explain","ERROR")}d.handleResult(c),d.removeOutputEditor(c),f()}})}},removeOutputEditor:function(a){$("#outputEditorWrapper"+a).hide(),$("#outputEditorWrapper"+a).remove(),0===$(".outputEditorWrapper").length&&$("#removeResults").hide()},getCachedQueryAfterRender:function(){var a=this.getCachedQuery(),b=this;if(null!==a&&void 0!==a&&""!==a&&(this.aqlEditor.setValue(a.query,1),this.aqlEditor.getSession().setUndoManager(new ace.UndoManager),""!==a.parameter||void 0!==a))try{b.bindParamTableObj=JSON.parse(a.parameter);var c;_.each($("#arangoBindParamTable input"),function(a){c=$(a).attr("name"),$(a).val(b.bindParamTableObj[c])}),b.setCachedQuery(b.aqlEditor.getValue(),JSON.stringify(b.bindParamTableObj))}catch(d){}},getCachedQuery:function(){if("undefined"!==Storage){var a=localStorage.getItem("cachedQuery");if(void 0!==a){var b=JSON.parse(a);this.currentQuery=b;try{this.bindParamTableObj=JSON.parse(b.parameter)}catch(c){}return b}}},setCachedQuery:function(a,b){if("undefined"!==Storage){var c={query:a,parameter:b};this.currentQuery=c,localStorage.setItem("cachedQuery",JSON.stringify(c))}},closeResult:function(a){var b=$("#"+$(a.currentTarget).attr("element")).parent();$(b).hide("fast",function(){$(b).remove(),0===$(".outputEditorWrapper").length&&$("#removeResults").hide()})},fillSelectBoxes:function(){var a=1e3,b=$("#querySize");b.empty(),[100,250,500,1e3,2500,5e3,1e4,"all"].forEach(function(c){b.append('")})},render:function(){this.$el.html(this.template.render({})),this.afterRender(),this.initDone||(this.settings.aqlWidth=$(".aqlEditorWrapper").width()),this.initDone=!0,this.renderBindParamTable(!0)},afterRender:function(){var a=this;this.initAce(),this.initTables(),this.fillSelectBoxes(),this.makeResizeable(),this.initQueryImport(),this.getCachedQueryAfterRender(),$(".inputEditorWrapper").height($(window).height()/10*5+25),window.setTimeout(function(){a.resize()},10),a.deselect(a.aqlEditor)},showSpotlight:function(a){var b,c;if((void 0===a||"click"===a.type)&&(a="aql"),"aql"===a)b=function(a){this.aqlEditor.insert(a),$("#aqlEditor .ace_text-input").focus()}.bind(this),c=function(){$("#aqlEditor .ace_text-input").focus()};else{var d=$(":focus");b=function(a){var b=$(d).val();$(d).val(b+a),$(d).focus()}.bind(this),c=function(){$(d).focus()}}window.spotlightView.show(b,c,a)},resize:function(){this.resizeFunction()},resizeFunction:function(){$("#toggleQueries1").is(":visible")?(this.aqlEditor.resize(),$("#arangoBindParamTable thead").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable thead th").css("width",$("#bindParamEditor").width()/2),$("#arangoBindParamTable tr").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable tbody").css("height",$("#aqlEditor").height()-35),$("#arangoBindParamTable tbody").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable tbody tr").css("width",$("#bindParamEditor").width()),$("#arangoBindParamTable tbody td").css("width",$("#bindParamEditor").width()/2)):(this.queryPreview.resize(),$("#arangoMyQueriesTable thead").css("width",$("#queryTable").width()),$("#arangoMyQueriesTable thead th").css("width",$("#queryTable").width()/2),$("#arangoMyQueriesTable tr").css("width",$("#queryTable").width()),$("#arangoMyQueriesTable tbody").css("height",$("#queryTable").height()-35),$("#arangoMyQueriesTable tbody").css("width",$("#queryTable").width()),$("#arangoMyQueriesTable tbody td").css("width",$("#queryTable").width()/2))},makeResizeable:function(){var a=this;$(".aqlEditorWrapper").resizable({resize:function(){a.resizeFunction(),a.settings.aqlWidth=$(".aqlEditorWrapper").width()},handles:"e"}),$(".inputEditorWrapper").resizable({resize:function(){a.resizeFunction()},handles:"s"}),this.resizeFunction()},initTables:function(){this.$(this.bindParamId).html(this.table.render({content:this.bindParamTableDesc})),this.$(this.myQueriesId).html(this.table.render({content:this.myQueriesTableDesc}))},checkType:function(a){var b="stringtype";try{a=JSON.parse(a),b=a instanceof Array?"arraytype":typeof a+"type"}catch(c){}return b},updateBindParams:function(a){var b,c=this;if(a){b=$(a.currentTarget).attr("name"),this.bindParamTableObj[b]=arangoHelper.parseInput(a.currentTarget);var d=["arraytype","objecttype","booleantype","numbertype","stringtype"];_.each(d,function(b){$(a.currentTarget).removeClass(b)}),$(a.currentTarget).addClass(c.checkType($(a.currentTarget).val()))}else _.each($("#arangoBindParamTable input"),function(a){b=$(a).attr("name"),c.bindParamTableObj[b]=arangoHelper.parseInput(a)});this.setCachedQuery(this.aqlEditor.getValue(),JSON.stringify(this.bindParamTableObj)),a&&((a.ctrlKey||a.metaKey)&&13===a.keyCode&&(a.preventDefault(),this.executeQuery()),(a.ctrlKey||a.metaKey)&&32===a.keyCode&&(a.preventDefault(),this.showSpotlight("bind")))},parseQuery:function(a){var b=0,c=1,d=2,e=3,f=4,g=5,h=6,i=7;a+=" ";var j,k,l,m=this,n=b,o=a.length,p=[];for(k=0;o>k;++k)switch(l=a.charAt(k),n){case b:"@"===l?(n=h,j=k):"'"===l?n=c:'"'===l?n=d:"`"===l?n=e:"´"===l?n=i:"/"===l&&o>k+1&&("/"===a.charAt(k+1)?(n=f,++k):"*"===a.charAt(k+1)&&(n=g,++k));break;case f:("\r"===l||"\n"===l)&&(n=b);break;case g:"*"===l&&o>=k+1&&"/"===a.charAt(k+1)&&(n=b,++k);break;case c:"\\"===l?++k:"'"===l&&(n=b);break;case d:"\\"===l?++k:'"'===l&&(n=b);break;case e:"`"===l&&(n=b);break;case i:"´"===l&&(n=b);break;case h:/^[@a-zA-Z0-9_]+$/.test(l)||(p.push(a.substring(j,k)),n=b,j=void 0)}var q;return _.each(p,function(a,b){q=a.match(m.bindParamRegExp),q&&(p[b]=q[1])}),{query:a,bindParams:p}},checkForNewBindParams:function(){var a=this,b=this.parseQuery(this.aqlEditor.getValue()).bindParams,c={};_.each(b,function(b){a.bindParamTableObj[b]?c[b]=a.bindParamTableObj[b]:c[b]=""}),Object.keys(b).forEach(function(b){Object.keys(a.bindParamTableObj).forEach(function(d){b===d&&(c[b]=a.bindParamTableObj[d])})}),a.bindParamTableObj=c},renderBindParamTable:function(a){$("#arangoBindParamTable tbody").html(""),a&&this.getCachedQuery();var b=0;_.each(this.bindParamTableObj,function(a,c){$("#arangoBindParamTable tbody").append(""+c+"'),b++,_.each($("#arangoBindParamTable input"),function(b){$(b).attr("name")===c&&(a instanceof Array?$(b).val(JSON.stringify(a)).addClass("arraytype"):"object"==typeof a?$(b).val(JSON.stringify(a)).addClass(typeof a+"type"):$(b).val(a).addClass(typeof a+"type"))})}),0===b&&$("#arangoBindParamTable tbody").append('No bind parameters defined.')},fillBindParamTable:function(a){_.each(a,function(a,b){_.each($("#arangoBindParamTable input"),function(c){$(c).attr("name")===b&&$(c).val(a)})})},initAce:function(){var a=this;this.aqlEditor=ace.edit("aqlEditor"),this.aqlEditor.getSession().setMode("ace/mode/aql"),this.aqlEditor.setFontSize("10pt"),this.aqlEditor.setShowPrintMargin(!1),this.bindParamAceEditor=ace.edit("bindParamAceEditor"),this.bindParamAceEditor.getSession().setMode("ace/mode/json"),this.bindParamAceEditor.setFontSize("10pt"),this.bindParamAceEditor.setShowPrintMargin(!1),this.bindParamAceEditor.getSession().on("change",function(){try{a.bindParamTableObj=JSON.parse(a.bindParamAceEditor.getValue()),a.allowParamToggle=!0,a.setCachedQuery(a.aqlEditor.getValue(),JSON.stringify(a.bindParamTableObj))}catch(b){""===a.bindParamAceEditor.getValue()?(_.each(a.bindParamTableObj,function(b,c){ +a.bindParamTableObj[c]=""}),a.allowParamToggle=!0):a.allowParamToggle=!1}}),this.aqlEditor.getSession().on("change",function(){a.checkForNewBindParams(),a.renderBindParamTable(),a.initDone&&a.setCachedQuery(a.aqlEditor.getValue(),JSON.stringify(a.bindParamTableObj)),a.bindParamAceEditor.setValue(JSON.stringify(a.bindParamTableObj,null," "),1),$("#aqlEditor .ace_text-input").focus(),a.resize()}),this.aqlEditor.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"}),this.aqlEditor.commands.addCommand({name:"executeQuery",bindKey:{win:"Ctrl-Return",mac:"Command-Return",linux:"Ctrl-Return"},exec:function(){a.executeQuery()}}),this.aqlEditor.commands.addCommand({name:"saveQuery",bindKey:{win:"Ctrl-Shift-S",mac:"Command-Shift-S",linux:"Ctrl-Shift-S"},exec:function(){a.addAQL()}}),this.aqlEditor.commands.addCommand({name:"explainQuery",bindKey:{win:"Ctrl-Shift-Return",mac:"Command-Shift-Return",linux:"Ctrl-Shift-Return"},exec:function(){a.explainQuery()}}),this.aqlEditor.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"}),this.aqlEditor.commands.addCommand({name:"showSpotlight",bindKey:{win:"Ctrl-Space",mac:"Ctrl-Space",linux:"Ctrl-Space"},exec:function(){a.showSpotlight()}}),this.queryPreview=ace.edit("queryPreview"),this.queryPreview.getSession().setMode("ace/mode/aql"),this.queryPreview.setReadOnly(!0),this.queryPreview.setFontSize("13px"),$("#aqlEditor .ace_text-input").focus()},updateQueryTable:function(){function a(a,b){var c;return c=a.nameb.name?1:0}var b=this;this.updateLocalQueries(),this.myQueriesTableDesc.rows=this.customQueries,_.each(this.myQueriesTableDesc.rows,function(a){a.secondRow='',a.hasOwnProperty("parameter")&&delete a.parameter,delete a.value}),this.myQueriesTableDesc.rows.sort(a),_.each(this.queries,function(a){a.hasOwnProperty("parameter")&&delete a.parameter,b.myQueriesTableDesc.rows.push({name:a.name,thirdRow:''})}),this.myQueriesTableDesc.unescaped=[!1,!0,!0],this.$(this.myQueriesId).html(this.table.render({content:this.myQueriesTableDesc}))},listenKey:function(a){13===a.keyCode&&this.saveAQL(a),this.checkSaveName()},addAQL:function(){this.refreshAQL(!0),this.createCustomQueryModal(),setTimeout(function(){$("#new-query-name").focus()},500)},createCustomQueryModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("new-query-name","Name","",void 0,void 0,!1,[{rule:Joi.string().required(),msg:"No query name given."}])),a.push(window.modalView.createSuccessButton("Save",this.saveAQL.bind(this))),window.modalView.show("modalTable.ejs","Save Query",a,b,void 0,void 0,{"keyup #new-query-name":this.listenKey.bind(this)})},checkSaveName:function(){var a=$("#new-query-name").val();if("Insert Query"===a)return void $("#new-query-name").val("");var b=this.customQueries.some(function(b){return b.name===a});b?($("#modalButton1").removeClass("button-success"),$("#modalButton1").addClass("button-warning"),$("#modalButton1").text("Update")):($("#modalButton1").removeClass("button-warning"),$("#modalButton1").addClass("button-success"),$("#modalButton1").text("Save"))},saveAQL:function(a){a.stopPropagation(),this.refreshAQL();var b=$("#new-query-name").val(),c=this.bindParamTableObj;if(!$("#new-query-name").hasClass("invalid-input")&&""!==b.trim()){var d=this.aqlEditor.getValue(),e=!1;if(_.each(this.customQueries,function(a){return a.name===b?(a.value=d,void(e=!0)):void 0}),e===!0)this.collection.findWhere({name:b}).set("value",d);else{if((""===c||void 0===c)&&(c="{}"),"string"==typeof c)try{c=JSON.parse(c)}catch(f){arangoHelper.arangoError("Query","Could not parse bind parameter")}this.collection.add({name:b,parameter:c,value:d})}var g=function(a){if(a)arangoHelper.arangoError("Query","Could not save query");else{var b=this;this.collection.fetch({success:function(){b.updateLocalQueries()}})}}.bind(this);this.collection.saveCollectionQueries(g),window.modalView.hide()}},verifyQueryAndParams:function(){var a=!1;0===this.aqlEditor.getValue().length&&(arangoHelper.arangoError("Query","Your query is empty"),a=!0);var b=[];return _.each(this.bindParamTableObj,function(c,d){""===c&&(a=!0,b.push(d))}),b.length>0&&arangoHelper.arangoError("Bind Parameter",JSON.stringify(b)+" not defined."),a},executeQuery:function(){if(!this.verifyQueryAndParams()){this.$(this.outputDiv).prepend(this.outputTemplate.render({counter:this.outputCounter,type:"Query"})),$("#outputEditorWrapper"+this.outputCounter).hide(),$("#outputEditorWrapper"+this.outputCounter).show("fast");var a=this.outputCounter,b=ace.edit("outputEditor"+a),c=ace.edit("sentQueryEditor"+a),d=ace.edit("sentBindParamEditor"+a);c.getSession().setMode("ace/mode/aql"),c.setOption("vScrollBarAlwaysVisible",!0),c.setFontSize("13px"),c.setReadOnly(!0),this.setEditorAutoHeight(c),b.setFontSize("13px"),b.getSession().setMode("ace/mode/json"),b.setReadOnly(!0),b.setOption("vScrollBarAlwaysVisible",!0),b.setShowPrintMargin(!1),this.setEditorAutoHeight(b),d.setValue(JSON.stringify(this.bindParamTableObj),1),d.setOption("vScrollBarAlwaysVisible",!0),d.getSession().setMode("ace/mode/json"),d.setReadOnly(!0),this.setEditorAutoHeight(d),this.fillResult(b,c,a),this.outputCounter++}},readQueryData:function(){var a=$("#querySize"),b={query:this.aqlEditor.getValue(),id:"currentFrontendQuery"};return"all"===a.val()?b.batchSize=1e6:b.batchSize=parseInt(a.val(),10),Object.keys(this.bindParamTableObj).length>0&&(b.bindVars=this.bindParamTableObj),JSON.stringify(b)},fillResult:function(a,b,c){var d=this,e=this.readQueryData();e&&(b.setValue(d.aqlEditor.getValue(),1),$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),headers:{"x-arango-async":"store"},data:e,contentType:"application/json",processData:!1,success:function(b,e,f){f.getResponseHeader("x-arango-async-id")&&d.queryCallbackFunction(f.getResponseHeader("x-arango-async-id"),a,c),$.noty.clearQueue(),$.noty.closeAll(),d.handleResult(c)},error:function(a){try{var b=JSON.parse(a.responseText);arangoHelper.arangoError("["+b.errorNum+"]",b.errorMessage)}catch(e){arangoHelper.arangoError("Query error","ERROR")}d.handleResult(c)}}))},handleResult:function(){var a=this;window.progressView.hide(),$("#removeResults").show(),window.setTimeout(function(){a.aqlEditor.focus()},300),$(".centralRow").animate({scrollTop:$("#queryContent").height()},"fast")},setEditorAutoHeight:function(a){var b=$(".centralRow").height(),c=(b-250)/17;a.setOptions({maxLines:c,minLines:10})},deselect:function(a){var b=a.getSelection(),c=b.lead.row,d=b.lead.column;b.setSelectionRange({start:{row:c,column:d},end:{row:c,column:d}}),a.focus()},queryCallbackFunction:function(a,b,c){var d=this,e=function(a,b){$.ajax({url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)+"/cancel"),type:"PUT",success:function(){window.clearTimeout(d.checkQueryTimer),$("#outputEditorWrapper"+b).remove(),arangoHelper.arangoNotification("Query","Query canceled.")}})};$("#outputEditorWrapper"+c+" #cancelCurrentQuery").bind("click",function(){e(a,c)}),$("#outputEditorWrapper"+c+" #copy2aqlEditor").bind("click",function(){$("#toggleQueries1").is(":visible")||d.toggleQueries();var a=ace.edit("sentQueryEditor"+c).getValue(),b=JSON.parse(ace.edit("sentBindParamEditor"+c).getValue());d.aqlEditor.setValue(a,1),d.deselect(d.aqlEditor),Object.keys(b).length>0&&(d.bindParamTableObj=b,d.setCachedQuery(d.aqlEditor.getValue(),JSON.stringify(d.bindParamTableObj)),$("#bindParamEditor").is(":visible")?d.renderBindParamTable():(d.bindParamAceEditor.setValue(JSON.stringify(b),1),d.deselect(d.bindParamAceEditor))),$(".centralRow").animate({scrollTop:0},"fast"),d.resize()}),this.execPending=!1;var f=function(a){var c="";a.extra&&a.extra.warnings&&a.extra.warnings.length>0&&(c+="Warnings:\r\n\r\n",a.extra.warnings.forEach(function(a){c+="["+a.code+"], '"+a.message+"'\r\n"})),""!==c&&(c+="\r\nResult:\r\n\r\n"),b.setValue(c+JSON.stringify(a.result,void 0,2),1),b.getSession().setScrollTop(0)},g=function(a){f(a),window.progressView.hide();var e=function(a,b,d){d||(d=""),$("#outputEditorWrapper"+c+" .arangoToolbarTop .pull-left").append(''+a+"")};$("#outputEditorWrapper"+c+" .pull-left #spinner").remove();var g="-";a&&a.extra&&a.extra.stats&&(g=a.extra.stats.executionTime.toFixed(3)+" s"),e(a.result.length+" elements","fa-calculator"),e(g,"fa-clock-o"),a.extra&&a.extra.stats&&((a.extra.stats.writesExecuted>0||a.extra.stats.writesIgnored>0)&&(e(a.extra.stats.writesExecuted+" writes","fa-check-circle positive"),0===a.extra.stats.writesIgnored?e(a.extra.stats.writesIgnored+" writes ignored","fa-check-circle positive","additional"):e(a.extra.stats.writesIgnored+" writes ignored","fa-exclamation-circle warning","additional")),a.extra.stats.scannedFull>0?e("full collection scan","fa-exclamation-circle warning","additional"):e("no full collection scan","fa-check-circle positive","additional")),$("#outputEditorWrapper"+c+" .switchAce").show(),$("#outputEditorWrapper"+c+" .fa-close").show(),$("#outputEditor"+c).css("opacity","1"),$("#outputEditorWrapper"+c+" #downloadQueryResult").show(),$("#outputEditorWrapper"+c+" #copy2aqlEditor").show(),$("#outputEditorWrapper"+c+" #cancelCurrentQuery").remove(),d.setEditorAutoHeight(b),d.deselect(b),a.id&&$.ajax({url:"/_api/cursor/"+encodeURIComponent(a.id),type:"DELETE",error:function(a){console.log(a)}})},h=function(){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a,b,c){201===c.status?g(a):204===c.status&&(d.checkQueryTimer=window.setTimeout(function(){h()},500))},error:function(a){var b;try{if("Gone"===a.statusText)return arangoHelper.arangoNotification("Query","Query execution aborted."),void d.removeOutputEditor(c);b=JSON.parse(a.responseText),arangoHelper.arangoError("Query",b.errorMessage),b.errorMessage&&(null!==b.errorMessage.match(/\d+:\d+/g)?d.markPositionError(b.errorMessage.match(/'.*'/g)[0],b.errorMessage.match(/\d+:\d+/g)[0]):d.markPositionError(b.errorMessage.match(/\(\w+\)/g)[0]),d.removeOutputEditor(c))}catch(e){console.log(b),400!==b.code&&arangoHelper.arangoError("Query","Successfully aborted."),d.removeOutputEditor(c)}window.progressView.hide()}})};h()},markPositionError:function(a,b){var c;b&&(c=b.split(":")[0],a=a.substr(1,a.length-2));var d=this.aqlEditor.find(a);!d&&b&&(this.aqlEditor.selection.moveCursorToPosition({row:c,column:0}),this.aqlEditor.selection.selectLine()),window.setTimeout(function(){$(".ace_start").first().css("background","rgba(255, 129, 129, 0.7)")},100)},refreshAQL:function(){var a=this,b=function(b){b?arangoHelper.arangoError("Query","Could not reload Queries"):(a.updateLocalQueries(),a.updateQueryTable())}.bind(a),c=function(){a.getSystemQueries(b)}.bind(a);this.getAQL(c)},getSystemQueries:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:"js/arango/aqltemplates.json",contentType:"application/json",processData:!1,success:function(c){a&&a(!1),b.queries=c},error:function(){a&&a(!0),arangoHelper.arangoNotification("Query","Error while loading system templates")}})},updateLocalQueries:function(){var a=this;this.customQueries=[],this.collection.each(function(b){a.customQueries.push({name:b.get("name"),value:b.get("value"),parameter:b.get("parameter")})})},getAQL:function(a){var b=this;this.collection.fetch({success:function(){var c=localStorage.getItem("customQueries");if(c){var d=JSON.parse(c);_.each(d,function(a){b.collection.add({value:a.value,name:a.name})});var e=function(a){a?arangoHelper.arangoError("Custom Queries","Could not import old local storage queries"):localStorage.removeItem("customQueries")}.bind(b);b.collection.saveCollectionQueries(e)}b.updateLocalQueries(),a&&a()}})}})}(),function(){"use strict";window.ScaleView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("scaleView.ejs"),interval:5e3,knownServers:[],events:{"click #addCoord":"addCoord","click #removeCoord":"removeCoord","click #addDBs":"addDBs","click #removeDBs":"removeDBs"},setCoordSize:function(a){var b=this,c={numberOfCoordinators:a};$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",data:JSON.stringify(c),success:function(){b.updateTable(c)},error:function(){arangoHelper.arangoError("Scale","Could not set coordinator size.")}})},setDBsSize:function(a){var b=this,c={numberOfDBServers:a};$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",data:JSON.stringify(c),success:function(){b.updateTable(c)},error:function(){arangoHelper.arangoError("Scale","Could not set coordinator size.")}})},addCoord:function(){this.setCoordSize(this.readNumberFromID("#plannedCoords",!0))},removeCoord:function(){this.setCoordSize(this.readNumberFromID("#plannedCoords",!1,!0))},addDBs:function(){this.setDBsSize(this.readNumberFromID("#plannedDBs",!0))},removeDBs:function(){this.setDBsSize(this.readNumberFromID("#plannedDBs",!1,!0))},readNumberFromID:function(a,b,c){var d=$(a).html(),e=!1;try{e=JSON.parse(d)}catch(f){}return b&&e++,c&&1!==e&&e--,e},initialize:function(a){window.App.isCluster&&(this.dbServers=a.dbServers,this.coordinators=a.coordinators,this.updateServerTime(),window.setInterval(function(){if("#sNodes"===window.location.hash);},this.interval))},render:function(){var a=this,b=function(){var b=function(){a.continueRender()}.bind(this);this.waitForDBServers(b)}.bind(this);this.initDoneCoords?b():this.waitForCoordinators(b),window.arangoHelper.buildNodesSubNav("scale")},continueRender:function(){var a,b,c=this;a=this.coordinators.toJSON(),b=this.dbServers.toJSON(),this.$el.html(this.template.render({runningCoords:a.length,runningDBs:b.length,plannedCoords:void 0,plannedDBs:void 0})),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){c.updateTable(a)}})},updateTable:function(a){var b='scaling in progress',c='no scaling process active';a.numberOfCoordinators&&($("#plannedCoords").html(a.numberOfCoordinators),this.coordinators.toJSON().length===a.numberOfCoordinators?$("#statusCoords").html(c):$("#statusCoords").html(b)),a.numberOfDBServers&&($("#plannedDBs").html(a.numberOfDBServers),this.dbServers.toJSON().length===a.numberOfDBServers?$("#statusDBs").html(c):$("#statusDBs").html(b))},waitForDBServers:function(a){var b=this;0===this.dbServers.length?window.setInterval(function(){b.waitForDBServers(a)},300):a()},waitForCoordinators:function(a){var b=this;window.setTimeout(function(){0===b.coordinators.length?b.waitForCoordinators(a):(this.initDoneCoords=!0,a())},200)},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),function(){"use strict";window.SettingsView=Backbone.View.extend({el:"#content",initialize:function(a){this.collectionName=a.collectionName,this.model=this.collection},events:{},render:function(){this.breadcrumb(),window.arangoHelper.buildCollectionSubNav(this.collectionName,"Settings"),this.renderSettings()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},unloadCollection:function(){var a=function(a){a?arangoHelper.arangoError("Collection error",this.model.get("name")+" could not be unloaded."):void 0===a?(this.model.set("status","unloading"),this.render()):"#collections"===window.location.hash?(this.model.set("status","unloaded"),this.render()):arangoHelper.arangoNotification("Collection "+this.model.get("name")+" unloaded.")}.bind(this);this.model.unloadCollection(a),window.modalView.hide()},loadCollection:function(){var a=function(a){a?arangoHelper.arangoError("Collection error",this.model.get("name")+" could not be loaded."):void 0===a?(this.model.set("status","loading"),this.render()):"#collections"===window.location.hash?(this.model.set("status","loaded"),this.render()):arangoHelper.arangoNotification("Collection "+this.model.get("name")+" loaded.")}.bind(this);this.model.loadCollection(a),window.modalView.hide()},truncateCollection:function(){this.model.truncateCollection(),window.modalView.hide()},deleteCollection:function(){this.model.destroy({error:function(){arangoHelper.arangoError("Could not delete collection.")},success:function(){window.App.navigate("#collections",{trigger:!0})}})},saveModifiedCollection:function(){var a=function(a,b){if(a)arangoHelper.arangoError("Error","Could not get coordinator info");else{var c;c=b?this.model.get("name"):$("#change-collection-name").val();var d=this.model.get("status");if("loaded"===d){var e;try{e=JSON.parse(1024*$("#change-collection-size").val()*1024)}catch(f){return arangoHelper.arangoError("Please enter a valid number"),0}var g;try{if(g=JSON.parse($("#change-index-buckets").val()),1>g||parseInt(g)!==Math.pow(2,Math.log2(g)))throw"invalid indexBuckets value"}catch(f){return arangoHelper.arangoError("Please enter a valid number of index buckets"),0}var h=function(a){a?arangoHelper.arangoError("Collection error: "+a.responseText):(arangoHelper.arangoNotification("Collection: Successfully changed."),window.App.navigate("#cSettings/"+c,{trigger:!0}))}.bind(this),i=function(a){if(a)arangoHelper.arangoError("Collection error: "+a.responseText);else{var b=$("#change-collection-sync").val();this.model.changeCollection(b,e,g,h)}}.bind(this);this.model.renameCollection(c,i)}else if("unloaded"===d)if(this.model.get("name")!==c){var j=function(a,b){a?arangoHelper.arangoError("Collection"+b.responseText):(arangoHelper.arangoNotification("CollectionSuccessfully changed."),window.App.navigate("#cSettings/"+c,{trigger:!0}))}.bind(this);this.model.renameCollection(c,j)}else window.modalView.hide()}}.bind(this);window.isCoordinator(a)},renderSettings:function(){var a=function(a,b){if(a)arangoHelper.arangoError("Error","Could not get coordinator info");else{var c=!1;"loaded"===this.model.get("status")&&(c=!0);var d=[],e=[];b||e.push(window.modalView.createTextEntry("change-collection-name","Name",this.model.get("name"),!1,"",!0,[{rule:Joi.string().regex(/^[a-zA-Z]/),msg:"Collection name must always start with a letter."},{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only Symbols "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No collection name given."}]));var f=function(){e.push(window.modalView.createReadOnlyEntry("change-collection-id","ID",this.model.get("id"),"")),e.push(window.modalView.createReadOnlyEntry("change-collection-type","Type",this.model.get("type"),"")),e.push(window.modalView.createReadOnlyEntry("change-collection-status","Status",this.model.get("status"),"")),d.push(window.modalView.createDeleteButton("Delete",this.deleteCollection.bind(this))),d.push(window.modalView.createDeleteButton("Truncate",this.truncateCollection.bind(this))),c?d.push(window.modalView.createNotificationButton("Unload",this.unloadCollection.bind(this))):d.push(window.modalView.createNotificationButton("Load",this.loadCollection.bind(this))),d.push(window.modalView.createSuccessButton("Save",this.saveModifiedCollection.bind(this)));var a=["General","Indices"],b=["modalTable.ejs","indicesView.ejs"];window.modalView.show(b,"Modify Collection",d,e,null,null,this.events,null,a,"content"),$($("#infoTab").children()[1]).remove()}.bind(this);if(c){var g=function(a,b){if(a)arangoHelper.arangoError("Collection","Could not fetch properties");else{var c=b.journalSize/1048576,d=b.indexBuckets,g=b.waitForSync;e.push(window.modalView.createTextEntry("change-collection-size","Journal size",c,"The maximal size of a journal or datafile (in MB). Must be at least 1.","",!0,[{rule:Joi.string().allow("").optional().regex(/^[0-9]*$/),msg:"Must be a number."}])),e.push(window.modalView.createTextEntry("change-index-buckets","Index buckets",d,"The number of index buckets for this collection. Must be at least 1 and a power of 2.","",!0,[{rule:Joi.string().allow("").optional().regex(/^[1-9][0-9]*$/),msg:"Must be a number greater than 1 and a power of 2."}])),e.push(window.modalView.createSelectEntry("change-collection-sync","Wait for sync",g,"Synchronize to disk before returning from a create or update of a document.",[{value:!1,label:"No"},{value:!0,label:"Yes"}]))}f()}.bind(this);this.model.getProperties(g)}else f()}}.bind(this);window.isCoordinator(a)}})}(),function(){"use strict";window.ShowClusterView=Backbone.View.extend({detailEl:"#modalPlaceholder",el:"#content",defaultFrame:12e5,template:templateEngine.createTemplate("showCluster.ejs"),modal:templateEngine.createTemplate("waitModal.ejs"),detailTemplate:templateEngine.createTemplate("detailView.ejs"),events:{"change #selectDB":"updateCollections","change #selectCol":"updateShards","click .dbserver.success":"dashboard","click .coordinator.success":"dashboard"},replaceSVGs:function(){$(".svgToReplace").each(function(){var a=$(this),b=a.attr("id"),c=a.attr("src");$.get(c,function(c){var d=$(c).find("svg");d.attr("id",b).attr("class","icon").removeAttr("xmlns:a"),a.replaceWith(d)},"xml")})},updateServerTime:function(){this.serverTime=(new Date).getTime()},setShowAll:function(){this.graphShowAll=!0},resetShowAll:function(){this.graphShowAll=!1,this.renderLineChart()},initialize:function(a){this.options=a,this.interval=1e4,this.isUpdating=!1,this.timer=null,this.knownServers=[],this.graph=void 0,this.graphShowAll=!1,this.updateServerTime(),this.dygraphConfig=this.options.dygraphConfig,this.dbservers=new window.ClusterServers([],{interval:this.interval}),this.coordinators=new window.ClusterCoordinators([],{interval:this.interval}),this.documentStore=new window.arangoDocuments,this.statisticsDescription=new window.StatisticsDescription,this.statisticsDescription.fetch({async:!1}),this.dbs=new window.ClusterDatabases([],{interval:this.interval}),this.cols=new window.ClusterCollections,this.shards=new window.ClusterShards,this.startUpdating()},listByAddress:function(a){var b={},c=this;this.dbservers.byAddress(b,function(b){c.coordinators.byAddress(b,a)})},updateCollections:function(){var a=this,b=$("#selectCol"),c=$("#selectDB").find(":selected").attr("id");if(c){var d=b.find(":selected").attr("id");b.html(""),this.cols.getList(c,function(c){_.each(_.pluck(c,"name"),function(a){b.append('")});var e=$("#"+d,b);1===e.length&&e.prop("selected",!0),a.updateShards()})}},updateShards:function(){var a=$("#selectDB").find(":selected").attr("id"),b=$("#selectCol").find(":selected").attr("id");this.shards.getList(a,b,function(a){$(".shardCounter").html("0"),_.each(a,function(a){$("#"+a.server+"Shards").html(a.shards.length)})})},updateServerStatus:function(a){var b=this,c=function(a,b,c){var d,e,f=c;f=f.replace(/\./g,"-"),f=f.replace(/\:/g,"_"),e=$("#id"+f),e.length<1||(d=e.attr("class").split(/\s+/)[1],e.attr("class",a+" "+d+" "+b),"coordinator"===a&&("success"===b?$(".button-gui",e.closest(".tile")).toggleClass("button-gui-disabled",!1):$(".button-gui",e.closest(".tile")).toggleClass("button-gui-disabled",!0)))};this.coordinators.getStatuses(c.bind(this,"coordinator"),function(){b.dbservers.getStatuses(c.bind(b,"dbserver")),a()})},updateDBDetailList:function(){var a=this,b=$("#selectDB"),c=b.find(":selected").attr("id");b.html(""),this.dbs.getList(function(d){_.each(_.pluck(d,"name"),function(a){b.append('")});var e=$("#"+c,b);1===e.length&&e.prop("selected",!0),a.updateCollections()})},rerender:function(){var a=this;this.updateServerStatus(function(){a.getServerStatistics(function(){a.updateServerTime(),a.data=a.generatePieData(),a.renderPieChart(a.data),a.renderLineChart(),a.updateDBDetailList()})})},render:function(){this.knownServers=[],delete this.hist;var a=this;this.listByAddress(function(b){1===Object.keys(b).length?a.type="testPlan":a.type="other",a.updateDBDetailList(),a.dbs.getList(function(c){$(a.el).html(a.template.render({dbs:_.pluck(c,"name"),byAddress:b,type:a.type})),$(a.el).append(a.modal.render({})),a.replaceSVGs(),a.getServerStatistics(function(){a.data=a.generatePieData(),a.renderPieChart(a.data),a.renderLineChart(),a.updateDBDetailList(),a.startUpdating()})})})},generatePieData:function(){var a=[],b=this;return this.data.forEach(function(c){a.push({key:c.get("name"),value:c.get("system").virtualSize,time:b.serverTime})}),a},addStatisticsItem:function(a,b,c,d){var e=this;e.hasOwnProperty("hist")||(e.hist={}),e.hist.hasOwnProperty(a)||(e.hist[a]=[]);var f=e.hist[a],g=f.length;if(0===g)f.push({time:b,snap:d,requests:c,requestsPerSecond:0});else{var h=f[g-1].time,i=f[g-1].requests;if(c>i){var j=b-h,k=0;j>0&&(k=(c-i)/j),f.push({time:b,snap:d,requests:c,requestsPerSecond:k})}}},getServerStatistics:function(a){var b=this,c=Math.round(b.serverTime/1e3);this.data=void 0;var d=new window.ClusterStatisticsCollection,e=this.coordinators.first();this.dbservers.forEach(function(a){if("ok"===a.get("status")){-1===b.knownServers.indexOf(a.id)&&b.knownServers.push(a.id);var c=new window.Statistics({name:a.id});c.url=e.get("protocol")+"://"+e.get("address")+"/_admin/clusterStatistics?DBserver="+a.get("name"),d.add(c)}}),this.coordinators.forEach(function(a){if("ok"===a.get("status")){-1===b.knownServers.indexOf(a.id)&&b.knownServers.push(a.id);var c=new window.Statistics({name:a.id});c.url=a.get("protocol")+"://"+a.get("address")+"/_admin/statistics",d.add(c)}});var f=d.size();this.data=[];var g=function(d){f--;var e=d.get("time"),g=d.get("name"),h=d.get("http").requestsTotal;b.addStatisticsItem(g,e,h,c),b.data.push(d),0===f&&a()},h=function(){f--,0===f&&a()};d.fetch(g,h)},renderPieChart:function(a){var b=$("#clusterGraphs svg").width(),c=$("#clusterGraphs svg").height(),d=Math.min(b,c)/2,e=this.dygraphConfig.colors,f=d3.svg.arc().outerRadius(d-20).innerRadius(0),g=d3.layout.pie().sort(function(a){return a.value}).value(function(a){return a.value});d3.select("#clusterGraphs").select("svg").remove();var h=d3.select("#clusterGraphs").append("svg").attr("class","clusterChart").append("g").attr("transform","translate("+b/2+","+(c/2-10)+")"),i=d3.svg.arc().outerRadius(d-2).innerRadius(d-2),j=h.selectAll(".arc").data(g(a)).enter().append("g").attr("class","slice");j.append("path").attr("d",f).style("fill",function(a,b){return e[b%e.length]}).style("stroke",function(a,b){return e[b%e.length]}),j.append("text").attr("transform",function(a){return"translate("+f.centroid(a)+")"}).style("text-anchor","middle").text(function(a){var b=a.data.value/1024/1024/1024;return b.toFixed(2)}),j.append("text").attr("transform",function(a){return"translate("+i.centroid(a)+")"}).style("text-anchor","middle").text(function(a){return a.data.key})},renderLineChart:function(){var a,b,c,d,e,f,g=this,h=1200,i=[],j=[],k=Math.round((new Date).getTime()/1e3)-h,l=g.knownServers,m=function(){return null};for(c=0;cf||(j.hasOwnProperty(f)?a=j[f]:(e=new Date(1e3*f),a=j[f]=[e].concat(l.map(m))),a[c+1]=b[d].requestsPerSecond);i=[],Object.keys(j).sort().forEach(function(a){i.push(j[a])});var n=this.dygraphConfig.getDefaultConfig("clusterRequestsPerSecond");n.labelsDiv=$("#lineGraphLegend")[0],n.labels=["datetime"].concat(l),g.graph=new Dygraph(document.getElementById("lineGraph"),i,n)},stopUpdating:function(){window.clearTimeout(this.timer),delete this.graph,this.isUpdating=!1},startUpdating:function(){if(!this.isUpdating){this.isUpdating=!0;var a=this;this.timer=window.setInterval(function(){a.rerender()},this.interval)}},dashboard:function(a){this.stopUpdating();var b,c,d=$(a.currentTarget),e={},f=d.attr("id");f=f.replace(/\-/g,"."),f=f.replace(/\_/g,":"),f=f.substr(2),e.raw=f,e.isDBServer=d.hasClass("dbserver"),e.isDBServer?(b=this.dbservers.findWhere({address:e.raw}),c=this.coordinators.findWhere({status:"ok"}),e.endpoint=c.get("protocol")+"://"+c.get("address")):(b=this.coordinators.findWhere({address:e.raw}),e.endpoint=b.get("protocol")+"://"+b.get("address")),e.target=encodeURIComponent(b.get("name")),window.App.serverToShow=e,window.App.dashboard()},getCurrentSize:function(a){"#"!==a.substr(0,1)&&(a="#"+a);var b,c;return $(a).attr("style",""),b=$(a).height(),c=$(a).width(),{height:b,width:c}},resize:function(){var a;this.graph&&(a=this.getCurrentSize(this.graph.maindiv_.id),this.graph.resize(a.width,a.height))}})}(),function(){"use strict";window.SpotlightView=Backbone.View.extend({template:templateEngine.createTemplate("spotlightView.ejs"),el:"#spotlightPlaceholder",displayLimit:8,typeahead:null,callbackSuccess:null,callbackCancel:null,collections:{system:[],doc:[],edge:[]},events:{"focusout #spotlight .tt-input":"hide","keyup #spotlight .typeahead":"listenKey"},aqlKeywordsArray:[],aqlBuiltinFunctionsArray:[],aqlKeywords:"for|return|filter|sort|limit|let|collect|asc|desc|in|into|insert|update|remove|replace|upsert|options|with|and|or|not|distinct|graph|outbound|inbound|any|all|none|aggregate|like|count|shortest_path",hide:function(){this.typeahead=$("#spotlight .typeahead").typeahead("destroy"),$(this.el).hide()},listenKey:function(a){27===a.keyCode?(this.hide(),this.callbackSuccess&&this.callbackCancel()):13===a.keyCode&&this.callbackSuccess&&(this.hide(),this.callbackSuccess($(this.typeahead).val()))},substringMatcher:function(a){return function(b,c){var d,e;d=[],e=new RegExp(b,"i"),_.each(a,function(a){e.test(a)&&d.push(a)}),c(d)}},updateDatasets:function(){var a=this;this.collections={system:[],doc:[],edge:[]},window.App.arangoCollectionsStore.each(function(b){b.get("isSystem")?a.collections.system.push(b.get("name")):"document"===b.get("type")?a.collections.doc.push(b.get("name")):a.collections.edge.push(b.get("name"))})},stringToArray:function(){var a=this;_.each(this.aqlKeywords.split("|"),function(b){a.aqlKeywordsArray.push(b.toUpperCase())}),a.aqlKeywordsArray.push(!0),a.aqlKeywordsArray.push(!1),a.aqlKeywordsArray.push(null)},fetchKeywords:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/aql-builtin"),contentType:"application/json",success:function(c){b.stringToArray(),b.updateDatasets(),_.each(c.functions,function(a){b.aqlBuiltinFunctionsArray.push(a.name)}),a&&a()},error:function(){a&&a(),arangoHelper.arangoError("AQL","Could not fetch AQL function definition.")}})},show:function(a,b,c){var d=this;this.callbackSuccess=a,this.callbackCancel=b;var e=function(){var a=function(a,b,c){var d='

    '+a+"

    ";return b&&(d+=''),c&&(d+=''+c.toUpperCase()+""),d+="
    "};$(this.el).html(this.template.render({})),$(this.el).show(),"aql"===c?this.typeahead=$("#spotlight .typeahead").typeahead({hint:!0,highlight:!0,minLength:1},{name:"Functions",source:this.substringMatcher(this.aqlBuiltinFunctionsArray),limit:this.displayLimit,templates:{header:a("Functions","fa-code","aql")}},{name:"Keywords",source:this.substringMatcher(this.aqlKeywordsArray),limit:this.displayLimit,templates:{header:a("Keywords","fa-code","aql")}},{name:"Documents",source:this.substringMatcher(this.collections.doc),limit:this.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:this.substringMatcher(this.collections.edge),limit:this.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System", +limit:this.displayLimit,source:this.substringMatcher(this.collections.system),templates:{header:a("System","fa-cogs","Collection")}}):this.typeahead=$("#spotlight .typeahead").typeahead({hint:!0,highlight:!0,minLength:1},{name:"Documents",source:this.substringMatcher(this.collections.doc),limit:this.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:this.substringMatcher(this.collections.edge),limit:this.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System",limit:this.displayLimit,source:this.substringMatcher(this.collections.system),templates:{header:a("System","fa-cogs","Collection")}}),$("#spotlight .typeahead").focus()}.bind(this);0===d.aqlBuiltinFunctionsArray.length?this.fetchKeywords(e):e()}})}(),function(){"use strict";window.StatisticBarView=Backbone.View.extend({el:"#statisticBar",events:{"change #arangoCollectionSelect":"navigateBySelect","click .tab":"navigateByTab"},template:templateEngine.createTemplate("statisticBarView.ejs"),initialize:function(a){this.currentDB=a.currentDB},replaceSVG:function(a){var b=a.attr("id"),c=a.attr("class"),d=a.attr("src");$.get(d,function(d){var e=$(d).find("svg");void 0===b&&(e=e.attr("id",b)),void 0===c&&(e=e.attr("class",c+" replaced-svg")),e=e.removeAttr("xmlns:a"),a.replaceWith(e)},"xml")},render:function(){var a=this;return $(this.el).html(this.template.render({isSystem:this.currentDB.get("isSystem")})),$("img.svg").each(function(){a.replaceSVG($(this))}),this},navigateBySelect:function(){var a=$("#arangoCollectionSelect").find("option:selected").val();window.App.navigate(a,{trigger:!0})},navigateByTab:function(a){var b=a.target||a.srcElement,c=b.id;return"links"===c?($("#link_dropdown").slideToggle(200),void a.preventDefault()):"tools"===c?($("#tools_dropdown").slideToggle(200),void a.preventDefault()):(window.App.navigate(c,{trigger:!0}),void a.preventDefault())},handleSelectNavigation:function(){$("#arangoCollectionSelect").change(function(){var a=$(this).find("option:selected").val();window.App.navigate(a,{trigger:!0})})},selectMenuItem:function(a){$(".navlist li").removeClass("active"),a&&$("."+a).addClass("active")}})}(),function(){"use strict";window.TableView=Backbone.View.extend({template:templateEngine.createTemplate("tableView.ejs"),loading:templateEngine.createTemplate("loadingTableView.ejs"),initialize:function(a){this.rowClickCallback=a.rowClick},events:{"click .pure-table-body .pure-table-row":"rowClick","click .deleteButton":"removeClick"},rowClick:function(a){this.hasOwnProperty("rowClickCallback")&&this.rowClickCallback(a)},removeClick:function(a){this.hasOwnProperty("removeClickCallback")&&(this.removeClickCallback(a),a.stopPropagation())},setRowClick:function(a){this.rowClickCallback=a},setRemoveClick:function(a){this.removeClickCallback=a},render:function(){$(this.el).html(this.template.render({docs:this.collection}))},drawLoading:function(){$(this.el).html(this.loading.render({}))}})}(),function(){"use strict";window.testView=Backbone.View.extend({el:"#content",graph:{edges:[],nodes:[]},events:{},initialize:function(){console.log(void 0)},template:templateEngine.createTemplate("testView.ejs"),render:function(){return $(this.el).html(this.template.render({})),this.renderGraph(),this},renderGraph:function(){this.convertData(),console.log(this.graph),this.s=new sigma({graph:this.graph,container:"graph-container",verbose:!0,renderers:[{container:document.getElementById("graph-container"),type:"webgl"}]})},convertData:function(){var a=this;return _.each(this.dump,function(b){_.each(b.p,function(c){a.graph.nodes.push({id:c.verticesvalue.v._id,label:b.v._key,x:Math.random(),y:Math.random(),size:Math.random()}),a.graph.edges.push({id:b.e._id,source:b.e._from,target:b.e._to})})}),null},dump:[{v:{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},e:{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"}]}},{v:{label:"8",_id:"circles/H",_rev:"1841664067459",_key:"H"},e:{theFalse:!1,theTruth:!0,label:"right_blob",_id:"edges/1841666295683",_rev:"1841666295683",_key:"1841666295683",_from:"circles/G",_to:"circles/H"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"8",_id:"circles/H",_rev:"1841664067459",_key:"H"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_blob",_id:"edges/1841666295683",_rev:"1841666295683",_key:"1841666295683",_from:"circles/G",_to:"circles/H"}]}},{v:{label:"9",_id:"circles/I",_rev:"1841664264067",_key:"I"},e:{theFalse:!1,theTruth:!0,label:"right_blub",_id:"edges/1841666492291",_rev:"1841666492291",_key:"1841666492291",_from:"circles/H",_to:"circles/I"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"8",_id:"circles/H",_rev:"1841664067459",_key:"H"},{label:"9",_id:"circles/I",_rev:"1841664264067",_key:"I"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_blob",_id:"edges/1841666295683",_rev:"1841666295683",_key:"1841666295683",_from:"circles/G",_to:"circles/H"},{theFalse:!1,theTruth:!0,label:"right_blub",_id:"edges/1841666492291",_rev:"1841666492291",_key:"1841666492291",_from:"circles/H",_to:"circles/I"}]}},{v:{label:"10",_id:"circles/J",_rev:"1841664460675",_key:"J"},e:{theFalse:!1,theTruth:!0,label:"right_zip",_id:"edges/1841666688899",_rev:"1841666688899",_key:"1841666688899",_from:"circles/G",_to:"circles/J"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"10",_id:"circles/J",_rev:"1841664460675",_key:"J"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_zip",_id:"edges/1841666688899",_rev:"1841666688899",_key:"1841666688899",_from:"circles/G",_to:"circles/J"}]}},{v:{label:"11",_id:"circles/K",_rev:"1841664657283",_key:"K"},e:{theFalse:!1,theTruth:!0,label:"right_zup",_id:"edges/1841666885507",_rev:"1841666885507",_key:"1841666885507",_from:"circles/J",_to:"circles/K"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"7",_id:"circles/G",_rev:"1841663870851",_key:"G"},{label:"10",_id:"circles/J",_rev:"1841664460675",_key:"J"},{label:"11",_id:"circles/K",_rev:"1841664657283",_key:"K"}],edges:[{theFalse:!1,theTruth:!0,label:"right_foo",_id:"edges/1841666099075",_rev:"1841666099075",_key:"1841666099075",_from:"circles/A",_to:"circles/G"},{theFalse:!1,theTruth:!0,label:"right_zip",_id:"edges/1841666688899",_rev:"1841666688899",_key:"1841666688899",_from:"circles/G",_to:"circles/J"},{theFalse:!1,theTruth:!0,label:"right_zup",_id:"edges/1841666885507",_rev:"1841666885507",_key:"1841666885507",_from:"circles/J",_to:"circles/K"}]}},{v:{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},e:{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"}]}},{v:{label:"5",_id:"circles/E",_rev:"1841663477635",_key:"E"},e:{theFalse:!1,theTruth:!0,label:"left_blub",_id:"edges/1841665705859",_rev:"1841665705859",_key:"1841665705859",_from:"circles/B",_to:"circles/E"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"5",_id:"circles/E",_rev:"1841663477635",_key:"E"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blub",_id:"edges/1841665705859",_rev:"1841665705859",_key:"1841665705859",_from:"circles/B",_to:"circles/E"}]}},{v:{label:"6",_id:"circles/F",_rev:"1841663674243",_key:"F"},e:{theFalse:!1,theTruth:!0,label:"left_schubi",_id:"edges/1841665902467",_rev:"1841665902467",_key:"1841665902467",_from:"circles/E",_to:"circles/F"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"5",_id:"circles/E",_rev:"1841663477635",_key:"E"},{label:"6",_id:"circles/F",_rev:"1841663674243",_key:"F"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blub",_id:"edges/1841665705859",_rev:"1841665705859",_key:"1841665705859",_from:"circles/B",_to:"circles/E"},{theFalse:!1,theTruth:!0,label:"left_schubi",_id:"edges/1841665902467",_rev:"1841665902467",_key:"1841665902467",_from:"circles/E",_to:"circles/F"}]}},{v:{label:"3",_id:"circles/C",_rev:"1841663084419",_key:"C"},e:{theFalse:!1,theTruth:!0,label:"left_blarg",_id:"edges/1841665312643",_rev:"1841665312643",_key:"1841665312643",_from:"circles/B",_to:"circles/C"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"3",_id:"circles/C",_rev:"1841663084419",_key:"C"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blarg",_id:"edges/1841665312643",_rev:"1841665312643",_key:"1841665312643",_from:"circles/B",_to:"circles/C"}]}},{v:{label:"4",_id:"circles/D",_rev:"1841663281027",_key:"D"},e:{theFalse:!1,theTruth:!0,label:"left_blorg",_id:"edges/1841665509251",_rev:"1841665509251",_key:"1841665509251",_from:"circles/C",_to:"circles/D"},p:{vertices:[{label:"1",_id:"circles/A",_rev:"1841662691203",_key:"A"},{label:"2",_id:"circles/B",_rev:"1841662887811",_key:"B"},{label:"3",_id:"circles/C",_rev:"1841663084419",_key:"C"},{label:"4",_id:"circles/D",_rev:"1841663281027",_key:"D"}],edges:[{theFalse:!1,theTruth:!0,label:"left_bar",_id:"edges/1841665116035",_rev:"1841665116035",_key:"1841665116035",_from:"circles/A",_to:"circles/B"},{theFalse:!1,theTruth:!0,label:"left_blarg",_id:"edges/1841665312643",_rev:"1841665312643",_key:"1841665312643",_from:"circles/B",_to:"circles/C"},{theFalse:!1,theTruth:!0,label:"left_blorg",_id:"edges/1841665509251",_rev:"1841665509251",_key:"1841665509251",_from:"circles/C",_to:"circles/D"}]}}]})}(),function(){"use strict";window.UserBarView=Backbone.View.extend({events:{"change #userBarSelect":"navigateBySelect","click .tab":"navigateByTab","mouseenter .dropdown":"showDropdown","mouseleave .dropdown":"hideDropdown","click #userLogoutIcon":"userLogout","click #userLogout":"userLogout"},initialize:function(a){this.userCollection=a.userCollection,this.userCollection.fetch({async:!0}),this.userCollection.bind("change:extra",this.render.bind(this))},template:templateEngine.createTemplate("userBarView.ejs"),navigateBySelect:function(){var a=$("#arangoCollectionSelect").find("option:selected").val();window.App.navigate(a,{trigger:!0})},navigateByTab:function(a){var b=a.target||a.srcElement;b=$(b).closest("a");var c=b.attr("id");return"user"===c?($("#user_dropdown").slideToggle(200),void a.preventDefault()):(window.App.navigate(c,{trigger:!0}),void a.preventDefault())},toggleUserMenu:function(){$("#userBar .subBarDropdown").toggle()},showDropdown:function(){$("#user_dropdown").fadeIn(1)},hideDropdown:function(){$("#user_dropdown").fadeOut(1)},render:function(){if(frontendConfig.authenticationEnabled!==!1){var a=this,b=function(a,b){if(a)arangoHelper.arangoErro("User","Could not fetch user.");else{var c=null,d=null,e=!1,f=null;if(b!==!1)return f=this.userCollection.findWhere({user:b}),f.set({loggedIn:!0}),d=f.get("extra").name,c=f.get("extra").img,e=f.get("active"),c=c?"https://s.gravatar.com/avatar/"+c+"?s=80":"img/default_user.png",d||(d=""),this.$el=$("#userBar"),this.$el.html(this.template.render({img:c,name:d,username:b,active:e})),this.delegateEvents(),this.$el}}.bind(this);$("#userBar").on("click",function(){a.toggleUserMenu()}),this.userCollection.whoAmI(b)}},userLogout:function(){var a=function(a){a?arangoHelper.arangoError("User","Logout error"):this.userCollection.logout()}.bind(this);this.userCollection.whoAmI(a)}})}(),function(){"use strict";window.userManagementView=Backbone.View.extend({el:"#content",el2:"#userManagementThumbnailsIn",template:templateEngine.createTemplate("userManagementView.ejs"),events:{"click #createUser":"createUser","click #submitCreateUser":"submitCreateUser","click #userManagementThumbnailsIn .tile":"editUser","click #submitEditUser":"submitEditUser","click #userManagementToggle":"toggleView","keyup #userManagementSearchInput":"search","click #userManagementSearchSubmit":"search","click #callEditUserPassword":"editUserPassword","click #submitEditUserPassword":"submitEditUserPassword","click #submitEditCurrentUserProfile":"submitEditCurrentUserProfile","click .css-label":"checkBoxes","change #userSortDesc":"sorting"},dropdownVisible:!1,initialize:function(){var a=this,b=function(a,b){frontendConfig.authenticationEnabled===!0&&(a||null===b?arangoHelper.arangoError("User","Could not fetch user data"):this.currentUser=this.collection.findWhere({user:b}))}.bind(this);this.collection.fetch({success:function(){a.collection.whoAmI(b)}})},checkBoxes:function(a){var b=a.currentTarget.id;$("#"+b).click()},sorting:function(){$("#userSortDesc").is(":checked")?this.collection.setSortingDesc(!0):this.collection.setSortingDesc(!1),$("#userManagementDropdown").is(":visible")?this.dropdownVisible=!0:this.dropdownVisible=!1,this.render()},render:function(a){var b=!1;return $("#userManagementDropdown").is(":visible")&&(b=!0),this.collection.sort(),$(this.el).html(this.template.render({collection:this.collection,searchString:""})),b===!0&&($("#userManagementDropdown2").show(),$("#userSortDesc").attr("checked",this.collection.sortOptions.desc),$("#userManagementToggle").toggleClass("activated"),$("#userManagementDropdown").show()),a&&this.editCurrentUser(),arangoHelper.setCheckboxStatus("#userManagementDropdown"),this},search:function(){var a,b,c,d;a=$("#userManagementSearchInput"),b=$("#userManagementSearchInput").val(),d=this.collection.filter(function(a){return-1!==a.get("user").indexOf(b)}),$(this.el).html(this.template.render({collection:d,searchString:b})),a=$("#userManagementSearchInput"),c=a.val().length,a.focus(),a[0].setSelectionRange(c,c)},createUser:function(a){a.preventDefault(),this.createCreateUserModal()},submitCreateUser:function(){var a=this,b=$("#newUsername").val(),c=$("#newName").val(),d=$("#newPassword").val(),e=$("#newStatus").is(":checked");if(this.validateUserInfo(c,b,d,e)){var f={user:b,passwd:d,active:e,extra:{name:c}};this.collection.create(f,{wait:!0,error:function(a,b){arangoHelper.parseError("User",b,a)},success:function(){a.updateUserManagement(),window.modalView.hide()}})}},validateUserInfo:function(a,b,c,d){return""===b?(arangoHelper.arangoError("You have to define an username"),$("#newUsername").closest("th").css("backgroundColor","red"),!1):!0},updateUserManagement:function(){var a=this;this.collection.fetch({success:function(){a.render()}})},submitDeleteUser:function(a){var b=this.collection.findWhere({user:a});b.destroy({wait:!0}),window.modalView.hide(),this.updateUserManagement()},editUser:function(a){if("createUser"!==$(a.currentTarget).find("a").attr("id")){$(a.currentTarget).hasClass("tile")&&(a.currentTarget=$(a.currentTarget).find("img")),this.collection.fetch();var b=this.evaluateUserName($(a.currentTarget).attr("id"),"_edit-user");""===b&&(b=$(a.currentTarget).attr("id"));var c=this.collection.findWhere({user:b});c.get("loggedIn")?this.editCurrentUser():this.createEditUserModal(c.get("user"),c.get("extra").name,c.get("active"))}},editCurrentUser:function(){this.createEditCurrentUserModal(this.currentUser.get("user"),this.currentUser.get("extra").name,this.currentUser.get("extra").img)},submitEditUser:function(a){var b=$("#editName").val(),c=$("#editStatus").is(":checked");if(!this.validateStatus(c))return void $("#editStatus").closest("th").css("backgroundColor","red");if(!this.validateName(b))return void $("#editName").closest("th").css("backgroundColor","red");var d=this.collection.findWhere({user:a});d.save({extra:{name:b},active:c},{type:"PATCH"}),window.modalView.hide(),this.updateUserManagement()},validateUsername:function(a){return""===a?(arangoHelper.arangoError("You have to define an username"),$("#newUsername").closest("th").css("backgroundColor","red"),!1):a.match(/^[a-zA-Z][a-zA-Z0-9_\-]*$/)?!0:(arangoHelper.arangoError("Wrong Username","Username may only contain numbers, letters, _ and -"),!1)},validatePassword:function(a){return!0},validateName:function(a){return""===a?!0:a.match(/^[a-zA-Z][a-zA-Z0-9_\-\ ]*$/)?!0:(arangoHelper.arangoError("Wrong Username","Username may only contain numbers, letters, _ and -"),!1)},validateStatus:function(a){return""===a?!1:!0},toggleView:function(){$("#userSortDesc").attr("checked",this.collection.sortOptions.desc),$("#userManagementToggle").toggleClass("activated"),$("#userManagementDropdown2").slideToggle(200)},setFilterValues:function(){},evaluateUserName:function(a,b){if(a){var c=a.lastIndexOf(b);return a.substring(0,c)}},editUserPassword:function(){window.modalView.hide(),this.createEditUserPasswordModal()},submitEditUserPassword:function(){var a=$("#oldCurrentPassword").val(),b=$("#newCurrentPassword").val(),c=$("#confirmCurrentPassword").val();$("#oldCurrentPassword").val(""),$("#newCurrentPassword").val(""),$("#confirmCurrentPassword").val(""),$("#oldCurrentPassword").closest("th").css("backgroundColor","white"),$("#newCurrentPassword").closest("th").css("backgroundColor","white"),$("#confirmCurrentPassword").closest("th").css("backgroundColor","white");var d=!1,e=function(a,e){a?arangoHelper.arangoError("User","Could not verify old password"):e&&(b!==c&&(arangoHelper.arangoError("User","New passwords do not match"),d=!0),d||(this.currentUser.setPassword(b),arangoHelper.arangoNotification("User","Password changed"),window.modalView.hide()))}.bind(this);this.currentUser.checkPassword(a,e)},submitEditCurrentUserProfile:function(){var a=$("#editCurrentName").val(),b=$("#editCurrentUserProfileImg").val();b=this.parseImgString(b);var c=function(a){a?arangoHelper.arangoError("User","Could not edit user settings"):(arangoHelper.arangoNotification("User","Changes confirmed."),this.updateUserProfile())}.bind(this);this.currentUser.setExtras(a,b,c),window.modalView.hide()},updateUserProfile:function(){var a=this;this.collection.fetch({success:function(){a.render()}})},parseImgString:function(a){return-1===a.indexOf("@")?a:CryptoJS.MD5(a).toString()},createEditUserModal:function(a,b,c){var d,e;e=[{type:window.modalView.tables.READONLY,label:"Username",value:_.escape(a)},{type:window.modalView.tables.TEXT,label:"Name",value:b,id:"editName",placeholder:"Name"},{type:window.modalView.tables.CHECKBOX,label:"Active",value:"active",checked:c,id:"editStatus"}],d=[{title:"Delete",type:window.modalView.buttons.DELETE,callback:this.submitDeleteUser.bind(this,a)},{title:"Save",type:window.modalView.buttons.SUCCESS,callback:this.submitEditUser.bind(this,a)}],window.modalView.show("modalTable.ejs","Edit User",d,e)},createCreateUserModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("newUsername","Username","",!1,"Username",!0,[{rule:Joi.string().regex(/^[a-zA-Z0-9\-_]*$/),msg:'Only symbols, "_" and "-" are allowed.'},{rule:Joi.string().required(),msg:"No username given."}])),b.push(window.modalView.createTextEntry("newName","Name","",!1,"Name",!1)),b.push(window.modalView.createPasswordEntry("newPassword","Password","",!1,"",!1)),b.push(window.modalView.createCheckboxEntry("newStatus","Active","active",!1,!0)),a.push(window.modalView.createSuccessButton("Create",this.submitCreateUser.bind(this))),window.modalView.show("modalTable.ejs","Create New User",a,b)},createEditCurrentUserModal:function(a,b,c){var d=[],e=[];e.push(window.modalView.createReadOnlyEntry("id_username","Username",a)),e.push(window.modalView.createTextEntry("editCurrentName","Name",b,!1,"Name",!1)),e.push(window.modalView.createTextEntry("editCurrentUserProfileImg","Gravatar account (Mail)",c,"Mailaddress or its md5 representation of your gravatar account. The address will be converted into a md5 string. Only the md5 string will be stored, not the mailaddress.","myAccount(at)gravatar.com")),d.push(window.modalView.createNotificationButton("Change Password",this.editUserPassword.bind(this))),d.push(window.modalView.createSuccessButton("Save",this.submitEditCurrentUserProfile.bind(this))),window.modalView.show("modalTable.ejs","Edit User Profile",d,e)},createEditUserPasswordModal:function(){var a=[],b=[];b.push(window.modalView.createPasswordEntry("oldCurrentPassword","Old Password","",!1,"old password",!1)),b.push(window.modalView.createPasswordEntry("newCurrentPassword","New Password","",!1,"new password",!1)),b.push(window.modalView.createPasswordEntry("confirmCurrentPassword","Confirm New Password","",!1,"confirm new password",!1)),a.push(window.modalView.createSuccessButton("Save",this.submitEditUserPassword.bind(this))),window.modalView.show("modalTable.ejs","Edit User Password",a,b)}})}(),function(){"use strict";window.workMonitorView=Backbone.View.extend({el:"#content",id:"#workMonitorContent",template:templateEngine.createTemplate("workMonitorView.ejs"),table:templateEngine.createTemplate("arangoTable.ejs"),initialize:function(){},events:{},tableDescription:{id:"workMonitorTable",titles:["Type","Database","Task ID","Started","Url","User","Description","Method"],rows:[],unescaped:[!1,!1,!1,!1,!1,!1,!1,!1]},render:function(){var a=this;this.$el.html(this.template.render({})),this.collection.fetch({success:function(){a.parseTableData(),$(a.id).append(a.table.render({content:a.tableDescription}))}})},parseTableData:function(){var a=this;this.collection.each(function(b){if("AQL query"===b.get("type")){var c=b.get("parent");if(c)try{a.tableDescription.rows.push([b.get("type"),"(p) "+c.database,"(p) "+c.taskId,"(p) "+c.startTime,"(p) "+c.url,"(p) "+c.user,b.get("description"),"(p) "+c.method])}catch(d){console.log("some parse error")}}else"thread"!==b.get("type")&&a.tableDescription.rows.push([b.get("type"),b.get("database"),b.get("taskId"),b.get("startTime"),b.get("url"),b.get("user"),b.get("description"),b.get("method")])})}})}(),function(){"use strict";window.Router=Backbone.Router.extend({toUpdate:[],dbServers:[],isCluster:void 0,routes:{"":"cluster",dashboard:"dashboard",collections:"collections","new":"newCollection",login:"login","collection/:colid/documents/:pageid":"documents","cIndices/:colname":"cIndices","cSettings/:colname":"cSettings","cInfo/:colname":"cInfo","collection/:colid/:docid":"document",shell:"shell",queries:"query",workMonitor:"workMonitor",databases:"databases",settings:"databases",services:"applications","service/:mount":"applicationDetail",graphs:"graphManagement","graphs/:name":"showGraph",users:"userManagement",userProfile:"userProfile",cluster:"cluster",nodes:"cNodes",cNodes:"cNodes",dNodes:"dNodes",sNodes:"sNodes","node/:name":"node",logs:"logs",helpus:"helpUs"},execute:function(a,b){$("#subNavigationBar .breadcrumb").html(""),$("#subNavigationBar .bottom").html(""),$("#loadingScreen").hide(),$("#content").show(),a&&a.apply(this,b)},checkUser:function(){if("#login"!==window.location.hash){var a=function(){this.initOnce(),$(".bodyWrapper").show(),$(".navbar").show()}.bind(this),b=function(b,c){frontendConfig.authenticationEnabled&&(b||null===c)?"#login"!==window.location.hash&&this.navigate("login",{trigger:!0}):a()}.bind(this);frontendConfig.authenticationEnabled?this.userCollection.whoAmI(b):(this.initOnce(),$(".bodyWrapper").show(),$(".navbar").show())}},waitForInit:function(a,b,c){this.initFinished?(b||a(!0),b&&!c&&a(b,!0),b&&c&&a(b,c,!0)):setTimeout(function(){b||a(!1),b&&!c&&a(b,!1),b&&c&&a(b,c,!1)},350)},initFinished:!1,initialize:function(){frontendConfig.isCluster===!0&&(this.isCluster=!0),window.modalView=new window.ModalView,this.foxxList=new window.FoxxCollection,window.foxxInstallView=new window.FoxxInstallView({collection:this.foxxList}),window.progressView=new window.ProgressView;var a=this;this.userCollection=new window.ArangoUsers,this.initOnce=function(){this.initOnce=function(){};var b=function(b,c){a=this,c===!0&&a.coordinatorCollection.fetch({success:function(){a.fetchDBS()}})}.bind(this);window.isCoordinator(b),frontendConfig.isCluster===!1&&(this.initFinished=!0),this.arangoDatabase=new window.ArangoDatabase,this.currentDB=new window.CurrentDatabase,this.arangoCollectionsStore=new window.arangoCollections,this.arangoDocumentStore=new window.arangoDocument,this.coordinatorCollection=new window.ClusterCoordinators,arangoHelper.setDocumentStore(this.arangoDocumentStore),this.arangoCollectionsStore.fetch(),window.spotlightView=new window.SpotlightView({collection:this.arangoCollectionsStore}),this.footerView=new window.FooterView({collection:a.coordinatorCollection}),this.notificationList=new window.NotificationCollection,this.currentDB.fetch({success:function(){a.naviView=new window.NavigationView({database:a.arangoDatabase,currentDB:a.currentDB,notificationCollection:a.notificationList,userCollection:a.userCollection,isCluster:a.isCluster}),a.naviView.render()}}),this.queryCollection=new window.ArangoQueries,this.footerView.render(),window.checkVersion(),this.documentsView=new window.DocumentsView({collection:new window.arangoDocuments,documentStore:this.arangoDocumentStore,collectionsStore:this.arangoCollectionsStore})}.bind(this),$(window).resize(function(){a.handleResize()}),$(window).scroll(function(){})},handleScroll:function(){$(window).scrollTop()>50?($(".navbar > .secondary").css("top",$(window).scrollTop()),$(".navbar > .secondary").css("position","absolute"),$(".navbar > .secondary").css("z-index","10"),$(".navbar > .secondary").css("width",$(window).width())):($(".navbar > .secondary").css("top","0"),$(".navbar > .secondary").css("position","relative"),$(".navbar > .secondary").css("width",""))},cluster:function(a){return this.checkUser(),a?this.isCluster===!1||void 0===this.isCluster?void("_system"===this.currentDB.get("name")?(this.routes[""]="dashboard",this.navigate("#dashboard",{trigger:!0})):(this.routes[""]="collections",this.navigate("#collections",{trigger:!0}))):(this.clusterView||(this.clusterView=new window.ClusterView({coordinators:this.coordinatorCollection,dbServers:this.dbServers})),void this.clusterView.render()):void this.waitForInit(this.cluster.bind(this))},node:function(a,b){return this.checkUser(),b&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.nodeView||(this.nodeView=new window.NodeView({coordname:a,coordinators:this.coordinatorCollection,dbServers:this.dbServers})),void this.nodeView.render()):void this.waitForInit(this.node.bind(this),a)},cNodes:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.nodesView=new window.NodesView({coordinators:this.coordinatorCollection,dbServers:this.dbServers[0],toRender:"coordinator"}),void this.nodesView.render()):void this.waitForInit(this.cNodes.bind(this))},dNodes:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):0===this.dbServers.length?void this.navigate("#cNodes",{trigger:!0}):(this.nodesView=new window.NodesView({coordinators:this.coordinatorCollection,dbServers:this.dbServers[0],toRender:"dbserver"}),void this.nodesView.render()):void this.waitForInit(this.dNodes.bind(this))},sNodes:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.scaleView=new window.ScaleView({coordinators:this.coordinatorCollection,dbServers:this.dbServers[0]}),void this.scaleView.render()):void this.waitForInit(this.sNodes.bind(this))},addAuth:function(a){var b=this.clusterPlan.get("user");if(!b)return a.abort(),void(this.isCheckingUser||this.requestAuth());var c=b.name,d=b.passwd,e=c.concat(":",d);a.setRequestHeader("Authorization","Basic "+btoa(e))},logs:function(a,b){if(this.checkUser(),!b)return void this.waitForInit(this.logs.bind(this),a);if(!this.logsView){var c=new window.ArangoLogs({upto:!0,loglevel:4}),d=new window.ArangoLogs({loglevel:4}),e=new window.ArangoLogs({loglevel:3}),f=new window.ArangoLogs({loglevel:2}),g=new window.ArangoLogs({loglevel:1});this.logsView=new window.LogsView({logall:c,logdebug:d,loginfo:e,logwarning:f,logerror:g})}this.logsView.render()},applicationDetail:function(a,b){if(this.checkUser(),!b)return void this.waitForInit(this.applicationDetail.bind(this),a);var c=function(){this.hasOwnProperty("applicationDetailView")||(this.applicationDetailView=new window.ApplicationDetailView({model:this.foxxList.get(decodeURIComponent(a))})),this.applicationDetailView.model=this.foxxList.get(decodeURIComponent(a)),this.applicationDetailView.render("swagger")}.bind(this);0===this.foxxList.length?this.foxxList.fetch({success:function(){c()}}):c()},login:function(){var a=function(a,b){this.loginView||(this.loginView=new window.loginView({collection:this.userCollection})),a||null===b?this.loginView.render():this.loginView.render(!0)}.bind(this);this.userCollection.whoAmI(a)},collections:function(a){if(this.checkUser(),!a)return void this.waitForInit(this.collections.bind(this));var b=this;this.collectionsView||(this.collectionsView=new window.CollectionsView({collection:this.arangoCollectionsStore})),this.arangoCollectionsStore.fetch({success:function(){b.collectionsView.render()}})},cIndices:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({success:function(){c.indicesView=new window.IndicesView({collectionName:a,collection:c.arangoCollectionsStore.findWhere({name:a})}),c.indicesView.render()}}):void this.waitForInit(this.cIndices.bind(this),a)},cSettings:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({success:function(){c.settingsView=new window.SettingsView({collectionName:a,collection:c.arangoCollectionsStore.findWhere({name:a})}),c.settingsView.render()}}):void this.waitForInit(this.cSettings.bind(this),a)},cInfo:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({success:function(){c.infoView=new window.InfoView({collectionName:a,collection:c.arangoCollectionsStore.findWhere({name:a})}),c.infoView.render()}}):void this.waitForInit(this.cInfo.bind(this),a)},documents:function(a,b,c){return this.checkUser(),c?(this.documentsView||(this.documentsView=new window.DocumentsView({collection:new window.arangoDocuments,documentStore:this.arangoDocumentStore,collectionsStore:this.arangoCollectionsStore})),this.documentsView.setCollectionId(a,b),void this.documentsView.render()):void this.waitForInit(this.documents.bind(this),a,b)},document:function(a,b,c){ +if(this.checkUser(),!c)return void this.waitForInit(this.document.bind(this),a,b);this.documentView||(this.documentView=new window.DocumentView({collection:this.arangoDocumentStore})),this.documentView.colid=a;var d=window.location.hash.split("/")[2],e=(d.split("%").length-1)%3;decodeURI(d)!==d&&0!==e&&(d=decodeURIComponent(d)),this.documentView.docid=d,this.documentView.render();var f=function(a,b){a?console.log("Error","Could not fetch collection type"):this.documentView.setType(b)}.bind(this);arangoHelper.collectionApiType(a,null,f)},shell:function(a){return this.checkUser(),a?(this.shellView||(this.shellView=new window.shellView),void this.shellView.render()):void this.waitForInit(this.shell.bind(this))},query:function(a){return this.checkUser(),a?(this.queryView2||(this.queryView2=new window.queryView2({collection:this.queryCollection})),void this.queryView2.render()):void this.waitForInit(this.query.bind(this))},helpUs:function(a){return this.checkUser(),a?(this.testView||(this.helpUsView=new window.HelpUsView({})),void this.helpUsView.render()):void this.waitForInit(this.helpUs.bind(this))},workMonitor:function(a){return this.checkUser(),a?(this.workMonitorCollection||(this.workMonitorCollection=new window.WorkMonitorCollection),this.workMonitorView||(this.workMonitorView=new window.workMonitorView({collection:this.workMonitorCollection})),void this.workMonitorView.render()):void this.waitForInit(this.workMonitor.bind(this))},queryManagement:function(a){return this.checkUser(),a?(this.queryManagementView||(this.queryManagementView=new window.queryManagementView({collection:void 0})),void this.queryManagementView.render()):void this.waitForInit(this.queryManagement.bind(this))},databases:function(a){if(this.checkUser(),!a)return void this.waitForInit(this.databases.bind(this));var b=function(a){a?(arangoHelper.arangoError("DB","Could not get list of allowed databases"),this.navigate("#",{trigger:!0}),$("#databaseNavi").css("display","none"),$("#databaseNaviSelect").css("display","none")):(this.databaseView||(this.databaseView=new window.databaseView({users:this.userCollection,collection:this.arangoDatabase})),this.databaseView.render())}.bind(this);arangoHelper.databaseAllowed(b)},dashboard:function(a){return this.checkUser(),a?(void 0===this.dashboardView&&(this.dashboardView=new window.DashboardView({dygraphConfig:window.dygraphConfig,database:this.arangoDatabase})),void this.dashboardView.render()):void this.waitForInit(this.dashboard.bind(this))},graphManagement:function(a){return this.checkUser(),a?(this.graphManagementView||(this.graphManagementView=new window.GraphManagementView({collection:new window.GraphCollection,collectionCollection:this.arangoCollectionsStore})),void this.graphManagementView.render()):void this.waitForInit(this.graphManagement.bind(this))},showGraph:function(a,b){return this.checkUser(),b?void(this.graphManagementView?this.graphManagementView.loadGraphViewer(a):(this.graphManagementView=new window.GraphManagementView({collection:new window.GraphCollection,collectionCollection:this.arangoCollectionsStore}),this.graphManagementView.render(a,!0))):void this.waitForInit(this.showGraph.bind(this),a)},applications:function(a){return this.checkUser(),a?(void 0===this.applicationsView&&(this.applicationsView=new window.ApplicationsView({collection:this.foxxList})),void this.applicationsView.reload()):void this.waitForInit(this.applications.bind(this))},handleSelectDatabase:function(a){return this.checkUser(),a?void this.naviView.handleSelectDatabase():void this.waitForInit(this.handleSelectDatabase.bind(this))},handleResize:function(){this.dashboardView&&this.dashboardView.resize(),this.graphManagementView&&this.graphManagementView.handleResize($("#content").width()),this.queryView&&this.queryView.resize(),this.queryView2&&this.queryView2.resize(),this.documentsView&&this.documentsView.resize(),this.documentView&&this.documentView.resize()},userManagement:function(a){return this.checkUser(),a?(this.userManagementView||(this.userManagementView=new window.userManagementView({collection:this.userCollection})),void this.userManagementView.render()):void this.waitForInit(this.userManagement.bind(this))},userProfile:function(a){return this.checkUser(),a?(this.userManagementView||(this.userManagementView=new window.userManagementView({collection:this.userCollection})),void this.userManagementView.render(!0)):void this.waitForInit(this.userProfile.bind(this))},fetchDBS:function(a){var b=this,c=!1;this.coordinatorCollection.each(function(a){b.dbServers.push(new window.ClusterServers([],{host:a.get("address")}))}),this.initFinished=!0,_.each(this.dbServers,function(b){b.fetch({success:function(){c===!1&&a&&(a(),c=!0)}})})},getNewRoute:function(a){return"http://"+a},registerForUpdate:function(a){this.toUpdate.push(a),a.updateUrl()}})}(),function(){"use strict";var a=function(a,b){var c=[];c.push(window.modalView.createSuccessButton("Download Page",function(){window.open("https://www.arangodb.com/download","_blank"),window.modalView.hide()}));var d=[],e=window.modalView.createReadOnlyEntry.bind(window.modalView);d.push(e("current","Current",a.toString())),b.major&&d.push(e("major","Major",b.major.version)),b.minor&&d.push(e("minor","Minor",b.minor.version)),b.bugfix&&d.push(e("bugfix","Bugfix",b.bugfix.version)),window.modalView.show("modalTable.ejs","New Version Available",c,d)};window.checkVersion=function(){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/version"),contentType:"application/json",processData:!1,async:!0,success:function(b){var c=window.versionHelper.fromString(b.version);$(".navbar #currentVersion").text(" "+b.version.substr(0,3)),window.parseVersions=function(b){return _.isEmpty(b)?void $("#currentVersion").addClass("up-to-date"):($("#currentVersion").addClass("out-of-date"),void $("#currentVersion").click(function(){a(c,b)}))},$.ajax({type:"GET",async:!0,crossDomain:!0,timeout:3e3,dataType:"jsonp",url:"https://www.arangodb.com/repositories/versions.php?jsonp=parseVersions&version="+encodeURIComponent(c.toString())})}})}}(),function(){"use strict";window.hasOwnProperty("TEST_BUILD")||($(document).ajaxSend(function(a,b,c){var d=window.arangoHelper.getCurrentJwt();d&&b.setRequestHeader("Authorization","bearer "+d)}),$(document).ready(function(){window.App=new window.Router,Backbone.history.start(),window.App.handleResize()}),$(document).click(function(a){a.stopPropagation(),$(a.target).hasClass("subBarDropdown")||$(a.target).hasClass("dropdown-header")||$(a.target).hasClass("dropdown-footer")||$(a.target).hasClass("toggle")||$("#userInfo").is(":visible")&&$(".subBarDropdown").hide()}))}(); \ No newline at end of file diff --git a/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js.gz b/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js.gz index 70bb4bd2c786d5af88244e802d57628fbd7b25df..e98385c19054202b8bde82a8094a96f708b1ab9a 100644 GIT binary patch delta 88087 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 AbpQYW diff --git a/js/apps/system/_admin/aardvark/APP/frontend/build/index-min.html b/js/apps/system/_admin/aardvark/APP/frontend/build/index-min.html index c7836eec27..aef9de119d 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/build/index-min.html +++ b/js/apps/system/_admin/aardvark/APP/frontend/build/index-min.html @@ -2517,9 +2517,9 @@ if (list.length > 0) {

    <%= node.role %>
    <% if(node.status === 'ok') { %> -
    +
    <% } else { %> -
    +
    <% } %> @@ -3129,4 +3129,4 @@ var cutByResolution = function (str) {
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/js/apps/system/_admin/aardvark/APP/frontend/build/index-min.html.gz b/js/apps/system/_admin/aardvark/APP/frontend/build/index-min.html.gz index 8d8dffb3578fca968f0e02e603c052c9bf722439..9409a8f5509a75177834a3b017ce65eff72e256d 100644 GIT binary patch literal 28786 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 literal 28786 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 diff --git a/js/apps/system/_admin/aardvark/APP/frontend/build/style-minified.css b/js/apps/system/_admin/aardvark/APP/frontend/build/style-minified.css index b1961464e8..20fadba54c 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/build/style-minified.css +++ b/js/apps/system/_admin/aardvark/APP/frontend/build/style-minified.css @@ -1,7 +1,7 @@ @charset "UTF-8";body,body .bodyWrapper,html{height:100%}.ajax-file-upload-red:focus,.ajax-file-upload:focus,.button-close:focus,.button-danger:focus,.button-inactive:focus,.button-info:focus,.button-neutral:focus,.button-notification:focus,.button-primary:focus,.button-success:focus,.button-warning:focus,.login-window select,.navlist li a,div.headerBar select:focus{outline:0}#arangoQueryManagementTable .table-cell1,#queryManagementContent .table-cell1,.log-content{word-break:break-all}#documentsTableID_filter,#documentsTableID_length,#documentsTableID_paginate,#documentsTableID_wrapper .fg-toolbar,.fixedDropdown:after,.jsoneditor .outer .tree>table>tbody>tr:first-of-type{visibility:hidden}body{background:rgba(64,74,83,.04);color:#333;display:block;font-size:14px;line-height:20px;margin:0;overflow:hidden}.fa,.fa-stack{display:inline-block}.fa.fa-pull-left,.fa.pull-left{margin-right:.3em}body .bodyWrapper{left:150px;min-height:100%;position:absolute;right:0}body .centralRow{position:relative}body .loadingScreen{background-color:#fff;bottom:0;left:0;padding-top:100px;position:absolute;right:0;top:102px;z-index:100}body .loadingScreen span{display:inline-block;margin-top:10px;text-align:center;width:100%}body .loadingScreen i{width:100%}body #offlinePlaceholder{background:rgba(64,74,83,.8);height:100%;left:0;position:fixed;top:0;width:100%;z-index:9999}body #offlinePlaceholder .offline-div{overflow:auto;position:fixed;top:20%;width:100%;z-index:1050}body #offlinePlaceholder .offline-div h3,body #offlinePlaceholder .offline-div p{font-weight:300}body #offlinePlaceholder .offline-div .pure-u{width:100%}body #offlinePlaceholder .offline-div .offline-window{background:#fff;border-radius:3px}body #offlinePlaceholder .offline-div .offline-window .offline-header{padding-top:10px;text-align:center}body #offlinePlaceholder .offline-div .offline-window .offline-body{padding-bottom:20px;padding-top:0}body #offlinePlaceholder .offline-div .offline-window .offline-body .animation_state{padding-top:20px}body #offlinePlaceholder .offline-div .offline-window .offline-body>p{margin-bottom:0;text-align:center}body #offlinePlaceholder .offline-div .offline-window .offline-body,body #offlinePlaceholder .offline-div .offline-window .offline-header{padding-left:20px;padding-right:20px}.page-title span,.pingback a.url,body,input,textarea{font-weight:400}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url(../fonts/opensans/OpenSansLight.woff) format("woff")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local("Open Sans"),local("OpenSans"),url(../fonts/opensans/OpenSans.woff) format("woff")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local("Open Sans Bold"),local("OpenSans-Bold"),url(../fonts/opensans/OpenSansBold.woff) format("woff")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300;src:local("Open Sans Light Italic"),local("OpenSansLight-Italic"),url(../fonts/opensans/OpenSansLightItalic.woff) format("woff")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;src:local("Open Sans Italic"),local("OpenSans-Italic"),url(../fonts/opensans/OpenSansItalic.woff) format("woff")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:700;src:local("Open Sans Bold Italic"),local("OpenSans-BoldItalic"),url(../fonts/opensans/OpenSansBoldItalic.woff) format("woff")}/*! * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome/fontawesome-webfont.eot?v=4.4.0);src:url(../fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=4.4.0) format("embedded-opentype"),url(../fonts/fontawesome/fontawesome-webfont.woff2?v=4.4.0) format("woff2"),url(../fonts/fontawesome/fontawesome-webfont.woff?v=4.4.0) format("woff"),url(../fonts/fontawesome/fontawesome-webfont.ttf?v=4.4.0) format("truetype"),url(../fonts/fontawesome/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa.fa-pull-right,.fa.pull-right{margin-left:.3em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right,.pull-right{float:right}.pull-left{float:left}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.contentDiv li,.dashboard-bar-chart-container,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage,.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-half-height-legend,.dashboard-large-chart,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-interior-chart,.dashboard-small-chart,.dashboard-small-chart .dashboard-small-chart-inner,.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart,.dashboard-sub-bar,.dashboard-sub-bar .dashboard-sub-bar-title,.dashboard-tendency-container,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-subtitle-bar,.dashboard-title-bar .dashboard-half-title-bar,.dashboardModal,.dropdown-toolbar,.fixedDropdown .notificationItemContent,.gv-dropdown-menu,.innerDropdownInnerUL,.link-dropdown-menu,.modal-chart-detail,.modal-chart-detail .modal-body,.modal-chart-detail .modal-dashboard-legend,.modal-chart-detail .modal-inner-detail,.navlist li,.navlogo,.pagination-line li a,.script-dropdown-menu,.user-dropdown-menu,a.button-gui,a.headerButton,div .bigtile,div .bigtile a span.add-Icon,div .tile,div .tile a span.add-Icon,div.centralContent,div.dropdownInner ul,div.footer-center,div.footer-left{float:left}.arango-tab li,.dashboard-legend,.dashboard-sub-bar-menu,.docsThirdCol,.fixedDropdown .notificationItem i,.fixedDropdown button,.headerBar>div.headerButtonBar,.query-button,.search-field,div .bigtile .iconSet span,div .tile .iconSet span,div.footer-right,div.footer-right p,div.gv_colour_list,ul.headerButtonList li{float:right}.collectionInfoTh2,.collectionTh,.dashboard-sub-bar,.dashboard-sub-bar .dashboard-sub-bar-title,.dataNotReadyYet,.dygraph-label.dygraph-title,.figuresHeader th,.graphLabel,.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar,.inputEditorWrapper .aqlEditorWrapper table,.inputEditorWrapper .aqlEditorWrapper table td input,.inputEditorWrapper .aqlEditorWrapper table th,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar,.inputEditorWrapper .bindParamEditorWrapper table,.inputEditorWrapper .bindParamEditorWrapper table td input,.inputEditorWrapper .bindParamEditorWrapper table th,.modal-body,.page-title span,.pingback a.url,.snippet-no-num,.ui-tooltip,body,button,input,textarea{font-family:Roboto,sans-serif!important}.document-info .document-bold-font,.document-info .document-thin-font{font-family:droid sans mono,monospace,courier new,courier,sans-serif;font-size:11pt}#distributionChartDiv:after,.arango-tab:after,.dashboard-bar-chart-container .dashboard-bar-chart:after,.dashboard-medium-chart .dashboard-medium-chart-inner:after,.dashboard-medium-chart .dashboard-medium-chart-menu:after,.dashboard-row:after,.dashboard-sub-bar:after,.dashboard-tendency-container .dashboard-tendency-chart:after,.detail-chart:after,.document-info .document-info-container .document-inner-info-container .document-attribute:after,.headerBar>div.headerButtonBar:after,.lineChartDiv:after,.pagination-line li:after,.resizecontainer:after,.tileList:after{clear:both;content:'.';display:block;font-size:0;height:0;visibility:hidden}.caret,.contentDiv:after,.contentDiv:before,.form-actions:after,.form-actions:before,.pong-spinner:after,.pong-spinner:before{content:''}.addButton,.arango-tab a,.arango-tab li,.arangoicon,.clusterDownBtn button,.contentDiv .icon,.contentTables tr.contentRowInactive a,.deleteButton i,.dropdownImport.headerDropdown input[type=checkbox].css-checkbox label.css-label,.edit-index-table .icon_arangodb_roundminus,.fixedDropdown .notificationItem i,.fullNotification:hover,.gv-search-submit-icon,.icon-info-sign,.link>line,.node,.pagination-line li a,.script-dropdown-menu .dropdown-item,.search-submit-icon,a.button-gui,a.headerButton,div .bigtile,div .bigtile .iconSet span,div .bigtile a span.icon,div .bigtile a svg,div .tile .iconSet span,div .tile a span.icon,div .tile a svg,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox label.css-label,div.toolbox div.gv_action_button{cursor:pointer}#swagger #jsonLink,.arangoToolbar span.clickable:hover,.login-window button,.subnavmenu .infoEntry a.default-icon i{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.login-window select{-webkit-appearance:none;background:url("data:image/svg+xml;utf8,") right 10px top 12px no-repeat #f2f2f2;background-size:16px 16px;border:0;-webkit-border-radius:2px;border-radius:2px;color:#000;font-size:14px;font-weight:400;height:40px;line-height:initial;padding:12px;text-align:center;-moz-transition:.3s ease all;-ms-transition:.3s ease all;-o-transition:.3s ease all;-webkit-transition:.3s ease all;transition:.3s ease all;width:100%}.breadcrumb a,.navlist .dropdown-item:hover a,.navlist>li:hover a{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in}.login-window select:disabled{opacity:.5}.login-window select:active,.login-window select:focus{border:0;outline:0}.navbar{color:#fff;left:0;right:0;z-index:1000}.ajax-file-upload-red,.button-danger{background-color:#e74c3c}.ajax-file-upload-red:focus,.ajax-file-upload-red:hover,.button-danger:focus,.button-danger:hover{background-color:#ec7063}.contentTables td span,.deleteButton i,.edit-index-table .icon_arangodb_roundminus{color:#e74c3c}.contentTables td span:focus,.contentTables td span:hover,.deleteButton i:focus,.deleteButton i:hover,.edit-index-table .icon_arangodb_roundminus:focus,.edit-index-table .icon_arangodb_roundminus:hover{color:#ec7063}.ajax-file-upload,.button-success{background-color:#2ecc71}.ajax-file-upload:focus,.ajax-file-upload:hover,.button-success:focus,.button-success:hover{background-color:#58d68d}.button-info{background-color:#3498db}.button-info:focus,.button-info:hover{background-color:#5dade2}.addButton,.contentTables td.dbThSecond span{color:#2ecc71}.addButton:focus,.addButton:hover,.contentTables td.dbThSecond span:focus,.contentTables td.dbThSecond span:hover{color:#58d68d}.button-warning{background-color:#f1c40f}.button-warning:focus,.button-warning:hover{background-color:#f4d313}.button-close,.button-neutral{background-color:#8f8d8c}.button-close:focus,.button-close:hover,.button-neutral:focus,.button-neutral:hover{background-color:#736b68}.dashboard-sub-bar-menu{color:#8f8d8c}.dashboard-sub-bar-menu:focus,.dashboard-sub-bar-menu:hover{color:#736b68}.button-primary{background-color:#34495e}.button-primary:focus,.button-primary:hover{background-color:#415b76}.button-header,a.button-gui,a.headerButton{background-color:#fff;border:1px solid #fff;color:#555}.button-header:focus,.button-header:hover,a.button-gui:focus,a.button-gui:hover,a.headerButton:focus,a.headerButton:hover{background-color:#2ecc71;border:1px solid #2ecc71;color:#fff}.button-notification{background-color:#faa020}.button-notification:focus,.button-notification:hover{background-color:#f87c0f}.button-inactive,.button-inactive:focus,.button-inactive:hover,[class*=' button-']:disabled,[class*=' button-']:focus:disabled,[class*=' button-']:hover:disabled,[class^=button-]:disabled,[class^=button-]:focus:disabled,[class^=button-]:hover:disabled,button.disabled,button.disabled:focus,button.disabled:hover{background-color:#d3d3d3}a.headerButton.disabled,a.headerButton.disabled:focus,a.headerButton.disabled:hover{color:#d3d3d3}div.queryline .fa.fa-search{color:#c2c2c2;font-size:12pt;opacity:.5;position:relative;right:21px;top:-1px}div.queryline .fa.fa-search:hover{cursor:pointer;opacity:1}.inputEditorWrapper .aqlEditorWrapper table td input,.inputEditorWrapper .bindParamEditorWrapper table td input,.jsoneditor .search .frame input,.login-window .login-input,.modal-body .select2-choices input,.modal-body input,.modal-body select,.modal-body textarea,.navbar .arango-collection-select,.newIndexClass table input,.newIndexClass table select,div.queryline input,div.queryline select,input.search-input{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#fff!important;border:2px solid rgba(140,138,137,.25);box-shadow:none;outline:transparent 0}.inputEditorWrapper .aqlEditorWrapper table td input:focus,.inputEditorWrapper .bindParamEditorWrapper table td input:focus,.jsoneditor .search .frame input:focus,.login-window .login-input:focus,.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus,.navbar .arango-collection-select:focus,.newIndexClass table input:focus,.newIndexClass table select:focus,div.queryline input:focus,div.queryline select:focus,input.search-input:focus{border-color:#2ecc71;box-shadow:none;outline:transparent 0}.dropdown-toolbar,.gv-dropdown-menu,.link-dropdown-menu,.script-dropdown-menu,.user-dropdown-menu{background-color:#f5f8f0;border-color:#666;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;display:none;list-style:none;margin:5px 0 0;padding:5px 0;position:absolute;right:0;top:80%;z-index:1000}.dropdown-toolbar li,.gv-dropdown-menu li,.link-dropdown-menu li,.script-dropdown-menu li,.user-dropdown-menu li{line-height:23px;white-space:nowrap;width:100%}.dropdown-toolbar .dropdown-header,.gv-dropdown-menu .dropdown-header,.link-dropdown-menu .dropdown-header,.script-dropdown-menu .dropdown-header,.user-dropdown-menu .dropdown-header{color:#999;font-size:15px;font-weight:600;font-variant:small-caps;padding:0}.dropdown-toolbar .dropdown-header:hover,.gv-dropdown-menu .dropdown-header:hover,.link-dropdown-menu .dropdown-header:hover,.script-dropdown-menu .dropdown-header:hover,.user-dropdown-menu .dropdown-header:hover{cursor:default}.dropdown-toolbar .divider,.gv-dropdown-menu .divider,.link-dropdown-menu .divider,.script-dropdown-menu .divider,.user-dropdown-menu .divider{background-color:#666;height:1px;margin:10px 0 5px}.dropdown-toolbar a,.gv-dropdown-menu a,.link-dropdown-menu a,.script-dropdown-menu a,.user-dropdown-menu a{color:#fff;padding:0 20px}.navbar2{color:#fff}.navbar2>.secondary{background-color:rgba(255,255,255,.85)}.navbar{bottom:0;float:left;-webkit-font-smoothing:subpixel-antialiased;margin-bottom:0;position:absolute;top:0;width:150px}.navbar>.primary{background-color:#404a53;float:left;height:100%;width:150px}.navbar>.resizecontainer{background-color:#fff}.navbar .no-left-margin{border:0;margin-left:0}.navbar .no-left-margin.hover{background-color:transparent}.navbar .arangodbLogo{height:auto;margin-left:6px;margin-top:15px;width:138px}.navbar .arango-collection-select{position:relative;right:-22px;top:4px}.navbar .nav .dropdown .active>.dropdown-toggle,.navbar .nav .dropdown .open.active>.dropdown-toggle,.navbar .nav .dropdown .open>.dropdown-toggle{background:#58d68d}.navbar .nav>.active>a{-webkit-box-shadow:0 0 0 transparent inset;-moz-box-shadow:0 0 0 transparent inset;box-shadow:0 0 0 transparent inset;background-color:#fff;color:#000}.navbar .nav>li>a:focus{background-color:#fff}.navbar .nav>li>a:hover{background-color:#000;color:#686766}.navbar .shortcut{bottom:31px;left:13px;position:absolute}.navbar .shortcut i{background-color:transparent;border-radius:20px;color:#fff;width:20px;padding:5px 0 6px 4px}.navbar .shortcut i:hover{background-color:#2ecc71;color:#fff;cursor:pointer}.navbar .social-icons{bottom:0;float:left;margin-left:9px;position:absolute;width:100%}.navbar .social-icons a{display:block;float:left;height:25px;width:25px}.navbar .social-icons p{background:0 0;border-radius:20px;float:left;height:25px;margin-right:10px;padding:0;width:25px}.navbar .social-icons p:hover{background:#2ecc71;cursor:pointer}.navlist li.divider,.navlist li.navbar-spacer{background-color:rgba(0,0,0,.2)}.navbar .social-icons p:hover i{color:#fff}.navbar .social-icons i{color:#fff;margin-top:6px;position:absolute}.navbar .social-icons i.fa-twitter{margin-left:7px}.navbar .social-icons i.fa-envelope{margin-left:-19px}.navbar .social-icons i.fa-google{margin-left:-17px;margin-top:7px}.navbar .social-icons i.fa-stack-overflow{margin-left:-17px}.navlogo{height:60px;width:100%}.navlogo .small{display:none}.script-dropdown-menu .dropdown-item a,.tab{display:block}.navlogo .version{bottom:33px;color:rgba(255,255,255,.7);font-size:11px;font-weight:100;left:0;padding-bottom:10px;position:absolute;text-align:center;text-transform:uppercase;width:100%}.navlist,.navlist li{width:150px}.navlogo .version .out-of-date{color:#f1c40f;font-weight:400}.navlogo .version .out-of-date:hover{cursor:pointer}.navlogo .version .up-to-date{color:#2ecc71}.navmenu{clear:both}.navlist{list-style:none;margin:0;position:relative;top:0}.navlist>li{line-height:30px}.navlist li .fa{opacity:.3;padding-left:5px;padding-right:15px;text-align:center;width:10px}.navlist li .fa.fa-heart{color:#ff7a7a;opacity:1}.navlist li.disabled:hover{cursor:default}.navlist li.disabled:hover a:hover{cursor:default;opacity:.8}div .bigtile:hover,div .tile:hover,div.footer-center p:hover{cursor:pointer}.navlist .active .tab .fa,.navlist>.active a{opacity:1}.navlist li.dropdown:hover{border-bottom-left-radius:0;border-bottom-right-radius:0}.navlist li.divider,.navlist li.navbar-spacer{border:0}.navlist li.navbar-spacer{height:2px;margin-bottom:0;margin-top:0}.navlist .active{border-left:2px solid #77cb99}.navlist .active .tab{color:#fff;margin-left:-2px}.navlist .dropdown-item,.script-dropdown-menu .dropdown-item{margin-left:0}.navlist>.active{background-color:rgba(255,255,255,.2)}.navlist .dropdown-item:hover a,.navlist>li:hover a{color:#fff;opacity:1;transition:all .2s ease-in}.navlist .dropdown-item a{border-bottom:0;display:block;font-size:11pt}.navlist .dropdown-item a:hover{background-color:#dee9cf;color:#686766}.tab{color:rgba(255,255,255,.8);font-size:9pt;font-weight:100;text-transform:uppercase;padding:5px}.tab.userImg{padding-bottom:5px}.dropdown-item a{border-bottom:0!important;font-weight:300}.dropdown-toolbar li a,footer.footer p{font-weight:100}.dropdown-toolbar{background-color:#fff!important}.dropdown-toolbar li a:hover{background:0 0;background-color:#dee9cf!important;color:#000!important}.link-dropdown-menu,.user-dropdown-menu{background-color:rgba(0,0,0,.7);border-top-right-radius:0;margin-right:-1px;margin-top:7px;z-index:50}.link-dropdown-menu .dropdown-item,.user-dropdown-menu .dropdown-item{border-left:0;border-right:0}.script-dropdown-menu .dropdown-item a:hover{color:#fff}.script-dropdown-menu .dropdown-item:hover{background-color:#2ecc71}.gv-dropdown-menu{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;background-color:rgba(0,0,0,.7);border:1px solid #c2c2c2;margin-right:-20px;margin-top:6px}.gv-dropdown-menu:after{border-bottom-color:#fff}.gv-dropdown-menu li:hover{background-color:#fff;background-image:none}.gv-dropdown-menu li a{padding:0}.gv-dropdown-menu li a label{color:#fff;padding-left:5px}.gv-dropdown-menu li a:focus{background-color:#2ecc71!important;background-image:none}#arangoCollectionSelect{display:none;float:right;margin-bottom:0;margin-right:15px;padding-bottom:0}.caret{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #686766;display:inline-block;height:0;vertical-align:top;width:0}.applications-menu{display:block}.arango-logo{height:34px;padding:0!important}.arango-logo img{margin-left:22px}.footer{background-color:rgba(239,240,241,.8);display:none;font-size:14px;left:160px;right:10px;text-align:center;z-index:1000}div.footer-center,div.footer-left,div.footer-right{background:none;color:#686766}footer.footer{bottom:0;height:43px;position:fixed}footer.footer p{font-size:10pt;margin-bottom:0;padding-bottom:10px;padding-top:10px}div.footer-left{width:45%}div.footer-center{width:10%}div.footer-center p{padding-top:5px}[class*=' button-']:disabled,[class^=button-]:disabled,a.headerButton.disabled,button.disabled{cursor:not-allowed}div.footer-right{width:45%}div.footer-right p{color:#fff}div.footer-right i{color:#e74c3c;font-size:18px}div.footer-right a{color:#686766;margin-left:5px;position:relative;top:-1px}div.footer-right .isOnline{color:#2ecc71!important}.ajax-file-upload,.ajax-file-upload-red,.button-close,.button-danger,.button-header,.button-inactive,.button-info,.button-neutral,.button-notification,.button-primary,.button-success,.button-warning{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0;font-size:13px;font-weight:300!important}.addButton,.deleteButton i{font-size:16pt;position:relative}.ajax-file-upload,.ajax-file-upload-red,.button-close,.button-danger,.button-inactive,.button-info,.button-neutral,.button-notification,.button-primary,.button-success,.button-warning{border:0;color:#fff;margin-left:10px;padding:4px 12px}.ajax-file-upload i,.ajax-file-upload-red i,.button-close i,.button-danger i,.button-inactive i,.button-info i,.button-neutral i,.button-notification i,.button-primary i,.button-success i,.button-warning i{margin-left:-5px}.ajax-file-upload .fa,.ajax-file-upload-red .fa,.button-close .fa,.button-danger .fa,.button-inactive .fa,.button-info .fa,.button-neutral .fa,.button-notification .fa,.button-primary .fa,.button-success .fa,.button-warning .fa{position:relative;top:1px}.button-header{margin-top:5px}.addButton{margin-right:7px;margin-top:2px}.deleteButton i{float:right;padding-right:7px;top:12px}#closeBtnInfoView{margin-left:0!important}button.btn-server{width:120px}button.btn-small{padding:0 8px}button.gv-zoom-btn{background-size:14px 14px;height:14px;vertical-align:baseline;width:14px}button.gv-zoom-btn.btn-zoom-right{border:0;box-shadow:none;right:0;top:13px}button.gv-zoom-btn.pan-right{background-image:url(../img/gv_arrow_right.png)}button.gv-zoom-btn.pan-right:hover{background:inherit;background-image:url(../img/gv_arrow_right.png)}button.gv-zoom-btn.pan-left{background-image:url(../img/gv_arrow_left.png)}button.gv-zoom-btn.pan-left:hover{background:inherit;background-image:url(../img/gv_arrow_left.png)}button.gv-zoom-btn.pan-top{background-image:url(../img/gv_arrow_top.png)}button.gv-zoom-btn.pan-top:hover{background:inherit;background-image:url(../img/gv_arrow_top.png)}button.gv-zoom-btn.pan-bottom{background-image:url(../img/gv_arrow_bottom.png)}button.gv-zoom-btn.pan-bottom:hover{background:inherit;background-image:url(../img/gv_arrow_bottom.png)}button.gv-zoom-btn.btn-zoom{height:14px;margin:0;padding:0;position:absolute;width:16px}button.gv-zoom-btn.btn-zoom-top{border:0;box-shadow:none;left:13px;top:1}button.gv-zoom-btn.btn-zoom-left{border:0;box-shadow:none;left:0;top:13px}button.gv-zoom-btn.btn-zoom-bottom{border:0;box-shadow:none;left:13px;top:25px}button.gv-icon-btn{-moz-border-radius:0!important;-webkit-border-radius:0!important;border-radius:0!important;background-size:36px 36px;height:36px;width:36px}button.gv-icon-btn.active{background-color:#2ecc71}button.gv_dropdown_entry{height:30px;margin:4px 4px 4px 12px;width:160px}button.gv_context_button{width:65px}button.large-distance{margin-left:12px}button.short-distance{margin-left:6px}button.shutdown{margin-top:6px;padding:3px 14px}button.graphViewer-icon-button{background-color:transparent;border:0;height:20px;margin-left:5px;margin-top:-2px;padding:0;width:20px}button.graphViewer-icon-button img{height:20px;padding-bottom:10px;width:20px}ul.headerButtonList{display:inline-block;margin-bottom:0;margin-left:0;padding-left:0!important}ul.headerButtonList li{display:inline}a.button-gui,a.headerButton{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;margin-left:5px;margin-right:5px}a.headerButton{margin-top:2px;position:relative}a.headerButton .fa,a.headerButton [class*=" icon_"],a.headerButton [class^=icon_]{display:block;height:23px;line-height:23px;position:static;right:0;text-align:center;top:0;width:27px}a.headerButton .icon_arangodb_arrowleft,a.headerButton .icon_arangodb_arrowright{font-weight:700}a.headerButton.activated{background-color:#58d68d;border:1px solid #58d68d;color:#fff}a.headerButton.activated:hover{background-color:#fff;color:#58d68d}div.toolbox{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:#fff;border:1px solid rgba(140,138,137,.25);margin-right:5px;padding-bottom:5px;padding-top:5px;position:absolute;top:-10px}div.toolbox div.gv_action_button{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:#fff;color:#555;height:30px;margin:5px;position:relative;text-align:center;width:30px}div.toolbox div.gv_action_button.active{background-color:#2ecc71;color:#fff}div.toolbox div.gv_action_button:first-child{margin-top:0}div.toolbox div.gv_action_button:last-child{margin-bottom:0}h6.gv_button_title,h6.gv_icon_icon{left:0;margin:0;position:absolute;right:0}h6.gv_icon_icon{font-size:22px;left:1px;top:4px}h6.gv_button_title{bottom:1px;display:none}.btn-icon{background-color:#383434;padding:4px}.gv-icon-small{background-size:16px 16px;height:16px!important;width:16px!important}.gv-icon-small.delete{background-image:url(../img/icon_delete.png)}.gv-icon-small.add{background-image:url(../img/plus_icon.png)}a.pagination-button,ul.arango-pagination a{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.badge,.btn,.label{text-shadow:none!important}.navbar-inner,.thumbnail{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0}.modal-body th.actionCell>button{margin-top:-12px}.btn-old-padding{padding-bottom:4px!important;padding-top:4px!important}button.btn-overview,button.btn-server{margin:5px}a.button-gui{height:auto;margin-bottom:0;margin-top:0;padding-bottom:1px;padding-top:1px;position:absolute;right:2px;text-decoration:none!important;top:2px;width:auto}a.button-gui.button-gui-disabled{display:none}.clusterDownBtn{padding-bottom:10px;padding-top:10px;text-align:center}.clusterDownBtn button{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#f1f1f1;border:1px solid rgba(0,0,0,.1875);color:#333;font-size:20px;font-weight:300;margin:0;padding:12px 18px;text-align:center;text-decoration:none!important;width:250px}.clusterDownBtn button:hover{background-color:#e8e8e8;color:#4a6c30;-webkit-transition-delay:0;-webkit-transition-duration:.2s;-webkit-transition-property:all;-webkit-transition-timing-function:ease-in}.clusterDownBtn button.green{background-color:#617e2b;color:#fff}.clusterDownBtn button.green:hover{background-color:#8ba142}.bottomButtonBar{background-color:#fff;border-top:1px solid rgba(104,103,102,.1);height:30px;padding:10px}.tileList{left:10px;padding-top:5px;position:absolute;right:10px}.tileList legend{padding-left:5px}.tileList .tile:first-child a{opacity:.8}.tileList .tile:first-child a:hover{opacity:1}div .bigtile,div .tile{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-radius:2px;font-size:14px;list-style:none;margin-bottom:13px;position:relative;text-align:center;z-index:1}div .bigtile progress[value],div .tile progress[value]{color:#5bc0de}div .bigtile progress::-webkit-progress-bar-value,div .tile progress::-webkit-progress-bar-value{background:#5bc0de}div .bigtile progress::-webkit-progress-value,div .tile progress::-webkit-progress-value{background:#5bc0de}div .bigtile progress::-moz-progress-bar,div .tile progress::-moz-progress-bar{background:#5bc0de}div .bigtile progress,div .tile progress{-webkit-appearance:none;border-radius:0;height:2px;margin-top:16px;position:relative;width:100%;z-index:10}div .locked.bigtile,div .locked.tile{cursor:not-allowed}div .locked.bigtile .borderBox,div .locked.bigtile .collection-type-icon,div .locked.bigtile .collectionName,div .locked.bigtile .iconSet,div .locked.tile .borderBox,div .locked.tile .collection-type-icon,div .locked.tile .collectionName,div .locked.tile .iconSet{opacity:.5}div .locked.bigtile .iconSet span:hover,div .locked.tile .iconSet span:hover{background-color:#fff!important;color:#000;cursor:not-allowed!important}div .locked.bigtile .iconSet:hover,div .locked.tile .iconSet:hover{cursor:not-allowed!important}div .bigtile .collection-type-icon:hover,div .bigtile img:hover,div .tile .collection-type-icon:hover,div .tile img:hover{cursor:pointer}div .bigtile .warning-icons,div .tile .warning-icons{background-color:#e74c3c;border-radius:2px;color:#fff;font-size:11px;height:17px;left:0;line-height:13px;margin-left:5px;margin-top:5px;padding-left:9px;padding-right:9px;position:absolute;top:0}div .bigtile .warning-icons .fa,div .tile .warning-icons .fa{font-size:11pt;margin-left:1px}div .bigtile .collection-type-icon,div .tile .collection-type-icon{color:#666;font-size:30pt;margin-left:-18px;position:absolute;top:15px}div .bigtile img,div .tile img{position:relative}div .bigtile img.icon,div .tile img.icon{height:50px;margin-top:-110px;width:50px}div .bigtile a span.add-Icon,div .tile a span.add-Icon{font-size:20px;margin-left:22px;margin-right:10px;position:relative;top:0}div .bigtile a span.icon,div .tile a span.icon{font-size:50px}div .bigtile a svg.icon,div .tile a svg.icon{height:50px;width:50px}div .bigtile .tile-icon-svg,div .tile .tile-icon-svg{cursor:pointer;fill:#686766;height:50px;margin-left:auto;margin-right:auto;margin-top:-63px;position:relative;width:50px}div .bigtile .tile-icon,div .tile .tile-icon{color:#686766;font-size:50px;line-height:1.2;margin-left:-50px}div .bigtile .icon_arangodb_edge5-2,div .bigtile .tile-icon,div .tile .icon_arangodb_edge5-2,div .tile .tile-icon{position:absolute;top:15px}div .bigtile .icon_arangodb_edge5-2,div .tile .icon_arangodb_edge5-2{display:inline-block;margin-left:5px;position:absolute;top:0;-moz-transform:rotate(80deg);-o-transform:rotate(80deg);-webkit-transform:rotate(80deg)}div .bigtile h5,div .tile h5{background:rgba(64,74,83,.8);color:#fff;font-size:12px;margin:0 5px;overflow:hidden!important;padding:4px 8px;text-overflow:ellipsis!important;white-space:nowrap!important}div .bigtile h5.inProgress,div .tile h5.inProgress{color:#5bc0de}div .bigtile .tileSelects,div .tile .tileSelects{margin-left:40px;position:relative;z-index:9999}div .bigtile .tileSelects select,div .tile .tileSelects select{float:right;height:20px;margin-right:5px;margin-top:16px;width:70px}div .bigtile .fullBorderBox,div .tile .fullBorderBox{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:2px;box-sizing:border-box;height:100%;margin-left:5px;margin-right:5px;position:relative;width:auto}div .bigtile .fullBorderBox .add,div .tile .fullBorderBox .add{color:#404a53}div .bigtile .fullBorderBox .add span,div .tile .fullBorderBox .add span{color:#2ecc71}div .bigtile .paddingBox,div .tile .paddingBox{box-sizing:border-box;padding-left:5px;padding-right:5px}div .bigtile .borderBox,div .tile .borderBox{background-color:#fff;border:1px solid rgba(64,74,83,.2);border-bottom:0;border-radius:2px;box-sizing:border-box;height:75px;position:relative;width:100%}div .bigtile .iconSet,div .tile .iconSet{position:absolute;right:5px;top:5px}div .bigtile .iconSet span,div .tile .iconSet span{border-radius:2px;color:#666;font-size:18px;z-index:2;padding:2px 3px}div .bigtile .iconSet span:hover,div .tile .iconSet span:hover{background-color:#2ecc71;color:#fff}div .bigtile .iconSet span.disabled,div .tile .iconSet span.disabled{cursor:default;opacity:.2}div .bigtile .iconSet span.disabled:hover,div .tile .iconSet span.disabled:hover{background-color:#fff;color:#000;cursor:default;opacity:.2}div .bigtile .badge-success,div .tile .badge-success{font-weight:300}div .bigtile .unloaded div,div .tile .unloaded div{border-bottom:16px solid #ff8f35}div .bigtile .deleted div,div .tile .deleted div{border-bottom:16px solid #700}div .bigtile .tileBadge,div .tile .tileBadge{bottom:29px;font-size:11px;font-weight:300;position:absolute;right:0}div .bigtile .tileBadge button,div .tile .tileBadge button{margin-left:0;margin-right:5px}div .bigtile .tileBadge span,div .tile .tileBadge span{display:inline-block;line-height:15px}div .bigtile .tileBadge span .corneredBadge,div .tile .tileBadge span .corneredBadge{border-bottom-style:solid;border-bottom-width:17px;border-left:5px solid transparent;border-radius:2px;color:#fff;height:0;margin-bottom:4px;margin-right:10px;padding-left:1px;padding-right:6px}div .bigtile .tileBadge span .corneredBadge.loading,div .tile .tileBadge span .corneredBadge.loading{border-bottom-color:#ff8f35}div .bigtile .tileBadge span .corneredBadge.loaded,div .tile .tileBadge span .corneredBadge.loaded{border-bottom-color:#2ecc71}div .bigtile .tileBadge span .corneredBadge.inProgress,div .tile .tileBadge span .corneredBadge.inProgress{border-bottom-color:#5bc0de}div .bigtile .tileBadge span .corneredBadge.development,div .bigtile .tileBadge span .corneredBadge.unloaded,div .tile .tileBadge span .corneredBadge.development,div .tile .tileBadge span .corneredBadge.unloaded{border-bottom-color:#ff8f35}div .tile{height:100px}div .tile-graph h5{margin-left:5px;margin-right:5px}div .tile-graph .tile-icon:hover{cursor:pointer}div .bigtile{height:309px;width:452px}div .bigtile .shardContainer{font-size:30px}div .bigtile .shardContainer span{padding:2px}.collectionName{border-bottom-left-radius:2px;border-bottom-right-radius:2px;bottom:0;font-weight:300;left:0;position:absolute;right:0;text-align:left}#userManagementThumbnailsIn .tile .paddingBox img{border-radius:58px;margin-top:-99px;padding:0}.resizecontainer{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:10px;padding-right:10px}.dashboard-large-chart,.dashboard-medium-chart-outer,.dashboard-sub-bar,.tendency-box-sizing .dashboard-tendency-container,div.centralContent{box-sizing:border-box}@media (max-width:738px){#collectionsDropdown ul{width:auto!important}.footer-center p{display:none}#queryContent #querySize,#queryContent #querySizeDiv,#queryContent .styled-select{margin-right:6px;width:90px!important}}@media (max-width:970px){#documentsDiv #totalDocuments{display:none}}@media (min-width:250px) and (max-width:489px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:185px}.dashboard-sub-bar-menu{font-size:12px}.dashboard-medium-chart .dashboard-interior-chart{height:185px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:12px;left:10px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:185px;width:27px}.dashboard-medium-chart #clusterGraphs svg text{font-size:10px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:197px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:10px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:83.25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:-15px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:25.08px;line-height:25.08px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:40.17px;line-height:19.08px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:79.75px}.dashboard-bar-chart-container .dashboard-bar-chart{height:74.75px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:25.25px;line-height:25.25px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:-4.2px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:-3px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-45px;width:110px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{display:none;font-size:12px;min-height:190px;width:10px}.absolut,.percentage{font-size:14px}.modal-chart-detail .modal-inner-detail{width:70px}.modal-body .dashboard-large-chart{width:51px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:22px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:5px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:-4.2px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:-3px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:-6px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:10px;font-weight:400}.dashboard-subtitle-bar{font-size:14px;font-weight:300}.dashboard-figure{font-size:16px;font-weight:400}.dashboard-figurePer{font-size:14px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:10px}.dashboard-legend{display:none;height:30px;width:100%}.dashboard-half-height-legend{display:none;font-size:10px;height:100px;width:0}.application-detail-view section.info{width:90px}.application-detail-view aside.meta{display:none}}@media (min-width:490px) and (max-width:729px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:185px}.dashboard-sub-bar-menu{font-size:12px}.dashboard-medium-chart .dashboard-interior-chart{height:185px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:12px;left:130px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:185px;width:147px}.dashboard-medium-chart #clusterGraphs svg text{font-size:10px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:197px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:10px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:83.25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:25.08px;line-height:25.08px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:40.17px;line-height:19.08px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:79.75px}.dashboard-bar-chart-container .dashboard-bar-chart{height:74.75px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:25.25px;line-height:25.25px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:51.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:21px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-165px;width:350px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{display:none;font-size:12px;min-height:190px;width:10px}.absolut,.percentage{font-size:14px}.modal-chart-detail .modal-inner-detail{width:310px}.modal-body .dashboard-large-chart{width:211px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:142px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:125px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:51.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:21px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:74px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:10px;font-weight:400}.dashboard-subtitle-bar{font-size:14px;font-weight:300}.dashboard-figure{font-size:16px;font-weight:400}.dashboard-figurePer{font-size:14px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:10px}.dashboard-legend{display:none;height:30px;width:100%}.dashboard-half-height-legend{display:none;font-size:10px;height:100px;width:0}.application-detail-view section.info{width:330px}.application-detail-view aside.meta{display:none}}@media (min-width:730px) and (max-width:969px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:185px}.dashboard-sub-bar-menu{font-size:12px}.dashboard-medium-chart .dashboard-interior-chart{height:185px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:12px;left:250px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:185px;width:267px}.dashboard-medium-chart #clusterGraphs svg text{font-size:10px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:197px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:10px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:83.25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:65px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:25.08px;line-height:25.08px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:40.17px;line-height:19.08px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:79.75px}.dashboard-bar-chart-container .dashboard-bar-chart{height:74.75px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:25.25px;line-height:25.25px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:107.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:45px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-285px;width:590px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{display:none;font-size:12px;min-height:190px;width:10px}.absolut,.percentage{font-size:14px}.modal-chart-detail .modal-inner-detail{width:550px}.modal-body .dashboard-large-chart{width:371px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:262px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:245px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:107.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:45px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:154px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:10px;font-weight:400}.dashboard-subtitle-bar{font-size:14px;font-weight:300}.dashboard-figure{font-size:16px;font-weight:400}.dashboard-figurePer{font-size:14px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:10px}.dashboard-legend{display:none;height:30px;width:100%}.dashboard-half-height-legend{display:none;font-size:10px;height:100px;width:0}.application-detail-view section.info{width:370px}}@media (min-width:970px) and (max-width:1209px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:220px}.dashboard-sub-bar-menu{font-size:13px}.dashboard-medium-chart .dashboard-interior-chart{height:220px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:13px;left:369px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:220px;width:387px}.dashboard-medium-chart #clusterGraphs svg text{font-size:11px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:229px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:11px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:101.5px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:105px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:31.17px;line-height:31.17px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:52.33px;line-height:25.17px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:98px}.dashboard-bar-chart-container .dashboard-bar-chart{height:93px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:31.33px;line-height:31.33px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:163.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:69px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-405px;width:830px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:13px;min-height:225px;width:130px}.absolut,.percentage{font-size:15px}.modal-chart-detail .modal-inner-detail{width:670px}.modal-body .dashboard-large-chart{width:531px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:382px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:364px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:163.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:69px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:234px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:11px;font-weight:400}.dashboard-subtitle-bar{font-size:15px;font-weight:300}.dashboard-figure{font-size:18px;font-weight:400}.dashboard-figurePer{font-size:16px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:11px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:11px;height:117.5px;width:60px}.application-detail-view section.info{width:610px}}@media (min-width:1210px) and (max-width:1449px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:255px}.dashboard-sub-bar-menu{font-size:15px}.dashboard-medium-chart .dashboard-interior-chart{height:255px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:16px;left:486px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:255px;width:507px}.dashboard-medium-chart #clusterGraphs svg text{font-size:12px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:264px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:13px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:119px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:145px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:37px;line-height:37px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:64px;line-height:31px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:115.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:110.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:37.17px;line-height:37.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:219.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:93px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-525px;width:1070px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:14px;min-height:260px;width:140px}.absolut,.percentage{font-size:18px}.modal-chart-detail .modal-inner-detail{width:900px}.modal-body .dashboard-large-chart{width:691px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:502px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:481px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:219.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:93px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:314px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:13px;font-weight:400}.dashboard-subtitle-bar{font-size:18px;font-weight:300}.dashboard-figure{font-size:22px;font-weight:400}.dashboard-figurePer{font-size:20px;font-weight:300}.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-size:13px;font-weight:400}.dashboard-legend{font-size:12px;font-weight:400;height:30px;width:100%}.dashboard-half-height-legend{font-size:12px;height:135px;width:65px}.application-detail-view section.info{width:850px}}@media (min-width:1450px) and (max-width:1689px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:15px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:18px;left:604px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:627px}.dashboard-medium-chart #clusterGraphs svg text{font-size:13px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:13px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:185px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:275.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:117px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-645px;width:1310px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:15px;min-height:290px;width:150px}.absolut,.percentage{font-size:20px}.modal-chart-detail .modal-inner-detail{width:1130px}.modal-body .dashboard-large-chart{width:851px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:622px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:599px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:275.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:117px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:394px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:13px;font-weight:400}.dashboard-subtitle-bar{font-size:20px;font-weight:300}.dashboard-figure{font-size:26px;font-weight:400}.dashboard-figurePer{font-size:24px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:13px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:13px;height:150px;width:70px}.application-detail-view section.info{width:1090px}}@media (min-width:1690px) and (max-width:1929px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:325px}.dashboard-sub-bar-menu{font-size:16px}.dashboard-medium-chart .dashboard-interior-chart{height:325px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:22px;left:720px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:325px;width:747px}.dashboard-medium-chart #clusterGraphs svg text{font-size:14px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:334px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:14px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:154px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:225px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:48.67px;line-height:48.67px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:87.33px;line-height:42.67px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:150.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:145.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:48.83px;line-height:48.83px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:331.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:141px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-765px;width:1550px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:16px;min-height:330px;width:170px}.absolut,.percentage{font-size:24px}.modal-chart-detail .modal-inner-detail{width:1350px}.modal-body .dashboard-large-chart{width:1011px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:742px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:715px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:331.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:141px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:474px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:14px;font-weight:400}.dashboard-subtitle-bar{font-size:24px;font-weight:300}.dashboard-figure{font-size:30px;font-weight:400}.dashboard-figurePer{font-size:28px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:14px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:14px;height:170px;width:80px}.application-detail-view section.info{width:1330px}}@media (min-width:1930px) and (max-width:2169px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:385px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:385px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:26px;left:836px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:385px;width:867px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:394px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:14px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:184px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:265px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:58.67px;line-height:58.67px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:107.33px;line-height:52.67px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:180.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:175.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:58.83px;line-height:58.83px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:387.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:165px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-885px;width:1790px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:390px;width:180px}.absolut,.percentage{font-size:28px}.modal-chart-detail .modal-inner-detail{width:1580px}.modal-body .dashboard-large-chart{width:1171px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:862px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:831px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:387.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:165px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:554px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:28px;font-weight:300}.dashboard-figure{font-size:34px;font-weight:400}.dashboard-figurePer{font-size:32px;font-weight:300}.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-size:14px;font-weight:400}.dashboard-legend{font-size:15px;font-weight:400;height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:200px;width:85px}.application-detail-view section.info{width:1570px}}@media (min-width:2170px) and (max-width:2409px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:20px;left:962px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:987px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:15px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:305px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:443.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:189px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-1005px;width:2030px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:290px;width:150px}.absolut,.percentage{font-size:22px}.modal-chart-detail .modal-inner-detail{width:1850px}.modal-body .dashboard-large-chart{width:1331px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:982px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:957px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:443.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:189px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:634px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:22px;font-weight:300}.dashboard-figure{font-size:36px;font-weight:400}.dashboard-figurePer{font-size:34px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:15px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:150px;width:70px}.application-detail-view section.info{width:1810px}}@media (min-width:2410px) and (max-width:2649px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:20px;left:1082px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:1107px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:15px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:345px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:499.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:213px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-1125px;width:2270px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:290px;width:150px}.absolut,.percentage{font-size:22px}.modal-chart-detail .modal-inner-detail{width:2090px}.modal-body .dashboard-large-chart{width:1491px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:1102px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:1077px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:499.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:213px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:714px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:22px;font-weight:300}.dashboard-figure{font-size:36px;font-weight:400}.dashboard-figurePer{font-size:34px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:15px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:150px;width:70px}.application-detail-view section.info{width:2050px}}@media (min-width:2650px) and (max-width:2889px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:20px;left:1202px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:1227px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:15px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:385px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:555.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:237px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-1245px;width:2510px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:290px;width:150px}.absolut,.percentage{font-size:22px}.modal-chart-detail .modal-inner-detail{width:2330px}.modal-body .dashboard-large-chart{width:1651px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:1222px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:1197px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:555.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:237px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:794px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:22px;font-weight:300}.dashboard-figure{font-size:36px;font-weight:400}.dashboard-figurePer{font-size:34px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:15px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:150px;width:70px}.application-detail-view section.info{width:2290px}}div.headerBar{position:absolute}div.centralRow{background:rgba(64,74,83,.04);height:100%;min-height:100%;overflow-y:auto;position:relative;right:0}div.centralContent{background-color:transparent;margin-top:10px;width:100%;padding:5px 5px 20px}.contentDiv{list-style:none;padding:0}.contentDiv li{background-color:rgba(0,0,0,.05)}.contentDiv a.add{display:block;font-weight:400;padding:40px 0;text-align:left}.modal-body th .valueCell,.modal-body th th.actionCell,.modal-body th th.keyCell,.waitModal{text-align:center}.contentDiv .icon{padding-left:5px;padding-right:5px;padding-top:10px}.contentDiv:after{clear:both}.contentDiv:after,.contentDiv:before{display:table;line-height:0}.clusterInfoIcon{float:left;padding-left:5px;padding-top:2px}.waitModal.icon{font-size:100px;height:120px}.waitModal.message{font-size:20px}.icon_arangodb_info{color:#333;font-size:23px}li a [class*=" icon_arangodb"],li a [class^=icon_arangodb]{font-size:18px;position:absolute;right:4px;top:2px}.fa-minus-circle{color:#e74c3c;font-size:14pt}.fa-plus-circle{color:#2ecc71;font-size:14pt}.fa-minus-circle:hover,.fa-plus-circle:hover{cursor:pointer}.dropdownImport,div.headerDropdown{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:2px;clear:both;display:none;margin-bottom:15px;padding:10px;position:relative;width:auto}.dropdownImport.smallDropdown .dropdownInner,div.headerDropdown.smallDropdown .dropdownInner{min-height:20px}.dropdownImport.headerDropdown input[type=checkbox].css-checkbox,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox{display:none}.dropdownImport.headerDropdown input[type=checkbox].css-checkbox label.css-label,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox label.css-label{background-position:0 0;background-repeat:no-repeat;display:inline-block;font-size:15px;height:15px;margin-top:0;padding-left:20px;vertical-align:middle}.dropdownImport.headerDropdown input[type=checkbox].css-checkbox:checked+label.css-label,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox:checked+label.css-label{background-position:0 -15px}div.dropdown-title{margin-bottom:10px}div.dropdownInner{-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0;min-height:125px;position:relative;width:auto}div.dropdownInner .nav-header{font-size:10pt}div.dropdownInner>.nav-header{color:#000;font-size:10pt;font-weight:400}div.dropdownInner>label{color:#000;font-weight:300}div.dropdownInner ul{border-left:1px solid rgba(140,138,137,.25);display:inline;list-style-type:none;margin-left:10px;margin-top:10px;min-height:105px;width:175px}div.dropdownInner ul:first-of-type,div.queryline input[type=file]{border:0}div.dropdownInner ul label{color:#000;padding-left:20px}div.dropdownInner ul li .fa{color:#999;margin-right:5px}div.dropdownInner ul li .fa.fa-square-o{margin-left:1px;margin-right:6px}div.dropdownInner ul li .fa.fa-check-circle-o,div.dropdownInner ul li .fa.fa-check-square-o,div.dropdownInner ul li .fa.fa-dot-circle-o{color:#2ecc71}div.queryline{color:#000;height:35px}div.queryline .textDiv{margin-right:10px;margin-top:4px}div.queryline input,div.queryline select{margin-bottom:5px}div.queryline input{width:16%}div.queryline.querylineAdd span{color:#fff;padding-left:10px;position:relative;top:-21px}div.queryline .removeFilterItem i{margin-left:5px!important;margin-top:0!important}div.queryline div.searchByAttribute{margin-left:6px;margin-right:6px;position:relative}div.queryline div.searchByAttribute input{width:140px}div.queryline div.searchByAttribute>ul.gv-dropdown-menu{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;background-color:#fff;color:#fff;display:none;left:0;position:absolute;top:20px;width:247px}div.dropdownImport{background-color:#fff;border-radius:3px;display:none;position:relative;padding:10px 10px 5px}div.dropdownImport input{line-height:0;margin-bottom:-15px;margin-top:5px}select.filterSelect{color:#00f;margin-left:10px;margin-right:10px;width:80px}#filterHeader button{float:right;margin-left:10px!important;margin-top:1px}div.input-append button.gv_example_toggle{-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;background-color:#8f8d8c;height:30px;margin-left:-1px;padding-left:10px;padding-right:10px;padding-top:12px;vertical-align:top}div.input-append button.gv_example_toggle:hover{background-color:#2ecc71}.searchEqualsLabel{margin-left:6px;margin-right:6px}img.gv-throbber{background-image:url(../img/swagger/throbber.gif)}span.gv_caret{border-top:5px solid #fff;margin-top:2px!important}input.search-input{border:1px solid #fff;height:20px;line-height:20px;margin-right:-4px;margin-top:3px;width:120px}.search-field{margin-left:10px;margin-right:3px}.search-field .fa-search{color:#c2c2c2;font-size:12pt;margin-left:-20px;opacity:.5;position:absolute;right:9px;top:9px}div.headerBar,div.headerBar .infoField{color:#000;float:right;padding-left:5px;padding-right:5px}div.headerBar,legend.gv-inner{font-size:16px}.search-field .fa-search:hover{cursor:pointer;opacity:1}.gv-search-submit-icon,.search-submit-icon{background-image:url(../img/enter_icon.png);background-size:14px;height:14px;margin-left:-18px;opacity:.2;position:absolute;width:14px}.gv-search-submit-icon:hover,.search-submit-icon:hover{opacity:.8}.search-submit-icon{margin-top:11px}.gv-search-submit-icon{margin-top:6px}div.headerBar{background-color:none;border-radius:2px;height:36px;margin-top:-55px;right:0}div.headerBar.marginTop5{margin-top:-60px}div.headerBar .infoField{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:3px!important;font-size:12px;margin-right:7px;margin-top:7px}div.headerBar .infoField .fa{cursor:pointer;margin-left:5px}div.headerBar input[type=checkbox].css-checkbox{display:none}div.headerBar input[type=checkbox].css-checkbox label.css-label{background-position:0 0;background-repeat:no-repeat;cursor:pointer;display:inline-block;font-size:15px;height:15px;margin-top:0;padding-left:20px;vertical-align:middle}div.headerBar input[type=checkbox].css-checkbox:checked+label.css-label{background-position:0 -15px}div.headerBar input[type=radio]{display:none}div.headerBar input[type=radio] label span{background:url(../img/check_radio_sheet.png) -38px top no-repeat;cursor:pointer;display:inline-block;height:19px;margin:-1px 4px 0 0;vertical-align:middle;width:19px}#transparentHeader input[type=checkbox].css-checkbox,.contentTables tr.contentRowActive span,.dashboard-legend .dashboard-legend-inner br,.dashboard-row .fa-arrows-alt,.modal-delete-confirmation,.nvtooltip{display:none}div.headerBar input[type=radio]:checked+label span{background:url(../img/check_radio_sheet.png) -57px top no-repeat}.headerButtonList a span .fa-top{color:#fff;font-size:7pt;position:absolute}.headerButtonList a span .fa-top:hover{color:#2ecc71}.headerButtonList a.error{color:#e74c3c}.headerButtonList a.error:hover{background-color:#e74c3c;border-color:#e74c3c;color:#fff}.headerBar a.arangoHeader{color:#000;font-size:11.5pt;font-weight:100;left:0;position:relative;top:7px}.headerBar>div.headerButtonBar{margin:4px 0;margin-bottom:0!important}.breadcrumb{background:0 0;border:0;border-radius:0;color:#fff;font-size:12pt;font-weight:100;line-height:45px;margin:0 0 0 -4px;padding:0 0 0 10px}.breadcrumb .fa{margin-left:10px;margin-right:8px}.breadcrumb .fa-ellipsis-v{font-size:10pt;opacity:0}.breadcrumb .disabledBread{color:#fff;float:left;font-size:12pt;font-weight:100;padding-right:5px;position:relative}.breadcrumb .disabledBread i{font-size:10pt;margin-left:10px}.breadcrumb .disabledBread:hover{cursor:default}.breadcrumb .activeBread{color:#fff;float:left;font-size:11pt;font-weight:100;-webkit-tap-highlight-color:transparent;-webkit-transition:opacity .2s cubic-bezier(.645,.045,.355,1);transition:opacity .2s cubic-bezier(.645,.045,.355,1)}.breadcrumb .activeBread:hover{opacity:.65}.breadcrumb a{color:#fff!important;opacity:.8;transition:all .2s ease-in}.breadcrumb a:hover,.subViewNavbar li:hover a{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in}.breadcrumb a:hover{opacity:1;transition:all .2s ease-in}.breadcrumb #app-development-path{background-color:#fff;border-bottom:1px solid rgba(140,138,137,.25);border-left:1px solid rgba(140,138,137,.25);border-radius:3px;border-right:1px solid rgba(140,138,137,.25);height:24px;margin-left:-6px;margin-top:-10px;padding-left:5px;width:100%}.arangoHeader{font-weight:400}.checkboxLabel{margin-top:4px;padding-left:0}.css-label{background-image:url(../img/dark-check-green.png)}.css-label-round{background-image:url(../img/dark-check-green-round.png)}.modal-dashboard-header,.modal-header{background-color:#fff;border-bottom:0!important;border-radius:3px;margin-top:5px;padding-left:5px;padding-right:10px;padding-top:4px}.modal-dashboard-header .arangoHeader,.modal-header .arangoHeader{color:#000;font-size:13pt;font-weight:100;left:5px;position:relative;top:2px}.modal-dashboard-header a,.modal-header a{top:2px!important}.modal-dashboard-header .close,.modal-header .close{color:#fff;font-weight:300;margin-top:2px;opacity:.5}.modal-dashboard-header .close:hover,.modal-header .close:hover{opacity:1}.select2-drop-active{border:2px solid #3498db;border-top:0;margin-top:-2px;width:452px!important;z-index:9999999}.select2-no-results,.select2-results{font-weight:100}.modal-tabbar{border-bottom:1px solid #666}.modal-body{color:#736b68;font-size:14px;font-weight:300;max-height:410px}.modal-body input{height:20px;width:436px}.modal-body select{height:33px;width:452px}.modal-body .select2-container-multi.select2-container-active .select2-choices{border:2px solid #3498db}.modal-body .select2-choices{background-image:none!important;border:2px solid rgba(140,138,137,.25);border-radius:3px;-webkit-box-shadow:none;box-shadow:none;width:448px}.modal-body .select2-choices input:active{-webkit-box-shadow:none;box-shadow:none;outline:0!important}.modal-body .select2-choices .select2-search-choice{margin:5px 0 3px 5px!important}.modal-body .select2-choices li{background-color:#fff!important;background-image:none!important;color:#000}.modal-body tr.first,.modal-body tr.last,.modal-body tr.middle{background-color:#f5f8f0}.modal-body .select2-choices li a{margin-left:1px;margin-top:-1px}.modal-body .select2-choices:active{border:1px solid #999;-webkit-box-shadow:none!important;box-shadow:none!important;outline:transparent!important}.modal-body .nav-tabs{margin-top:15px}.modal-body .nav-tabs>li>a:hover{border-color:#8c8a89}.modal-body input,.modal-body select,.modal-body textarea{margin-top:10px}.modal-body input[type=checkbox]{margin-bottom:10px}.modal-body input[type=text].invalid-input{border-color:rgba(234,23,23,.6)}.modal-body input[type=text].invalid-input:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(234,23,23,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(234,23,23,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(234,23,23,.6)}.modal-body input[type=file]{line-height:17px}.modal-body tr.spacer{height:10px}.modal-body tr.first th:first-child{border-top-left-radius:3px}.modal-body tr.first th:last-child{border-top-right-radius:3px}.modal-body tr.middle{padding-left:10px;padding-right:10px}.modal-body tr.last th:first-child{border-bottom-left-radius:3px}.modal-body tr.last th:last-child{border-bottom-right-radius:3px}.modal-body tr.first th:first-child,.modal-body tr.last th:first-child,.modal-body tr.middle th:first-child{padding-left:10px}.modal-body tr.first th:last-child,.modal-body tr.last th:last-child,.modal-body tr.middle th:last-child{padding-right:10px}.modal-body th.actionCell{width:30px}.modal-body th.keyCell{width:170px}.modal-body th.keyCell input{width:150px}.modal-body th .valueCell{width:300px}.modal-body th .valueCell input{width:290px}.modal-body th .select2-container{margin-bottom:10px;margin-top:10px}.modal-body .icon-info-sign{margin-bottom:10px;margin-left:10px;opacity:.7;padding-bottom:5px}.modal-body .icon-info-sign:hover{opacity:1}.modal-body .icon_arangodb_info{color:#736b68;font-size:18px;margin-top:-10px;position:absolute;right:12px}.modal-body .icon_arangodb_info:hover{color:#000}.modal-body .collapse{margin-right:-14px;position:relative}.modal-body .accordion-inner{border-top:0;margin-left:0;padding-left:0;padding-right:0}.modal-body .accordion-toggle span .caret{border-top-color:#000;float:right;margin-top:5px}.modal-body .accordion-toggle.collapsed span .caret{-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.modal-body .collectionTh{height:55px}.modal-body .tab-content{min-height:200px}.modal-body .tab-content .tab-pane{border-top:1px solid #666!important;margin-left:0!important;padding-top:10px}.modal-body .tab-content .tab-pane-modal{border-top:none!important}.modal-body .tab-content #appstore{max-height:290px}.modal-body .errorMessage{background:#e74c3c;border-radius:4px;color:#fff;font-size:9pt;font-weight:100;margin-top:-9px;padding-left:5px;padding-right:5px;position:absolute}.modal-body .nav .tab-icon{margin-right:5px;margin-top:-3px;width:20px}.modal-text{font-weight:300;padding-bottom:3px;padding-top:3px}.modal-backdrop,.modal-backdrop.fade.in{opacity:.4}.fade{opacity:0;-moz-transition:opacity .03s linear;-ms-transition:opacity .03s linear;-o-transition:opacity .03s linear;-webkit-transition:opacity .03s linear;transition:opacity .03s linear}.modal{border:0!important;border-radius:3px!important;box-shadow:0;margin-left:-325px!important;width:650px;z-index:9999999}.modal .fade.in{top:12.1%!important}.modal table tr:last-child{border-bottom:0!important}.waitModal{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background:0 0;border:0;color:#fff}.waitModalBackdrop{opacity:.7!important}.modalTooltips span{color:#736b68;font-size:20px}.fixedDropdown .dropdown-header a,.fixedDropdown .notificationItem,.modalTooltips span:hover{color:#000}.gv-object-view{text-align:left;white-space:pre}.capitalize{text-transform:capitalize}.modal-footer{border-top:0!important;padding-right:17px}.modal-footer .button-close{margin-left:20px;margin-right:10px}.modal-header{margin-left:5px;margin-right:5px}.modal-dashboard-header{margin-left:0;margin-right:0;padding-bottom:9px}.modal-delete-confirmation button{margin-right:10px;margin-top:-4px}.modal-delete-confirmation button .modal-confirm-delete{margin-right:-18px}.modal-delete-confirmation fieldset input{float:left}.modal-delete-confirmation fieldset label{float:left;margin-left:10px}.createModalDialog table{width:100%}.createModalDialog .collection-info-figures table{float:left;margin-left:0;margin-right:0;margin-top:0;min-width:200px;padding:3px;text-align:left}.createModalDialog .figures1,.createModalDialog .figures2{margin-bottom:20px;width:300px}.createModalDialog .figures2{margin-left:20px!important}.createModalDialog .figures3{margin-bottom:0;width:100%}.foxx-store-row .foxx-name{font-weight:700}.foxx-store-row .foxx-author{font-size:10pt;font-weight:300;margin-top:-4px}.foxx-store-row .foxx-version{font-weight:400}#new-app-mount{margin-right:24px;width:360px}#control_event_edge_delete_modal,#control_event_edge_edit_modal,#control_event_new_node_modal,#control_event_node_delete_modal,#control_event_node_edit_modal{margin-left:-320px;width:640px}.navlogo .stat_cpu,.navlogo .stat_ram{width:26px;height:26px}.navlogo .stat_cpu{margin-top:1px}.navlogo .stat_cpu path{fill:#aa0}.navlogo .stat_ram path{fill:#070}.navlogo .stat_req{height:22px;width:22px}.navlogo .stat_req path{fill:#aa0}#notification_menu .innerDropdownInnerUL{margin-left:0}#noty_bottom_layout_container li{border:0!important}.noty_type_error .arango_message{top:2px}.noty_bar .noty_buttons{background-color:transparent!important;border:0!important;bottom:0;height:1px;margin-bottom:30px!important;margin-top:-35px!important;position:relative;right:-23px}.noty_bar .noty_buttons button{margin-bottom:2px;margin-right:-1px}.noty_bar .arango_message{font-weight:400!important}.noty_bar .arango_message div{float:right;width:20px}.fixedDropdown{background:#fff!important;border-color:rgba(140,138,137,.25)!important;border-radius:3px!important;margin:10px -3px 0!important;right:-1px!important;width:210px}.fixedDropdown .dropdown-header,.fixedDropdown .dropdown-item,.innerDropdownInnerUL{border-bottom:1px solid rgba(0,0,0,.2)}.fixedDropdown .dropdown-header{margin-left:-1px;padding:0!important}.fixedDropdown a{padding-left:5px!important}.fixedDropdown .notificationItemContent{font-size:.9em;font-weight:300;margin-left:15px;max-width:180px;min-height:15px;white-space:normal;width:180px;word-wrap:break-word}.fixedDropdown button{margin-right:5px;margin-top:5px}.fixedDropdown .notificationItem .notificationItemTitle{color:#000;font-weight:400;max-width:165px;overflow-wrap:break-word;white-space:normal;word-wrap:break-word}.fixedDropdown .notificationItem .notificationItemTitle:hover{background-color:transparent;cursor:default}.fixedDropdown .notificationItem i{color:rgba(0,0,0,.2);font-size:20px;padding-left:5px;position:relative;right:2px}.fixedDropdown .notificationItem i:hover{color:#000}.innerDropdownInnerUL{height:220px!important;min-height:220px;overflow-x:hidden;overflow-y:auto;width:100%}.innerDropdownInnerUL .dropdown-item:hover{background-color:#e1e1e1!important}.innerDropdownInnerUL li{width:auto!important}#stat_hd{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid rgba(140,138,137,.25);height:25px;margin-left:-10px;margin-top:8px;position:relative;right:3px;text-align:center;width:25px}.contentButtons,.contentTables{margin-bottom:10px;width:100%}#stat_hd #stat_hd_counter{color:#c2c2c2;line-height:25px;text-align:center}.fullNotification{background-color:#e74c3c!important;border:1px solid #e74c3c!important}.fullNotification p{color:#fff!important}.contentTables tr.contentRowActive a,.contentTables tr.contentRowInactive a{color:#000!important}.contentButtons{clear:both}.contentButtons #createDatabase,.contentButtons #createUser{margin-left:0}.contentTables thead{text-align:left}.contentTables thead tr{background-color:#fff;border-bottom:1px solid #c2c2c2}.contentTables tbody tr:nth-child(odd){background-color:#d9d9d9}.contentTables tbody tr:nth-child(even){background-color:#fff}.contentTables tr.contentRowActive{background-color:#bdcc92!important;font-weight:400}.contentTables .dbThFirst{width:90%}.contentTables .dbThSecond{width:10%}.contentTables td{padding:12px 18px}.contentTables td span{float:right;font-size:22px}.contentTables .collectionThSec{margin-right:0;width:80%}.contentTables .collectionTh{margin-right:0;width:5%}.usermenu{width:40px}.userImg{margin-top:-11px}.userImg .caret{margin-top:13px}.user-menu-img{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:#fff;height:25px}.ui-tooltip{background-color:#2ecc71!important;border:0!important;border-radius:3px!important;box-shadow:none!important;color:#fff!important;font-size:10pt!important;font-weight:100!important;z-index:99999999}.tooltip-inner{max-width:300px!important;white-space:normal!important;word-wrap:break-word!important}.arangoDataTable .key,.dashboard-sub-bar .dashboard-sub-bar-title,.dbselection,.subnavmenu .icon,.subnavmenu .info,.subnavmenu .state,div.gv-colour-list li{text-overflow:ellipsis;white-space:nowrap}.index-tooltip{color:#736b68}.index-tooltip:hover{color:#000}.index-tooltip .arangoicon{font-size:18px!important}.tooltipInfoTh{width:10%}.arangoToolbar span.action:hover{background-color:#2ecc71;border-radius:3px;color:#fff;cursor:pointer}.arangoToolbar{background-color:#fff;border:1px solid rgba(140,138,137,.25);height:45px;width:100%}.arangoToolbar .pull-left,.arangoToolbar .pull-right{height:30px;margin-top:8px}.arangoToolbar .pull-left i.positive,.arangoToolbar .pull-right i.positive{color:#2ecc71}.arangoToolbar .pull-left i.warning,.arangoToolbar .pull-right i.warning{color:#f1c40f}.arangoToolbar .pull-left button{margin-left:8px}.arangoToolbar .pull-right button:first-child,.arangoToolbar .pull-right select:first-child{margin-right:6px}.arangoToolbar span{padding:5px 8px;position:relative;top:5px;font-weight:100;margin-left:10px}.arangoToolbar span.clickable{cursor:pointer;margin-left:0;opacity:.5;top:1px}.arangoToolbar span.clickable:hover{opacity:1}.arangoToolbar i{font-size:11pt;font-style:normal}.arangoToolbar i.fa{font-size:12pt;margin-right:5px}.arangoToolbar .toolbarType{background:#5bc0de;border-radius:3px;color:#fff;margin-left:8px}.arangoToolbar .styled-select{width:auto}.arangoToolbarBottom{clear:both}.arangoToolbarBottom #executeQuery{margin-right:8px}.arangoToolbarBottom .button-close:last-child{margin-right:10px}.dbselection{float:left;margin-right:3px;max-width:160px;overflow:hidden}.dbselection .fa{color:#fff;opacity:.3}.dbselection .fa-caret-square-o-down{margin-left:5px}.dashboard-bar-chart-container,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-medium-chart,.dashboard-small-chart .dashboard-small-chart-inner,.dashboard-tendency-container{background-color:#fff;border-left:0 solid #000;box-sizing:border-box}.dashboard-bar-chart-container:first-child,.dashboard-full-width-chart .dashboard-full-width-chart-inner:first-child,.dashboard-large-chart .dashboard-large-chart-inner:first-child,.dashboard-medium-chart:first-child,.dashboard-small-chart .dashboard-small-chart-inner:first-child,.dashboard-tendency-container:first-child{margin-left:0}.dashboard-bar-chart-container,.dashboard-full-width-chart,.dashboard-large-chart,.dashboard-medium-chart,.dashboard-small-chart,.dashboard-tendency-container{border:1px solid rgba(64,74,83,.2);margin-left:-1px;margin-top:-2px;position:relative}.dashboard-interior-chart{width:100%!important}.dashboard-interior-chart>div{margin-left:-15px;margin-top:10px}.dashboard-sub-bar-menu{cursor:pointer;position:absolute;right:9px;top:6px}.dataNotReadyYet{color:#f1c40f;font-size:14px;font-weight:100;text-align:center}.dashboard-sub-bar,.dashboard-sub-bar .dashboard-sub-bar-title{font-size:11pt;font-weight:600;text-align:center;text-transform:uppercase}.dashboard-sub-bar{background-color:#fff;color:rgba(0,0,0,.5);height:50px;line-height:24px;margin:0;padding:10px 6px 20px}.dashboard-sub-bar .dashboard-sub-bar-title{color:#000;opacity:.5;overflow:hidden;width:100%}.dashboard-full-width-chart{border:1px solid rgba(104,103,102,.1);border-radius:0;margin-right:12px;width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-small-chart .dashboard-small-chart-inner{border-left:5px solid #fff;border-right:5px solid #fff;border-top:5px solid #fff;padding-bottom:10px}.dashboard-full-width-chart .dashboard-full-width-chart-inner{background-color:#fff;padding-top:12px;width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-subtitle-bar.top{border-bottom:1px solid #e1e1e1;height:48px;line-height:48px;text-align:right}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner{margin-left:10px;margin-right:10px}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table{margin-bottom:10px;margin-top:10px;table-layout:fixed;width:100%}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.dashboard-medium-chart .dashboard-interior-chart{margin-bottom:0}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table .no-data{font-style:italic;font-weight:100}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table tr{border-bottom:1px solid rgba(0,0,0,.025)}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table td:first-child{width:100px}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table td:last-child{text-align:right}.dashboard-full-width-chart .state{background-color:#8c8a89;border-radius:5px;color:#fff;font-weight:300;margin-left:5px;padding-left:6px;padding-right:6px}.dashboard-large-chart .dashboard-large-chart-inner{background-color:#fff}.dashboard-small-chart{background:#fff;border-radius:0}.dashboard-small-chart .dashboard-small-chart-inner{background-color:#fff;padding-top:5px}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-bar rect{fill-opacity:.15;stroke-opacity:.8;stroke-width:.5px}.dashboard-medium-chart-outer{border-radius:0}.dashboard-medium-chart{background-color:#fff;margin-bottom:0;padding-top:10px}.dashboard-medium-chart .dashboard-medium-chart-menu{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border:0 solid rgba(0,0,0,.3);color:rgba(0,0,0,.3);cursor:pointer;padding:0 4px;position:absolute;z-index:1000}.dashboard-medium-chart .dashboard-medium-chart-menu:hover{color:rgba(0,0,0,.7)}.dashboard-medium-chart .dashboard-medium-chart-inner{padding-bottom:10px}.dashboard-medium-chart .clusterChart .slice path{fill-opacity:.15;stroke-opacity:1;stroke-width:1.5px}.tendency-box-sizing .dashboard-row:last-child .dashboard-medium-chart-outer:last-child{margin-left:-2px}.dashboard-tendency-container{box-sizing:content-box}.dashboard-tendency-container .dashboard-sub-bar{height:46px}.dashboard-tendency-container .dashboard-tendency-chart{background-color:#fff;border-left:5px solid #fff;border-right:5px solid #fff;border-top:5px solid #fff;padding-bottom:5px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{background-color:#fff;box-sizing:border-box;margin-top:5px;padding:0;width:50%}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency:first-child{border-right:1px solid #e1e1e1}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-subtitle-bar{border-bottom:1px solid #e1e1e1;box-sizing:inherit;padding-right:11px;text-align:right;width:100%}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-figure{box-sizing:border-box;text-align:center;width:100%}.dashboard-bar-chart-container{background:0 0;border-radius:0;box-sizing:border-box}.dashboard-bar-chart-container .dashboard-sub-bar{padding-bottom:17px;padding-top:13px}.dashboard-bar-chart-container .dashboard-bar-chart{background-color:#fff;border-left:5px solid #fff;border-right:5px solid #fff;border-top:5px solid #fff;padding-bottom:8px;width:auto}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{margin-top:5px;padding:0 8px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{font-weight:400;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{color:#000;font-weight:500;text-align:center;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{padding-top:10px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart .nv-bar rect{fill-opacity:.6;stroke-opacity:.6;stroke-width:.5px}.dashboard-legend .dashboard-legend-inner{margin-right:25px;padding:10px 5px 5px 0;text-align:right}#dashboardDetailedChart .dygraph-axis-label-y,.dashboardDetailChart .dygraph-axis-label-y,.innerDashboardChart .dygraph-axis-label-y{text-align:left}.dashboard-legend .dashboard-legend-inner span{padding-left:10px}.dashboard-spacer{margin:0 12px}.dashboard-headerbar{margin-bottom:15px;margin-top:10px}.modal-chart-detail .modal-dashboard-legend .dashboard-legend-inner{padding-left:20px}.dashboard-half-height-legend .dashboard-legend-inner{padding-top:20px}.dashboard-title-bar{background-color:#686766;color:#fff;font-size:14.5px;font-weight:400;height:30px;line-height:30px;padding:0 5px 0 10px}.dashboard-title-bar .dashboard-half-title-bar{border-left:1px solid #000;margin-left:-1px;width:50%}.dashboard-title-bar .dashboard-half-title-bar:first-child{border-left:0;margin-left:0}.dashboard-row{margin-bottom:0;margin-left:2px;margin-right:0}.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{color:#666}#repl-numbers,#repl-progress,#repl-ticks{width:33.3%!important}#repl-numbers .inner,#repl-progress .inner,#repl-ticks .inner{margin-top:0}#replication,#requests,#system{margin-bottom:10px}.dashboardModal{-moz-border-radius:8px!important;-webkit-border-radius:8px!important;border-radius:8px!important;height:80%;margin-left:-45%;min-width:780px;overflow:auto;padding:10px;top:10%;width:90%!important}#dashboardHttpGroup{border:6px solid #000;height:100%;width:100%}#dashboardDetailedChart{border:1px solid #000;height:300px;width:100%}.innerDashboardChart{bottom:5px;left:5px;position:absolute;right:5px;top:5px}.dashboardChart{background-color:#fff;border:1px solid rgba(0,0,0,.2);float:left;height:210px;margin:1.05%;position:relative;width:31%}.dygraph-label.dygraph-title{color:#000;font-size:15px;font-weight:400;text-align:left}#dashboardDetailedLineChart{padding-top:10px}.dashboardDistribution{float:left;width:270px}.dashboardDistribution svg{height:220px;width:250px}.showHotkeyHelp{cursor:pointer}.shortcuts{font-size:14px;font-weight:200}.shortcuts b{border-left:1px solid rgba(0,0,0,.34);margin-left:5px;padding-left:5px}.shortcuts .clearShortcut,.shortcuts b:first-child{border-left:0;margin-left:0;padding-left:0}.loginFixedWindow{background:#649068;height:100%;left:0;position:fixed;top:0;width:100%;z-index:9999}.loginFixedWindow #databases{height:140px}.loginFixedWindow #databases #logout{margin-top:20px}.loginFixedWindow .resizecontainer{position:relative;top:0}.loginFixedWindow .resizecontainer img{height:33px;margin-left:-6px;margin-top:9px}.login-window{background-color:rgba(255,255,255,.75);border:1px solid rgba(140,138,137,.25);border-radius:3px;height:auto;margin:0 auto;position:relative;top:100px;width:350px;padding:20px 20px 50px}.login-window select{margin-bottom:30px;padding-left:35px}.login-window .login-logo-round{margin-bottom:25px;margin-top:10px}.login-window .login-logo-round img{display:block;margin:0 auto;width:150px}.login-window .checking-password{box-sizing:border-box;color:rgba(0,0,0,.5);margin-left:-21px;margin-top:-25px;position:absolute;text-align:center;width:100%}.login-window form .fa{color:rgba(0,0,0,.2);float:left;font-size:14pt;left:30px;margin-top:11px;position:absolute}.login-window .wrong-credentials{color:#e74c3c;margin-top:-30px;text-align:center}.login-window .login-space{height:50px}.login-window .login-input{background:#f2f2f2!important;border:2px #f2f2f2!important;box-sizing:border-box;font-size:14px;height:40px;margin:0 0 15px;outline:0;padding:10px 10px 10px 35px;width:100%;border-radius:3px}.login-window .form-error{border:2px solid #e74c3c!important}.login-window button{height:40px;width:100%}.query-toolbar{background-color:#f0f0f0;border-bottom:0;border-style:solid;border-width:1px;font-size:20px;height:27px;margin-left:0;margin-right:0}.queryManagementBottomActions button,.querySizeDiv{margin-right:10px}.query-toolbar span:hover{background-color:#e74c3c;color:#fff}.queryBottomActions{border-top:1px solid rgba(140,138,137,.25);padding:10px}.queryExecutionTime{margin-left:10px;margin-top:15px}.queryManagementBottomActions{background-color:#fff;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top:1px solid #c2c2c2;height:40px;margin-top:-2px;padding-top:10px}.styled-select{float:right;height:30px;overflow:hidden;width:220px}.styled-select select{background:#fff;border:1px solid #c2c2c2!important;border-radius:0!important;font-size:14px;font-weight:300;height:30px;line-height:1;outline:0;padding:5px;padding-left:5px!important;padding-top:3px!important}.querySizeDiv,.querySizeDiv select{height:30px!important}.styled-select select:focus{outline:0}.querySizeDiv{width:130px!important}.inputEditorWrapper{border-bottom:3px solid rgba(140,138,137,.25)!important;border-left:1px solid rgba(140,138,137,.25);border-right:1px solid rgba(140,138,137,.25);clear:both;height:300px;min-height:300px;width:100%}.inputEditorWrapper .aqlEditorWrapper{border:0!important;border-right:3px solid rgba(140,138,137,.25)!important;float:left;height:100%!important;max-width:85%;min-width:20%;width:70%}.inputEditorWrapper #arangoMyQueriesTable tbody tr{cursor:copy}.inputEditorWrapper .aqlEditorWrapper,.inputEditorWrapper .bindParamEditorWrapper{background-color:#fff;overflow:hidden}.inputEditorWrapper .aqlEditorWrapper .stringtype,.inputEditorWrapper .bindParamEditorWrapper .stringtype{color:#ce2f30}.inputEditorWrapper .aqlEditorWrapper .arraytype,.inputEditorWrapper .aqlEditorWrapper .objecttype,.inputEditorWrapper .bindParamEditorWrapper .arraytype,.inputEditorWrapper .bindParamEditorWrapper .objecttype{color:#00f}.inputEditorWrapper .aqlEditorWrapper .numbertype,.inputEditorWrapper .bindParamEditorWrapper .numbertype{color:#044}.inputEditorWrapper .aqlEditorWrapper .booleantype,.inputEditorWrapper .bindParamEditorWrapper .booleantype{color:#c12dad}.inputEditorWrapper .aqlEditorWrapper table,.inputEditorWrapper .bindParamEditorWrapper table{border-top:0}.inputEditorWrapper .aqlEditorWrapper table tbody,.inputEditorWrapper .bindParamEditorWrapper table tbody{display:block;overflow-y:auto}.inputEditorWrapper .aqlEditorWrapper table .truncate,.inputEditorWrapper .bindParamEditorWrapper table .truncate{opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:30%}.inputEditorWrapper .aqlEditorWrapper table tr.noBgColor,.inputEditorWrapper .bindParamEditorWrapper table tr.noBgColor{background-color:transparent!important}.inputEditorWrapper .aqlEditorWrapper table tr.selected,.inputEditorWrapper .bindParamEditorWrapper table tr.selected{background-color:rgba(125,188,66,.64);color:#fff}.inputEditorWrapper .aqlEditorWrapper table tr.selected .spanWrapper,.inputEditorWrapper .bindParamEditorWrapper table tr.selected .spanWrapper{background-color:rgba(255,255,255,.65)}.inputEditorWrapper .aqlEditorWrapper table tr.selected .fa-comments,.inputEditorWrapper .aqlEditorWrapper table tr.selected .fa-copy,.inputEditorWrapper .bindParamEditorWrapper table tr.selected .fa-comments,.inputEditorWrapper .bindParamEditorWrapper table tr.selected .fa-copy{color:#000}.inputEditorWrapper .aqlEditorWrapper table thead,.inputEditorWrapper .bindParamEditorWrapper table thead{display:block}#clearQuery,.arangoFrame,.display-none{display:none}.inputEditorWrapper .aqlEditorWrapper table td,.inputEditorWrapper .bindParamEditorWrapper table td{height:33px;padding:0 5px;width:50%}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper{border-radius:3px;cursor:auto;float:right}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper:hover,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper:hover{cursor:auto}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa{cursor:pointer;font-size:16pt;margin-left:5px;margin-right:5px}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa-minus-circle,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa-minus-circle{margin-left:20px}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa-play-circle-o,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa-play-circle-o{color:#2ecc71}.inputEditorWrapper .aqlEditorWrapper table td input,.inputEditorWrapper .bindParamEditorWrapper table td input{clear:both;float:right;height:17px;margin-bottom:3px;margin-top:3px;width:auto!important}.inputEditorWrapper .aqlEditorWrapper table th,.inputEditorWrapper .bindParamEditorWrapper table th{font-weight:400;height:34px;padding:0;width:50%}.inputEditorWrapper .aqlEditorWrapper,.inputEditorWrapper .bindParamEditorWrapper{height:100%}.inputEditorWrapper .aqlEditorWrapper table thead tr th,.inputEditorWrapper .bindParamEditorWrapper table thead tr th{text-align:left}.inputEditorWrapper .aqlEditorWrapper table thead tr th:first-child,.inputEditorWrapper .bindParamEditorWrapper table thead tr th:first-child{padding-left:10px}.inputEditorWrapper .aqlEditorWrapper table tbody input,.inputEditorWrapper .bindParamEditorWrapper table tbody input{width:100%!important}.inputEditorWrapper .aqlEditorWrapper .selectError,.inputEditorWrapper .bindParamEditorWrapper .selectError{background:#e74c3c}.inputEditorWrapper .aqlEditorWrapper .aceAction,.inputEditorWrapper .bindParamEditorWrapper .aceAction{background-color:#858585;border-radius:3px;color:#fff;cursor:pointer;font-size:13pt;height:23px;line-height:23px;opacity:.8;position:absolute;right:5px;text-align:center;top:5px;width:33px;z-index:10}.inputEditorWrapper .aqlEditorWrapper .aceAction.type,.inputEditorWrapper .bindParamEditorWrapper .aceAction.type{font-size:8pt}.inputEditorWrapper .aqlEditorWrapper .aceAction i,.inputEditorWrapper .bindParamEditorWrapper .aceAction i{margin-bottom:3px}.inputEditorWrapper .aqlEditorWrapper .aceAction:hover,.inputEditorWrapper .bindParamEditorWrapper .aceAction:hover{cursor:pointer;opacity:1}.inputEditorWrapper .aqlEditorWrapper .previewWrapper,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper{background-color:#fff}.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar{background-color:#fff;border-bottom:1px solid rgba(140,138,137,.25);height:34px}.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar span,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar span{margin-left:5px;padding-top:8px;position:absolute}.inputEditorWrapper .aqlEditorWrapper .previewWrapper #queryPreview,.inputEditorWrapper .aqlEditorWrapper>div,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper #queryPreview,.inputEditorWrapper .bindParamEditorWrapper>div{height:100%}.inputEditorWrapper .ui-resizable-s{cursor:ns-resize}.inputEditorWrapper .ui-resizable-e{cursor:ew-resize}.queryContent{clear:both;margin-top:0;width:100%}.queryContent .arangoToolbar .fa.fa-star,.queryContent .arangoToolbar .fa.fa-star-o{color:#ff0}.outputEditors{margin-bottom:60px}.outputEditorWrapper{clear:both;height:100px;padding-top:20px;width:100%}.outputEditorWrapper .switchAce{background-color:rgba(0,0,0,.6);border-radius:3px;color:#fff;cursor:pointer;position:relative;right:-24px;top:45px;z-index:10}.outputEditorWrapper .ace_editor{border-left:1px solid rgba(140,138,137,.25);border-right:1px solid rgba(140,138,137,.25);height:280px;width:100%}.outputEditorWrapper .ace_editor .ace_active-line{background:#fff!important}.outputEditorWrapper .sentWrapper .pull-left,.outputEditorWrapper .sentWrapper .pull-right{width:50%}#queryManagementContent{border:1px solid rgba(140,138,137,.25);padding-top:0}#queryManagementContent .arango-table{border:0}#queryManagementContent .arango-table tr th:nth-child(1){width:10%}#queryManagementContent .arango-table tr th:nth-child(1) td{text-align:center}#queryManagementContent .arango-table tr th:nth-child(2){width:50%}#queryManagementContent .arango-table tr th:nth-child(3),#queryManagementContent .arango-table tr th:nth-child(4){width:20%}.contentBar{font-size:12pt;line-height:30px}.row{margin:0 0 20px}.innerContent{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:2px;min-height:200px;padding-top:13px}.arangoFrame{background-color:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:77777}.arangoFrame .outerDiv{min-height:100%;padding:20px 40px 40px;z-index:88888}.arangoFrame .innerDiv{z-index:99999}.arangoFrame .fa-times{color:#fff;float:right;font-size:12pt}.arangoFrame .fa-times:hover{color:#c2c2c2;cursor:pointer}.arangoFrame .document-content-div,.arangoFrame .document-info-div{left:40px;position:absolute;right:40px}.arangoFrame .document-content-div{bottom:80px;top:130px}.arangoFrame .document-editor{height:100%}.arangoFrame .bottomButtonBar{left:-1px;position:absolute;right:-1px}.container{margin-left:20px;margin-right:20px;width:auto!important}.arango-tab{border-bottom:1px solid #ddd;list-style:none;margin-left:0;padding-bottom:0;padding-right:10px}.arango-tab a{-moz-border-radius:0;-webkit-border-radius:0;border-radius:3px 3px 0 0;background-color:#8c8a89;border:1px solid transparent;border-bottom-color:#888;color:#fff;display:block;font-size:13px;line-height:20px;margin-right:2px;min-width:50px;padding:2px 15px;text-align:center}.arango-tab li{background-color:transparent;border:0;margin-bottom:-1px;margin-left:2px;position:relative;z-index:900}.arango-tab li.active a{background:#fff;border-bottom-color:#fff!important;border-left-color:#c2c2c2;border-right-color:#c2c2c2;border-top-color:#c2c2c2;color:#000;height:21px;margin-top:-1px}.jsoneditor,.jsoneditor .menu{background-color:#fff!important}.jsoneditor{border:0 solid rgba(0,0,0,.2)!important}.jsoneditor .menu{border-bottom:1px solid #c2c2c2!important;border-left:0!important;border-right:0!important;border-top:0!important}.jsoneditor .menu button{border:0!important}.jsoneditor .menu button:hover{background-color:#2ecc71;color:#fff}.jsoneditor .search .frame{border:0!important;margin:3px!important}.jsoneditor .search .frame .refresh{background-position:-96px -73px;height:22px;width:25px}.jsoneditor .search .frame input{margin-left:15px;margin-right:15px;margin-top:0}.jsoneditor .search .results{color:#fff!important;margin-top:3px!important}.document-editor-extra,div.gv-manage-button-container{margin-top:10px}.document-editor{margin-top:-10px;width:100%}.disabledPag,.disabledPag a{cursor:default!important;opacity:.5!important}.pagination-line{background-color:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top:1px solid rgba(104,103,102,.1);margin:0;padding-top:12px;text-align:center}.pagination-line li a:hover,.pagination-line li.active a,.pagination-line li.active span{background-color:#404a53;color:#fff}.pagination-line li a{background-color:#fff;border:1px solid #fff;font-size:11.9px;line-height:20px;padding:2px 10px;text-decoration:none;border-width:0;min-width:12pt}.pagination-line ul{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;display:inline-block;margin-bottom:0;margin-left:0}.pagination-line li{display:inline-block;margin-left:11px}.pagination-line li span{color:#000;font-size:14px;position:relative;top:2px}.pagination-line li:first-child a,.pagination-line li:first-child span,.pagination-line li:last-child a,.pagination-line li:last-child span{-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0;background:#404a53;border:0;color:#fff;height:21px;position:relative;width:14px}.pagination-line li.disabled:first-child a,.pagination-line li.disabled:first-child span,.pagination-line li.disabled:last-child a,.pagination-line li.disabled:last-child span{background-color:#777;color:#666;cursor:default;pointer-events:none}.collection-pagination{margin-left:23px!important}.arango-pagination i.fa,.las-pagi i.fa,.pre-pagi i.fa{font-size:19px;position:relative;top:-2px}.arango-pagination li:first-child{margin-right:20px}.arango-pagination li:last-child{margin-left:30px}.pre-pagi{margin-right:-5px!important}.accordion-group{border:0}.accordion-body{height:auto!important}.accordion-heading{padding-bottom:20px;padding-top:25px}.accordion-heading a{border:1px solid #ccc;color:#000;font-weight:400;width:397px!important}.accordion-heading .accordion-toggle{border-radius:3px;box-sizing:border-box;display:block;padding:8px 15px;width:100%!important}.shell_workspace{margin-top:13px}.shell_workspace ::-webkit-scrollbar{display:none}.replShell{background-color:#fff;float:left;height:100%;min-width:100px;overflow-y:hidden;position:relative;width:100%}.replShell>div{border-radius:3px}.replShell pre{border-bottom:0;border-left:0;border-right:1px solid #a0a0a0;border-top:1px solid #a0a0a0}.jqconsole{background-color:#000;border-radius:0;padding:10px}.jqconsole-header{color:#fff}.jserror{color:#f06;margin-left:-10px}.jssuccess{color:#6f0}.jqconsole-cursor{background-color:grey}.jqconsole-blurred .jqconsole-header .jqconsole-cursor{color:#c4cccc}.jqconsole-prompt{color:#b91}.jqconsole-old-prompt{color:#f60;font-weight:400}.jqconsole-input{color:#dd0}.jqconsole-old-input{color:#bb0;font-weight:400}.jqconsole-output{color:#fff}.query-output .ace_gutter-cell{background-color:#f0f0f0}.centralContent .api-actions{margin:0!important;padding:0}.centralContent .api-actions .container{padding-bottom:10px!important;padding-top:13px!important;margin:0 5px!important}.centralContent .api-actions .resource{border-bottom:0!important;padding-left:5px!important}.centralContent .api-actions .resource .heading>.options{margin:11px 10px 0 0!important}.centralContent .api-actions .resource .heading h2 a{color:#000!important;font-weight:300!important}.centralContent .api-actions .active .heading h2 a{color:#000!important}.centralContent .api-actions .endpoint .operations .content{margin:0!important}.centralContent .api-actions .endpoint .operations .content h4{font-weight:700!important}.centralContent .api-actions .endpoints{margin-right:5px!important}.centralContent .api-actions .endpoints .endpoint:last-child{padding-bottom:5px!important}.centralContent .api-actions input[type=button]{background:#8f8d8c!important;border:none!important;box-shadow:none!important;color:#fff!important;float:right!important;font-size:14px!important;font-weight:300!important;margin-top:10px!important;padding:8px 16px!important}.centralContent .api-actions .endpoint .operations .content,.centralContent .api-actions .endpoint .operations .heading{border-radius:0!important;font-weight:300!important}.centralContent .api-actions .http_method,.centralContent .api-actions .toggleOperation{border-radius:0!important}.centralContent .api-actions .required,.centralContent .api-actions em,.centralContent .api-actions strong{font-weight:400!important}.form-actions{background:0 0;border:0}.form-actions:after,.form-actions:before{display:table;line-height:0}.form-actions:after{clear:both}.swagger-section #swagger-ui-container{margin:.3em 1em!important}.alert{padding:15px 35px 15px 14px}.alert,textarea{border-radius:0!important}.log-content{word-wrap:break-word}.tab-content{min-height:390px}.crit-table-id,.debug-table-id,.info-table-id,.log-table-id,.warn-table-id{border-spacing:0 0;font-size:15px!important;margin-top:-5px!important}.crit-table-id thead,.debug-table-id thead,.info-table-id thead,.log-table-id thead,.warn-table-id thead{background-color:#f9f9f9;border-top:6px solid #888!important;text-align:center}.crit-table-id thead tr th,.debug-table-id thead tr th,.info-table-id thead tr th,.log-table-id thead tr th,.warn-table-id thead tr th{background-color:#fff!important;border-bottom:1px solid #c2c2c2;border-top:2px solid #888}.crit-table-id .firstcol,.debug-table-id .firstcol,.info-table-id .firstcol,.log-table-id .firstcol,.warn-table-id .firstcol{cursor:default!important;max-width:80px!important;width:80px!important}.crit-table-id tbody .firstcol,.debug-table-id tbody .firstcol,.info-table-id tbody .firstcol,.log-table-id tbody .firstcol,.warn-table-id tbody .firstcol{background-color:transparent!important}.crit-table-id tbody tr td,.debug-table-id tbody tr td,.info-table-id tbody tr td,.log-table-id tbody tr td,.warn-table-id tbody tr td{padding-bottom:8px!important;padding-top:8px!important}.thirdcol{cursor:default!important;max-width:500px!important}.dataTables_empty,.seccol{cursor:default!important;margin-bottom:5px;width:100px!important}.dataTables_info{display:none}#arangoLogTable{border-top:0}#arangoLogTable tbody tr{height:40px}#arangoLogTable tbody td:nth-child(1){text-align:center;width:70px}#arangoLogTable tbody td:nth-child(2){text-align:center;width:150px}#arangoLogTable tbody td:nth-child(3){width:auto}.log-content-id{padding-bottom:0!important;padding-top:0!important}.log-content-id .dataTable{border-collapse:separate;border-spacing:0 5px;table-layout:fixed!important}.log-content-id .arango-tab{border-bottom:0!important}.log-content-id .tab-content{margin-top:1px!important}.log-content-id .arango-tabbar{left:0;margin-top:-51px;position:absolute}.log-content-id .arango-tabbar button{background-color:#fff;border:0;color:#000;float:left;font-size:10.5pt;min-width:60px;opacity:.64;outline:0;padding-left:0;padding-right:0;text-align:center;width:auto}.log-content-id .arango-tabbar button.arango-active-tab{border-bottom:2px solid #77cb99;font-weight:400;height:35px;opacity:1;padding-bottom:9px}.collectionInfoTh2,.collectionTh,.figuresHeader th{font-weight:400!important}div.gv_zoom_widget{height:300px;left:62px;opacity:.7;position:absolute;top:0;width:40px;z-index:1}div.gv_zoom_widget div.gv_zoom_buttons_bg{background-image:url(../img/gv_button_bg_reverse.png);background-size:contain;height:40px;margin-bottom:20px}div.gv_zoom_widget div.gv_zoom_slider{background:#f5f8f0;border-radius:3px;height:200px;margin:0 17px;width:4px}div.gv_zoom_widget a.ui-slider-handle{background-color:#555;border:1px solid rgba(140,138,137,.25);height:.5em;left:-.55em;outline:0}div.gv_zoom_widget a.ui-slider-handle.ui-state-hover{outline-color:#fff}.documents-size,.spotlightWrapper .typeahead:focus{outline:transparent 0}div.gv_zoom_widget a.ui-slider-handle:hover{cursor:pointer}div.gv_zoom_widget .ui-state-default{background:#f6f6f6}#menubar{margin:0 0 10px}div.gv_colour_list{max-height:680px;overflow:auto;position:absolute;right:26px;text-align:right;top:20px;z-index:1}div.gv_colour_list li{background-color:transparent;float:none;padding:2px 6px}svg.graph-viewer{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:3px;left:54px;position:absolute;top:-10px;z-index:0}div.gv-colour-list ul ul,div.gv-colour-list ul ul:first-child,div.gv-colour-list ul ul:last-child{border-left:1px solid rgba(104,103,102,.1);border-right:1px solid rgba(104,103,102,.1)}svg.graph-viewer text{max-width:90px;pointer-events:none}div.gv-background{position:relative}.link>line{stroke-width:1}div.gv-colour-list:hover{opacity:1}div.gv-colour-list{border-radius:3px;max-height:350px;max-width:300px;min-width:190px;opacity:.1;overflow-x:hidden!important;overflow-y:auto;position:absolute;right:8px;text-align:right;top:0;z-index:1}div.gv-colour-list li{float:none;overflow:hidden;padding:2px 6px}div.gv-colour-list ul ul:first-child{border-top:1px solid rgba(104,103,102,.1);border-top-left-radius:3px;border-top-right-radius:3px}div.gv-colour-list ul ul:last-child{border-bottom:1px solid rgba(104,103,102,.1);border-bottom-left-radius:3px;border-bottom-right-radius:3px}input.gv-radio-button{display:block;margin-top:3px;width:auto}.addCollection .accordion,.collectionTh textarea{margin-top:10px}.collectionTh{font-size:14px;text-align:left;width:20%!important}.collectionInfoTh{min-width:60px;text-align:left;width:320px}.addCollection table tr{border-bottom:0!important;height:53px}.addCollection .icon_arangodb_info{margin-left:20px!important;position:relative;top:2px!important}.addCollection .collectionThSec{width:320px!important}.addCollection .collectionTh{width:96px}.addCollection .modalInput{width:320px}.addCollection .modalSelect{width:334px}.addCollection .accordion-toggle{width:457px!important}.change-collection .tab-content{min-height:230px}.change-collection input{width:384px!important}.change-collection select{width:398px!important}.show-collection .tab-content{min-height:200px}.collectionInfoTh2{text-align:left;width:150px}.collection-info-figures table{float:left;margin-left:0;margin-right:0;margin-top:0;min-width:200px;padding:3px;text-align:left}.figuresHeader{border-bottom:1px solid #c2c2c2}#collectionIndexTable{margin-left:0;width:100%}#collectionTab,#graphTab,#infoTab{border-bottom:0;margin-bottom:1px;padding-bottom:0;padding-right:10px}#collectionTab li,#graphTab li,#infoTab li{float:right}#collectionTab li.disabled a,#graphTab li.disabled a,#infoTab li.disabled a{cursor:not-allowed}#collectionTab a,#graphTab a,#infoTab a{background-color:#8c8a89;border-bottom:1px solid #666;border-top-left-radius:3px!important;border-top-right-radius:3px!important;color:#fff;font-size:13px!important;height:21px;margin-bottom:-1px;margin-right:4px;padding:2px 15px!important}#collectionTab .active>a,#graphTab .active>a,#infoTab .active>a{background-color:#fff;border-color:#888 #888 transparent!important;color:#000}#confirmCreateEdge{margin-left:20px}.collection-info-figures .icon_arangodb_info{position:relative!important;right:-4px!important}.snippet-wrap .snippet-num li{list-style:decimal-leading-zero}.snippet-no-num{list-style-type:none;margin-left:0;padding-left:0}.snippet-no-num .prettify{font-size:1.2em}.snippet-no-num .sh_number{color:#044;font-weight:100;margin-left:5px}.snippet-no-num .sh_symbol{color:#00f;font-weight:100;margin-left:5px}.snippet-no-num .sh_cbracket{color:#c7a317;font-weight:100;margin-left:5px}.snippet-no-num .sh_keyword{color:#c12dad;font-weight:100;margin-left:5px}.snippet-no-num .sh_string{color:#ce2f30;font-weight:100;margin-left:5px}.snippet-no-num .sh_array,.snippet-no-num .sh_object{color:#00f;font-weight:100;margin-left:5px}@media (max-width:568px){#arangoLogTable .table-cell0,.breadcrumb,.document-info-div .search,.navlogo .big,.pagination-line .las-pagi,.pagination-line .pre-pagi,.social-icons{display:none}.pagination-line .arango-pagination li:first-child,.pagination-line .arango-pagination li:last-child{margin-left:0;margin-right:0}.pagination-line li a{padding:2px 4px}.login-window{padding:10px 10px 40px;width:300px}#repl-numbers,#repl-progress,#repl-ticks{width:100%!important}.dashboard-large-chart,.dashboard-medium-chart-outer:first-child{padding-right:0!important}div.dropdownInner ul label{font-size:13px}.subnavmenu a{font-size:8pt}.subViewNavbar li{font-size:8pt!important;padding:0 6px!important}.subViewNavbar li.active{height:35px}.small-label-padding{max-width:calc(100% - 2px)}.navlogo .small{display:block;height:auto;width:28px}.headerButtonBar,.navlogo .version,.primary .version,.shortcut-icons{display:none}.navbar,.navlist,.navlist li,.navmenu,.primary,.primary li{width:40px!important}.arango-collection-ul .tab{font-size:12pt;height:30px;overflow:hidden}.arango-collection-ul .tab .fa{padding-left:6px;padding-right:20px}.social-icons p{float:left;margin-left:-3px}.social-icons p .fa{font-size:16px}.footer,div.bodyWrapper{left:40px}.dashboard-bar-chart-container .dashboard-bar-chart{padding-bottom:11px}}@media (max-width:768px){.breadcrumb,.outputEditors .additional,.pagination-line .las-pagi,.pagination-line .pre-pagi{display:none}.pagination-line .arango-pagination li:first-child,.pagination-line .arango-pagination li:last-child{margin-left:0;margin-right:0}.pagination-line li a{padding:2px 4px}.dashboard-large-chart,.dashboard-tendency-container{box-sizing:content-box}.tendency-box-sizing .dashboard-bar-chart-container,.tendency-box-sizing .dashboard-row:last-child .dashboard-medium-chart-outer:last-child,.tendency-box-sizing .dashboard-tendency-container{margin-left:0}.tendency-box-sizing .dashboard-bar-chart-container{height:140px}.tendency-box-sizing .dashboard-bar-chart-container .dashboard-sub-bar{margin-top:-3px}}@media (min-width:569px) and (max-width:738px){.dashboard-large-chart,.dashboard-medium-chart-outer:first-child{padding-right:0!important}.document-info-div .search,.headerButtonBar span{display:none}.dashboard-bar-chart-container{padding-left:0!important;padding-right:0!important}#repl-numbers,#repl-progress,#repl-ticks{width:100%!important}.subnavmenu a{font-size:9pt}.collection-dropdown ul{width:auto!important}.arango-collection-select{display:inline-block}.dashboard-bar-chart-container .dashboard-bar-chart{padding-bottom:11px}}@media (min-width:770px) and (max-width:972px){.dashboard-tendency-container .dashboard-sub-bar{font-size:11px;height:32px;margin-bottom:10px;margin-top:-10px}.dashboard-small-chart .dashboard-sub-bar{font-size:11px;height:33px}.dashboard-small-chart .dashboard-sub-bar-title{font-size:11px;line-height:12px;margin-top:-12px}.dashboard-bar-chart-chart{margin-top:10px}.dashboard-bar-chart-container .dashboard-sub-bar{font-size:11px;margin-bottom:10px;margin-top:-16px;padding-top:18px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{padding-top:3px}}@media (min-width:973px){.dashboard-large-chart .dashboard-sub-bar{padding-top:14px}#dataTransferDistribution .nvd3-svg,#totalTimeDistribution .nvd3-svg{padding-top:20px}#requests .small-label-padding .dashboard-small-chart .dashboard-sub-bar{font-size:12px;padding-top:30px}#requests .small-label-padding:last-child .dashboard-small-chart .dashboard-sub-bar{margin-bottom:1px}}.document-info-div{min-height:0}.document-content-div{margin-top:10px}.document-info{background-color:#fff;border-radius:3px;margin-bottom:8px;margin-top:-13px;min-height:65px;padding:5px}.document-info .document-info-container{clear:both;width:100%}.document-info .document-info-container .document-inner-info-container{float:left;margin-left:10px;margin-top:5px}.document-info .document-info-container .document-inner-info-container .document-attribute{margin-right:20px}.document-info .document-info-container .document-inner-info-container .document-attribute div{float:left}.document-info .document-bold-font{min-width:55px}.document-info .document-thin-font{color:#2ecc71}.document-info .document-type-container div{float:left}.document-info .document-type-container #document-id{margin-left:10px}.document-link:hover{cursor:pointer;text-decoration:underline}.jsoneditor .tree div{font-size:11pt}#progressPlaceholder{background-color:rgba(0,0,0,.4);bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.progress-view{background-color:#363c39;border-radius:2px;color:#fff;height:188px;left:50%;margin:-150px 0 0 -125px;position:absolute;top:38%;width:250px}.progress-view .progress-content{border:5px solid #fff;border-radius:3px}.progress-view .progress-content .fa-spinner{font-size:100pt}.progress-view .progress-message{background-color:#fff;border-radius:0 0 2px 2px;color:#fff;font-weight:200;height:44px;margin-top:-25px;padding-top:3px;text-align:center}.progress-view .progress-text{background:#fff;color:#000;float:left;font-weight:100;height:25px;left:-5px;margin-left:5px;margin-top:10px;position:relative;top:-10px;width:100%}.progress-view .progress-action{float:right;margin-right:5px;margin-top:5px}#progressPlaceholderIcon{color:#2ecc71;float:left;font-size:22px;margin-left:10px;margin-top:7px}.pong-spinner{height:100px;margin:50px auto;position:relative;width:200px}.pong-spinner i{animation:ball 2s infinite linear;background:#8cdb8b;border-radius:10px;height:10px;position:absolute;width:10px}.pong-spinner:after,.pong-spinner:before{animation:left-player 2s infinite linear;background:#8cdb8b;height:30px;position:absolute;width:5px}.pong-spinner:after{animation:right-player 2s infinite linear;right:0}@keyframes left-player{0%,100%{top:0}50%{top:70px}}@keyframes right-player{0%,100%{top:70px}50%{top:0}}@keyframes ball{0%,100%{left:5px;top:20px}25%,75%{left:190px;top:50px}50%{left:5px;top:80px}}#spotlightPlaceholder{background-color:rgba(0,0,0,.25);bottom:0;left:0;position:fixed;right:0;top:0;z-index:2000}.spotlightWrapper{height:50px;left:25%;position:absolute;top:115px;width:50%}.spotlightWrapper .twitter-typeahead{width:100%}.spotlightWrapper .tt-highlight{color:#5bc0de;font-weight:400}.spotlightWrapper input{box-sizing:border-box;height:40px!important}.spotlightWrapper .tt-dataset{clear:both}.spotlightWrapper .tt-menu{background:#3d4246;border-radius:3px;color:#fff;height:300px;overflow:auto;width:100%}.spotlightWrapper .tt-menu .tt-suggestion:hover{background-color:#404a53;cursor:pointer}.spotlightWrapper .tt-menu .header-type{background:#32373b;clear:both;color:#fff;height:30px;padding-left:5px}.spotlightWrapper .tt-menu .header-type h4{float:left;margin:4px 0 0;padding:0}.spotlightWrapper .tt-menu .header-type .fa{font-size:12pt;margin-left:6px;margin-top:6px}.spotlightWrapper .tt-menu .header-type .type{background-color:#5bc0de;border-radius:3px;float:right;margin:4px;padding:0 5px}.spotlightWrapper .tt-menu .tt-cursor{background-color:#fff;color:#000}.spotlightWrapper .tt-menu .tt-selectable{padding-left:10px}.spotlightWrapper .typeahead{background:#3d4246;border:0 solid #3d4246;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;color:#fff;font-size:22px;height:30px;line-height:30px;outline:transparent 0;padding:8px 12px;width:100%}.graphLabel{font-size:11pt;font-weight:600;margin-top:-25px;opacity:.5;padding-bottom:20px;text-align:center;text-transform:uppercase}.cluster-graphs>div .graphWrapper{border:1px solid rgba(140,138,137,.25);margin-left:-1px;margin-top:-1px;padding:20px 20px 10px}.cluster-graphs>div .graphWrapper .nv-controlsWrap{display:none}.cluster-graphs>div .graphWrapper .nv-legendWrap{margin-bottom:10px}.cluster-graphs>div .graphWrapper svg{height:250px;margin-left:-17px}.cluster-values{margin-top:-13px}.cluster-values>div .valueWrapper{border:1px solid rgba(140,138,137,.25);margin-left:-1px;margin-top:-1px}.cluster-values>div .valueWrapper .value{color:#000;font-size:24pt;line-height:150px;text-align:center}.cluster-values>div .valueWrapper .value.positive{color:#2ecc71}.cluster-values>div .valueWrapper .value.negative{color:#e74c3c}.cluster-values>div .valueWrapper div:first-child{height:150px}.application-detail-view .headerBar .subMenuEntries{margin-left:5px;margin-top:-2px}.application-detail-view .headerBar .headerButtonBar{position:absolute;right:5px}.application-detail-view section.info{float:left;padding:13px 0 0}.application-detail-view section.info .header{height:200px;margin-bottom:0;position:absolute;width:calc(100% - 20px)}.application-detail-view section.info .header div.header-icon-container{border:2px solid #d9dbdc;border-radius:150px;height:182px;left:0;margin:0 auto;overflow:hidden;width:182px}.application-detail-view section.info .header div.header-icon-container img.icon{background-color:#fff;border-radius:3px;height:auto;max-height:162px;max-width:162px;padding:10px;width:auto}.application-detail-view section.info .header .information{background-color:#fff;border:1px solid #d9dbdc;border-radius:3px;margin-bottom:20px;padding:10px 10px 0;position:relative;top:35px;width:calc(100% - 30px)}.application-detail-view section.info .header .information span{display:block;float:left;font-weight:500;width:90px}.application-detail-view section.info .header .information a{margin-right:10px}.application-detail-view section.info .header .header_right{left:190px;margin:40px auto 0;width:137px}.application-detail-view section.info .header .header_right input.delete,.application-detail-view section.info .header .header_right input.switch-docu,.application-detail-view section.info .header .header_right input.switch-mode,.application-detail-view section.info .header .header_right input.upgrade{margin-top:7.83px;padding-left:10px;padding-right:10px}.application-detail-view section.info .header .header_right input{width:130px}.application-detail-view section.info .header .header_left{margin:0 auto;padding-left:10px;padding-top:1px;text-align:center;width:33.3%}.application-detail-view section.info .header .header_left input{margin-left:0;margin-top:-4px}.application-detail-view section.info .header .header_left .header_line{margin-top:10px}.application-detail-view section.info .header .header_left .header_line p{font-size:14pt;font-weight:200}.application-detail-view section.info .header .header_left .header_line h3{float:left;margin-bottom:0;margin-top:0;padding-right:5px;width:100%}.application-detail-view section.info .header .header_left .header_line .license,.application-detail-view section.info .header .header_left .header_line .mode,.application-detail-view section.info .header .header_left .header_line .version{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#404a53;border:1px solid rgba(140,138,137,.25);color:#fff;font-size:13px;font-weight:300;padding:2px 8px;position:relative;top:-3px}.application-detail-view section.info .header .header_left .header_line .production{color:#2ecc71}.application-detail-view section.info .header .header_left .header_line .development{color:#f1c40f}.application-detail-view section.info .header .header_left .header_line:after{clear:both;content:'';display:table}.application-detail-view section.info .header .header_left .header_line_bottom>div{display:table;left:-3px;margin:-10px auto 0;position:absolute;width:100%}.application-detail-view section.info .header .header_left .header_line_bottom h3{width:auto}.application-detail-view section.info .header .header_left .header_line_bottom .inner{display:table;margin:0 auto;padding-left:15px;width:auto}.application-detail-view section.info .header .app-warning{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#e74c3c;color:#fff;padding:6px 8px}.application-detail-view section.info .header .app-warning h4,.application-detail-view section.info .header .app-warning p{font-size:1em;margin:0}.application-detail-view aside.meta{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:3px;clear:right;float:right;height:182px;margin-top:12px;max-height:182px;max-width:182px;overflow-x:hidden;position:relative;width:182px}.application-detail-view aside.meta dl{margin-bottom:0;margin-top:0;padding-left:7px;padding-top:5px}main{background-color:#fff;border-radius:3px}main .app-info{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#5bc0de;color:#fff;margin:10px;padding:6px 8px}main .app-info h4,main .app-info p{font-size:1em;margin:0}main .swagger iframe{border:0;border-radius:3px;height:600px;width:100%}main .readme{background:#fff;padding:1em 2em}main .readme .buttons{background:#fff;height:30px;position:relative;right:-15px;width:100%}.centralContent .contentIn table tr,.centralContent .modal-body .arango-table tr,.centralContent .modal-body table tr{height:40px}main .readme .buttons button{float:right}main .readme .modal-body{border-bottom:1px solid rgba(140,138,137,.25);border-left:0;border-right:0;border-top:0;padding-bottom:15px}main .readme .modal-footer{border-bottom:0;border-left:0;border-right:0;border-top:1px solid rgba(140,138,137,.25);padding-right:0}main .readme h1{float:left;text-align:left;width:100%}.tests-result .stack{border-color:#e74c3c;color:#e74c3c;font-size:12px;line-height:1.5;margin:5px 0}.tests-result-stats .fail,.tests-result-stats .pass,.tests-result-stats .pending{padding:0 2px}.tests-result-spec{margin-bottom:0}.tests-result-spec-suites .tests-result-spec-suites{margin-left:20px}.tests-result-spec-suites dd{margin-bottom:20px;margin-left:0}.tests-result-spec-tests{margin-left:20px}.tests-result-spec-test-title{padding-left:20px}.tests-result-spec-test-title .fa{line-height:18px;margin-left:-20px;margin-top:2px;position:absolute}.tests-result-spec-test-title .fa-circle{font-size:50%;margin-left:-16px}.tests-result .pass{color:#2ecc71}.tests-result .fail{color:#e74c3c}.tests-result .pending{color:#666}#swagger #jsonLink{color:rgba(64,74,83,.8);font-weight:500;opacity:.5;position:absolute;right:20px}#swagger #jsonLink:hover{opacity:1}#indexHeaderContent{padding:0}#indexHeaderContent #collectionEditIndexTable th,#indexHeaderContent .figuresHeader th{padding-left:10px}.new-index-view{padding:20px}.centralContent .createModalDialog{background-color:#fff;outline:0}.centralContent .contentIn{background:#fff;border:1px solid rgba(64,74,83,.2);border-radius:2px;padding:20px}.centralContent .contentIn table{border:0}.centralContent .contentIn table select{margin-top:-10px}.centralContent .modal-body{border:1px solid rgba(64,74,83,.2);color:#000;max-height:none;padding:0}.centralContent .modal-body .arango-table tr th,.centralContent .modal-body table tr th{padding-left:10px}.centralContent .modal-body .figuresHeader{background-color:#404a53;color:#fff}.centralContent .modal-body .icon_arangodb_info{margin-left:10px;right:inherit}.centralContent .modal-body .modalSelect{margin-top:0}.centralContent .modal-body .tab-pane{padding-top:0!important}.centralContent .modal-footer{background-color:transparent;border-bottom:1px solid rgba(64,74,83,.2);border-left:1px solid rgba(64,74,83,.2);border-radius:0;border-right:1px solid rgba(64,74,83,.2);border-top:0;box-shadow:none;padding:8px}.centralContent .figures1,.centralContent .figures2,.centralContent .figures3{margin-left:0!important;margin-top:40px;width:100%}.centralContent .figures1 .icon_arangodb_info,.centralContent .figures2 .icon_arangodb_info,.centralContent .figures3 .icon_arangodb_info{position:relative;text-align:center}.pure-table-body{overflow-x:none;overflow-y:auto}.pure-table-body .selected-row{background-color:rgba(46,204,113,.2)}.pure-table-body .dataTables_empty{padding-left:10px}.pure-table{padding-left:20px;padding-right:20px}.pure-table.no-padding{padding-left:0;padding-right:0}.pure-table.no-padding .pure-table-row div div{padding-left:2.5px}.pure-table.no-padding.pure-table-header .pure-table-row>div:first-child .title{padding-left:10px}.pure-table.pure-title .pure-table-row{color:#717d90;font-weight:600}.pure-table.pure-title .pure-table-row:hover{background-color:#fff;cursor:default}.pure-table.pure-title .pure-table-row:last-child{border-bottom:1px solid rgba(140,138,137,.25);margin-bottom:0}.pure-table .pure-table-row{border-bottom:1px solid rgba(140,138,137,.25);color:#8a969f;font-weight:100;line-height:40px;width:100%}.pure-table .pure-table-row .padding-left{padding-left:30px}.pure-table .pure-table-row .padding-right{padding-right:30px}.pure-table .pure-table-row .actions i{margin-left:5px;margin-right:5px}.pure-table .pure-table-row:hover{background-color:#eff0eb;cursor:pointer}.pure-table .pure-table-row.disabled:hover{background-color:#fff;cursor:not-allowed}.pure-table .pure-table-row.noHover:hover{background-color:#fff;cursor:default}.pure-table .pure-table-row .left{text-align:left}.pure-table .pure-table-row .right{text-align:right}.pure-table .pure-table-row .mid{text-align:center}.pure-table .pure-table-row .positive{color:#2ecc71}.pure-table .pure-table-row .negative{color:#e74c3c}.pure-table .pure-table-row .warning{color:#f1c40f}.pure-table .pure-table-row .fa.fa-check-circle{color:#2ecc71}.pure-table .pure-table-row .fa.fa-exclamation-circle{color:#e74c3c}.pure-table .pure-table-row:last-child{border-bottom:0;margin-bottom:10px}.hotkeysList .hotkeysLabel{clear:both;color:#000;font-size:16px;font-weight:400}.hotkeysList .hotkeysContent{padding-left:10px}.hotkeysList li{line-height:25px}.hotkeysList li .hotkeysDiv{float:left}.hotkeysList .hotkeysicons{background-color:#686766;border:1px solid #000;border-radius:2px;color:#fff;display:inline;height:19px;margin-left:10px;text-align:center;width:19px}.arango-table tbody tr:nth-child(even),.arango-table thead{background-color:#fff}.hotkeysContentLabel{float:left;width:30%}.arango-table{width:100%}.arango-table thead th{border-bottom:1px solid #c2c2c2;font-weight:400;height:43px}.arango-table tbody tr:nth-child(odd){background:rgba(104,103,102,.05)}.arango-table tbody td{padding:10px 18px}.arango-tabbar{height:27px;width:100%}.arango-tabbar button{background-color:#404a53;border:0;border-top-left-radius:2px;border-top-right-radius:2px;color:#fff;float:right;font-weight:100;height:27px;margin-right:5px;width:82px}.arango-tabbar button:first-child{margin-right:10px}.arango-tabbar .arango-active-tab{background-color:#fff;border-bottom:1px solid #fff;border-left:1px solid #c2c2c2;border-right:1px solid #c2c2c2;border-top:1px solid #c2c2c2;color:#000;height:28px;margin-bottom:-1px}.subViewNavbar{border-bottom:2px solid #d9dbdc;height:40px;list-style:none;width:100%;z-index:1000;margin:-57px 0 15px -15px}.subViewNavbar li{cursor:pointer;float:left;font-size:10pt;line-height:30px;margin-bottom:5px;margin-top:5px;padding:0 12px}.subViewNavbar li.active{border-bottom:2px solid #77cb99;cursor:default;padding-bottom:5px}.subViewNavbar li.active a{color:#000}.subViewNavbar li.disabled{cursor:not-allowed}.subViewNavbar li.disabled:hover a{color:rgba(51,51,51,.6)}.subViewNavbar li:hover a{color:#333;transition:all .2s ease-in}.subViewNavbar li a,.subnavmenu ul li:hover a{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in}.subViewNavbar li a{color:rgba(51,51,51,.6);transition:all .2s ease-in}.subnavmenu{background-color:#fff;height:auto}.subnavmenu .bar-img{background:0 0;border-radius:25px;margin-right:5px;width:25px}.subnavmenu .bar-img:hover{cursor:pointer}.subnavmenu ul{list-style:none;margin:0}.subnavmenu ul.top{background-color:#404a53;height:60px;width:100%}.subnavmenu ul.top li{padding:0 10px 0 0}.subnavmenu ul.bottom{border-bottom:2px solid #d9dbdc;height:40px;width:100%;z-index:1000}.subnavmenu ul.bottom li{float:left;padding:0 12px}.subnavmenu ul li{cursor:pointer;font-size:10pt;line-height:30px;margin-bottom:5px;margin-top:5px}.subnavmenu ul li.active{border-bottom:2px solid #77cb99;cursor:default;padding-bottom:5px}.subnavmenu ul li.active a{color:#000}.subnavmenu ul li.disabled{cursor:not-allowed}.subnavmenu ul li.disabled:hover a{color:rgba(51,51,51,.6)}.subnavmenu ul li:hover a{color:#333;transition:all .2s ease-in}.subnavmenu ul li a{color:rgba(51,51,51,.6);-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.subnavmenu .infoEntry{line-height:45px}.subnavmenu .infoEntry a{margin-right:5px}.subnavmenu .infoEntry a.default-icon i{color:#fff}.subnavmenu .infoEntry a.default-icon i:hover{color:#2ecc71;cursor:pointer}.subnavmenu .infoEntry:hover{cursor:default}.subnavmenu .infoEntry:hover .info{-webkit-touch-callout:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;color:#fff}.subnavmenu .infoEntry.positive .health-icon,.subnavmenu .infoEntry.positive .health-state,.subnavmenu .infoEntry.positive .state{color:#2ecc71}.subnavmenu .infoEntry.negative .health-icon,.subnavmenu .infoEntry.negative .health-state{color:#e74c3c}.subnavmenu .icon,.subnavmenu .info,.subnavmenu .state{color:rgba(255,255,255,.95);display:block;float:left;font-weight:300;max-width:150px;overflow:hidden;text-transform:uppercase}.subnavmenu .icon span,.subnavmenu .info span,.subnavmenu .state span{color:#2ecc71}.subnavmenu .icon span:hover,.subnavmenu .info span:hover,.subnavmenu .state span:hover{cursor:pointer}.subnavmenu #dbStatus{padding-right:20px}.subBarDropdown{background:#fff;border:1px solid rgba(64,74,83,.2);display:none;margin-top:55px!important;min-width:200px;position:absolute;z-index:9999}.subBarDropdown li{padding:0}.subBarDropdown .dropdown-header{background-color:#77cb99;cursor:default;margin:0 -1px;padding:0!important}.subBarDropdown .dropdown-header img{border:3px solid #6dba8c;border-radius:75px;display:block;margin:10px auto 0;width:75px}.subBarDropdown .dropdown-header p,.subBarDropdown .dropdown-header small{color:#fff;text-align:center}.subBarDropdown .dropdown-header small{display:block;margin-top:-10px}.subBarDropdown .dropdown-footer{padding:0 5px 0 0!important}.subBarDropdown .dropdown-footer button{margin-bottom:5px;margin-top:-4px}.helpUs iframe{left:0;position:absolute;right:0;top:101px}.arangoDataTable{display:block;position:relative;width:100%}.arangoDataTable tbody{display:inline-block;max-height:200px;overflow-y:auto;position:absolute;width:100%}.arangoDataTable thead{background-color:#fff!important;display:inline-block;font-weight:400!important;text-align:left;width:100%}.arangoDataTable thead td{overflow:hidden}.arangoDataTable thead th{border-bottom:0;cursor:default!important;font-weight:400!important;padding:10px 14px!important}.arangoDataTable thead tr{border-bottom:1px solid #c2c2c2}.arangoDataTable tr{cursor:pointer}.arangoDataTable td{padding:8px 18px!important}.arangoDataTable .key{font-weight:100;margin-top:4px;overflow:hidden}.arangoDataTable .dataTable .noPointer tr{cursor:default}.arangoDataTable .selected-row{background-color:#2ecc71!important}.arangoDataTable .selected-row div,.arangoDataTable .selected-row li,.arangoDataTable .selected-row span{color:#fff!important}.api-container #resources>li.resource:nth-child(even),table.arangoDataTable tr.even{background-color:#fff}.api-container #resources>li.resource:nth-child(odd),table.arangoDataTable tr.odd{background-color:rgba(104,103,102,.05)}#tableDiv table.dataTable td{padding:12px 18px!important}#documentsTableID_filter,#documentsTableID_length{display:none}#documentsTableID_wrapper{padding-bottom:0!important}.snippet-no-num{font-size:1em;font-weight:400;margin-bottom:0}.cuttedContent,.prettify ul li,.writeable a{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.totalDocuments{color:#666;float:left;font-weight:100;margin-top:-37px!important;padding-left:10px}.prettify{border:none!important;font-size:1em!important;margin:0!important;padding:0!important}.edit-index-table tfoot,.newIndexClass table{border-top:1px solid #f7f3f2}table .sorting{background:0 0!important}.new-index-view input[type=checkbox]{float:left}.new-index-view table tr{width:600px!important}.new-index-view table tr th:last-child{width:50px!important}.new-index-view table th{font-weight:300!important;width:200px!important}#documentsDiv{padding-top:0}#documentsDiv .pure-table .snippet-container{margin-top:10px}.edit-index-table{margin-top:5px;min-width:auto!important}.edit-index-table th{padding-bottom:5px;padding-left:5px;padding-top:5px}.edit-index-table .icon_arangodb_locked{color:rgba(0,0,0,.5);cursor:default;font-size:20px;margin-left:10px}.index-button-bar i:hover,.queryline .fa-info-circle:hover{cursor:pointer}.edit-index-table .icon_arangodb_roundminus{font-size:20px;margin-left:10px}.edit-index-table tfoot i{color:#2ecc71;font-size:19px;margin-left:22px;margin-top:5px}.edit-index-table tfoot i:hover{color:#58d68d;cursor:pointer}.contentIn .arangoicon{font-size:25px;position:relative;top:-3px!important}#collectionEditIndexTable thead{border-bottom:1px solid #e5e5e5}.newIndexClass table{margin-bottom:60px}.newIndexClass table select{margin-right:7px}.newIndexClass table .arangoicon{float:right;margin-right:-12px;margin-top:5px}.index-button-bar{float:right}.index-button-bar i{color:#2ecc71;font-size:16pt;margin-right:43px}.index-button-bar #cancelIndex{margin-right:13px}.docsFirstCol,.docsSecCol,.docsThirdCol{border:0!important}.docsFirstCol{height:26px;width:80%}.docsSecCol{height:26px;min-width:400px!important;width:10%}.docsThirdCol{height:26px}.add-filter-item{margin-left:5px}.add-filter-item i{margin-top:0!important}.upload-indicator{display:none;margin-top:-3px;padding-right:10px}.documentsDropdown .dropdownImport,.documentsDropdown .headerDropdown{clear:both;margin-bottom:10px}.documents-size{background-color:#fff!important;border:1px solid #e5e5e5;border-radius:0;box-shadow:none;color:#000;float:right;font-size:11pt;font-weight:300;height:28px;line-height:18px;margin-left:10px;margin-top:0;width:115px}.ace_error{background:0 0!important}#exportHeader .fa-exclamation-circle{color:#fff;font-size:13pt;margin-right:10px}.totalDocuments:hover{color:#000}.ajax-file-upload-statusbar{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;border:1px solid rgba(0,0,0,.7);margin:10px 10px 5px 5px;padding:5px;width:420px}.ajax-file-upload-filename{color:grey;height:auto;margin:0 5px 5px 10px;width:100%}.ajax-file-upload-progress{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;border:1px solid #d9d9d9;display:inline-block;margin:0 10px 5px;padding:1px;position:relative;width:250px}.ajax-file-upload-bar{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:rgba(0,0,0,.7);color:#fff;height:20px;width:0}.ajax-file-upload-percent{display:inline-block;left:48%;position:absolute;top:3px}.ajax-file-upload-red{font-size:13px;font-weight:400;margin-right:5px;padding:4px 15px;vertical-align:top}.ajax-file-upload{display:inline-block;font-size:16px;font-weight:700;height:25px;margin:0 10px 10px 0;padding:6px 10px 4px}.ajax-upload-dragdrop{border:1px dotted #8f8d8c;color:#736b68;padding:10px 10px 0;text-align:left;vertical-align:middle;width:506px}.ajax-upload-dragdrop span{position:relative;top:-22px}/*! + */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome/fontawesome-webfont.eot?v=4.4.0);src:url(../fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=4.4.0) format("embedded-opentype"),url(../fonts/fontawesome/fontawesome-webfont.woff2?v=4.4.0) format("woff2"),url(../fonts/fontawesome/fontawesome-webfont.woff?v=4.4.0) format("woff"),url(../fonts/fontawesome/fontawesome-webfont.ttf?v=4.4.0) format("truetype"),url(../fonts/fontawesome/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa.fa-pull-right,.fa.pull-right{margin-left:.3em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right,.pull-right{float:right}.pull-left{float:left}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.contentDiv li,.dashboard-bar-chart-container,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut,.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage,.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-half-height-legend,.dashboard-large-chart,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-interior-chart,.dashboard-small-chart,.dashboard-small-chart .dashboard-small-chart-inner,.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart,.dashboard-sub-bar,.dashboard-sub-bar .dashboard-sub-bar-title,.dashboard-tendency-container,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-subtitle-bar,.dashboard-title-bar .dashboard-half-title-bar,.dashboardModal,.dropdown-toolbar,.fixedDropdown .notificationItemContent,.gv-dropdown-menu,.innerDropdownInnerUL,.link-dropdown-menu,.modal-chart-detail,.modal-chart-detail .modal-body,.modal-chart-detail .modal-dashboard-legend,.modal-chart-detail .modal-inner-detail,.navlist li,.navlogo,.pagination-line li a,.script-dropdown-menu,.user-dropdown-menu,a.button-gui,a.headerButton,div .bigtile,div .bigtile a span.add-Icon,div .tile,div .tile a span.add-Icon,div.centralContent,div.dropdownInner ul,div.footer-center,div.footer-left{float:left}.arango-tab li,.dashboard-legend,.dashboard-sub-bar-menu,.docsThirdCol,.fixedDropdown .notificationItem i,.fixedDropdown button,.headerBar>div.headerButtonBar,.query-button,.search-field,div .bigtile .iconSet span,div .tile .iconSet span,div.footer-right,div.footer-right p,div.gv_colour_list,ul.headerButtonList li{float:right}.collectionInfoTh2,.collectionTh,.dashboard-sub-bar,.dashboard-sub-bar .dashboard-sub-bar-title,.dataNotReadyYet,.dygraph-label.dygraph-title,.figuresHeader th,.graphLabel,.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar,.inputEditorWrapper .aqlEditorWrapper table,.inputEditorWrapper .aqlEditorWrapper table td input,.inputEditorWrapper .aqlEditorWrapper table th,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar,.inputEditorWrapper .bindParamEditorWrapper table,.inputEditorWrapper .bindParamEditorWrapper table td input,.inputEditorWrapper .bindParamEditorWrapper table th,.modal-body,.page-title span,.pingback a.url,.snippet-no-num,.ui-tooltip,body,button,input,textarea{font-family:Roboto,sans-serif!important}.document-info .document-bold-font,.document-info .document-thin-font{font-family:droid sans mono,monospace,courier new,courier,sans-serif;font-size:11pt}#distributionChartDiv:after,.arango-tab:after,.dashboard-bar-chart-container .dashboard-bar-chart:after,.dashboard-medium-chart .dashboard-medium-chart-inner:after,.dashboard-medium-chart .dashboard-medium-chart-menu:after,.dashboard-row:after,.dashboard-sub-bar:after,.dashboard-tendency-container .dashboard-tendency-chart:after,.detail-chart:after,.document-info .document-info-container .document-inner-info-container .document-attribute:after,.headerBar>div.headerButtonBar:after,.lineChartDiv:after,.pagination-line li:after,.resizecontainer:after,.tileList:after{clear:both;content:'.';display:block;font-size:0;height:0;visibility:hidden}.caret,.contentDiv:after,.contentDiv:before,.form-actions:after,.form-actions:before,.pong-spinner:after,.pong-spinner:before{content:''}.addButton,.arango-tab a,.arango-tab li,.arangoicon,.clusterDownBtn button,.contentDiv .icon,.contentTables tr.contentRowInactive a,.deleteButton i,.dropdownImport.headerDropdown input[type=checkbox].css-checkbox label.css-label,.edit-index-table .icon_arangodb_roundminus,.fixedDropdown .notificationItem i,.fullNotification:hover,.gv-search-submit-icon,.icon-info-sign,.link>line,.node,.pagination-line li a,.script-dropdown-menu .dropdown-item,.search-submit-icon,a.button-gui,a.headerButton,div .bigtile,div .bigtile .iconSet span,div .bigtile a span.icon,div .bigtile a svg,div .tile .iconSet span,div .tile a span.icon,div .tile a svg,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox label.css-label,div.toolbox div.gv_action_button{cursor:pointer}#swagger #jsonLink,.arangoToolbar span.clickable:hover,.login-window button,.subnavmenu .infoEntry a.default-icon i{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.login-window select{-webkit-appearance:none;background:url("data:image/svg+xml;utf8,") right 10px top 12px no-repeat #f2f2f2;background-size:16px 16px;border:0;-webkit-border-radius:2px;border-radius:2px;color:#000;font-size:14px;font-weight:400;height:40px;line-height:initial;padding:12px;text-align:center;-moz-transition:.3s ease all;-ms-transition:.3s ease all;-o-transition:.3s ease all;-webkit-transition:.3s ease all;transition:.3s ease all;width:100%}.breadcrumb a,.navlist .dropdown-item:hover a,.navlist>li:hover a{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in}.login-window select:disabled{opacity:.5}.login-window select:active,.login-window select:focus{border:0;outline:0}.navbar{color:#fff;left:0;right:0;z-index:1000}.ajax-file-upload-red,.button-danger{background-color:#e74c3c}.ajax-file-upload-red:focus,.ajax-file-upload-red:hover,.button-danger:focus,.button-danger:hover{background-color:#ec7063}.contentTables td span,.deleteButton i,.edit-index-table .icon_arangodb_roundminus{color:#e74c3c}.contentTables td span:focus,.contentTables td span:hover,.deleteButton i:focus,.deleteButton i:hover,.edit-index-table .icon_arangodb_roundminus:focus,.edit-index-table .icon_arangodb_roundminus:hover{color:#ec7063}.ajax-file-upload,.button-success{background-color:#2ecc71}.ajax-file-upload:focus,.ajax-file-upload:hover,.button-success:focus,.button-success:hover{background-color:#58d68d}.button-info{background-color:#3498db}.button-info:focus,.button-info:hover{background-color:#5dade2}.addButton,.contentTables td.dbThSecond span{color:#2ecc71}.addButton:focus,.addButton:hover,.contentTables td.dbThSecond span:focus,.contentTables td.dbThSecond span:hover{color:#58d68d}.button-warning{background-color:#f1c40f}.button-warning:focus,.button-warning:hover{background-color:#f4d313}.button-close,.button-neutral{background-color:#8f8d8c}.button-close:focus,.button-close:hover,.button-neutral:focus,.button-neutral:hover{background-color:#736b68}.dashboard-sub-bar-menu{color:#8f8d8c}.dashboard-sub-bar-menu:focus,.dashboard-sub-bar-menu:hover{color:#736b68}.button-primary{background-color:#34495e}.button-primary:focus,.button-primary:hover{background-color:#415b76}.button-header,a.button-gui,a.headerButton{background-color:#fff;border:1px solid #fff;color:#555}.button-header:focus,.button-header:hover,a.button-gui:focus,a.button-gui:hover,a.headerButton:focus,a.headerButton:hover{background-color:#2ecc71;border:1px solid #2ecc71;color:#fff}.button-notification{background-color:#faa020}.button-notification:focus,.button-notification:hover{background-color:#f87c0f}.button-inactive,.button-inactive:focus,.button-inactive:hover,[class*=' button-']:disabled,[class*=' button-']:focus:disabled,[class*=' button-']:hover:disabled,[class^=button-]:disabled,[class^=button-]:focus:disabled,[class^=button-]:hover:disabled,button.disabled,button.disabled:focus,button.disabled:hover{background-color:#d3d3d3}a.headerButton.disabled,a.headerButton.disabled:focus,a.headerButton.disabled:hover{color:#d3d3d3}div.queryline .fa.fa-search{color:#c2c2c2;font-size:12pt;opacity:.5;position:relative;right:21px;top:-1px}div.queryline .fa.fa-search:hover{cursor:pointer;opacity:1}.inputEditorWrapper .aqlEditorWrapper table td input,.inputEditorWrapper .bindParamEditorWrapper table td input,.jsoneditor .search .frame input,.login-window .login-input,.modal-body .select2-choices input,.modal-body input,.modal-body select,.modal-body textarea,.navbar .arango-collection-select,.newIndexClass table input,.newIndexClass table select,div.queryline input,div.queryline select,input.search-input{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#fff!important;border:2px solid rgba(140,138,137,.25);box-shadow:none;outline:transparent 0}.inputEditorWrapper .aqlEditorWrapper table td input:focus,.inputEditorWrapper .bindParamEditorWrapper table td input:focus,.jsoneditor .search .frame input:focus,.login-window .login-input:focus,.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus,.navbar .arango-collection-select:focus,.newIndexClass table input:focus,.newIndexClass table select:focus,div.queryline input:focus,div.queryline select:focus,input.search-input:focus{border-color:#2ecc71;box-shadow:none;outline:transparent 0}.dropdown-toolbar,.gv-dropdown-menu,.link-dropdown-menu,.script-dropdown-menu,.user-dropdown-menu{background-color:#f5f8f0;border-color:#666;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;display:none;list-style:none;margin:5px 0 0;padding:5px 0;position:absolute;right:0;top:80%;z-index:1000}.dropdown-toolbar li,.gv-dropdown-menu li,.link-dropdown-menu li,.script-dropdown-menu li,.user-dropdown-menu li{line-height:23px;white-space:nowrap;width:100%}.dropdown-toolbar .dropdown-header,.gv-dropdown-menu .dropdown-header,.link-dropdown-menu .dropdown-header,.script-dropdown-menu .dropdown-header,.user-dropdown-menu .dropdown-header{color:#999;font-size:15px;font-weight:600;font-variant:small-caps;padding:0}.dropdown-toolbar .dropdown-header:hover,.gv-dropdown-menu .dropdown-header:hover,.link-dropdown-menu .dropdown-header:hover,.script-dropdown-menu .dropdown-header:hover,.user-dropdown-menu .dropdown-header:hover{cursor:default}.dropdown-toolbar .divider,.gv-dropdown-menu .divider,.link-dropdown-menu .divider,.script-dropdown-menu .divider,.user-dropdown-menu .divider{background-color:#666;height:1px;margin:10px 0 5px}.dropdown-toolbar a,.gv-dropdown-menu a,.link-dropdown-menu a,.script-dropdown-menu a,.user-dropdown-menu a{color:#fff;padding:0 20px}.navbar2{color:#fff}.navbar2>.secondary{background-color:rgba(255,255,255,.85)}.navbar{bottom:0;float:left;-webkit-font-smoothing:subpixel-antialiased;margin-bottom:0;position:absolute;top:0;width:150px}.navbar>.primary{background-color:#404a53;float:left;height:100%;width:150px}.navbar>.resizecontainer{background-color:#fff}.navbar .no-left-margin{border:0;margin-left:0}.navbar .no-left-margin.hover{background-color:transparent}.navbar .arangodbLogo{height:auto;margin-left:6px;margin-top:15px;width:138px}.navbar .arango-collection-select{position:relative;right:-22px;top:4px}.navbar .nav .dropdown .active>.dropdown-toggle,.navbar .nav .dropdown .open.active>.dropdown-toggle,.navbar .nav .dropdown .open>.dropdown-toggle{background:#58d68d}.navbar .nav>.active>a{-webkit-box-shadow:0 0 0 transparent inset;-moz-box-shadow:0 0 0 transparent inset;box-shadow:0 0 0 transparent inset;background-color:#fff;color:#000}.navbar .nav>li>a:focus{background-color:#fff}.navbar .nav>li>a:hover{background-color:#000;color:#686766}.navbar .shortcut{bottom:31px;left:13px;position:absolute}.navbar .shortcut i{background-color:transparent;border-radius:20px;color:#fff;width:20px;padding:5px 0 6px 4px}.navbar .shortcut i:hover{background-color:#2ecc71;color:#fff;cursor:pointer}.navbar .social-icons{bottom:0;float:left;margin-left:9px;position:absolute;width:100%}.navbar .social-icons a{display:block;float:left;height:25px;width:25px}.navbar .social-icons p{background:0 0;border-radius:20px;float:left;height:25px;margin-right:10px;padding:0;width:25px}.navbar .social-icons p:hover{background:#2ecc71;cursor:pointer}.navlist li.divider,.navlist li.navbar-spacer{background-color:rgba(0,0,0,.2)}.navbar .social-icons p:hover i{color:#fff}.navbar .social-icons i{color:#fff;margin-top:6px;position:absolute}.navbar .social-icons i.fa-twitter{margin-left:7px}.navbar .social-icons i.fa-envelope{margin-left:-19px}.navbar .social-icons i.fa-google{margin-left:-17px;margin-top:7px}.navbar .social-icons i.fa-stack-overflow{margin-left:-17px}.navlogo{height:60px;width:100%}.navlogo .small{display:none}.script-dropdown-menu .dropdown-item a,.tab{display:block}.navlogo .version{bottom:33px;color:rgba(255,255,255,.7);font-size:11px;font-weight:100;left:0;padding-bottom:10px;position:absolute;text-align:center;text-transform:uppercase;width:100%}.navlist,.navlist li{width:150px}.navlogo .version .out-of-date{color:#f1c40f;font-weight:400}.navlogo .version .out-of-date:hover{cursor:pointer}.navlogo .version .up-to-date{color:#2ecc71}.navmenu{clear:both}.navlist{list-style:none;margin:0;position:relative;top:0}.navlist>li{line-height:30px}.navlist li .fa{opacity:.3;padding-left:5px;padding-right:15px;text-align:center;width:10px}.navlist li .fa.fa-heart{color:#ff7a7a;opacity:1}.navlist li.disabled:hover{cursor:default}.navlist li.disabled:hover a:hover{cursor:default;opacity:.8}div .bigtile:hover,div .tile:hover,div.footer-center p:hover{cursor:pointer}.navlist .active .tab .fa,.navlist>.active a{opacity:1}.navlist li.dropdown:hover{border-bottom-left-radius:0;border-bottom-right-radius:0}.navlist li.divider,.navlist li.navbar-spacer{border:0}.navlist li.navbar-spacer{height:2px;margin-bottom:0;margin-top:0}.navlist .active{border-left:2px solid #77cb99}.navlist .active .tab{color:#fff;margin-left:-2px}.navlist .dropdown-item,.script-dropdown-menu .dropdown-item{margin-left:0}.navlist>.active{background-color:rgba(255,255,255,.2)}.navlist .dropdown-item:hover a,.navlist>li:hover a{color:#fff;opacity:1;transition:all .2s ease-in}.navlist .dropdown-item a{border-bottom:0;display:block;font-size:11pt}.navlist .dropdown-item a:hover{background-color:#dee9cf;color:#686766}.tab{color:rgba(255,255,255,.8);font-size:9pt;font-weight:100;text-transform:uppercase;padding:5px}.tab.userImg{padding-bottom:5px}.dropdown-item a{border-bottom:0!important;font-weight:300}.dropdown-toolbar li a,footer.footer p{font-weight:100}.dropdown-toolbar{background-color:#fff!important}.dropdown-toolbar li a:hover{background:0 0;background-color:#dee9cf!important;color:#000!important}.link-dropdown-menu,.user-dropdown-menu{background-color:rgba(0,0,0,.7);border-top-right-radius:0;margin-right:-1px;margin-top:7px;z-index:50}.link-dropdown-menu .dropdown-item,.user-dropdown-menu .dropdown-item{border-left:0;border-right:0}.script-dropdown-menu .dropdown-item a:hover{color:#fff}.script-dropdown-menu .dropdown-item:hover{background-color:#2ecc71}.gv-dropdown-menu{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;background-color:rgba(0,0,0,.7);border:1px solid #c2c2c2;margin-right:-20px;margin-top:6px}.gv-dropdown-menu:after{border-bottom-color:#fff}.gv-dropdown-menu li:hover{background-color:#fff;background-image:none}.gv-dropdown-menu li a{padding:0}.gv-dropdown-menu li a label{color:#fff;padding-left:5px}.gv-dropdown-menu li a:focus{background-color:#2ecc71!important;background-image:none}#arangoCollectionSelect{display:none;float:right;margin-bottom:0;margin-right:15px;padding-bottom:0}.caret{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #686766;display:inline-block;height:0;vertical-align:top;width:0}.applications-menu{display:block}.arango-logo{height:34px;padding:0!important}.arango-logo img{margin-left:22px}.footer{background-color:rgba(239,240,241,.8);display:none;font-size:14px;left:160px;right:10px;text-align:center;z-index:1000}div.footer-center,div.footer-left,div.footer-right{background:none;color:#686766}footer.footer{bottom:0;height:43px;position:fixed}footer.footer p{font-size:10pt;margin-bottom:0;padding-bottom:10px;padding-top:10px}div.footer-left{width:45%}div.footer-center{width:10%}div.footer-center p{padding-top:5px}[class*=' button-']:disabled,[class^=button-]:disabled,a.headerButton.disabled,button.disabled{cursor:not-allowed}div.footer-right{width:45%}div.footer-right p{color:#fff}div.footer-right i{color:#e74c3c;font-size:18px}div.footer-right a{color:#686766;margin-left:5px;position:relative;top:-1px}div.footer-right .isOnline{color:#2ecc71!important}.ajax-file-upload,.ajax-file-upload-red,.button-close,.button-danger,.button-header,.button-inactive,.button-info,.button-neutral,.button-notification,.button-primary,.button-success,.button-warning{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0;font-size:13px;font-weight:300!important}.addButton,.deleteButton i{font-size:16pt;position:relative}.ajax-file-upload,.ajax-file-upload-red,.button-close,.button-danger,.button-inactive,.button-info,.button-neutral,.button-notification,.button-primary,.button-success,.button-warning{border:0;color:#fff;margin-left:10px;padding:4px 12px}.ajax-file-upload i,.ajax-file-upload-red i,.button-close i,.button-danger i,.button-inactive i,.button-info i,.button-neutral i,.button-notification i,.button-primary i,.button-success i,.button-warning i{margin-left:-5px}.ajax-file-upload .fa,.ajax-file-upload-red .fa,.button-close .fa,.button-danger .fa,.button-inactive .fa,.button-info .fa,.button-neutral .fa,.button-notification .fa,.button-primary .fa,.button-success .fa,.button-warning .fa{position:relative;top:1px}.button-header{margin-top:5px}.addButton{margin-right:7px;margin-top:2px}.deleteButton i{float:right;padding-right:7px;top:12px}#closeBtnInfoView{margin-left:0!important}button.btn-server{width:120px}button.btn-small{padding:0 8px}button.gv-zoom-btn{background-size:14px 14px;height:14px;vertical-align:baseline;width:14px}button.gv-zoom-btn.btn-zoom-right{border:0;box-shadow:none;right:0;top:13px}button.gv-zoom-btn.pan-right{background-image:url(../img/gv_arrow_right.png)}button.gv-zoom-btn.pan-right:hover{background:inherit;background-image:url(../img/gv_arrow_right.png)}button.gv-zoom-btn.pan-left{background-image:url(../img/gv_arrow_left.png)}button.gv-zoom-btn.pan-left:hover{background:inherit;background-image:url(../img/gv_arrow_left.png)}button.gv-zoom-btn.pan-top{background-image:url(../img/gv_arrow_top.png)}button.gv-zoom-btn.pan-top:hover{background:inherit;background-image:url(../img/gv_arrow_top.png)}button.gv-zoom-btn.pan-bottom{background-image:url(../img/gv_arrow_bottom.png)}button.gv-zoom-btn.pan-bottom:hover{background:inherit;background-image:url(../img/gv_arrow_bottom.png)}button.gv-zoom-btn.btn-zoom{height:14px;margin:0;padding:0;position:absolute;width:16px}button.gv-zoom-btn.btn-zoom-top{border:0;box-shadow:none;left:13px;top:1}button.gv-zoom-btn.btn-zoom-left{border:0;box-shadow:none;left:0;top:13px}button.gv-zoom-btn.btn-zoom-bottom{border:0;box-shadow:none;left:13px;top:25px}button.gv-icon-btn{-moz-border-radius:0!important;-webkit-border-radius:0!important;border-radius:0!important;background-size:36px 36px;height:36px;width:36px}button.gv-icon-btn.active{background-color:#2ecc71}button.gv_dropdown_entry{height:30px;margin:4px 4px 4px 12px;width:160px}button.gv_context_button{width:65px}button.large-distance{margin-left:12px}button.short-distance{margin-left:6px}button.shutdown{margin-top:6px;padding:3px 14px}button.graphViewer-icon-button{background-color:transparent;border:0;height:20px;margin-left:5px;margin-top:-2px;padding:0;width:20px}button.graphViewer-icon-button img{height:20px;padding-bottom:10px;width:20px}ul.headerButtonList{display:inline-block;margin-bottom:0;margin-left:0;padding-left:0!important}ul.headerButtonList li{display:inline}a.button-gui,a.headerButton{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;margin-left:5px;margin-right:5px}a.headerButton{margin-top:2px;position:relative}a.headerButton .fa,a.headerButton [class*=" icon_"],a.headerButton [class^=icon_]{display:block;height:23px;line-height:23px;position:static;right:0;text-align:center;top:0;width:27px}a.headerButton .icon_arangodb_arrowleft,a.headerButton .icon_arangodb_arrowright{font-weight:700}a.headerButton.activated{background-color:#58d68d;border:1px solid #58d68d;color:#fff}a.headerButton.activated:hover{background-color:#fff;color:#58d68d}div.toolbox{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:#fff;border:1px solid rgba(140,138,137,.25);margin-right:5px;padding-bottom:5px;padding-top:5px;position:absolute;top:-10px}div.toolbox div.gv_action_button{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:#fff;color:#555;height:30px;margin:5px;position:relative;text-align:center;width:30px}div.toolbox div.gv_action_button.active{background-color:#2ecc71;color:#fff}div.toolbox div.gv_action_button:first-child{margin-top:0}div.toolbox div.gv_action_button:last-child{margin-bottom:0}h6.gv_button_title,h6.gv_icon_icon{left:0;margin:0;position:absolute;right:0}h6.gv_icon_icon{font-size:22px;left:1px;top:4px}h6.gv_button_title{bottom:1px;display:none}.btn-icon{background-color:#383434;padding:4px}.gv-icon-small{background-size:16px 16px;height:16px!important;width:16px!important}.gv-icon-small.delete{background-image:url(../img/icon_delete.png)}.gv-icon-small.add{background-image:url(../img/plus_icon.png)}a.pagination-button,ul.arango-pagination a{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.badge,.btn,.label{text-shadow:none!important}.navbar-inner,.thumbnail{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0}.modal-body th.actionCell>button{margin-top:-12px}.btn-old-padding{padding-bottom:4px!important;padding-top:4px!important}button.btn-overview,button.btn-server{margin:5px}a.button-gui{height:auto;margin-bottom:0;margin-top:0;padding-bottom:1px;padding-top:1px;position:absolute;right:2px;text-decoration:none!important;top:2px;width:auto}a.button-gui.button-gui-disabled{display:none}.clusterDownBtn{padding-bottom:10px;padding-top:10px;text-align:center}.clusterDownBtn button{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#f1f1f1;border:1px solid rgba(0,0,0,.1875);color:#333;font-size:20px;font-weight:300;margin:0;padding:12px 18px;text-align:center;text-decoration:none!important;width:250px}.clusterDownBtn button:hover{background-color:#e8e8e8;color:#4a6c30;-webkit-transition-delay:0;-webkit-transition-duration:.2s;-webkit-transition-property:all;-webkit-transition-timing-function:ease-in}.clusterDownBtn button.green{background-color:#617e2b;color:#fff}.clusterDownBtn button.green:hover{background-color:#8ba142}.bottomButtonBar{background-color:#fff;border-top:1px solid rgba(104,103,102,.1);height:30px;padding:10px}.tileList{left:10px;padding-top:5px;position:absolute;right:10px}.tileList legend{padding-left:5px}.tileList .tile:first-child a{opacity:.8}.tileList .tile:first-child a:hover{opacity:1}div .bigtile,div .tile{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-radius:2px;font-size:14px;list-style:none;margin-bottom:13px;position:relative;text-align:center;z-index:1}div .bigtile progress[value],div .tile progress[value]{color:#5bc0de}div .bigtile progress::-webkit-progress-bar-value,div .tile progress::-webkit-progress-bar-value{background:#5bc0de}div .bigtile progress::-webkit-progress-value,div .tile progress::-webkit-progress-value{background:#5bc0de}div .bigtile progress::-moz-progress-bar,div .tile progress::-moz-progress-bar{background:#5bc0de}div .bigtile progress,div .tile progress{-webkit-appearance:none;border-radius:0;height:2px;margin-top:16px;position:relative;width:100%;z-index:10}div .locked.bigtile,div .locked.tile{cursor:not-allowed}div .locked.bigtile .borderBox,div .locked.bigtile .collection-type-icon,div .locked.bigtile .collectionName,div .locked.bigtile .iconSet,div .locked.tile .borderBox,div .locked.tile .collection-type-icon,div .locked.tile .collectionName,div .locked.tile .iconSet{opacity:.5}div .locked.bigtile .iconSet span:hover,div .locked.tile .iconSet span:hover{background-color:#fff!important;color:#000;cursor:not-allowed!important}div .locked.bigtile .iconSet:hover,div .locked.tile .iconSet:hover{cursor:not-allowed!important}div .bigtile .collection-type-icon:hover,div .bigtile img:hover,div .tile .collection-type-icon:hover,div .tile img:hover{cursor:pointer}div .bigtile .warning-icons,div .tile .warning-icons{background-color:#e74c3c;border-radius:2px;color:#fff;font-size:11px;height:17px;left:0;line-height:13px;margin-left:5px;margin-top:5px;padding-left:9px;padding-right:9px;position:absolute;top:0}div .bigtile .warning-icons .fa,div .tile .warning-icons .fa{font-size:11pt;margin-left:1px}div .bigtile .collection-type-icon,div .tile .collection-type-icon{color:#666;font-size:30pt;margin-left:-18px;position:absolute;top:15px}div .bigtile img,div .tile img{position:relative}div .bigtile img.icon,div .tile img.icon{height:50px;margin-top:-110px;width:50px}div .bigtile a span.add-Icon,div .tile a span.add-Icon{font-size:20px;margin-left:22px;margin-right:10px;position:relative;top:0}div .bigtile a span.icon,div .tile a span.icon{font-size:50px}div .bigtile a svg.icon,div .tile a svg.icon{height:50px;width:50px}div .bigtile .tile-icon-svg,div .tile .tile-icon-svg{cursor:pointer;fill:#686766;height:50px;margin-left:auto;margin-right:auto;margin-top:-63px;position:relative;width:50px}div .bigtile .tile-icon,div .tile .tile-icon{color:#686766;font-size:50px;line-height:1.2;margin-left:-50px}div .bigtile .icon_arangodb_edge5-2,div .bigtile .tile-icon,div .tile .icon_arangodb_edge5-2,div .tile .tile-icon{position:absolute;top:15px}div .bigtile .icon_arangodb_edge5-2,div .tile .icon_arangodb_edge5-2{display:inline-block;margin-left:5px;position:absolute;top:0;-moz-transform:rotate(80deg);-o-transform:rotate(80deg);-webkit-transform:rotate(80deg)}div .bigtile h5,div .tile h5{background:rgba(64,74,83,.8);color:#fff;font-size:12px;margin:0 5px;overflow:hidden!important;padding:4px 8px;text-overflow:ellipsis!important;white-space:nowrap!important}div .bigtile h5.inProgress,div .tile h5.inProgress{color:#5bc0de}div .bigtile .tileSelects,div .tile .tileSelects{margin-left:40px;position:relative;z-index:9999}div .bigtile .tileSelects select,div .tile .tileSelects select{float:right;height:20px;margin-right:5px;margin-top:16px;width:70px}div .bigtile .fullBorderBox,div .tile .fullBorderBox{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:2px;box-sizing:border-box;height:100%;margin-left:5px;margin-right:5px;position:relative;width:auto}div .bigtile .fullBorderBox .add,div .tile .fullBorderBox .add{color:#404a53}div .bigtile .fullBorderBox .add span,div .tile .fullBorderBox .add span{color:#2ecc71}div .bigtile .paddingBox,div .tile .paddingBox{box-sizing:border-box;padding-left:5px;padding-right:5px}div .bigtile .borderBox,div .tile .borderBox{background-color:#fff;border:1px solid rgba(64,74,83,.2);border-bottom:0;border-radius:2px;box-sizing:border-box;height:75px;position:relative;width:100%}div .bigtile .iconSet,div .tile .iconSet{position:absolute;right:5px;top:5px}div .bigtile .iconSet span,div .tile .iconSet span{border-radius:2px;color:#666;font-size:18px;z-index:2;padding:2px 3px}div .bigtile .iconSet span:hover,div .tile .iconSet span:hover{background-color:#2ecc71;color:#fff}div .bigtile .iconSet span.disabled,div .tile .iconSet span.disabled{cursor:default;opacity:.2}div .bigtile .iconSet span.disabled:hover,div .tile .iconSet span.disabled:hover{background-color:#fff;color:#000;cursor:default;opacity:.2}div .bigtile .badge-success,div .tile .badge-success{font-weight:300}div .bigtile .unloaded div,div .tile .unloaded div{border-bottom:16px solid #ff8f35}div .bigtile .deleted div,div .tile .deleted div{border-bottom:16px solid #700}div .bigtile .tileBadge,div .tile .tileBadge{bottom:29px;font-size:11px;font-weight:300;position:absolute;right:0}div .bigtile .tileBadge button,div .tile .tileBadge button{margin-left:0;margin-right:5px}div .bigtile .tileBadge span,div .tile .tileBadge span{display:inline-block;line-height:15px}div .bigtile .tileBadge span .corneredBadge,div .tile .tileBadge span .corneredBadge{border-bottom-style:solid;border-bottom-width:17px;border-left:5px solid transparent;border-radius:2px;color:#fff;height:0;margin-bottom:4px;margin-right:10px;padding-left:1px;padding-right:6px}div .bigtile .tileBadge span .corneredBadge.loading,div .tile .tileBadge span .corneredBadge.loading{border-bottom-color:#ff8f35}div .bigtile .tileBadge span .corneredBadge.loaded,div .tile .tileBadge span .corneredBadge.loaded{border-bottom-color:#2ecc71}div .bigtile .tileBadge span .corneredBadge.inProgress,div .tile .tileBadge span .corneredBadge.inProgress{border-bottom-color:#5bc0de}div .bigtile .tileBadge span .corneredBadge.development,div .bigtile .tileBadge span .corneredBadge.unloaded,div .tile .tileBadge span .corneredBadge.development,div .tile .tileBadge span .corneredBadge.unloaded{border-bottom-color:#ff8f35}div .tile{height:100px}div .tile-graph h5{margin-left:5px;margin-right:5px}div .tile-graph .tile-icon:hover{cursor:pointer}div .bigtile{height:309px;width:452px}div .bigtile .shardContainer{font-size:30px}div .bigtile .shardContainer span{padding:2px}.collectionName{border-bottom-left-radius:2px;border-bottom-right-radius:2px;bottom:0;font-weight:300;left:0;position:absolute;right:0;text-align:left}#userManagementThumbnailsIn .tile .paddingBox img{border-radius:58px;margin-top:-99px;padding:0}.resizecontainer{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:10px;padding-right:10px}.dashboard-large-chart,.dashboard-medium-chart-outer,.dashboard-sub-bar,.tendency-box-sizing .dashboard-tendency-container,div.centralContent{box-sizing:border-box}@media (max-width:738px){#collectionsDropdown ul{width:auto!important}.footer-center p{display:none}#queryContent #querySize,#queryContent #querySizeDiv,#queryContent .styled-select{margin-right:6px;width:90px!important}}@media (max-width:970px){#documentsDiv #totalDocuments{display:none}}@media (min-width:250px) and (max-width:489px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:185px}.dashboard-sub-bar-menu{font-size:12px}.dashboard-medium-chart .dashboard-interior-chart{height:185px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:12px;left:10px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:185px;width:27px}.dashboard-medium-chart #clusterGraphs svg text{font-size:10px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:197px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:10px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:83.25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:-15px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:25.08px;line-height:25.08px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:40.17px;line-height:19.08px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:79.75px}.dashboard-bar-chart-container .dashboard-bar-chart{height:74.75px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:25.25px;line-height:25.25px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:-4.2px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:-3px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-45px;width:110px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{display:none;font-size:12px;min-height:190px;width:10px}.absolut,.percentage{font-size:14px}.modal-chart-detail .modal-inner-detail{width:70px}.modal-body .dashboard-large-chart{width:51px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:22px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:5px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:-4.2px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:-3px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:-6px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:10px;font-weight:400}.dashboard-subtitle-bar{font-size:14px;font-weight:300}.dashboard-figure{font-size:16px;font-weight:400}.dashboard-figurePer{font-size:14px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:10px}.dashboard-legend{display:none;height:30px;width:100%}.dashboard-half-height-legend{display:none;font-size:10px;height:100px;width:0}.application-detail-view section.info{width:90px}.application-detail-view aside.meta{display:none}}@media (min-width:490px) and (max-width:729px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:185px}.dashboard-sub-bar-menu{font-size:12px}.dashboard-medium-chart .dashboard-interior-chart{height:185px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:12px;left:130px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:185px;width:147px}.dashboard-medium-chart #clusterGraphs svg text{font-size:10px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:197px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:10px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:83.25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:25.08px;line-height:25.08px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:40.17px;line-height:19.08px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:79.75px}.dashboard-bar-chart-container .dashboard-bar-chart{height:74.75px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:25.25px;line-height:25.25px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:51.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:21px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-165px;width:350px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{display:none;font-size:12px;min-height:190px;width:10px}.absolut,.percentage{font-size:14px}.modal-chart-detail .modal-inner-detail{width:310px}.modal-body .dashboard-large-chart{width:211px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:142px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:125px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:51.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:21px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:74px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:10px;font-weight:400}.dashboard-subtitle-bar{font-size:14px;font-weight:300}.dashboard-figure{font-size:16px;font-weight:400}.dashboard-figurePer{font-size:14px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:10px}.dashboard-legend{display:none;height:30px;width:100%}.dashboard-half-height-legend{display:none;font-size:10px;height:100px;width:0}.application-detail-view section.info{width:330px}.application-detail-view aside.meta{display:none}}@media (min-width:730px) and (max-width:969px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:185px}.dashboard-sub-bar-menu{font-size:12px}.dashboard-medium-chart .dashboard-interior-chart{height:185px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:12px;left:250px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:185px;width:267px}.dashboard-medium-chart #clusterGraphs svg text{font-size:10px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:197px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:10px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:83.25px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:65px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:25.08px;line-height:25.08px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:40.17px;line-height:19.08px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:79.75px}.dashboard-bar-chart-container .dashboard-bar-chart{height:74.75px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:25.25px;line-height:25.25px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:107.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:45px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-285px;width:590px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{display:none;font-size:12px;min-height:190px;width:10px}.absolut,.percentage{font-size:14px}.modal-chart-detail .modal-inner-detail{width:550px}.modal-body .dashboard-large-chart{width:371px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:262px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:245px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:107.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:45px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:154px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:10px;font-weight:400}.dashboard-subtitle-bar{font-size:14px;font-weight:300}.dashboard-figure{font-size:16px;font-weight:400}.dashboard-figurePer{font-size:14px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:10px}.dashboard-legend{display:none;height:30px;width:100%}.dashboard-half-height-legend{display:none;font-size:10px;height:100px;width:0}.application-detail-view section.info{width:370px}}@media (min-width:970px) and (max-width:1209px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:220px}.dashboard-sub-bar-menu{font-size:13px}.dashboard-medium-chart .dashboard-interior-chart{height:220px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:13px;left:369px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:220px;width:387px}.dashboard-medium-chart #clusterGraphs svg text{font-size:11px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:229px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:11px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:101.5px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:105px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:31.17px;line-height:31.17px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:52.33px;line-height:25.17px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:98px}.dashboard-bar-chart-container .dashboard-bar-chart{height:93px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:31.33px;line-height:31.33px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:163.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:69px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-405px;width:830px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:13px;min-height:225px;width:130px}.absolut,.percentage{font-size:15px}.modal-chart-detail .modal-inner-detail{width:670px}.modal-body .dashboard-large-chart{width:531px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:382px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:364px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:163.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:69px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:234px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:11px;font-weight:400}.dashboard-subtitle-bar{font-size:15px;font-weight:300}.dashboard-figure{font-size:18px;font-weight:400}.dashboard-figurePer{font-size:16px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:11px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:11px;height:117.5px;width:60px}.application-detail-view section.info{width:610px}}@media (min-width:1210px) and (max-width:1449px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:255px}.dashboard-sub-bar-menu{font-size:15px}.dashboard-medium-chart .dashboard-interior-chart{height:255px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:16px;left:486px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:255px;width:507px}.dashboard-medium-chart #clusterGraphs svg text{font-size:12px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:264px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:13px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:119px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:145px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:37px;line-height:37px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:64px;line-height:31px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:115.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:110.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:37.17px;line-height:37.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:219.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:93px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-525px;width:1070px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:14px;min-height:260px;width:140px}.absolut,.percentage{font-size:18px}.modal-chart-detail .modal-inner-detail{width:900px}.modal-body .dashboard-large-chart{width:691px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:502px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:481px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:219.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:93px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:314px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:13px;font-weight:400}.dashboard-subtitle-bar{font-size:18px;font-weight:300}.dashboard-figure{font-size:22px;font-weight:400}.dashboard-figurePer{font-size:20px;font-weight:300}.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-size:13px;font-weight:400}.dashboard-legend{font-size:12px;font-weight:400;height:30px;width:100%}.dashboard-half-height-legend{font-size:12px;height:135px;width:65px}.application-detail-view section.info{width:850px}}@media (min-width:1450px) and (max-width:1689px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:15px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:18px;left:604px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:627px}.dashboard-medium-chart #clusterGraphs svg text{font-size:13px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:13px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:185px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:275.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:117px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-645px;width:1310px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:15px;min-height:290px;width:150px}.absolut,.percentage{font-size:20px}.modal-chart-detail .modal-inner-detail{width:1130px}.modal-body .dashboard-large-chart{width:851px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:622px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:599px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:275.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:117px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:394px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:13px;font-weight:400}.dashboard-subtitle-bar{font-size:20px;font-weight:300}.dashboard-figure{font-size:26px;font-weight:400}.dashboard-figurePer{font-size:24px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:13px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:13px;height:150px;width:70px}.application-detail-view section.info{width:1090px}}@media (min-width:1690px) and (max-width:1929px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:325px}.dashboard-sub-bar-menu{font-size:16px}.dashboard-medium-chart .dashboard-interior-chart{height:325px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:22px;left:720px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:325px;width:747px}.dashboard-medium-chart #clusterGraphs svg text{font-size:14px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:334px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:14px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:154px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:225px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:48.67px;line-height:48.67px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:87.33px;line-height:42.67px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:150.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:145.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:48.83px;line-height:48.83px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:331.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:141px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-765px;width:1550px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:16px;min-height:330px;width:170px}.absolut,.percentage{font-size:24px}.modal-chart-detail .modal-inner-detail{width:1350px}.modal-body .dashboard-large-chart{width:1011px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:742px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:715px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:331.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:141px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:474px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:14px;font-weight:400}.dashboard-subtitle-bar{font-size:24px;font-weight:300}.dashboard-figure{font-size:30px;font-weight:400}.dashboard-figurePer{font-size:28px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:14px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:14px;height:170px;width:80px}.application-detail-view section.info{width:1330px}}@media (min-width:1930px) and (max-width:2169px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:385px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:385px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:26px;left:836px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:385px;width:867px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:394px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:14px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:184px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:265px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:58.67px;line-height:58.67px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:107.33px;line-height:52.67px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:180.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:175.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:58.83px;line-height:58.83px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:387.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:165px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-885px;width:1790px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:390px;width:180px}.absolut,.percentage{font-size:28px}.modal-chart-detail .modal-inner-detail{width:1580px}.modal-body .dashboard-large-chart{width:1171px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:862px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:831px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:387.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:165px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:554px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:28px;font-weight:300}.dashboard-figure{font-size:34px;font-weight:400}.dashboard-figurePer{font-size:32px;font-weight:300}.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-size:14px;font-weight:400}.dashboard-legend{font-size:15px;font-weight:400;height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:200px;width:85px}.application-detail-view section.info{width:1570px}}@media (min-width:2170px) and (max-width:2409px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:20px;left:962px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:987px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:15px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:305px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:443.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:189px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-1005px;width:2030px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:290px;width:150px}.absolut,.percentage{font-size:22px}.modal-chart-detail .modal-inner-detail{width:1850px}.modal-body .dashboard-large-chart{width:1331px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:982px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:957px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:443.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:189px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:634px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:22px;font-weight:300}.dashboard-figure{font-size:36px;font-weight:400}.dashboard-figurePer{font-size:34px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:15px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:150px;width:70px}.application-detail-view section.info{width:1810px}}@media (min-width:2410px) and (max-width:2649px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:20px;left:1082px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:1107px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:15px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:345px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:499.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:213px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-1125px;width:2270px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:290px;width:150px}.absolut,.percentage{font-size:22px}.modal-chart-detail .modal-inner-detail{width:2090px}.modal-body .dashboard-large-chart{width:1491px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:1102px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:1077px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:499.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:213px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:714px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:22px;font-weight:300}.dashboard-figure{font-size:36px;font-weight:400}.dashboard-figurePer{font-size:34px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:15px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:150px;width:70px}.application-detail-view section.info{width:2050px}}@media (min-width:2650px) and (max-width:2889px){.dashboard-full-width-chart,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-full-width-chart .dashboard-sub-bar,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-large-chart .dashboard-sub-bar,.dashboard-medium-chart,.dashboard-medium-chart .dashboard-sub-bar,.resizecontainer{width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart,.dashboard-medium-chart-outer{float:left}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart{height:285px}.dashboard-sub-bar-menu{font-size:17px}.dashboard-medium-chart .dashboard-interior-chart{height:285px;width:100%}.dashboard-medium-chart .dashboard-medium-chart-menu{font-size:20px;left:1202px;top:0}.dashboard-medium-chart #clusterGraphs svg{height:285px;width:1227px}.dashboard-medium-chart #clusterGraphs svg text{font-size:15px}.dashboard-small-chart .dashboard-sub-bar{clear:both;height:65px;margin-bottom:0;width:100%}.dashboard-small-chart .dashboard-small-chart-inner{width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{height:294px;width:100%}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-axis text{fill:#666;font-size:15px;font-weight:400}.dashboard-tendency-container .dashboard-tendency-chart{height:134px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{width:385px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar{height:42px;line-height:42px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure{height:74px;line-height:36px;padding-top:5px}.dashboard-tendency-container .dashboard-sub-bar{width:100%}.dashboard-bar-chart-container{height:130.5px}.dashboard-bar-chart-container .dashboard-bar-chart{height:125.5px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{height:42.17px;line-height:42.17px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:555.8px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{line-height:40px;padding-top:15px;width:237px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{box-sizing:border-box;height:50px;margin-top:5px;width:100%}.dashboard-bar-chart-container .dashboard-sub-bar{padding-top:13px;width:100%}.modal-chart-detail{bottom:12.1%!important;left:50%;margin-left:-1245px;width:2510px!important}.modal-chart-detail .modal-body{height:95%;max-height:none;padding:5px}.modal-chart-detail .modal-dashboard-legend{font-size:17px;min-height:290px;width:150px}.absolut,.percentage{font-size:22px}.modal-chart-detail .modal-inner-detail{width:2330px}.modal-body .dashboard-large-chart{width:1651px}.modal-body .dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.modal-body .dashboard-large-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-medium-chart-outer{float:left;width:1222px}.modal-body .dashboard-medium-chart,.modal-body .dashboard-medium-chart .dashboard-interior-chart,.modal-body .dashboard-medium-chart .dashboard-sub-bar{width:100%}.modal-body .dashboard-small-chart,.modal-body .dashboard-small-chart .dashboard-small-chart-inner,.modal-body .dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart{width:auto}.modal-body .dashboard-medium-chart .dashboard-medium-chart-menu{left:1197px}.modal-body .dashboard-small-chart .dashboard-sub-bar{clear:both;width:auto}.modal-body .dashboard-tendency-container,.modal-body .dashboard-tendency-container .dashboard-tendency-chart,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-figure,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-subtitle-bar,.modal-body .dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{box-sizing:border-box;width:100%}.modal-body .dashboard-tendency-container .dashboard-sub-bar{width:100%}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart{width:auto}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{width:555.8px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{width:237px}.modal-body .dashboard-bar-chart-container .dashboard-bar-chart-chart{width:794px}.modal-body .dashboard-bar-chart-container .dashboard-sub-bar{width:100%}.absolut{font-weight:300}.dashboard-sub-bar{font-size:15px;font-weight:400}.dashboard-subtitle-bar{font-size:22px;font-weight:300}.dashboard-figure{font-size:36px;font-weight:400}.dashboard-figurePer{font-size:34px;font-weight:300}.dashboard-legend,.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{font-weight:400;font-size:15px}.dashboard-legend{height:30px;width:100%}.dashboard-half-height-legend{font-size:15px;height:150px;width:70px}.application-detail-view section.info{width:2290px}}div.headerBar{position:absolute}div.centralRow{background:rgba(64,74,83,.04);height:100%;min-height:100%;overflow-y:auto;position:relative;right:0}div.centralContent{background-color:transparent;margin-top:10px;width:100%;padding:5px 5px 20px}.contentDiv{list-style:none;padding:0}.contentDiv li{background-color:rgba(0,0,0,.05)}.contentDiv a.add{display:block;font-weight:400;padding:40px 0;text-align:left}.modal-body th .valueCell,.modal-body th th.actionCell,.modal-body th th.keyCell,.waitModal{text-align:center}.contentDiv .icon{padding-left:5px;padding-right:5px;padding-top:10px}.contentDiv:after{clear:both}.contentDiv:after,.contentDiv:before{display:table;line-height:0}.clusterInfoIcon{float:left;padding-left:5px;padding-top:2px}.waitModal.icon{font-size:100px;height:120px}.waitModal.message{font-size:20px}.icon_arangodb_info{color:#333;font-size:23px}li a [class*=" icon_arangodb"],li a [class^=icon_arangodb]{font-size:18px;position:absolute;right:4px;top:2px}.fa-minus-circle{color:#e74c3c;font-size:14pt}.fa-plus-circle{color:#2ecc71;font-size:14pt}.fa-minus-circle:hover,.fa-plus-circle:hover{cursor:pointer}.dropdownImport,div.headerDropdown{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:2px;clear:both;display:none;margin-bottom:15px;padding:10px;position:relative;width:auto}.dropdownImport.smallDropdown .dropdownInner,div.headerDropdown.smallDropdown .dropdownInner{min-height:20px}.dropdownImport.headerDropdown input[type=checkbox].css-checkbox,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox{display:none}.dropdownImport.headerDropdown input[type=checkbox].css-checkbox label.css-label,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox label.css-label{background-position:0 0;background-repeat:no-repeat;display:inline-block;font-size:15px;height:15px;margin-top:0;padding-left:20px;vertical-align:middle}.dropdownImport.headerDropdown input[type=checkbox].css-checkbox:checked+label.css-label,div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox:checked+label.css-label{background-position:0 -15px}div.dropdown-title{margin-bottom:10px}div.dropdownInner{-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0;min-height:125px;position:relative;width:auto}div.dropdownInner .nav-header{font-size:10pt}div.dropdownInner>.nav-header{color:#000;font-size:10pt;font-weight:400}div.dropdownInner>label{color:#000;font-weight:300}div.dropdownInner ul{border-left:1px solid rgba(140,138,137,.25);display:inline;list-style-type:none;margin-left:10px;margin-top:10px;min-height:105px;width:175px}div.dropdownInner ul:first-of-type,div.queryline input[type=file]{border:0}div.dropdownInner ul label{color:#000;padding-left:20px}div.dropdownInner ul li .fa{color:#999;margin-right:5px}div.dropdownInner ul li .fa.fa-square-o{margin-left:1px;margin-right:6px}div.dropdownInner ul li .fa.fa-check-circle-o,div.dropdownInner ul li .fa.fa-check-square-o,div.dropdownInner ul li .fa.fa-dot-circle-o{color:#2ecc71}div.queryline{color:#000;height:35px}div.queryline .textDiv{margin-right:10px;margin-top:4px}div.queryline input,div.queryline select{margin-bottom:5px}div.queryline input{width:16%}div.queryline.querylineAdd span{color:#fff;padding-left:10px;position:relative;top:-21px}div.queryline .removeFilterItem i{margin-left:5px!important;margin-top:0!important}div.queryline div.searchByAttribute{margin-left:6px;margin-right:6px;position:relative}div.queryline div.searchByAttribute input{width:140px}div.queryline div.searchByAttribute>ul.gv-dropdown-menu{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;background-color:#fff;color:#fff;display:none;left:0;position:absolute;top:20px;width:247px}div.dropdownImport{background-color:#fff;border-radius:3px;display:none;position:relative;padding:10px 10px 5px}div.dropdownImport input{line-height:0;margin-bottom:-15px;margin-top:5px}select.filterSelect{color:#00f;margin-left:10px;margin-right:10px;width:80px}#filterHeader button{float:right;margin-left:10px!important;margin-top:1px}div.input-append button.gv_example_toggle{-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;background-color:#8f8d8c;height:30px;margin-left:-1px;padding-left:10px;padding-right:10px;padding-top:12px;vertical-align:top}div.input-append button.gv_example_toggle:hover{background-color:#2ecc71}.searchEqualsLabel{margin-left:6px;margin-right:6px}img.gv-throbber{background-image:url(../img/swagger/throbber.gif)}span.gv_caret{border-top:5px solid #fff;margin-top:2px!important}input.search-input{border:1px solid #fff;height:20px;line-height:20px;margin-right:-4px;margin-top:3px;width:120px}.search-field{margin-left:10px;margin-right:3px}.search-field .fa-search{color:#c2c2c2;font-size:12pt;margin-left:-20px;opacity:.5;position:absolute;right:9px;top:9px}div.headerBar,div.headerBar .infoField{color:#000;float:right;padding-left:5px;padding-right:5px}div.headerBar,legend.gv-inner{font-size:16px}.search-field .fa-search:hover{cursor:pointer;opacity:1}.gv-search-submit-icon,.search-submit-icon{background-image:url(../img/enter_icon.png);background-size:14px;height:14px;margin-left:-18px;opacity:.2;position:absolute;width:14px}.gv-search-submit-icon:hover,.search-submit-icon:hover{opacity:.8}.search-submit-icon{margin-top:11px}.gv-search-submit-icon{margin-top:6px}div.headerBar{background-color:none;border-radius:2px;height:36px;margin-top:-55px;right:0}div.headerBar.marginTop5{margin-top:-60px}div.headerBar .infoField{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:3px!important;font-size:12px;margin-right:7px;margin-top:7px}div.headerBar .infoField .fa{cursor:pointer;margin-left:5px}div.headerBar input[type=checkbox].css-checkbox{display:none}div.headerBar input[type=checkbox].css-checkbox label.css-label{background-position:0 0;background-repeat:no-repeat;cursor:pointer;display:inline-block;font-size:15px;height:15px;margin-top:0;padding-left:20px;vertical-align:middle}div.headerBar input[type=checkbox].css-checkbox:checked+label.css-label{background-position:0 -15px}div.headerBar input[type=radio]{display:none}div.headerBar input[type=radio] label span{background:url(../img/check_radio_sheet.png) -38px top no-repeat;cursor:pointer;display:inline-block;height:19px;margin:-1px 4px 0 0;vertical-align:middle;width:19px}#transparentHeader input[type=checkbox].css-checkbox,.contentTables tr.contentRowActive span,.dashboard-legend .dashboard-legend-inner br,.dashboard-row .fa-arrows-alt,.modal-delete-confirmation,.nvtooltip{display:none}div.headerBar input[type=radio]:checked+label span{background:url(../img/check_radio_sheet.png) -57px top no-repeat}.headerButtonList a span .fa-top{color:#fff;font-size:7pt;position:absolute}.headerButtonList a span .fa-top:hover{color:#2ecc71}.headerButtonList a.error{color:#e74c3c}.headerButtonList a.error:hover{background-color:#e74c3c;border-color:#e74c3c;color:#fff}.headerBar a.arangoHeader{color:#000;font-size:11.5pt;font-weight:100;left:0;position:relative;top:7px}.headerBar>div.headerButtonBar{margin:4px 0;margin-bottom:0!important}.breadcrumb{background:0 0;border:0;border-radius:0;color:#fff;font-size:12pt;font-weight:100;line-height:45px;margin:0 0 0 -4px;padding:0 0 0 10px}.breadcrumb .fa{margin-left:10px;margin-right:8px}.breadcrumb .fa-ellipsis-v{font-size:10pt;opacity:0}.breadcrumb .disabledBread{color:#fff;float:left;font-size:12pt;font-weight:100;padding-right:5px;position:relative}.breadcrumb .disabledBread i{font-size:10pt;margin-left:10px}.breadcrumb .disabledBread:hover{cursor:default}.breadcrumb .activeBread{color:#fff;float:left;font-size:11pt;font-weight:100;-webkit-tap-highlight-color:transparent;-webkit-transition:opacity .2s cubic-bezier(.645,.045,.355,1);transition:opacity .2s cubic-bezier(.645,.045,.355,1)}.breadcrumb .activeBread:hover{opacity:.65}.breadcrumb a{color:#fff!important;opacity:.8;transition:all .2s ease-in}.breadcrumb a:hover,.subViewNavbar li:hover a{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in}.breadcrumb a:hover{opacity:1;transition:all .2s ease-in}.breadcrumb #app-development-path{background-color:#fff;border-bottom:1px solid rgba(140,138,137,.25);border-left:1px solid rgba(140,138,137,.25);border-radius:3px;border-right:1px solid rgba(140,138,137,.25);height:24px;margin-left:-6px;margin-top:-10px;padding-left:5px;width:100%}.arangoHeader{font-weight:400}.checkboxLabel{margin-top:4px;padding-left:0}.css-label{background-image:url(../img/dark-check-green.png)}.css-label-round{background-image:url(../img/dark-check-green-round.png)}.modal-dashboard-header,.modal-header{background-color:#fff;border-bottom:0!important;border-radius:3px;margin-top:5px;padding-left:5px;padding-right:10px;padding-top:4px}.modal-dashboard-header .arangoHeader,.modal-header .arangoHeader{color:#000;font-size:13pt;font-weight:100;left:5px;position:relative;top:2px}.modal-dashboard-header a,.modal-header a{top:2px!important}.modal-dashboard-header .close,.modal-header .close{color:#fff;font-weight:300;margin-top:2px;opacity:.5}.modal-dashboard-header .close:hover,.modal-header .close:hover{opacity:1}.select2-drop-active{border:2px solid #3498db;border-top:0;margin-top:-2px;width:452px!important;z-index:9999999}.select2-no-results,.select2-results{font-weight:100}.modal-tabbar{border-bottom:1px solid #666}.modal-body{color:#736b68;font-size:14px;font-weight:300;max-height:410px}.modal-body input{height:20px;width:436px}.modal-body select{height:33px;width:452px}.modal-body .select2-container-multi.select2-container-active .select2-choices{border:2px solid #3498db}.modal-body .select2-choices{background-image:none!important;border:2px solid rgba(140,138,137,.25);border-radius:3px;-webkit-box-shadow:none;box-shadow:none;width:448px}.modal-body .select2-choices input:active{-webkit-box-shadow:none;box-shadow:none;outline:0!important}.modal-body .select2-choices .select2-search-choice{margin:5px 0 3px 5px!important}.modal-body .select2-choices li{background-color:#fff!important;background-image:none!important;color:#000}.modal-body tr.first,.modal-body tr.last,.modal-body tr.middle{background-color:#f5f8f0}.modal-body .select2-choices li a{margin-left:1px;margin-top:-1px}.modal-body .select2-choices:active{border:1px solid #999;-webkit-box-shadow:none!important;box-shadow:none!important;outline:transparent!important}.modal-body .nav-tabs{margin-top:15px}.modal-body .nav-tabs>li>a:hover{border-color:#8c8a89}.modal-body input,.modal-body select,.modal-body textarea{margin-top:10px}.modal-body input[type=checkbox]{margin-bottom:10px}.modal-body input[type=text].invalid-input{border-color:rgba(234,23,23,.6)}.modal-body input[type=text].invalid-input:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(234,23,23,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(234,23,23,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(234,23,23,.6)}.modal-body input[type=file]{line-height:17px}.modal-body tr.spacer{height:10px}.modal-body tr.first th:first-child{border-top-left-radius:3px}.modal-body tr.first th:last-child{border-top-right-radius:3px}.modal-body tr.middle{padding-left:10px;padding-right:10px}.modal-body tr.last th:first-child{border-bottom-left-radius:3px}.modal-body tr.last th:last-child{border-bottom-right-radius:3px}.modal-body tr.first th:first-child,.modal-body tr.last th:first-child,.modal-body tr.middle th:first-child{padding-left:10px}.modal-body tr.first th:last-child,.modal-body tr.last th:last-child,.modal-body tr.middle th:last-child{padding-right:10px}.modal-body th.actionCell{width:30px}.modal-body th.keyCell{width:170px}.modal-body th.keyCell input{width:150px}.modal-body th .valueCell{width:300px}.modal-body th .valueCell input{width:290px}.modal-body th .select2-container{margin-bottom:10px;margin-top:10px}.modal-body .icon-info-sign{margin-bottom:10px;margin-left:10px;opacity:.7;padding-bottom:5px}.modal-body .icon-info-sign:hover{opacity:1}.modal-body .icon_arangodb_info{color:#736b68;font-size:18px;margin-top:-10px;position:absolute;right:12px}.modal-body .icon_arangodb_info:hover{color:#000}.modal-body .collapse{margin-right:-14px;position:relative}.modal-body .accordion-inner{border-top:0;margin-left:0;padding-left:0;padding-right:0}.modal-body .accordion-toggle span .caret{border-top-color:#000;float:right;margin-top:5px}.modal-body .accordion-toggle.collapsed span .caret{-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.modal-body .collectionTh{height:55px}.modal-body .tab-content{min-height:200px}.modal-body .tab-content .tab-pane{border-top:1px solid #666!important;margin-left:0!important;padding-top:10px}.modal-body .tab-content .tab-pane-modal{border-top:none!important}.modal-body .tab-content #appstore{max-height:290px}.modal-body .errorMessage{background:#e74c3c;border-radius:4px;color:#fff;font-size:9pt;font-weight:100;margin-top:-9px;padding-left:5px;padding-right:5px;position:absolute}.modal-body .nav .tab-icon{margin-right:5px;margin-top:-3px;width:20px}.modal-text{font-weight:300;padding-bottom:3px;padding-top:3px}.modal-backdrop,.modal-backdrop.fade.in{opacity:.4}.fade{opacity:0;-moz-transition:opacity .03s linear;-ms-transition:opacity .03s linear;-o-transition:opacity .03s linear;-webkit-transition:opacity .03s linear;transition:opacity .03s linear}.modal{border:0!important;border-radius:3px!important;box-shadow:0;margin-left:-325px!important;width:650px;z-index:9999999}.modal .fade.in{top:12.1%!important}.modal table tr:last-child{border-bottom:0!important}.waitModal{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background:0 0;border:0;color:#fff}.waitModalBackdrop{opacity:.7!important}.modalTooltips span{color:#736b68;font-size:20px}.fixedDropdown .dropdown-header a,.fixedDropdown .notificationItem,.modalTooltips span:hover{color:#000}.gv-object-view{text-align:left;white-space:pre}.capitalize{text-transform:capitalize}.modal-footer{border-top:0!important;padding-right:17px}.modal-footer .button-close{margin-left:20px;margin-right:10px}.modal-header{margin-left:5px;margin-right:5px}.modal-dashboard-header{margin-left:0;margin-right:0;padding-bottom:9px}.modal-delete-confirmation button{margin-right:10px;margin-top:-4px}.modal-delete-confirmation button .modal-confirm-delete{margin-right:-18px}.modal-delete-confirmation fieldset input{float:left}.modal-delete-confirmation fieldset label{float:left;margin-left:10px}.createModalDialog table{width:100%}.createModalDialog .collection-info-figures table{float:left;margin-left:0;margin-right:0;margin-top:0;min-width:200px;padding:3px;text-align:left}.createModalDialog .figures1,.createModalDialog .figures2{margin-bottom:20px;width:300px}.createModalDialog .figures2{margin-left:20px!important}.createModalDialog .figures3{margin-bottom:0;width:100%}.foxx-store-row .foxx-name{font-weight:700}.foxx-store-row .foxx-author{font-size:10pt;font-weight:300;margin-top:-4px}.foxx-store-row .foxx-version{font-weight:400}#new-app-mount{margin-right:24px;width:360px}#control_event_edge_delete_modal,#control_event_edge_edit_modal,#control_event_new_node_modal,#control_event_node_delete_modal,#control_event_node_edit_modal{margin-left:-320px;width:640px}.navlogo .stat_cpu,.navlogo .stat_ram{width:26px;height:26px}.navlogo .stat_cpu{margin-top:1px}.navlogo .stat_cpu path{fill:#aa0}.navlogo .stat_ram path{fill:#070}.navlogo .stat_req{height:22px;width:22px}.navlogo .stat_req path{fill:#aa0}#notification_menu .innerDropdownInnerUL{margin-left:0}#noty_bottom_layout_container li{border:0!important}.noty_type_error .arango_message{top:2px}.noty_bar .noty_buttons{background-color:transparent!important;border:0!important;bottom:0;height:1px;margin-bottom:30px!important;margin-top:-35px!important;position:relative;right:-23px}.noty_bar .noty_buttons button{margin-bottom:2px;margin-right:-1px}.noty_bar .arango_message{font-weight:400!important}.noty_bar .arango_message div{float:right;width:20px}.fixedDropdown{background:#fff!important;border-color:rgba(140,138,137,.25)!important;border-radius:3px!important;margin:10px -3px 0!important;right:-1px!important;width:210px}.fixedDropdown .dropdown-header,.fixedDropdown .dropdown-item,.innerDropdownInnerUL{border-bottom:1px solid rgba(0,0,0,.2)}.fixedDropdown .dropdown-header{margin-left:-1px;padding:0!important}.fixedDropdown a{padding-left:5px!important}.fixedDropdown .notificationItemContent{font-size:.9em;font-weight:300;margin-left:15px;max-width:180px;min-height:15px;white-space:normal;width:180px;word-wrap:break-word}.fixedDropdown button{margin-right:5px;margin-top:5px}.fixedDropdown .notificationItem .notificationItemTitle{color:#000;font-weight:400;max-width:165px;overflow-wrap:break-word;white-space:normal;word-wrap:break-word}.fixedDropdown .notificationItem .notificationItemTitle:hover{background-color:transparent;cursor:default}.fixedDropdown .notificationItem i{color:rgba(0,0,0,.2);font-size:20px;padding-left:5px;position:relative;right:2px}.fixedDropdown .notificationItem i:hover{color:#000}.innerDropdownInnerUL{height:220px!important;min-height:220px;overflow-x:hidden;overflow-y:auto;width:100%}.innerDropdownInnerUL .dropdown-item:hover{background-color:#e1e1e1!important}.innerDropdownInnerUL li{width:auto!important}#stat_hd{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid rgba(140,138,137,.25);height:25px;margin-left:-10px;margin-top:8px;position:relative;right:3px;text-align:center;width:25px}.contentButtons,.contentTables{margin-bottom:10px;width:100%}#stat_hd #stat_hd_counter{color:#c2c2c2;line-height:25px;text-align:center}.fullNotification{background-color:#e74c3c!important;border:1px solid #e74c3c!important}.fullNotification p{color:#fff!important}.contentTables tr.contentRowActive a,.contentTables tr.contentRowInactive a{color:#000!important}.contentButtons{clear:both}.contentButtons #createDatabase,.contentButtons #createUser{margin-left:0}.contentTables thead{text-align:left}.contentTables thead tr{background-color:#fff;border-bottom:1px solid #c2c2c2}.contentTables tbody tr:nth-child(odd){background-color:#d9d9d9}.contentTables tbody tr:nth-child(even){background-color:#fff}.contentTables tr.contentRowActive{background-color:#bdcc92!important;font-weight:400}.contentTables .dbThFirst{width:90%}.contentTables .dbThSecond{width:10%}.contentTables td{padding:12px 18px}.contentTables td span{float:right;font-size:22px}.contentTables .collectionThSec{margin-right:0;width:80%}.contentTables .collectionTh{margin-right:0;width:5%}.usermenu{width:40px}.userImg{margin-top:-11px}.userImg .caret{margin-top:13px}.user-menu-img{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:#fff;height:25px}.ui-tooltip{background-color:#2ecc71!important;border:0!important;border-radius:3px!important;box-shadow:none!important;color:#fff!important;font-size:10pt!important;font-weight:100!important;z-index:99999999}.tooltip-inner{max-width:300px!important;white-space:normal!important;word-wrap:break-word!important}.arangoDataTable .key,.dashboard-sub-bar .dashboard-sub-bar-title,.dbselection,.subnavmenu .icon,.subnavmenu .info,.subnavmenu .state,div.gv-colour-list li{text-overflow:ellipsis;white-space:nowrap}.index-tooltip{color:#736b68}.index-tooltip:hover{color:#000}.index-tooltip .arangoicon{font-size:18px!important}.tooltipInfoTh{width:10%}.arangoToolbar span.action:hover{background-color:#2ecc71;border-radius:3px;color:#fff;cursor:pointer}.arangoToolbar{background-color:#fff;border:1px solid rgba(140,138,137,.25);height:45px;width:100%}.arangoToolbar .pull-left,.arangoToolbar .pull-right{height:30px;margin-top:8px}.arangoToolbar .pull-left i.positive,.arangoToolbar .pull-right i.positive{color:#2ecc71}.arangoToolbar .pull-left i.warning,.arangoToolbar .pull-right i.warning{color:#f1c40f}.arangoToolbar .pull-left button{margin-left:8px}.arangoToolbar .pull-right button:first-child,.arangoToolbar .pull-right select:first-child{margin-right:6px}.arangoToolbar span{padding:5px 8px;position:relative;top:5px;font-weight:100;margin-left:10px}.arangoToolbar span.clickable{cursor:pointer;margin-left:0;opacity:.5;top:1px}.arangoToolbar span.clickable:hover{opacity:1}.arangoToolbar i{font-size:11pt;font-style:normal}.arangoToolbar i.fa{font-size:12pt;margin-right:5px}.arangoToolbar .toolbarType{background:#5bc0de;border-radius:3px;color:#fff;margin-left:8px}.arangoToolbar .styled-select{width:auto}.arangoToolbarBottom{clear:both}.arangoToolbarBottom #executeQuery{margin-right:8px}.arangoToolbarBottom .button-close:last-child{margin-right:10px}.dbselection{float:left;margin-right:3px;max-width:160px;overflow:hidden}.dbselection .fa{color:#fff;opacity:.3}.dbselection .fa-caret-square-o-down{margin-left:5px}.dashboard-bar-chart-container,.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-medium-chart,.dashboard-small-chart .dashboard-small-chart-inner,.dashboard-tendency-container{background-color:#fff;border-left:0 solid #000;box-sizing:border-box}.dashboard-bar-chart-container:first-child,.dashboard-full-width-chart .dashboard-full-width-chart-inner:first-child,.dashboard-large-chart .dashboard-large-chart-inner:first-child,.dashboard-medium-chart:first-child,.dashboard-small-chart .dashboard-small-chart-inner:first-child,.dashboard-tendency-container:first-child{margin-left:0}.dashboard-bar-chart-container,.dashboard-full-width-chart,.dashboard-large-chart,.dashboard-medium-chart,.dashboard-small-chart,.dashboard-tendency-container{border:1px solid rgba(64,74,83,.2);margin-left:-1px;margin-top:-2px;position:relative}.dashboard-interior-chart{width:100%!important}.dashboard-interior-chart>div{margin-left:-15px;margin-top:10px}.dashboard-sub-bar-menu{cursor:pointer;position:absolute;right:9px;top:6px}.dataNotReadyYet{color:#f1c40f;font-size:14px;font-weight:100;text-align:center}.dashboard-sub-bar,.dashboard-sub-bar .dashboard-sub-bar-title{font-size:11pt;font-weight:600;text-align:center;text-transform:uppercase}.dashboard-sub-bar{background-color:#fff;color:rgba(0,0,0,.5);height:50px;line-height:24px;margin:0;padding:10px 6px 20px}.dashboard-sub-bar .dashboard-sub-bar-title{color:#000;opacity:.5;overflow:hidden;width:100%}.dashboard-full-width-chart{border:1px solid rgba(104,103,102,.1);border-radius:0;margin-right:12px;width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner,.dashboard-large-chart .dashboard-large-chart-inner,.dashboard-small-chart .dashboard-small-chart-inner{border-left:5px solid #fff;border-right:5px solid #fff;border-top:5px solid #fff;padding-bottom:10px}.dashboard-full-width-chart .dashboard-full-width-chart-inner{background-color:#fff;padding-top:12px;width:100%}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-subtitle-bar.top{border-bottom:1px solid #e1e1e1;height:48px;line-height:48px;text-align:right}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner{margin-left:10px;margin-right:10px}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table{margin-bottom:10px;margin-top:10px;table-layout:fixed;width:100%}.dashboard-large-chart .dashboard-large-chart-inner .dashboard-interior-chart,.dashboard-medium-chart .dashboard-interior-chart{margin-bottom:0}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table .no-data{font-style:italic;font-weight:100}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table tr{border-bottom:1px solid rgba(0,0,0,.025)}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table td:first-child{width:100px}.dashboard-full-width-chart .dashboard-full-width-chart-inner .dashboard-interior-chart .inner table td:last-child{text-align:right}.dashboard-full-width-chart .state{background-color:#8c8a89;border-radius:5px;color:#fff;font-weight:300;margin-left:5px;padding-left:6px;padding-right:6px}.dashboard-large-chart .dashboard-large-chart-inner{background-color:#fff}.dashboard-small-chart{background:#fff;border-radius:0}.dashboard-small-chart .dashboard-small-chart-inner{background-color:#fff;padding-top:5px}.dashboard-small-chart .dashboard-small-chart-inner .dashboard-interior-chart .nv-bar rect{fill-opacity:.15;stroke-opacity:.8;stroke-width:.5px}.dashboard-medium-chart-outer{border-radius:0}.dashboard-medium-chart{background-color:#fff;margin-bottom:0;padding-top:10px}.dashboard-medium-chart .dashboard-medium-chart-menu{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border:0 solid rgba(0,0,0,.3);color:rgba(0,0,0,.3);cursor:pointer;padding:0 4px;position:absolute;z-index:1000}.dashboard-medium-chart .dashboard-medium-chart-menu:hover{color:rgba(0,0,0,.7)}.dashboard-medium-chart .dashboard-medium-chart-inner{padding-bottom:10px}.dashboard-medium-chart .clusterChart .slice path{fill-opacity:.15;stroke-opacity:1;stroke-width:1.5px}.tendency-box-sizing .dashboard-row:last-child .dashboard-medium-chart-outer:last-child{margin-left:-2px}.dashboard-tendency-container{box-sizing:content-box}.dashboard-tendency-container .dashboard-sub-bar{height:46px}.dashboard-tendency-container .dashboard-tendency-chart{background-color:#fff;border-left:5px solid #fff;border-right:5px solid #fff;border-top:5px solid #fff;padding-bottom:5px}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency{background-color:#fff;box-sizing:border-box;margin-top:5px;padding:0;width:50%}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency:first-child{border-right:1px solid #e1e1e1}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-subtitle-bar{border-bottom:1px solid #e1e1e1;box-sizing:inherit;padding-right:11px;text-align:right;width:100%}.dashboard-tendency-container .dashboard-tendency-chart .dashboard-tendency .dashboard-figure{box-sizing:border-box;text-align:center;width:100%}.dashboard-bar-chart-container{background:0 0;border-radius:0;box-sizing:border-box}.dashboard-bar-chart-container .dashboard-sub-bar{padding-bottom:17px;padding-top:13px}.dashboard-bar-chart-container .dashboard-bar-chart{background-color:#fff;border-left:5px solid #fff;border-right:5px solid #fff;border-top:5px solid #fff;padding-bottom:8px;width:auto}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title{margin-top:5px;padding:0 8px;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .percentage{font-weight:400;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{color:#000;font-weight:500;text-align:center;width:100%}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart{padding-top:10px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart .nv-bar rect{fill-opacity:.6;stroke-opacity:.6;stroke-width:.5px}.dashboard-legend .dashboard-legend-inner{margin-right:25px;padding:10px 5px 5px 0;text-align:right}#dashboardDetailedChart .dygraph-axis-label-y,.dashboardDetailChart .dygraph-axis-label-y,.innerDashboardChart .dygraph-axis-label-y{text-align:left}.dashboard-legend .dashboard-legend-inner span{padding-left:10px}.dashboard-spacer{margin:0 12px}.dashboard-headerbar{margin-bottom:15px;margin-top:10px}.modal-chart-detail .modal-dashboard-legend .dashboard-legend-inner{padding-left:20px}.dashboard-half-height-legend .dashboard-legend-inner{padding-top:20px}.dashboard-title-bar{background-color:#686766;color:#fff;font-size:14.5px;font-weight:400;height:30px;line-height:30px;padding:0 5px 0 10px}.dashboard-title-bar .dashboard-half-title-bar{border-left:1px solid #000;margin-left:-1px;width:50%}.dashboard-title-bar .dashboard-half-title-bar:first-child{border-left:0;margin-left:0}.dashboard-row{margin-bottom:0;margin-left:2px;margin-right:0}.dygraph-axis-label.dygraph-axis-label-x,.dygraph-axis-label.dygraph-axis-label-y{color:#666}#repl-numbers,#repl-progress,#repl-ticks{width:33.3%!important}#repl-numbers .inner,#repl-progress .inner,#repl-ticks .inner{margin-top:0}#replication,#requests,#system{margin-bottom:10px}.dashboardModal{-moz-border-radius:8px!important;-webkit-border-radius:8px!important;border-radius:8px!important;height:80%;margin-left:-45%;min-width:780px;overflow:auto;padding:10px;top:10%;width:90%!important}#dashboardHttpGroup{border:6px solid #000;height:100%;width:100%}#dashboardDetailedChart{border:1px solid #000;height:300px;width:100%}.innerDashboardChart{bottom:5px;left:5px;position:absolute;right:5px;top:5px}.dashboardChart{background-color:#fff;border:1px solid rgba(0,0,0,.2);float:left;height:210px;margin:1.05%;position:relative;width:31%}.dygraph-label.dygraph-title{color:#000;font-size:15px;font-weight:400;text-align:left}#dashboardDetailedLineChart{padding-top:10px}.dashboardDistribution{float:left;width:270px}.dashboardDistribution svg{height:220px;width:250px}.showHotkeyHelp{cursor:pointer}.shortcuts{font-size:14px;font-weight:200}.shortcuts b{border-left:1px solid rgba(0,0,0,.34);margin-left:5px;padding-left:5px}.shortcuts .clearShortcut,.shortcuts b:first-child{border-left:0;margin-left:0;padding-left:0}.loginFixedWindow{background:#649068;height:100%;left:0;position:fixed;top:0;width:100%;z-index:9999}.loginFixedWindow #databases{height:140px}.loginFixedWindow #databases #logout{margin-top:20px}.loginFixedWindow .resizecontainer{position:relative;top:0}.loginFixedWindow .resizecontainer img{height:33px;margin-left:-6px;margin-top:9px}.login-window{background-color:rgba(255,255,255,.75);border:1px solid rgba(140,138,137,.25);border-radius:3px;height:auto;margin:0 auto;position:relative;top:100px;width:350px;padding:20px 20px 50px}.login-window select{margin-bottom:30px;padding-left:35px}.login-window .login-logo-round{margin-bottom:25px;margin-top:10px}.login-window .login-logo-round img{display:block;margin:0 auto;width:150px}.login-window .checking-password{box-sizing:border-box;color:rgba(0,0,0,.5);margin-left:-21px;margin-top:-25px;position:absolute;text-align:center;width:100%}.login-window form .fa{color:rgba(0,0,0,.2);float:left;font-size:14pt;left:30px;margin-top:11px;position:absolute}.login-window .wrong-credentials{color:#e74c3c;margin-top:-30px;text-align:center}.login-window .login-space{height:50px}.login-window .login-input{background:#f2f2f2!important;border:2px #f2f2f2!important;box-sizing:border-box;font-size:14px;height:40px;margin:0 0 15px;outline:0;padding:10px 10px 10px 35px;width:100%;border-radius:3px}.login-window .form-error{border:2px solid #e74c3c!important}.login-window button{height:40px;width:100%}.query-toolbar{background-color:#f0f0f0;border-bottom:0;border-style:solid;border-width:1px;font-size:20px;height:27px;margin-left:0;margin-right:0}.queryManagementBottomActions button,.querySizeDiv{margin-right:10px}.query-toolbar span:hover{background-color:#e74c3c;color:#fff}.queryBottomActions{border-top:1px solid rgba(140,138,137,.25);padding:10px}.queryExecutionTime{margin-left:10px;margin-top:15px}.queryManagementBottomActions{background-color:#fff;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top:1px solid #c2c2c2;height:40px;margin-top:-2px;padding-top:10px}.styled-select{float:right;height:30px;overflow:hidden;width:220px}.styled-select select{background:#fff;border:1px solid #c2c2c2!important;border-radius:0!important;font-size:14px;font-weight:300;height:30px;line-height:1;outline:0;padding:5px;padding-left:5px!important;padding-top:3px!important}.querySizeDiv,.querySizeDiv select{height:30px!important}.styled-select select:focus{outline:0}.querySizeDiv{width:130px!important}.inputEditorWrapper{border-bottom:3px solid rgba(140,138,137,.25)!important;border-left:1px solid rgba(140,138,137,.25);border-right:1px solid rgba(140,138,137,.25);clear:both;height:300px;min-height:300px;width:100%}.inputEditorWrapper .aqlEditorWrapper{border:0!important;border-right:3px solid rgba(140,138,137,.25)!important;float:left;height:100%!important;max-width:85%;min-width:20%;width:70%}.inputEditorWrapper #arangoMyQueriesTable tbody tr{cursor:copy}.inputEditorWrapper .aqlEditorWrapper,.inputEditorWrapper .bindParamEditorWrapper{background-color:#fff;overflow:hidden}.inputEditorWrapper .aqlEditorWrapper .stringtype,.inputEditorWrapper .bindParamEditorWrapper .stringtype{color:#ce2f30}.inputEditorWrapper .aqlEditorWrapper .arraytype,.inputEditorWrapper .aqlEditorWrapper .objecttype,.inputEditorWrapper .bindParamEditorWrapper .arraytype,.inputEditorWrapper .bindParamEditorWrapper .objecttype{color:#00f}.inputEditorWrapper .aqlEditorWrapper .numbertype,.inputEditorWrapper .bindParamEditorWrapper .numbertype{color:#044}.inputEditorWrapper .aqlEditorWrapper .booleantype,.inputEditorWrapper .bindParamEditorWrapper .booleantype{color:#c12dad}.inputEditorWrapper .aqlEditorWrapper table,.inputEditorWrapper .bindParamEditorWrapper table{border-top:0}.inputEditorWrapper .aqlEditorWrapper table tbody,.inputEditorWrapper .bindParamEditorWrapper table tbody{display:block;overflow-y:auto}.inputEditorWrapper .aqlEditorWrapper table .truncate,.inputEditorWrapper .bindParamEditorWrapper table .truncate{opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:30%}.inputEditorWrapper .aqlEditorWrapper table tr.noBgColor,.inputEditorWrapper .bindParamEditorWrapper table tr.noBgColor{background-color:transparent!important}.inputEditorWrapper .aqlEditorWrapper table tr.selected,.inputEditorWrapper .bindParamEditorWrapper table tr.selected{background-color:rgba(125,188,66,.64);color:#fff}.inputEditorWrapper .aqlEditorWrapper table tr.selected .spanWrapper,.inputEditorWrapper .bindParamEditorWrapper table tr.selected .spanWrapper{background-color:rgba(255,255,255,.65)}.inputEditorWrapper .aqlEditorWrapper table tr.selected .fa-comments,.inputEditorWrapper .aqlEditorWrapper table tr.selected .fa-copy,.inputEditorWrapper .bindParamEditorWrapper table tr.selected .fa-comments,.inputEditorWrapper .bindParamEditorWrapper table tr.selected .fa-copy{color:#000}.inputEditorWrapper .aqlEditorWrapper table thead,.inputEditorWrapper .bindParamEditorWrapper table thead{display:block}#clearQuery,.arangoFrame,.display-none{display:none}.inputEditorWrapper .aqlEditorWrapper table td,.inputEditorWrapper .bindParamEditorWrapper table td{height:33px;padding:0 5px;width:50%}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper{border-radius:3px;cursor:auto;float:right}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper:hover,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper:hover{cursor:auto}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa{cursor:pointer;font-size:16pt;margin-left:5px;margin-right:5px}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa-minus-circle,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa-minus-circle{margin-left:20px}.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa-play-circle-o,.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa-play-circle-o{color:#2ecc71}.inputEditorWrapper .aqlEditorWrapper table td input,.inputEditorWrapper .bindParamEditorWrapper table td input{clear:both;float:right;height:17px;margin-bottom:3px;margin-top:3px;width:auto!important}.inputEditorWrapper .aqlEditorWrapper table th,.inputEditorWrapper .bindParamEditorWrapper table th{font-weight:400;height:34px;padding:0;width:50%}.inputEditorWrapper .aqlEditorWrapper,.inputEditorWrapper .bindParamEditorWrapper{height:100%}.inputEditorWrapper .aqlEditorWrapper table thead tr th,.inputEditorWrapper .bindParamEditorWrapper table thead tr th{text-align:left}.inputEditorWrapper .aqlEditorWrapper table thead tr th:first-child,.inputEditorWrapper .bindParamEditorWrapper table thead tr th:first-child{padding-left:10px}.inputEditorWrapper .aqlEditorWrapper table tbody input,.inputEditorWrapper .bindParamEditorWrapper table tbody input{width:100%!important}.inputEditorWrapper .aqlEditorWrapper .selectError,.inputEditorWrapper .bindParamEditorWrapper .selectError{background:#e74c3c}.inputEditorWrapper .aqlEditorWrapper .aceAction,.inputEditorWrapper .bindParamEditorWrapper .aceAction{background-color:#858585;border-radius:3px;color:#fff;cursor:pointer;font-size:13pt;height:23px;line-height:23px;opacity:.8;position:absolute;right:5px;text-align:center;top:5px;width:33px;z-index:10}.inputEditorWrapper .aqlEditorWrapper .aceAction.type,.inputEditorWrapper .bindParamEditorWrapper .aceAction.type{font-size:8pt}.inputEditorWrapper .aqlEditorWrapper .aceAction i,.inputEditorWrapper .bindParamEditorWrapper .aceAction i{margin-bottom:3px}.inputEditorWrapper .aqlEditorWrapper .aceAction:hover,.inputEditorWrapper .bindParamEditorWrapper .aceAction:hover{cursor:pointer;opacity:1}.inputEditorWrapper .aqlEditorWrapper .previewWrapper,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper{background-color:#fff}.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar{background-color:#fff;border-bottom:1px solid rgba(140,138,137,.25);height:34px}.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar span,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar span{margin-left:5px;padding-top:8px;position:absolute}.inputEditorWrapper .aqlEditorWrapper .previewWrapper #queryPreview,.inputEditorWrapper .aqlEditorWrapper>div,.inputEditorWrapper .bindParamEditorWrapper .previewWrapper #queryPreview,.inputEditorWrapper .bindParamEditorWrapper>div{height:100%}.inputEditorWrapper .ui-resizable-s{cursor:ns-resize}.inputEditorWrapper .ui-resizable-e{cursor:ew-resize}.queryContent{clear:both;margin-top:0;width:100%}.queryContent .arangoToolbar .fa.fa-star,.queryContent .arangoToolbar .fa.fa-star-o{color:#ff0}.outputEditors{margin-bottom:60px}.outputEditorWrapper{clear:both;height:100px;padding-top:20px;width:100%}.outputEditorWrapper .switchAce{background-color:rgba(0,0,0,.6);border-radius:3px;color:#fff;cursor:pointer;position:relative;right:-24px;top:45px;z-index:10}.outputEditorWrapper .ace_editor{border-left:1px solid rgba(140,138,137,.25);border-right:1px solid rgba(140,138,137,.25);height:280px;width:100%}.outputEditorWrapper .ace_editor .ace_active-line{background:#fff!important}.outputEditorWrapper .sentWrapper .pull-left,.outputEditorWrapper .sentWrapper .pull-right{width:50%}#queryManagementContent{border:1px solid rgba(140,138,137,.25);padding-top:0}#queryManagementContent .arango-table{border:0}#queryManagementContent .arango-table tr th:nth-child(1){width:10%}#queryManagementContent .arango-table tr th:nth-child(1) td{text-align:center}#queryManagementContent .arango-table tr th:nth-child(2){width:50%}#queryManagementContent .arango-table tr th:nth-child(3),#queryManagementContent .arango-table tr th:nth-child(4){width:20%}.contentBar{font-size:12pt;line-height:30px}.row{margin:0 0 20px}.innerContent{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:2px;min-height:200px;padding-top:13px}.arangoFrame{background-color:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:77777}.arangoFrame .outerDiv{min-height:100%;padding:20px 40px 40px;z-index:88888}.arangoFrame .innerDiv{z-index:99999}.arangoFrame .fa-times{color:#fff;float:right;font-size:12pt}.arangoFrame .fa-times:hover{color:#c2c2c2;cursor:pointer}.arangoFrame .document-content-div,.arangoFrame .document-info-div{left:40px;position:absolute;right:40px}.arangoFrame .document-content-div{bottom:80px;top:130px}.arangoFrame .document-editor{height:100%}.arangoFrame .bottomButtonBar{left:-1px;position:absolute;right:-1px}.container{margin-left:20px;margin-right:20px;width:auto!important}.arango-tab{border-bottom:1px solid #ddd;list-style:none;margin-left:0;padding-bottom:0;padding-right:10px}.arango-tab a{-moz-border-radius:0;-webkit-border-radius:0;border-radius:3px 3px 0 0;background-color:#8c8a89;border:1px solid transparent;border-bottom-color:#888;color:#fff;display:block;font-size:13px;line-height:20px;margin-right:2px;min-width:50px;padding:2px 15px;text-align:center}.arango-tab li{background-color:transparent;border:0;margin-bottom:-1px;margin-left:2px;position:relative;z-index:900}.arango-tab li.active a{background:#fff;border-bottom-color:#fff!important;border-left-color:#c2c2c2;border-right-color:#c2c2c2;border-top-color:#c2c2c2;color:#000;height:21px;margin-top:-1px}.jsoneditor,.jsoneditor .menu{background-color:#fff!important}.jsoneditor{border:0 solid rgba(0,0,0,.2)!important}.jsoneditor .menu{border-bottom:1px solid #c2c2c2!important;border-left:0!important;border-right:0!important;border-top:0!important}.jsoneditor .menu button{border:0!important}.jsoneditor .menu button:hover{background-color:#2ecc71;color:#fff}.jsoneditor .search .frame{border:0!important;margin:3px!important}.jsoneditor .search .frame .refresh{background-position:-96px -73px;height:22px;width:25px}.jsoneditor .search .frame input{margin-left:15px;margin-right:15px;margin-top:0}.jsoneditor .search .results{color:#fff!important;margin-top:3px!important}.document-editor-extra,div.gv-manage-button-container{margin-top:10px}.document-editor{margin-top:-10px;width:100%}.disabledPag,.disabledPag a{cursor:default!important;opacity:.5!important}.pagination-line{background-color:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top:1px solid rgba(104,103,102,.1);margin:0;padding-top:12px;text-align:center}.pagination-line li a:hover,.pagination-line li.active a,.pagination-line li.active span{background-color:#404a53;color:#fff}.pagination-line li a{background-color:#fff;border:1px solid #fff;font-size:11.9px;line-height:20px;padding:2px 10px;text-decoration:none;border-width:0;min-width:12pt}.pagination-line ul{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;display:inline-block;margin-bottom:0;margin-left:0}.pagination-line li{display:inline-block;margin-left:11px}.pagination-line li span{color:#000;font-size:14px;position:relative;top:2px}.pagination-line li:first-child a,.pagination-line li:first-child span,.pagination-line li:last-child a,.pagination-line li:last-child span{-webkit-box-shadow:0;-moz-box-shadow:0;box-shadow:0;background:#404a53;border:0;color:#fff;height:21px;position:relative;width:14px}.pagination-line li.disabled:first-child a,.pagination-line li.disabled:first-child span,.pagination-line li.disabled:last-child a,.pagination-line li.disabled:last-child span{background-color:#777;color:#666;cursor:default;pointer-events:none}.collection-pagination{margin-left:23px!important}.arango-pagination i.fa,.las-pagi i.fa,.pre-pagi i.fa{font-size:19px;position:relative;top:-2px}.arango-pagination li:first-child{margin-right:20px}.arango-pagination li:last-child{margin-left:30px}.pre-pagi{margin-right:-5px!important}.accordion-group{border:0}.accordion-body{height:auto!important}.accordion-heading{padding-bottom:20px;padding-top:25px}.accordion-heading a{border:1px solid #ccc;color:#000;font-weight:400;width:397px!important}.accordion-heading .accordion-toggle{border-radius:3px;box-sizing:border-box;display:block;padding:8px 15px;width:100%!important}.shell_workspace{margin-top:13px}.shell_workspace ::-webkit-scrollbar{display:none}.replShell{background-color:#fff;float:left;height:100%;min-width:100px;overflow-y:hidden;position:relative;width:100%}.replShell>div{border-radius:3px}.replShell pre{border-bottom:0;border-left:0;border-right:1px solid #a0a0a0;border-top:1px solid #a0a0a0}.jqconsole{background-color:#000;border-radius:0;padding:10px}.jqconsole-header{color:#fff}.jserror{color:#f06;margin-left:-10px}.jssuccess{color:#6f0}.jqconsole-cursor{background-color:grey}.jqconsole-blurred .jqconsole-header .jqconsole-cursor{color:#c4cccc}.jqconsole-prompt{color:#b91}.jqconsole-old-prompt{color:#f60;font-weight:400}.jqconsole-input{color:#dd0}.jqconsole-old-input{color:#bb0;font-weight:400}.jqconsole-output{color:#fff}.query-output .ace_gutter-cell{background-color:#f0f0f0}.centralContent .api-actions{margin:0!important;padding:0}.centralContent .api-actions .container{padding-bottom:10px!important;padding-top:13px!important;margin:0 5px!important}.centralContent .api-actions .resource{border-bottom:0!important;padding-left:5px!important}.centralContent .api-actions .resource .heading>.options{margin:11px 10px 0 0!important}.centralContent .api-actions .resource .heading h2 a{color:#000!important;font-weight:300!important}.centralContent .api-actions .active .heading h2 a{color:#000!important}.centralContent .api-actions .endpoint .operations .content{margin:0!important}.centralContent .api-actions .endpoint .operations .content h4{font-weight:700!important}.centralContent .api-actions .endpoints{margin-right:5px!important}.centralContent .api-actions .endpoints .endpoint:last-child{padding-bottom:5px!important}.centralContent .api-actions input[type=button]{background:#8f8d8c!important;border:none!important;box-shadow:none!important;color:#fff!important;float:right!important;font-size:14px!important;font-weight:300!important;margin-top:10px!important;padding:8px 16px!important}.centralContent .api-actions .endpoint .operations .content,.centralContent .api-actions .endpoint .operations .heading{border-radius:0!important;font-weight:300!important}.centralContent .api-actions .http_method,.centralContent .api-actions .toggleOperation{border-radius:0!important}.centralContent .api-actions .required,.centralContent .api-actions em,.centralContent .api-actions strong{font-weight:400!important}.form-actions{background:0 0;border:0}.form-actions:after,.form-actions:before{display:table;line-height:0}.form-actions:after{clear:both}.swagger-section #swagger-ui-container{margin:.3em 1em!important}.alert{padding:15px 35px 15px 14px}.alert,textarea{border-radius:0!important}.log-content{word-wrap:break-word}.tab-content{min-height:390px}.crit-table-id,.debug-table-id,.info-table-id,.log-table-id,.warn-table-id{border-spacing:0 0;font-size:15px!important;margin-top:-5px!important}.crit-table-id thead,.debug-table-id thead,.info-table-id thead,.log-table-id thead,.warn-table-id thead{background-color:#f9f9f9;border-top:6px solid #888!important;text-align:center}.crit-table-id thead tr th,.debug-table-id thead tr th,.info-table-id thead tr th,.log-table-id thead tr th,.warn-table-id thead tr th{background-color:#fff!important;border-bottom:1px solid #c2c2c2;border-top:2px solid #888}.crit-table-id .firstcol,.debug-table-id .firstcol,.info-table-id .firstcol,.log-table-id .firstcol,.warn-table-id .firstcol{cursor:default!important;max-width:80px!important;width:80px!important}.crit-table-id tbody .firstcol,.debug-table-id tbody .firstcol,.info-table-id tbody .firstcol,.log-table-id tbody .firstcol,.warn-table-id tbody .firstcol{background-color:transparent!important}.crit-table-id tbody tr td,.debug-table-id tbody tr td,.info-table-id tbody tr td,.log-table-id tbody tr td,.warn-table-id tbody tr td{padding-bottom:8px!important;padding-top:8px!important}.thirdcol{cursor:default!important;max-width:500px!important}.dataTables_empty,.seccol{cursor:default!important;margin-bottom:5px;width:100px!important}.dataTables_info{display:none}#arangoLogTable{border-top:0}#arangoLogTable tbody tr{height:40px}#arangoLogTable tbody td:nth-child(1){text-align:center;width:70px}#arangoLogTable tbody td:nth-child(2){text-align:center;width:150px}#arangoLogTable tbody td:nth-child(3){width:auto}.log-content-id{padding-bottom:0!important;padding-top:0!important}.log-content-id .dataTable{border-collapse:separate;border-spacing:0 5px;table-layout:fixed!important}.log-content-id .arango-tab{border-bottom:0!important}.log-content-id .tab-content{margin-top:1px!important}.log-content-id .arango-tabbar{left:0;margin-top:-51px;position:absolute}.log-content-id .arango-tabbar button{background-color:#fff;border:0;color:#000;float:left;font-size:10.5pt;min-width:60px;opacity:.64;outline:0;padding-left:0;padding-right:0;text-align:center;width:auto}.log-content-id .arango-tabbar button.arango-active-tab{border-bottom:2px solid #77cb99;font-weight:400;height:35px;opacity:1;padding-bottom:9px}.collectionInfoTh2,.collectionTh,.figuresHeader th{font-weight:400!important}div.gv_zoom_widget{height:300px;left:62px;opacity:.7;position:absolute;top:0;width:40px;z-index:1}div.gv_zoom_widget div.gv_zoom_buttons_bg{background-image:url(../img/gv_button_bg_reverse.png);background-size:contain;height:40px;margin-bottom:20px}div.gv_zoom_widget div.gv_zoom_slider{background:#f5f8f0;border-radius:3px;height:200px;margin:0 17px;width:4px}div.gv_zoom_widget a.ui-slider-handle{background-color:#555;border:1px solid rgba(140,138,137,.25);height:.5em;left:-.55em;outline:0}div.gv_zoom_widget a.ui-slider-handle.ui-state-hover{outline-color:#fff}.documents-size,.spotlightWrapper .typeahead:focus{outline:transparent 0}div.gv_zoom_widget a.ui-slider-handle:hover{cursor:pointer}div.gv_zoom_widget .ui-state-default{background:#f6f6f6}#menubar{margin:0 0 10px}div.gv_colour_list{max-height:680px;overflow:auto;position:absolute;right:26px;text-align:right;top:20px;z-index:1}div.gv_colour_list li{background-color:transparent;float:none;padding:2px 6px}svg.graph-viewer{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:3px;left:54px;position:absolute;top:-10px;z-index:0}div.gv-colour-list ul ul,div.gv-colour-list ul ul:first-child,div.gv-colour-list ul ul:last-child{border-left:1px solid rgba(104,103,102,.1);border-right:1px solid rgba(104,103,102,.1)}svg.graph-viewer text{max-width:90px;pointer-events:none}div.gv-background{position:relative}.link>line{stroke-width:1}div.gv-colour-list:hover{opacity:1}div.gv-colour-list{border-radius:3px;max-height:350px;max-width:300px;min-width:190px;opacity:.1;overflow-x:hidden!important;overflow-y:auto;position:absolute;right:8px;text-align:right;top:0;z-index:1}div.gv-colour-list li{float:none;overflow:hidden;padding:2px 6px}div.gv-colour-list ul ul:first-child{border-top:1px solid rgba(104,103,102,.1);border-top-left-radius:3px;border-top-right-radius:3px}div.gv-colour-list ul ul:last-child{border-bottom:1px solid rgba(104,103,102,.1);border-bottom-left-radius:3px;border-bottom-right-radius:3px}input.gv-radio-button{display:block;margin-top:3px;width:auto}.addCollection .accordion,.collectionTh textarea{margin-top:10px}.collectionTh{font-size:14px;text-align:left;width:20%!important}.collectionInfoTh{min-width:60px;text-align:left;width:320px}.addCollection table tr{border-bottom:0!important;height:53px}.addCollection .icon_arangodb_info{margin-left:20px!important;position:relative;top:2px!important}.addCollection .collectionThSec{width:320px!important}.addCollection .collectionTh{width:96px}.addCollection .modalInput{width:320px}.addCollection .modalSelect{width:334px}.addCollection .accordion-toggle{width:457px!important}.change-collection .tab-content{min-height:230px}.change-collection input{width:384px!important}.change-collection select{width:398px!important}.show-collection .tab-content{min-height:200px}.collectionInfoTh2{text-align:left;width:150px}.collection-info-figures table{float:left;margin-left:0;margin-right:0;margin-top:0;min-width:200px;padding:3px;text-align:left}.figuresHeader{border-bottom:1px solid #c2c2c2}#collectionIndexTable{margin-left:0;width:100%}#collectionTab,#graphTab,#infoTab{border-bottom:0;margin-bottom:1px;padding-bottom:0;padding-right:10px}#collectionTab li,#graphTab li,#infoTab li{float:right}#collectionTab li.disabled a,#graphTab li.disabled a,#infoTab li.disabled a{cursor:not-allowed}#collectionTab a,#graphTab a,#infoTab a{background-color:#8c8a89;border-bottom:1px solid #666;border-top-left-radius:3px!important;border-top-right-radius:3px!important;color:#fff;font-size:13px!important;height:21px;margin-bottom:-1px;margin-right:4px;padding:2px 15px!important}#collectionTab .active>a,#graphTab .active>a,#infoTab .active>a{background-color:#fff;border-color:#888 #888 transparent!important;color:#000}#confirmCreateEdge{margin-left:20px}.collection-info-figures .icon_arangodb_info{position:relative!important;right:-4px!important}.snippet-wrap .snippet-num li{list-style:decimal-leading-zero}.snippet-no-num{list-style-type:none;margin-left:0;padding-left:0}.snippet-no-num .prettify{font-size:1.2em}.snippet-no-num .sh_number{color:#044;font-weight:100;margin-left:5px}.snippet-no-num .sh_symbol{color:#00f;font-weight:100;margin-left:5px}.snippet-no-num .sh_cbracket{color:#c7a317;font-weight:100;margin-left:5px}.snippet-no-num .sh_keyword{color:#c12dad;font-weight:100;margin-left:5px}.snippet-no-num .sh_string{color:#ce2f30;font-weight:100;margin-left:5px}.snippet-no-num .sh_array,.snippet-no-num .sh_object{color:#00f;font-weight:100;margin-left:5px}@media (max-width:568px){#arangoLogTable .table-cell0,.breadcrumb,.document-info-div .search,.navlogo .big,.pagination-line .las-pagi,.pagination-line .pre-pagi,.social-icons{display:none}.pagination-line .arango-pagination li:first-child,.pagination-line .arango-pagination li:last-child{margin-left:0;margin-right:0}.pagination-line li a{padding:2px 4px}.login-window{padding:10px 10px 40px;width:300px}#repl-numbers,#repl-progress,#repl-ticks{width:100%!important}.dashboard-large-chart,.dashboard-medium-chart-outer:first-child{padding-right:0!important}div.dropdownInner ul label{font-size:13px}.subnavmenu a{font-size:8pt}.subViewNavbar li{font-size:8pt!important;padding:0 6px!important}.subViewNavbar li.active{height:35px}.small-label-padding{max-width:calc(100% - 2px)}.navlogo .small{display:block;height:auto;width:28px}.headerButtonBar,.navlogo .version,.primary .version,.shortcut-icons{display:none}.navbar,.navlist,.navlist li,.navmenu,.primary,.primary li{width:40px!important}.arango-collection-ul .tab{font-size:12pt;height:30px;overflow:hidden}.arango-collection-ul .tab .fa{padding-left:6px;padding-right:20px}.social-icons p{float:left;margin-left:-3px}.social-icons p .fa{font-size:16px}.footer,div.bodyWrapper{left:40px}.dashboard-bar-chart-container .dashboard-bar-chart{padding-bottom:11px}}@media (max-width:768px){.breadcrumb,.outputEditors .additional,.pagination-line .las-pagi,.pagination-line .pre-pagi{display:none}.pagination-line .arango-pagination li:first-child,.pagination-line .arango-pagination li:last-child{margin-left:0;margin-right:0}.pagination-line li a{padding:2px 4px}.dashboard-large-chart,.dashboard-tendency-container{box-sizing:content-box}.tendency-box-sizing .dashboard-bar-chart-container,.tendency-box-sizing .dashboard-row:last-child .dashboard-medium-chart-outer:last-child,.tendency-box-sizing .dashboard-tendency-container{margin-left:0}.tendency-box-sizing .dashboard-bar-chart-container{height:140px}.tendency-box-sizing .dashboard-bar-chart-container .dashboard-sub-bar{margin-top:-3px}}@media (min-width:569px) and (max-width:738px){.dashboard-large-chart,.dashboard-medium-chart-outer:first-child{padding-right:0!important}.document-info-div .search,.headerButtonBar span{display:none}.dashboard-bar-chart-container{padding-left:0!important;padding-right:0!important}#repl-numbers,#repl-progress,#repl-ticks{width:100%!important}.subnavmenu a{font-size:9pt}.collection-dropdown ul{width:auto!important}.arango-collection-select{display:inline-block}.dashboard-bar-chart-container .dashboard-bar-chart{padding-bottom:11px}}@media (min-width:770px) and (max-width:972px){.dashboard-tendency-container .dashboard-sub-bar{font-size:11px;height:32px;margin-bottom:10px;margin-top:-10px}.dashboard-small-chart .dashboard-sub-bar{font-size:11px;height:33px}.dashboard-small-chart .dashboard-sub-bar-title{font-size:11px;line-height:12px;margin-top:-12px}.dashboard-bar-chart-chart{margin-top:10px}.dashboard-bar-chart-container .dashboard-sub-bar{font-size:11px;margin-bottom:10px;margin-top:-16px;padding-top:18px}.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-title .absolut{padding-top:3px}}@media (min-width:973px){.dashboard-large-chart .dashboard-sub-bar{padding-top:14px}#dataTransferDistribution .nvd3-svg,#totalTimeDistribution .nvd3-svg{padding-top:20px}#requests .small-label-padding .dashboard-small-chart .dashboard-sub-bar{font-size:12px;padding-top:30px}#requests .small-label-padding:last-child .dashboard-small-chart .dashboard-sub-bar{margin-bottom:1px}}.document-info-div{min-height:0}.document-content-div{margin-top:10px}.document-info{background-color:#fff;border-radius:3px;margin-bottom:8px;margin-top:-13px;min-height:65px;padding:5px}.document-info .document-info-container{clear:both;width:100%}.document-info .document-info-container .document-inner-info-container{float:left;margin-left:10px;margin-top:5px}.document-info .document-info-container .document-inner-info-container .document-attribute{margin-right:20px}.document-info .document-info-container .document-inner-info-container .document-attribute div{float:left}.document-info .document-bold-font{min-width:55px}.document-info .document-thin-font{color:#2ecc71}.document-info .document-type-container div{float:left}.document-info .document-type-container #document-id{margin-left:10px}.document-link:hover{cursor:pointer;text-decoration:underline}.jsoneditor .tree div{font-size:11pt}#progressPlaceholder{background-color:rgba(0,0,0,.4);bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.progress-view{background-color:#363c39;border-radius:2px;color:#fff;height:188px;left:50%;margin:-150px 0 0 -125px;position:absolute;top:38%;width:250px}.progress-view .progress-content{border:5px solid #fff;border-radius:3px}.progress-view .progress-content .fa-spinner{font-size:100pt}.progress-view .progress-message{background-color:#fff;border-radius:0 0 2px 2px;color:#fff;font-weight:200;height:44px;margin-top:-25px;padding-top:3px;text-align:center}.progress-view .progress-text{background:#fff;color:#000;float:left;font-weight:100;height:25px;left:-5px;margin-left:5px;margin-top:10px;position:relative;top:-10px;width:100%}.progress-view .progress-action{float:right;margin-right:5px;margin-top:5px}#progressPlaceholderIcon{color:#2ecc71;float:left;font-size:22px;margin-left:10px;margin-top:7px}.pong-spinner{height:100px;margin:50px auto;position:relative;width:200px}.pong-spinner i{animation:ball 2s infinite linear;background:#8cdb8b;border-radius:10px;height:10px;position:absolute;width:10px}.pong-spinner:after,.pong-spinner:before{animation:left-player 2s infinite linear;background:#8cdb8b;height:30px;position:absolute;width:5px}.pong-spinner:after{animation:right-player 2s infinite linear;right:0}@keyframes left-player{0%,100%{top:0}50%{top:70px}}@keyframes right-player{0%,100%{top:70px}50%{top:0}}@keyframes ball{0%,100%{left:5px;top:20px}25%,75%{left:190px;top:50px}50%{left:5px;top:80px}}#spotlightPlaceholder{background-color:rgba(0,0,0,.25);bottom:0;left:0;position:fixed;right:0;top:0;z-index:2000}.spotlightWrapper{height:50px;left:25%;position:absolute;top:115px;width:50%}.spotlightWrapper .twitter-typeahead{width:100%}.spotlightWrapper .tt-highlight{color:#5bc0de;font-weight:400}.spotlightWrapper input{box-sizing:border-box;height:40px!important}.spotlightWrapper .tt-dataset{clear:both}.spotlightWrapper .tt-menu{background:#3d4246;border-radius:3px;color:#fff;height:300px;overflow:auto;width:100%}.spotlightWrapper .tt-menu .tt-suggestion:hover{background-color:#404a53;cursor:pointer}.spotlightWrapper .tt-menu .header-type{background:#32373b;clear:both;color:#fff;height:30px;padding-left:5px}.spotlightWrapper .tt-menu .header-type h4{float:left;margin:4px 0 0;padding:0}.spotlightWrapper .tt-menu .header-type .fa{font-size:12pt;margin-left:6px;margin-top:6px}.spotlightWrapper .tt-menu .header-type .type{background-color:#5bc0de;border-radius:3px;float:right;margin:4px;padding:0 5px}.spotlightWrapper .tt-menu .tt-cursor{background-color:#fff;color:#000}.spotlightWrapper .tt-menu .tt-selectable{padding-left:10px}.spotlightWrapper .typeahead{background:#3d4246;border:0 solid #3d4246;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;color:#fff;font-size:22px;height:30px;line-height:30px;outline:transparent 0;padding:8px 12px;width:100%}.graphLabel{font-size:11pt;font-weight:600;margin-top:-25px;opacity:.5;padding-bottom:20px;text-align:center;text-transform:uppercase}.cluster-graphs>div .graphWrapper{border:1px solid rgba(140,138,137,.25);margin-left:-1px;margin-top:-1px;padding:20px 20px 10px}.cluster-graphs>div .graphWrapper .nv-controlsWrap{display:none}.cluster-graphs>div .graphWrapper .nv-legendWrap{margin-bottom:10px}.cluster-graphs>div .graphWrapper svg{height:250px;margin-left:-17px}.cluster-values{margin-top:-13px}.cluster-values>div .valueWrapper{border:1px solid rgba(140,138,137,.25);margin-left:-1px;margin-top:-1px}.cluster-values>div .valueWrapper .value{color:#000;font-size:24pt;line-height:150px;text-align:center}.cluster-values>div .valueWrapper .value.positive{color:#2ecc71}.cluster-values>div .valueWrapper .value.negative{color:#e74c3c}.cluster-values>div .valueWrapper div:first-child{height:150px}.application-detail-view .headerBar .subMenuEntries{margin-left:5px;margin-top:-2px}.application-detail-view .headerBar .headerButtonBar{position:absolute;right:5px}.application-detail-view section.info{float:left;padding:13px 0 0}.application-detail-view section.info .header{height:200px;margin-bottom:0;position:absolute;width:calc(100% - 20px)}.application-detail-view section.info .header div.header-icon-container{border:2px solid #d9dbdc;border-radius:150px;height:182px;left:0;margin:0 auto;overflow:hidden;width:182px}.application-detail-view section.info .header div.header-icon-container img.icon{background-color:#fff;border-radius:3px;height:auto;max-height:162px;max-width:162px;padding:10px;width:auto}.application-detail-view section.info .header .information{background-color:#fff;border:1px solid #d9dbdc;border-radius:3px;margin-bottom:20px;padding:10px 10px 0;position:relative;top:35px;width:calc(100% - 30px)}.application-detail-view section.info .header .information span{display:block;float:left;font-weight:500;width:90px}.application-detail-view section.info .header .information a{margin-right:10px}.application-detail-view section.info .header .header_right{left:190px;margin:40px auto 0;width:137px}.application-detail-view section.info .header .header_right input.delete,.application-detail-view section.info .header .header_right input.switch-docu,.application-detail-view section.info .header .header_right input.switch-mode,.application-detail-view section.info .header .header_right input.upgrade{margin-top:7.83px;padding-left:10px;padding-right:10px}.application-detail-view section.info .header .header_right input{width:130px}.application-detail-view section.info .header .header_left{margin:0 auto;padding-left:10px;padding-top:1px;text-align:center;width:33.3%}.application-detail-view section.info .header .header_left input{margin-left:0;margin-top:-4px}.application-detail-view section.info .header .header_left .header_line{margin-top:10px}.application-detail-view section.info .header .header_left .header_line p{font-size:14pt;font-weight:200}.application-detail-view section.info .header .header_left .header_line h3{float:left;margin-bottom:0;margin-top:0;padding-right:5px;width:100%}.application-detail-view section.info .header .header_left .header_line .license,.application-detail-view section.info .header .header_left .header_line .mode,.application-detail-view section.info .header .header_left .header_line .version{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#404a53;border:1px solid rgba(140,138,137,.25);color:#fff;font-size:13px;font-weight:300;padding:2px 8px;position:relative;top:-3px}.application-detail-view section.info .header .header_left .header_line .production{color:#2ecc71}.application-detail-view section.info .header .header_left .header_line .development{color:#f1c40f}.application-detail-view section.info .header .header_left .header_line:after{clear:both;content:'';display:table}.application-detail-view section.info .header .header_left .header_line_bottom>div{display:table;left:-3px;margin:-10px auto 0;position:absolute;width:100%}.application-detail-view section.info .header .header_left .header_line_bottom h3{width:auto}.application-detail-view section.info .header .header_left .header_line_bottom .inner{display:table;margin:0 auto;padding-left:15px;width:auto}.application-detail-view section.info .header .app-warning{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#e74c3c;color:#fff;padding:6px 8px}.application-detail-view section.info .header .app-warning h4,.application-detail-view section.info .header .app-warning p{font-size:1em;margin:0}.application-detail-view aside.meta{background-color:#fff;border:1px solid rgba(140,138,137,.25);border-radius:3px;clear:right;float:right;height:182px;margin-top:12px;max-height:182px;max-width:182px;overflow-x:hidden;position:relative;width:182px}.application-detail-view aside.meta dl{margin-bottom:0;margin-top:0;padding-left:7px;padding-top:5px}main{background-color:#fff;border-radius:3px}main .app-info{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#5bc0de;color:#fff;margin:10px;padding:6px 8px}main .app-info h4,main .app-info p{font-size:1em;margin:0}main .swagger iframe{border:0;border-radius:3px;height:600px;width:100%}main .readme{background:#fff;padding:1em 2em}main .readme .buttons{background:#fff;height:30px;position:relative;right:-15px;width:100%}.centralContent .contentIn table tr,.centralContent .modal-body .arango-table tr,.centralContent .modal-body table tr{height:40px}main .readme .buttons button{float:right}main .readme .modal-body{border-bottom:1px solid rgba(140,138,137,.25);border-left:0;border-right:0;border-top:0;padding-bottom:15px}main .readme .modal-footer{border-bottom:0;border-left:0;border-right:0;border-top:1px solid rgba(140,138,137,.25);padding-right:0}main .readme h1{float:left;text-align:left;width:100%}.tests-result .stack{border-color:#e74c3c;color:#e74c3c;font-size:12px;line-height:1.5;margin:5px 0}.tests-result-stats .fail,.tests-result-stats .pass,.tests-result-stats .pending{padding:0 2px}.tests-result-spec{margin-bottom:0}.tests-result-spec-suites .tests-result-spec-suites{margin-left:20px}.tests-result-spec-suites dd{margin-bottom:20px;margin-left:0}.tests-result-spec-tests{margin-left:20px}.tests-result-spec-test-title{padding-left:20px}.tests-result-spec-test-title .fa{line-height:18px;margin-left:-20px;margin-top:2px;position:absolute}.tests-result-spec-test-title .fa-circle{font-size:50%;margin-left:-16px}.tests-result .pass{color:#2ecc71}.tests-result .fail{color:#e74c3c}.tests-result .pending{color:#666}#swagger #jsonLink{color:rgba(64,74,83,.8);font-weight:500;opacity:.5;position:absolute;right:20px}#swagger #jsonLink:hover{opacity:1}#indexHeaderContent{padding:0}#indexHeaderContent #collectionEditIndexTable th,#indexHeaderContent .figuresHeader th{padding-left:10px}.new-index-view{padding:20px}.centralContent .createModalDialog{background-color:#fff;outline:0}.centralContent .contentIn{background:#fff;border:1px solid rgba(64,74,83,.2);border-radius:2px;padding:20px}.centralContent .contentIn table{border:0}.centralContent .contentIn table select{margin-top:-10px}.centralContent .modal-body{border:1px solid rgba(64,74,83,.2);color:#000;max-height:none;padding:0}.centralContent .modal-body .arango-table tr th,.centralContent .modal-body table tr th{padding-left:10px}.centralContent .modal-body .figuresHeader{background-color:#404a53;color:#fff}.centralContent .modal-body .icon_arangodb_info{margin-left:10px;right:inherit}.centralContent .modal-body .modalSelect{margin-top:0}.centralContent .modal-body .tab-pane{padding-top:0!important}.centralContent .modal-footer{background-color:transparent;border-bottom:1px solid rgba(64,74,83,.2);border-left:1px solid rgba(64,74,83,.2);border-radius:0;border-right:1px solid rgba(64,74,83,.2);border-top:0;box-shadow:none;padding:8px}.centralContent .figures1,.centralContent .figures2,.centralContent .figures3{margin-left:0!important;margin-top:40px;width:100%}.centralContent .figures1 .icon_arangodb_info,.centralContent .figures2 .icon_arangodb_info,.centralContent .figures3 .icon_arangodb_info{position:relative;text-align:center}.pure-table-body{overflow-x:none;overflow-y:auto}.pure-table-body .selected-row{background-color:rgba(46,204,113,.2)}.pure-table-body .dataTables_empty{padding-left:10px}.pure-table{padding-left:20px;padding-right:20px}.pure-table.no-padding{padding-left:0;padding-right:0}.pure-table.no-padding .pure-table-row div div{padding-left:2.5px}.pure-table.no-padding.pure-table-header .pure-table-row>div:first-child .title{padding-left:10px}.pure-table.pure-title .pure-table-row{color:#717d90;font-weight:600}.pure-table.pure-title .pure-table-row:hover{background-color:#fff;cursor:default}.pure-table.pure-title .pure-table-row:last-child{border-bottom:1px solid rgba(140,138,137,.25);margin-bottom:0}.pure-table .pure-table-row{border-bottom:1px solid rgba(140,138,137,.25);color:#8a969f;font-weight:100;line-height:40px;width:100%}.pure-table .pure-table-row .padding-left{padding-left:30px}.pure-table .pure-table-row .padding-right{padding-right:30px}.pure-table .pure-table-row .actions i{margin-left:5px;margin-right:5px}.pure-table .pure-table-row:hover{background-color:#eff0eb;cursor:pointer}.pure-table .pure-table-row.disabled:hover{background-color:#fff;cursor:not-allowed}.pure-table .pure-table-row.noHover:hover{background-color:#fff;cursor:default}.pure-table .pure-table-row .left{text-align:left}.pure-table .pure-table-row .right{text-align:right}.pure-table .pure-table-row .mid{text-align:center}.pure-table .pure-table-row .positive{color:#2ecc71}.pure-table .pure-table-row .negative{color:#e74c3c}.pure-table .pure-table-row .warning{color:#f1c40f}.pure-table .pure-table-row .fa.fa-check-circle{color:#2ecc71}.pure-table .pure-table-row .fa.fa-exclamation-circle{color:#e74c3c}.pure-table .pure-table-row:last-child{border-bottom:0;margin-bottom:10px}.hotkeysList .hotkeysLabel{clear:both;color:#000;font-size:16px;font-weight:400}.hotkeysList .hotkeysContent{padding-left:10px}.hotkeysList li{line-height:25px}.hotkeysList li .hotkeysDiv{float:left}.hotkeysList .hotkeysicons{background-color:#686766;border:1px solid #000;border-radius:2px;color:#fff;display:inline;height:19px;margin-left:10px;text-align:center;width:19px}.arango-table tbody tr:nth-child(even),.arango-table thead{background-color:#fff}.hotkeysContentLabel{float:left;width:30%}.cluster-nodes .pure-table-row.noHover,.cluster-nodes .pure-table-row.noHover:hover{cursor:not-allowed!important}.arango-table{width:100%}.arango-table thead th{border-bottom:1px solid #c2c2c2;font-weight:400;height:43px}.arango-table tbody tr:nth-child(odd){background:rgba(104,103,102,.05)}.arango-table tbody td{padding:10px 18px}.arango-tabbar{height:27px;width:100%}.arango-tabbar button{background-color:#404a53;border:0;border-top-left-radius:2px;border-top-right-radius:2px;color:#fff;float:right;font-weight:100;height:27px;margin-right:5px;width:82px}.arango-tabbar button:first-child{margin-right:10px}.arango-tabbar .arango-active-tab{background-color:#fff;border-bottom:1px solid #fff;border-left:1px solid #c2c2c2;border-right:1px solid #c2c2c2;border-top:1px solid #c2c2c2;color:#000;height:28px;margin-bottom:-1px}.subViewNavbar{border-bottom:2px solid #d9dbdc;height:40px;list-style:none;width:100%;z-index:1000;margin:-57px 0 15px -15px}.subViewNavbar li{cursor:pointer;float:left;font-size:10pt;line-height:30px;margin-bottom:5px;margin-top:5px;padding:0 12px}.subViewNavbar li.active{border-bottom:2px solid #77cb99;cursor:default;padding-bottom:5px}.subViewNavbar li.active a{color:#000}.subViewNavbar li.disabled{cursor:not-allowed}.subViewNavbar li.disabled:hover a{color:rgba(51,51,51,.6)}.subViewNavbar li:hover a{color:#333;transition:all .2s ease-in}.subViewNavbar li a,.subnavmenu ul li:hover a{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in}.subViewNavbar li a{color:rgba(51,51,51,.6);transition:all .2s ease-in}.subnavmenu{background-color:#fff;height:auto}.subnavmenu .bar-img{background:0 0;border-radius:25px;margin-right:5px;width:25px}.subnavmenu .bar-img:hover{cursor:pointer}.subnavmenu ul{list-style:none;margin:0}.subnavmenu ul.top{background-color:#404a53;height:60px;width:100%}.subnavmenu ul.top li{padding:0 10px 0 0}.subnavmenu ul.bottom{border-bottom:2px solid #d9dbdc;height:40px;width:100%;z-index:1000}.subnavmenu ul.bottom li{float:left;padding:0 12px}.subnavmenu ul li{cursor:pointer;font-size:10pt;line-height:30px;margin-bottom:5px;margin-top:5px}.subnavmenu ul li.active{border-bottom:2px solid #77cb99;cursor:default;padding-bottom:5px}.subnavmenu ul li.active a{color:#000}.subnavmenu ul li.disabled{cursor:not-allowed}.subnavmenu ul li.disabled:hover a{color:rgba(51,51,51,.6)}.subnavmenu ul li:hover a{color:#333;transition:all .2s ease-in}.subnavmenu ul li a{color:rgba(51,51,51,.6);-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.subnavmenu .infoEntry{line-height:45px}.subnavmenu .infoEntry a{margin-right:5px}.subnavmenu .infoEntry a.default-icon i{color:#fff}.subnavmenu .infoEntry a.default-icon i:hover{color:#2ecc71;cursor:pointer}.subnavmenu .infoEntry:hover{cursor:default}.subnavmenu .infoEntry:hover .info{-webkit-touch-callout:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;color:#fff}.subnavmenu .infoEntry.positive .health-icon,.subnavmenu .infoEntry.positive .health-state,.subnavmenu .infoEntry.positive .state{color:#2ecc71}.subnavmenu .infoEntry.negative .health-icon,.subnavmenu .infoEntry.negative .health-state{color:#e74c3c}.subnavmenu .icon,.subnavmenu .info,.subnavmenu .state{color:rgba(255,255,255,.95);display:block;float:left;font-weight:300;max-width:150px;overflow:hidden;text-transform:uppercase}.subnavmenu .icon span,.subnavmenu .info span,.subnavmenu .state span{color:#2ecc71}.subnavmenu .icon span:hover,.subnavmenu .info span:hover,.subnavmenu .state span:hover{cursor:pointer}.subnavmenu #dbStatus{padding-right:20px}.subBarDropdown{background:#fff;border:1px solid rgba(64,74,83,.2);display:none;margin-top:55px!important;min-width:200px;position:absolute;z-index:9999}.subBarDropdown li{padding:0}.subBarDropdown .dropdown-header{background-color:#77cb99;cursor:default;margin:0 -1px;padding:0!important}.subBarDropdown .dropdown-header img{border:3px solid #6dba8c;border-radius:75px;display:block;margin:10px auto 0;width:75px}.subBarDropdown .dropdown-header p,.subBarDropdown .dropdown-header small{color:#fff;text-align:center}.subBarDropdown .dropdown-header small{display:block;margin-top:-10px}.subBarDropdown .dropdown-footer{padding:0 5px 0 0!important}.subBarDropdown .dropdown-footer button{margin-bottom:5px;margin-top:-4px}.helpUs iframe{left:0;position:absolute;right:0;top:101px}.arangoDataTable{display:block;position:relative;width:100%}.arangoDataTable tbody{display:inline-block;max-height:200px;overflow-y:auto;position:absolute;width:100%}.arangoDataTable thead{background-color:#fff!important;display:inline-block;font-weight:400!important;text-align:left;width:100%}.arangoDataTable thead td{overflow:hidden}.arangoDataTable thead th{border-bottom:0;cursor:default!important;font-weight:400!important;padding:10px 14px!important}.arangoDataTable thead tr{border-bottom:1px solid #c2c2c2}.arangoDataTable tr{cursor:pointer}.arangoDataTable td{padding:8px 18px!important}.arangoDataTable .key{font-weight:100;margin-top:4px;overflow:hidden}.arangoDataTable .dataTable .noPointer tr{cursor:default}.arangoDataTable .selected-row{background-color:#2ecc71!important}.arangoDataTable .selected-row div,.arangoDataTable .selected-row li,.arangoDataTable .selected-row span{color:#fff!important}.api-container #resources>li.resource:nth-child(even),table.arangoDataTable tr.even{background-color:#fff}.api-container #resources>li.resource:nth-child(odd),table.arangoDataTable tr.odd{background-color:rgba(104,103,102,.05)}#tableDiv table.dataTable td{padding:12px 18px!important}#documentsTableID_filter,#documentsTableID_length{display:none}#documentsTableID_wrapper{padding-bottom:0!important}.snippet-no-num{font-size:1em;font-weight:400;margin-bottom:0}.cuttedContent,.prettify ul li,.writeable a{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.totalDocuments{color:#666;float:left;font-weight:100;margin-top:-37px!important;padding-left:10px}.prettify{border:none!important;font-size:1em!important;margin:0!important;padding:0!important}.edit-index-table tfoot,.newIndexClass table{border-top:1px solid #f7f3f2}table .sorting{background:0 0!important}.new-index-view input[type=checkbox]{float:left}.new-index-view table tr{width:600px!important}.new-index-view table tr th:last-child{width:50px!important}.new-index-view table th{font-weight:300!important;width:200px!important}#documentsDiv{padding-top:0}#documentsDiv .pure-table .snippet-container{margin-top:10px}.edit-index-table{margin-top:5px;min-width:auto!important}.edit-index-table th{padding-bottom:5px;padding-left:5px;padding-top:5px}.edit-index-table .icon_arangodb_locked{color:rgba(0,0,0,.5);cursor:default;font-size:20px;margin-left:10px}.index-button-bar i:hover,.queryline .fa-info-circle:hover{cursor:pointer}.edit-index-table .icon_arangodb_roundminus{font-size:20px;margin-left:10px}.edit-index-table tfoot i{color:#2ecc71;font-size:19px;margin-left:22px;margin-top:5px}.edit-index-table tfoot i:hover{color:#58d68d;cursor:pointer}.contentIn .arangoicon{font-size:25px;position:relative;top:-3px!important}#collectionEditIndexTable thead{border-bottom:1px solid #e5e5e5}.newIndexClass table{margin-bottom:60px}.newIndexClass table select{margin-right:7px}.newIndexClass table .arangoicon{float:right;margin-right:-12px;margin-top:5px}.index-button-bar{float:right}.index-button-bar i{color:#2ecc71;font-size:16pt;margin-right:43px}.index-button-bar #cancelIndex{margin-right:13px}.docsFirstCol,.docsSecCol,.docsThirdCol{border:0!important}.docsFirstCol{height:26px;width:80%}.docsSecCol{height:26px;min-width:400px!important;width:10%}.docsThirdCol{height:26px}.add-filter-item{margin-left:5px}.add-filter-item i{margin-top:0!important}.upload-indicator{display:none;margin-top:-3px;padding-right:10px}.documentsDropdown .dropdownImport,.documentsDropdown .headerDropdown{clear:both;margin-bottom:10px}.documents-size{background-color:#fff!important;border:1px solid #e5e5e5;border-radius:0;box-shadow:none;color:#000;float:right;font-size:11pt;font-weight:300;height:28px;line-height:18px;margin-left:10px;margin-top:0;width:115px}.ace_error{background:0 0!important}#exportHeader .fa-exclamation-circle{color:#fff;font-size:13pt;margin-right:10px}.totalDocuments:hover{color:#000}.ajax-file-upload-statusbar{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;border:1px solid rgba(0,0,0,.7);margin:10px 10px 5px 5px;padding:5px;width:420px}.ajax-file-upload-filename{color:grey;height:auto;margin:0 5px 5px 10px;width:100%}.ajax-file-upload-progress{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;border:1px solid #d9d9d9;display:inline-block;margin:0 10px 5px;padding:1px;position:relative;width:250px}.ajax-file-upload-bar{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background-color:rgba(0,0,0,.7);color:#fff;height:20px;width:0}.ajax-file-upload-percent{display:inline-block;left:48%;position:absolute;top:3px}.ajax-file-upload-red{font-size:13px;font-weight:400;margin-right:5px;padding:4px 15px;vertical-align:top}.ajax-file-upload{display:inline-block;font-size:16px;font-weight:700;height:25px;margin:0 10px 10px 0;padding:6px 10px 4px}.ajax-upload-dragdrop{border:1px dotted #8f8d8c;color:#736b68;padding:10px 10px 0;text-align:left;vertical-align:middle;width:506px}.ajax-upload-dragdrop span{position:relative;top:-22px}/*! Animate.css - http://daneden.me/animate Licensed under the MIT license - http://opensource.org/licenses/MIT diff --git a/js/apps/system/_admin/aardvark/APP/frontend/build/style-minified.css.gz b/js/apps/system/_admin/aardvark/APP/frontend/build/style-minified.css.gz index 88ee53c503367d607c5c0c2fc2552f4751d5e553..629e554c7f97de1629062b7f8ef3d7f0817a10da 100644 GIT binary patch delta 7844 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 L2d3sy?(zfx0DDv- delta 9329 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