From a1c2b7cc63fc1716aff56bda0e4685aa3e38560a Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Thu, 14 Jul 2016 10:08:17 +0200 Subject: [PATCH 1/5] fixed issue #1941 --- .../Rest/Cursors/JSF_post_api_cursor.md | 4 +- arangod/Aql/BasicBlocks.cpp | 7 +- arangod/Aql/ExecutionBlock.cpp | 6 +- arangod/Aql/ExecutionBlock.h | 2 +- arangod/Aql/ExecutionEngine.h | 4 +- arangod/Aql/RestAqlHandler.cpp | 3 +- js/server/tests/aql/aql-fullcount.js | 88 +++++++++++++++++++ 7 files changed, 105 insertions(+), 9 deletions(-) diff --git a/Documentation/DocuBlocks/Rest/Cursors/JSF_post_api_cursor.md b/Documentation/DocuBlocks/Rest/Cursors/JSF_post_api_cursor.md index 7b8a018416..97e5e1921c 100644 --- a/Documentation/DocuBlocks/Rest/Cursors/JSF_post_api_cursor.md +++ b/Documentation/DocuBlocks/Rest/Cursors/JSF_post_api_cursor.md @@ -42,8 +42,8 @@ key/value object with extra options for the query. @RESTSTRUCT{fullCount,JSF_post_api_cursor_opts,boolean,optional,} if set to *true* and the query contains a *LIMIT* clause, then the -result will contain an extra attribute *extra* with a sub-attribute *fullCount*. -This sub-attribute will contain the number of documents in the result before the +result will a sub-attribute *fullCount* in the *extra.stats* sub-attribute. +The *fullCount* sub-attribute will contain the number of documents in the result before the last LIMIT in the query was applied. It can be used to count the number of documents that match certain filter criteria, but only return a subset of them, in one go. It is thus similar to MySQL's *SQL_CALC_FOUND_ROWS* hint. Note that setting the option diff --git a/arangod/Aql/BasicBlocks.cpp b/arangod/Aql/BasicBlocks.cpp index f8e28ae3e9..d57204d5f9 100644 --- a/arangod/Aql/BasicBlocks.cpp +++ b/arangod/Aql/BasicBlocks.cpp @@ -343,11 +343,14 @@ int LimitBlock::getOrSkipSome(size_t atLeast, size_t atMost, bool skipping, if (_engine->_stats.fullCount == -1) { _engine->_stats.fullCount = 0; } - _engine->_stats.fullCount += static_cast(_offset); } if (_offset > 0) { - ExecutionBlock::_dependencies[0]->skip(_offset); + size_t numActuallySkipped = 0; + ExecutionBlock::_dependencies[0]->skip(_offset, numActuallySkipped); + if (_fullCount) { + _engine->_stats.fullCount += static_cast(numActuallySkipped); + } } _state = 1; _count = 0; diff --git a/arangod/Aql/ExecutionBlock.cpp b/arangod/Aql/ExecutionBlock.cpp index 272c53db30..1d40278ebf 100644 --- a/arangod/Aql/ExecutionBlock.cpp +++ b/arangod/Aql/ExecutionBlock.cpp @@ -284,7 +284,7 @@ size_t ExecutionBlock::skipSome(size_t atLeast, size_t atMost) { // skip exactly outputs, returns if _done after // skipping, and otherwise . . . -bool ExecutionBlock::skip(size_t number) { +bool ExecutionBlock::skip(size_t number, size_t& numActuallySkipped) { DEBUG_BEGIN_BLOCK(); size_t skipped = skipSome(number, number); size_t nr = skipped; @@ -292,6 +292,7 @@ bool ExecutionBlock::skip(size_t number) { nr = skipSome(number - skipped, number - skipped); skipped += nr; } + numActuallySkipped = skipped; if (nr == 0) { return true; } @@ -345,7 +346,8 @@ int ExecutionBlock::getOrSkipSome(size_t atLeast, size_t atMost, bool skipping, while (skipped < atLeast) { if (_buffer.empty()) { if (skipping) { - _dependencies[0]->skip(atLeast - skipped); + size_t numActuallySkipped = 0; + _dependencies[0]->skip(atLeast - skipped, numActuallySkipped); skipped = atLeast; freeCollector(); return TRI_ERROR_NO_ERROR; diff --git a/arangod/Aql/ExecutionBlock.h b/arangod/Aql/ExecutionBlock.h index 8d74cf2879..7372b2f9a7 100644 --- a/arangod/Aql/ExecutionBlock.h +++ b/arangod/Aql/ExecutionBlock.h @@ -156,7 +156,7 @@ class ExecutionBlock { // skip exactly outputs, returns if _done after // skipping, and otherwise . . . - bool skip(size_t number); + bool skip(size_t number, size_t& numActuallySkipped); virtual bool hasMore(); diff --git a/arangod/Aql/ExecutionEngine.h b/arangod/Aql/ExecutionEngine.h index d2c292c9ac..276208c46b 100644 --- a/arangod/Aql/ExecutionEngine.h +++ b/arangod/Aql/ExecutionEngine.h @@ -111,7 +111,9 @@ class ExecutionEngine { AqlItemBlock* getOne() { return _root->getSome(1, 1); } /// @brief skip - bool skip(size_t number) { return _root->skip(number); } + bool skip(size_t number, size_t& actuallySkipped) { + return _root->skip(number, actuallySkipped); + } /// @brief hasMore inline bool hasMore() const { return _root->hasMore(); } diff --git a/arangod/Aql/RestAqlHandler.cpp b/arangod/Aql/RestAqlHandler.cpp index f21457d058..a7fcece8f7 100644 --- a/arangod/Aql/RestAqlHandler.cpp +++ b/arangod/Aql/RestAqlHandler.cpp @@ -783,7 +783,8 @@ void RestAqlHandler::handleUseQuery(std::string const& operation, Query* query, try { bool exhausted; if (shardId.empty()) { - exhausted = query->engine()->skip(number); + size_t numActuallySkipped = 0; + exhausted = query->engine()->skip(number, numActuallySkipped); } else { auto block = static_cast(query->engine()->root()); diff --git a/js/server/tests/aql/aql-fullcount.js b/js/server/tests/aql/aql-fullcount.js index 6591355a1b..cbac254376 100644 --- a/js/server/tests/aql/aql-fullcount.js +++ b/js/server/tests/aql/aql-fullcount.js @@ -104,6 +104,94 @@ function optimizerFullcountTestSuite () { assertEqual(2, result.stats.fullCount); assertEqual(1, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection LIMIT 100 RETURN doc", null, { fullCount: true }); + + assertEqual(3, result.stats.fullCount); + assertEqual(3, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit2 : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection LIMIT 1, 100 RETURN doc", null, { fullCount: true }); + + assertEqual(3, result.stats.fullCount); + assertEqual(2, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit3 : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection LIMIT 2, 100 RETURN doc", null, { fullCount: true }); + + assertEqual(3, result.stats.fullCount); + assertEqual(1, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit4 : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection LIMIT 3, 100 RETURN doc", null, { fullCount: true }); + + assertEqual(3, result.stats.fullCount); + assertEqual(0, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit5 : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection LIMIT 10000, 100 RETURN doc", null, { fullCount: true }); + + assertEqual(3, result.stats.fullCount); + assertEqual(0, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit6 : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection FILTER 'bar' IN doc.values LIMIT 1, 10 RETURN doc", null, { fullCount: true }); + + assertEqual(2, result.stats.fullCount); + assertEqual(1, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit7 : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection FILTER 'bar' IN doc.values LIMIT 10, 10 RETURN doc", null, { fullCount: true }); + + assertEqual(2, result.stats.fullCount); + assertEqual(0, result.json.length); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test with fullcount +//////////////////////////////////////////////////////////////////////////////// + + testHigherLimit8 : function () { + var result = AQL_EXECUTE("FOR doc IN UnitTestsCollection FILTER 'bar' IN doc.values LIMIT 1000, 1 RETURN doc", null, { fullCount: true }); + + assertEqual(2, result.stats.fullCount); + assertEqual(0, result.json.length); } }; From 532d10300d1eaa08d86e82a662f1c7e89c863dad Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Thu, 14 Jul 2016 11:28:40 +0200 Subject: [PATCH 2/5] Fix phrase explaining when the collections are dropped alongside the graph definition. --- .../Books/Manual/Graphs/GeneralGraphs/Management.mdpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Documentation/Books/Manual/Graphs/GeneralGraphs/Management.mdpp b/Documentation/Books/Manual/Graphs/GeneralGraphs/Management.mdpp index 60e70df0ad..b0a92993b1 100644 --- a/Documentation/Books/Manual/Graphs/GeneralGraphs/Management.mdpp +++ b/Documentation/Books/Manual/Graphs/GeneralGraphs/Management.mdpp @@ -288,10 +288,8 @@ Remove a graph `graph_module._drop(graphName, dropCollections)` A graph can be dropped by its name. -This will automatically drop all collections contained in the graph as -long as they are not used within other graphs. -To drop the collections, the optional parameter *drop-collections* can be set to *true*. - +This can drop all collections contained in the graph as long as they are not used within other graphs. +To drop the collections only belonging to this graph, the optional parameter *drop-collections* has to be set to *true*. **Parameters** From ac4eccee02925dda8710b3d4ae34430b0b16590b Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Thu, 14 Jul 2016 11:51:53 +0200 Subject: [PATCH 3/5] oops, @not supported here. --- Documentation/Books/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/Books/Makefile b/Documentation/Books/Makefile index 85e87a1088..3336d70720 100644 --- a/Documentation/Books/Makefile +++ b/Documentation/Books/Makefile @@ -391,4 +391,4 @@ build-books: make check-docublocks make book-check-dangling-anchors echo "${STD_COLOR}Generating redirect index.html${RESET}"; \ - @echo '' > books/index.html + echo '' > books/index.html From 315b2e15f2a724148688b44e79c51734df8b832e Mon Sep 17 00:00:00 2001 From: Alan Plum Date: Thu, 14 Jul 2016 14:41:25 +0200 Subject: [PATCH 4/5] Make sure Show Interface check asks for HTML --- .../APP/frontend/js/views/applicationDetailView.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/views/applicationDetailView.js b/js/apps/system/_admin/aardvark/APP/frontend/js/views/applicationDetailView.js index 7e55143b02..413fd2c538 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/views/applicationDetailView.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/views/applicationDetailView.js @@ -262,7 +262,12 @@ self.jsonEditor.setReadOnly(true); self.jsonEditor.getSession().setMode('ace/mode/json'); - $.get(this.appUrl(db)).success(function () { + $.ajax({ + url: this.appUrl(db), + headers: { + accept: 'text/html,*/*;q=0.9' + } + }).success(function () { $('.open', this.el).prop('disabled', false); }.bind(this)); From 4ea6517275ab3b1d1da7f0a487292dc8b7a44f00 Mon Sep 17 00:00:00 2001 From: Alan Plum Date: Thu, 14 Jul 2016 14:41:40 +0200 Subject: [PATCH 5/5] Rebuild aardvark --- .../aardvark/APP/frontend/build/app.min.js | 28 +++++++++--------- .../aardvark/APP/frontend/build/app.min.js.gz | Bin 126420 -> 126869 bytes .../APP/frontend/build/index-min.html | 2 +- .../APP/frontend/build/index-min.html.gz | Bin 31476 -> 31475 bytes 4 files changed, 15 insertions(+), 15 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 df59ea2a00..f82aa2e209 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 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,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(k),{example:a.vertex._id},function(a){_.each(a,function(a){c.push(a)}),u(c,b)})}):s(o.traversal(k),{example:a},function(a){u(a,b)})})},l.loadNodeFromTreeByAttributeValue=function(a,b,c){var d={},e=o.traversalAttributeValue(k,d,f,a,b);s(e,d,function(a){u(a,c)})},l.getNodeExampleFromTreeByAttributeValue=function(a,b,c){var d,g=o.travesalAttributeValue(k,d,f,a,b);s(g,d,function(d){if(0===d.length)throw arangoHelper.arangoError("Graph error","no nodes found"),"No suitable nodes have been found.";_.each(d,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)}))))}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 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 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,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(){}),d()}),e=function(){h.events.CANCELCREATEEDGE(),c.removeCursorFollowingEdge(),h.bind("svg","mousemove",function(){})};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 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,$("#subNavigationBar .breadcrumb").html("Graph: "+b.graphName),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})})})},buildUserSubNav:function(a,b){var c={General:{route:"#user/"+encodeURIComponent(a)},Permissions:{route:"#user/"+encodeURIComponent(a)+"/permission"}};c[b].active=!0,this.buildSubNavBar(c)},buildGraphSubNav:function(a,b){var c={Content:{route:"#graph2/"+encodeURIComponent(a)},Settings:{route:"#graph2/"+encodeURIComponent(a)+"/settings"}};c[b].active=!0,this.buildSubNavBar(c)},buildNodeSubNav:function(a,b,c){var d={Dashboard:{route:"#node/"+encodeURIComponent(a)}};d[b].active=!0,d[c].disabled=!0,this.buildSubNavBar(d)},buildNodesSubNav:function(a,b){var c={Overview:{route:"#nodes"},Shards:{route:"#shards"}};c[a].active=!0,b&&(c[b].disabled=!0),this.buildSubNavBar(c)},scaleability:void 0,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"})},arangoMessage:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"message"})},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){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)},showAuthDialog:function(){var a=!0,b=localStorage.getItem("authenticationNotification");return"false"===b&&(a=!1),a},doNotShowAgain:function(){localStorage.setItem("authenticationNotification",!1)},renderEmpty:function(a){$("#content").html('")},download:function(a,b){$.ajax(a).success(function(a,c,d){if(b)return void b(a);var e=new Blob([JSON.stringify(a)],{type:d.getResponseHeader("Content-Type")||"application/octet-stream"}),f=window.URL.createObjectURL(e),g=document.createElement("a");document.body.appendChild(g),g.style="display: none",g.href=f,g.download=d.getResponseHeader("Content-Disposition").replace(/.* filename="([^")]*)"/,"$1"),g.click(),window.URL.revokeObjectURL(f),document.body.removeChild(g)})}}}(),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:{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))}}}},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,10),indexBuckets:parseInt(c,10)};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)},"POST","tests",b)},isSystem:function(){return this.get("system")},isDevelopment:function(){return this.get("development")},download:function(){a(this,function(a,b){return a?void console.error(a.responseJSON):void(window.location.href=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/download/zip?mount="+this.encodedMount()+"&nonce="+b.nonce))}.bind(this),"POST","download/nonce")},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()),window.arangoHelper.getCurrentJwt()&&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:""}})}(),window.UserConfig=Backbone.Model.extend({defaults:{graphs:"",queries:[]},model:window.UserConfigModel,parse:function(a){return a.result},url:function(){return window.App.currentUser?this.username=window.App.currentUser:this.username="root",arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(this.username)+"/config")},setItem:function(a,b,c){var d=this;$.ajax({type:"PUT",cache:!1,url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(this.username)+"/config/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,data:JSON.stringify({value:b}),async:!0,success:function(){d.set(a,b),c&&c()},error:function(){arangoHelper.arangoError("User configuration","Could not update user configuration for key: "+a)}})},getItem:function(a,b){$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(this.username)+"/config/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,async:!0,success:function(a){b(a)},error:function(){arangoHelper.arangoError("User configuration","Could not fetch user configuration for key: "+a)}})}}),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,_.includes(c,"_system"))};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,e,f){var g;try{g=JSON.parse(e),g._to=d,g._from=c}catch(h){arangoHelper.arangoError("Edge","Could not parsed document.")}$.ajax({cache:!1,type:"PUT",url:arangoHelper.databaseUrl("/_api/document/"+encodeURIComponent(a)+"/"+encodeURIComponent(b))+"#replaceEdge",data:JSON.stringify(g),contentType:"application/json",processData:!1,success:function(a){f(!1,a)},error:function(a){f(!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")};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=this.totalAmount-(this.page+1)*this.pagesize;return 0>d&&this.page===this.totalPages-1?(d=0,c=this.totalAmount%this.pagesize):c=this.pagesize,0===this.totalAmount&&(c=1),a=this.upto?"upto":"level",b="/_admin/log?"+a+"="+this.loglevel+"&size="+c+"&offset="+d,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||null===this.activeUser?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&&null!==this.activeUser||(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(this.activeUser===!1||null===this.activeUser)return!1;this.activeUser!==!1&&null!==this.activeUser||(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},fetch:function(a){return window.App.currentUser&&"_system"!==window.App.currentDB.get("name")&&(this.url=frontendConfig.basePath+"/_api/user/"+encodeURIComponent(window.App.currentUser)),Backbone.Collection.prototype.fetch.call(this,a)},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:arangoHelper.databaseUrl("/_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 a.result?_.each(a.result,function(a){b.push(a)}):b.push({user:a.user,active:a.active,extra:a.extra,changePassword:a.changePassword}),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(){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 new Error("Do not use")},getOverview:function(){throw new Error("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:arangoHelper.databaseUrl("/_api/gharial"),dropAndDeleteGraph:function(a,b){$.ajax({type:"DELETE",url:arangoHelper.databaseUrl("/_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","click #jsonLink":"toggleSwagger","mouseenter #app-scripts":"showDropdown","mouseleave #app-scripts":"hideDropdown"},resize:function(a){a?$(".innerContent").css("height","auto"):($(".innerContent").height($(".centralRow").height()-150),$("#swagger iframe").height($(".centralRow").height()-150),$("#swagger #swaggerJsonContent").height($(".centralRow").height()-150))},toggleSwagger:function(){var a=function(a){$("#jsonLink").html("JSON"),this.jsonEditor.setValue(JSON.stringify(a,null," "),1),$("#swaggerJsonContent").show(),$("#swagger iframe").hide()}.bind(this);if("Swagger"===$("#jsonLink").html()){var b=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/docs/swagger.json?mount="+encodeURIComponent(this.model.get("mount")));arangoHelper.download(b,a)}else $("#swaggerJsonContent").hide(),$("#swagger iframe").show(),$("#jsonLink").html("Swagger")},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?(this.resize(!0),$("#readme").show()):"service-api"===a.currentTarget.id?(this.resize(),$("#swagger").show()):"service-info"===a.currentTarget.id?(this.resize(!0),this.render(),$("#information").show(),$("#sideinformation").show()):"service-settings"===a.currentTarget.id&&(this.resize(!0),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.resize(),this.model.fetchThumbnail(function(){var b=function(b,c){var d=this;b?arangoHelper.arangoError("DB","Could not get current database"):($(this.el).html(this.template.render({app:this.model,baseUrl:arangoHelper.databaseUrl("",c),mode:a})),d.jsonEditor=ace.edit("swaggerJsonEditor"),d.jsonEditor.setReadOnly(!0),d.jsonEditor.getSession().setMode("ace/mode/json"),$.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 arangoHelper.databaseUrl(this.model.get("mount"),a)},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)};a.getCoordStatHistory(d),a.renderNodes()},rerenderValues:function(a){var b=this;b.renderNodes(),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,d){if("number"==typeof b)$(a).html(b);else if($.isArray(b)){var e=b[0],f=b[1],g=1/(f/e)*100;g>90?c=!0:g>70&&90>g&&(d=!0),$(a).html(g.toFixed(1)+" %")}else"string"==typeof b&&$(a).html(b);c?($(a).addClass("negative"),$(a).removeClass("warning"),$(a).removeClass("positive")):d?($(a).addClass("warning"),$(a).removeClass("positive"),$(a).removeClass("negative")):($(a).addClass("positive"),$(a).removeClass("negative"),$(a).removeClass("warning"))},renderNodes:function(){var a=this,b=function(a){var b=0,c=0,d=0,e=0;_.each(a,function(a){"Coordinator"===a.Role?(b++,"GOOD"!==a.Status&&c++):"DBServer"===a.Role&&(d++,"GOOD"!==a.Status&&e++)}),c>0?this.renderValue("#clusterCoordinators",b-c+"/"+b,!0):this.renderValue("#clusterCoordinators",b),e>0?this.renderValue("#clusterDBServers",d-e+"/"+d,!0):this.renderValue("#clusterDBServers",d)}.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.Health)},error:function(){a.renderValue("#clusterCoordinators","N/A",!0),a.renderValue("#clusterDBServers","N/A",!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="No data...";_.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){$.ajax({url:"statistics/coordshort",json:!0}).success(function(b){this.statsEnabled=b.enabled,a(b.data)}.bind(this))}})}(),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,10)!==Math.pow(2,Math.log2(g)))throw new Error("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);frontendConfig.isCluster===!1?this.model.renameCollection(c,i):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);frontendConfig.isCluster===!1?this.model.renameCollection(c,j):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()};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-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({cache:!1,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({cache:!1,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){}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),$("#s2id_new-collection-shardBy .select2-search-field input").on("focusout",function(a){$(".select2-drop").is(":visible")&&($("#select2-search-field input").is(":focus")||window.setTimeout(function(){$(a.currentTarget).parent().parent().parent().select2("close")},200))})}}.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)},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].unshift(c)}})},cutOffHistory:function(a,b){for(var c=this,d=c.history[c.server][a];0!==d.length&&!(d[d.length-1][0]>=b);)d.pop()},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:"+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]);return j.yAxis.showMaxMin(!1),d3.select(".nv-y.nv-axis").selectAll("text").attr("transform","translate (0, "+i+")"),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 #userManagementView .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,cache:!1})},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=this,b=$("#newDatabaseName").val(),c=$("#newUser").val(),d={name:b};this.collection.create(d,{error:function(c,d){a.handleError(d.status,d.statusText,b)},success:function(d){"root"!==c&&$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(c)+"/database/"+encodeURIComponent(b)),contentType:"application/json",data:JSON.stringify({grant:"rw"})}),$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/root/database/"+encodeURIComponent(b)),contentType:"application/json",data:JSON.stringify({grant:"rw"})}),"#databases"===window.location.hash&&a.updateDatabases(),arangoHelper.arangoNotification("Database "+d.get("name")+" created.")}}),arangoHelper.arangoNotification("Database creation in progress."),window.modalView.hide()},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({cache:!1,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."}]));var c=[];window.App.userCollection.each(function(a){c.push({value:a.get("user"),label:a.get("user")})}),b.push(window.modalView.createSelectEntry("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.",c)),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";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")};$("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}};""!==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}};""!==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");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";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){if(a)arangoHelper.arangoError("Error","Could not fetch data.");else{var c=b+": ";this.type=b,this.fillInfo(c),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","Confirm delete, document id is",this.type._id,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(this.type._from&&this.type._to){var b=function(b){b?arangoHelper.arangoError("Edge error","Could not delete edge"):a()};this.collection.deleteEdge(this.colid,this.docid,b)}else{var c=function(b){b?arangoHelper.arangoError("Error","Could not delete document"):a()};this.collection.deleteDocument(this.colid,this.docid,c)}},navigateToDocument:function(a){var b=$(a.target).attr("documentLink");b&&window.App.navigate(b,{trigger:!0})},fillInfo:function(){var b=this.collection.first(),c=b.get("_id"),d=b.get("_key"),e=b.get("_rev"),f=b.get("_from"),g=b.get("_to");if($("#document-type").css("margin-left","10px"),$("#document-type").text("_id:"),$("#document-id").css("margin-left","0"),$("#document-id").text(c),$("#document-key").text(d),$("#document-rev").text(e),f&&g){var h=a(f),i=a(g);$("#document-from").text(f),$("#document-from").attr("documentLink",h),$("#document-to").text(g),$("#document-to").attr("documentLink",i)}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),this.type._from&&this.type._to){var c=function(a){a?arangoHelper.arangoError("Error","Could not save edge."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveEdge(this.colid,this.docid,this.type._from,this.type._to,a,c)}else{var d=function(a){a?arangoHelper.arangoError("Error","Could not save document."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveDocument(this.colid,this.docid,a,d)}},successConfirmation:function(){arangoHelper.arangoNotification("Document saved.")},errorConfirmation:function(a){arangoHelper.arangoError("Document editor: ",a)},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.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()}),window.setTimeout(function(){window.frontendConfig.isCluster===!0&&($(".health-state").css("cursor","pointer"),$(".health-state").on("click",function(){window.App.navigate("#nodes",{trigger:!0})}))},1e3)},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(''))};$.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(b){401===b.status?(a.showServerStatus(!0),window.App.navigate("login",{trigger:!0})):(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_SERVICE_DOWNLOAD_FAILED:{code:1752,message:"service 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(),console.log(b),arangoHelper.arangoNotification("Services","Service "+b.name+" installed.")}});else{var d=b;switch(b.hasOwnProperty("responseJSON")&&(d=b.responseJSON),d.errorNum){case a.ERROR_SERVICE_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)),window.modalView.hide(),arangoHelper.arangoNotification("Services","Installing "+e+".")}},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()))},200)}),$(".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({cache:!1,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."))};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(),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({cache:!1,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")},200))},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({cache:!1}),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({cache:!1,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.GraphSettingsView=Backbone.View.extend({el:"#content",remove:function(){return this.$el.empty().off(),this.stopListening(),this},general:{graph:{type:"divider",name:"Graph"},nodeStart:{type:"string",name:"Starting node",desc:"A valid node id. If empty, a random node will be chosen.",value:2},layout:{type:"select",name:"Layout algorithm",noverlap:{name:"No overlap (fast)",val:"noverlap"},force:{name:"Force (slow)",val:"force"},fruchtermann:{name:"Fruchtermann (very slow)",val:"fruchtermann"}},renderer:{type:"select",name:"Renderer",canvas:{name:"Canvas (editable)",val:"canvas"},webgl:{name:"WebGL (only display)",val:"webgl"}},depth:{type:"number",name:"Search depth",value:2}},specific:{nodes:{type:"divider",name:"Nodes"},nodeLabel:{type:"string",name:"Label",desc:"Default node color. RGB or HEX value.","default":"_key"},nodeColor:{type:"color",name:"Color",desc:"Default node color. RGB or HEX value.","default":"#2ecc71"},nodeSize:{type:"string",name:"Sizing attribute",desc:"Default node size. Numeric value > 0."},edges:{type:"divider",name:"Edges"},edgeLabel:{type:"string",name:"Label",desc:"Default edge label."},edgeColor:{type:"color",name:"Color",desc:"Default edge color. RGB or HEX value.","default":"#cccccc"},edgeSize:{type:"number",name:"Sizing",desc:"Default edge thickness. Numeric value > 0."},edgeType:{type:"select",name:"Type",desc:"The type of the edge",line:{name:"Line",val:"line"},curve:{name:"Curve",val:"curve"},arrow:{name:"Arrow",val:"arrow"},curvedArrow:{name:"Curved Arrow",val:"curvedArrow"}}},template:templateEngine.createTemplate("graphSettingsView.ejs"),initialize:function(a){this.name=a.name,this.userConfig=a.userConfig},events:{"click #saveGraphSettings":"saveGraphSettings","click #restoreGraphSettings":"restoreGraphSettings"},getGraphSettings:function(a){var b=this,c=window.App.currentDB.toJSON().name+"_"+this.name;this.userConfig.fetch({success:function(d){b.graphConfig=d.toJSON().graphs[c],a&&b.continueRender()}})},saveGraphSettings:function(){var a=window.App.currentDB.toJSON().name+"_"+this.name,b={};b[a]={layout:$("#g_layout").val(),renderer:$("#g_renderer").val(),depth:$("#g_depth").val(),nodeColor:$("#g_nodeColor").val(),edgeColor:$("#g_edgeColor").val(),nodeLabel:$("#g_nodeLabel").val(),edgeLabel:$("#g_edgeLabel").val(),edgeType:$("#g_edgeType").val(),nodeSize:$("#g_nodeSize").val(),edgeSize:$("#g_edgeSize").val(),nodeStart:$("#g_nodeStart").val()};var c=function(){window.arangoHelper.arangoNotification("Graph "+this.name,"Configuration saved.")}.bind(this);this.userConfig.setItem("graphs",b,c)},setDefaults:function(){},render:function(){this.getGraphSettings(!0)},continueRender:function(){$(this.el).html(this.template.render({general:this.general,specific:this.specific})),this.graphConfig?_.each(this.graphConfig,function(a,b){$("#g_"+b).val(a)}):this.setDefaults(),arangoHelper.buildGraphSubNav(this.name,"Settings")}})}(),function(){"use strict";window.GraphViewer2=Backbone.View.extend({el:"#content",remove:function(){return this.$el.empty().off(),this.stopListening(),this},template:templateEngine.createTemplate("graphViewer2.ejs"),initialize:function(a){this.name=a.name,this.userConfig=a.userConfig,this.initSigma()},events:{"click #downloadPNG":"downloadSVG"},initSigma:function(){try{sigma.classes.graph.addMethod("neighbors",function(a){var b,c={},d=this.allNeighborsIndex[a]||{};for(b in d)c[b]=this.nodesIndex[b];return c})}catch(a){}},downloadSVG:function(){var a=this;this.currentGraph.toSVG({download:!0,filename:a.name+".svg",size:1e3})},resize:function(){$("#graph-container").width($(".centralContent").width()),$("#graph-container").height($(".centralRow").height()-150)},render:function(){this.$el.html(this.template.render({})),this.resize(),this.fetchGraph()},fetchGraph:function(){var a=this;arangoHelper.buildGraphSubNav(a.name,"Content"),$("#content").append('
    Fetching graph data. Please wait ...
    ');var b=function(){var b={};this.graphConfig&&(b=_.clone(this.graphConfig),delete b.layout,delete b.edgeType,delete b.renderer),this.setupSigma(),$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/aardvark/graph/"+encodeURIComponent(this.name)),contentType:"application/json",data:b,success:function(b){$("#calcText").html("Calculating layout. Please wait ... "),arangoHelper.buildGraphSubNav(a.name,"Content"),a.renderGraph(b)},error:function(a){console.log(a);try{arangoHelper.arangoError("Graph",a.responseJSON.exception)}catch(b){}$("#calculatingGraph").html("Failed to fetch graph information.")}})}.bind(this);this.getGraphSettings(b)},setupSigma:function(){if(this.graphConfig&&this.graphConfig.edgeLabel){sigma.utils.pkg("sigma.settings");var a={defaultEdgeLabelColor:"#000",defaultEdgeLabelActiveColor:"#000", -defaultEdgeLabelSize:10,edgeLabelSize:"fixed",edgeLabelSizePowRatio:1,edgeLabelThreshold:1};sigma.settings=sigma.utils.extend(sigma.settings||{},a),sigma.settings.drawEdgeLabels=!0}},contextState:{createEdge:!1,_from:!1,_to:!1,fromX:!1,fromY:!1},clearOldContextMenu:function(a){var b=this;$("#nodeContextMenu").remove();var c='
    ';$("#graph-container").append(c),a&&_.each(this.contextState,function(a,c){b.contextState[c]=!1})},createContextMenu:function(a){var b=a.data.captor.clientX,c=a.data.captor.clientX;console.log("Context menu"),console.log(b),console.log(c),this.clearOldContextMenu()},createNodeContextMenu:function(a,b){var c=this,d=b.data.node["renderer1:x"],e=b.data.node["renderer1:y"];this.clearOldContextMenu();var f=function(a,b){var f=["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],g=wheelnav,h=new g("nodeContextMenu");h.maxPercent=1,h.wheelRadius=50,h.clockwise=!1,h.colors=f,h.multiSelect=!0,h.clickModeRotate=!1,h.slicePathFunction=slicePath().DonutSlice,h.createWheel([icon.edit,icon.trash,icon.arrowleft2,icon.connect]),h.navItems[0].selected=!1,h.navItems[0].hovered=!1,h.navItems[0].navigateFunction=function(a){c.clearOldContextMenu(),c.editNode(b)},h.navItems[1].navigateFunction=function(a){c.clearOldContextMenu(),c.deleteNode(b)},h.navItems[2].navigateFunction=function(a){c.clearOldContextMenu(),c.setStartNode(b)},h.navItems[3].navigateFunction=function(a){c.contextState.createEdge=!0,c.contextState._from=b,c.contextState.fromX=d,c.contextState.fromY=e;var f=document.getElementsByClassName("sigma-mouse")[0];f.addEventListener("mousemove",c.drawLine.bind(this),!1),c.clearOldContextMenu()},h.navItems[0].selected=!1,h.navItems[0].hovered=!1};$("#nodeContextMenu").css("left",d+115),$("#nodeContextMenu").css("top",e+72),$("#nodeContextMenu").width(100),$("#nodeContextMenu").height(100),f(b,a)},clearMouseCanvas:function(){var a=document.getElementsByClassName("sigma-mouse")[0],b=a.getContext("2d");b.clearRect(0,0,$(a).width(),$(a).height())},drawLine:function(a){var b=window.App.graphViewer2.contextState;if(b.createEdge){var c=b.fromX,d=b.fromY,e=a.offsetX,f=a.offsetY,g=document.getElementsByClassName("sigma-mouse")[0],h=g.getContext("2d");h.clearRect(0,0,$(g).width(),$(g).height()),h.beginPath(),h.moveTo(c,d),h.lineTo(e,f),h.stroke()}},getGraphSettings:function(a){var b=this,c=window.App.currentDB.toJSON().name+"_"+this.name;this.userConfig.fetch({success:function(d){b.graphConfig=d.toJSON().graphs[c],a&&a(b.graphConfig)}})},editNode:function(a){var b=function(){};arangoHelper.openDocEditor(a,"doc",b)},renderGraph:function(a){var b=this;if(0!==a.edges.left){this.Sigma=sigma;var c="noverlap",d="canvas";this.graphConfig&&(this.graphConfig.layout&&(c=this.graphConfig.layout),this.graphConfig.renderer&&(d=this.graphConfig.renderer,"canvas"===d&&(b.isEditable=!0)));var e={doubleClickEnabled:!1,minNodeSize:3.5,minEdgeSize:1,maxEdgeSize:4,enableEdgeHovering:!0,edgeHoverColor:"#000",defaultEdgeHoverColor:"#000",defaultEdgeType:"line",edgeHoverSizeRatio:2,edgeHoverExtremities:!0};this.graphConfig&&this.graphConfig.edgeType&&(e.defaultEdgeType=this.graphConfig.edgeType),a.nodes.length>500&&(e.labelThreshold=15,e.hideEdgesOnMove=!0),"webgl"===d&&(e.enableEdgeHovering=!1);var f=new this.Sigma({graph:a,container:"graph-container",renderer:{container:document.getElementById("graph-container"),type:d},settings:e});if(this.currentGraph=f,sigma.plugins.fullScreen({container:"graph-container",btnId:"graph-fullscreen-btn"}),"noverlap"===c){var g=f.configNoverlap({nodeMargin:.1,scaleNodes:1.05,gridSize:75,easing:"quadraticInOut",duration:1e4});g.bind("start stop interpolate",function(a){"start"===a.type,"interpolate"===a.type})}else if("fruchtermann"===c){var h=sigma.layouts.fruchtermanReingold.configure(f,{iterations:500,easing:"quadraticInOut",duration:800});h.bind("start stop interpolate",function(a){})}f.graph.nodes().forEach(function(a){a.originalColor=a.color}),f.graph.edges().forEach(function(a){a.originalColor=a.color}),"canvas"===d&&(f.bind("rightClickStage",function(a){b.createContextMenu(a),b.clearMouseCanvas()}),f.bind("clickNode",function(a){b.contextState.createEdge===!0&&(b.contextState._to=a.data.node.id,b.currentGraph.graph.addEdge({source:b.contextState._from,target:b.contextState._to,id:Math.random(),color:b.graphConfig.edgeColor}),b.currentGraph.refresh(),b.clearOldContextMenu(!0))}),f.bind("rightClickNode",function(a){var c=a.data.node.id;b.createNodeContextMenu(c,a)}),f.bind("doubleClickNode",function(a){var b=a.data.node.id,c=f.graph.neighbors(b);c[b]=a.data.node,f.graph.nodes().forEach(function(a){c[a.id]?a.color=a.originalColor:a.color="#eee"}),f.graph.edges().forEach(function(a){c[a.source]&&c[a.target]?a.color="rgb(64, 74, 83)":a.color="#eee"}),f.refresh()}),f.bind("doubleClickStage",function(){f.graph.nodes().forEach(function(a){a.color=a.originalColor}),f.graph.edges().forEach(function(a){a.color=a.originalColor}),f.refresh()}),f.bind("clickStage",function(){b.clearOldContextMenu(!0),b.clearMouseCanvas()}));var i;if("noverlap"===c)f.startNoverlap(),i=sigma.plugins.dragNodes(f,f.renderers[0]);else if("force"===c){f.startForceAtlas2({worker:!0,barnesHutOptimize:!1});var j=3e3;a.nodes.length>2500?j=5e3:a.nodes.length<50&&(j=500),window.setTimeout(function(){f.stopForceAtlas2(),i=sigma.plugins.dragNodes(f,f.renderers[0])},j)}else"fruchtermann"===c?(sigma.layouts.fruchtermanReingold.start(f),i=sigma.plugins.dragNodes(f,f.renderers[0])):i=sigma.plugins.dragNodes(f,f.renderers[0]);console.log(i),$("#calculatingGraph").remove()}}})}(),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(),$("#content #modal-dialog .modal-footer").after(''),$("#indexHeaderContent #indexConfirmDelete").unbind("click"),$("#indexHeaderContent #indexConfirmDelete").bind("click",function(){$("#indexHeaderContent #indexDeleteModal").remove(),b.deleteIndex()}),$("#indexHeaderContent #indexAbortDelete").unbind("click"),$("#indexHeaderContent #indexAbortDelete").bind("click",function(){$("#indexHeaderContent #indexDeleteModal").remove()})},unbindIndexEvents:function(){$("#indexHeaderContent #indexEditView #addIndex").unbind("click"),$("#indexHeaderContent #newIndexType").unbind("change"),$("#indexHeaderContent #infoTab a").unbind("click"),$("#indexHeaderContent .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,loginCounter:0,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()}).error(function(){console.log("could not fetch user db data")})}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();b&&this.collection.login(b,c,this.loginCallback.bind(this,b,c))},loginCallback:function(a,b,c){var d=this;if(c){if(0===d.loginCounter)return d.loginCounter++,void d.collection.login(a,b,this.loginCallback.bind(this,a));d.loginCounter=0,$(".wrong-credentials").show(),$("#loginDatabase").html(""),$("#loginDatabase").append("")}else{var e=arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database","_system");frontendConfig.authenticationEnabled===!1&&(e=arangoHelper.databaseUrl("/_api/database/user")),$(".wrong-credentials").hide(),d.loggedIn=!0,$.ajax(e).success(function(a){_.each(a.result,function(b,c){"rw"!==b&&delete a.result[c]}),$("#loginForm").hide(),$(".login-window #databases").show(),$("#loginDatabase").html(""),_.each(a.result,function(a,b){$("#loginDatabase").append("")}),d.renderDBS()}).error(function(){$(".wrong-credentials").show()})}},renderDBS:function(){if(0===$("#loginDatabase").children().length)$("#dbForm").remove(),$(".login-window #databases").prepend('
    You do not have permission to a database.
    ');else{var a=$("#loginDatabase").val();$("#goToDatabase").html("Select DB: "+a),window.setTimeout(function(){$("#goToDatabase").focus()},300)}},logout:function(){this.collection.logout()},goTo:function(a){a.preventDefault();var b=$("#loginUsername").val(),c=$("#loginDatabase").val();window.App.dbSet=c;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){if(!a.disabled&&a.callback){if(a.type===m.buttons.DELETE&&!h){var c="#modalButton"+b;return j&&(c="#"+j+" #modalButton"+b),void $(c).bind("click",function(){j?($("#"+j+" "+m.confirm.yes).unbind("click"),$("#"+j+" "+m.confirm.yes).bind("click",a.callback),$("#"+j+" "+m.confirm.list).css("display","block")):($(m.confirm.yes).unbind("click"),$(m.confirm.yes).bind("click",a.callback),$(m.confirm.list).css("display","block"))})}j?$("#"+j+" #modalButton"+b).bind("click",a.callback):$("#modalButton"+b).bind("click",a.callback)}}),j?$("#"+j+" "+this.confirm.no).bind("click",function(){$("#"+j+" "+m.confirm.list).css("display","none")}):$(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;r=j?$("#"+j+" #modal-dialog").find("input"):$("#modal-dialog").find("input"),r&&setTimeout(function(){r=j?$("#"+j+" #modal-dialog"):$("#modal-dialog"),r.length>0&&(r=r.find("input"),r.length>0&&$(r[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){$(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.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('')))})})};$.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.NodesView2=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("nodesView2.ejs"),interval:1e4,knownServers:[],events:{"click #nodesContent .coords-nodes .pure-table-row":"navigateToNode","click #addCoord":"addCoord","click #removeCoord":"removeCoord","click #addDBs":"addDBs","click #removeDBs":"removeDBs"},initialize:function(){var a=this;clearInterval(this.intervalFunction),window.App.isCluster&&(this.updateServerTime(),this.intervalFunction=window.setInterval(function(){"#nodes"===window.location.hash&&a.render(!1)},this.interval))},navigateToNode:function(a){if(!$(a.currentTarget).hasClass("noHover")){var b=$(a.currentTarget).attr("node").slice(0,-5);window.App.navigate("#node/"+encodeURIComponent(b),{trigger:!0})}},render:function(a){var b=this,c=function(a){$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",success:function(c){b.continueRender(a,c)}})};$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,async:!0,success:function(a){c(a.Health)},error:function(){arangoHelper.arangoError("Cluster","Could not fetch cluster information")}}),a!==!1&&arangoHelper.buildNodesSubNav("Overview")},continueRender:function(a,b){var c={},d={},e=!1;_.each(a,function(a,b){"Coordinator"===a.Role?c[b]=a:"DBServer"===a.Role&&(d[b]=a)}),null!==b.numberOfDBServers&&null!==b.numberOfCoordinators&&(e=!0);var f=function(a){this.$el.html(this.template.render({coords:c,dbs:d,scaling:e,scaleProperties:a,plannedDBs:b.numberOfDBServers,plannedCoords:b.numberOfCoordinators})),e||($(".title").css("position","relative"),$(".title").css("top","-4px"),$(".sectionHeader .information").css("margin-top","-3px"))}.bind(this);this.renderCounts(e,f)},updatePlanned:function(a){a.numberOfCoordinators&&($("#plannedCoords").val(a.numberOfCoordinators),this.renderCounts(!0)),a.numberOfDBServers&&($("#plannedDBs").val(a.numberOfDBServers),this.renderCounts(!0))},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.updatePlanned(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.updatePlanned(c)},error:function(){arangoHelper.arangoError("Scale","Could not set coordinator size.")}})},renderCounts:function(a,b){var c=function(b,c,d,e){var f=''+c+'';d&&a===!0&&(f=f+''+d+''),e&&(f=f+''+e+''),$(b).html(f),a||($(".title").css("position","relative"),$(".title").css("top","-4px"))},d=function(a){var d=0,e=0,f=0,g=0,h=0,i=0;_.each(a,function(a){"Coordinator"===a.Role?"GOOD"===a.Status?e++:d++:"DBServer"===a.Role&&("GOOD"===a.Status?g++:h++)}),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){f=Math.abs(e+d-a.numberOfCoordinators),i=Math.abs(g+h-a.numberOfDBServers),b?b({coordsPending:f,coordsOk:e,coordsErrors:d,dbsPending:i,dbsOk:g,dbsErrors:h}):(c("#infoDBs",g,i,h),c("#infoCoords",e,f,d))}})};$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,success:function(a){d(a.Health)}})},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).val(),e=!1;try{e=JSON.parse(d)}catch(f){}return b&&e++,c&&1!==e&&e--,e},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),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())},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);this.initCoordDone||this.waitForCoordinators(),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&&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){"DBServer001"===a.get("name")&&(b.dbServer=a)}),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&&frontendConfig.isCluster===!1&&arangoHelper.showAuthDialog()===!0&&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=15e3,d=[{addClass:"button-warning",text:"Close",onClick:function(a){a.close()}},{addClass:"button-danger",text:"Don't show again.",onClick:function(a){a.close(),window.arangoHelper.doNotShowAgain()}}]),$.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",bindParamId:"#bindParamEditor",myQueriesId:"#queryTable",template:templateEngine.createTemplate("queryView.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");var c="query/download/"+encodeURIComponent(a);arangoHelper.download(c)})},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();if(""!==d||void 0!==d||null!==d){var e;e=0===Object.keys(this.bindParamTableObj).length?"query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d}))):"query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d,bindVars:this.bindParamTableObj}))),arangoHelper.download(e)}else 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()},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&&"Update"===$("#modalButton1").html()&&this.saveAQL(),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&&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"})},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){if(d.removeOutputEditor(c),409===b.code)return;400!==b.code&&404!==b.code&&arangoHelper.arangoNotification("Query","Successfully aborted.")}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())},c=function(){a.getSystemQueries(b)};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")};b.collection.saveCollectionQueries(e)}b.updateLocalQueries(),a&&a()}})}})}(),function(){"use strict";window.ScaleView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("scaleView.ejs"),interval:1e4,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){var b=this;clearInterval(this.intervalFunction),window.App.isCluster&&(this.dbServers=a.dbServers,this.coordinators=a.coordinators,this.updateServerTime(),this.intervalFunction=window.setInterval(function(){"#sNodes"===window.location.hash&&b.coordinators.fetch({success:function(){b.dbServers.fetch({success:function(){b.continueRender(!0)}})}})},this.interval))},render:function(){var a=this,b=function(){var b=function(){a.continueRender()};this.waitForDBServers(b)}.bind(this);this.initDoneCoords?b():this.waitForCoordinators(b),window.arangoHelper.buildNodesSubNav("scale")},continueRender:function(a){var b,c,d=this;b=this.coordinators.toJSON(),c=this.dbServers.toJSON(),this.$el.html(this.template.render({runningCoords:b.length,runningDBs:c.length,plannedCoords:void 0,plannedDBs:void 0,initialized:a})),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){d.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):(b.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,10)!==Math.pow(2,Math.log2(g)))throw new Error("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}))},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);frontendConfig.isCluster===!1?this.model.renameCollection(c,i):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}))};frontendConfig.isCluster===!1?this.model.renameCollection(c,j):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()};this.model.getProperties(g)}else f()}}.bind(this);window.isCoordinator(a)}})}(),function(){"use strict";window.ShardsView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("shardsView.ejs"),interval:1e4,knownServers:[],events:{"click #shardsContent .shardLeader span":"moveShard","click #shardsContent .shardFollowers span":"moveShardFollowers","click #rebalanceShards":"rebalanceShards"},initialize:function(a){var b=this;b.dbServers=a.dbServers,clearInterval(this.intervalFunction),window.App.isCluster&&(this.updateServerTime(),this.intervalFunction=window.setInterval(function(){"#shards"===window.location.hash&&b.render(!1)},this.interval))},render:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/shardDistribution"),contentType:"application/json",processData:!1,async:!0,success:function(a){var c,d=!1;b.shardDistribution=a.results,_.each(a.results,function(a,b){c=b.substring(0,1),"_"!==c&&"error"!==b&&"code"!==b&&(d=!0)}),d?b.continueRender(a.results):arangoHelper.renderEmpty("No collections and no shards available")},error:function(a){0!==a.readyState&&arangoHelper.arangoError("Cluster","Could not fetch sharding information.")}}),a!==!1&&arangoHelper.buildNodesSubNav("Shards")},moveShardFollowers:function(a){var b=$(a.currentTarget).html();this.moveShard(a,b)},moveShard:function(a,b){var c,d,e,f,g=this,h=window.App.currentDB.get("name");d=$(a.currentTarget).parent().parent().attr("collection"),e=$(a.currentTarget).parent().parent().attr("shard"),b?(f=$(a.currentTarget).parent().parent().attr("leader"),c=b):c=$(a.currentTarget).parent().parent().attr("leader");var i=[],j=[],k={},l=[];return g.dbServers[0].each(function(a){a.get("name")!==c&&(k[a.get("name")]={value:a.get("name"),label:a.get("name")})}),_.each(g.shardDistribution[d].Plan[e].followers,function(a){delete k[a]}),b&&delete k[f],_.each(k,function(a){l.push(a)}),l=l.reverse(),0===l.length?void arangoHelper.arangoMessage("Shards","No database server for moving the shard is available."):(j.push(window.modalView.createSelectEntry("toDBServer","Destination",void 0,"Please select the target databse server. The selected database server will be the new leader of the shard.",l)),i.push(window.modalView.createSuccessButton("Move",this.confirmMoveShards.bind(this,h,d,e,c))),void window.modalView.show("modalTable.ejs","Move shard: "+e,i,j))},confirmMoveShards:function(a,b,c,d){var e=this,f=$("#toDBServer").val(),g={database:a,collection:b,shard:c,fromServer:d,toServer:f};$.ajax({type:"POST",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/moveShard"),contentType:"application/json",processData:!1,data:JSON.stringify(g),async:!0,success:function(a){a===!0&&(window.setTimeout(function(){e.render(!1)},1500),arangoHelper.arangoNotification("Shard "+c+" will be moved to "+f+"."))},error:function(){arangoHelper.arangoNotification("Shard "+c+" could not be moved to "+f+".")}}),window.modalView.hide()},rebalanceShards:function(){var a=this;$.ajax({type:"POST",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/rebalanceShards"),contentType:"application/json",processData:!1,data:JSON.stringify({}),async:!0,success:function(b){b===!0&&(window.setTimeout(function(){a.render(!1)},1500),arangoHelper.arangoNotification("Started rebalance process."))},error:function(){arangoHelper.arangoNotification("Could not start rebalance process.")}}),window.modalView.hide()},continueRender:function(a){delete a.code,delete a.error,this.$el.html(this.template.render({collections:a}))},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),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.SupportView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("supportView.ejs"),events:{"click .subViewNavbar .subMenuEntry":"toggleViews"},render:function(){this.$el.html(this.template.render({}))},resize:function(a){a?$(".innerContent").css("height","auto"):$(".innerContent").height($(".centralRow").height()-170)},renderSwagger:function(){var a=window.location.pathname.split("/"),b=window.location.protocol+"//"+window.location.hostname+":"+window.location.port+"/"+a[1]+"/"+a[2]+"/_admin/aardvark/api/index.html";$("#swagger").html(""),$("#swagger").append('')},toggleViews:function(a){var b=this,c=a.currentTarget.id.split("-")[0],d=["community","documentation","swagger"];_.each(d,function(a){c!==a?$("#"+a).hide():("swagger"===c?(b.renderSwagger(),$("#swagger iframe").css("height","100%"),$("#swagger iframe").css("width","100%"),$("#swagger iframe").css("margin-top","-13px"),b.resize()):b.resize(!0),$("#"+a).show())}),$(".subMenuEntries").children().removeClass("active"),$("#"+c+"-support").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.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({cache:!1,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({cache:!1,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;$("#userManagementDropdown").is(":visible")&&(b=!0);var c=function(){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")}.bind(this);return this.collection.fetch({cache:!1,success:function(){c()}}),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({cache:!1,success:function(){a.render()}})},editUser:function(a){if("createUser"!==$(a.currentTarget).find("a").attr("id")){$(a.currentTarget).hasClass("tile")&&(a.currentTarget=$(a.currentTarget).find("img")),this.collection.fetch({cache:!1});var b=this.evaluateUserName($(a.currentTarget).attr("id"),"_edit-user");""===b&&(b=$(a.currentTarget).attr("id")),window.App.navigate("user/"+encodeURIComponent(b),{trigger:!0})}},toggleView:function(){$("#userSortDesc").attr("checked",this.collection.sortOptions.desc),$("#userManagementToggle").toggleClass("activated"),$("#userManagementDropdown2").slideToggle(200)},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)},evaluateUserName:function(a,b){if(a){var c=a.lastIndexOf(b);return a.substring(0,c)}},updateUserProfile:function(){var a=this;this.collection.fetch({cache:!1,success:function(){a.render()}})}})}(),function(){"use strict";window.UserPermissionView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("userPermissionView.ejs"),initialize:function(a){this.username=a.username},events:{'click #userPermissionView [type="checkbox"]':"setPermission"},render:function(){var a=this;this.collection.fetch({success:function(){a.continueRender()}})},setPermission:function(a){var b=$(a.currentTarget).is(":checked"),c=$(a.currentTarget).attr("name");b?this.grantPermission(this.currentUser.get("user"),c):this.revokePermission(this.currentUser.get("user"),c)},grantPermission:function(a,b){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database/"+encodeURIComponent(b)),contentType:"application/json",data:JSON.stringify({grant:"rw"})})},revokePermission:function(a,b){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database/"+encodeURIComponent(b)),contentType:"application/json"})},continueRender:function(){var a=this;this.currentUser=this.collection.findWhere({user:this.username}),this.breadcrumb(),arangoHelper.buildUserSubNav(this.currentUser.get("user"),"Permissions");var b=arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a.currentUser.get("user"))+"/database");"_system"===frontendConfig.db&&(b=arangoHelper.databaseUrl("/_api/user/root/database")),$.ajax({type:"GET",url:b,contentType:"application/json",success:function(b){var c=b.result;$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a.currentUser.get("user"))+"/database"),contentType:"application/json",success:function(b){var d=b.result;if(c._system){var e=[];_.each(c,function(a,b){e.push(b)}),c=e}a.finishRender(c,d)}})}})},finishRender:function(a,b){_.each(b,function(a,c){"rw"!==a&&delete b[c]}),$(this.el).html(this.template.render({allDBs:a,permissions:b}))},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("User: "+this.currentUser.get("user"))}})}(),function(){"use strict";window.UserView=Backbone.View.extend({el:"#content",initialize:function(a){this.username=a.username},render:function(){var a=this;this.collection.fetch({success:function(){a.continueRender()}})},editCurrentUser:function(){this.createEditCurrentUserModal(this.currentUser.get("user"),this.currentUser.get("extra").name,this.currentUser.get("extra").img)},continueRender:function(){this.breadcrumb(),this.currentUser=this.collection.findWhere({user:this.username}),arangoHelper.buildUserSubNav(this.currentUser.get("user"),"General"),this.currentUser.get("loggedIn")?this.editCurrentUser():this.createEditUserModal(this.currentUser.get("user"),this.currentUser.get("extra").name,this.currentUser.get("active"))},createEditUserPasswordModal:function(){var a=[],b=[];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)},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,null,null,this.events,null,null,"content")},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:"Change Password",type:window.modalView.buttons.NOTIFICATION,callback:this.createEditUserPasswordModal.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,null,null,this.events,null,null,"content")},validateStatus:function(a){return""!==a},submitDeleteUser:function(a){var b=this.collection.findWhere({user:a});b.destroy({wait:!0}),window.App.navigate("#users",{trigger:!0})},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()},submitEditUserPassword:function(){var a=$("#newCurrentPassword").val(),b=$("#confirmCurrentPassword").val();$("#newCurrentPassword").val(""),$("#confirmCurrentPassword").val(""),$("#newCurrentPassword").closest("th").css("backgroundColor","white"),$("#confirmCurrentPassword").closest("th").css("backgroundColor","white");var c=!1;a!==b&&(arangoHelper.arangoError("User","New passwords do not match."),c=!0),c||(this.currentUser.setPassword(a),arangoHelper.arangoNotification("User","Password changed."),window.modalView.hide())},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)},editUserPassword:function(){window.modalView.hide(),this.createEditUserPasswordModal()},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)},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",success:function(){arangoHelper.arangoNotification("User",d.get("user")+" updated.")},error:function(){arangoHelper.arangoError("User","Could not update "+d.get("user")+".")}})},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("User: "+this.username)}})}(),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","user/:name":"userView","user/:name/permission":"userPermissionView",userProfile:"userProfile",cluster:"cluster",nodes:"nodes",shards:"shards","node/:name":"node",logs:"logs",helpus:"helpUs","graph2/:name":"graph2","graph2/:name/settings":"graph2settings",support:"support"},execute:function(a,b){$("#subNavigationBar .breadcrumb").html(""),$("#subNavigationBar .bottom").html(""),$("#loadingScreen").hide(),$("#content").show(),a&&a.apply(this,b)},checkUser:function(){var a=this;if("#login"!==window.location.hash){var b=function(){this.initOnce(),$(".bodyWrapper").show(),$(".navbar").show()}.bind(this),c=function(c,d){frontendConfig.authenticationEnabled?(a.currentUser=d,c||null===d?"#login"!==window.location.hash&&this.navigate("login",{trigger:!0}):b()):b()}.bind(this);frontendConfig.authenticationEnabled?this.userCollection.whoAmI(c):(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()}}),b&&console.log(b)}.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({cache:!1}),window.spotlightView=new window.SpotlightView({collection:this.arangoCollectionsStore}),this.footerView=new window.FooterView({collection:a.coordinatorCollection}),this.notificationList=new window.NotificationCollection,this.currentDB.fetch({cache:!1,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.userConfig=new window.UserConfig,this.userConfig.fetch(),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)},shards:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.shardsView||(this.shardsView=new window.ShardsView({dbServers:this.dbServers})),void this.shardsView.render()):void this.waitForInit(this.shards.bind(this))},nodes: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.NodesView2({}),void this.nodesView.render()):void this.waitForInit(this.nodes.bind(this))},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({cache:!1,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({cache:!1,success:function(){b.collectionsView.render()}})},cIndices:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({cache:!1,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({cache:!1,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({cache:!1,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)},query:function(a){return this.checkUser(),a?(this.queryView||(this.queryView=new window.QueryView({collection:this.queryCollection})),void this.queryView.render()):void this.waitForInit(this.query.bind(this))},graph2:function(a,b){return this.checkUser(),b?(this.graphViewer2&&this.graphViewer2.remove(),this.graphViewer2=new window.GraphViewer2({name:a,userConfig:this.userConfig}),void this.graphViewer2.render()):void this.waitForInit(this.graph2.bind(this),a)},graph2settings:function(a,b){return this.checkUser(),b?(this.graphSettingsView&&this.graphSettingsView.remove(),this.graphSettingsView=new window.GraphSettingsView({name:a,userConfig:this.userConfig}),void this.graphSettingsView.render()):void this.waitForInit(this.graph2settings.bind(this),a)},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))},support:function(a){return this.checkUser(),a?(this.testView||(this.supportView=new window.SupportView({})),void this.supportView.render()):void this.waitForInit(this.support.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.graphViewer2&&this.graphViewer2.resize(),this.documentsView&&this.documentsView.resize(),this.documentView&&this.documentView.resize()},userPermissionView:function(a,b){if(this.checkUser(),b||null===b)this.userPermissionView=new window.UserPermissionView({collection:this.userCollection,databases:this.arangoDatabase,username:a}),this.userPermissionView.render();else if(b===!1)return void this.waitForInit(this.userPermissionView.bind(this),a)},userView:function(a,b){this.checkUser(),b||null===b?(this.userView=new window.UserView({collection:this.userCollection,username:a}),this.userView.render()):b===!1&&this.waitForInit(this.userView.bind(this),a)},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 +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;ci){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;d=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-=c<.4?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,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(k),{example:a.vertex._id},function(a){_.each(a,function(a){c.push(a)}),u(c,b)})}):s(o.traversal(k),{example:a},function(a){u(a,b)})})},l.loadNodeFromTreeByAttributeValue=function(a,b,c){var d={},e=o.traversalAttributeValue(k,d,f,a,b);s(e,d,function(a){u(a,c)})},l.getNodeExampleFromTreeByAttributeValue=function(a,b,c){var d,g=o.travesalAttributeValue(k,d,f,a,b);s(g,d,function(d){if(0===d.length)throw arangoHelper.arangoError("Graph error","no nodes found"),"No suitable nodes have been found.";_.each(d,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)}))))}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 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 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;f0?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),d<0&&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){cc&&(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;gh)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,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||a<0)throw"A width has to be given.";if(void 0===b||b<0)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,c0?(c+=.01,c>1&&(c=1)):(c-=.01,c1&&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){if(n(),a&&a.errorCode&&404===a.errorCode)return void arangoHelper.arangoError("Graph error","could not find a matching node.")},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){if(13===a.keyCode||13===a.which)return p(),!1}),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){if(m(),a&&a.errorCode&&404===a.errorCode)return void arangoHelper.arangoError("Graph error","could not find a matching node.")},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){if(13===a.keyCode||13===a.which)return p(),!1}),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 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,$("#subNavigationBar .breadcrumb").html("Graph: "+b.graphName),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||b<=0)throw"A width greater 0 has to be given";if(void 0===c||c<=0)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})})})},buildUserSubNav:function(a,b){var c={General:{route:"#user/"+encodeURIComponent(a)},Permissions:{route:"#user/"+encodeURIComponent(a)+"/permission"}};c[b].active=!0,this.buildSubNavBar(c)},buildGraphSubNav:function(a,b){var c={Content:{route:"#graph2/"+encodeURIComponent(a)},Settings:{route:"#graph2/"+encodeURIComponent(a)+"/settings"}};c[b].active=!0,this.buildSubNavBar(c)},buildNodeSubNav:function(a,b,c){var d={Dashboard:{route:"#node/"+encodeURIComponent(a)}};d[b].active=!0,d[c].disabled=!0,this.buildSubNavBar(d)},buildNodesSubNav:function(a,b){var c={Overview:{route:"#nodes"},Shards:{route:"#shards"}};c[a].active=!0,b&&(c[b].disabled=!0),this.buildSubNavBar(c)},scaleability:void 0,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"})},arangoMessage:function(a,b,c){window.App.notificationList.add({title:a,content:b,info:c,type:"message"})},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){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 a<10?"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)},showAuthDialog:function(){var a=!0,b=localStorage.getItem("authenticationNotification");return"false"===b&&(a=!1),a},doNotShowAgain:function(){localStorage.setItem("authenticationNotification",!1)},renderEmpty:function(a){$("#content").html('")},download:function(a,b){$.ajax(a).success(function(a,c,d){if(b)return void b(a);var e=new Blob([JSON.stringify(a)],{type:d.getResponseHeader("Content-Type")||"application/octet-stream"}),f=window.URL.createObjectURL(e),g=document.createElement("a");document.body.appendChild(g),g.style="display: none",g.href=f,g.download=d.getResponseHeader("Content-Disposition").replace(/.* filename="([^")]*)"/,"$1"),g.click(),window.URL.revokeObjectURL(f),document.body.removeChild(g)})}}}(),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 a<10?"0"+a:a},xAxisFormat:function(a){if(a===-1)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:{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))}}}},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,10),indexBuckets:parseInt(c,10)};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:a10)||(window.setTimeout(function(){a._retryCount=0},1e4),window.App.clusterUnreachable(),!1)},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):a<1?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;e0&&(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?cd?-1:0:c>d?1:c0&&(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=this.totalAmount-(this.page+1)*this.pagesize;return d<0&&this.page===this.totalPages-1?(d=0,c=this.totalAmount%this.pagesize):c=this.pagesize,0===this.totalAmount&&(c=1),a=this.upto?"upto":"level",b="/_admin/log?"+a+"="+this.loglevel+"&size="+c+"&offset="+d,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||null===this.activeUser?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&&null!==this.activeUser||(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(this.activeUser===!1||null===this.activeUser)return!1;this.activeUser!==!1&&null!==this.activeUser||(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&&(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},fetch:function(a){return window.App.currentUser&&"_system"!==window.App.currentDB.get("name")&&(this.url=frontendConfig.basePath+"/_api/user/"+encodeURIComponent(window.App.currentUser)),Backbone.Collection.prototype.fetch.call(this,a)},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?cd?-1:0:c>d?1:cd?-1:0):(c=a.get("mount"),d=b.get("mount"),c>d?1:cd?-1:0:c>d?1:c
  • '),$(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","click #jsonLink":"toggleSwagger","mouseenter #app-scripts":"showDropdown","mouseleave #app-scripts":"hideDropdown"},resize:function(a){a?$(".innerContent").css("height","auto"):($(".innerContent").height($(".centralRow").height()-150),$("#swagger iframe").height($(".centralRow").height()-150),$("#swagger #swaggerJsonContent").height($(".centralRow").height()-150))},toggleSwagger:function(){var a=function(a){$("#jsonLink").html("JSON"),this.jsonEditor.setValue(JSON.stringify(a,null,"\t"),1),$("#swaggerJsonContent").show(),$("#swagger iframe").hide()}.bind(this);if("Swagger"===$("#jsonLink").html()){var b=arangoHelper.databaseUrl("/_admin/aardvark/foxxes/docs/swagger.json?mount="+encodeURIComponent(this.model.get("mount")));arangoHelper.download(b,a)}else $("#swaggerJsonContent").hide(),$("#swagger iframe").show(),$("#jsonLink").html("Swagger")},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?(this.resize(!0),$("#readme").show()):"service-api"===a.currentTarget.id?(this.resize(),$("#swagger").show()):"service-info"===a.currentTarget.id?(this.resize(!0),this.render(),$("#information").show(),$("#sideinformation").show()):"service-settings"===a.currentTarget.id&&(this.resize(!0),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.resize(),this.model.fetchThumbnail(function(){var b=function(b,c){var d=this;b?arangoHelper.arangoError("DB","Could not get current database"):($(this.el).html(this.template.render({app:this.model,baseUrl:arangoHelper.databaseUrl("",c),mode:a})),d.jsonEditor=ace.edit("swaggerJsonEditor"),d.jsonEditor.setReadOnly(!0),d.jsonEditor.getSession().setMode("ace/mode/json"),$.ajax({url:this.appUrl(c),headers:{accept:"text/html,*/*;q=0.9"}}).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 arangoHelper.databaseUrl(this.model.get("mount"),a)},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")){a.knownServers.indexOf(c.id)===-1&&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")){a.knownServers.indexOf(b.id)===-1&&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)};a.getCoordStatHistory(d),a.renderNodes()},rerenderValues:function(a){var b=this;b.renderNodes(),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,d){if("number"==typeof b)$(a).html(b);else if($.isArray(b)){var e=b[0],f=b[1],g=1/(f/e)*100;g>90?c=!0:g>70&&g<90&&(d=!0),$(a).html(g.toFixed(1)+" %")}else"string"==typeof b&&$(a).html(b);c?($(a).addClass("negative"),$(a).removeClass("warning"),$(a).removeClass("positive")):d?($(a).addClass("warning"),$(a).removeClass("positive"),$(a).removeClass("negative")):($(a).addClass("positive"),$(a).removeClass("negative"),$(a).removeClass("warning"))},renderNodes:function(){var a=this,b=function(a){var b=0,c=0,d=0,e=0;_.each(a,function(a){"Coordinator"===a.Role?(b++,"GOOD"!==a.Status&&c++):"DBServer"===a.Role&&(d++,"GOOD"!==a.Status&&e++)}),c>0?this.renderValue("#clusterCoordinators",b-c+"/"+b,!0):this.renderValue("#clusterCoordinators",b),e>0?this.renderValue("#clusterDBServers",d-e+"/"+d,!0):this.renderValue("#clusterDBServers",d)}.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.Health)},error:function(){a.renderValue("#clusterCoordinators","N/A",!0),a.renderValue("#clusterDBServers","N/A",!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="No data...";_.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){$.ajax({url:"statistics/coordshort",json:!0}).success(function(b){this.statsEnabled=b.enabled,a(b.data)}.bind(this))}})}(),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()),g<1||parseInt(g,10)!==Math.pow(2,Math.log2(g)))throw new Error("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);frontendConfig.isCluster===!1?this.model.renameCollection(c,i):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);frontendConfig.isCluster===!1?this.model.renameCollection(c,j):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()};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-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({cache:!1,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({cache:!1,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),h<1)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){}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),$("#s2id_new-collection-shardBy .select2-search-field input").on("focusout",function(a){$(".select2-drop").is(":visible")&&($("#select2-search-field input").is(":focus")||window.setTimeout(function(){$(a.currentTarget).parent().parent().parent().select2("close")},200))})}}.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)},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]),e<0?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=[];i1)){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].unshift(c)}})},cutOffHistory:function(a,b){for(var c=this,d=c.history[c.server][a];0!==d.length&&!(d[d.length-1][0]>=b);)d.pop()},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:"+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=e<1025?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]);return j.yAxis.showMaxMin(!1),d3.select(".nv-y.nv-axis").selectAll("text").attr("transform","translate (0, "+i+")"),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 #userManagementView .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,cache:!1})},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_\-]*$/)||(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=this,b=$("#newDatabaseName").val(),c=$("#newUser").val(),d={name:b};this.collection.create(d,{error:function(c,d){a.handleError(d.status,d.statusText,b)},success:function(d){"root"!==c&&$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(c)+"/database/"+encodeURIComponent(b)),contentType:"application/json",data:JSON.stringify({grant:"rw"})}),$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/root/database/"+encodeURIComponent(b)),contentType:"application/json",data:JSON.stringify({grant:"rw"})}),"#databases"===window.location.hash&&a.updateDatabases(),arangoHelper.arangoNotification("Database "+d.get("name")+" created.")}}),arangoHelper.arangoNotification("Database creation in progress."),window.modalView.hide()},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({cache:!1,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 a.get("name").indexOf(b)!==-1}),$(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."}]));var c=[];window.App.userCollection.each(function(a){c.push({value:a.get("user"),label:a.get("user")})}),b.push(window.modalView.createSelectEntry("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.",c)),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";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")};$("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;a<=b;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}};""!==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}};""!==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");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";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){if(a)arangoHelper.arangoError("Error","Could not fetch data.");else{var c=b+": ";this.type=b,this.fillInfo(c),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","Confirm delete, document id is",this.type._id,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(this.type._from&&this.type._to){var b=function(b){b?arangoHelper.arangoError("Edge error","Could not delete edge"):a()};this.collection.deleteEdge(this.colid,this.docid,b)}else{var c=function(b){b?arangoHelper.arangoError("Error","Could not delete document"):a()};this.collection.deleteDocument(this.colid,this.docid,c)}},navigateToDocument:function(a){var b=$(a.target).attr("documentLink");b&&window.App.navigate(b,{trigger:!0})},fillInfo:function(){var b=this.collection.first(),c=b.get("_id"),d=b.get("_key"),e=b.get("_rev"),f=b.get("_from"),g=b.get("_to");if($("#document-type").css("margin-left","10px"),$("#document-type").text("_id:"),$("#document-id").css("margin-left","0"),$("#document-id").text(c),$("#document-key").text(d),$("#document-rev").text(e),f&&g){var h=a(f),i=a(g);$("#document-from").text(f),$("#document-from").attr("documentLink",h),$("#document-to").text(g),$("#document-to").attr("documentLink",i)}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),this.type._from&&this.type._to){var c=function(a){a?arangoHelper.arangoError("Error","Could not save edge."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveEdge(this.colid,this.docid,this.type._from,this.type._to,a,c)}else{var d=function(a){a?arangoHelper.arangoError("Error","Could not save document."):(this.successConfirmation(),this.disableSaveButton())}.bind(this);this.collection.saveDocument(this.colid,this.docid,a,d)}},successConfirmation:function(){arangoHelper.arangoNotification("Document saved.")},errorConfirmation:function(a){arangoHelper.arangoError("Document editor: ",a)},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.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()}),window.setTimeout(function(){window.frontendConfig.isCluster===!0&&($(".health-state").css("cursor","pointer"),$(".health-state").on("click",function(){window.App.navigate("#nodes",{trigger:!0})}))},1e3)},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(''))};$.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(b){401===b.status?(a.showServerStatus(!0),window.App.navigate("login",{trigger:!0})):(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_SERVICE_DOWNLOAD_FAILED:{code:1752,message:"service 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(),console.log(b),arangoHelper.arangoNotification("Services","Service "+b.name+" installed.")}});else{var d=b;switch(b.hasOwnProperty("responseJSON")&&(d=b.responseJSON),d.errorNum){case a.ERROR_SERVICE_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)),window.modalView.hide(),arangoHelper.arangoNotification("Services","Installing "+e+".")}},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()))},200)}),$(".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({cache:!1,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."))};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(),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({cache:!1,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")},200))},arangoHelper.setCheckboxStatus("#graphManagementDropdown")}}),a&&this.loadGraphViewer(a,b),this},setFromAndTo:function(a){a.stopPropagation();var b,c=this.calculateEdgeDefinitionMap();if(a.added){if(this.eCollList.indexOf(a.added.id)===-1&&this.removedECollList.indexOf(a.added.id)!==-1)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({cache:!1}),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){g.indexOf(a)===-1&&j.deleteVertexCollection(a)}),g.forEach(function(a){l.indexOf(a)===-1&&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;m.indexOf(b)===-1&&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 a.get("_key").indexOf(b)!==-1}),$(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({cache:!1,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(),ab?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(e.indexOf("addAfter_newEdgeDefinitions")===-1)e.indexOf("remove_newEdgeDefinitions")!==-1&&(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.GraphSettingsView=Backbone.View.extend({el:"#content",remove:function(){return this.$el.empty().off(),this.stopListening(),this},general:{graph:{type:"divider",name:"Graph"},nodeStart:{type:"string",name:"Starting node",desc:"A valid node id. If empty, a random node will be chosen.",value:2},layout:{type:"select",name:"Layout algorithm",noverlap:{name:"No overlap (fast)",val:"noverlap"},force:{name:"Force (slow)",val:"force"},fruchtermann:{name:"Fruchtermann (very slow)",val:"fruchtermann"}},renderer:{type:"select",name:"Renderer",canvas:{name:"Canvas (editable)",val:"canvas"},webgl:{name:"WebGL (only display)",val:"webgl"}},depth:{type:"number",name:"Search depth",value:2}},specific:{nodes:{type:"divider",name:"Nodes"},nodeLabel:{type:"string",name:"Label",desc:"Default node color. RGB or HEX value.","default":"_key"},nodeColor:{type:"color",name:"Color",desc:"Default node color. RGB or HEX value.","default":"#2ecc71"},nodeSize:{type:"string",name:"Sizing attribute",desc:"Default node size. Numeric value > 0."},edges:{type:"divider",name:"Edges"},edgeLabel:{type:"string",name:"Label",desc:"Default edge label."},edgeColor:{type:"color",name:"Color",desc:"Default edge color. RGB or HEX value.","default":"#cccccc"},edgeSize:{type:"number",name:"Sizing",desc:"Default edge thickness. Numeric value > 0."},edgeType:{type:"select",name:"Type",desc:"The type of the edge",line:{name:"Line",val:"line"},curve:{name:"Curve",val:"curve"},arrow:{name:"Arrow",val:"arrow"},curvedArrow:{name:"Curved Arrow",val:"curvedArrow"}}},template:templateEngine.createTemplate("graphSettingsView.ejs"),initialize:function(a){this.name=a.name,this.userConfig=a.userConfig},events:{"click #saveGraphSettings":"saveGraphSettings","click #restoreGraphSettings":"restoreGraphSettings"},getGraphSettings:function(a){var b=this,c=window.App.currentDB.toJSON().name+"_"+this.name;this.userConfig.fetch({success:function(d){b.graphConfig=d.toJSON().graphs[c],a&&b.continueRender()}})},saveGraphSettings:function(){var a=window.App.currentDB.toJSON().name+"_"+this.name,b={};b[a]={layout:$("#g_layout").val(),renderer:$("#g_renderer").val(),depth:$("#g_depth").val(),nodeColor:$("#g_nodeColor").val(),edgeColor:$("#g_edgeColor").val(),nodeLabel:$("#g_nodeLabel").val(),edgeLabel:$("#g_edgeLabel").val(),edgeType:$("#g_edgeType").val(),nodeSize:$("#g_nodeSize").val(),edgeSize:$("#g_edgeSize").val(),nodeStart:$("#g_nodeStart").val()};var c=function(){window.arangoHelper.arangoNotification("Graph "+this.name,"Configuration saved.")}.bind(this);this.userConfig.setItem("graphs",b,c)},setDefaults:function(){},render:function(){this.getGraphSettings(!0)},continueRender:function(){$(this.el).html(this.template.render({general:this.general,specific:this.specific})),this.graphConfig?_.each(this.graphConfig,function(a,b){$("#g_"+b).val(a)}):this.setDefaults(),arangoHelper.buildGraphSubNav(this.name,"Settings")}})}(),function(){"use strict";window.GraphViewer2=Backbone.View.extend({el:"#content",remove:function(){return this.$el.empty().off(),this.stopListening(),this},template:templateEngine.createTemplate("graphViewer2.ejs"),initialize:function(a){this.name=a.name,this.userConfig=a.userConfig,this.initSigma()},events:{"click #downloadPNG":"downloadSVG"},cursorX:0,cursorY:0,initSigma:function(){try{sigma.classes.graph.addMethod("neighbors",function(a){var b,c={},d=this.allNeighborsIndex[a]||{};for(b in d)c[b]=this.nodesIndex[b];return c})}catch(a){}},downloadSVG:function(){var a=this;this.currentGraph.toSVG({download:!0,filename:a.name+".svg",size:1e3})},resize:function(){$("#graph-container").width($(".centralContent").width()),$("#graph-container").height($(".centralRow").height()-150)},render:function(){this.$el.html(this.template.render({})),this.resize(),this.fetchGraph()},fetchGraph:function(){var a=this;arangoHelper.buildGraphSubNav(a.name,"Content"),$("#content").append('
    Fetching graph data. Please wait ...


    If it`s taking too much time to draw the graph, please go to:
    '+window.location.href+"/settings
    and adjust your settings.It is possible that the graph is too big to be handled by the browser.
    ");var b=function(){var b={};this.graphConfig&&(b=_.clone(this.graphConfig),delete b.layout,delete b.edgeType,delete b.renderer),this.setupSigma(),$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/aardvark/graph/"+encodeURIComponent(this.name)),contentType:"application/json",data:b,success:function(b){$("#calcText").html("Calculating layout. Please wait ... "),arangoHelper.buildGraphSubNav(a.name,"Content"),a.renderGraph(b)},error:function(a){console.log(a); +try{arangoHelper.arangoError("Graph",a.responseJSON.exception)}catch(b){}$("#calculatingGraph").html("Failed to fetch graph information.")}})}.bind(this);this.getGraphSettings(b)},setupSigma:function(){if(this.graphConfig&&this.graphConfig.edgeLabel){sigma.utils.pkg("sigma.settings");var a={defaultEdgeLabelColor:"#000",defaultEdgeLabelActiveColor:"#000",defaultEdgeLabelSize:10,edgeLabelSize:"fixed",edgeLabelSizePowRatio:1,edgeLabelThreshold:1};sigma.settings=sigma.utils.extend(sigma.settings||{},a),sigma.settings.drawEdgeLabels=!0}},contextState:{createEdge:!1,_from:!1,_to:!1,fromX:!1,fromY:!1},clearOldContextMenu:function(a){var b=this;$("#nodeContextMenu").remove();var c='
    ';$("#graph-container").append(c),a&&_.each(this.contextState,function(a,c){b.contextState[c]=!1});var d=document.getElementsByClassName("sigma-mouse")[0];d.removeEventListener("mousemove",b.drawLine.bind(this),!1)},trackCursorPosition:function(a){this.cursorX=a.x,this.cursorY=a.y},createContextMenu:function(a){var b=this,c=b.cursorX-50,d=b.cursorY-50;console.log(a),this.clearOldContextMenu();var e=function(a){var c=["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],d=wheelnav,e=new d("nodeContextMenu");e.maxPercent=1,e.wheelRadius=50,e.clockwise=!1,e.colors=c,e.multiSelect=!0,e.clickModeRotate=!1,e.slicePathFunction=slicePath().DonutSlice,e.createWheel([icon.plus,icon.trash]),e.navItems[0].selected=!1,e.navItems[0].hovered=!1,e.navItems[0].navigateFunction=function(a){b.clearOldContextMenu()},e.navItems[1].navigateFunction=function(a){b.clearOldContextMenu()},e.navItems[0].selected=!1,e.navItems[0].hovered=!1};$("#nodeContextMenu").css("position","fixed"),$("#nodeContextMenu").css("left",c),$("#nodeContextMenu").css("top",d),$("#nodeContextMenu").width(100),$("#nodeContextMenu").height(100),e(a)},createNodeContextMenu:function(a,b){var c=this;console.log(b);var d=b.data.captor.clientX-52,e=b.data.captor.clientY-52;console.log(b.data),this.clearOldContextMenu();var f=function(a,b){var f=["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],g=wheelnav,h=new g("nodeContextMenu");h.maxPercent=1,h.wheelRadius=50,h.clockwise=!1,h.colors=f,h.multiSelect=!0,h.clickModeRotate=!1,h.slicePathFunction=slicePath().DonutSlice,h.createWheel([icon.edit,icon.trash,icon.arrowleft2,icon.connect]),h.navItems[0].selected=!1,h.navItems[0].hovered=!1,h.navItems[0].navigateFunction=function(a){c.clearOldContextMenu(),c.editNode(b)},h.navItems[1].navigateFunction=function(a){c.clearOldContextMenu(),c.deleteNode(b)},h.navItems[2].navigateFunction=function(a){c.clearOldContextMenu(),c.setStartNode(b)},h.navItems[3].navigateFunction=function(a){c.contextState.createEdge=!0,c.contextState._from=b,c.contextState.fromX=d,c.contextState.fromY=e;var f=document.getElementsByClassName("sigma-mouse")[0];f.addEventListener("mousemove",c.drawLine.bind(this),!1),c.clearOldContextMenu()},h.navItems[0].selected=!1,h.navItems[0].hovered=!1};$("#nodeContextMenu").css("left",d),$("#nodeContextMenu").css("top",e),$("#nodeContextMenu").width(100),$("#nodeContextMenu").height(100),f(b,a)},clearMouseCanvas:function(){var a=document.getElementsByClassName("sigma-mouse")[0],b=a.getContext("2d");b.clearRect(0,0,$(a).width(),$(a).height())},drawLine:function(a){var b=window.App.graphViewer2.contextState;if(b.createEdge){var c=b.fromX,d=b.fromY,e=a.offsetX,f=a.offsetY,g=document.getElementsByClassName("sigma-mouse")[0],h=g.getContext("2d");h.clearRect(0,0,$(g).width(),$(g).height()),h.beginPath(),h.moveTo(c,d),h.lineTo(e,f),h.stroke()}},getGraphSettings:function(a){var b=this,c=window.App.currentDB.toJSON().name+"_"+this.name;this.userConfig.fetch({success:function(d){b.graphConfig=d.toJSON().graphs[c],a&&a(b.graphConfig)}})},editNode:function(a){var b=function(){};arangoHelper.openDocEditor(a,"doc",b)},renderGraph:function(a){var b=this;if(0!==a.edges.left){this.Sigma=sigma;var c="noverlap",d="canvas";this.graphConfig&&(this.graphConfig.layout&&(c=this.graphConfig.layout),this.graphConfig.renderer&&(d=this.graphConfig.renderer,"canvas"===d&&(b.isEditable=!0)));var e={doubleClickEnabled:!1,minNodeSize:3.5,minEdgeSize:1,maxEdgeSize:4,enableEdgeHovering:!0,edgeHoverColor:"#000",defaultEdgeHoverColor:"#000",defaultEdgeType:"line",edgeHoverSizeRatio:2,edgeHoverExtremities:!0};this.graphConfig&&this.graphConfig.edgeType&&(e.defaultEdgeType=this.graphConfig.edgeType),a.nodes.length>500&&(e.labelThreshold=15,e.hideEdgesOnMove=!0),"webgl"===d&&(e.enableEdgeHovering=!1);var f=new this.Sigma({graph:a,container:"graph-container",renderer:{container:document.getElementById("graph-container"),type:d},settings:e});if(this.currentGraph=f,sigma.plugins.fullScreen({container:"graph-container",btnId:"graph-fullscreen-btn"}),"noverlap"===c){var g=f.configNoverlap({nodeMargin:.1,scaleNodes:1.05,gridSize:75,easing:"quadraticInOut",duration:1e4});g.bind("start stop interpolate",function(a){"start"===a.type,"interpolate"===a.type})}else if("fruchtermann"===c){var h=sigma.layouts.fruchtermanReingold.configure(f,{iterations:500,easing:"quadraticInOut",duration:800});h.bind("start stop interpolate",function(a){})}f.graph.nodes().forEach(function(a){a.originalColor=a.color}),f.graph.edges().forEach(function(a){a.originalColor=a.color}),"canvas"===d&&(f.bind("rightClickStage",function(a){b.createContextMenu(a),b.clearMouseCanvas()}),f.bind("clickNode",function(a){b.contextState.createEdge===!0&&(b.contextState._to=a.data.node.id,b.currentGraph.graph.addEdge({source:b.contextState._from,target:b.contextState._to,id:Math.random(),color:b.graphConfig.edgeColor}),b.currentGraph.refresh(),b.clearOldContextMenu(!0))}),f.bind("rightClickNode",function(a){var c=a.data.node.id;b.createNodeContextMenu(c,a)}),f.bind("doubleClickNode",function(a){var b=a.data.node.id,c=f.graph.neighbors(b);c[b]=a.data.node,f.graph.nodes().forEach(function(a){c[a.id]?a.color=a.originalColor:a.color="#eee"}),f.graph.edges().forEach(function(a){c[a.source]&&c[a.target]?a.color="rgb(64, 74, 83)":a.color="#eee"}),f.refresh()}),f.bind("doubleClickStage",function(){f.graph.nodes().forEach(function(a){a.color=a.originalColor}),f.graph.edges().forEach(function(a){a.color=a.originalColor}),f.refresh()}),f.bind("clickStage",function(){b.clearOldContextMenu(!0),b.clearMouseCanvas()}));var i;if("noverlap"===c)f.startNoverlap(),i=sigma.plugins.dragNodes(f,f.renderers[0]);else if("force"===c){f.startForceAtlas2({worker:!0,barnesHutOptimize:!1});var j=3e3;a.nodes.length>2500?j=5e3:a.nodes.length<50&&(j=500),window.setTimeout(function(){f.stopForceAtlas2(),i=sigma.plugins.dragNodes(f,f.renderers[0])},j)}else"fruchtermann"===c?(sigma.layouts.fruchtermanReingold.start(f),i=sigma.plugins.dragNodes(f,f.renderers[0])):i=sigma.plugins.dragNodes(f,f.renderers[0]);console.log(i);var k=document.getElementsByClassName("sigma-mouse")[0];k.addEventListener("mousemove",b.trackCursorPosition.bind(this),!1),$("#calculatingGraph").remove()}}})}(),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(),$("#content #modal-dialog .modal-footer").after(''),$("#indexHeaderContent #indexConfirmDelete").unbind("click"),$("#indexHeaderContent #indexConfirmDelete").bind("click",function(){$("#indexHeaderContent #indexDeleteModal").remove(),b.deleteIndex()}),$("#indexHeaderContent #indexAbortDelete").unbind("click"),$("#indexHeaderContent #indexAbortDelete").bind("click",function(){$("#indexHeaderContent #indexDeleteModal").remove()})},unbindIndexEvents:function(){$("#indexHeaderContent #indexEditView #addIndex").unbind("click"),$("#indexHeaderContent #newIndexType").unbind("change"),$("#indexHeaderContent #infoTab a").unbind("click"),$("#indexHeaderContent .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,loginCounter:0,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()}).error(function(){console.log("could not fetch user db data")})}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();b&&this.collection.login(b,c,this.loginCallback.bind(this,b,c))},loginCallback:function(a,b,c){var d=this;if(c){if(0===d.loginCounter)return d.loginCounter++,void d.collection.login(a,b,this.loginCallback.bind(this,a));d.loginCounter=0,$(".wrong-credentials").show(),$("#loginDatabase").html(""),$("#loginDatabase").append("")}else{var e=arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database","_system");frontendConfig.authenticationEnabled===!1&&(e=arangoHelper.databaseUrl("/_api/database/user")),$(".wrong-credentials").hide(),d.loggedIn=!0,$.ajax(e).success(function(a){_.each(a.result,function(b,c){"rw"!==b&&delete a.result[c]}),$("#loginForm").hide(),$(".login-window #databases").show(),$("#loginDatabase").html(""),_.each(a.result,function(a,b){$("#loginDatabase").append("")}),d.renderDBS()}).error(function(){$(".wrong-credentials").show()})}},renderDBS:function(){if(0===$("#loginDatabase").children().length)$("#dbForm").remove(),$(".login-window #databases").prepend('
    You do not have permission to a database.
    ');else{var a=$("#loginDatabase").val();$("#goToDatabase").html("Select DB: "+a),window.setTimeout(function(){$("#goToDatabase").focus()},300)}},logout:function(){this.collection.logout()},goTo:function(a){a.preventDefault();var b=$("#loginUsername").val(),c=$("#loginDatabase").val();window.App.dbSet=c;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){if(!a.disabled&&a.callback){if(a.type===m.buttons.DELETE&&!h){var c="#modalButton"+b;return j&&(c="#"+j+" #modalButton"+b),void $(c).bind("click",function(){j?($("#"+j+" "+m.confirm.yes).unbind("click"),$("#"+j+" "+m.confirm.yes).bind("click",a.callback),$("#"+j+" "+m.confirm.list).css("display","block")):($(m.confirm.yes).unbind("click"),$(m.confirm.yes).bind("click",a.callback),$(m.confirm.list).css("display","block"))})}j?$("#"+j+" #modalButton"+b).bind("click",a.callback):$("#modalButton"+b).bind("click",a.callback)}}),j?$("#"+j+" "+this.confirm.no).bind("click",function(){$("#"+j+" "+m.confirm.list).css("display","none")}):$(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;r=j?$("#"+j+" #modal-dialog").find("input"):$("#modal-dialog").find("input"),r&&setTimeout(function(){r=j?$("#"+j+" #modal-dialog"):$("#modal-dialog"),r.length>0&&(r=r.find("input"),r.length>0&&$(r[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;if(_.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)}if(d)return!1}),d)return d},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){$(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.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('')))})})};$.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.NodesView2=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("nodesView2.ejs"),interval:1e4,knownServers:[],events:{"click #nodesContent .coords-nodes .pure-table-row":"navigateToNode","click #addCoord":"addCoord","click #removeCoord":"removeCoord","click #addDBs":"addDBs","click #removeDBs":"removeDBs"},initialize:function(){var a=this;clearInterval(this.intervalFunction),window.App.isCluster&&(this.updateServerTime(),this.intervalFunction=window.setInterval(function(){"#nodes"===window.location.hash&&a.render(!1)},this.interval))},navigateToNode:function(a){if(!$(a.currentTarget).hasClass("noHover")){var b=$(a.currentTarget).attr("node").slice(0,-5);window.App.navigate("#node/"+encodeURIComponent(b),{trigger:!0})}},render:function(a){var b=this,c=function(a){$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",success:function(c){b.continueRender(a,c)}})};$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,async:!0,success:function(a){c(a.Health)},error:function(){arangoHelper.arangoError("Cluster","Could not fetch cluster information")}}),a!==!1&&arangoHelper.buildNodesSubNav("Overview")},continueRender:function(a,b){var c={},d={},e=!1;_.each(a,function(a,b){"Coordinator"===a.Role?c[b]=a:"DBServer"===a.Role&&(d[b]=a)}),null!==b.numberOfDBServers&&null!==b.numberOfCoordinators&&(e=!0);var f=function(a){this.$el.html(this.template.render({coords:c,dbs:d,scaling:e,scaleProperties:a,plannedDBs:b.numberOfDBServers,plannedCoords:b.numberOfCoordinators})),e||($(".title").css("position","relative"),$(".title").css("top","-4px"),$(".sectionHeader .information").css("margin-top","-3px"))}.bind(this);this.renderCounts(e,f)},updatePlanned:function(a){a.numberOfCoordinators&&($("#plannedCoords").val(a.numberOfCoordinators),this.renderCounts(!0)),a.numberOfDBServers&&($("#plannedDBs").val(a.numberOfDBServers),this.renderCounts(!0))},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.updatePlanned(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.updatePlanned(c)},error:function(){arangoHelper.arangoError("Scale","Could not set coordinator size.")}})},renderCounts:function(a,b){var c=function(b,c,d,e){var f=''+c+'';d&&a===!0&&(f=f+''+d+''),e&&(f=f+''+e+''),$(b).html(f),a||($(".title").css("position","relative"),$(".title").css("top","-4px"))},d=function(a){var d=0,e=0,f=0,g=0,h=0,i=0;_.each(a,function(a){"Coordinator"===a.Role?"GOOD"===a.Status?e++:d++:"DBServer"===a.Role&&("GOOD"===a.Status?g++:h++)}),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){f=Math.abs(e+d-a.numberOfCoordinators),i=Math.abs(g+h-a.numberOfDBServers),b?b({coordsPending:f,coordsOk:e,coordsErrors:d,dbsPending:i,dbsOk:g,dbsErrors:h}):(c("#infoDBs",g,i,h),c("#infoCoords",e,f,d))}})};$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,success:function(a){d(a.Health)}})},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).val(),e=!1;try{e=JSON.parse(d)}catch(f){}return b&&e++,c&&1!==e&&e--,e},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),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())},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);this.initCoordDone||this.waitForCoordinators(),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&&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){"DBServer001"===a.get("name")&&(b.dbServer=a)}),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&&frontendConfig.isCluster===!1&&arangoHelper.showAuthDialog()===!0&&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=15e3,d=[{addClass:"button-warning",text:"Close",onClick:function(a){a.close()}},{addClass:"button-danger",text:"Don't show again.",onClick:function(a){a.close(),window.arangoHelper.doNotShowAgain()}}]),$.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",bindParamId:"#bindParamEditor",myQueriesId:"#queryTable",template:templateEngine.createTemplate("queryView.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,"\t"),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");var c="query/download/"+encodeURIComponent(a);arangoHelper.download(c)})},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();if(""!==d||void 0!==d||null!==d){var e;e=0===Object.keys(this.bindParamTableObj).length?"query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d}))):"query/result/download/"+encodeURIComponent(btoa(JSON.stringify({query:d,bindVars:this.bindParamTableObj}))),arangoHelper.download(e)}else 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()},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;k"+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,"\t"),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&&"Update"===$("#modalButton1").html()&&this.saveAQL(),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&&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){if(a.name===b)return a.value=d,void(e=!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"})},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){if(d.removeOutputEditor(c),409===b.code)return;400!==b.code&&404!==b.code&&arangoHelper.arangoNotification("Query","Successfully aborted.")}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())},c=function(){a.getSystemQueries(b)};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")};b.collection.saveCollectionQueries(e)}b.updateLocalQueries(),a&&a()}})}})}(),function(){"use strict";window.ScaleView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("scaleView.ejs"),interval:1e4,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){var b=this;clearInterval(this.intervalFunction),window.App.isCluster&&(this.dbServers=a.dbServers,this.coordinators=a.coordinators,this.updateServerTime(),this.intervalFunction=window.setInterval(function(){"#sNodes"===window.location.hash&&b.coordinators.fetch({success:function(){b.dbServers.fetch({success:function(){b.continueRender(!0)}})}})},this.interval))},render:function(){var a=this,b=function(){var b=function(){a.continueRender()};this.waitForDBServers(b)}.bind(this);this.initDoneCoords?b():this.waitForCoordinators(b),window.arangoHelper.buildNodesSubNav("scale")},continueRender:function(a){var b,c,d=this;b=this.coordinators.toJSON(),c=this.dbServers.toJSON(),this.$el.html(this.template.render({runningCoords:b.length,runningDBs:c.length,plannedCoords:void 0,plannedDBs:void 0,initialized:a})),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){d.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):(b.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()),g<1||parseInt(g,10)!==Math.pow(2,Math.log2(g)))throw new Error("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}))},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);frontendConfig.isCluster===!1?this.model.renameCollection(c,i):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}))};frontendConfig.isCluster===!1?this.model.renameCollection(c,j):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()};this.model.getProperties(g)}else f()}}.bind(this);window.isCoordinator(a)}})}(),function(){"use strict";window.ShardsView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("shardsView.ejs"),interval:1e4,knownServers:[],events:{"click #shardsContent .shardLeader span":"moveShard","click #shardsContent .shardFollowers span":"moveShardFollowers","click #rebalanceShards":"rebalanceShards"},initialize:function(a){var b=this;b.dbServers=a.dbServers,clearInterval(this.intervalFunction),window.App.isCluster&&(this.updateServerTime(),this.intervalFunction=window.setInterval(function(){"#shards"===window.location.hash&&b.render(!1)},this.interval))},render:function(a){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/shardDistribution"),contentType:"application/json",processData:!1,async:!0,success:function(a){var c,d=!1;b.shardDistribution=a.results,_.each(a.results,function(a,b){c=b.substring(0,1),"_"!==c&&"error"!==b&&"code"!==b&&(d=!0)}),d?b.continueRender(a.results):arangoHelper.renderEmpty("No collections and no shards available")},error:function(a){0!==a.readyState&&arangoHelper.arangoError("Cluster","Could not fetch sharding information.")}}),a!==!1&&arangoHelper.buildNodesSubNav("Shards")},moveShardFollowers:function(a){var b=$(a.currentTarget).html();this.moveShard(a,b)},moveShard:function(a,b){var c,d,e,f,g=this,h=window.App.currentDB.get("name");d=$(a.currentTarget).parent().parent().attr("collection"),e=$(a.currentTarget).parent().parent().attr("shard"),b?(f=$(a.currentTarget).parent().parent().attr("leader"),c=b):c=$(a.currentTarget).parent().parent().attr("leader");var i=[],j=[],k={},l=[];return g.dbServers[0].each(function(a){a.get("name")!==c&&(k[a.get("name")]={value:a.get("name"),label:a.get("name")})}),_.each(g.shardDistribution[d].Plan[e].followers,function(a){delete k[a]}),b&&delete k[f],_.each(k,function(a){l.push(a)}),l=l.reverse(),0===l.length?void arangoHelper.arangoMessage("Shards","No database server for moving the shard is available."):(j.push(window.modalView.createSelectEntry("toDBServer","Destination",void 0,"Please select the target databse server. The selected database server will be the new leader of the shard.",l)),i.push(window.modalView.createSuccessButton("Move",this.confirmMoveShards.bind(this,h,d,e,c))),void window.modalView.show("modalTable.ejs","Move shard: "+e,i,j))},confirmMoveShards:function(a,b,c,d){var e=this,f=$("#toDBServer").val(),g={database:a,collection:b,shard:c,fromServer:d,toServer:f};$.ajax({type:"POST",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/moveShard"),contentType:"application/json",processData:!1,data:JSON.stringify(g),async:!0,success:function(a){a===!0&&(window.setTimeout(function(){e.render(!1)},1500),arangoHelper.arangoNotification("Shard "+c+" will be moved to "+f+"."))},error:function(){arangoHelper.arangoNotification("Shard "+c+" could not be moved to "+f+".")}}),window.modalView.hide()},rebalanceShards:function(){var a=this;$.ajax({type:"POST",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/rebalanceShards"),contentType:"application/json",processData:!1,data:JSON.stringify({}),async:!0,success:function(b){b===!0&&(window.setTimeout(function(){a.render(!1)},1500),arangoHelper.arangoNotification("Started rebalance process."))},error:function(){arangoHelper.arangoNotification("Could not start rebalance process.")}}),window.modalView.hide()},continueRender:function(a){delete a.code,delete a.error,this.$el.html(this.template.render({collections:a}))},updateServerTime:function(){this.serverTime=(new Date).getTime()}})}(),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(i0&&(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")){b.knownServers.indexOf(a.id)===-1&&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")){b.knownServers.indexOf(a.id)===-1&&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;c";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.SupportView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("supportView.ejs"),events:{"click .subViewNavbar .subMenuEntry":"toggleViews"},render:function(){this.$el.html(this.template.render({}))},resize:function(a){a?$(".innerContent").css("height","auto"):$(".innerContent").height($(".centralRow").height()-170)},renderSwagger:function(){var a=window.location.pathname.split("/"),b=window.location.protocol+"//"+window.location.hostname+":"+window.location.port+"/"+a[1]+"/"+a[2]+"/_admin/aardvark/api/index.html";$("#swagger").html(""),$("#swagger").append('')},toggleViews:function(a){var b=this,c=a.currentTarget.id.split("-")[0],d=["community","documentation","swagger"];_.each(d,function(a){c!==a?$("#"+a).hide():("swagger"===c?(b.renderSwagger(),$("#swagger iframe").css("height","100%"),$("#swagger iframe").css("width","100%"),$("#swagger iframe").css("margin-top","-13px"),b.resize()):b.resize(!0),$("#"+a).show())}),$(".subMenuEntries").children().removeClass("active"),$("#"+c+"-support").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.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({cache:!1,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({cache:!1,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;$("#userManagementDropdown").is(":visible")&&(b=!0);var c=function(){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")}.bind(this);return this.collection.fetch({cache:!1,success:function(){c()}}),this},search:function(){var a,b,c,d;a=$("#userManagementSearchInput"),b=$("#userManagementSearchInput").val(),d=this.collection.filter(function(a){return a.get("user").indexOf(b)!==-1}),$(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)},updateUserManagement:function(){var a=this;this.collection.fetch({cache:!1,success:function(){a.render()}})},editUser:function(a){if("createUser"!==$(a.currentTarget).find("a").attr("id")){$(a.currentTarget).hasClass("tile")&&(a.currentTarget=$(a.currentTarget).find("img")),this.collection.fetch({cache:!1});var b=this.evaluateUserName($(a.currentTarget).attr("id"),"_edit-user");""===b&&(b=$(a.currentTarget).attr("id")),window.App.navigate("user/"+encodeURIComponent(b),{trigger:!0})}},toggleView:function(){$("#userSortDesc").attr("checked",this.collection.sortOptions.desc),$("#userManagementToggle").toggleClass("activated"),$("#userManagementDropdown2").slideToggle(200)},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)},evaluateUserName:function(a,b){if(a){var c=a.lastIndexOf(b);return a.substring(0,c)}},updateUserProfile:function(){var a=this;this.collection.fetch({cache:!1,success:function(){a.render()}})}})}(),function(){"use strict";window.UserPermissionView=Backbone.View.extend({el:"#content",template:templateEngine.createTemplate("userPermissionView.ejs"),initialize:function(a){this.username=a.username},events:{'click #userPermissionView [type="checkbox"]':"setPermission"},render:function(){var a=this;this.collection.fetch({success:function(){a.continueRender()}})},setPermission:function(a){var b=$(a.currentTarget).is(":checked"),c=$(a.currentTarget).attr("name");b?this.grantPermission(this.currentUser.get("user"),c):this.revokePermission(this.currentUser.get("user"),c)},grantPermission:function(a,b){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database/"+encodeURIComponent(b)),contentType:"application/json",data:JSON.stringify({grant:"rw"})})},revokePermission:function(a,b){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database/"+encodeURIComponent(b)),contentType:"application/json"})},continueRender:function(){var a=this;this.currentUser=this.collection.findWhere({user:this.username}),this.breadcrumb(),arangoHelper.buildUserSubNav(this.currentUser.get("user"),"Permissions");var b=arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a.currentUser.get("user"))+"/database");"_system"===frontendConfig.db&&(b=arangoHelper.databaseUrl("/_api/user/root/database")),$.ajax({type:"GET",url:b,contentType:"application/json",success:function(b){var c=b.result;$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a.currentUser.get("user"))+"/database"),contentType:"application/json",success:function(b){var d=b.result;if(c._system){var e=[];_.each(c,function(a,b){e.push(b)}),c=e}a.finishRender(c,d)}})}})},finishRender:function(a,b){_.each(b,function(a,c){"rw"!==a&&delete b[c]}),$(this.el).html(this.template.render({allDBs:a,permissions:b}))},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("User: "+this.currentUser.get("user"))}})}(),function(){"use strict";window.UserView=Backbone.View.extend({el:"#content",initialize:function(a){this.username=a.username},render:function(){var a=this;this.collection.fetch({success:function(){a.continueRender()}})},editCurrentUser:function(){this.createEditCurrentUserModal(this.currentUser.get("user"),this.currentUser.get("extra").name,this.currentUser.get("extra").img)},continueRender:function(){this.breadcrumb(),this.currentUser=this.collection.findWhere({user:this.username}),arangoHelper.buildUserSubNav(this.currentUser.get("user"),"General"),this.currentUser.get("loggedIn")?this.editCurrentUser():this.createEditUserModal(this.currentUser.get("user"),this.currentUser.get("extra").name,this.currentUser.get("active"))},createEditUserPasswordModal:function(){var a=[],b=[];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)},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,null,null,this.events,null,null,"content")},parseImgString:function(a){return a.indexOf("@")===-1?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:"Change Password",type:window.modalView.buttons.NOTIFICATION,callback:this.createEditUserPasswordModal.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,null,null,this.events,null,null,"content")},validateStatus:function(a){return""!==a},submitDeleteUser:function(a){var b=this.collection.findWhere({user:a});b.destroy({wait:!0}),window.App.navigate("#users",{trigger:!0})},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()},submitEditUserPassword:function(){var a=$("#newCurrentPassword").val(),b=$("#confirmCurrentPassword").val();$("#newCurrentPassword").val(""),$("#confirmCurrentPassword").val(""),$("#newCurrentPassword").closest("th").css("backgroundColor","white"),$("#confirmCurrentPassword").closest("th").css("backgroundColor","white");var c=!1;a!==b&&(arangoHelper.arangoError("User","New passwords do not match."),c=!0),c||(this.currentUser.setPassword(a),arangoHelper.arangoNotification("User","Password changed."),window.modalView.hide())},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_\-]*$/)||(arangoHelper.arangoError("Wrong Username","Username may only contain numbers, letters, _ and -"),!1)},editUserPassword:function(){window.modalView.hide(),this.createEditUserPasswordModal()},validateName:function(a){return""===a||(!!a.match(/^[a-zA-Z][a-zA-Z0-9_\-\ ]*$/)||(arangoHelper.arangoError("Wrong Username","Username may only contain numbers, letters, _ and -"),!1))},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",success:function(){arangoHelper.arangoNotification("User",d.get("user")+" updated.")},error:function(){arangoHelper.arangoError("User","Could not update "+d.get("user")+".")}})},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("User: "+this.username)}})}(),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","user/:name":"userView","user/:name/permission":"userPermissionView",userProfile:"userProfile",cluster:"cluster",nodes:"nodes",shards:"shards","node/:name":"node",logs:"logs",helpus:"helpUs","graph2/:name":"graph2","graph2/:name/settings":"graph2settings",support:"support"},execute:function(a,b){$("#subNavigationBar .breadcrumb").html(""),$("#subNavigationBar .bottom").html(""),$("#loadingScreen").hide(),$("#content").show(),a&&a.apply(this,b)},checkUser:function(){var a=this;if("#login"!==window.location.hash){var b=function(){this.initOnce(),$(".bodyWrapper").show(),$(".navbar").show()}.bind(this),c=function(c,d){frontendConfig.authenticationEnabled?(a.currentUser=d,c||null===d?"#login"!==window.location.hash&&this.navigate("login",{trigger:!0}):b()):b()}.bind(this);frontendConfig.authenticationEnabled?this.userCollection.whoAmI(c):(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()}}),b&&console.log(b)}.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({cache:!1}),window.spotlightView=new window.SpotlightView({collection:this.arangoCollectionsStore}),this.footerView=new window.FooterView({collection:a.coordinatorCollection}),this.notificationList=new window.NotificationCollection,this.currentDB.fetch({cache:!1,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.userConfig=new window.UserConfig,this.userConfig.fetch(),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)},shards:function(a){return this.checkUser(),a&&void 0!==this.isCluster?this.isCluster===!1?(this.routes[""]="dashboard",void this.navigate("#dashboard",{trigger:!0})):(this.shardsView||(this.shardsView=new window.ShardsView({dbServers:this.dbServers})),void this.shardsView.render()):void this.waitForInit(this.shards.bind(this))},nodes: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.NodesView2({}),void this.nodesView.render()):void this.waitForInit(this.nodes.bind(this))},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({cache:!1,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({cache:!1,success:function(){b.collectionsView.render()}})},cIndices:function(a,b){var c=this;return this.checkUser(),b?void this.arangoCollectionsStore.fetch({cache:!1,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({cache:!1,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({cache:!1,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)},query:function(a){return this.checkUser(),a?(this.queryView||(this.queryView=new window.QueryView({collection:this.queryCollection})),void this.queryView.render()):void this.waitForInit(this.query.bind(this))},graph2:function(a,b){return this.checkUser(),b?(this.graphViewer2&&this.graphViewer2.remove(),this.graphViewer2=new window.GraphViewer2({name:a,userConfig:this.userConfig}),void this.graphViewer2.render()):void this.waitForInit(this.graph2.bind(this),a)},graph2settings:function(a,b){return this.checkUser(),b?(this.graphSettingsView&&this.graphSettingsView.remove(),this.graphSettingsView=new window.GraphSettingsView({name:a,userConfig:this.userConfig}),void this.graphSettingsView.render()):void this.waitForInit(this.graph2settings.bind(this),a)},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))},support:function(a){return this.checkUser(),a?(this.testView||(this.supportView=new window.SupportView({})),void this.supportView.render()):void this.waitForInit(this.support.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.graphViewer2&&this.graphViewer2.resize(),this.documentsView&&this.documentsView.resize(),this.documentView&&this.documentView.resize()},userPermissionView:function(a,b){if(this.checkUser(),b||null===b)this.userPermissionView=new window.UserPermissionView({collection:this.userCollection,databases:this.arangoDatabase,username:a}),this.userPermissionView.render();else if(b===!1)return void this.waitForInit(this.userPermissionView.bind(this),a)},userView:function(a,b){this.checkUser(),b||null===b?(this.userView=new window.UserView({collection:this.userCollection,username:a}),this.userView.render()):b===!1&&this.waitForInit(this.userView.bind(this),a)},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 e306f078575d7883fa5fc9cdc007508635099bc7..1cc8e40dce518866d3c91432dcfe47de3b60337b 100644 GIT binary patch literal 126869 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%0DHF2vW0Yw@XJ)`!p-EsPKr~$gXyt|R%pIqN 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 delta 126335 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
    \ 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 6c702e3342e10c48726e46442e41cb8c52f60af7..f33d36763af8a7c55f6ce29ceedad95b27ff5327 100644 GIT binary patch delta 1024 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 U%zTUhdkePy1H)!wr%!wa0H<-ZF#rGn 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 5287ada50d..beb0427c46 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 @@ -2711,4 +2711,4 @@ var cutByResolution = function (str) {