From 4426929cb76aaf8e5132539f9b3f478585a32d82 Mon Sep 17 00:00:00 2001 From: hkernbach Date: Tue, 17 Jan 2017 19:43:28 +0100 Subject: [PATCH] grunt build --- .../aardvark/APP/frontend/build/app.min.js | 24 +++++++++--------- .../aardvark/APP/frontend/build/app.min.js.gz | Bin 111053 -> 111421 bytes .../APP/frontend/build/index-min.html | 9 ++++++- .../APP/frontend/build/index-min.html.gz | Bin 31875 -> 31950 bytes 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js b/js/apps/system/_admin/aardvark/APP/frontend/build/app.min.js index d4d0a781f0..bf9550d136 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,12 +1,12 @@ -!function(){"use strict";var a=null;window.isCoordinator=function(b){null===a?$.ajax("cluster/amICoordinator",{async:!0,success:function(c){a=c,b(!1,c)},error:function(c){a=c,b(!0,c)}}):b(!1,a)},window.versionHelper={fromString:function(a){var b=a.replace(/-[a-zA-Z0-9_-]*$/g,"").split(".");return{major:parseInt(b[0],10)||0,minor:parseInt(b[1],10)||0,patch:parseInt(b[2],10)||0,toString:function(){return this.major+"."+this.minor+"."+this.patch}}},toString:function(a){return a.major+"."+a.minor+"."+a.patch}},window.arangoHelper={getCurrentJwt:function(){return localStorage.getItem("jwt")},setCurrentJwt:function(a){localStorage.setItem("jwt",a)},lastNotificationMessage:null,CollectionTypes:{},systemAttributes:function(){return{_id:!0,_rev:!0,_key:!0,_bidirectional:!0,_vertices:!0,_from:!0,_to:!0,$id:!0}},getCurrentSub:function(){return window.App.naviView.activeSubMenu},parseError:function(a,b){var c;try{c=JSON.parse(b.responseText).errorMessage}catch(d){c=d}this.arangoError(a,c)},setCheckboxStatus:function(a){_.each($(a).find("ul").find("li"),function(a){$(a).hasClass("nav-header")||($(a).find("input").attr("checked")?$(a).find("i").hasClass("css-round-label")?$(a).find("i").addClass("fa-dot-circle-o"):$(a).find("i").addClass("fa-check-square-o"):$(a).find("i").hasClass("css-round-label")?$(a).find("i").addClass("fa-circle-o"):$(a).find("i").addClass("fa-square-o"))})},parseInput:function(a){var b,c=$(a).val();try{b=JSON.parse(c)}catch(d){b=c}return b},calculateCenterDivHeight:function(){var a=$(".navbar").height(),b=$(".footer").height(),c=$(window).height();return c-b-a-110},fixTooltips:function(a,b){$(a).tooltip({placement:b,hide:!1,show:!1})},currentDatabase:function(a){return frontendConfig.db?a(!1,frontendConfig.db):a(!0,void 0),frontendConfig.db},allHotkeys:{jsoneditor:{name:"AQL editor",content:[{label:"Execute Query",letter:"Ctrl/Cmd + Return"},{label:"Execute Selected Query",letter:"Ctrl/Cmd + Alt + Return"},{label:"Explain Query",letter:"Ctrl/Cmd + Shift + Return"},{label:"Save Query",letter:"Ctrl/Cmd + Shift + S"},{label:"Open search",letter:"Ctrl + Space"},{label:"Toggle comments",letter:"Ctrl/Cmd + Shift + C"},{label:"Undo",letter:"Ctrl/Cmd + Z"},{label:"Redo",letter:"Ctrl/Cmd + Shift + Z"},{label:"Increase Font Size",letter:"Shift + Alt + Up"},{label:"Decrease Font Size",letter:"Shift + Alt + Down"}]},doceditor:{name:"Document editor",content:[{label:"Insert",letter:"Ctrl + Insert"},{label:"Save",letter:"Ctrl + Return, Cmd + Return"},{label:"Append",letter:"Ctrl + Shift + Insert"},{label:"Duplicate",letter:"Ctrl + D"},{label:"Remove",letter:"Ctrl + Delete"}]},modals:{name:"Modal",content:[{label:"Submit",letter:"Return"},{label:"Close",letter:"Esc"},{label:"Navigate buttons",letter:"Arrow keys"},{label:"Navigate content",letter:"Tab"}]}},hotkeysFunctions:{scrollDown:function(){window.scrollBy(0,180)},scrollUp:function(){window.scrollBy(0,-180)},showHotkeysModal:function(){var a=[],b=window.arangoHelper.allHotkeys;window.modalView.show("modalHotkeys.ejs","Keyboard Shortcuts",a,b)}},buildSubNavBar:function(a){$("#subNavigationBar .bottom").html("");var b;_.each(a,function(a,c){b="",a.active&&(b+=" active"),a.disabled&&(b+=" disabled"),$("#subNavigationBar .bottom").append('"),a.disabled||$("#subNavigationBar .bottom").children().last().bind("click",function(){$("#subNavigationBar .breadcrumb").html(""),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:"#graph/"+encodeURIComponent(a)},Settings:{route:"#graph/"+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"},Indexes:{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){$("#offlinePlaceholder").is(":visible")||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,b){b?$("#content").html(''):$("#content").html('")},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}),sigma.classes.graph.addMethod("getNodeEdges",function(a){var b=this.edges(),c=[];return _.each(b,function(b){b.source!==a&&b.target!==a||c.push(b.id)}),c}),sigma.classes.graph.addMethod("getNodeEdgesCount",function(a){return this.allNeighborsCount[a]}),sigma.classes.graph.addMethod("getNodesCount",function(){return this.nodesArray.length})}catch(a){}},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.setTimeout(function(){window.URL.revokeObjectURL(f),document.body.removeChild(g)},500)})}}}(),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){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/index/?collection="+this.get("id")),contentType:"application/json",processData:!1,success:function(c){a(!1,c,b.get("id"))},error:function(c){a(!0,c,b.get("id"))}})},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.shardBy),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)}},error:function(a){b(!0,a.responseJSON.errorMessage)}})}})}(),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){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){a.email?b+=''+(a.name||a.email)+"":a.name&&(b+="contributor.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]=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)}else{var c=function(a){b.rerenderGraphs(a,!0)};b.getCoordStatHistory(c)}},this.interval))},render:function(){var a=this;this.$el.html(this.template.render({})),this.initDone||(void 0!==this.coordinators.first()?this.getServerStatistics():this.waitForCoordinators(),this.initDone=!0),this.initGraphs();var b=function(b){a.rerenderValues(b)};this.getCoordStatHistory(b)},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,b){if(this.statsEnabled){var c,d,e=this;this.formatDataForGraph(a),_.each(e.chartsOptions,function(a){d=e.returnGraphOptions(a.id),d.length>0?_.each(d,function(b,c){a.options[c].values=b}):a.options[0].values=[],c=a.options,void 0!==b&&b!==!1||c[0].values.length>0&&e.historyInit&&e.charts[a.id]&&e.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")||"corrupted"===this.model.get("status")?($(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:"corrupted"===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","Indexes"],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(),"Indexes"!==$(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,journalSize: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. Total number of copies of the data in the cluster","",!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="#77DB99",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(){var a=!1;_.each($(".documentsDropdown").first().children(),function(b){$(b).is(":visible")&&(a=!0)}),a?($("#docPureTable").height($(".centralRow").height()-210-57),$("#docPureTable .pure-table-body").css("max-height",$("#docPureTable").height()-47)):($("#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(){$(".upload-indicator").show()},hideSpinner:function(){$(".upload-indicator").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();if(""!==a||void 0!==a||null!==a){var b="query/result/download/"+btoa(JSON.stringify(a));arangoHelper.download(b)}else arangoHelper.arangoError("Document error","could not download documents")},startUpload:function(){var a=function(a,b){a?arangoHelper.arangoError("Upload",b):(this.hideImportModal(),this.resetView()), -this.hideSpinner()}.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(1),$("#exportHeader").hide();var a=this;window.setTimeout(function(){a.resize()},50)},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(1);var a=this;window.setTimeout(function(){a.resize()},50);var b;for(b in this.filters)if(this.filters.hasOwnProperty(b))return void $("#attribute_name"+b).focus()},exportCollection:function(){$("#importCollection").removeClass("activated"),$("#filterHeader").removeClass("activated"),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#exportCollection").toggleClass("activated"),this.markFilterToggle(),$("#exportHeader").slideToggle(1),$("#importHeader").hide(),$("#filterHeader").hide(),$("#editHeader").hide();var a=this;window.setTimeout(function(){a.resize()},50)},importCollection:function(){this.markFilterToggle(),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#importCollection").toggleClass("activated"),$("#exportCollection").removeClass("activated"),$("#importHeader").slideToggle(1),$("#filterHeader").hide(),$("#editHeader").hide(),$("#exportHeader").hide();var a=this;window.setTimeout(function(){a.resize()},50)},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)}),a.rerender()},addFilterItem:function(){var a=++this.filterId;$("#filterHeader").append('
    '),this.filters[a]=!0,this.checkFilterState()},filterValueKeydown:function(a){13===a.keyCode&&this.sendFilter()},checkFilterState:function(){var a=$("#filterHeader .queryline").length;if(1===a)$("#filterHeader .removeFilterItem").remove();else if(0===$("#filterHeader .queryline").first().find(".removeFilterItem").length){var b=$("#filterHeader .queryline").first().children().first().attr("id"),c=b.substr(14,b.length);$("#filterHeader .queryline").first().find(".add-filter-item").after(' ')}0===$("#filterHeader .queryline").first().find(".add-filter-item").length&&$("#filterHeader .queryline").first().find(".filterValue").after('')},removeFilterItem:function(a){var b=a.currentTarget,c=b.id.replace(/^removeFilter/,"");delete this.filters[c],delete this.restoredFilters[c],$(b.parentElement).remove(),this.checkFilterState()},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()},initialize:function(){var a=localStorage.getItem("JSONEditorMode");a&&(this.defaultMode=a)},addDocument:function(){window.App.documentsView.addDocumentModal()},storeMode:function(){var a=this;$(".type-modes").on("click",function(b){var c=$(b.currentTarget).text().toLowerCase();localStorage.setItem("JSONEditorMode",c),a.defaultMode=c})},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(),$.noty.clearQueue(),$.noty.closeAll(),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,f;this._upgrade?(c=this.mount,e=Boolean($("#new-app-teardown").prop("checked"))):c=window.arangoHelper.escapeHtml($("#new-app-mount").val()),f=Boolean($("#zip-app-islegacy").prop("checked")),this.collection.installFromZip(b.filename,c,d.bind(this),f,e)}},l=function(){if(window.modalView.modalTestAll()){var a,b,c,e,f;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 g={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(h){return}f=Boolean($("#github-app-islegacy").prop("checked")),this.collection.installFromGithub(g,c,d.bind(this),f,e)}},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())};this.collection.generate(c,a,d.bind(this),b)}},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.hash=window.location.hash.substr(0,window.location.hash.length-1)+"/"+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)}})},toggleSmartGraph:function(){var a,b=this;if($("#new-is_smart").is(":checked")===!0){for(a=0;a",""),arangoHelper.arangoError(d)}})},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.createNotificationButton("Reset display settings",this.resetDisplaySettings.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.frontendConfig.isEnterprise===!0){var l={},m=[];m.push(window.modalView.createCheckboxEntry("new-is_smart","Smart Graph",!0,"Create a Smart Graph? Edge and vertex collections will be automatically generated. They are not allowed to be present before graph creation.",!1)),m.push(window.modalView.createTextEntry("new-numberOfShards","Shards","","Number of shards the smart graph is using.","",!1,[{rule:Joi.string().allow("").optional().regex(/^[0-9]*$/),msg:"Must be a number."}])),m.push(window.modalView.createTextEntry("new-smartGraphAttribute","SmartGraph Attribute","","The attribute name that is used to smartly shard the vertices of a graph. \nEvery vertex in this Graph has to have this attribute. \nCannot be modified later.","",!1,[{rule:Joi.string(),msg:"Must be a string."}])),l.header="Smart Graph",l.content=m,window.modalView.show("modalGraphTable.ejs",b,c,e,l,void 0,this.events)}else window.modalView.show("modalGraphTable.ejs",b,c,e,void 0,void 0,this.events);if(a){$(".modal-body table").css("border-collapse","separate");var n;for($(".modal-body .spacer").remove(),n=0;n<=this.counter;n++)$("#row_fromCollections"+n).show(),$("#row_toCollections"+n).show(),$("#row_newEdgeDefinitions"+n).addClass("first"),$("#row_fromCollections"+n).addClass("middle"),$("#row_toCollections"+n).addClass("last"),$("#row_toCollections"+n).after('');$("#graphTab").hide(),$("#modal-dialog .modal-delete-confirmation").append('
    ')}},resetDisplaySettings:function(){var a=$("#editGraphName").val(),b=new window.GraphSettingsView({name:a,userConfig:window.App.userConfig});b.setDefaults(!0,!0),b.remove(),window.modalView.hide(),arangoHelper.arangoNotification("Graph","Reset successful.")},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:"#graphSettingsContent",remove:function(){return this.$el.empty().off(),this.stopListening(),this},general:{graph:{type:"divider",name:"Graph"},nodeStart:{type:"string",name:"Startnode",desc:"A valid node id. If empty, a random node will be chosen.",value:2},layout:{type:"select",name:"Layout",desc:"Different graph algorithms. No overlap is very fast (more than 5000 nodes), force is slower (less than 5000 nodes) and fruchtermann is the slowest (less than 500 nodes).",noverlap:{name:"No overlap",val:"noverlap"},force:{name:"Force",val:"force"},fruchtermann:{name:"Fruchtermann",val:"fruchtermann"}},renderer:{type:"select",name:"Renderer",desc:"Canvas enables editing, WebGL is only for displaying a graph but much faster.",canvas:{name:"Canvas",val:"canvas"},webgl:{name:"WebGL (experimental)",val:"webgl"}},depth:{desc:"Search depth, starting from your start node.",type:"number",name:"Search Depth",value:2},limit:{desc:"Limit nodes count. If empty or zero, no limit is set.",type:"number",name:"Limit",value:250}},specific:{nodes:{type:"divider",name:"Nodes"},nodeLabel:{type:"string",name:"Label",desc:"Node label. Please choose a valid and available node attribute.","default":"_key"},nodeLabelByCollection:{type:"select",name:"Add Collection Name",desc:"Append collection name to the label?",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"}},nodeColorByCollection:{type:"select",name:"Color By Collections",no:{name:"No",val:"false"},yes:{name:"Yes",val:"true"},desc:"Should nodes be colorized by their collection? If enabled, node color and node color attribute will be ignored."},nodeColor:{type:"color",name:"Color",desc:"Default node color. RGB or HEX value.","default":"#2ecc71"},nodeColorAttribute:{type:"string",name:"Color Attribute",desc:"If an attribute is given, nodes will then be colorized by the attribute. This setting ignores default node color if set."},nodeSizeByEdges:{type:"select",name:"Size By Connections",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"},desc:"Should nodes be sized by their edges count? If enabled, node sizing attribute will be ignored."},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."},edgeLabelByCollection:{type:"select",name:"Add Collection Name",desc:"Set label text by collection. If activated edge label attribute will be ignored.",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"}},edgeColorByCollection:{type:"select",name:"Color By Collections",no:{name:"No",val:"false"},yes:{name:"Yes",val:"true"},desc:"Should edges be colorized by their collection? If enabled, edge color and edge color attribute will be ignored."},edgeColor:{type:"color",name:"Color",desc:"Default edge color. RGB or HEX value.","default":"#cccccc"},edgeColorAttribute:{type:"string",name:"Color Attribute",desc:"If an attribute is given, edges will then be colorized by the attribute. This setting ignores default edge color if set."},edgeEditable:{type:"select",hide:"true",name:"Editable",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"},desc:"Should edges be editable?"},edgeType:{type:"select",name:"Type",desc:"The type of the edge",line:{name:"Line",val:"line"},arrow:{name:"Arrow",val:"arrow"},curve:{name:"Curve",val:"curve"},dotted:{name:"Dotted",val:"dotted"},dashed:{name:"Dashed",val:"dashed"},tapered:{name:"Tapered",val:"tapered"}}},template:templateEngine.createTemplate("graphSettingsView.ejs"),initialize:function(a){this.name=a.name,this.userConfig=a.userConfig,this.saveCallback=a.saveCallback,a.noDefinedGraph&&(this.noDefinedGraph=a.noDefinedGraph)},events:{"click #saveGraphSettings":"saveGraphSettings","click #restoreGraphSettings":"setDefaults","keyup #graphSettingsView input":"checkEnterKey","keyup #graphSettingsView select":"checkEnterKey",'change input[type="range"]':"saveGraphSettings",'change input[type="color"]':"checkColor","change select":"saveGraphSettings","focus #graphSettingsView input":"lastFocus","focus #graphSettingsView select":"lastFocus",'focusout #graphSettingsView input[type="text"]':"checkinput"},lastFocus:function(a){this.lastFocussed=a.currentTarget.id,this.lastFocussedValue=$(a.currentTarget).val()},checkinput:function(a){new Date-this.lastSaved>500&&a.currentTarget.id===this.lastFocussed&&this.lastFocussedValue!==$(a.currentTarget).val()&&this.saveGraphSettings()},checkEnterKey:function(a){13===a.keyCode&&this.saveGraphSettings(a)},getGraphSettings:function(a){var b=this,c=frontendConfig.db+"_"+this.name;this.userConfig.fetch({success:function(d){b.graphConfig=d.toJSON().graphs[c],a&&b.continueRender()}})},checkColor:function(){this.saveGraphSettings(null,!0)},saveGraphSettings:function(a,b,c,d,e,f){var g=this,h=function(){var a=!$("#g_nodeColor").is(":disabled"),b=!$("#g_edgeColor").is(":disabled");window.App.graphViewer.updateColors(a,b,$("#g_nodeColor").val(),$("#g_edgeColor").val())};if(this.noDefinedGraph){var i;b?h():"g_layout"===a.currentTarget.id?window.App.graphViewer.rerenderAQL($("#g_layout").val(),null):"g_nodeColorByCollection"===a.currentTarget.id?(i=$("#g_nodeColorByCollection").val(),"true"===i?window.App.graphViewer.switchNodeColorByCollection(!0):window.App.graphViewer.switchNodeColorByCollection(!1)):"g_edgeColorByCollection"===a.currentTarget.id?(i=$("#g_edgeColorByCollection").val(),"true"===i?window.App.graphViewer.switchEdgeColorByCollection(!0):window.App.graphViewer.switchEdgeColorByCollection(!1)):"g_nodeSizeByEdges"===a.currentTarget.id?(i=$("#g_nodeSizeByEdges").val(),"true"===i?window.App.graphViewer.switchNodeSizeByCollection(!0):window.App.graphViewer.switchNodeSizeByCollection(!1)):"g_edgeType"===a.currentTarget.id&&window.App.graphViewer.switchEdgeType($("#g_edgeType").val())}else{g.lastSaved=new Date;var j=frontendConfig.db+"_"+this.name,k={};if(d)k[j]=d;else{var l,m={};$("#graphSettingsView select").each(function(a,b){l=b.id,m[l.substr(2,b.id.length)]=$(b).val()}),$("#graphSettingsView input").each(function(a,b){l=b.id,m[l.substr(2,b.id.length)]=$(b).val()}),k[j]=m}c&&(k[j].nodeStart=c);var n=function(){if(window.App.graphViewer){var c;if(a){if("g_layout"===a.currentTarget.id)return void window.App.graphViewer.switchLayout($("#g_layout").val());if("g_nodeColorByCollection"===a.currentTarget.id)return c=$("#g_nodeColorByCollection").val(),void("true"===c?window.App.graphViewer.switchNodeColorByCollection(!0):$("#g_nodeColorAttribute").is(":disabled")?window.App.graphViewer.switchNodeColorByCollection(!1):window.App.graphViewer.switchNodeColorByCollection(!1,!0));if("g_edgeColorByCollection"===a.currentTarget.id)return c=$("#g_edgeColorByCollection").val(),void("true"===c?window.App.graphViewer.switchEdgeColorByCollection(!0):$("#g_nodeColorAttribute").is(":disabled")?window.App.graphViewer.switchEdgeColorByCollection(!1):window.App.graphViewer.switchEdgeColorByCollection(!1,!0))}""!==b&&void 0!==b?h():window.App.graphViewer.render(g.lastFocussed)}else e||arangoHelper.arangoNotification("Graph "+this.name,"Configuration saved.");f&&f()}.bind(this);this.userConfig.setItem("graphs",k,n)}this.handleDependencies()},setDefaults:function(a,b,c){var d={layout:"force",renderer:"canvas",depth:"2",limit:"250",nodeColor:"#2ecc71",nodeColorAttribute:"",nodeColorByCollection:"true",edgeColor:"#cccccc",edgeColorAttribute:"",edgeColorByCollection:"false",nodeLabel:"_key",edgeLabel:"",edgeType:"arrow",nodeSize:"",nodeSizeByEdges:"true",edgeEditable:"true",nodeLabelByCollection:"false",edgeLabelByCollection:"false",nodeStart:"",barnesHutOptimize:!0};a===!0?b?this.saveGraphSettings(null,null,null,d,b,c):this.saveGraphSettings(null,null,null,d):(this.saveGraphSettings(null,null,null,d,null),this.render(),window.App.graphViewer.render(this.lastFocussed))},toggle:function(){$(this.el).is(":visible")?this.hide():this.show()},show:function(){$(this.el).show("slide",{direction:"right"},250)},hide:function(){$(this.el).hide("slide",{direction:"right"},250)},render:function(){this.noDefinedGraph?this.continueRender():(this.getGraphSettings(!0),this.lastSaved=new Date)},handleDependencies:function(){"true"===$("#g_nodeSizeByEdges").val()?$("#g_nodeSize").prop("disabled",!0):$("#g_nodeSize").removeAttr("disabled"),"true"===$("#g_nodeColorByCollection").val()?($("#g_nodeColorAttribute").prop("disabled",!0),$("#g_nodeColor").prop("disabled",!0)):($("#g_nodeColorAttribute").removeAttr("disabled"),$("#g_nodeColor").removeAttr("disabled")),this.noDefinedGraph||""!==$("#g_nodeColorAttribute").val()&&$("#g_nodeColor").prop("disabled",!0),"true"===$("#g_edgeColorByCollection").val()?($("#g_edgeColorAttribute").prop("disabled",!0),$("#g_edgeColor").prop("disabled",!0)):($("#g_edgeColorAttribute").removeAttr("disabled"),$("#g_edgeColor").removeAttr("disabled")),this.noDefinedGraph||""!==$("#g_edgeColorAttribute").val()&&$("#g_edgeColor").prop("disabled",!0)},continueRender:function(){$(this.el).html(this.template.render({general:this.general,specific:this.specific})),arangoHelper.fixTooltips(".gv-tooltips","top"),this.graphConfig?_.each(this.graphConfig,function(a,b){$("#g_"+b).val(a)}):this.noDefinedGraph?this.fitSettingsAQLMode():this.setDefaults(!0),this.handleDependencies()},fitSettingsAQLMode:function(){var a=["g_nodeStart","g_depth","g_limit","g_renderer","g_nodeLabel","g_nodeLabelByCollection","g_nodeColorAttribute","g_nodeSize","g_edgeLabel","g_edgeColorAttribute","g_edgeLabelByCollection"];_.each(a,function(a){$("#"+a).parent().prev().remove(),$("#"+a).parent().remove()}),$("#saveGraphSettings").remove(),$("#restoreGraphSettings").remove(),$("#g_nodeColorByCollection").val("false"),$("#g_edgeColorByCollection").val("false"),$("#g_nodeSizeByEdges").val("false"),$("#g_edgeType").val("arrow"),$("#g_layout").val("force")}})}(),function(){"use strict";window.GraphViewer=Backbone.View.extend({el:"#content",remove:function(){return this.$el.empty().off(),this.stopListening(),this.unbind(),delete this.el,this},template:templateEngine.createTemplate("graphViewer2.ejs"),initialize:function(a){var b=this;a.id&&(this.setElement(a.id),this.graphData=a.data,this.aqlMode=!0),a.noDefinedGraph&&(this.noDefinedGraph=a.noDefinedGraph,this.graphData=a.data),this.name=a.name,this.userConfig=a.userConfig,this.documentStore=a.documentStore,void 0!==this.name&&this.collection.fetch({cache:!1,success:function(c){b.model=b.collection.findWhere({_key:a.name}).toJSON()}})},colors:{hotaru:["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],random1:["#292F36","#4ECDC4","#F7FFF7","#DD6363","#FFE66D"],jans:["rgba(166, 109, 161, 1)","rgba(64, 74, 83, 1)","rgba(90, 147, 189, 1)","rgba(153,63,0,1)","rgba(76,0,92,1)","rgba(25,25,25,1)","rgba(0,92,49,1)","rgba(43,206,72,1)","rgba(255,204,153,1)","rgba(128,128,128,1)","rgba(148,255,181,1)","rgba(143,124,0,1)","rgba(157,204,0,1)","rgba(194,0,136,1)","rgba(0,51,128,1)","rgba(255,164,5,1)","rgba(255,168,187,1)","rgba(66,102,0,1)","rgba(255,0,16,1)","rgba(94,241,242,1)","rgba(0,153,143,1)","rgba(224,255,102,1)","rgba(116,10,255,1)","rgba(153,0,0,1)","rgba(255,255,128,1)","rgba(255,255,0,1)","rgba(255,80,5,1)"],gv:["#68BDF6","#6DCE9E","#FF756E","#DE9BF9","#FB95AF","#FFD86E","#A5ABB6"]},activeNodes:[],selectedNodes:{},aqlMode:!1,events:{"click #downloadPNG":"downloadPNG","click #reloadGraph":"reloadGraph","click #settingsMenu":"toggleSettings","click #toggleForce":"toggleLayout","click #selectNodes":"toggleLasso"},cursorX:0,cursorY:0,layouting:!1,model:null,viewStates:{captureMode:!1},graphConfig:null,graphSettings:null,downloadPNG:function(){var a=parseInt($("#graph-container").width(),10);sigma.plugins.image(this.currentGraph,this.currentGraph.renderers[0],{download:!0,size:a,clip:!0,labels:!0,background:"white",zoom:!1})},resize:function(){$("#graph-container").width($(".centralContent").width()),$("#graph-container").height($(".centralRow").height()-155)},toggleSettings:function(){this.graphSettingsView.toggle()},render:function(a){this.$el.html(this.template.render({})),$("#subNavigationBar .breadcrumb").html("Graph: "+this.name),this.resize(),this.fetchGraph(a),this.initFullscreen()},initFullscreen:function(){var a=this;if(window.App.initializedFullscreen===!1||void 0===window.App.initializedFullscreen){window.App.initializedFullscreen=!0,this.isFullscreen=!1;var b=function(b){(document.webkitIsFullScreen||document.mozFullScreen||null!==document.msFullscreenElement)&&(a.isFullscreen===!1?(a.isFullscreen=!0, -$("#toggleForce").css("bottom","10px"),$("#toggleForce").css("right","10px"),$("#objectCount").css("bottom","10px"),$("#objectCount").css("left","10px"),$(".nodeInfoDiv").css("top","10px"),$(".nodeInfoDiv").css("left","10px")):(a.isFullscreen=!1,$("#toggleForce").css("bottom","40px"),$("#toggleForce").css("right","40px"),$("#objectCount").css("bottom","50px"),$("#objectCount").css("left","25px"),$(".nodeInfoDiv").css("top",""),$(".nodeInfoDiv").css("left","165px")))};document.addEventListener&&(document.addEventListener("webkitfullscreenchange",b,!1),document.addEventListener("mozfullscreenchange",b,!1),document.addEventListener("fullscreenchange",b,!1),document.addEventListener("MSFullscreenChange",b,!1))}},renderAQLPreview:function(a){this.$el.html(this.template.render({})),this.$el.find(".headerBar").remove();var b=$(".centralRow").height()-250;this.$el.find("#graph-container").css("height",b),this.graphData.modified=this.parseData(this.graphData.original,this.graphData.graphInfo);var c=!1;try{this.renderGraph(this.graphData.modified,null,!0),c=!0}catch(d){}return c},renderAQL:function(a){this.$el.html(this.template.render({})),$("#subNavigationBar .breadcrumb").html("AQL Graph"),$("#subNavigationBar .bottom").html(""),$(".queries-menu").removeClass("active"),this.resize(),this.graphData.modified=this.parseData(this.graphData.original,this.graphData.graphInfo),this.renderGraph(this.graphData.modified,null,!1),this.initFullscreen(),this.graphSettingsView=new window.GraphSettingsView({name:this.name,userConfig:void 0,saveCallback:void 0,noDefinedGraph:!0}),this.graphSettingsView.render()},killCurrentGraph:function(){for(var a in this.currentGraph.renderers)this.currentGraph.renderers[a].clear(),this.currentGraph.kill(a)},rerenderAQL:function(a,b){this.killCurrentGraph(),this.renderGraph(this.graphData.modified,null,!1,a,"canvas"),"true"===$("#g_nodeColorByCollection").val()?this.switchNodeColorByCollection(!0):$("#g_nodeColor").is(":disabled")?this.updateColors(!0,!0,null,null,!0):this.ncolor?this.updateColors(!0,!0,this.ncolor,this.ecolor):this.updateColors(!0,!0,"#2ecc71","#2ecc71"),"true"===$("#g_edgeColorByCollection").val()?this.switchEdgeColorByCollection(!0):$("#g_edgeColor").is(":disabled")?this.updateColors(!0,!0,null,null,!0):this.ecolor?this.updateColors(!0,!0,this.ncolor,this.ecolor):this.updateColors(!0,!0,"#2ecc71","#2ecc71")},buildCollectionColors:function(){var a=this;if(!a.collectionColors){a.collectionColors={};var b=0,c={},d={};_.each(this.currentGraph.graph.nodes(),function(a){c[a.id]=void 0}),_.each(a.currentGraph.graph.edges(),function(a){d[a.id]=void 0}),_.each(c,function(c,d){void 0===a.collectionColors[d.split("/")[0]]&&(a.collectionColors[d.split("/")[0]]={color:a.colors.jans[b]},b++)}),b=0,_.each(d,function(c,d){void 0===a.collectionColors[d.split("/")[0]]&&(a.collectionColors[d.split("/")[0]]={color:a.colors.jans[b]},b++)})}},switchNodeColorByCollection:function(a,b){var c=this;c.buildCollectionColors(),a?(c.currentGraph.graph.nodes().forEach(function(a){a.color=c.collectionColors[a.id.split("/")[0]].color}),c.currentGraph.refresh()):b?this.updateColors(!0,null,null,null,b):this.ncolor?this.updateColors(!0,null,this.ncolor,this.ecolor):this.updateColors(!0,null,"#2ecc71","#2ecc71")},switchEdgeColorByCollection:function(a,b){var c=this;c.buildCollectionColors(),a?(c.currentGraph.graph.edges().forEach(function(a){a.color=c.collectionColors[a.id.split("/")[0]].color}),c.currentGraph.refresh()):b?this.updateColors(!0,null,null,null,b):this.ecolor?this.updateColors(null,!0,this.ncolor,this.ecolor):this.updateColors(null,!0,"#2ecc71","#2ecc71")},buildCollectionSizes:function(){var a=this;if(!a.nodeEdgesCount){a.nodeEdgesCount={};var b={};_.each(this.currentGraph.graph.edges(),function(c){void 0===b[c.id]&&(b[c.id]=!0,void 0===a.nodeEdgesCount[c.source]?a.nodeEdgesCount[c.source]=1:a.nodeEdgesCount[c.source]+=1,void 0===a.nodeEdgesCount[c.target]?a.nodeEdgesCount[c.target]=1:a.nodeEdgesCount[c.target]+=1)})}},switchNodeSizeByCollection:function(a){var b=this;a?(b.buildCollectionSizes(),b.currentGraph.graph.nodes().forEach(function(a){a.size=b.nodeEdgesCount[a.id]})):b.currentGraph.graph.nodes().forEach(function(a){a.size=15}),b.currentGraph.refresh()},switchEdgeType:function(a){var b={nodes:this.currentGraph.graph.nodes(),edges:this.currentGraph.graph.edges(),settings:{}};this.killCurrentGraph(),this.renderGraph(b,null,!1,null,null,a)},switchLayout:function(a){var b={nodes:this.currentGraph.graph.nodes(),edges:this.currentGraph.graph.edges(),settings:{}};this.killCurrentGraph(),this.renderGraph(b,null,!1,a),"true"===$("#g_nodeColorByCollection").val()&&this.switchNodeColorByCollection(!0),"true"===$("#g_edgeColorByCollection").val()?this.switchEdgeColorByCollection(!0):this.switchEdgeColorByCollection(!1)},parseData:function(a,b){var c={},d={},e="#2ecc71",f={nodes:[],edges:[],settings:{}};if(this.ncolor&&(e=this.ncolor),"object"===b){_.each(a,function(a){a.edges&&a.vertices&&(_.each(a.edges,function(a){null!==a&&(d[a._id]={id:a._id,source:a._from,color:"#cccccc",target:a._to})}),_.each(a.vertices,function(a){null!==a&&(c[a._id]={id:a._id,label:a._key,size:.3,color:e,x:Math.random(),y:Math.random()})}))});var g=[];_.each(c,function(a){f.nodes.push(a),g.push(a.id)}),_.each(d,function(a){g.includes(a.source)&&g.includes(a.target)&&f.edges.push(a)})}else"array"===b&&(_.each(a,function(a){c[a._from]=null,c[a._to]=null,f.edges.push({id:a._id,source:a._from,color:"#cccccc",target:a._to})}),_.each(c,function(a,b){f.nodes.push({id:b,label:b,size:.3,color:e,x:Math.random(),y:Math.random()})}));return f},rerender:function(){this.fetchGraph()},fetchGraph:function(a){var b=this;$(this.el).append('
    Fetching graph data. Please wait ...


    If it`s taking too much time to draw the graph, please navigate to: Graphs View
    Click the settings icon and reset the display settings.It is possible that the graph is too big to be handled by the browser.
    ');var c=function(){var c={};b.graphConfig&&(c=_.clone(b.graphConfig),delete c.layout,delete c.edgeType,delete c.renderer),b.tmpStartNode&&(b.graphConfig?0===b.graphConfig.nodeStart.length&&(c.nodeStart=b.tmpStartNode):c.nodeStart=b.tmpStartNode),b.setupSigma(),b.fetchStarted=new Date,$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/aardvark/graph/"+encodeURIComponent(b.name)),contentType:"application/json",data:c,success:function(c){c.empty===!0?b.renderGraph(c,a):(c.settings&&c.settings.startVertex&&void 0===b.graphConfig.startNode&&void 0===b.tmpStartNode&&(b.tmpStartNode=c.settings.startVertex._id),b.fetchFinished=new Date,b.calcStart=b.fetchFinished,$("#calcText").html("Server response took "+Math.abs(b.fetchFinished.getTime()-b.fetchStarted.getTime())+" ms. Initializing graph engine. Please wait ... "),window.setTimeout(function(){b.renderGraph(c,a)},50))},error:function(a){try{var c;if(a.responseJSON.exception){c=a.responseJSON.exception;var d=a.responseJSON.exception.search("1205");if(d!==-1){var e='Starting point: '+b.graphConfig.nodeStart+" is invalid";$("#calculatingGraph").html('
    Stopped.

    '+e+'. Please choose a different start node.
    ')}else $("#calculatingGraph").html("Failed to fetch graph information.")}else c=a.responseJSON.errorMessage,$("#calculatingGraph").html("Failed to fetch graph information: "+a.responseJSON.errorMessage);arangoHelper.arangoError("Graph",c)}catch(f){}}})};void 0===b.graphConfig||null===b.graphConfig?b.userConfig.fetch({success:function(a){var d=frontendConfig.db+"_"+b.name;try{b.graphConfig=a.toJSON().graphs[d],b.getGraphSettings(c),void 0===b.graphConfig||null===b.graphConfig?(b.graphSettingsView=new window.GraphSettingsView({name:b.name,userConfig:b.userConfig,saveCallback:b.render}),b.graphSettingsView.setDefaults(!0,!0)):(b.graphSettingsView&&b.graphSettingsView.remove(),b.graphSettingsView=new window.GraphSettingsView({name:b.name,userConfig:b.userConfig,saveCallback:b.render}))}catch(e){b.getGraphSettings(c)}}}):this.getGraphSettings(c)},setupSigma:function(){if(this.graphConfig&&this.graphConfig.edgeLabel){sigma.utils.pkg("sigma.settings");var a={defaultEdgeLabelColor:"#000",defaultEdgeLabelActiveColor:"#000",defaultEdgeLabelSize:12,edgeLabelSize:"fixed",edgeLabelThreshold:1,edgeLabelSizePowRatio:1};sigma.settings=sigma.utils.extend(sigma.settings||{},a),sigma.settings.drawEdgeLabels=!0,sigma.settings.clone=!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},deleteNode:function(a,b){var c,d,e,f=this;c=b?b:$("#delete-node-attr-id").text(),d=c.split("/")[0],e=c.split("/")[1];var g=arangoHelper.databaseUrl("/_api/gharial/"+encodeURIComponent(f.name)+"/vertex/"+encodeURIComponent(c.split("/")[0])+"/"+encodeURIComponent(c.split("/")[1]));if("yes"===$("#delete-node-edges-attr").val())$.ajax({cache:!1,type:"DELETE",contentType:"application/json",url:g,success:function(a){f.currentGraph.graph.dropNode(c),f.currentGraph.refresh()},error:function(){arangoHelper.arangoError("Graph","Could not delete node.")}});else{var h=function(a){a?arangoHelper.arangoError("Graph","Could not delete node."):(f.currentGraph.graph.dropNode(c),f.currentGraph.refresh())};this.documentStore.deleteDocument(d,e,h)}window.modalView.hide()},deleteNodes:function(){var a=this;try{var b=JSON.parse($("#delete-nodes-arr-id").text());_.each(b,function(b){a.deleteNode(null,b)})}catch(c){}},deleteNodesModal:function(){var a=[];if(_.each(this.selectedNodes,function(b){a.push(b)}),0===a.length)return void arangoHelper.arangoNotification("Graph","No nodes selected.");var b=[],c=[];c.push(window.modalView.createReadOnlyEntry("delete-nodes-arr-id","Really delete nodes",JSON.stringify(a))),b.push(window.modalView.createDeleteButton("Delete",this.deleteNodes.bind(this))),window.modalView.show("modalTable.ejs","Delete nodes",b,c)},deleteNodeModal:function(a){var b=[],c=[];c.push(window.modalView.createReadOnlyEntry("delete-node-attr-id","Really delete node",a)),this.noDefinedGraph||c.push(window.modalView.createSelectEntry("delete-node-edges-attr","Also delete edges?",void 0,void 0,[{value:"yes",label:"Yes"},{value:"no",label:"No"}])),b.push(window.modalView.createDeleteButton("Delete",this.deleteNode.bind(this))),window.modalView.show("modalTable.ejs","Delete node",b,c)},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,d){b?arangoHelper.arangoError("Could not create node",d):($("#emptyGraph").remove(),a.currentGraph.graph.addNode({id:c,label:c.split("/")[1]||"",size:a.graphConfig.nodeSize||15,color:a.graphConfig.nodeColor||a.ncolor||"#2ecc71",originalColor:a.graphConfig.nodeColor||a.ncolor||"#2ecc71",x:a.addNodeX+a.currentGraph.camera.x,y:a.addNodeY+a.currentGraph.camera.y}),window.modalView.hide(),a.currentGraph.refresh(),a.cameraToNode(a.currentGraph.graph.nodes(c)))},e={};if(""!==c&&void 0!==c&&(e._key=c),this.graphSettings.isSmart){var f=$("#new-smart-key-attr").val();""!==f&&void 0!==f?e[this.graphSettings.smartGraphAttribute]=f:e[this.graphSettings.smartGraphAttribute]=null}this.collection.createNode(a.name,b,e,d)},deleteEdgeModal:function(a){var b=[],c=[];c.push(window.modalView.createReadOnlyEntry("delete-edge-attr-id","Really delete edge",a)),b.push(window.modalView.createDeleteButton("Delete",this.deleteEdge.bind(this))),window.modalView.show("modalTable.ejs","Delete edge",b,c)},deleteEdge:function(){var a=this,b=$("#delete-edge-attr-id").text(),c=b.split("/")[0],d=b.split("/")[1],e=function(c){c?arangoHelper.arangoError("Graph","Could not delete edge."):(a.currentGraph.graph.dropEdge(b),a.currentGraph.refresh())};this.documentStore.deleteDocument(c,d,e),window.modalView.hide()},addNodeModal:function(){if(0!==this.graphSettings.vertexCollections){var a=[],b=[],c=[];_.each(this.graphSettings.vertexCollections,function(a){c.push({label:a.name,value:a.name})}),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:""}])),this.graphSettings.isSmart&&b.push(window.modalView.createTextEntry("new-smart-key-attr",this.graphSettings.smartGraphAttribute+"*",void 0,"The attribute value that is used to smartly shard the vertices of a graph. \nEvery vertex in this Graph has to have this attribute. \nCannot be modified later.","Cannot be modified later.",!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,f){if(a)arangoHelper.arangoError("Could not create edge",f);else{var g={source:c,target:d,id:e,color:b.graphConfig.edgeColor||b.ecolor};"true"===b.graphConfig.edgeEditable&&(g.size=1),b.currentGraph.graph.addEdge(g),b.graphConfig&&"curve"===b.graphConfig.edgeType&&sigma.canvas.edges.autoCurve(b.currentGraph),b.currentGraph.refresh()}b.clearOldContextMenu(!0),window.modalView.hide()},g={_from:c,_to:d};""!==e&&void 0!==e&&(g._key=e),this.collection.createEdge(b.name,a,g,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 edge 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.")},updateColors:function(a,b,c,d,e){var f=frontendConfig.db+"_"+this.name,g=this;c&&(g.ncolor=c),d&&(g.ecolor=d),this.userConfig.fetch({success:function(h){if(a===!0){g.graphConfig=h.toJSON().graphs[f];try{g.currentGraph.graph.nodes().forEach(function(a){e?a.color=a.sortColor:a.color=c})}catch(i){g.graphNotInitialized=!0,g.tmpGraphArray=[a,b,c,d]}}if(b===!0)try{g.currentGraph.graph.edges().forEach(function(a){e?a.color=a.sortColor:a.color=d})}catch(j){g.graphNotInitialized=!0,g.tmpGraphArray=[a,b,c,d]}g.currentGraph&&g.currentGraph.refresh()}})},nodesContextMenuCheck:function(a){this.nodesContextEventState=a,this.openNodesDate=new Date},createContextMenu:function(a){var b=this,c=b.cursorX-50,d=b.cursorY-50;this.clearOldContextMenu();var e=function(a){var c=wheelnav,d=new c("nodeContextMenu");d.maxPercent=1,d.wheelRadius=50,d.clockwise=!1,d.colors=b.colors.hotaru,d.multiSelect=!0,d.clickModeRotate=!1,d.slicePathFunction=slicePath().DonutSlice,d.createWheel([icon.plus,icon.arrowleft2]),d.navItems[0].selected=!1,d.navItems[0].hovered=!1,d.navItems[0].navigateFunction=function(a){b.clearOldContextMenu(),b.addNodeModal()},d.navItems[1].navigateFunction=function(a){b.clearOldContextMenu()},d.navItems[0].selected=!1,d.navItems[0].hovered=!1};$("#nodeContextMenu").css("position","fixed"),$("#nodeContextMenu").css("left",c),$("#nodeContextMenu").css("top",d),$("#nodeContextMenu").width(100),$("#nodeContextMenu").height(100),e(a)},createEdgeContextMenu:function(a,b){var c=this,d=this.cursorX-165,e=this.cursorY-120;this.clearOldContextMenu();var f=function(a,b){var d=["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],e=wheelnav,f=new e("nodeContextMenu");f.maxPercent=1,f.wheelRadius=50,f.clockwise=!1,f.colors=d,f.multiSelect=!0,f.clickModeRotate=!1,f.slicePathFunction=slicePath().DonutSlice,f.createWheel([icon.edit,icon.trash]),f.navItems[0].selected=!1,f.navItems[0].hovered=!1,f.navItems[0].navigateFunction=function(a){c.clearOldContextMenu(),c.editEdge(b)},f.navItems[1].navigateFunction=function(a){c.clearOldContextMenu(),c.deleteEdgeModal(b)},f.navItems[0].selected=!1,f.navItems[0].hovered=!1};$("#nodeContextMenu").css("left",d+115),$("#nodeContextMenu").css("top",e+72),$("#nodeContextMenu").width(100),$("#nodeContextMenu").height(100),f(b,a)},createNodeContextMenu:function(a,b){var c,d,e,f=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),"renderer"===b.substr(0,8)&&"e"===b.charAt(b.length-1)&&(e=a)}),void 0===c&&void 0===d&&_.each(b.data.node,function(a,b){"read_cam"===b.substr(0,8)&&"x"===b.charAt(b.length-1)&&(c=a+$("#graph-container").width()/2),"read_cam"===b.substr(0,8)&&"y"===b.charAt(b.length-1)&&(d=a+$("#graph-container").height()/2)});var g=2.5*e;g<75&&(g=75),this.clearOldContextMenu();var h=function(a,b){var e=["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],h=wheelnav,i=new h("nodeContextMenu");i.maxPercent=1,i.wheelRadius=g,i.clockwise=!1,i.colors=e,i.multiSelect=!1,i.clickModeRotate=!1,i.sliceHoverAttr={stroke:"#fff","stroke-width":2},i.slicePathFunction=slicePath().DonutSlice,f.noDefinedGraph?i.createWheel(["imgsrc:img/gv_edit.png","imgsrc:img/gv_trash.png"]):i.createWheel(["imgsrc:img/gv_edit.png","imgsrc:img/gv_trash.png","imgsrc:img/gv_flag.png","imgsrc:img/gv_link.png","imgsrc:img/gv_expand.png"]),$("#nodeContextMenu").addClass("animated bounceIn"),window.setTimeout(function(){i.navItems[0].navigateFunction=function(a){f.clearOldContextMenu(),f.editNode(b),f.removeHelp()},i.navItems[1].navigateFunction=function(a){f.clearOldContextMenu(),f.deleteNodeModal(b),f.removeHelp()},f.noDefinedGraph||(i.navItems[2].navigateFunction=function(a){f.clearOldContextMenu(),f.setStartNode(b),f.removeHelp()},i.navItems[3].navigateFunction=function(a){f.contextState.createEdge=!0,f.contextState._from=b,f.contextState.fromX=c,f.contextState.fromY=d;var e=document.getElementsByClassName("sigma-mouse")[0];f.drawHelp("Now click destination node, or click background to cancel."),e.addEventListener("mousemove",f.drawLine.bind(this),!1),f.clearOldContextMenu(),f.removeHelp()},i.navItems[4].navigateFunction=function(a){f.clearOldContextMenu(),f.expandNode(b),f.removeHelp()});var a=["Edit the node.","Delete node."];f.noDefinedGraph||(a.push("Set as startnode."),a.push("Draw edge."),a.push("Expand the node.")),_.each(a,function(a,b){i.navItems[b].navTitle.mouseover(function(){f.drawHelp(a)}),i.navItems[b].navTitle.mouseout(function(){f.removeHelp()})}),i.navItems[0].selected=!1,i.navItems[0].hovered=!1},300)},i=$("#graph-container").offset();$("#nodeContextMenu").width(2*g),$("#nodeContextMenu").height(2*g),$("#nodeContextMenu").css("left",c+i.left-g),$("#nodeContextMenu").css("top",d+i.top-g),h(b,a)},drawHelp:function(a){null===document.getElementById("helpTooltip")?$(this.el).append('
    '+a+"
    "):$("#helpTooltip span").text(a),$("#helpTooltip").show()},removeHelp:function(){$("#helpTooltip").remove()},clearMouseCanvas:function(){var a=document.getElementsByClassName("sigma-mouse")[0],b=a.getContext("2d");b.clearRect(0,0,$(a).width(),$(a).height())},expandNode:function(a){var b=this,c={};this.graphConfig&&(c=_.clone(this.graphConfig),delete c.layout,delete c.edgeType,delete c.renderer),c.query='FOR v, e, p IN 1..1 ANY "'+a+'" GRAPH "'+b.name+'" RETURN p',$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/aardvark/graph/"+encodeURIComponent(this.name)),contentType:"application/json",data:c,success:function(c){b.checkExpand(c,a)},error:function(b){arangoHelper.arangoError("Graph","Could not expand node: "+a+".")}}),b.removeHelp()},checkExpand:function(a,b){var c,d=this,e=a.nodes,f=a.edges,g=this.currentGraph.graph.nodes(),h=0,i=0;_.each(e,function(a){c=!1,_.each(g,function(d){c===!1&&(a.id===d.id?(d.id===b&&(d.label=d.label+" (expanded)"),c=!0):c=!1)}),c===!1&&(a.originalColor=a.color,d.currentGraph.graph.addNode(a),h++,_.each(f,function(b){b.source!==a.id&&b.target!==a.id||(b.originalColor=b.color,d.currentGraph.graph.addEdge(b),i++)}))}),$("#nodesCount").text(parseInt($("#nodesCount").text(),10)+h),$("#edgesCount").text(parseInt($("#edgesCount").text(),10)+i),(h>0||i>0)&&("force"===d.algorithm?d.startLayout(!0,b):"fruchtermann"===d.algorithm?(sigma.layouts.fruchtermanReingold.start(d.currentGraph),d.currentGraph.refresh(),d.cameraToNode(b,1e3)):"noverlap"===d.algorithm&&d.startLayout(!0,b))},cameraToNode:function(a,b){var c=this;"string"==typeof a&&(a=c.currentGraph.graph.nodes(a));var d=function(a){sigma.misc.animation.camera(c.currentGraph.camera,{x:a.x,y:a.y},{duration:1e3})};b?window.setTimeout(function(){d(a)},b):d(a)},drawLine:function(a){var b=window.App.graphViewer.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.strokeStyle=this.newEdgeColor,h.stroke()}},getGraphSettings:function(a){var b=this;this.userConfig.fetch({success:function(c){var d=frontendConfig.db+"_"+b.name;b.graphConfig=c.toJSON().graphs[d],b.graphSettingsView&&b.graphSettingsView.remove(),b.graphSettingsView=new window.GraphSettingsView({name:b.name,userConfig:b.userConfig,saveCallback:b.render});var e=function(){b.graphSettingsView.render(),a&&a(b.graphConfig)};void 0===b.graphConfig?(b.graphSettingsView.setDefaults(!0,!0),b.userConfig.fetch({success:function(a){b.graphConfig=a.toJSON().graphs[d],e()}})):e()}})},setStartNode:function(a){this.graphConfig.nodeStart=a,this.graphSettingsView.saveGraphSettings(void 0,void 0,a)},editNode:function(a){var b=function(a,b){};arangoHelper.openDocEditor(a,"doc",b)},editEdge:function(a){var b=function(){};arangoHelper.openDocEditor(a,"edge",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},initializeGraph:function(a,b){a.refresh()},renderGraph:function(a,b,c,d,e,f){var g=this;this.graphSettings=a.settings;var h="#2ecc71";if(g.ncolor&&(h=g.ncolor),a.edges&&a.nodes){0===a.nodes.length&&0===a.edges.length&&a.nodes.push({id:a.settings.startVertex._id,label:a.settings.startVertex._key,size:10,color:h,x:Math.random(),y:Math.random()});var i="position: absolute; left: 25px; bottom: 50px;";this.aqlMode||$("#graph-container").append('
    '+a.nodes.length+' nodes'+a.edges.length+" edges
    ")}this.Sigma=sigma,d?g.algorithm=d:g.algorithm="force",e?g.renderer=e:g.renderer="canvas",this.graphConfig&&(this.graphConfig.layout&&(d||(g.algorithm=this.graphConfig.layout)),this.graphConfig.renderer&&(e||(g.renderer=this.graphConfig.renderer))),"canvas"===g.renderer&&(g.isEditable=!0);var j={scalingMode:"inside",borderSize:3,defaultNodeBorderColor:"#8c8c8c",doubleClickEnabled:!1,minNodeSize:5,labelThreshold:9,maxNodeSize:15,batchEdgesDrawing:!0,minEdgeSize:1,maxEdgeSize:1,enableEdgeHovering:!0,edgeHoverColor:"#8c8c8c",defaultEdgeHoverColor:"#8c8c8c",defaultEdgeType:"arrow",edgeHoverSizeRatio:2.5,edgeHoverExtremities:!0,nodesPowRatio:.5,autoRescale:!0,mouseEnabled:!0,touchEnabled:!0,approximateLabelWidth:!0,font:"Roboto"};j.nodeHaloColor="rgba(146,197,192, 0.8)",j.nodeHaloStroke=!1,j.nodeHaloStrokeColor="#000",j.nodeHaloStrokeWidth=0,j.nodeHaloSize=25,j.nodeHaloClustering=!1,j.nodeHaloClusteringMaxRadius=1e3,j.edgeHaloColor="#fff",j.edgeHaloSize=10,j.drawHalo=!0,"canvas"===g.renderer&&(j.autoCurveSortByDirection=!0),a.nodes&&a.nodes.length>250&&(j.hideEdgesOnMove=!0),this.graphConfig&&this.graphConfig.edgeType&&(j.defaultEdgeType=this.graphConfig.edgeType),f&&(j.defaultEdgeType=f),"arrow"===j.defaultEdgeType&&(j.minArrowSize=7),c&&(g.renderer="canvas",a.nodes.length<500?g.algorithm="fruchtermann":j.scalingMode="outside",j.drawEdgeLabels=!1,j.minNodeSize=2,j.maxNodeSize=8),"webgl"===g.renderer&&(j.enableEdgeHovering=!1);var k=new this.Sigma({graph:a,container:"graph-container",renderer:{container:document.getElementById("graph-container"),type:g.renderer},settings:j});if(this.currentGraph=k,this.aqlMode||sigma.plugins.fullScreen({container:"graph-container",btnId:"graph-fullscreen-btn"}),k.graph.nodes().forEach(function(a){a.originalColor=a.color}),k.graph.edges().forEach(function(a){a.originalColor=a.color}),"noverlap"===g.algorithm){var l=k.configNoverlap({nodeMargin:.1,scaleNodes:1.05,gridSize:75,easing:"quadraticInOut",duration:1500});l.bind("start stop interpolate",function(a){"start"===a.type,"interpolate"===a.type})}else if("fruchtermann"===g.algorithm){var m=sigma.layouts.fruchtermanReingold.configure(k,{iterations:100,easing:"quadraticInOut",duration:1500});m.bind("start stop interpolate",function(a){})}if(!g.aqlMode){var n=function(a,b){if($(".nodeInfoDiv").remove(),g.contextState.createEdge===!1&&window.location.hash.indexOf("graph")>-1){var c=function(a,b,c){if(a)g.currentGraph.graph.dropNode(c),g.currentGraph.refresh();else{var d="";d+='ID '+b._id+"",Object.keys(b).length>3&&(d+='ATTRIBUTES '),_.each(b,function(a,b){"_key"!==b&&"_id"!==b&&"_rev"!==b&&"_from"!==b&&"_to"!==b&&(d+=''+b+"")});var e='";$("#graph-container").append(e),g.isFullscreen&&($(".nodeInfoDiv").css("top","10px"),$(".nodeInfoDiv").css("left","10px")),$("#nodeInfoDiv").fadeIn("slow")}};b?g.documentStore.getDocument(a.data.node.id.split("/")[0],a.data.node.id.split("/")[1],c):g.documentStore.getDocument(a.data.edge.id.split("/")[0],a.data.edge.id.split("/")[1],c)}};k.bind("clickNode",function(a){if(g.contextState.createEdge===!0){g.clearMouseCanvas(),g.removeHelp(),g.contextState._to=a.data.node.id;var b=g.contextState._from.split("/")[0],c=g.contextState._to.split("/")[0],d=g.getEdgeDefinitionCollections(b,c);0===d.length?arangoHelper.arangoNotification("Graph","No valid edge definition found."):(g.addEdgeModal(d,g.contextState._from,g.contextState._to),g.clearOldContextMenu(!1))}else g.dragging||(g.contextState.createEdge===!0?g.newEdgeColor="#ff0000":g.newEdgeColor="#000000","canvas"===g.renderer&&g.currentGraph.renderers[0].halo({nodes:g.currentGraph.graph.nodes(),nodeHaloColor:"#DF0101",nodeHaloSize:100}),n(a,!0),g.activeNodes=[a.data.node],"canvas"===g.renderer&&k.renderers[0].halo({nodes:[a.data.node]}),g.createNodeContextMenu(a.data.node.id,a))}),g.noDefinedGraph?k.bind("clickStage",function(a){g.clearOldContextMenu(!0),g.clearMouseCanvas(),g.removeHelp()}):k.bind("clickStage",function(a){a.data.captor.isDragging?(g.clearOldContextMenu(!0),g.clearMouseCanvas()):g.contextState.createEdge===!0?(g.clearOldContextMenu(!0),g.clearMouseCanvas(),g.removeHelp()):($("#nodeContextMenu").is(":visible")?(g.clearOldContextMenu(!0),g.clearMouseCanvas()):(g.addNodeX=a.data.captor.x,g.addNodeY=a.data.captor.y,g.createContextMenu(a),g.clearMouseCanvas()),k.renderers[0].halo({nodes:g.activeNodes}))})}if("canvas"===g.renderer){this.graphConfig&&"curve"===this.graphConfig.edgeType&&sigma.canvas.edges.autoCurve(k),k.bind("clickEdge",function(a){n(a,!1)}),k.renderers[0].bind("render",function(a){k.renderers[0].halo({nodes:g.activeNodes})});var o=function(){g.nodeHighlighted=!1,g.activeNodes=[],k.graph.nodes().forEach(function(a){a.color=a.originalColor}),k.graph.edges().forEach(function(a){a.color=a.originalColor}),$(".nodeInfoDiv").remove(),k.refresh({skipIndexation:!0})};k.bind("rightClickStage",function(a){g.nodeHighlighted="undefinedid",o()}),k.bind("rightClickNode",function(a){if(g.nodeHighlighted!==a.data.node.id){var b=a.data.node.id,c=k.graph.neighbors(b);c[b]=a.data.node,k.graph.nodes().forEach(function(a){c[a.id]?a.color=a.originalColor:a.color="#eee"}),k.graph.edges().forEach(function(a){c[a.source]&&c[a.target]?a.color="rgb(64, 74, 83)":a.color="#eee"}),g.nodeHighlighted=!0,k.refresh({skipIndexation:!0})}else o()}),this.graphConfig&&this.graphConfig.edgeEditable&&k.bind("clickEdge",function(a){var b=a.data.edge.id;g.createEdgeContextMenu(b,a)})}if("noverlap"===g.algorithm)k.startNoverlap();else if("force"===g.algorithm){var p="color: rgb(64, 74, 83); cursor: pointer; position: absolute; right: 30px; bottom: 40px; z-index: 9999;";g.aqlMode&&(p="color: rgb(64, 74, 83); cursor: pointer; position: absolute; right: 30px; margin-top: 10px; margin-right: -15px"),$("#graph-container").after('
    Stop layout
    '),g.startLayout();var q=250,r=500;a.nodes&&(q=a.nodes.length,c?q<250?q=250:q+=r:(q<=250&&(q=500),q+=r)),a.empty&&arangoHelper.arangoNotification("Graph","Your graph is empty. Click inside the white window to create your first node."),window.setTimeout(function(){g.stopLayout()},q)}else"fruchtermann"===g.algorithm&&sigma.layouts.fruchtermanReingold.start(k);"force"!==g.algorithm&&g.reInitDragListener();var s=document.getElementsByClassName("sigma-mouse")[0];s.addEventListener("mousemove",g.trackCursorPosition.bind(this),!1),b&&($("#"+b).focus(),$("#graphSettingsContent").animate({scrollTop:$("#"+b).offset().top},2e3)),$("#calculatingGraph").fadeOut("slow"),c||g.graphConfig&&"false"===g.graphConfig.nodeSizeByEdges,g.calcFinished=new Date,a.empty===!0&&$(".sigma-background").before('The graph is empty. Please right-click to add a node.'),g.graphNotInitialized===!0&&(g.updateColors(g.tmpGraphArray),g.graphNotInitialized=!1,g.tmpGraphArray=[]),"force"===g.algorithm?$("#toggleForce").fadeIn("fast"):$("#toggleForce").fadeOut("fast")},reInitDragListener:function(){var a=this;void 0!==this.dragListener&&(sigma.plugins.killDragNodes(this.currentGraph),this.dragListener={}),this.dragListener=sigma.plugins.dragNodes(this.currentGraph,this.currentGraph.renderers[0]),this.dragListener.bind("drag",function(b){a.dragging=!0}),this.dragListener.bind("drop",function(b){window.setTimeout(function(){a.dragging=!1},400)})},keyUpFunction:function(a){var b=this;switch(a.keyCode){case 76:a.altKey&&b.toggleLasso(); -}},toggleLayout:function(){this.layouting?this.stopLayout():this.startLayout()},startLayout:function(a,b){var c=this;this.currentGraph.settings("drawLabels",!1),this.currentGraph.settings("drawEdgeLabels",!1),sigma.plugins.killDragNodes(this.currentGraph),a===!0&&(this.currentGraph.killForceAtlas2(),window.setTimeout(function(){c.stopLayout(),b&&c.currentGraph.refresh({skipIndexation:!0})},500)),$("#toggleForce .fa").removeClass("fa-play").addClass("fa-pause"),$("#toggleForce span").html("Stop layout"),this.layouting=!0,this.aqlMode?this.currentGraph.startForceAtlas2({worker:!0}):this.currentGraph.startForceAtlas2({worker:!0})},stopLayout:function(){$("#toggleForce .fa").removeClass("fa-pause").addClass("fa-play"),$("#toggleForce span").html("Resume layout"),this.layouting=!1,this.currentGraph.stopForceAtlas2(),this.currentGraph.settings("drawLabels",!0),this.currentGraph.settings("drawEdgeLabels",!0),this.currentGraph.refresh({skipIndexation:!0}),this.reInitDragListener()}})}(),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,"Indexes"),this.getIndex()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},getIndex:function(){var a=function(a,b,c){a?window.arangoHelper.arangoError("Index",b.errorMessage):this.renderIndex(b,c)}.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(),"Indexes"!==$(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,b){this.index=a;var c=function(a,c){if(a)arangoHelper.arangoError("Jobs","Could not read pending jobs.");else{var d=function(a,b,c){a?404===b.responseJSON.code?arangoHelper.deleteAardvarkJob(c):400===b.responseJSON.code?(arangoHelper.arangoError("Index creation failed",b.responseJSON.errorMessage),arangoHelper.deleteAardvarkJob(c)):204===b.responseJSON.code&&arangoHelper.arangoMessage("Index","There is at least one new index in the queue or in the process of being created."):arangoHelper.deleteAardvarkJob(c)};_.each(c,function(a){a.collection===b&&$.ajax({type:"PUT",cache:!1,url:arangoHelper.databaseUrl("/_api/job/"+a.id),contentType:"application/json",success:function(b,c,e){d(!1,b,a.id)},error:function(b){d(!0,b,a.id)}})})}};arangoHelper.getAardvarkJobs(c);var d="collectionInfoTh modal-text";if(this.index){var e="",f="";_.each(this.index.indexes,function(a){f="primary"===a.type||"edge"===a.type?'':'',void 0!==a.fields&&(e=a.fields.join(", "));var b=a.id.indexOf("/"),c=a.id.substr(b+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(""+c+""+a.type+""+a.unique+""+h+""+g+""+e+""+f+"")})}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(),b.checkVersion(),this},checkVersion:function(){var a=this;window.setTimeout(function(){var b,c=document.getElementById("loginSVG"),d=c.contentDocument;void 0!==frontendConfig.isEnterprise?(b=frontendConfig.isEnterprise?d.getElementById("logo-enterprise"):d.getElementById("logo-community"),b.setAttribute("visibility","visible")):a.checkVersion()},150)},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),d&&(g.checked=d),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()})),a.resize(),window.frontendConfig.isEnterprise===!0?($("#ArangoDBLogo").after(''),$("#enterpriseLabel").fadeIn("slow")):($("#ArangoDBLogo").after(''),$("#communityLabel").fadeIn("slow"),$(".enterprise-menu").show()),this},resize:function(){var a=$(window).height()-$(".subMenuEntries").first().height();$("#navigationBar").css("min-height",a),$("#navigationBar").css("height",a)},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;"enterprise"!==c&&($(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){$("#subNavigationBar .breadcrumb").html(""),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");return"enterprise"===b?void window.open("https://www.arangodb.com/download-arangodb-enterprise/","_blank"):void(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){$("#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:1e4,knownServers:[],events:{"click #nodesContent .coords-nodes .pure-table-row":"navigateToNode","click #addCoord":"addCoord","click #removeCoord":"removeCoord","click #addDBs":"addDBs","click #removeDBs":"removeDBs","click .abortClusterPlan":"abortClusterPlanModal","keyup #plannedCoords":"checkKey","keyup #plannedDBs":"checkKey"},checkKey:function(a){if(13===a.keyCode){var b=this,c=function(a){var c;if("plannedCoords"===a.target.id)try{c=JSON.parse($("#plannedCoords").val()),"number"==typeof c?(window.modalView.hide(),b.setCoordSize(c)):arangoHelper.arangoError("Error","Invalid value. Must be a number.")}catch(a){arangoHelper.arangoError("Error","Invalid value. Must be a number.")}else if("plannedDBs"===a.target.id)try{c=JSON.parse($("#plannedCoords").val()),"number"==typeof c?(window.modalView.hide(),b.setDBsSize(c)):arangoHelper.arangoError("Error","Invalid value. Must be a number.")}catch(a){arangoHelper.arangoError("Error","Invalid value. Must be a number.")}};this.changePlanModal(c.bind(null,a))}},changePlanModal:function(a,b){var c=[],d=[];d.push(window.modalView.createReadOnlyEntry("plan-confirm-button","Caution","You are changing the cluster plan. Continue?",void 0,void 0,!1,/[<>&'"]/)),c.push(window.modalView.createSuccessButton("Yes",a.bind(this,b))),window.modalView.show("modalTable.ejs","Modify Cluster Size",c,d)},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){if("#nodes"===window.location.hash){var b=this;$("#content").is(":empty")&&arangoHelper.renderEmpty("Please wait. Requesting cluster information...","fa fa-spin fa-circle-o-notch"),a!==!1&&arangoHelper.buildNodesSubNav("Overview");var c=function(a){$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",success:function(c){"#nodes"===window.location.hash&&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){"#nodes"===window.location.hash&&c(a.Health)},error:function(){"#nodes"===window.location.hash&&arangoHelper.arangoError("Cluster","Could not fetch cluster information"); -}})}},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.")}})},abortClusterPlanModal:function(){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry("plan-abort-button","Caution","You are aborting the planned cluster plan. All pending servers are going to be removed. Continue?",void 0,void 0,!1,/[<>&'"]/)),a.push(window.modalView.createSuccessButton("Yes",this.abortClusterPlan.bind(this))),window.modalView.show("modalTable.ejs","Modify Cluster Size",a,b)},abortClusterPlan:function(){window.modalView.hide();try{var a=JSON.parse($("#infoCoords > .positive > span").text()),b=JSON.parse($("#infoDBs > .positive > span").text());this.setCoordSize(a),this.setDBsSize(b)}catch(c){console.log(c),arangoHelper.arangoError("Plan","Could not abort Cluster Plan")}},renderCounts:function(a,b){var c=this,d=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"))},e=function(a){var e=0,f=0,g=0,h=0,i=0,j=0;_.each(a,function(a){"Coordinator"===a.Role?"GOOD"===a.Status?f++:e++:"DBServer"===a.Role&&("GOOD"===a.Status?h++:i++)}),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){g=Math.abs(f+e-a.numberOfCoordinators),j=Math.abs(h+i-a.numberOfDBServers),b?b({coordsPending:g,coordsOk:f,coordsErrors:e,dbsPending:j,dbsOk:h,dbsErrors:i}):(d("#infoDBs",h,j,i),d("#infoCoords",f,g,e)),c.isPlanFinished()||($(".scaleGroup").addClass("no-hover"),$("#plannedCoords").attr("disabled","disabled"),$("#plannedDBs").attr("disabled","disabled"))}})};$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,success:function(a){e(a.Health)}})},isPlanFinished:function(){var a;return a=!($("#infoDBs").find(".warning").length>0)&&!($("#infoCoords").find(".warning").length>0)},addCoord:function(){var a=function(){window.modalView.hide(),this.setCoordSize(this.readNumberFromID("#plannedCoords",!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},removeCoord:function(){var a=function(){window.modalView.hide(),this.setCoordSize(this.readNumberFromID("#plannedCoords",!1,!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},addDBs:function(){var a=function(){window.modalView.hide(),this.setDBsSize(this.readNumberFromID("#plannedDBs",!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},removeDBs:function(){var a=function(){window.modalView.hide(),this.setDBsSize(this.readNumberFromID("#plannedDBs",!1,!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},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=5e3,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,renderComplete:!1,customQueries:[],cachedQueries:{},graphViewers:[],queries:[],state:{lastQuery:{query:void 0,bindParam:void 0}},graphs:[],settings:{aqlWidth:void 0},currentQuery:{},initDone:!1,bindParamRegExp:/@(@?\w+\d*)/,bindParamTableObj:{},bindParamMode:"table",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 span":"switchAce","click .outputEditorWrapper .closeResult":"closeResult","click #toggleQueries1":"toggleQueries","click #toggleQueries2":"toggleQueries","click #createNewQuery":"createAQL","click #saveCurrentQuery":"addAQL","click #updateCurrentQuery":"updateAQL","click #exportQuery":"exportCustomQueries","click #importQuery":"openImportDialog","click #removeResults":"removeResults","click #querySpotlight":"showSpotlight","click #deleteQuery":"selectAndDeleteQueryFromTable","click #explQuery":"selectAndExplainQueryFromTable","click .closeProfile":"closeProfile","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)},closeProfile:function(a){var b=$(a.currentTarget).parent().attr("counter");_.each($(".queryProfile"),function(a){$(a).attr("counter")===b&&$(a).fadeOut("fast").remove()})},toggleBindParams:function(){this.allowParamToggle?($("#bindParamEditor").toggle(),$("#bindParamAceEditor").toggle(),"JSON"===$("#switchTypes").text()?(this.bindParamMode="json",$("#switchTypes").text("Table"),this.updateQueryTable(),this.bindParamAceEditor.setValue(JSON.stringify(this.bindParamTableObj,null,"\t"),1),this.deselect(this.bindParamAceEditor)):(this.bindParamMode="table",$("#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(){this.cachedQueries={},$(".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)):($("#updateCurrentQuery").hide(),void 0===this.settings.aqlWidth?$(".aqlEditorWrapper").first().width(.33*$(window).width()):$(".aqlEditorWrapper").first().width(this.settings.aqlWidth),"undefined"!==localStorage.getItem("lastOpenQuery")&&$("#updateCurrentQuery").show()):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","createNewQuery","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();var e=localStorage.getItem("lastOpenQuery");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(),this.currentQuery=this.collection.findWhere({name:c}),this.currentQuery&&localStorage.setItem("lastOpenQuery",this.currentQuery.get("name")),$("#updateCurrentQuery").show(),$("#lastQuery").remove(),e!==c&&($("#queryContent .arangoToolbarTop .pull-left").append('Previous Query'),this.breadcrumb(c)),$("#lastQuery").hide().fadeIn(500).on("click",function(){$("#updateCurrentQuery").hide(),d.aqlEditor.setValue(d.state.lastQuery.query,1),d.fillBindParamTable(d.state.lastQuery.bindParam),d.updateBindParams(),d.collection.each(function(a){a=a.toJSON(),a.value===d.state.lastQuery.query?d.breadcrumb(a.name):d.breadcrumb()}),$("#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"),c=a.currentTarget;if(!$(c).hasClass("disabled")){_.each($(c).parent().children(),function(a){$(a).removeClass("active")});var d=$(c).attr("val");$(c).addClass("active"),$(c).text(d.charAt(0).toUpperCase()+d.slice(1)),"JSON"===d?($("#outputEditor"+b).show(),$("#outputGraph"+b).hide(),$("#outputTable"+b).hide()):"Table"===d?($("#outputTable"+b).show(),$("#outputGraph"+b).hide(),$("#outputEditor"+b).hide()):"Graph"===d&&($("#outputGraph"+b).show(),$("#outputTable"+b).hide(),$("#outputEditor"+b).hide()),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.lastSentQueryString=this.aqlEditor.getValue(),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("false"!==e&&($("#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)):(d.cachedQueries[c]=b,a.setValue(b.msg,1),d.deselect(a),$.noty.clearQueue(),$.noty.closeAll(),d.handleResult(c),$(".centralRow").animate({scrollTop:$("#queryContent").height()},"fast")),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(){if(this.renderComplete===!1){var a=this.getCachedQuery(),b=this;if(null!==a&&void 0!==a&&""!==a){this.aqlEditor.setValue(a.query,1);var c=localStorage.getItem("lastOpenQuery");if(void 0!==c&&"undefined"!==c)try{var d=this.collection.findWhere({name:c}).toJSON();d.value===a.query&&(b.breadcrumb(c),$("#updateCurrentQuery").show())}catch(e){}if(this.aqlEditor.getSession().setUndoManager(new ace.UndoManager),""!==a.parameter||void 0!==a)try{b.bindParamTableObj=JSON.parse(a.parameter);var f;_.each($("#arangoBindParamTable input"),function(a){f=$(a).attr("name"),"object"==typeof b.bindParamTableObj[f]?$(a).val(JSON.parse(b.bindParamTableObj[f])):$(a).val(b.bindParamTableObj[f])}),b.setCachedQuery(b.aqlEditor.getValue(),JSON.stringify(b.bindParamTableObj))}catch(e){}}this.renderComplete=!0}},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(""!==a&&"undefined"!==Storage){var c={query:a,parameter:b};this.currentQuery=c,localStorage.setItem("cachedQuery",JSON.stringify(c))}},closeResult:function(a){var b=this,c=$("#"+$(a.currentTarget).attr("element")).parent(),d=$(c).attr("id"),e=d.substring(d.length-1,d.length-0);delete this.cachedQueries[e],$(c).hide("fast",function(){$(c).remove(),0===$(".outputEditorWrapper").length&&(b.cachedQueries={},$("#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.refreshAQL(),this.renderComplete=!1,this.$el.html(this.template.render({})),this.afterRender(),this.initDone||(this.settings.aqlWidth=$(".aqlEditorWrapper").width()),"json"===this.bindParamMode&&this.toggleBindParams(),this.initDone=!0,this.renderBindParamTable(!0),this.restoreCachedQueries()},cleanupGraphs:function(){_.each(this.graphViewers,function(a){a.killCurrentGraph(),a.remove()}),$("canvas").remove(),this.graphViewers=null,this.graphViewers=[]},afterRender:function(){var a=this;this.initAce(),this.initTables(),this.fillSelectBoxes(),this.makeResizeable(),this.initQueryImport(),$(".inputEditorWrapper").height($(window).height()/10*5+25),window.setTimeout(function(){a.resize()},10),a.deselect(a.aqlEditor)},restoreCachedQueries:function(){var a=this;Object.keys(this.cachedQueries).length>0&&_.each(this.cachedQueries,function(b,c){a.renderQueryResultBox(c,null,!0),a.renderQueryResult(b,c,!0),a.fillSentQueryValue(c),b.sentQuery&&a.bindQueryResultButtons(null,c)})},fillSentQueryValue:function(a){var b=ace.edit("sentQueryEditor"+a);b.setValue(this.cachedQueries[a].sentQuery,1)},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.');var c=localStorage.getItem("lastOpenQuery"),d=this.collection.findWhere({name:c});try{d=d.toJSON()}catch(e){}if(d){var f;_.each($("#arangoBindParamTable input"),function(a){f=$(a).attr("name"),_.each(d.parameter,function(b,c){c===f&&$(a).val(b)})})}},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(){if(a.aqlEditor.getValue().length<1&&Object.keys(a.bindParamTableObj).length>0&&(a.lastCachedBindParameter=a.bindParamTableObj),a.checkForNewBindParams(),a.renderBindParamTable(),a.parseQuery(a.aqlEditor.getValue()).bindParams.length>0){var b=[];if(_.each(a.parseQuery(a.aqlEditor.getValue()).bindParams,function(c){if(void 0!==$("input[name='"+c+"']")&&$("input[name='"+c+"']").length>0&&0===$("input[name='"+c+"']").val().length&&a.lastCachedBindParameter){var d=$("input[name='"+c+"']").val();a.lastCachedBindParameter[c]&&a.lastCachedBindParameter[c]!==d&&b.push(c)}}),b.length>0){var c={};_.each(b,function(b,d){c[b]=a.lastCachedBindParameter[b]}),a.bindParamTableObj=c,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()});var b=function(a){_.each($(".outputEditors"),function(b){var c=$(b).children().first().attr("id");c=c.replace("Wrapper","");var d=ace.edit(c);d.setFontSize(a)})},c=[this.aqlEditor,this.bindParamAceEditor];_.each(c,function(c){c.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"}),c.commands.addCommand({name:"increaseFontSize",bindKey:{win:"Shift-Alt-Up",linux:"Shift-Alt-Up",mac:"Shift-Alt-Up"},exec:function(c){var d=parseInt(a.aqlEditor.getFontSize().match(/\d+/)[0],10)+1;d+="pt",a.aqlEditor.setFontSize(d),b(d)},multiSelectAction:"forEach"}),c.commands.addCommand({name:"decreaseFontSize",bindKey:{win:"Shift-Alt-Down",linux:"Shift-Alt-Down",mac:"Shift-Alt-Down"},exec:function(c){var d=parseInt(a.aqlEditor.getFontSize().match(/\d+/)[0],10)-1;d+="pt",a.aqlEditor.setFontSize(d),b(d)},multiSelectAction:"forEach"}),c.commands.addCommand({name:"executeQuery",bindKey:{win:"Ctrl-Return",mac:"Command-Return",linux:"Ctrl-Return"},exec:function(){a.executeQuery()}}),c.commands.addCommand({name:"executeSelectedQuery",bindKey:{win:"Ctrl-Alt-Return",mac:"Command-Alt-Return",linux:"Ctrl-Alt-Return"},exec:function(){a.executeQuery(void 0,!0)}}),c.commands.addCommand({name:"saveQuery",bindKey:{win:"Ctrl-Shift-S",mac:"Command-Shift-S",linux:"Ctrl-Shift-S"},exec:function(){a.addAQL()}}),c.commands.addCommand({name:"explainQuery",bindKey:{win:"Ctrl-Shift-Return",mac:"Command-Shift-Return",linux:"Ctrl-Shift-Return"},exec:function(){a.explainQuery()}}),c.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"}),c.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)},updateAQL:function(){var a=this.aqlEditor.getValue(),b=$("#lastQueryName").html(),c=this.collection.findWhere({name:b});if(c){c.set("value",a),c.set("parameter",this.bindParamTableObj);var d=function(a){if(a)arangoHelper.arangoError("Query","Could not save query");else{var c=this;arangoHelper.arangoNotification("Saved query",'"'+b+'"'),this.collection.fetch({success:function(){c.updateLocalQueries()}})}}.bind(this);this.collection.saveCollectionQueries(d)}this.refreshAQL(!0)},createAQL:function(){localStorage.setItem("lastOpenQuery",void 0),this.aqlEditor.setValue(""),this.refreshAQL(!0),this.breadcrumb(),$("#updateCurrentQuery").hide()},createCustomQueryModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("new-query-name","Name","",void 0,void 0,!1,[{rule:Joi.string().required(),msg:"No query name given."}])),a.push(window.modalView.createSuccessButton("Save",this.saveAQL.bind(this))),window.modalView.show("modalTable.ejs","Save Query",a,b,void 0,void 0,{"keyup #new-query-name":this.listenKey.bind(this)})},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 c=this;this.collection.fetch({success:function(){c.updateLocalQueries(),$("#updateCurrentQuery").show(),c.breadcrumb(b)}})}}.bind(this);this.collection.saveCollectionQueries(g),window.modalView.hide()}},breadcrumb:function(a){window.setTimeout(function(){a?$("#subNavigationBar .breadcrumb").html('Query: '+a+""):$("#subNavigationBar .breadcrumb").html("")},50)},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(a,b){this.verifyQueryAndParams()||($("#outputEditorWrapper"+this.outputCounter).hide(),$("#outputEditorWrapper"+this.outputCounter).show("fast"),this.lastSentQueryString=this.aqlEditor.getValue(),this.renderQueryResultBox(this.outputCounter,b))},renderQueryResultBox:function(a,b,c){this.$(this.outputDiv).prepend(this.outputTemplate.render({counter:a,type:"Query"}));var d=ace.edit("outputEditor"+a),e=ace.edit("sentQueryEditor"+a),f=ace.edit("sentBindParamEditor"+a);e.getSession().setMode("ace/mode/aql"),e.setOption("vScrollBarAlwaysVisible",!0),e.setFontSize("13px"),e.setReadOnly(!0),this.setEditorAutoHeight(e),d.setFontSize("13px"),d.getSession().setMode("ace/mode/json"),d.setReadOnly(!0),d.setOption("vScrollBarAlwaysVisible",!0),d.setShowPrintMargin(!1),this.setEditorAutoHeight(d),f.setValue(JSON.stringify(this.bindParamTableObj),1),f.setOption("vScrollBarAlwaysVisible",!0),f.getSession().setMode("ace/mode/json"),f.setReadOnly(!0),this.setEditorAutoHeight(f),c||(this.fillResult(a,b),this.outputCounter++)},readQueryData:function(a,b){var c=$("#querySize"),d={id:"currentFrontendQuery"};if(a?d.query=this.aqlEditor.getSelectedText():d.query=this.aqlEditor.getValue(),0===d.query.length)a?arangoHelper.arangoError("Query","Your query selection is empty!"):arangoHelper.arangoError("Query","Your query is empty!"),d=!1;else{"all"===c.val()?d.batchSize=1e6:d.batchSize=parseInt(c.val(),10);var e={};Object.keys(this.bindParamTableObj).length>0&&(_.each(this.bindParamTableObj,function(a,b){d.query.indexOf(b)>-1&&(e[b]=a)}),d.bindVars=this.bindParamTableObj),Object.keys(e).length>0&&(d.bindVars=e),b&&(d.options={profile:!0})}return JSON.stringify(d)},fillResult:function(a,b){var c=this,d=this.readQueryData(b,!0);if("false"!==d&&d){var e=ace.edit("sentQueryEditor"+a);e.setValue(c.aqlEditor.getValue(),1),$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),headers:{"x-arango-async":"store"},data:d,contentType:"application/json",processData:!1,success:function(b,d,e){e.getResponseHeader("x-arango-async-id")&&c.queryCallbackFunction(e.getResponseHeader("x-arango-async-id"),a),$.noty.clearQueue(),$.noty.closeAll(),c.handleResult(a)},error:function(b){try{var d=JSON.parse(b.responseText);arangoHelper.arangoError("["+d.errorNum+"]",d.errorMessage)}catch(e){arangoHelper.arangoError("Query error","ERROR")}c.handleResult(a)}})}},handleResult:function(){var a=this;window.progressView.hide(),$("#removeResults").show(),window.setTimeout(function(){a.aqlEditor.focus()},300)},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()},warningsFunc:function(a,b){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)},renderQueryResult:function(a,b,c){var d=this;if("#queries"===window.location.hash){var e,f=ace.edit("outputEditor"+b);if(!a.msg){var g=d.analyseQuery(a.result);if("table"===g.defaultType){$("#outputEditorWrapper"+b+" .arangoToolbarTop").after('
    '),$("#outputTable"+b).show(),d.renderOutputTable(g,b);var h=$(".centralRow").height()-250;$(".outputEditorWrapper .tableWrapper").css("max-height",h),$("#outputEditor"+b).hide(),e=!0}else"graph"===g.defaultType&&($("#outputEditorWrapper"+b+" .arangoToolbarTop").after('
    '),$("#outputGraph"+b).show(),e=d.renderOutputGraph(g,b),e?($("#outputEditor"+b).hide(),$("#outputEditorWrapper"+b+" #copy2gV").show(),$("#outputEditorWrapper"+b+" #copy2gV").bind("click",function(){d.showResultInGraphViewer(g,b)})):$("#outputGraph"+b).remove());e!==!1?$("#"+g.defaultType+"-switch").addClass("active").css("display","inline"):$("#json-switch").addClass("active").css("display","inline");var i=function(a,c,d){d||(d=""),$("#outputEditorWrapper"+b+" .arangoToolbarTop .pull-left").append(''+a+"")},j="-";a&&a.extra&&a.extra.stats&&(j=a.extra.stats.executionTime.toFixed(3)+" s"),i(a.result.length+" elements","fa-calculator"),i(j,"fa-clock-o"),a.extra&&(a.extra.profile&&(i("","fa-caret-down"),d.appendProfileDetails(b,a.extra.profile)),a.extra.stats&&(a.extra.stats.writesExecuted>0||a.extra.stats.writesIgnored>0)&&(i(a.extra.stats.writesExecuted+" writes","fa-check-circle positive"),0===a.extra.stats.writesIgnored?i(a.extra.stats.writesIgnored+" writes ignored","fa-check-circle positive","additional"):i(a.extra.stats.writesIgnored+" writes ignored","fa-exclamation-circle warning","additional")))}$("#outputEditorWrapper"+b+" .pull-left #spinner").remove(),$("#outputEditorWrapper"+b+" #cancelCurrentQuery").remove(),d.warningsFunc(a,f),window.progressView.hide(),$("#outputEditorWrapper"+b+" .switchAce").show(),$("#outputEditorWrapper"+b+" .fa-close").show(),$("#outputEditor"+b).css("opacity","1"),a.msg||($("#outputEditorWrapper"+b+" #downloadQueryResult").show(),$("#outputEditorWrapper"+b+" #copy2aqlEditor").show()),d.setEditorAutoHeight(f),d.deselect(f),a.id&&$.ajax({url:arangoHelper.databaseUrl("/_api/cursor/"+encodeURIComponent(a.id)),type:"DELETE"}),c||(d.cachedQueries[b]=a,this.cachedQueries[b].sentQuery=d.aqlEditor.getValue()),a.msg&&($("#outputEditorWrapper"+b+" .toolbarType").html("Explain"),f.setValue(a.msg,1))}else d.cachedQueries[b]=a,d.cachedQueries[b].sentQuery=d.lastSentQueryString,arangoHelper.arangoNotification("Query finished","Return to queries view to see the result.")},bindQueryResultButtons:function(a,b){var c=this;if(a)var d=function(a,b){$.ajax({url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)+"/cancel"),type:"PUT",success:function(){window.clearTimeout(c.checkQueryTimer),$("#outputEditorWrapper"+b).remove(),arangoHelper.arangoNotification("Query","Query canceled.")}})};$("#outputEditorWrapper"+b+" #cancelCurrentQuery").bind("click",function(){d(a,b)}),$("#outputEditorWrapper"+b+" #copy2aqlEditor").bind("click",function(){$("#toggleQueries1").is(":visible")||c.toggleQueries();var a=ace.edit("sentQueryEditor"+b).getValue(),d=JSON.parse(ace.edit("sentBindParamEditor"+b).getValue());c.aqlEditor.setValue(a,1),c.deselect(c.aqlEditor),Object.keys(d).length>0&&(c.bindParamTableObj=d,c.setCachedQuery(c.aqlEditor.getValue(),JSON.stringify(c.bindParamTableObj)),$("#bindParamEditor").is(":visible")?c.renderBindParamTable():(c.bindParamAceEditor.setValue(JSON.stringify(d),1),c.deselect(c.bindParamAceEditor))),$(".centralRow").animate({scrollTop:0},"fast"),c.resize()})},queryCallbackFunction:function(a,b){var c=this;this.bindQueryResultButtons(a,b),this.execPending=!1;var d=function(){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a,e,f){201===f.status?(c.renderQueryResult(a,b),$(".centralRow").animate({scrollTop:$("#queryContent").height()},"fast")):204===f.status&&(c.checkQueryTimer=window.setTimeout(function(){d()},500))},error:function(a){var d;try{if("Gone"===a.statusText)return arangoHelper.arangoNotification("Query","Query execution aborted."),void c.removeOutputEditor(b);d=JSON.parse(a.responseText),arangoHelper.arangoError("Query",d.errorMessage),d.errorMessage&&(null!==d.errorMessage.match(/\d+:\d+/g)?c.markPositionError(d.errorMessage.match(/'.*'/g)[0],d.errorMessage.match(/\d+:\d+/g)[0]):c.markPositionError(d.errorMessage.match(/\(\w+\)/g)[0]),c.removeOutputEditor(b))}catch(e){if(c.removeOutputEditor(b),409===d.code)return;400!==d.code&&404!==d.code&&500!==d.code&&arangoHelper.arangoNotification("Query","Successfully aborted.")}window.progressView.hide()}})};d()},appendProfileDetails:function(a,b){var c="#outputEditorWrapper"+a;$(c+" .fa-caret-down").first().on("click",function(){var d=$(c).find(".queryProfile");if($(d).is(":visible"))$(c).find(".queryProfile").remove();else{$(c).append('
    ');var e=$(c+" .queryProfile").first();e.hide(),e.css("position","absolute").css("left",215).css("top",55);var f=590,g=["A","B","C","D","E","F","G"],h=["rgb(48, 125, 153)","rgb(241, 124, 176)","rgb(137, 110, 37)","rgb(93, 165, 218)","rgb(250, 164, 58)","rgb(64, 74, 83)","rgb(96, 189, 104)"],i=["startup time for query engine","query parsing","abstract syntax tree optimizations","loading collections","instanciation of initial execution plan","execution plan optimization and permutation","query execution"];e.append('Profiling information
    ');var j=0;_.each(b,function(a){j+=1e3*a});var k,l=0,m=0;_.each(b,function(a,b){var c=numeral(1e3*a).format("0.000");c+=" ms",e.find(".pure-g").append('

    '+g[l]+'

    '+c+'
    '+b+'
    '+i[l]+"
    "),k=Math.floor(1e3*a/j*100),0===k&&(k=1,m++),6!==l?(e.find(".prof-progress").append('
    '),k>1?e.find(".prof-progress-label").append('
    '+g[l]+"
    "):e.find(".prof-progress-label").append('
    '+g[l]+"
    ")):(m>0&&(k-=m),e.find(".prof-progress").append('
    '),k>1?e.find(".prof-progress-label").append('
    '+g[l]+"
    "):e.find(".prof-progress-label").append('
    '+g[l]+"
    ")),l++}),e.width(f),e.height("auto"),e.fadeIn("fast")}})},analyseQuery:function(a){var b={defaultType:null,original:a,modified:null},c=!1;if(!Array.isArray(a))return b.defaultType="json",b;if(a[0])if(a[0].vertices&&a[0].edges){var d=0,e=0;_.each(a,function(a){a.edges&&_.each(a.edges,function(a){null!==a&&(a._from&&a._to&&d++,e++)})});var f=0;e>0&&(f=d/e*100),f>=95&&(c=!0,b.defaultType="graph",b.graphInfo="object")}else{var g=0,h=a.length;_.each(a,function(a){a._from&&a._to&&a._id&&g++});var i=0;h>0&&(i=g/h*100),i>=95&&(c=!0,b.defaultType="graph",b.graphInfo="array")}if(!c){var j=!0,k={};if(a.length<=1&&(j=!1),j){_.each(a,function(a){"object"!=typeof a||null===a||Array.isArray(a)||_.each(a,function(a,b){k.hasOwnProperty(b)?++k[b]:k[b]=1})});var l=0;_.each(k,function(b,c){j!==!1&&(l=b/a.length*100,l<=95&&(j=!1))}),l<=95&&(j=!1)}j&&(c=!0,b.defaultType="table")}return c||(b.defaultType="json"),b},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")})})},renderOutputTable:function(a,b){var c={id:"outputTableData"+b,titles:[],rows:[]},d=!0,e=[];_.each(a.original,function(a){d===!0&&(c.titles=Object.keys(a),d=!1),_.each(a,function(a){"object"==typeof a&&(a=JSON.stringify(a)),e.push(a)}),c.rows.push(e),e=[]}),$("#outputTable"+b).append(this.table.render({content:c}))},renderOutputGraph:function(a,b){this.graphViewers[b]=new window.GraphViewer({name:void 0,documentStore:window.App.arangoDocumentStore,collection:new window.GraphCollection,userConfig:window.App.userConfig,id:"#outputGraph"+b,data:a});var c=this.graphViewers[b].renderAQLPreview();return c},showResultInGraphViewer:function(a,b){window.location.hash="#aql_graph",window.App.graphViewer&&(window.App.graphViewer.graphSettingsView&&window.App.graphViewer.graphSettingsView.remove(),window.App.graphViewer.remove()),window.App.graphViewer=new window.GraphViewer({name:void 0,documentStore:window.App.arangoDocumentStore,collection:new window.GraphCollection,userConfig:window.App.userConfig,noDefinedGraph:!0,data:a}),window.App.graphViewer.renderAQL()},getAQL:function(a){var b=this;this.collection.fetch({success:function(){b.getCachedQueryAfterRender();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","Indexes"],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){if("#shards"===window.location.hash){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=!1;b.shardDistribution=a.results,_.each(a.results,function(a,b){"error"!==b&&"code"!==b&&("_"!==b.substring(0,1)&&(c=!0),(b.startsWith("_local_")||b.startsWith("_to_")||b.startsWith("_from_"))&&(c=!0))}),c?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=[];g.dbServers[0].fetch({success:function(){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 database server. The selected database server will be the new leader of the shard.",l)),i.push(window.modalView.createSuccessButton("Move",g.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=$("#toDBServer").val(),f={database:a,collection:b,shard:c,fromServer:d,toServer:e};$.ajax({type:"POST",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/moveShard"),contentType:"application/json",processData:!1,data:JSON.stringify(f),async:!0,success:function(a){a.id&&(arangoHelper.arangoNotification("Shard "+c+" will be moved to "+e+"."),window.setTimeout(function(){window.App.shardsView.render()},2e3))},error:function(){arangoHelper.arangoError("Shard "+c+" could not be moved to "+e+".")}}),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.arangoError("Could not start rebalance process.")}}),window.modalView.hide()},continueRender:function(a){var b=this;delete a.code,delete a.error,_.each(a,function(b,c){var d={Plan:{},Current:{}};if(c.startsWith("_local_")){var e=c.substr(7,c.length-1),f=["_local_"+e,"_from_"+e,"_to_"+e,e],g=0;_.each(f,function(b,c){_.each(a[f[g]].Current,function(a,b){d.Current[b]=a}),_.each(a[f[g]].Plan,function(a,b){d.Plan[b]=a}),delete a[f[g]],a[e]=d,g++})}});var c={};Object.keys(a).sort().forEach(function(b){c[b]=a[b]}),this.$el.html(this.template.render({collections:c}));var d=!1;_.each(a,function(a){_.each(a.Plan,function(a,b){a.progress&&(d=!0)})}),d&&window.setTimeout(function(){b.render()},1500)},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:d.substringMatcher(d.aqlBuiltinFunctionsArray),limit:d.displayLimit,templates:{header:a("Functions","fa-code","aql")}},{name:"Keywords",source:d.substringMatcher(d.aqlKeywordsArray),limit:d.displayLimit,templates:{header:a("Keywords","fa-code","aql")}},{name:"Documents",source:d.substringMatcher(d.collections.doc),limit:d.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:d.substringMatcher(d.collections.edge),limit:d.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System",limit:d.displayLimit,source:d.substringMatcher(d.collections.system),templates:{header:a("System","fa-cogs","Collection")}}):this.typeahead=$("#spotlight .typeahead").typeahead({hint:!0,highlight:!0,minLength:1},{name:"Documents",source:d.substringMatcher(d.collections.doc),limit:d.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:d.substringMatcher(d.collections.edge),limit:d.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System",limit:d.displayLimit,source:d.substringMatcher(d.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");if(b)this.grantPermission(this.currentUser.get("user"),c);else if("_system"===c){var d=[],e=[];e.push(window.modalView.createReadOnlyEntry("db-system-revoke-button","Caution","You are removing your permissions to _system database. Really continue?",void 0,void 0,!1)),d.push(window.modalView.createSuccessButton("Revoke",this.revokePermission.bind(this,this.currentUser.get("user"),c))),d.push(window.modalView.createCloseButton("Cancel",this.rollbackInputButton.bind(this,c))),window.modalView.show("modalTable.ejs","Revoke _system Database Permission",d,e)}else this.revokePermission(this.currentUser.get("user"),c)},rollbackInputButton:function(a){$('input[name="'+a+'"').prop("checked","true")},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"}),window.modalView.hide()},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,lastRoute: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","graph/:name":"graph","graph/:name/settings":"graphSettings",support:"support"},execute:function(a,b){"#queries"===this.lastRoute&&this.queryView.cleanupGraphs(),this.lastRoute=window.location.hash,$("#subNavigationBar .breadcrumb").html(""),$("#subNavigationBar .bottom").html(""),$("#loadingScreen").hide(),$("#content").show(),a&&a.apply(this,b),this.graphViewer&&this.graphViewer.graphSettingsView&&this.graphViewer.graphSettingsView.hide(),this.queryView&&this.queryView.graphViewer&&this.queryView.graphViewer.graphSettingsView&&this.queryView.graphViewer.graphSettingsView.hide()},listenerFunctions:{},listener:function(a){_.each(window.App.listenerFunctions,function(b,c){b(a)})},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),document.addEventListener("keyup",this.listener,!1),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}),arangoHelper.initSigma()}.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||(this.nodesView=new window.NodesView({})),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))},graph:function(a,b){return this.checkUser(),b?(this.graphViewer&&(this.graphViewer.graphSettingsView&&this.graphViewer.graphSettingsView.remove(),this.graphViewer.killCurrentGraph(),this.graphViewer.unbind(),this.graphViewer.remove()),this.graphViewer=new window.GraphViewer({name:a,documentStore:this.arangoDocumentStore,collection:new window.GraphCollection,userConfig:this.userConfig}),void this.graphViewer.render()):void this.waitForInit(this.graph.bind(this),a)},graphSettings: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.graphSettings.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.undelegateEvents(),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&&"graphs"===Backbone.history.getFragment()&&this.graphManagementView.handleResize($("#content").width()),this.queryView&&"queries"===Backbone.history.getFragment()&&this.queryView.resize(),this.naviView&&this.naviView.resize(),this.graphViewer&&Backbone.history.getFragment().indexOf("graph")>-1&&this.graphViewer.resize(),this.documentsView&&Backbone.history.getFragment().indexOf("documents")>-1&&this.documentsView.resize(),this.documentView&&Backbone.history.getFragment().indexOf("collection")>-1&&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").html(b.version.substr(0,7)+''),window.parseVersions=function(b){return _.isEmpty(b)?void $("#currentVersion").addClass("up-to-date"):($("#currentVersion").addClass("out-of-date"),$("#currentVersion .fa").removeClass("fa-check-circle").addClass("fa-exclamation-circle"),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(){"use strict";var a=null;window.isCoordinator=function(b){null===a?$.ajax("cluster/amICoordinator",{async:!0,success:function(c){a=c,b(!1,c)},error:function(c){a=c,b(!0,c)}}):b(!1,a)},window.versionHelper={fromString:function(a){var b=a.replace(/-[a-zA-Z0-9_-]*$/g,"").split(".");return{major:parseInt(b[0],10)||0,minor:parseInt(b[1],10)||0,patch:parseInt(b[2],10)||0,toString:function(){return this.major+"."+this.minor+"."+this.patch}}},toString:function(a){return a.major+"."+a.minor+"."+a.patch}},window.arangoHelper={getCurrentJwt:function(){return localStorage.getItem("jwt")},getCurrentJwtUsername:function(){return localStorage.getItem("jwtUser")},setCurrentJwt:function(a,b){localStorage.setItem("jwt",a),localStorage.setItem("jwtUser",b)},lastNotificationMessage:null,CollectionTypes:{},systemAttributes:function(){return{_id:!0,_rev:!0,_key:!0,_bidirectional:!0,_vertices:!0,_from:!0,_to:!0,$id:!0}},getCurrentSub:function(){return window.App.naviView.activeSubMenu},parseError:function(a,b){var c;try{c=JSON.parse(b.responseText).errorMessage}catch(d){c=d}this.arangoError(a,c)},setCheckboxStatus:function(a){_.each($(a).find("ul").find("li"),function(a){$(a).hasClass("nav-header")||($(a).find("input").attr("checked")?$(a).find("i").hasClass("css-round-label")?$(a).find("i").addClass("fa-dot-circle-o"):$(a).find("i").addClass("fa-check-square-o"):$(a).find("i").hasClass("css-round-label")?$(a).find("i").addClass("fa-circle-o"):$(a).find("i").addClass("fa-square-o"))})},parseInput:function(a){var b,c=$(a).val();try{b=JSON.parse(c)}catch(d){b=c}return b},calculateCenterDivHeight:function(){var a=$(".navbar").height(),b=$(".footer").height(),c=$(window).height();return c-b-a-110},fixTooltips:function(a,b){$(a).tooltip({placement:b,hide:!1,show:!1})},currentDatabase:function(a){return frontendConfig.db?a(!1,frontendConfig.db):a(!0,void 0),frontendConfig.db},allHotkeys:{jsoneditor:{name:"AQL editor",content:[{label:"Execute Query",letter:"Ctrl/Cmd + Return"},{label:"Execute Selected Query",letter:"Ctrl/Cmd + Alt + Return"},{label:"Explain Query",letter:"Ctrl/Cmd + Shift + Return"},{label:"Save Query",letter:"Ctrl/Cmd + Shift + S"},{label:"Open search",letter:"Ctrl + Space"},{label:"Toggle comments",letter:"Ctrl/Cmd + Shift + C"},{label:"Undo",letter:"Ctrl/Cmd + Z"},{label:"Redo",letter:"Ctrl/Cmd + Shift + Z"},{label:"Increase Font Size",letter:"Shift + Alt + Up"},{label:"Decrease Font Size",letter:"Shift + Alt + Down"}]},doceditor:{name:"Document editor",content:[{label:"Insert",letter:"Ctrl + Insert"},{label:"Save",letter:"Ctrl + Return, Cmd + Return"},{label:"Append",letter:"Ctrl + Shift + Insert"},{label:"Duplicate",letter:"Ctrl + D"},{label:"Remove",letter:"Ctrl + Delete"}]},modals:{name:"Modal",content:[{label:"Submit",letter:"Return"},{label:"Close",letter:"Esc"},{label:"Navigate buttons",letter:"Arrow keys"},{label:"Navigate content",letter:"Tab"}]}},hotkeysFunctions:{scrollDown:function(){window.scrollBy(0,180)},scrollUp:function(){window.scrollBy(0,-180)},showHotkeysModal:function(){var a=[],b=window.arangoHelper.allHotkeys;window.modalView.show("modalHotkeys.ejs","Keyboard Shortcuts",a,b)}},buildSubNavBar:function(a){$("#subNavigationBar .bottom").html("");var b;_.each(a,function(a,c){b="",a.active&&(b+=" active"),a.disabled&&(b+=" disabled"),$("#subNavigationBar .bottom").append('"),a.disabled||$("#subNavigationBar .bottom").children().last().bind("click",function(){$("#subNavigationBar .breadcrumb").html(""),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:"#graph/"+encodeURIComponent(a)},Settings:{route:"#graph/"+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"},Indexes:{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){$("#offlinePlaceholder").is(":visible")||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,b){b?$("#content").html(''):$("#content").html('")},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}),sigma.classes.graph.addMethod("getNodeEdges",function(a){var b=this.edges(),c=[];return _.each(b,function(b){b.source!==a&&b.target!==a||c.push(b.id)}),c}),sigma.classes.graph.addMethod("getNodeEdgesCount",function(a){return this.allNeighborsCount[a]}),sigma.classes.graph.addMethod("getNodesCount",function(){return this.nodesArray.length})}catch(a){}},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.setTimeout(function(){window.URL.revokeObjectURL(f),document.body.removeChild(g)},500)})}}}(),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){var b=this;$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_api/index/?collection="+this.get("id")),contentType:"application/json",processData:!1,success:function(c){a(!1,c,b.get("id"))},error:function(c){a(!0,c,b.get("id"))}})},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.shardBy),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)}},error:function(a){b(!0,a.responseJSON.errorMessage)}})}})}(),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){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){a.email?b+=''+(a.name||a.email)+"":a.name&&(b+="contributor.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]=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)}else{var c=function(a){b.rerenderGraphs(a,!0)};b.getCoordStatHistory(c)}},this.interval))},render:function(){var a=this;this.$el.html(this.template.render({})),this.initDone||(void 0!==this.coordinators.first()?this.getServerStatistics():this.waitForCoordinators(),this.initDone=!0),this.initGraphs();var b=function(b){a.rerenderValues(b)};this.getCoordStatHistory(b)},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,b){if(this.statsEnabled){var c,d,e=this;this.formatDataForGraph(a),_.each(e.chartsOptions,function(a){d=e.returnGraphOptions(a.id),d.length>0?_.each(d,function(b,c){a.options[c].values=b}):a.options[0].values=[],c=a.options,void 0!==b&&b!==!1||c[0].values.length>0&&e.historyInit&&e.charts[a.id]&&e.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")||"corrupted"===this.model.get("status")?($(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:"corrupted"===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","Indexes"],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(),"Indexes"!==$(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,journalSize: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. Total number of copies of the data in the cluster","",!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="#77DB99",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(){var a=!1;_.each($(".documentsDropdown").first().children(),function(b){$(b).is(":visible")&&(a=!0)}),a?($("#docPureTable").height($(".centralRow").height()-210-57),$("#docPureTable .pure-table-body").css("max-height",$("#docPureTable").height()-47)):($("#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(){$(".upload-indicator").show()},hideSpinner:function(){$(".upload-indicator").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();if(""!==a||void 0!==a||null!==a){var b="query/result/download/"+btoa(JSON.stringify(a));arangoHelper.download(b)}else arangoHelper.arangoError("Document error","could not download documents"); +},startUpload:function(){var a=function(a,b){a?arangoHelper.arangoError("Upload",b):(this.hideImportModal(),this.resetView()),this.hideSpinner()}.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(1),$("#exportHeader").hide();var a=this;window.setTimeout(function(){a.resize()},50)},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(1);var a=this;window.setTimeout(function(){a.resize()},50);var b;for(b in this.filters)if(this.filters.hasOwnProperty(b))return void $("#attribute_name"+b).focus()},exportCollection:function(){$("#importCollection").removeClass("activated"),$("#filterHeader").removeClass("activated"),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#exportCollection").toggleClass("activated"),this.markFilterToggle(),$("#exportHeader").slideToggle(1),$("#importHeader").hide(),$("#filterHeader").hide(),$("#editHeader").hide();var a=this;window.setTimeout(function(){a.resize()},50)},importCollection:function(){this.markFilterToggle(),$("#markDocuments").removeClass("activated"),this.changeEditMode(!1),$("#importCollection").toggleClass("activated"),$("#exportCollection").removeClass("activated"),$("#importHeader").slideToggle(1),$("#filterHeader").hide(),$("#editHeader").hide(),$("#exportHeader").hide();var a=this;window.setTimeout(function(){a.resize()},50)},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)}),a.rerender()},addFilterItem:function(){var a=++this.filterId;$("#filterHeader").append('
    '),this.filters[a]=!0,this.checkFilterState()},filterValueKeydown:function(a){13===a.keyCode&&this.sendFilter()},checkFilterState:function(){var a=$("#filterHeader .queryline").length;if(1===a)$("#filterHeader .removeFilterItem").remove();else if(0===$("#filterHeader .queryline").first().find(".removeFilterItem").length){var b=$("#filterHeader .queryline").first().children().first().attr("id"),c=b.substr(14,b.length);$("#filterHeader .queryline").first().find(".add-filter-item").after(' ')}0===$("#filterHeader .queryline").first().find(".add-filter-item").length&&$("#filterHeader .queryline").first().find(".filterValue").after('')},removeFilterItem:function(a){var b=a.currentTarget,c=b.id.replace(/^removeFilter/,"");delete this.filters[c],delete this.restoredFilters[c],$(b.parentElement).remove(),this.checkFilterState()},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,d){if(b)arangoHelper.arangoError("Error",d.errorMessage);else{window.modalView.hide(),c=c._id.split("/");try{a="collection/"+c[0]+"/"+c[1],decodeURI(a)}catch(e){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,d){if(b)arangoHelper.arangoError("Error",d.errorMessage);else{window.modalView.hide(),c=c.split("/");try{a="collection/"+c[0]+"/"+c[1],decodeURI(a)}catch(e){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()},initialize:function(){var a=localStorage.getItem("JSONEditorMode");a&&(this.defaultMode=a)},addDocument:function(){window.App.documentsView.addDocumentModal()},storeMode:function(){var a=this;$(".type-modes").on("click",function(b){var c=$(b.currentTarget).text().toLowerCase();localStorage.setItem("JSONEditorMode",c),a.defaultMode=c})},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,b){a?arangoHelper.arangoError("Error",b.responseJSON.errorMessage):(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,b){a?arangoHelper.arangoError("Error",b.responseJSON.errorMessage):(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(''),window.modalView.hide(),$("#offlinePlaceholder").show(),$.noty.clearQueue(),$.noty.closeAll(),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,f;this._upgrade?(c=this.mount,e=Boolean($("#new-app-teardown").prop("checked"))):c=window.arangoHelper.escapeHtml($("#new-app-mount").val()),f=Boolean($("#zip-app-islegacy").prop("checked")),this.collection.installFromZip(b.filename,c,d.bind(this),f,e)}},l=function(){if(window.modalView.modalTestAll()){var a,b,c,e,f;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 g={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(h){return}f=Boolean($("#github-app-islegacy").prop("checked")),this.collection.installFromGithub(g,c,d.bind(this),f,e)}},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())};this.collection.generate(c,a,d.bind(this),b)}},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.hash=window.location.hash.substr(0,window.location.hash.length-1)+"/"+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)}})},toggleSmartGraph:function(){var a,b=this;if($("#new-is_smart").is(":checked")===!0){for(a=0;a",""),arangoHelper.arangoError(d)}})},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.createNotificationButton("Reset display settings",this.resetDisplaySettings.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.frontendConfig.isEnterprise===!0){var l={},m=[];m.push(window.modalView.createCheckboxEntry("new-is_smart","Smart Graph",!0,"Create a Smart Graph? Edge and vertex collections will be automatically generated. They are not allowed to be present before graph creation.",!1)),m.push(window.modalView.createTextEntry("new-numberOfShards","Shards","","Number of shards the smart graph is using.","",!1,[{rule:Joi.string().allow("").optional().regex(/^[0-9]*$/),msg:"Must be a number."}])),m.push(window.modalView.createTextEntry("new-smartGraphAttribute","SmartGraph Attribute","","The attribute name that is used to smartly shard the vertices of a graph. \nEvery vertex in this Graph has to have this attribute. \nCannot be modified later.","",!1,[{rule:Joi.string(),msg:"Must be a string."}])),l.header="Smart Graph",l.content=m,window.modalView.show("modalGraphTable.ejs",b,c,e,l,void 0,this.events)}else window.modalView.show("modalGraphTable.ejs",b,c,e,void 0,void 0,this.events);if(a){$(".modal-body table").css("border-collapse","separate");var n;for($(".modal-body .spacer").remove(),n=0;n<=this.counter;n++)$("#row_fromCollections"+n).show(),$("#row_toCollections"+n).show(),$("#row_newEdgeDefinitions"+n).addClass("first"),$("#row_fromCollections"+n).addClass("middle"),$("#row_toCollections"+n).addClass("last"),$("#row_toCollections"+n).after('');$("#graphTab").hide(),$("#modal-dialog .modal-delete-confirmation").append('
    ')}},resetDisplaySettings:function(){var a=$("#editGraphName").val(),b=new window.GraphSettingsView({name:a,userConfig:window.App.userConfig});b.setDefaults(!0,!0),b.remove(),window.modalView.hide(),arangoHelper.arangoNotification("Graph","Reset successful.")},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:"#graphSettingsContent",remove:function(){return this.$el.empty().off(),this.stopListening(),this},general:{graph:{type:"divider",name:"Graph"},nodeStart:{type:"string",name:"Startnode",desc:"A valid node id. If empty, a random node will be chosen.",value:2},layout:{type:"select",name:"Layout",desc:"Different graph algorithms. No overlap is very fast (more than 5000 nodes), force is slower (less than 5000 nodes) and fruchtermann is the slowest (less than 500 nodes).",noverlap:{name:"No overlap",val:"noverlap"},force:{name:"Force",val:"force"},fruchtermann:{name:"Fruchtermann",val:"fruchtermann"}},renderer:{type:"select",name:"Renderer",desc:"Canvas enables editing, WebGL is only for displaying a graph but much faster.",canvas:{name:"Canvas",val:"canvas"},webgl:{name:"WebGL (experimental)",val:"webgl"}},depth:{desc:"Search depth, starting from your start node.",type:"number",name:"Search Depth",value:2},limit:{desc:"Limit nodes count. If empty or zero, no limit is set.",type:"number",name:"Limit",value:250}},specific:{nodes:{type:"divider",name:"Nodes"},nodeLabel:{type:"string",name:"Label",desc:"Node label. Please choose a valid and available node attribute.","default":"_key"},nodeLabelByCollection:{type:"select",name:"Add Collection Name",desc:"Append collection name to the label?",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"}},nodeColorByCollection:{type:"select",name:"Color By Collections",no:{name:"No",val:"false"},yes:{name:"Yes",val:"true"},desc:"Should nodes be colorized by their collection? If enabled, node color and node color attribute will be ignored."},nodeColor:{type:"color",name:"Color",desc:"Default node color. RGB or HEX value.","default":"#2ecc71"},nodeColorAttribute:{type:"string",name:"Color Attribute",desc:"If an attribute is given, nodes will then be colorized by the attribute. This setting ignores default node color if set."},nodeSizeByEdges:{type:"select",name:"Size By Connections",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"},desc:"Should nodes be sized by their edges count? If enabled, node sizing attribute will be ignored."},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."},edgeLabelByCollection:{type:"select",name:"Add Collection Name",desc:"Set label text by collection. If activated edge label attribute will be ignored.",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"}},edgeColorByCollection:{type:"select",name:"Color By Collections",no:{name:"No",val:"false"},yes:{name:"Yes",val:"true"},desc:"Should edges be colorized by their collection? If enabled, edge color and edge color attribute will be ignored."},edgeColor:{type:"color",name:"Color",desc:"Default edge color. RGB or HEX value.","default":"#cccccc"},edgeColorAttribute:{type:"string",name:"Color Attribute",desc:"If an attribute is given, edges will then be colorized by the attribute. This setting ignores default edge color if set."},edgeEditable:{type:"select",hide:"true",name:"Editable",yes:{name:"Yes",val:"true"},no:{name:"No",val:"false"},desc:"Should edges be editable?"},edgeType:{type:"select",name:"Type",desc:"The type of the edge",line:{name:"Line",val:"line"},arrow:{name:"Arrow",val:"arrow"},curve:{name:"Curve",val:"curve"},dotted:{name:"Dotted",val:"dotted"},dashed:{name:"Dashed",val:"dashed"},tapered:{name:"Tapered",val:"tapered"}}},template:templateEngine.createTemplate("graphSettingsView.ejs"),initialize:function(a){this.name=a.name,this.userConfig=a.userConfig,this.saveCallback=a.saveCallback,a.noDefinedGraph&&(this.noDefinedGraph=a.noDefinedGraph)},events:{"click #saveGraphSettings":"saveGraphSettings","click #restoreGraphSettings":"setDefaults","keyup #graphSettingsView input":"checkEnterKey","keyup #graphSettingsView select":"checkEnterKey",'change input[type="range"]':"saveGraphSettings",'change input[type="color"]':"checkColor","change select":"saveGraphSettings","focus #graphSettingsView input":"lastFocus","focus #graphSettingsView select":"lastFocus",'focusout #graphSettingsView input[type="text"]':"checkinput"},lastFocus:function(a){this.lastFocussed=a.currentTarget.id,this.lastFocussedValue=$(a.currentTarget).val()},checkinput:function(a){new Date-this.lastSaved>500&&a.currentTarget.id===this.lastFocussed&&this.lastFocussedValue!==$(a.currentTarget).val()&&this.saveGraphSettings()},checkEnterKey:function(a){13===a.keyCode&&this.saveGraphSettings(a)},getGraphSettings:function(a){var b=this,c=frontendConfig.db+"_"+this.name;this.userConfig.fetch({success:function(d){b.graphConfig=d.toJSON().graphs[c],a&&b.continueRender()}})},checkColor:function(){this.saveGraphSettings(null,!0)},saveGraphSettings:function(a,b,c,d,e,f){var g=this,h=function(){var a=!$("#g_nodeColor").is(":disabled"),b=!$("#g_edgeColor").is(":disabled");window.App.graphViewer.updateColors(a,b,$("#g_nodeColor").val(),$("#g_edgeColor").val())};if(this.noDefinedGraph){var i;b?h():"g_layout"===a.currentTarget.id?window.App.graphViewer.rerenderAQL($("#g_layout").val(),null):"g_nodeColorByCollection"===a.currentTarget.id?(i=$("#g_nodeColorByCollection").val(),"true"===i?window.App.graphViewer.switchNodeColorByCollection(!0):window.App.graphViewer.switchNodeColorByCollection(!1)):"g_edgeColorByCollection"===a.currentTarget.id?(i=$("#g_edgeColorByCollection").val(),"true"===i?window.App.graphViewer.switchEdgeColorByCollection(!0):window.App.graphViewer.switchEdgeColorByCollection(!1)):"g_nodeSizeByEdges"===a.currentTarget.id?(i=$("#g_nodeSizeByEdges").val(),"true"===i?window.App.graphViewer.switchNodeSizeByCollection(!0):window.App.graphViewer.switchNodeSizeByCollection(!1)):"g_edgeType"===a.currentTarget.id&&window.App.graphViewer.switchEdgeType($("#g_edgeType").val())}else{g.lastSaved=new Date;var j=frontendConfig.db+"_"+this.name,k={};if(d)k[j]=d;else{var l,m={};$("#graphSettingsView select").each(function(a,b){l=b.id,m[l.substr(2,b.id.length)]=$(b).val()}),$("#graphSettingsView input").each(function(a,b){l=b.id,m[l.substr(2,b.id.length)]=$(b).val()}),k[j]=m}c&&(k[j].nodeStart=c);var n=function(){if(window.App.graphViewer){var c;if(a){if("g_layout"===a.currentTarget.id)return void window.App.graphViewer.switchLayout($("#g_layout").val());if("g_nodeColorByCollection"===a.currentTarget.id)return c=$("#g_nodeColorByCollection").val(),void("true"===c?window.App.graphViewer.switchNodeColorByCollection(!0):$("#g_nodeColorAttribute").is(":disabled")?window.App.graphViewer.switchNodeColorByCollection(!1):window.App.graphViewer.switchNodeColorByCollection(!1,!0));if("g_edgeColorByCollection"===a.currentTarget.id)return c=$("#g_edgeColorByCollection").val(),void("true"===c?window.App.graphViewer.switchEdgeColorByCollection(!0):$("#g_nodeColorAttribute").is(":disabled")?window.App.graphViewer.switchEdgeColorByCollection(!1):window.App.graphViewer.switchEdgeColorByCollection(!1,!0))}""!==b&&void 0!==b?h():window.App.graphViewer.render(g.lastFocussed)}else e||arangoHelper.arangoNotification("Graph "+this.name,"Configuration saved.");f&&f()}.bind(this);this.userConfig.setItem("graphs",k,n)}this.handleDependencies()},setDefaults:function(a,b,c){var d={layout:"force",renderer:"canvas",depth:"2",limit:"250",nodeColor:"#2ecc71",nodeColorAttribute:"",nodeColorByCollection:"true",edgeColor:"#cccccc",edgeColorAttribute:"",edgeColorByCollection:"false",nodeLabel:"_key",edgeLabel:"",edgeType:"arrow",nodeSize:"",nodeSizeByEdges:"true",edgeEditable:"true",nodeLabelByCollection:"false",edgeLabelByCollection:"false",nodeStart:"",barnesHutOptimize:!0};a===!0?b?this.saveGraphSettings(null,null,null,d,b,c):this.saveGraphSettings(null,null,null,d):(this.saveGraphSettings(null,null,null,d,null),this.render(),window.App.graphViewer.render(this.lastFocussed))},toggle:function(){$(this.el).is(":visible")?this.hide():this.show()},show:function(){$(this.el).show("slide",{direction:"right"},250)},hide:function(){$(this.el).hide("slide",{direction:"right"},250)},render:function(){this.noDefinedGraph?this.continueRender():(this.getGraphSettings(!0),this.lastSaved=new Date)},handleDependencies:function(){"true"===$("#g_nodeSizeByEdges").val()?$("#g_nodeSize").prop("disabled",!0):$("#g_nodeSize").removeAttr("disabled"),"true"===$("#g_nodeColorByCollection").val()?($("#g_nodeColorAttribute").prop("disabled",!0),$("#g_nodeColor").prop("disabled",!0)):($("#g_nodeColorAttribute").removeAttr("disabled"),$("#g_nodeColor").removeAttr("disabled")),this.noDefinedGraph||""!==$("#g_nodeColorAttribute").val()&&$("#g_nodeColor").prop("disabled",!0),"true"===$("#g_edgeColorByCollection").val()?($("#g_edgeColorAttribute").prop("disabled",!0),$("#g_edgeColor").prop("disabled",!0)):($("#g_edgeColorAttribute").removeAttr("disabled"),$("#g_edgeColor").removeAttr("disabled")),this.noDefinedGraph||""!==$("#g_edgeColorAttribute").val()&&$("#g_edgeColor").prop("disabled",!0)},continueRender:function(){$(this.el).html(this.template.render({general:this.general,specific:this.specific})),arangoHelper.fixTooltips(".gv-tooltips","top"),this.graphConfig?_.each(this.graphConfig,function(a,b){$("#g_"+b).val(a)}):this.noDefinedGraph?this.fitSettingsAQLMode():this.setDefaults(!0),this.handleDependencies()},fitSettingsAQLMode:function(){var a=["g_nodeStart","g_depth","g_limit","g_renderer","g_nodeLabel","g_nodeLabelByCollection","g_nodeColorAttribute","g_nodeSize","g_edgeLabel","g_edgeColorAttribute","g_edgeLabelByCollection"];_.each(a,function(a){$("#"+a).parent().prev().remove(),$("#"+a).parent().remove()}),$("#saveGraphSettings").remove(),$("#restoreGraphSettings").remove(),$("#g_nodeColorByCollection").val("false"),$("#g_edgeColorByCollection").val("false"),$("#g_nodeSizeByEdges").val("false"),$("#g_edgeType").val("arrow"),$("#g_layout").val("force")}})}(),function(){"use strict";window.GraphViewer=Backbone.View.extend({el:"#content",remove:function(){return this.$el.empty().off(),this.stopListening(),this.unbind(),delete this.el,this},template:templateEngine.createTemplate("graphViewer2.ejs"),initialize:function(a){var b=this;a.id&&(this.setElement(a.id),this.graphData=a.data,this.aqlMode=!0),a.noDefinedGraph&&(this.noDefinedGraph=a.noDefinedGraph,this.graphData=a.data),this.name=a.name,this.userConfig=a.userConfig,this.documentStore=a.documentStore,void 0!==this.name&&this.collection.fetch({cache:!1,success:function(c){b.model=b.collection.findWhere({_key:a.name}).toJSON()}})},colors:{hotaru:["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],random1:["#292F36","#4ECDC4","#F7FFF7","#DD6363","#FFE66D"],jans:["rgba(166, 109, 161, 1)","rgba(64, 74, 83, 1)","rgba(90, 147, 189, 1)","rgba(153,63,0,1)","rgba(76,0,92,1)","rgba(25,25,25,1)","rgba(0,92,49,1)","rgba(43,206,72,1)","rgba(255,204,153,1)","rgba(128,128,128,1)","rgba(148,255,181,1)","rgba(143,124,0,1)","rgba(157,204,0,1)","rgba(194,0,136,1)","rgba(0,51,128,1)","rgba(255,164,5,1)","rgba(255,168,187,1)","rgba(66,102,0,1)","rgba(255,0,16,1)","rgba(94,241,242,1)","rgba(0,153,143,1)","rgba(224,255,102,1)","rgba(116,10,255,1)","rgba(153,0,0,1)","rgba(255,255,128,1)","rgba(255,255,0,1)","rgba(255,80,5,1)"],gv:["#68BDF6","#6DCE9E","#FF756E","#DE9BF9","#FB95AF","#FFD86E","#A5ABB6"]},activeNodes:[],selectedNodes:{},aqlMode:!1,events:{"click #downloadPNG":"downloadPNG","click #loadFullGraph":"loadFullGraphModal","click #reloadGraph":"reloadGraph","click #settingsMenu":"toggleSettings","click #toggleForce":"toggleLayout","click #selectNodes":"toggleLasso"},cursorX:0,cursorY:0,layouting:!1,model:null,viewStates:{captureMode:!1},graphConfig:null,graphSettings:null,downloadPNG:function(){var a=parseInt($("#graph-container").width(),10);sigma.plugins.image(this.currentGraph,this.currentGraph.renderers[0],{download:!0,size:a,clip:!0,labels:!0,background:"white",zoom:!1})},loadFullGraphModal:function(){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry("load-full-graph-a","Caution","Really load full graph? If no limit is set, your result set could be too big.")),a.push(window.modalView.createSuccessButton("Load full graph",this.loadFullGraph.bind(this))),window.modalView.show("modalTable.ejs","Load full graph",a,b)},loadFullGraph:function(){var a=this,b={};this.graphConfig&&(b=_.clone(this.graphConfig), +delete b.layout,delete b.edgeType,delete b.renderer),b.mode="all",$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/aardvark/graph/"+encodeURIComponent(this.name)),contentType:"application/json",data:b,success:function(b){a.killCurrentGraph(),a.renderGraph(b)},error:function(a){console.log(a),arangoHelper.arangoError("Graph","Could not load full graph.")}}),window.modalView.hide()},resize:function(){$("#graph-container").width($(".centralContent").width()),$("#graph-container").height($(".centralRow").height()-155)},toggleSettings:function(){this.graphSettingsView.toggle()},render:function(a){this.$el.html(this.template.render({})),$("#subNavigationBar .breadcrumb").html("Graph: "+this.name),this.resize(),this.fetchGraph(a),this.initFullscreen()},initFullscreen:function(){var a=this;if(window.App.initializedFullscreen===!1||void 0===window.App.initializedFullscreen){window.App.initializedFullscreen=!0,this.isFullscreen=!1;var b=function(b){(document.webkitIsFullScreen||document.mozFullScreen||null!==document.msFullscreenElement)&&(a.isFullscreen===!1?(a.isFullscreen=!0,$("#toggleForce").css("bottom","10px"),$("#toggleForce").css("right","10px"),$("#objectCount").css("bottom","10px"),$("#objectCount").css("left","10px"),$(".nodeInfoDiv").css("top","10px"),$(".nodeInfoDiv").css("left","10px")):(a.isFullscreen=!1,$("#toggleForce").css("bottom","40px"),$("#toggleForce").css("right","40px"),$("#objectCount").css("bottom","50px"),$("#objectCount").css("left","25px"),$(".nodeInfoDiv").css("top",""),$(".nodeInfoDiv").css("left","165px")))};document.addEventListener&&(document.addEventListener("webkitfullscreenchange",b,!1),document.addEventListener("mozfullscreenchange",b,!1),document.addEventListener("fullscreenchange",b,!1),document.addEventListener("MSFullscreenChange",b,!1))}},renderAQLPreview:function(a){this.$el.html(this.template.render({})),this.$el.find(".headerBar").remove();var b=$(".centralRow").height()-250;this.$el.find("#graph-container").css("height",b),this.graphData.modified=this.parseData(this.graphData.original,this.graphData.graphInfo);var c=!1;try{this.renderGraph(this.graphData.modified,null,!0),c=!0}catch(d){}return c},renderAQL:function(a){this.$el.html(this.template.render({})),$("#subNavigationBar .breadcrumb").html("AQL Graph"),$("#subNavigationBar .bottom").html(""),$(".queries-menu").removeClass("active"),this.resize(),this.graphData.modified=this.parseData(this.graphData.original,this.graphData.graphInfo),this.renderGraph(this.graphData.modified,null,!1),this.initFullscreen(),this.graphSettingsView=new window.GraphSettingsView({name:this.name,userConfig:void 0,saveCallback:void 0,noDefinedGraph:!0}),this.graphSettingsView.render()},killCurrentGraph:function(){for(var a in this.currentGraph.renderers)this.currentGraph.renderers[a].clear(),this.currentGraph.kill(a)},rerenderAQL:function(a,b){this.killCurrentGraph(),this.renderGraph(this.graphData.modified,null,!1,a,"canvas"),"true"===$("#g_nodeColorByCollection").val()?this.switchNodeColorByCollection(!0):$("#g_nodeColor").is(":disabled")?this.updateColors(!0,!0,null,null,!0):this.ncolor?this.updateColors(!0,!0,this.ncolor,this.ecolor):this.updateColors(!0,!0,"#2ecc71","#2ecc71"),"true"===$("#g_edgeColorByCollection").val()?this.switchEdgeColorByCollection(!0):$("#g_edgeColor").is(":disabled")?this.updateColors(!0,!0,null,null,!0):this.ecolor?this.updateColors(!0,!0,this.ncolor,this.ecolor):this.updateColors(!0,!0,"#2ecc71","#2ecc71")},buildCollectionColors:function(){var a=this;if(!a.collectionColors){a.collectionColors={};var b=0,c={},d={};_.each(this.currentGraph.graph.nodes(),function(a){c[a.id]=void 0}),_.each(a.currentGraph.graph.edges(),function(a){d[a.id]=void 0}),_.each(c,function(c,d){void 0===a.collectionColors[d.split("/")[0]]&&(a.collectionColors[d.split("/")[0]]={color:a.colors.jans[b]},b++)}),b=0,_.each(d,function(c,d){void 0===a.collectionColors[d.split("/")[0]]&&(a.collectionColors[d.split("/")[0]]={color:a.colors.jans[b]},b++)})}},switchNodeColorByCollection:function(a,b){var c=this;c.buildCollectionColors(),a?(c.currentGraph.graph.nodes().forEach(function(a){a.color=c.collectionColors[a.id.split("/")[0]].color}),c.currentGraph.refresh()):b?this.updateColors(!0,null,null,null,b):this.ncolor?this.updateColors(!0,null,this.ncolor,this.ecolor):this.updateColors(!0,null,"#2ecc71","#2ecc71")},switchEdgeColorByCollection:function(a,b){var c=this;c.buildCollectionColors(),a?(c.currentGraph.graph.edges().forEach(function(a){a.color=c.collectionColors[a.id.split("/")[0]].color}),c.currentGraph.refresh()):b?this.updateColors(!0,null,null,null,b):this.ecolor?this.updateColors(null,!0,this.ncolor,this.ecolor):this.updateColors(null,!0,"#2ecc71","#2ecc71")},buildCollectionSizes:function(){var a=this;if(!a.nodeEdgesCount){a.nodeEdgesCount={};var b={};_.each(this.currentGraph.graph.edges(),function(c){void 0===b[c.id]&&(b[c.id]=!0,void 0===a.nodeEdgesCount[c.source]?a.nodeEdgesCount[c.source]=1:a.nodeEdgesCount[c.source]+=1,void 0===a.nodeEdgesCount[c.target]?a.nodeEdgesCount[c.target]=1:a.nodeEdgesCount[c.target]+=1)})}},switchNodeSizeByCollection:function(a){var b=this;a?(b.buildCollectionSizes(),b.currentGraph.graph.nodes().forEach(function(a){a.size=b.nodeEdgesCount[a.id]})):b.currentGraph.graph.nodes().forEach(function(a){a.size=15}),b.currentGraph.refresh()},switchEdgeType:function(a){var b={nodes:this.currentGraph.graph.nodes(),edges:this.currentGraph.graph.edges(),settings:{}};this.killCurrentGraph(),this.renderGraph(b,null,!1,null,null,a)},switchLayout:function(a){var b={nodes:this.currentGraph.graph.nodes(),edges:this.currentGraph.graph.edges(),settings:{}};this.killCurrentGraph(),this.renderGraph(b,null,!1,a),"true"===$("#g_nodeColorByCollection").val()&&this.switchNodeColorByCollection(!0),"true"===$("#g_edgeColorByCollection").val()?this.switchEdgeColorByCollection(!0):this.switchEdgeColorByCollection(!1)},parseData:function(a,b){var c={},d={},e="#2ecc71",f={nodes:[],edges:[],settings:{}};if(this.ncolor&&(e=this.ncolor),"object"===b){_.each(a,function(a){a.edges&&a.vertices&&(_.each(a.edges,function(a){null!==a&&(d[a._id]={id:a._id,source:a._from,color:"#cccccc",target:a._to})}),_.each(a.vertices,function(a){null!==a&&(c[a._id]={id:a._id,label:a._key,size:.3,color:e,x:Math.random(),y:Math.random()})}))});var g=[];_.each(c,function(a){f.nodes.push(a),g.push(a.id)}),_.each(d,function(a){g.includes(a.source)&&g.includes(a.target)&&f.edges.push(a)})}else"array"===b&&(_.each(a,function(a){c[a._from]=null,c[a._to]=null,f.edges.push({id:a._id,source:a._from,color:"#cccccc",target:a._to})}),_.each(c,function(a,b){f.nodes.push({id:b,label:b,size:.3,color:e,x:Math.random(),y:Math.random()})}));return f},rerender:function(){this.fetchGraph()},fetchGraph:function(a){var b=this;$(this.el).append('
    Fetching graph data. Please wait ...


    If it`s taking too much time to draw the graph, please navigate to: Graphs View
    Click the settings icon and reset the display settings.It is possible that the graph is too big to be handled by the browser.
    ');var c=function(){var c={};b.graphConfig&&(c=_.clone(b.graphConfig),delete c.layout,delete c.edgeType,delete c.renderer),b.tmpStartNode&&(b.graphConfig?0===b.graphConfig.nodeStart.length&&(c.nodeStart=b.tmpStartNode):c.nodeStart=b.tmpStartNode),b.setupSigma(),b.fetchStarted=new Date,$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/aardvark/graph/"+encodeURIComponent(b.name)),contentType:"application/json",data:c,success:function(c){c.empty===!0?b.renderGraph(c,a):(c.settings&&c.settings.startVertex&&void 0===b.graphConfig.startNode&&void 0===b.tmpStartNode&&(b.tmpStartNode=c.settings.startVertex._id),b.fetchFinished=new Date,b.calcStart=b.fetchFinished,$("#calcText").html("Server response took "+Math.abs(b.fetchFinished.getTime()-b.fetchStarted.getTime())+" ms. Initializing graph engine. Please wait ... "),window.setTimeout(function(){b.renderGraph(c,a)},50))},error:function(a){try{var c;if(a.responseJSON.exception){c=a.responseJSON.exception;var d=a.responseJSON.exception.search("1205");if(d!==-1){var e='Starting point: '+b.graphConfig.nodeStart+" is invalid";$("#calculatingGraph").html('
    Stopped.

    '+e+'. Please choose a different start node.
    ')}else $("#calculatingGraph").html("Failed to fetch graph information.")}else c=a.responseJSON.errorMessage,$("#calculatingGraph").html("Failed to fetch graph information: "+a.responseJSON.errorMessage);arangoHelper.arangoError("Graph",c)}catch(f){}}})};void 0===b.graphConfig||null===b.graphConfig?b.userConfig.fetch({success:function(a){var d=frontendConfig.db+"_"+b.name;try{b.graphConfig=a.toJSON().graphs[d],b.getGraphSettings(c),void 0===b.graphConfig||null===b.graphConfig?(b.graphSettingsView=new window.GraphSettingsView({name:b.name,userConfig:b.userConfig,saveCallback:b.render}),b.graphSettingsView.setDefaults(!0,!0)):(b.graphSettingsView&&b.graphSettingsView.remove(),b.graphSettingsView=new window.GraphSettingsView({name:b.name,userConfig:b.userConfig,saveCallback:b.render}))}catch(e){b.getGraphSettings(c)}}}):this.getGraphSettings(c)},setupSigma:function(){if(this.graphConfig&&this.graphConfig.edgeLabel){sigma.utils.pkg("sigma.settings");var a={defaultEdgeLabelColor:"#000",defaultEdgeLabelActiveColor:"#000",defaultEdgeLabelSize:12,edgeLabelSize:"fixed",edgeLabelThreshold:1,edgeLabelSizePowRatio:1};sigma.settings=sigma.utils.extend(sigma.settings||{},a),sigma.settings.drawEdgeLabels=!0,sigma.settings.clone=!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},deleteNode:function(a,b){var c,d,e,f=this;c=b?b:$("#delete-node-attr-id").text(),d=c.split("/")[0],e=c.split("/")[1];var g=arangoHelper.databaseUrl("/_api/gharial/"+encodeURIComponent(f.name)+"/vertex/"+encodeURIComponent(c.split("/")[0])+"/"+encodeURIComponent(c.split("/")[1]));if("yes"===$("#delete-node-edges-attr").val())$.ajax({cache:!1,type:"DELETE",contentType:"application/json",url:g,success:function(a){f.currentGraph.graph.dropNode(c),f.currentGraph.refresh()},error:function(){arangoHelper.arangoError("Graph","Could not delete node.")}});else{var h=function(a){a?arangoHelper.arangoError("Graph","Could not delete node."):(f.currentGraph.graph.dropNode(c),f.currentGraph.refresh())};this.documentStore.deleteDocument(d,e,h)}window.modalView.hide()},deleteNodes:function(){var a=this;try{var b=JSON.parse($("#delete-nodes-arr-id").text());_.each(b,function(b){a.deleteNode(null,b)})}catch(c){}},deleteNodesModal:function(){var a=[];if(_.each(this.selectedNodes,function(b){a.push(b)}),0===a.length)return void arangoHelper.arangoNotification("Graph","No nodes selected.");var b=[],c=[];c.push(window.modalView.createReadOnlyEntry("delete-nodes-arr-id","Really delete nodes",JSON.stringify(a))),b.push(window.modalView.createDeleteButton("Delete",this.deleteNodes.bind(this))),window.modalView.show("modalTable.ejs","Delete nodes",b,c)},deleteNodeModal:function(a){var b=[],c=[];c.push(window.modalView.createReadOnlyEntry("delete-node-attr-id","Really delete node",a)),this.noDefinedGraph||c.push(window.modalView.createSelectEntry("delete-node-edges-attr","Also delete edges?",void 0,void 0,[{value:"yes",label:"Yes"},{value:"no",label:"No"}])),b.push(window.modalView.createDeleteButton("Delete",this.deleteNode.bind(this))),window.modalView.show("modalTable.ejs","Delete node",b,c)},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,d){b?arangoHelper.arangoError("Could not create node",d):($("#emptyGraph").remove(),a.currentGraph.graph.addNode({id:c,label:c.split("/")[1]||"",size:a.graphConfig.nodeSize||15,color:a.graphConfig.nodeColor||a.ncolor||"#2ecc71",originalColor:a.graphConfig.nodeColor||a.ncolor||"#2ecc71",x:a.addNodeX+a.currentGraph.camera.x,y:a.addNodeY+a.currentGraph.camera.y}),window.modalView.hide(),a.currentGraph.refresh(),a.cameraToNode(a.currentGraph.graph.nodes(c)))},e={};if(""!==c&&void 0!==c&&(e._key=c),this.graphSettings.isSmart){var f=$("#new-smart-key-attr").val();""!==f&&void 0!==f?e[this.graphSettings.smartGraphAttribute]=f:e[this.graphSettings.smartGraphAttribute]=null}this.collection.createNode(a.name,b,e,d)},deleteEdgeModal:function(a){var b=[],c=[];c.push(window.modalView.createReadOnlyEntry("delete-edge-attr-id","Really delete edge",a)),b.push(window.modalView.createDeleteButton("Delete",this.deleteEdge.bind(this))),window.modalView.show("modalTable.ejs","Delete edge",b,c)},deleteEdge:function(){var a=this,b=$("#delete-edge-attr-id").text(),c=b.split("/")[0],d=b.split("/")[1],e=function(c){c?arangoHelper.arangoError("Graph","Could not delete edge."):(a.currentGraph.graph.dropEdge(b),a.currentGraph.refresh())};this.documentStore.deleteDocument(c,d,e),window.modalView.hide()},addNodeModal:function(){if(0!==this.graphSettings.vertexCollections){var a=[],b=[],c=[];_.each(this.graphSettings.vertexCollections,function(a){c.push({label:a.name,value:a.name})}),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:""}])),this.graphSettings.isSmart&&b.push(window.modalView.createTextEntry("new-smart-key-attr",this.graphSettings.smartGraphAttribute+"*",void 0,"The attribute value that is used to smartly shard the vertices of a graph. \nEvery vertex in this Graph has to have this attribute. \nCannot be modified later.","Cannot be modified later.",!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,f){if(a)arangoHelper.arangoError("Could not create edge",f);else{var g={source:c,target:d,id:e,color:b.graphConfig.edgeColor||b.ecolor};"true"===b.graphConfig.edgeEditable&&(g.size=1),b.currentGraph.graph.addEdge(g),b.graphConfig&&"curve"===b.graphConfig.edgeType&&sigma.canvas.edges.autoCurve(b.currentGraph),b.currentGraph.refresh()}b.clearOldContextMenu(!0),window.modalView.hide()},g={_from:c,_to:d};""!==e&&void 0!==e&&(g._key=e),this.collection.createEdge(b.name,a,g,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 edge 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.")},updateColors:function(a,b,c,d,e){var f=frontendConfig.db+"_"+this.name,g=this;c&&(g.ncolor=c),d&&(g.ecolor=d),this.userConfig.fetch({success:function(h){if(a===!0){g.graphConfig=h.toJSON().graphs[f];try{g.currentGraph.graph.nodes().forEach(function(a){e?a.color=a.sortColor:a.color=c})}catch(i){g.graphNotInitialized=!0,g.tmpGraphArray=[a,b,c,d]}}if(b===!0)try{g.currentGraph.graph.edges().forEach(function(a){e?a.color=a.sortColor:a.color=d})}catch(j){g.graphNotInitialized=!0,g.tmpGraphArray=[a,b,c,d]}g.currentGraph&&g.currentGraph.refresh()}})},nodesContextMenuCheck:function(a){this.nodesContextEventState=a,this.openNodesDate=new Date},createContextMenu:function(a){var b=this,c=b.cursorX-50,d=b.cursorY-50;this.clearOldContextMenu();var e=function(a){var c=wheelnav,d=new c("nodeContextMenu");d.maxPercent=1,d.wheelRadius=50,d.clockwise=!1,d.colors=b.colors.hotaru,d.multiSelect=!0,d.clickModeRotate=!1,d.slicePathFunction=slicePath().DonutSlice,d.createWheel([icon.plus,icon.arrowleft2]),d.navItems[0].selected=!1,d.navItems[0].hovered=!1,d.navItems[0].navigateFunction=function(a){b.clearOldContextMenu(),b.addNodeModal()},d.navItems[1].navigateFunction=function(a){b.clearOldContextMenu()},d.navItems[0].selected=!1,d.navItems[0].hovered=!1};$("#nodeContextMenu").css("position","fixed"),$("#nodeContextMenu").css("left",c),$("#nodeContextMenu").css("top",d),$("#nodeContextMenu").width(100),$("#nodeContextMenu").height(100),e(a)},createEdgeContextMenu:function(a,b){var c=this,d=this.cursorX-165,e=this.cursorY-120;this.clearOldContextMenu();var f=function(a,b){var d=["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],e=wheelnav,f=new e("nodeContextMenu");f.maxPercent=1,f.wheelRadius=50,f.clockwise=!1,f.colors=d,f.multiSelect=!0,f.clickModeRotate=!1,f.slicePathFunction=slicePath().DonutSlice,f.createWheel([icon.edit,icon.trash]),f.navItems[0].selected=!1,f.navItems[0].hovered=!1,f.navItems[0].navigateFunction=function(a){c.clearOldContextMenu(),c.editEdge(b)},f.navItems[1].navigateFunction=function(a){c.clearOldContextMenu(),c.deleteEdgeModal(b)},f.navItems[0].selected=!1,f.navItems[0].hovered=!1};$("#nodeContextMenu").css("left",d+115),$("#nodeContextMenu").css("top",e+72),$("#nodeContextMenu").width(100),$("#nodeContextMenu").height(100),f(b,a)},createNodeContextMenu:function(a,b){var c,d,e,f=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),"renderer"===b.substr(0,8)&&"e"===b.charAt(b.length-1)&&(e=a)}),void 0===c&&void 0===d&&_.each(b.data.node,function(a,b){"read_cam"===b.substr(0,8)&&"x"===b.charAt(b.length-1)&&(c=a+$("#graph-container").width()/2),"read_cam"===b.substr(0,8)&&"y"===b.charAt(b.length-1)&&(d=a+$("#graph-container").height()/2)});var g=2.5*e;g<75&&(g=75),this.clearOldContextMenu();var h=function(a,b){var e=["#364C4A","#497C7F","#92C5C0","#858168","#CCBCA5"],h=wheelnav,i=new h("nodeContextMenu");i.maxPercent=1,i.wheelRadius=g,i.clockwise=!1,i.colors=e,i.multiSelect=!1,i.clickModeRotate=!1,i.sliceHoverAttr={stroke:"#fff","stroke-width":2},i.slicePathFunction=slicePath().DonutSlice,f.noDefinedGraph?i.createWheel(["imgsrc:img/gv_edit.png","imgsrc:img/gv_trash.png"]):i.createWheel(["imgsrc:img/gv_edit.png","imgsrc:img/gv_trash.png","imgsrc:img/gv_flag.png","imgsrc:img/gv_link.png","imgsrc:img/gv_expand.png"]),$("#nodeContextMenu").addClass("animated bounceIn"),window.setTimeout(function(){i.navItems[0].navigateFunction=function(a){f.clearOldContextMenu(),f.editNode(b),f.removeHelp()},i.navItems[1].navigateFunction=function(a){f.clearOldContextMenu(),f.deleteNodeModal(b),f.removeHelp()},f.noDefinedGraph||(i.navItems[2].navigateFunction=function(a){f.clearOldContextMenu(),f.setStartNode(b),f.removeHelp()},i.navItems[3].navigateFunction=function(a){f.contextState.createEdge=!0,f.contextState._from=b,f.contextState.fromX=c,f.contextState.fromY=d;var e=document.getElementsByClassName("sigma-mouse")[0];f.drawHelp("Now click destination node, or click background to cancel."),e.addEventListener("mousemove",f.drawLine.bind(this),!1),f.clearOldContextMenu(),f.removeHelp()},i.navItems[4].navigateFunction=function(a){f.clearOldContextMenu(),f.expandNode(b),f.removeHelp()});var a=["Edit the node.","Delete node."];f.noDefinedGraph||(a.push("Set as startnode."),a.push("Draw edge."),a.push("Expand the node.")),_.each(a,function(a,b){i.navItems[b].navTitle.mouseover(function(){f.drawHelp(a)}),i.navItems[b].navTitle.mouseout(function(){f.removeHelp()})}),i.navItems[0].selected=!1,i.navItems[0].hovered=!1},300)},i=$("#graph-container").offset();$("#nodeContextMenu").width(2*g),$("#nodeContextMenu").height(2*g),$("#nodeContextMenu").css("left",c+i.left-g),$("#nodeContextMenu").css("top",d+i.top-g),h(b,a)},drawHelp:function(a){null===document.getElementById("helpTooltip")?$(this.el).append('
    '+a+"
    "):$("#helpTooltip span").text(a),$("#helpTooltip").show()},removeHelp:function(){$("#helpTooltip").remove()},clearMouseCanvas:function(){var a=document.getElementsByClassName("sigma-mouse")[0],b=a.getContext("2d");b.clearRect(0,0,$(a).width(),$(a).height())},expandNode:function(a){var b=this,c={};this.graphConfig&&(c=_.clone(this.graphConfig),delete c.layout,delete c.edgeType,delete c.renderer),c.query='FOR v, e, p IN 1..1 ANY "'+a+'" GRAPH "'+b.name+'" RETURN p',$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/aardvark/graph/"+encodeURIComponent(this.name)),contentType:"application/json",data:c,success:function(c){b.checkExpand(c,a)},error:function(b){arangoHelper.arangoError("Graph","Could not expand node: "+a+".")}}),b.removeHelp()},checkExpand:function(a,b){var c,d=this,e=a.nodes,f=a.edges,g=this.currentGraph.graph.nodes(),h=0,i=0;_.each(e,function(a){c=!1,_.each(g,function(d){c===!1&&(a.id===d.id?(d.id===b&&(d.label=d.label+" (expanded)"),c=!0):c=!1)}),c===!1&&(a.originalColor=a.color,d.currentGraph.graph.addNode(a),h++,_.each(f,function(b){b.source!==a.id&&b.target!==a.id||(b.originalColor=b.color,d.currentGraph.graph.addEdge(b),i++)}))}),$("#nodesCount").text(parseInt($("#nodesCount").text(),10)+h),$("#edgesCount").text(parseInt($("#edgesCount").text(),10)+i),(h>0||i>0)&&("force"===d.algorithm?d.startLayout(!0,b):"fruchtermann"===d.algorithm?(sigma.layouts.fruchtermanReingold.start(d.currentGraph),d.currentGraph.refresh(),d.cameraToNode(b,1e3)):"noverlap"===d.algorithm&&d.startLayout(!0,b))},cameraToNode:function(a,b){var c=this;"string"==typeof a&&(a=c.currentGraph.graph.nodes(a));var d=function(a){sigma.misc.animation.camera(c.currentGraph.camera,{x:a.x,y:a.y},{duration:1e3})};b?window.setTimeout(function(){d(a)},b):d(a)},drawLine:function(a){var b=window.App.graphViewer.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.strokeStyle=this.newEdgeColor,h.stroke()}},getGraphSettings:function(a){var b=this;this.userConfig.fetch({success:function(c){var d=frontendConfig.db+"_"+b.name;b.graphConfig=c.toJSON().graphs[d],b.graphSettingsView&&b.graphSettingsView.remove(),b.graphSettingsView=new window.GraphSettingsView({name:b.name,userConfig:b.userConfig,saveCallback:b.render});var e=function(){b.graphSettingsView.render(),a&&a(b.graphConfig)};void 0===b.graphConfig?(b.graphSettingsView.setDefaults(!0,!0),b.userConfig.fetch({success:function(a){b.graphConfig=a.toJSON().graphs[d],e()}})):e()}})},setStartNode:function(a){this.graphConfig.nodeStart=a,this.graphSettingsView.saveGraphSettings(void 0,void 0,a)},editNode:function(a){var b=function(a,b){};arangoHelper.openDocEditor(a,"doc",b)},editEdge:function(a){var b=function(){};arangoHelper.openDocEditor(a,"edge",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},initializeGraph:function(a,b){a.refresh()},renderGraph:function(a,b,c,d,e,f){var g=this;this.graphSettings=a.settings;var h="#2ecc71";if(g.ncolor&&(h=g.ncolor),a.edges&&a.nodes){0===a.nodes.length&&0===a.edges.length&&a.nodes.push({id:a.settings.startVertex._id,label:a.settings.startVertex._key,size:10,color:h,x:Math.random(),y:Math.random()});var i="position: absolute; left: 25px; bottom: 50px;";this.aqlMode||$("#graph-container").append('
    '+a.nodes.length+' nodes'+a.edges.length+" edges
    ")}this.Sigma=sigma,d?g.algorithm=d:g.algorithm="force",e?g.renderer=e:g.renderer="canvas",this.graphConfig&&(this.graphConfig.layout&&(d||(g.algorithm=this.graphConfig.layout)),this.graphConfig.renderer&&(e||(g.renderer=this.graphConfig.renderer))),"canvas"===g.renderer&&(g.isEditable=!0);var j={scalingMode:"inside",borderSize:3,defaultNodeBorderColor:"#8c8c8c",doubleClickEnabled:!1,minNodeSize:5,labelThreshold:9,maxNodeSize:15,batchEdgesDrawing:!0,minEdgeSize:1,maxEdgeSize:1,enableEdgeHovering:!0,edgeHoverColor:"#8c8c8c",defaultEdgeHoverColor:"#8c8c8c",defaultEdgeType:"arrow",edgeHoverSizeRatio:2.5,edgeHoverExtremities:!0,nodesPowRatio:.5,autoRescale:!0,mouseEnabled:!0,touchEnabled:!0,approximateLabelWidth:!0,font:"Roboto"};j.nodeHaloColor="rgba(146,197,192, 0.8)",j.nodeHaloStroke=!1,j.nodeHaloStrokeColor="#000",j.nodeHaloStrokeWidth=0,j.nodeHaloSize=25,j.nodeHaloClustering=!1,j.nodeHaloClusteringMaxRadius=1e3,j.edgeHaloColor="#fff",j.edgeHaloSize=10,j.drawHalo=!0,"canvas"===g.renderer&&(j.autoCurveSortByDirection=!0),a.nodes&&a.nodes.length>250&&(j.hideEdgesOnMove=!0),this.graphConfig&&this.graphConfig.edgeType&&(j.defaultEdgeType=this.graphConfig.edgeType),f&&(j.defaultEdgeType=f),"arrow"===j.defaultEdgeType&&(j.minArrowSize=7),c&&(g.renderer="canvas",a.nodes.length<500?g.algorithm="fruchtermann":j.scalingMode="outside",j.drawEdgeLabels=!1,j.minNodeSize=2,j.maxNodeSize=8),"webgl"===g.renderer&&(j.enableEdgeHovering=!1);var k=new this.Sigma({graph:a,container:"graph-container",renderer:{container:document.getElementById("graph-container"),type:g.renderer},settings:j});if(this.currentGraph=k,this.aqlMode||sigma.plugins.fullScreen({container:"graph-container",btnId:"graph-fullscreen-btn"}),k.graph.nodes().forEach(function(a){a.originalColor=a.color}),k.graph.edges().forEach(function(a){a.originalColor=a.color}),"noverlap"===g.algorithm){var l=k.configNoverlap({nodeMargin:.1,scaleNodes:1.05,gridSize:75,easing:"quadraticInOut",duration:1500});l.bind("start stop interpolate",function(a){"start"===a.type,"interpolate"===a.type})}else if("fruchtermann"===g.algorithm){var m=sigma.layouts.fruchtermanReingold.configure(k,{iterations:100,easing:"quadraticInOut",duration:1500});m.bind("start stop interpolate",function(a){})}if(!g.aqlMode){var n=function(a,b){if($(".nodeInfoDiv").remove(),g.contextState.createEdge===!1&&window.location.hash.indexOf("graph")>-1){var c=function(a,b,c){if(a)g.currentGraph.graph.dropNode(c),g.currentGraph.refresh();else{var d="";d+='ID '+b._id+"",Object.keys(b).length>3&&(d+='ATTRIBUTES '),_.each(b,function(a,b){"_key"!==b&&"_id"!==b&&"_rev"!==b&&"_from"!==b&&"_to"!==b&&(d+=''+b+"")});var e='";$("#graph-container").append(e),g.isFullscreen&&($(".nodeInfoDiv").css("top","10px"),$(".nodeInfoDiv").css("left","10px")),$("#nodeInfoDiv").fadeIn("slow")}};b?g.documentStore.getDocument(a.data.node.id.split("/")[0],a.data.node.id.split("/")[1],c):g.documentStore.getDocument(a.data.edge.id.split("/")[0],a.data.edge.id.split("/")[1],c)}};k.bind("clickNode",function(a){if(g.contextState.createEdge===!0){g.clearMouseCanvas(),g.removeHelp(),g.contextState._to=a.data.node.id;var b=g.contextState._from.split("/")[0],c=g.contextState._to.split("/")[0],d=g.getEdgeDefinitionCollections(b,c);0===d.length?arangoHelper.arangoNotification("Graph","No valid edge definition found."):(g.addEdgeModal(d,g.contextState._from,g.contextState._to),g.clearOldContextMenu(!1))}else g.dragging||(g.contextState.createEdge===!0?g.newEdgeColor="#ff0000":g.newEdgeColor="#000000","canvas"===g.renderer&&g.currentGraph.renderers[0].halo({nodes:g.currentGraph.graph.nodes(),nodeHaloColor:"#DF0101",nodeHaloSize:100}),n(a,!0),g.activeNodes=[a.data.node],"canvas"===g.renderer&&k.renderers[0].halo({nodes:[a.data.node]}),g.createNodeContextMenu(a.data.node.id,a))}),g.noDefinedGraph?k.bind("clickStage",function(a){g.clearOldContextMenu(!0),g.clearMouseCanvas(),g.removeHelp()}):k.bind("clickStage",function(a){a.data.captor.isDragging?(g.clearOldContextMenu(!0),g.clearMouseCanvas()):g.contextState.createEdge===!0?(g.clearOldContextMenu(!0),g.clearMouseCanvas(),g.removeHelp()):($("#nodeContextMenu").is(":visible")?(g.clearOldContextMenu(!0),g.clearMouseCanvas()):(g.addNodeX=a.data.captor.x,g.addNodeY=a.data.captor.y,g.createContextMenu(a),g.clearMouseCanvas()),k.renderers[0].halo({nodes:g.activeNodes}))})}if("canvas"===g.renderer){this.graphConfig&&"curve"===this.graphConfig.edgeType&&sigma.canvas.edges.autoCurve(k),k.bind("clickEdge",function(a){n(a,!1)}),k.renderers[0].bind("render",function(a){k.renderers[0].halo({nodes:g.activeNodes})});var o=function(){g.nodeHighlighted=!1,g.activeNodes=[],k.graph.nodes().forEach(function(a){a.color=a.originalColor}),k.graph.edges().forEach(function(a){a.color=a.originalColor}),$(".nodeInfoDiv").remove(),k.refresh({skipIndexation:!0})};k.bind("rightClickStage",function(a){g.nodeHighlighted="undefinedid",o()}),k.bind("rightClickNode",function(a){if(g.nodeHighlighted!==a.data.node.id){var b=a.data.node.id,c=k.graph.neighbors(b);c[b]=a.data.node,k.graph.nodes().forEach(function(a){c[a.id]?a.color=a.originalColor:a.color="#eee"}),k.graph.edges().forEach(function(a){c[a.source]&&c[a.target]?a.color="rgb(64, 74, 83)":a.color="#eee"}),g.nodeHighlighted=!0,k.refresh({skipIndexation:!0})}else o()}),this.graphConfig&&this.graphConfig.edgeEditable&&k.bind("clickEdge",function(a){var b=a.data.edge.id;g.createEdgeContextMenu(b,a)})}if("noverlap"===g.algorithm)k.startNoverlap();else if("force"===g.algorithm){var p="color: rgb(64, 74, 83); cursor: pointer; position: absolute; right: 30px; bottom: 40px; z-index: 9999;";g.aqlMode&&(p="color: rgb(64, 74, 83); cursor: pointer; position: absolute; right: 30px; margin-top: 10px; margin-right: -15px"),$("#graph-container").after('
    Stop layout
    '),g.startLayout();var q=250,r=500;a.nodes&&(q=a.nodes.length,c?q<250?q=250:q+=r:(q<=250&&(q=500),q+=r)),a.empty&&arangoHelper.arangoNotification("Graph","Your graph is empty. Click inside the white window to create your first node."),window.setTimeout(function(){g.stopLayout()},q)}else"fruchtermann"===g.algorithm&&sigma.layouts.fruchtermanReingold.start(k);"force"!==g.algorithm&&g.reInitDragListener();var s=document.getElementsByClassName("sigma-mouse")[0];s.addEventListener("mousemove",g.trackCursorPosition.bind(this),!1), +b&&($("#"+b).focus(),$("#graphSettingsContent").animate({scrollTop:$("#"+b).offset().top},2e3)),$("#calculatingGraph").fadeOut("slow"),c||g.graphConfig&&"false"===g.graphConfig.nodeSizeByEdges,g.calcFinished=new Date,a.empty===!0&&$(".sigma-background").before('The graph is empty. Please right-click to add a node.'),g.graphNotInitialized===!0&&(g.updateColors(g.tmpGraphArray),g.graphNotInitialized=!1,g.tmpGraphArray=[]),"force"===g.algorithm?$("#toggleForce").fadeIn("fast"):$("#toggleForce").fadeOut("fast")},reInitDragListener:function(){var a=this;void 0!==this.dragListener&&(sigma.plugins.killDragNodes(this.currentGraph),this.dragListener={}),this.dragListener=sigma.plugins.dragNodes(this.currentGraph,this.currentGraph.renderers[0]),this.dragListener.bind("drag",function(b){a.dragging=!0}),this.dragListener.bind("drop",function(b){window.setTimeout(function(){a.dragging=!1},400)})},keyUpFunction:function(a){var b=this;switch(a.keyCode){case 76:a.altKey&&b.toggleLasso()}},toggleLayout:function(){this.layouting?this.stopLayout():this.startLayout()},startLayout:function(a,b){var c=this;this.currentGraph.settings("drawLabels",!1),this.currentGraph.settings("drawEdgeLabels",!1),sigma.plugins.killDragNodes(this.currentGraph),a===!0&&(this.currentGraph.killForceAtlas2(),window.setTimeout(function(){c.stopLayout(),b&&c.currentGraph.refresh({skipIndexation:!0})},500)),$("#toggleForce .fa").removeClass("fa-play").addClass("fa-pause"),$("#toggleForce span").html("Stop layout"),this.layouting=!0,this.aqlMode?this.currentGraph.startForceAtlas2({worker:!0}):this.currentGraph.startForceAtlas2({worker:!0})},stopLayout:function(){$("#toggleForce .fa").removeClass("fa-pause").addClass("fa-play"),$("#toggleForce span").html("Resume layout"),this.layouting=!1,this.currentGraph.stopForceAtlas2(),this.currentGraph.settings("drawLabels",!0),this.currentGraph.settings("drawEdgeLabels",!0),this.currentGraph.refresh({skipIndexation:!0}),this.reInitDragListener()}})}(),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,"Indexes"),this.getIndex()},breadcrumb:function(){$("#subNavigationBar .breadcrumb").html("Collection: "+this.collectionName)},getIndex:function(){var a=function(a,b,c){a?window.arangoHelper.arangoError("Index",b.errorMessage):this.renderIndex(b,c)}.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(),"Indexes"!==$(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,b){this.index=a;var c=function(a,c){if(a)arangoHelper.arangoError("Jobs","Could not read pending jobs.");else{var d=function(a,b,c){a?404===b.responseJSON.code?arangoHelper.deleteAardvarkJob(c):400===b.responseJSON.code?(arangoHelper.arangoError("Index creation failed",b.responseJSON.errorMessage),arangoHelper.deleteAardvarkJob(c)):204===b.responseJSON.code&&arangoHelper.arangoMessage("Index","There is at least one new index in the queue or in the process of being created."):arangoHelper.deleteAardvarkJob(c)};_.each(c,function(a){a.collection===b&&$.ajax({type:"PUT",cache:!1,url:arangoHelper.databaseUrl("/_api/job/"+a.id),contentType:"application/json",success:function(b,c,e){d(!1,b,a.id)},error:function(b){d(!0,b,a.id)}})})}};arangoHelper.getAardvarkJobs(c);var d="collectionInfoTh modal-text";if(this.index){var e="",f="";_.each(this.index.indexes,function(a){f="primary"===a.type||"edge"===a.type?'':'',void 0!==a.fields&&(e=a.fields.join(", "));var b=a.id.indexOf("/"),c=a.id.substr(b+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(""+c+""+a.type+""+a.unique+""+h+""+g+""+e+""+f+"")})}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;$(this.el).html(this.template.render({})),$(this.el2).hide(),$(this.el3).hide();var c=function(a,c){var d;d=a?arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database","_system"):arangoHelper.databaseUrl("/_api/database/user"),frontendConfig.authenticationEnabled===!1&&($("#logout").hide(),$(".login-window #databases").css("height","90px")),$("#loginForm").hide(),$(".login-window #databases").show(),$.ajax(d).success(function(a){$("#loginDatabase").html(""),_.each(a.result,function(a,b){c?$("#loginDatabase").append(""):$("#loginDatabase").append("")}),b.renderDBS()}).error(function(){c?c():console.log("could not fetch user db data")})};if(frontendConfig.authenticationEnabled&&a!==!0){var d=arangoHelper.getCurrentJwtUsername();if(null!==d&&"undefined"!==d&&void 0!==d){var e=function(){b.collection.logout(),window.setTimeout(function(){$("#loginUsername").focus()},300)};c(arangoHelper.getCurrentJwtUsername(),e)}else window.setTimeout(function(){$("#loginUsername").focus()},300)}else c();return $(".bodyWrapper").show(),b.checkVersion(),this},checkVersion:function(){var a=this;window.setTimeout(function(){var b,c=document.getElementById("loginSVG"),d=c.contentDocument;void 0!==frontendConfig.isEnterprise?(b=frontendConfig.isEnterprise?d.getElementById("logo-enterprise"):d.getElementById("logo-community"),b.setAttribute("visibility","visible")):a.checkVersion()},150)},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 d.renderDBSelection(a)},renderDBSelection:function(a){var b=this,c=arangoHelper.databaseUrl("/_api/user/"+encodeURIComponent(a)+"/database","_system");frontendConfig.authenticationEnabled===!1&&(c=arangoHelper.databaseUrl("/_api/database/user")),$(".wrong-credentials").hide(),b.loggedIn=!0,$.ajax(c).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("")}),b.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),d&&(g.checked=d),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()})),a.resize(),window.frontendConfig.isEnterprise===!0?($("#ArangoDBLogo").after(''),$("#enterpriseLabel").fadeIn("slow")):($("#ArangoDBLogo").after(''),$("#communityLabel").fadeIn("slow"),$(".enterprise-menu").show()),this},resize:function(){var a=$(window).height()-$(".subMenuEntries").first().height();$("#navigationBar").css("min-height",a),$("#navigationBar").css("height",a)},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;"enterprise"!==c&&($(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){$("#subNavigationBar .breadcrumb").html(""),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");return"enterprise"===b?void window.open("https://www.arangodb.com/download-arangodb-enterprise/","_blank"):void(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){$("#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:1e4,knownServers:[],events:{"click #nodesContent .coords-nodes .pure-table-row":"navigateToNode","click #addCoord":"addCoord","click #removeCoord":"removeCoord","click #addDBs":"addDBs","click #removeDBs":"removeDBs","click .abortClusterPlan":"abortClusterPlanModal","keyup #plannedCoords":"checkKey","keyup #plannedDBs":"checkKey"},checkKey:function(a){if(13===a.keyCode){var b=this,c=function(a){var c;if("plannedCoords"===a.target.id)try{c=JSON.parse($("#plannedCoords").val()),"number"==typeof c?(window.modalView.hide(),b.setCoordSize(c)):arangoHelper.arangoError("Error","Invalid value. Must be a number.")}catch(a){arangoHelper.arangoError("Error","Invalid value. Must be a number.")}else if("plannedDBs"===a.target.id)try{c=JSON.parse($("#plannedCoords").val()),"number"==typeof c?(window.modalView.hide(),b.setDBsSize(c)):arangoHelper.arangoError("Error","Invalid value. Must be a number.")}catch(a){arangoHelper.arangoError("Error","Invalid value. Must be a number."); +}};this.changePlanModal(c.bind(null,a))}},changePlanModal:function(a,b){var c=[],d=[];d.push(window.modalView.createReadOnlyEntry("plan-confirm-button","Caution","You are changing the cluster plan. Continue?",void 0,void 0,!1,/[<>&'"]/)),c.push(window.modalView.createSuccessButton("Yes",a.bind(this,b))),window.modalView.show("modalTable.ejs","Modify Cluster Size",c,d)},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){if("#nodes"===window.location.hash){var b=this;$("#content").is(":empty")&&arangoHelper.renderEmpty("Please wait. Requesting cluster information...","fa fa-spin fa-circle-o-notch"),a!==!1&&arangoHelper.buildNodesSubNav("Overview");var c=function(a){$.ajax({type:"GET",url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",success:function(c){"#nodes"===window.location.hash&&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){"#nodes"===window.location.hash&&c(a.Health)},error:function(){"#nodes"===window.location.hash&&arangoHelper.arangoError("Cluster","Could not fetch cluster information")}})}},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.")}})},abortClusterPlanModal:function(){var a=[],b=[];b.push(window.modalView.createReadOnlyEntry("plan-abort-button","Caution","You are aborting the planned cluster plan. All pending servers are going to be removed. Continue?",void 0,void 0,!1,/[<>&'"]/)),a.push(window.modalView.createSuccessButton("Yes",this.abortClusterPlan.bind(this))),window.modalView.show("modalTable.ejs","Modify Cluster Size",a,b)},abortClusterPlan:function(){window.modalView.hide();try{var a=JSON.parse($("#infoCoords > .positive > span").text()),b=JSON.parse($("#infoDBs > .positive > span").text());this.setCoordSize(a),this.setDBsSize(b)}catch(c){console.log(c),arangoHelper.arangoError("Plan","Could not abort Cluster Plan")}},renderCounts:function(a,b){var c=this,d=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"))},e=function(a){var e=0,f=0,g=0,h=0,i=0,j=0;_.each(a,function(a){"Coordinator"===a.Role?"GOOD"===a.Status?f++:e++:"DBServer"===a.Role&&("GOOD"===a.Status?h++:i++)}),$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/numberOfServers"),contentType:"application/json",processData:!1,success:function(a){g=Math.abs(f+e-a.numberOfCoordinators),j=Math.abs(h+i-a.numberOfDBServers),b?b({coordsPending:g,coordsOk:f,coordsErrors:e,dbsPending:j,dbsOk:h,dbsErrors:i}):(d("#infoDBs",h,j,i),d("#infoCoords",f,g,e)),c.isPlanFinished()||($(".scaleGroup").addClass("no-hover"),$("#plannedCoords").attr("disabled","disabled"),$("#plannedDBs").attr("disabled","disabled"))}})};$.ajax({type:"GET",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/health"),contentType:"application/json",processData:!1,success:function(a){e(a.Health)}})},isPlanFinished:function(){var a;return a=!($("#infoDBs").find(".warning").length>0)&&!($("#infoCoords").find(".warning").length>0)},addCoord:function(){var a=function(){window.modalView.hide(),this.setCoordSize(this.readNumberFromID("#plannedCoords",!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},removeCoord:function(){var a=function(){window.modalView.hide(),this.setCoordSize(this.readNumberFromID("#plannedCoords",!1,!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},addDBs:function(){var a=function(){window.modalView.hide(),this.setDBsSize(this.readNumberFromID("#plannedDBs",!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},removeDBs:function(){var a=function(){window.modalView.hide(),this.setDBsSize(this.readNumberFromID("#plannedDBs",!1,!0))};this.isPlanFinished()?this.changePlanModal(a.bind(this)):(arangoHelper.arangoNotification("Cluster Plan","Planned state not yet finished."),$(".noty_buttons .button-danger").remove())},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=5e3,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,renderComplete:!1,customQueries:[],cachedQueries:{},graphViewers:[],queries:[],state:{lastQuery:{query:void 0,bindParam:void 0}},graphs:[],settings:{aqlWidth:void 0},currentQuery:{},initDone:!1,bindParamRegExp:/@(@?\w+\d*)/,bindParamTableObj:{},bindParamMode:"table",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 span":"switchAce","click .outputEditorWrapper .closeResult":"closeResult","click #toggleQueries1":"toggleQueries","click #toggleQueries2":"toggleQueries","click #createNewQuery":"createAQL","click #saveCurrentQuery":"addAQL","click #updateCurrentQuery":"updateAQL","click #exportQuery":"exportCustomQueries","click #importQuery":"openImportDialog","click #removeResults":"removeResults","click #querySpotlight":"showSpotlight","click #deleteQuery":"selectAndDeleteQueryFromTable","click #explQuery":"selectAndExplainQueryFromTable","click .closeProfile":"closeProfile","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)},closeProfile:function(a){var b=$(a.currentTarget).parent().attr("counter");_.each($(".queryProfile"),function(a){$(a).attr("counter")===b&&$(a).fadeOut("fast").remove()})},toggleBindParams:function(){this.allowParamToggle?($("#bindParamEditor").toggle(),$("#bindParamAceEditor").toggle(),"JSON"===$("#switchTypes").text()?(this.bindParamMode="json",$("#switchTypes").text("Table"),this.updateQueryTable(),this.bindParamAceEditor.setValue(JSON.stringify(this.bindParamTableObj,null,"\t"),1),this.deselect(this.bindParamAceEditor)):(this.bindParamMode="table",$("#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(){this.cachedQueries={},$(".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)):($("#updateCurrentQuery").hide(),void 0===this.settings.aqlWidth?$(".aqlEditorWrapper").first().width(.33*$(window).width()):$(".aqlEditorWrapper").first().width(this.settings.aqlWidth),"undefined"!==localStorage.getItem("lastOpenQuery")&&$("#updateCurrentQuery").show()):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","createNewQuery","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();var e=localStorage.getItem("lastOpenQuery");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(),this.currentQuery=this.collection.findWhere({name:c}),this.currentQuery&&localStorage.setItem("lastOpenQuery",this.currentQuery.get("name")),$("#updateCurrentQuery").show(),$("#lastQuery").remove(),e!==c&&($("#queryContent .arangoToolbarTop .pull-left").append('Previous Query'),this.breadcrumb(c)),$("#lastQuery").hide().fadeIn(500).on("click",function(){$("#updateCurrentQuery").hide(),d.aqlEditor.setValue(d.state.lastQuery.query,1),d.fillBindParamTable(d.state.lastQuery.bindParam),d.updateBindParams(),d.collection.each(function(a){a=a.toJSON(),a.value===d.state.lastQuery.query?d.breadcrumb(a.name):d.breadcrumb()}),$("#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"),c=a.currentTarget;if(!$(c).hasClass("disabled")){_.each($(c).parent().children(),function(a){$(a).removeClass("active")});var d=$(c).attr("val");$(c).addClass("active"),$(c).text(d.charAt(0).toUpperCase()+d.slice(1)),"JSON"===d?($("#outputEditor"+b).show(),$("#outputGraph"+b).hide(),$("#outputTable"+b).hide()):"Table"===d?($("#outputTable"+b).show(),$("#outputGraph"+b).hide(),$("#outputEditor"+b).hide()):"Graph"===d&&($("#outputGraph"+b).show(),$("#outputTable"+b).hide(),$("#outputEditor"+b).hide()),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.lastSentQueryString=this.aqlEditor.getValue(),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("false"!==e&&($("#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)):(d.cachedQueries[c]=b,a.setValue(b.msg,1),d.deselect(a),$.noty.clearQueue(),$.noty.closeAll(),d.handleResult(c),$(".centralRow").animate({scrollTop:$("#queryContent").height()},"fast")),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(){if(this.renderComplete===!1){var a=this.getCachedQuery(),b=this;if(null!==a&&void 0!==a&&""!==a){this.aqlEditor.setValue(a.query,1);var c=localStorage.getItem("lastOpenQuery");if(void 0!==c&&"undefined"!==c)try{var d=this.collection.findWhere({name:c}).toJSON();d.value===a.query&&(b.breadcrumb(c),$("#updateCurrentQuery").show())}catch(e){}if(this.aqlEditor.getSession().setUndoManager(new ace.UndoManager),""!==a.parameter||void 0!==a)try{b.bindParamTableObj=JSON.parse(a.parameter);var f;_.each($("#arangoBindParamTable input"),function(a){f=$(a).attr("name"),"object"==typeof b.bindParamTableObj[f]?$(a).val(JSON.parse(b.bindParamTableObj[f])):$(a).val(b.bindParamTableObj[f])}),b.setCachedQuery(b.aqlEditor.getValue(),JSON.stringify(b.bindParamTableObj))}catch(e){}}this.renderComplete=!0}},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(""!==a&&"undefined"!==Storage){var c={query:a,parameter:b};this.currentQuery=c,localStorage.setItem("cachedQuery",JSON.stringify(c))}},closeResult:function(a){var b=this,c=$("#"+$(a.currentTarget).attr("element")).parent(),d=$(c).attr("id"),e=d.substring(d.length-1,d.length-0);delete this.cachedQueries[e],$(c).hide("fast",function(){$(c).remove(),0===$(".outputEditorWrapper").length&&(b.cachedQueries={},$("#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.refreshAQL(),this.renderComplete=!1,this.$el.html(this.template.render({})),this.afterRender(),this.initDone||(this.settings.aqlWidth=$(".aqlEditorWrapper").width()),"json"===this.bindParamMode&&this.toggleBindParams(),this.initDone=!0,this.renderBindParamTable(!0),this.restoreCachedQueries()},cleanupGraphs:function(){_.each(this.graphViewers,function(a){a.killCurrentGraph(),a.remove()}),$("canvas").remove(),this.graphViewers=null,this.graphViewers=[]},afterRender:function(){var a=this;this.initAce(),this.initTables(),this.fillSelectBoxes(),this.makeResizeable(),this.initQueryImport(),$(".inputEditorWrapper").height($(window).height()/10*5+25),window.setTimeout(function(){a.resize()},10),a.deselect(a.aqlEditor)},restoreCachedQueries:function(){var a=this;Object.keys(this.cachedQueries).length>0&&_.each(this.cachedQueries,function(b,c){a.renderQueryResultBox(c,null,!0),a.renderQueryResult(b,c,!0),a.fillSentQueryValue(c),b.sentQuery&&a.bindQueryResultButtons(null,c)})},fillSentQueryValue:function(a){var b=ace.edit("sentQueryEditor"+a);b.setValue(this.cachedQueries[a].sentQuery,1)},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.');var c=localStorage.getItem("lastOpenQuery"),d=this.collection.findWhere({name:c});try{d=d.toJSON()}catch(e){}if(d){var f;_.each($("#arangoBindParamTable input"),function(a){f=$(a).attr("name"),_.each(d.parameter,function(b,c){c===f&&$(a).val(b)})})}},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(){if(a.aqlEditor.getValue().length<1&&Object.keys(a.bindParamTableObj).length>0&&(a.lastCachedBindParameter=a.bindParamTableObj),a.checkForNewBindParams(),a.renderBindParamTable(),a.parseQuery(a.aqlEditor.getValue()).bindParams.length>0){var b=[];if(_.each(a.parseQuery(a.aqlEditor.getValue()).bindParams,function(c){if(void 0!==$("input[name='"+c+"']")&&$("input[name='"+c+"']").length>0&&0===$("input[name='"+c+"']").val().length&&a.lastCachedBindParameter){var d=$("input[name='"+c+"']").val();a.lastCachedBindParameter[c]&&a.lastCachedBindParameter[c]!==d&&b.push(c)}}),b.length>0){var c={};_.each(b,function(b,d){c[b]=a.lastCachedBindParameter[b]}),a.bindParamTableObj=c,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()});var b=function(a){_.each($(".outputEditors"),function(b){var c=$(b).children().first().attr("id");c=c.replace("Wrapper","");var d=ace.edit(c);d.setFontSize(a)})},c=[this.aqlEditor,this.bindParamAceEditor];_.each(c,function(c){c.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"}),c.commands.addCommand({name:"increaseFontSize",bindKey:{win:"Shift-Alt-Up",linux:"Shift-Alt-Up",mac:"Shift-Alt-Up"},exec:function(c){var d=parseInt(a.aqlEditor.getFontSize().match(/\d+/)[0],10)+1;d+="pt",a.aqlEditor.setFontSize(d),b(d)},multiSelectAction:"forEach"}),c.commands.addCommand({name:"decreaseFontSize",bindKey:{win:"Shift-Alt-Down",linux:"Shift-Alt-Down",mac:"Shift-Alt-Down"},exec:function(c){var d=parseInt(a.aqlEditor.getFontSize().match(/\d+/)[0],10)-1;d+="pt",a.aqlEditor.setFontSize(d),b(d)},multiSelectAction:"forEach"}),c.commands.addCommand({name:"executeQuery",bindKey:{win:"Ctrl-Return",mac:"Command-Return",linux:"Ctrl-Return"},exec:function(){a.executeQuery()}}),c.commands.addCommand({name:"executeSelectedQuery",bindKey:{win:"Ctrl-Alt-Return",mac:"Command-Alt-Return",linux:"Ctrl-Alt-Return"},exec:function(){a.executeQuery(void 0,!0)}}),c.commands.addCommand({name:"saveQuery",bindKey:{win:"Ctrl-Shift-S",mac:"Command-Shift-S",linux:"Ctrl-Shift-S"},exec:function(){a.addAQL()}}),c.commands.addCommand({name:"explainQuery",bindKey:{win:"Ctrl-Shift-Return",mac:"Command-Shift-Return",linux:"Ctrl-Shift-Return"},exec:function(){a.explainQuery()}}),c.commands.addCommand({name:"togglecomment",bindKey:{win:"Ctrl-Shift-C",linux:"Ctrl-Shift-C",mac:"Command-Shift-C"},exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"}),c.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)},updateAQL:function(){var a=this.aqlEditor.getValue(),b=$("#lastQueryName").html(),c=this.collection.findWhere({name:b});if(c){c.set("value",a),c.set("parameter",this.bindParamTableObj);var d=function(a){if(a)arangoHelper.arangoError("Query","Could not save query");else{var c=this;arangoHelper.arangoNotification("Saved query",'"'+b+'"'),this.collection.fetch({success:function(){c.updateLocalQueries()}})}}.bind(this);this.collection.saveCollectionQueries(d)}this.refreshAQL(!0)},createAQL:function(){localStorage.setItem("lastOpenQuery",void 0),this.aqlEditor.setValue(""),this.refreshAQL(!0),this.breadcrumb(),$("#updateCurrentQuery").hide()},createCustomQueryModal:function(){var a=[],b=[];b.push(window.modalView.createTextEntry("new-query-name","Name","",void 0,void 0,!1,[{rule:Joi.string().required(),msg:"No query name given."}])),a.push(window.modalView.createSuccessButton("Save",this.saveAQL.bind(this))),window.modalView.show("modalTable.ejs","Save Query",a,b,void 0,void 0,{"keyup #new-query-name":this.listenKey.bind(this)})},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 c=this;this.collection.fetch({success:function(){c.updateLocalQueries(),$("#updateCurrentQuery").show(),c.breadcrumb(b)}})}}.bind(this);this.collection.saveCollectionQueries(g),window.modalView.hide()}},breadcrumb:function(a){window.setTimeout(function(){a?$("#subNavigationBar .breadcrumb").html('Query: '+a+""):$("#subNavigationBar .breadcrumb").html("")},50)},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(a,b){this.verifyQueryAndParams()||($("#outputEditorWrapper"+this.outputCounter).hide(),$("#outputEditorWrapper"+this.outputCounter).show("fast"),this.lastSentQueryString=this.aqlEditor.getValue(),this.renderQueryResultBox(this.outputCounter,b))},renderQueryResultBox:function(a,b,c){this.$(this.outputDiv).prepend(this.outputTemplate.render({counter:a,type:"Query"}));var d=ace.edit("outputEditor"+a),e=ace.edit("sentQueryEditor"+a),f=ace.edit("sentBindParamEditor"+a);e.getSession().setMode("ace/mode/aql"),e.setOption("vScrollBarAlwaysVisible",!0),e.setFontSize("13px"),e.setReadOnly(!0),this.setEditorAutoHeight(e),d.setFontSize("13px"),d.getSession().setMode("ace/mode/json"),d.setReadOnly(!0),d.setOption("vScrollBarAlwaysVisible",!0),d.setShowPrintMargin(!1),this.setEditorAutoHeight(d),f.setValue(JSON.stringify(this.bindParamTableObj),1),f.setOption("vScrollBarAlwaysVisible",!0),f.getSession().setMode("ace/mode/json"),f.setReadOnly(!0),this.setEditorAutoHeight(f),c||(this.fillResult(a,b),this.outputCounter++)},readQueryData:function(a,b){var c=$("#querySize"),d={id:"currentFrontendQuery"};if(a?d.query=this.aqlEditor.getSelectedText():d.query=this.aqlEditor.getValue(),0===d.query.length)a?arangoHelper.arangoError("Query","Your query selection is empty!"):arangoHelper.arangoError("Query","Your query is empty!"),d=!1;else{"all"===c.val()?d.batchSize=1e6:d.batchSize=parseInt(c.val(),10);var e={};Object.keys(this.bindParamTableObj).length>0&&(_.each(this.bindParamTableObj,function(a,b){d.query.indexOf(b)>-1&&(e[b]=a)}),d.bindVars=this.bindParamTableObj),Object.keys(e).length>0&&(d.bindVars=e),b&&(d.options={profile:!0})}return JSON.stringify(d)},fillResult:function(a,b){var c=this,d=this.readQueryData(b,!0);if("false"!==d&&d){var e=ace.edit("sentQueryEditor"+a);e.setValue(c.aqlEditor.getValue(),1),$.ajax({type:"POST",url:arangoHelper.databaseUrl("/_api/cursor"),headers:{"x-arango-async":"store"},data:d,contentType:"application/json",processData:!1,success:function(b,d,e){e.getResponseHeader("x-arango-async-id")&&c.queryCallbackFunction(e.getResponseHeader("x-arango-async-id"),a),$.noty.clearQueue(),$.noty.closeAll(),c.handleResult(a)},error:function(b){try{var d=JSON.parse(b.responseText);arangoHelper.arangoError("["+d.errorNum+"]",d.errorMessage)}catch(e){arangoHelper.arangoError("Query error","ERROR")}c.handleResult(a)}})}},handleResult:function(){var a=this;window.progressView.hide(),$("#removeResults").show(),window.setTimeout(function(){a.aqlEditor.focus()},300)},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()},warningsFunc:function(a,b){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)},renderQueryResult:function(a,b,c){var d=this;if("#queries"===window.location.hash){var e,f=ace.edit("outputEditor"+b);if(!a.msg){var g=d.analyseQuery(a.result);if("table"===g.defaultType){$("#outputEditorWrapper"+b+" .arangoToolbarTop").after('
    '),$("#outputTable"+b).show(),d.renderOutputTable(g,b);var h=$(".centralRow").height()-250;$(".outputEditorWrapper .tableWrapper").css("max-height",h),$("#outputEditor"+b).hide(),e=!0}else"graph"===g.defaultType&&($("#outputEditorWrapper"+b+" .arangoToolbarTop").after('
    '),$("#outputGraph"+b).show(),e=d.renderOutputGraph(g,b),e?($("#outputEditor"+b).hide(),$("#outputEditorWrapper"+b+" #copy2gV").show(),$("#outputEditorWrapper"+b+" #copy2gV").bind("click",function(){d.showResultInGraphViewer(g,b)})):$("#outputGraph"+b).remove());e!==!1?$("#"+g.defaultType+"-switch").addClass("active").css("display","inline"):$("#json-switch").addClass("active").css("display","inline");var i=function(a,c,d){d||(d=""),$("#outputEditorWrapper"+b+" .arangoToolbarTop .pull-left").append(''+a+"")},j="-";a&&a.extra&&a.extra.stats&&(j=a.extra.stats.executionTime.toFixed(3)+" s"),i(a.result.length+" elements","fa-calculator"),i(j,"fa-clock-o"),a.extra&&(a.extra.profile&&(i("","fa-caret-down"),d.appendProfileDetails(b,a.extra.profile)),a.extra.stats&&(a.extra.stats.writesExecuted>0||a.extra.stats.writesIgnored>0)&&(i(a.extra.stats.writesExecuted+" writes","fa-check-circle positive"),0===a.extra.stats.writesIgnored?i(a.extra.stats.writesIgnored+" writes ignored","fa-check-circle positive","additional"):i(a.extra.stats.writesIgnored+" writes ignored","fa-exclamation-circle warning","additional")))}$("#outputEditorWrapper"+b+" .pull-left #spinner").remove(),$("#outputEditorWrapper"+b+" #cancelCurrentQuery").remove(),d.warningsFunc(a,f),window.progressView.hide(),$("#outputEditorWrapper"+b+" .switchAce").show(),$("#outputEditorWrapper"+b+" .fa-close").show(),$("#outputEditor"+b).css("opacity","1"),a.msg||($("#outputEditorWrapper"+b+" #downloadQueryResult").show(),$("#outputEditorWrapper"+b+" #copy2aqlEditor").show()),d.setEditorAutoHeight(f),d.deselect(f),a.id&&$.ajax({url:arangoHelper.databaseUrl("/_api/cursor/"+encodeURIComponent(a.id)),type:"DELETE"}),c||(d.cachedQueries[b]=a,this.cachedQueries[b].sentQuery=d.aqlEditor.getValue()),a.msg&&($("#outputEditorWrapper"+b+" .toolbarType").html("Explain"),f.setValue(a.msg,1))}else d.cachedQueries[b]=a,d.cachedQueries[b].sentQuery=d.lastSentQueryString,arangoHelper.arangoNotification("Query finished","Return to queries view to see the result.")},bindQueryResultButtons:function(a,b){var c=this;if(a)var d=function(a,b){$.ajax({url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)+"/cancel"),type:"PUT",success:function(){window.clearTimeout(c.checkQueryTimer),$("#outputEditorWrapper"+b).remove(),arangoHelper.arangoNotification("Query","Query canceled.")}})};$("#outputEditorWrapper"+b+" #cancelCurrentQuery").bind("click",function(){d(a,b)}),$("#outputEditorWrapper"+b+" #copy2aqlEditor").bind("click",function(){$("#toggleQueries1").is(":visible")||c.toggleQueries();var a=ace.edit("sentQueryEditor"+b).getValue(),d=JSON.parse(ace.edit("sentBindParamEditor"+b).getValue());c.aqlEditor.setValue(a,1),c.deselect(c.aqlEditor),Object.keys(d).length>0&&(c.bindParamTableObj=d,c.setCachedQuery(c.aqlEditor.getValue(),JSON.stringify(c.bindParamTableObj)),$("#bindParamEditor").is(":visible")?c.renderBindParamTable():(c.bindParamAceEditor.setValue(JSON.stringify(d),1),c.deselect(c.bindParamAceEditor))),$(".centralRow").animate({scrollTop:0},"fast"),c.resize()})},queryCallbackFunction:function(a,b){var c=this;this.bindQueryResultButtons(a,b),this.execPending=!1;var d=function(){$.ajax({type:"PUT",url:arangoHelper.databaseUrl("/_api/job/"+encodeURIComponent(a)),contentType:"application/json",processData:!1,success:function(a,e,f){201===f.status?(c.renderQueryResult(a,b),$(".centralRow").animate({scrollTop:$("#queryContent").height()},"fast")):204===f.status&&(c.checkQueryTimer=window.setTimeout(function(){d()},500))},error:function(a){var d;try{if("Gone"===a.statusText)return arangoHelper.arangoNotification("Query","Query execution aborted."),void c.removeOutputEditor(b);d=JSON.parse(a.responseText),arangoHelper.arangoError("Query",d.errorMessage),d.errorMessage&&(null!==d.errorMessage.match(/\d+:\d+/g)?c.markPositionError(d.errorMessage.match(/'.*'/g)[0],d.errorMessage.match(/\d+:\d+/g)[0]):c.markPositionError(d.errorMessage.match(/\(\w+\)/g)[0]),c.removeOutputEditor(b))}catch(e){if(c.removeOutputEditor(b),409===d.code)return;400!==d.code&&404!==d.code&&500!==d.code&&arangoHelper.arangoNotification("Query","Successfully aborted.")}window.progressView.hide()}})};d()},appendProfileDetails:function(a,b){var c="#outputEditorWrapper"+a;$(c+" .fa-caret-down").first().on("click",function(){var d=$(c).find(".queryProfile");if($(d).is(":visible"))$(c).find(".queryProfile").remove();else{$(c).append('
    ');var e=$(c+" .queryProfile").first();e.hide(),e.css("position","absolute").css("left",215).css("top",55);var f=590,g=["A","B","C","D","E","F","G"],h=["rgb(48, 125, 153)","rgb(241, 124, 176)","rgb(137, 110, 37)","rgb(93, 165, 218)","rgb(250, 164, 58)","rgb(64, 74, 83)","rgb(96, 189, 104)"],i=["startup time for query engine","query parsing","abstract syntax tree optimizations","loading collections","instanciation of initial execution plan","execution plan optimization and permutation","query execution"];e.append('Profiling information
    ');var j=0;_.each(b,function(a){j+=1e3*a});var k,l=0,m=0;_.each(b,function(a,b){var c=numeral(1e3*a).format("0.000");c+=" ms",e.find(".pure-g").append('

    '+g[l]+'

    '+c+'
    '+b+'
    '+i[l]+"
    "),k=Math.floor(1e3*a/j*100),0===k&&(k=1,m++),6!==l?(e.find(".prof-progress").append('
    '),k>1?e.find(".prof-progress-label").append('
    '+g[l]+"
    "):e.find(".prof-progress-label").append('
    '+g[l]+"
    ")):(m>0&&(k-=m),e.find(".prof-progress").append('
    '),k>1?e.find(".prof-progress-label").append('
    '+g[l]+"
    "):e.find(".prof-progress-label").append('
    '+g[l]+"
    ")),l++}),e.width(f),e.height("auto"),e.fadeIn("fast")}})},analyseQuery:function(a){var b={defaultType:null,original:a,modified:null},c=!1;if(!Array.isArray(a))return b.defaultType="json",b;if(a[0])if(a[0].vertices&&a[0].edges){var d=0,e=0;_.each(a,function(a){a.edges&&_.each(a.edges,function(a){null!==a&&(a._from&&a._to&&d++,e++)})});var f=0;e>0&&(f=d/e*100),f>=95&&(c=!0,b.defaultType="graph",b.graphInfo="object")}else{var g=0,h=a.length;_.each(a,function(a){a._from&&a._to&&a._id&&g++});var i=0;h>0&&(i=g/h*100),i>=95&&(c=!0,b.defaultType="graph",b.graphInfo="array")}if(!c){var j=!0,k={};if(a.length<=1&&(j=!1),j){_.each(a,function(a){"object"!=typeof a||null===a||Array.isArray(a)||_.each(a,function(a,b){k.hasOwnProperty(b)?++k[b]:k[b]=1})});var l=0;_.each(k,function(b,c){j!==!1&&(l=b/a.length*100,l<=95&&(j=!1))}),l<=95&&(j=!1)}j&&(c=!0,b.defaultType="table")}return c||(b.defaultType="json"),b},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")})})},renderOutputTable:function(a,b){var c={id:"outputTableData"+b,titles:[],rows:[]},d=!0,e=[];_.each(a.original,function(a){d===!0&&(c.titles=Object.keys(a),d=!1),_.each(a,function(a){"object"==typeof a&&(a=JSON.stringify(a)),e.push(a)}),c.rows.push(e),e=[]}),$("#outputTable"+b).append(this.table.render({content:c}))},renderOutputGraph:function(a,b){this.graphViewers[b]=new window.GraphViewer({name:void 0,documentStore:window.App.arangoDocumentStore,collection:new window.GraphCollection,userConfig:window.App.userConfig,id:"#outputGraph"+b,data:a});var c=this.graphViewers[b].renderAQLPreview();return c},showResultInGraphViewer:function(a,b){window.location.hash="#aql_graph",window.App.graphViewer&&(window.App.graphViewer.graphSettingsView&&window.App.graphViewer.graphSettingsView.remove(),window.App.graphViewer.remove()),window.App.graphViewer=new window.GraphViewer({name:void 0,documentStore:window.App.arangoDocumentStore,collection:new window.GraphCollection,userConfig:window.App.userConfig,noDefinedGraph:!0,data:a}),window.App.graphViewer.renderAQL()},getAQL:function(a){var b=this;this.collection.fetch({success:function(){b.getCachedQueryAfterRender();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(),$(".modal-delete-confirmation").hide(),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","Indexes"],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){if("#shards"===window.location.hash){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=!1;b.shardDistribution=a.results,_.each(a.results,function(a,b){"error"!==b&&"code"!==b&&("_"!==b.substring(0,1)&&(c=!0),(b.startsWith("_local_")||b.startsWith("_to_")||b.startsWith("_from_"))&&(c=!0))}),c?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=[];g.dbServers[0].fetch({success:function(){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 database server. The selected database server will be the new leader of the shard.",l)),i.push(window.modalView.createSuccessButton("Move",g.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=$("#toDBServer").val(),f={database:a,collection:b,shard:c,fromServer:d,toServer:e};$.ajax({type:"POST",cache:!1,url:arangoHelper.databaseUrl("/_admin/cluster/moveShard"),contentType:"application/json",processData:!1,data:JSON.stringify(f),async:!0,success:function(a){a.id&&(arangoHelper.arangoNotification("Shard "+c+" will be moved to "+e+"."),window.setTimeout(function(){window.App.shardsView.render()},2e3))},error:function(){arangoHelper.arangoError("Shard "+c+" could not be moved to "+e+".")}}),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.arangoError("Could not start rebalance process.")}}),window.modalView.hide()},continueRender:function(a){var b=this;delete a.code,delete a.error,_.each(a,function(b,c){var d={Plan:{},Current:{}};if(c.startsWith("_local_")){var e=c.substr(7,c.length-1),f=["_local_"+e,"_from_"+e,"_to_"+e,e],g=0;_.each(f,function(b,c){_.each(a[f[g]].Current,function(a,b){d.Current[b]=a}),_.each(a[f[g]].Plan,function(a,b){d.Plan[b]=a}),delete a[f[g]],a[e]=d,g++})}});var c={};Object.keys(a).sort().forEach(function(b){c[b]=a[b]}),this.$el.html(this.template.render({collections:c}));var d=!1;_.each(a,function(a){_.each(a.Plan,function(a,b){a.progress&&(d=!0)})}),d&&window.setTimeout(function(){b.render()},1500)},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:d.substringMatcher(d.aqlBuiltinFunctionsArray),limit:d.displayLimit,templates:{header:a("Functions","fa-code","aql")}},{name:"Keywords",source:d.substringMatcher(d.aqlKeywordsArray),limit:d.displayLimit,templates:{header:a("Keywords","fa-code","aql")}},{name:"Documents",source:d.substringMatcher(d.collections.doc),limit:d.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:d.substringMatcher(d.collections.edge),limit:d.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System",limit:d.displayLimit,source:d.substringMatcher(d.collections.system),templates:{header:a("System","fa-cogs","Collection")}}):this.typeahead=$("#spotlight .typeahead").typeahead({hint:!0,highlight:!0,minLength:1},{name:"Documents",source:d.substringMatcher(d.collections.doc),limit:d.displayLimit,templates:{header:a("Documents","fa-file-text-o","Collection")}},{name:"Edges",source:d.substringMatcher(d.collections.edge),limit:d.displayLimit,templates:{header:a("Edges","fa-share-alt","Collection")}},{name:"System",limit:d.displayLimit,source:d.substringMatcher(d.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");if(b)this.grantPermission(this.currentUser.get("user"),c);else if("_system"===c){var d=[],e=[];e.push(window.modalView.createReadOnlyEntry("db-system-revoke-button","Caution","You are removing your permissions to _system database. Really continue?",void 0,void 0,!1)),d.push(window.modalView.createSuccessButton("Revoke",this.revokePermission.bind(this,this.currentUser.get("user"),c))),d.push(window.modalView.createCloseButton("Cancel",this.rollbackInputButton.bind(this,c))),window.modalView.show("modalTable.ejs","Revoke _system Database Permission",d,e)}else this.revokePermission(this.currentUser.get("user"),c)},rollbackInputButton:function(a){$('input[name="'+a+'"').prop("checked","true")},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"}),window.modalView.hide()},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,lastRoute: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","graph/:name":"graph","graph/:name/settings":"graphSettings",support:"support"},execute:function(a,b){"#queries"===this.lastRoute&&this.queryView.cleanupGraphs(),this.lastRoute=window.location.hash,$("#subNavigationBar .breadcrumb").html(""),$("#subNavigationBar .bottom").html(""),$("#loadingScreen").hide(),$("#content").show(),a&&a.apply(this,b),this.graphViewer&&this.graphViewer.graphSettingsView&&this.graphViewer.graphSettingsView.hide(),this.queryView&&this.queryView.graphViewer&&this.queryView.graphViewer.graphSettingsView&&this.queryView.graphViewer.graphSettingsView.hide()},listenerFunctions:{},listener:function(a){_.each(window.App.listenerFunctions,function(b,c){b(a)})},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),document.addEventListener("keyup",this.listener,!1),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}),arangoHelper.initSigma()}.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||(this.nodesView=new window.NodesView({})),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))},graph:function(a,b){return this.checkUser(),b?(this.graphViewer&&(this.graphViewer.graphSettingsView&&this.graphViewer.graphSettingsView.remove(),this.graphViewer.killCurrentGraph(),this.graphViewer.unbind(),this.graphViewer.remove()),this.graphViewer=new window.GraphViewer({name:a,documentStore:this.arangoDocumentStore,collection:new window.GraphCollection,userConfig:this.userConfig}),void this.graphViewer.render()):void this.waitForInit(this.graph.bind(this),a)},graphSettings: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.graphSettings.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.undelegateEvents(),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&&"graphs"===Backbone.history.getFragment()&&this.graphManagementView.handleResize($("#content").width()),this.queryView&&"queries"===Backbone.history.getFragment()&&this.queryView.resize(),this.naviView&&this.naviView.resize(),this.graphViewer&&Backbone.history.getFragment().indexOf("graph")>-1&&this.graphViewer.resize(),this.documentsView&&Backbone.history.getFragment().indexOf("documents")>-1&&this.documentsView.resize(),this.documentView&&Backbone.history.getFragment().indexOf("collection")>-1&&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").html(b.version.substr(0,7)+''),window.parseVersions=function(b){return _.isEmpty(b)?void $("#currentVersion").addClass("up-to-date"):($("#currentVersion").addClass("out-of-date"),$("#currentVersion .fa").removeClass("fa-check-circle").addClass("fa-exclamation-circle"),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 fc1ef5a042fa6edd054b2f9b9f9417bfe4632dec..5a14ecb334abdaf1070a684fbdd58d0ffc6759e3 100644 GIT binary patch delta 110208 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 0) { +
  • + + + + + +