From b9a75b42c028f69a59a5325e84199dc5ce79304d Mon Sep 17 00:00:00 2001 From: hkernbach Date: Thu, 14 Jul 2016 21:01:42 +0200 Subject: [PATCH] grunt build [ci skip] --- .../aardvark/APP/frontend/build/app.min.js | 28 +++++++++--------- .../aardvark/APP/frontend/build/app.min.js.gz | Bin 126869 -> 128259 bytes .../APP/frontend/build/index-min.html | 2 +- .../APP/frontend/build/index-min.html.gz | Bin 31475 -> 31476 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 f82aa2e209..826b0b05c4 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;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 +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,d){var e;e=b?JSON.stringify({_key:b}):JSON.stringify({});var f=arangoHelper.databaseUrl("/_api/document?collection="+encodeURIComponent(a));d&&(f+="?returnNew=true"),$.ajax({cache:!1,type:"POST",url:f,data:e,contentType:"application/json",processData:!1,success:function(a){d?c(!1,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"),$.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")){-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){var b=this;this.name=a.name,this.userConfig=a.userConfig,this.documentStore=a.documentStore,this.initSigma(),this.collection.fetch({cache:!1,success:function(c){b.model=b.collection.findWhere({_key:a.name}).toJSON()}})},events:{"click #downloadPNG":"downloadSVG","click #reloadGraph":"reloadGraph"},cursorX:0,cursorY:0,model:null,viewStates:{captureMode:!1},graphConfig:null,graphSettings:null,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(b){try{arangoHelper.arangoError("Graph",b.responseJSON.exception);var c=b.responseJSON.exception.search("1205");if(-1!==c){var d='Starting point: '+a.graphConfig.nodeStart+" is invalid";$("#calculatingGraph").html('
    Stopped.

    '+d+'. Please choose a different start node.
    ')}else $("#calculatingGraph").html("Failed to fetch graph information.")}catch(e){}}})}.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},addNode:function(){var a=this,b=$(".modal-body #new-node-collection-attr").val(),c=$(".modal-body #new-node-key-attr").last().val(),d=function(b,c){b?arangoHelper.arangoError("Error","Could not create node"):(console.log(c),a.currentGraph.graph.addNode({id:c,label:a.graphConfig.nodeLabel,size:a.graphConfig.nodeSize||Math.random(),color:a.graphConfig.nodeColor||"#2ecc71",x:a.cursorX,y:a.cursorY}),window.modalView.hide(),a.currentGraph.refresh())};""!==c||void 0!==c?this.documentStore.createTypeDocument(b,c,d):this.documentStore.createTypeDocument(b,null,d)},addNodeModal:function(){if(0!==this.graphSettings.vertexCollections){var a=[],b=[],c=[];_.each(this.graphSettings.vertexCollections,function(a){c.push({label:a.name,value:a.id})}),b.push(window.modalView.createTextEntry("new-node-key-attr","_key",void 0,"The nodes 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.createSelectEntry("new-node-collection-attr","Collection",void 0,"Please select the destination for the new node.",c)),a.push(window.modalView.createSuccessButton("Create",this.addNode.bind(this))),window.modalView.show("modalTable.ejs","Create node",a,b)}else arangoHelper.arangoError("Graph","No valid vertex collections found.")},addEdge:function(){var a,b=this,c=b.contextState._from,d=b.contextState._to;a=""===$(".modal-body #new-edge-collection-attr").val()?$(".modal-body #new-edge-collection-attr").text():$(".modal-body #new-edge-collection-attr").val();var e=$(".modal-body #new-edge-key-attr").last().val(),f=function(a,e){a?console.log("could not create edge"):(b.currentGraph.graph.addEdge({source:c,target:d,id:e._id,color:b.graphConfig.edgeColor}),b.currentGraph.refresh()),b.clearOldContextMenu(!0),window.modalView.hide()};""!==e||void 0!==e?this.documentStore.createTypeEdge(a,c,d,e,f):this.documentStore.createTypeEdge(a,c,d,null,f)},addEdgeModal:function(a){if(0!==a){var b=[],c=[];if(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:""}])),a.length>1){var d=[];_.each(a,function(a){d.push({label:a,value:a})}),c.push(window.modalView.createSelectEntry("new-edge-collection-attr","Edge collection",void 0,"Please select the destination for the new edge.",d))}else c.push(window.modalView.createReadOnlyEntry("new-edge-collection-attr","Edge collection",a[0],"The edges collection to be used."));b.push(window.modalView.createSuccessButton("Create",this.addEdge.bind(this))),window.modalView.show("modalTable.ejs","Create edge",b,c)}else arangoHelper.arangoError("Graph","No valid edge definitions found.")},createContextMenu:function(a){var b=this,c=b.cursorX-50,d=b.cursorY-50;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,b.viewStates.captureMode?e.createWheel([icon.plus,icon.trash]):e.createWheel([icon.plus,""]),e.navItems[0].selected=!1,e.navItems[0].hovered=!1,e.navItems[0].navigateFunction=function(a){b.clearOldContextMenu(),b.addNodeModal()},b.viewStates.captureMode&&(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,d,e=this;_.each(b.data.node,function(a,b){"renderer"===b.substr(0,8)&&"x"===b.charAt(b.length-1)&&(c=a),"renderer"===b.substr(0,8)&&"y"===b.charAt(b.length-1)&&(d=a)}),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){e.clearOldContextMenu(),e.editNode(b)},h.navItems[1].navigateFunction=function(a){e.clearOldContextMenu(),e.deleteNode(b)},h.navItems[2].navigateFunction=function(a){e.clearOldContextMenu(),e.setStartNode(b)},h.navItems[3].navigateFunction=function(a){e.contextState.createEdge=!0,e.contextState._from=b,e.contextState.fromX=c,e.contextState.fromY=d;var f=document.getElementsByClassName("sigma-mouse")[0];f.addEventListener("mousemove",e.drawLine.bind(this),!1),e.clearOldContextMenu()},h.navItems[0].selected=!1,h.navItems[0].hovered=!1};$("#nodeContextMenu").css("left",c+115),$("#nodeContextMenu").css("top",d+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)},reloadGraph:function(){Backbone.history.loadUrl(Backbone.history.fragment)},getEdgeDefinitionCollections:function(a,b){var c=[];return _.each(this.model.edgeDefinitions,function(d){_.each(d.from,function(e){e===a&&_.each(d.to,function(a){a===b&&c.push(d.collection)})})}),c},renderGraph:function(a){var b=this;if(this.graphSettings=a.settings,0===a.edges.length){var c='No edges found for starting point: '+b.graphSettings.startVertex._id+"";return arangoHelper.arangoError("Graph",c),void $("#calculatingGraph").html('
    Stopped.

    '+c+'. Please choose a different start node or try to reload the graph.
    ')}this.Sigma=sigma;var d="noverlap",e="canvas";this.graphConfig&&(this.graphConfig.layout&&(d=this.graphConfig.layout),this.graphConfig.renderer&&(e=this.graphConfig.renderer,"canvas"===e&&(b.isEditable=!0)));var f={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&&(f.defaultEdgeType=this.graphConfig.edgeType),a.nodes.length>500&&(f.labelThreshold=15,f.hideEdgesOnMove=!0),"webgl"===e&&(f.enableEdgeHovering=!1);var g=new this.Sigma({graph:a,container:"graph-container",renderer:{container:document.getElementById("graph-container"),type:e},settings:f});if(this.currentGraph=g,sigma.plugins.fullScreen({container:"graph-container",btnId:"graph-fullscreen-btn"}),"noverlap"===d){var h=g.configNoverlap({nodeMargin:.1,scaleNodes:1.05,gridSize:75,easing:"quadraticInOut",duration:1e4});h.bind("start stop interpolate",function(a){"start"===a.type,"interpolate"===a.type})}else if("fruchtermann"===d){var i=sigma.layouts.fruchtermanReingold.configure(g,{iterations:500,easing:"quadraticInOut",duration:800});i.bind("start stop interpolate",function(a){})}g.graph.nodes().forEach(function(a){a.originalColor=a.color}),g.graph.edges().forEach(function(a){a.originalColor=a.color}),"canvas"===e&&(g.bind("rightClickStage",function(a){b.createContextMenu(a),b.clearMouseCanvas()}),g.bind("clickNode",function(a){if(b.contextState.createEdge===!0){b.contextState._to=a.data.node.id;var c=b.contextState._from.split("/")[0],d=b.contextState._to.split("/")[0],e=b.getEdgeDefinitionCollections(c,d);b.addEdgeModal(e,b.contextState._from,b.contextState._to)}}),g.bind("rightClickNode",function(a){var c=a.data.node.id;b.createNodeContextMenu(c,a)}),g.bind("doubleClickNode",function(a){var b=a.data.node.id,c=g.graph.neighbors(b);c[b]=a.data.node,g.graph.nodes().forEach(function(a){c[a.id]?a.color=a.originalColor:a.color="#eee"}),g.graph.edges().forEach(function(a){c[a.source]&&c[a.target]?a.color="rgb(64, 74, 83)":a.color="#eee"}),g.refresh()}),g.bind("doubleClickStage",function(){g.graph.nodes().forEach(function(a){a.color=a.originalColor}),g.graph.edges().forEach(function(a){a.color=a.originalColor}),g.refresh()}),g.bind("clickStage",function(){b.clearOldContextMenu(!0),b.clearMouseCanvas()}));var j;if("noverlap"===d)g.startNoverlap(),j=sigma.plugins.dragNodes(g,g.renderers[0]);else if("force"===d){g.startForceAtlas2({worker:!0,barnesHutOptimize:!1});var k=3e3;a.nodes.length>2500?k=5e3:a.nodes.length<50&&(k=500),window.setTimeout(function(){g.stopForceAtlas2(),j=sigma.plugins.dragNodes(g,g.renderers[0])},k)}else"fruchtermann"===d?(sigma.layouts.fruchtermanReingold.start(g),j=sigma.plugins.dragNodes(g,g.renderers[0])):j=sigma.plugins.dragNodes(g,g.renderers[0]);console.log(j);var l=document.getElementsByClassName("sigma-mouse")[0];l.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;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,documentStore:this.arangoDocumentStore,collection:new window.GraphCollection,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 1cc8e40dce518866d3c91432dcfe47de3b60337b..a15c7fc6e02395d71846b3767a4f513f12f24a86 100644 GIT binary patch delta 127800 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

    FBF2nK7NnmGm+Vg4a)- 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≦7fb5TkGqTA558?Dyq;ZQ5dGP6(@=CU+Q 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 delta 126448 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�*Soujr7*L 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�XX3)O<*YO-TY3up+!U%VXXCQxsMf0fl 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

    T%V1UPLmLS7(DWRuMoZ7q<4gdN?JAc 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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 f33d36763af8a7c55f6ce29ceedad95b27ff5327..9643dd863c3a8af3949c42949e24b83668de755a 100644 GIT binary patch delta 703 zcmV;w0zm!q^#Szt0k98uJ0u|uO*w$MfCLg0sjbR^Lljd3K_QVGRFi+t_swHpwW3s9 zqIkVKp52{&&CE9oO-l8oqK&$(PP+bClS+3h0gsb*cOWWXZ<`PR09zQIjwJun@V`JM zCll^qt0#jJjO%%x8R^k+l`0*sNm)k z#**N%d3r8?bE83HW<0EZh)cd`?YvK=%mgp>JLCvntjo0kr4%hbM4El?@bn}4n^>%F zxt0*)K?Lzph)YzC>9bKK_+blINx42KksPQykuO#Y&ld-3mXw5#H)0}!sGjQudjPh) z7P0=^IMM4FN8>gg>Wfq}d6hDr=rb51dN`m6-^~7h^7ni1a2^MK3RX4KW$s|y+pJ;q z{iu9NSZNia*yAEew!iSY z70!u&_&c4w@$ToWhUXs8HFs^*K)?hIwZ;DM8(i!oa0h1{Od;6%&IZ2iM0Gy|Yv?tg zK9Fn@p@SBDvkm!J8|wZKCWb_;+pX(u1M5lkd9uWa!AROa(Wm6%aeW#3S`{uE)T2ZQA zqIkVKp52{&&CE9oO-l8wqK&$(PP+a@lS+3h0Z)^5cOWX?ZkrGQ09zQIjwJu{@V`JM zCll^qt0#jJjO%%lmlI zM2h{!mMoFFYPqs2+Ew^mH7nQx!g)P46}X0nI!H4Ya1ZOr3l?9XxBy1bY48;ajV7e^ z()33V7Xm}%2@%2if@;gY;O5=c^@q=w#DvPTYOB~027|l_`7ML!EjXyscH^NxD!BQC zu_SnGo}SBp+-T6484s(U;*u{~JMU8|Gr>#!4mpAs>vAnXDMgD9k!IgJJpG9NCKjt( zt|i2H5J7wt;u4i(`fOAQe%QiQQmzk5BnRqFB_-kGjhKias^@ya9)K;c zMXWzJPV{=l(YTF=`Xbd#UZspD`V5AM9u6qNH?x0#{Qc28oX3Hmf>q6QnL8NwHftDt zKPq1mR$7H9_P9ur?Js;dTBG~$b^%etlxK1?Rp=E>$Yey5yu8itLD=|dze_EZno=z6 zGNzp85X<1fC1LOckg+|YTp|NjXoRFxc*{!V9ay!$n);kgHN&0SkH5HLYQZLvT64j20f+`(A~QwX-cvw?3rQQZ&08u|rL zA4oQd&_N46+64b74F&S>OSp#b@3>-Kd-G?x2M>x5BFy}5FJ}^9X<%Rl)oxEmLs08D zZb+S=oj7+HAJ;Nean1NCu1M5lkd9uWa!AROa(Wm6tCNd*IWO