
org.glowroot.ui.app-dist.scripts.scripts.cf9d33e9.js Maven / Gradle / Ivy
var glowroot=angular.module("glowroot",["ui.router","ui.bootstrap.buttons","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.typeahead","ui.bootstrap.modal"]),Glowroot;glowroot.config(["$locationProvider","$httpProvider",function(a,b){a.html5Mode(!0);var c=["$rootScope","$injector","$location","$q","$timeout","login",function(a,b,c,d,e,f){return{response:function(c){var d=c.headers("Glowroot-Layout-Version");return d&&a.layout&&d!==a.layout.version&&b.get("$http").get("backend/layout").success(function(b){a.layout=b}),c},responseError:function(a){if(401===a.status){var b=c.path();return"/login"===b?d.defer().promise:(a.data.timedOut?f.goToLogin("Your session has timed out"):f.goToLogin(),d.defer().promise)}if(0===a.status){var g=d.defer();return e(function(){g.reject(a)},500),g.promise}return d.reject(a)}}}];b.interceptors.push(c)}]),glowroot.run(["$rootScope","$http","$location","$state","login",function(a,b,c,d,e){function f(b){a.layout=b,a.layout.needsAuthentication?e.goToLogin():"/login"===c.path()&&a.authenticatedUser&&c.path("/").replace()}a.serverId="",a.$on("$locationChangeSuccess",function(){a.serverRollup=c.search()["server-rollup"]||""}),a.transactionTypes=function(){if(!a.layout)return[];var b=a.layout.serverRollups[a.serverRollup];return b?b.transactionTypes:[]},a.defaultTransactionType=function(){if(!a.layout)return"";if(!a.layout.central)return a.layout.defaultTransactionType;var b=a.transactionTypes();return-1!==b.indexOf(a.layout.defaultTransactionType)?a.layout.defaultTransactionType:0===b.length?"":b[0]},a.showSignIn=function(){return!a.authenticatedUser&&a.layout&&a.layout.adminPasswordEnabled},a.showSignOut=function(){return a.authenticatedUser&&a.layout&&a.layout.adminPasswordEnabled},a.goToLogin=function(a){return a.ctrlKey?void 0:(e.goToLogin(),!1)},a.signOut=function(){var c=$(".navbar-collapse");c.removeClass("in"),c.addClass("collapse"),b.post("backend/sign-out").success(function(){a.authenticatedUser=void 0,"none"===a.layout.anonymousAccess?e.goToLogin("You have been signed out",!0):d.reload()}).error(function(){alert("An error occurred during log out")})},a.hideNavbar=function(){return"/login"===c.path()};var g=$("#container"),h=$(window);a.containerWidth=g.width(),a.windowHeight=h.height(),$(window).resize(function(){var b=g.width(),c=h.height();(b!==a.containerWidth||c!==a.windowHeight)&&a.$apply(function(){a.containerWidth=b,a.windowHeight=c})}),window.layout?(f(window.layout),a.authenticatedUser=window.authenticatedUser):b.get("backend/authenticated-user").success(function(c){a.authenticatedUser=c,b.get("backend/layout").success(function(a){f(a)})}),a.$on("$stateChangeSuccess",function(){window.ga&&window.ga("send","pageview",{page:c.path()})});var i="([1-9]?[0-9]?(\\.[0-9]*)?|100(\\.0*)?)";a.pattern={percentile:new RegExp("^"+i+"$"),percentileList:new RegExp("^("+i+" *, *)*"+i+"$"),integer:/^(0|[1-9][0-9]*)$/,double:/^(0|[1-9][0-9]*)?(\.[0-9]*)?$/},ZeroClipboard.config({bubbleEvents:!1,cacheBust:!1}),$(document).on("focusin","#global-zeroclipboard-html-bridge",!1)}]),Glowroot=function(){function a(a,c){$(a).each(function(){var a=$(this);a.data("gtTimeout")&&clearTimeout(a.data("gtTimeout")),a.stop().animate({opacity:"100"}),a.removeClass("hide");var d=this;a.data("gtTimeout",setTimeout(function(){b(d,1e3)},c))})}function b(a,b){var c=$(a);c.fadeOut(b,function(){c.addClass("hide"),c.css("display","")})}function c(a,b){b=b||{lines:9,radius:8,width:5,zIndex:1020};var c=$(a)[0],d=new Spinner(b),e=setTimeout(function(){$(c).removeClass("hide"),d.spin(c)},100);return{stop:function(){clearTimeout(e),$(c).addClass("hide"),d.stop()}}}return{showAndFadeSuccessMessage:function(b){a(b,1500)},fadeOut:b,showSpinner:c}}(),$(document).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(a){$(a.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(a.type))}),glowroot.config(["$provide","$stateProvider","$urlRouterProvider",function(a,b,c){var d=function(a){return["$q","$rootScope","$location",function(b,c,d){if(window.layout)return a&&!d.search()["transaction-type"]&&(d.search("transaction-type",c.defaultTransactionType()),d.replace()),function(){};var e=b.defer(),f=c.$watch("layout",function(b){a&&!d.search()["transaction-type"]&&(d.search("transaction-type",c.defaultTransactionType()),d.replace()),b&&(e.resolve(),f())});return e.promise}]};c.otherwise(function(a){var b=a.get("$rootScope");return b.layout&&b.layout.central?"/server-rollups":"transaction/average"}),b.state("transaction",{abstract:!0,url:"/transaction?server-rollup&transaction-type",templateUrl:"views/transaction.html",controller:"TransactionCtrl",resolve:{headerDisplay:function(){return"Transactions"},shortName:function(){return"transaction"},defaultSummarySortOrder:function(){return"total-time"},waitForLayout:d(!0)}}),b.state("transaction.detail",{abstract:!0,views:{sidebar:{templateUrl:"views/transaction/sidebar.html",controller:"TransactionSidebarCtrl",resolve:{summarySortOrders:function(){return{"total-time":"By percent of total time","average-time":"By average time",throughput:"By throughput (per min)"}},summaryValueFn:["$filter",function(a){return function(b,c,d,e){return"total-time"===c?(100*b.totalNanos/d.totalNanos).toFixed(1)+" %":"average-time"===c?a("gtMillis")(b.totalNanos/(1e6*b.transactionCount))+" ms":"throughput"===c?(6e4*b.transactionCount/e).toFixed(1)+"/min":void 0}}]}},tabs:{templateUrl:"views/transaction/tabs.html",controller:"TransactionTabCtrl"}}}),b.state("transaction.detail.average",{url:"/average?transaction-name",views:{"main@transaction":{templateUrl:"views/transaction/average.html",controller:"TransactionAverageCtrl"}}}),b.state("transaction.detail.percentiles",{url:"/percentiles?transaction-name",views:{"main@transaction":{templateUrl:"views/transaction/percentiles.html",controller:"TransactionPercentilesCtrl"}}}),b.state("transaction.detail.throughput",{url:"/throughput?transaction-name",views:{"main@transaction":{templateUrl:"views/transaction/throughput.html",controller:"TransactionThroughputCtrl"}}}),b.state("transaction.detail.queries",{url:"/queries?transaction-name",views:{"main@transaction":{templateUrl:"views/transaction/queries.html",controller:"TransactionQueriesCtrl"}}}),b.state("transaction.detail.profile",{url:"/profile?transaction-name",views:{"main@transaction":{templateUrl:"views/transaction/profile.html",controller:"TransactionProfileCtrl"}}}),b.state("transaction.detail.traces",{url:"/traces?transaction-name",views:{"main@transaction":{templateUrl:"views/transaction/traces.html",controller:"TracesCtrl",resolve:{slowOnly:function(){return!0},errorOnly:function(){return!1}}}}}),b.state("transaction-flame-graph",{url:"/transaction/flame-graph",templateUrl:"views/transaction/flame-graph.html",controller:"TransactionFlameGraphCtrl",resolve:{dummy:["$q","$timeout",function(a,b){function c(){window.d3?d.resolve():b(c,100)}var d=a.defer();return b(c,100),d.promise}],waitForLayout:d(!0)}}),b.state("error",{abstract:!0,url:"/error?server-rollup&transaction-type",templateUrl:"views/transaction.html",controller:"TransactionCtrl",resolve:{headerDisplay:function(){return"Errors"},shortName:function(){return"error"},defaultSummarySortOrder:function(){return"error-count"},waitForLayout:d(!0)}}),b.state("error.detail",{abstract:!0,views:{sidebar:{templateUrl:"views/transaction/sidebar.html",controller:"TransactionSidebarCtrl",resolve:{summarySortOrders:function(){return{"error-count":"By error count","error-rate":"By error rate"}},summaryValueFn:function(){return function(a,b){return"error-count"===b?a.errorCount:"error-rate"===b?(100*a.errorCount/a.transactionCount).toFixed(1)+" %":void 0}}}},tabs:{templateUrl:"views/transaction/error-tabs.html",controller:"TransactionTabCtrl"}}}),b.state("error.detail.messages",{url:"/messages?transaction-name",views:{"main@error":{templateUrl:"views/transaction/error-messages.html",controller:"ErrorMessagesCtrl"}}}),b.state("error.detail.traces",{url:"/traces?transaction-name",views:{"main@error":{templateUrl:"views/transaction/traces.html",controller:"TracesCtrl",resolve:{slowOnly:function(){return!1},errorOnly:function(){return!0}}}}}),b.state("jvm",{url:"/jvm",templateUrl:"views/jvm.html",controller:"JvmCtrl"}),b.state("jvm.gauges",{url:"/gauges",templateUrl:"views/jvm/gauge-values.html",controller:"JvmGaugeValuesCtrl",resolve:{waitForLayout:d(!1)}}),b.state("jvm.processInfo",{url:"/process-info",templateUrl:"views/jvm/process-info.html",controller:"JvmProcessInfoCtrl"}),b.state("jvm.threadDump",{url:"/thread-dump",templateUrl:"views/jvm/thread-dump.html",controller:"JvmThreadDumpCtrl"}),b.state("jvm.heapDump",{url:"/heap-dump",templateUrl:"views/jvm/heap-dump.html",controller:"JvmHeapDumpCtrl"}),b.state("jvm.mbeanTree",{url:"/mbean-tree",templateUrl:"views/jvm/mbean-tree.html",controller:"JvmMBeanTreeCtrl"}),b.state("jvm.capabilities",{url:"/capabilities",templateUrl:"views/jvm/capabilities.html",controller:"JvmCapabilitiesCtrl"}),b.state("jvm.glowrootLog",{url:"/glowroot-log",templateUrl:"views/jvm/glowroot-log.html",controller:"JvmGlowrootLogCtrl"}),b.state("config",{url:"/config",templateUrl:"views/config.html",controller:"ConfigCtrl"}),b.state("config.transaction",{url:"/transaction",templateUrl:"views/config/transaction.html",controller:"ConfigCommonCtrl",resolve:{backendUrl:function(){return"backend/config/transaction"}}}),b.state("config.instrumentationList",{url:"/instrumentation-list",templateUrl:"views/config/instrumentation-list.html",controller:"ConfigInstrumentationListCtrl"}),b.state("config.instrumentation",{url:"/instrumentation?v",templateUrl:"views/config/instrumentation.html",controller:"ConfigInstrumentationCtrl"}),b.state("config.gaugeList",{url:"/gauge-list",templateUrl:"views/config/gauge-list.html",controller:"ConfigGaugeListCtrl"}),b.state("config.gauge",{url:"/gauge",templateUrl:"views/config/gauge.html",controller:"ConfigGaugeCtrl"}),b.state("config.alertList",{url:"/alert-list",templateUrl:"views/config/alert-list.html",controller:"ConfigAlertListCtrl"}),b.state("config.alert",{url:"/alert",templateUrl:"views/config/alert.html",controller:"ConfigAlertCtrl",resolve:{waitForLayout:d(!1)}}),b.state("config.pluginList",{url:"/plugin-list",templateUrl:"views/config/plugin-list.html",controller:"ConfigPluginListCtrl"}),b.state("config.plugin",{url:"/plugin?id",templateUrl:"views/config/plugin.html",controller:"ConfigPluginCtrl"}),b.state("config.advanced",{url:"/advanced",templateUrl:"views/config/advanced.html",controller:"ConfigCommonCtrl",resolve:{backendUrl:function(){return"backend/config/advanced"}}}),b.state("config.smtp",{url:"/smtp",templateUrl:"views/config/smtp.html",controller:"ConfigSmtpCtrl"}),b.state("config.userRecording",{url:"/user-recording",templateUrl:"views/config/user-recording.html",controller:"ConfigUserRecordingCtrl"}),b.state("config.userInterface",{url:"/ui",templateUrl:"views/config/user-interface.html",controller:"ConfigUserInterfaceCtrl"}),b.state("config.storage",{url:"/storage",templateUrl:"views/config/storage.html",controller:"ConfigStorageCtrl"}),b.state("login",{url:"/login",templateUrl:"views/login.html",controller:"LoginCtrl",resolve:{waitForLayout:d(!1)}})}]),glowroot.factory("gtButtonGroupControllerFactory",["$q",function(a){return{create:function(b,c){var d=$(b),e=!1;return{onClick:function(b){if(!e){var f=d.find(".gt-button-message"),g=d.find(".gt-button-spinner");f.addClass("hide");var h;c||(h=Glowroot.showSpinner(g));var i=a.defer();i.promise.then(function(a){h&&h.stop(),f.text(a||""),f.removeClass("gt-button-message-error"),f.addClass("gt-button-message-success"),Glowroot.showAndFadeSuccessMessage(f),e=!1},function(a){h&&h.stop(),f.text(a),f.removeClass("gt-button-message-success"),f.addClass("gt-button-message-error"),f.removeClass("hide"),e=!1}),e=!0,b({deferred:i})}}}}}}]),glowroot.directive("gtButtonGroup",["gtButtonGroupControllerFactory",function(a){return{scope:{},transclude:!0,template:' ',controller:["$element",function(b){var c=a.create(b);this.onClick=c.onClick}]}}]),glowroot.directive("gtButton",["gtButtonGroupControllerFactory","modals",function(a,b){return{scope:{gtLabel:"@",gtClick:"&",gtBtnClass:"@",gtDisabled:"&",gtNoSpinner:"@",gtConfirmHeader:"@",gtConfirmBody:"@"},templateUrl:"template/gt-button.html",require:"^?gtButtonGroup",link:function(c,d,e,f){f||(c.noGroup=!0,f=a.create(d,c.gtNoSpinner)),c.onClick=function(){if(c.gtConfirmHeader){var a=$("#confirmationModal");a.find(".modal-header h3").text(c.gtConfirmHeader),a.find(".modal-body p").text(c.gtConfirmBody),b.display("#confirmationModal",!0),$("#confirmationModalButton").off("click"),$("#confirmationModalButton").on("click",function(){c.$apply(function(){$("#confirmationModal").modal("hide"),f.onClick(c.gtClick)})})}else f.onClick(c.gtClick)}}}}]),glowroot.directive("gtFormGroup",["conversions",function(a){return{scope:{gtType:"@",gtLabel:"@",gtCheckboxLabel:"@",gtModel:"=",gtWidth:"@",gtAddon:"@",gtPattern:"@",gtRequired:"&",gtDisabled:"&",gtPlaceholder:"@",gtNumber:"&",gtRows:"@",gtColClass1:"@",gtColClass2:"@"},transclude:!0,require:"^form",templateUrl:"template/gt-form-group.html",link:function(b,c,d,e){b.formCtrl=e,b.gtId=b.$id,b.gtType||(b.gtType="text"),b.$watch("gtModel",function(c){a.toNumber(b.ngModel)!==c&&(b.ngModel=c)}),b.$watch("ngModel",function(c){b.gtNumber()?b.gtModel=a.toNumber(c):b.gtModel=c}),b.$watch("gtPattern",function(a){if(a){var c=a.match(/^\/(.*)\/$/);c?b.ngPattern=new RegExp(c[1]):b.ngPattern=b.$parent.$eval(a)}else b.ngPattern=/.?/})}}}]),glowroot.directive("gtInputGroupDropdown",function(){return{scope:{gtModel:"=",gtItems:"&",gtClass:"@"},templateUrl:"template/gt-input-group-dropdown.html",replace:!0,link:function(a){a.$watch("gtModel",function(b){angular.forEach(a.gtItems(),function(c){c.value===b&&(a.gtDisplay=c.display)})}),a.gtClass?a.classes="input-group-btn "+a.gtClass:a.classes="input-group-btn"}}}),glowroot.directive("gtNavbarItem",["$location","$state",function(a,b){return{scope:{gtDisplay:"@",gtItemName:"@",gtUrl:"@",gtState:"@"},replace:!0,transclude:!0,templateUrl:"template/gt-navbar-item.html",link:function(a){a.isActive=function(){return a.$parent.activeNavbarItem===a.gtItemName},a.ngClick=function(c){var d=$(".navbar-collapse");return d.removeClass("in"),d.addClass("collapse"),b.current.name!==a.gtState||c.ctrlKey?void 0:(b.go(a.gtState,null,{reload:!0}),c.preventDefault(),!1)}}}}]),glowroot.directive("gtSidebarItem",["$location","$state",function(a,b){return{scope:{gtDisplay:"@",gtDisplayRight:"@",gtUrl:"@",gtActive:"&",gtSubActive:"&",gtActiveRefresh:"&"},replace:!0,templateUrl:"template/gt-sidebar-item.html",link:function(c,d,e){c.isActive=function(){return e.gtActive?c.gtActive():a.path()==="/"+c.gtUrl},c.isSubActive=function(){return e.gtSubActive&&c.gtSubActive()},c.ngClick=function(a){return c.isActive()&&!a.ctrlKey?(e.gtActiveRefresh?c.gtActiveRefresh():b.reload(),a.preventDefault(),!1):void 0}}}}]),glowroot.directive("gtDisplayWhitespace",function(){return{scope:{gtBind:"&"},link:function(a,b){var c=a.gtBind();b.text(c);var d=b.html();d=d.replace("\n","\\n").replace("\r","\\r").replace(" ","\\t"),d=d.replace("",""),b.html(d)}}}),glowroot.directive("gtSpinner",function(){return function(a,b,c){var d,e;b.addClass("hide"),a.$watch(c.gtShow,function(a){if(a){if(d)return;var f;c.gtSpinnerInline&&(f=10),d=new Spinner({lines:9,radius:8,width:5,left:f,zIndex:1020}),c.gtNoDelay?(b.removeClass("hide"),d.spin(b[0])):(clearTimeout(e),e=setTimeout(function(){b.removeClass("hide"),d.spin(b[0])},100))}else void 0!==d&&(clearTimeout(e),b.addClass("hide"),d.stop(),d=void 0)})}}),glowroot.directive("gtFormWithPrimaryButton",function(){return function(a,b){b.on("keypress","input",function(a){13===a.which&&b.find(".btn-primary:enabled").first().click()})}}),glowroot.directive("gtFormAutofocusOnFirstInput",["$timeout",function(a){return function(b,c){a(function(){var a="input:not(.gt-autofocus-ignore)",d=b.$watch(function(){return c.find(a).length&&c.find("input").first().is(":visible")},function(b){b&&(c.find(a).first().focus(),d())})},100)}}]),glowroot.directive("gtSmartClick",function(){return{scope:{gtSmartClick:"&"},link:function(a,b){b.mousedown(function(b){a.mousedownPageX=b.pageX,a.mousedownPageY=b.pageY}),b.click(function(b,c){(c||!(Math.abs(b.pageX-a.mousedownPageX)>5||Math.abs(b.pageY-a.mousedownPageY)>5))&&a.$apply(function(){a.gtSmartClick({$event:b})})})}}}),glowroot.directive("gtSelectpicker",["$timeout",function(a){return{scope:{ngModel:"=",gtSelectpickerOptions:"&"},link:function(b,c){a(function(){c.selectpicker(b.gtSelectpickerOptions()),c.selectpicker("val",b.ngModel),c.selectpicker("refresh")}),b.$on("$destroy",function(){c.selectpicker("destroy")})}}}]),glowroot.filter("gtBytes",function(){return HandlebarsRendering.formatBytes}),glowroot.filter("gtMillis",function(){return HandlebarsRendering.formatMillis}),glowroot.filter("gtCount",function(){return HandlebarsRendering.formatCount}),glowroot.filter("gtDuration",function(){return function(a){if(void 0===a)return"";var b=moment.duration(a),c=[];return b.days()>=1&&c.push(Math.floor(b.days())+"d"),b.hours()>=1&&c.push(Math.floor(b.hours())+"h"),b.minutes()>=1&&c.push(Math.floor(b.minutes())+"m"),b.seconds()>=1&&c.push(Math.floor(b.seconds())+"s"),c.join(" ")}}),glowroot.filter("gtOnOff",function(){return function(a){return a?"ON":"OFF"}}),glowroot.filter("gtTypeaheadClassHighlight",["$sce",function(a){function b(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(c,d){return d?(c=c.replace(new RegExp("^"+b(d),"gi"),"$&"),c=c.replace(new RegExp("\\.("+b(d)+")","gi"),".$1"),c=c.replace(new RegExp("\\$("+b(d)+")","gi"),"$$1"),a.trustAsHtml(c)):c}}]);var HandlebarsRendering,SHOW_ELLIPSED_NODE_MARKERS=!1;HandlebarsRendering=function(){function a(b,c){function d(a){return c?''+a+":":a+":"}var e="";return $.each(b,function(b,f){$.isArray(f)?$.each(f,function(d,f){var g={};g[b]=f,e+=a(g,c)}):e+="object"==typeof f&&null!==f?d(b)+'
'+a(f)+"":''+d(b)+' '+f+""}),e}function b(a,b,c,d){var e=$(b);if(!e.data("gtLoading"))if(e.data("gtLoaded"))e.hasClass("hide")?e.removeClass("hide"):e.addClass("hide");else if(c)i(c,e),e.removeClass("hide"),e.data("gtLoaded",!0);else{e.data("gtLoading",!0);var f,g;setTimeout(function(){f||(g=Glowroot.showSpinner(a.parent().find(".gt-trace-detail-spinner")))},100),$.get(d).done(function(a){a.overwritten?e.find(".gt-profile").html('The profile has expired, see Configuration > Storage > Trace detail data'):a.expired?e.find(".gt-profile").html.append('This trace has expired'):i(a,e),e.removeClass("hide")}).fail(function(){e.find(".gt-profile").html('An error occurred retrieving the profile'),e.removeClass("hide")}).always(function(){f=!0,g&&g.stop(),e.data("gtLoading",!1),e.data("gtLoaded",!0)})}}function c(){$("body").prepend('o');var a=$("#bodyFontCharWidth").width();o=($("#sps").width()-170)/a,o=Math.max(o,80)}function d(a){function b(a,d){var e,f;for(e=0;e';for(f=a.length-1;f>=0&&!(i=a[f].startOffsetNanos);f--);var k=l(i/1e6).length/2+p;for(f=b;f",$("#sps").append(j),b+100 [0-9]+ rows?$/,""),i=h.replace(/ \[.*?]$/,""),j=SqlPrettyPrinter.format(i);if("object"==typeof j)window.console&&(console.log(j.message),console.log(i));else{var k=g.substring(h.length),l=h.substring(i.length),m="jdbc execution:\n\n";m+=''+j+"",l&&(m+='\n\nparameters:\n\n '+l+""),k&&(m+='\n\nrows:\n\n '+k+""),b.css("padding-bottom","10px");var n=b.find(".gt-clip");n.css("top","10px"),n.css("right","10px");var o=b.find(".gt-pre-wrap");o.html(m),o.css("min-width",.6*c.parent().width())}}b.data("gtExpandedPreviously",!0)}c.toggleClass("hide"),b.toggleClass("hide"),b.width()>=b.parent().width()&&b.css("display","block"),c.hasClass("hide")?(b.attr("tabindex",-1),b.css("outline","none"),b.focus()):(c.attr("tabindex",-1),c.css("outline","none"),c.focus())}function g(a,b,c){return c?void f(a):void(Math.abs(b.pageX-q)>5||Math.abs(b.pageY-r)>5||f(a))}function h(a){return Handlebars.Utils.escapeExpression(a)}function i(a,b){function c(){function a(c){if(c.id=b++,c.childNodes){var d;for(d=0;d"+h(a.substring(e[0],e[1]))+""+d(a.substring(e[1]))}function e(c,f){function g(a){var b,c=a.toUpperCase();for(b=0;b1&&j===h.length-1&&$("#gtProfileNodeTextUnexpanded"+m.id).html(o)}var p=m.filteredSampleCount/a.unfilteredSampleCount*100;if($("#gtProfileNodePercent"+m.id).text(n(p)+"%"),$("#gtProfileNode"+m.id).show(),h.length>1){var q=$("#gtProfileNodeText"+m.id).parent(),r=$("#gtProfileNodeText"+m.id).parent().parent(),t=r.find(".gt-unexpanded-content");l&&b.length?(t.addClass("hide"),q.removeClass("hide")):(t.removeClass("hide"),q.addClass("hide"))}return m.leafThreadState&&$("#gtProfileNodeThreadState"+m.id).html(d(m.leafThreadState)),m.filteredSampleCount}var g,i=[];for(g=0;g';j+='';var k=g/a.unfilteredSampleCount*100;if(j+=n(k),j+="% ",1===i.length?(j+=' ',j+='',j+=''+h(d.stackTraceElement),j+="
"):(j+="",j+=' ",j+=' ',j+='
"),d.leafThreadState&&(j+='',j+=' ',j+='',j+=h(d.leafThreadState),j+="
"),d.childNodes){var l=d.childNodes;l.sort(function(a,c){return b?(c.timerCounts[b]||0)-(a.timerCounts[b]||0):c.sampleCount-a.sampleCount});for(var m=0;m',j+='',j+='(one or more branches ~ ',j+=n(o),j+="%) ',j+='
',j+='',j+='(truncated branches)',j+="
"),j+=""}return f.childNodes?c(f,0):""}var f={stackTraceElement:"",sampleCount:0,ellipsedSampleCount:0,childNodes:[]};$.each(a.rootNodes,function(a,b){f.sampleCount+=b.sampleCount,f.ellipsedSampleCount+=b.ellipsedSampleCount,(!b.ellipsedSampleCount||b.sampleCount>b.ellipsedSampleCount)&&f.childNodes.push(b)}),f.childNodes&&1===f.childNodes.length&&!f.ellipsedSampleCount?f=f.childNodes[0]:f.stackTraceElement=s;var g=$(b);c();var i=e();g.find(".gt-profile").html(i);var k,l=j(f,[]),m=g.find(".gt-profile-text-filter"),o=g.find(".gt-profile-text-filter-refresh"),p=g.find(".gt-profile-text-filter-help");m.off("input.gtProfileFilter"),o.length||m.on("input.gtProfileFilter",function(){clearTimeout(k),k=setTimeout(function(){var a=m.val();d(a?[a]:[])},50)});var q=m.val(),r=gtParseIncludesExcludes(q);r.error||!r.includes.length&&!r.excludes.length||(d(r.includes,!0),g.data("gtTextFilterOverride",!0));var t=g.find(".gt-profile-filter"),u=t.parent().find(".gt-profile-view-toggle");if(!$.isEmptyObject(l)){if(!m.val()){var v={name:"",childNodes:{}};$.each(f.timerCounts,function(a){if(a.match(/ \/ other$/)){var b=a.split(" / "),c=v,d="";$.each(b,function(a,b){a>0&&(d+=" / "),d+=b,c.childNodes[b]||(c.childNodes[b]={name:d,childNodes:{}}),c=c.childNodes[b]})}});var w=function(a){var b=[a],c=[];return $.each(a.childNodes,function(a,b){c.push(b)}),c.sort(function(a,b){return f.timerCounts[b.name]-f.timerCounts[a.name]}),1===c.length&&c[0].name.match(/ \/ other$/)?b:($.each(c,function(a,c){b=b.concat(w(c))}),b)},x=w(v);if(1===Object.keys(v.childNodes).length)x.splice(0,1);else{var y=0;$.each(v.childNodes,function(a,b){y+=f.timerCounts[b.name]}),f.timerCounts[v.name]=y}t.html(""),$.each(x,function(a,b){var c=b.name||s;t.append($("").val(b.name).text(c+" ("+f.timerCounts[b.name]+")"))}),t.off("change").change(function(){var a=e($(this).val());g.find(".gt-profile").html(a)})}u.off("click").click(function(){if(m.toggleClass("hide"),o.toggleClass("hide"),p.toggleClass("hide"),t.toggleClass("hide"),t.is(":visible")){if(g.data("gtTextFilterOverride",!1),m.val()){m.val("");var a={handled:!1};m.trigger("gtClearProfileFilter",[a]),a.handled||d([])}u.text("Switch to text filter")}else{g.data("gtTextFilterOverride",!0);var b=t.val();if(t.find("option:first-child").attr("selected","selected"),t.val()!==b){var c=e();g.find(".gt-profile").html(c)}u.text("Switch to dropdown filter")}})}$.isEmptyObject(l)||g.data("gtTextFilterOverride")?(m.removeClass("hide"),o.removeClass("hide"),p.removeClass("hide"),t.addClass("hide"),u.text("Switch to dropdown filter")):(t.removeClass("hide"),u.text("Switch to text filter")),$.isEmptyObject(l)||u.removeClass("hide")}function j(a,b){function c(a){var c="";$.each(b,function(b,d){b>0&&(c+=" / "),c+=d,e[c]=a}),c&&(e[c+" / other"]=a)}var d=0;a.timerNames&&a.timerNames.length&&$.each(a.timerNames,function(a,c){c!==b[b.length-1]&&(b.push(c),d++)});var e={};if(a.leafThreadState&&b.length&&c(a.sampleCount),a.ellipsedSampleCount&&c(a.ellipsedSampleCount),a.childNodes){var f,g=a.childNodes,h=function(a,b){e[a]?e[a]+=b:e[a]=b};for(f=0;f ',j+='';for(b+='Caused by: ')}return b+="
"}),Handlebars.registerHelper("locationStackTraceHtml",function(a){var b,c='';a;){var c=a.display.replace(/\n/g,"\n ");b+=h(c)+"\n
";var d;for(d=0;d';for(b=0;b"});var q,r;$(document).mousedown(function(a){q=a.pageX,r=a.pageY}),$(document).on("click",".gt-timers-view-toggle",function(){var a=$(this).parents(".gt-timers");a.children("table").toggleClass("hide");var b=a.find(".gt-timers-view-toggle:visible");b.attr("tabindex",-1),b.css("outline","none"),b.focus()}),$(document).on("click",".gt-unexpanded-content, .gt-expanded-content",function(a,b){g($(this).parent(),a,b)}),$(document).on("click",".gt-sps-toggle",function(){var a=$("#sps");if(!a.data("gtLoading"))if(a.data("gtLoaded"))a.hasClass("hide")?a.removeClass("hide"):a.addClass("hide");else{var b=$(this).parents(".gt-trace-parent"),f=b.data("gtTraceEntries");if(f)a.data("gtLoaded",!0),c(),f=d(f),a.removeClass("hide"),e(f,0);else{var g=b.data("gtServerId"),h=b.data("gtTraceId");a.data("gtLoading",!0);var i,j,k=$(this);setTimeout(function(){i||(j=Glowroot.showSpinner(k.parent().find(".gt-trace-detail-spinner")))},100),$.get("backend/trace/entries?server-id="+g+"&trace-id="+h).done(function(b){b.overwritten?$("#sps").append('";return{renderTrace:function(a,b,c,d){var e=JST.trace(a);d.html(e),d.addClass("gt-trace-parent"),void 0!==b&&(d.data("gtServerId",b),d.data("gtTraceId",c))},renderTraceFromExport:function(a,b,c,d){b.data("gtTraceEntries",c),b.data("gtProfile",d),this.renderTrace(a,void 0,void 0,b)},formatBytes:k,formatMillis:l,formatCount:m,profileToggle:b}}(),window.gtClipboard=function(a,b,c){var d=$(a);if(!d.data("gtZeroClip")){if("undefined"==typeof ZeroClipboard||ZeroClipboard.isFlashUnusable())d.tooltip({title:"Select for clipboard",placement:"bottom",container:"body"}),d.click(function(a){return setTimeout(function(){$(document.body).on("focusin.glowroot.hack",!1);var c=window.getSelection(),e=document.createRange();e.selectNodeContents(b()),c.removeAllRanges(),c.addRange(e);var f=$(a.target);f.closest('[tabindex="-1"]').focus(),d.attr("title","Now press Ctrl-C!").tooltip("fixTitle").tooltip("show"),d.attr("title","Select for clipboard").tooltip("fixTitle"),setTimeout(function(){$(document.body).off("focusin.glowroot.hack")})}),!1});else{var e=new ZeroClipboard(d);$("#global-zeroclipboard-html-bridge").tooltip({title:"Copy to clipboard",placement:"bottom"}),e.on("ready",function(){e.on("copy",function(a){var b=c().trim();a.clipboardData.setData("text/plain",b+"\n");var d=$(a.target);d.closest('[tabindex="-1"]').focus(),$("#global-zeroclipboard-html-bridge").attr("title","Copied!").tooltip("fixTitle").tooltip("show"),$("#global-zeroclipboard-html-bridge").attr("title","Copy to clipboard").tooltip("fixTitle")})})}d.data("gtZeroClip",!0)}},window.gtParseIncludesExcludes=function(a){function b(){g?i.push(e):h.push(e)}var c,d,e,f,g,h=[],i=[];for(a||(a=""),c=0;cAn error occurred retrieving the trace
')}),f.html(''),e=Glowroot.showSpinner(f.children().first())}return{displayModal:c}}]),glowroot.factory("confirmIfHasChanges",["$rootScope","$location","modals",function(a,b,c){return function(d){var e;return function(f,g){if((!a.layout.adminPasswordEnabled||"admin"===a.authenticatedUser)&&!d.httpError&&!e&&d.hasChanges()){f.preventDefault();var h=$("#confirmationModal");h.find(".modal-header h3").text("You have unsaved changes"),h.find(".modal-body p").text("Are you sure you want to navigate away from this page?"),c.display("#confirmationModal",!0),$("#confirmationModalButton").off("click"),$("#confirmationModalButton").on("click",function(){a.$apply(function(){e=!0,$("#confirmationModal").modal("hide"),b.$$parse(g)})})}}}}]),glowroot.factory("httpErrors",[function(){function a(a,b){if(0===b||-1===b)return{headline:"Unable to connect to server"};var c=a.message;return c||a.stackTrace||(c=a),{headline:"An error occurred",message:c,stackTrace:a.stackTrace}}return{get:a,handler:function(b,c){return c?function(d,e){403===e?c.reject("You don't have permission for this action"):412===e?c.reject("Someone else has updated the data on this page, please reload and try again"):(b.httpError=a(d,e),b.$on("$locationChangeSuccess",function(){b.httpError=void 0}),c.reject(b.httpError.headline))}:function(c,d){b.httpError=a(c,d),b.$on("$locationChangeSuccess",function(){b.httpError=void 0})}}}}]),glowroot.factory("login",["$location",function(a){var b,c;return{goToLogin:function(d,e){c=d,b=e?"/":a.path(),"/login"!==b&&a.path("/login").replace()},getMessage:function(){return c},returnToOriginalPath:function(){b&&"/login"!==b?a.path(b).replace():a.path("/").replace()}}}]),glowroot.factory("charts",["$http","$location","$rootScope","keyedColorPools","queryStrings","httpErrors",function(a,b,c,d,e,f){function g(){return{plot:void 0,keyedColorPool:d.create()}}function h(a,b,c){c.showChartSpinner=0,b.bind("plotzoom",function(a,b,d){var e=d.amount&&d.amount<1;c.$apply(function(){var a=b.getAxes().xaxis.options.min,d=b.getAxes().xaxis.options.max;j(c,a,d,e)})}),b.bind("plotselected",function(b,d){c.$apply(function(){a.plot.clearSelection();var b=d.xaxis.from,e=d.xaxis.to;j(c,b,e,!1,!0)})}),c.zoomOut=function(){var a=c.chartFrom,b=c.chartTo,d=b-a;j(c,a-d/2,b+d/2,!0)},c.refresh=function(){c.applyLast(),c.chartRefresh++}}function i(a,b){b.$watchGroup(["containerWidth","windowHeight"],function(){a.resize(),a.setupGrid(),a.draw()})}function j(a,b,c,d,e,f){if(a.chartRefresh++,d&&a.last)return a.last=k(2*a.last),void a.applyLast();var g,h,i=l(b,c);if(d||f){g=Math.floor(b/i)*i,h=Math.ceil(c/i)*i;var j=l(g,h);j!==i&&(g=Math.floor(b/j)*j,h=Math.ceil(c/j)*j)}else g=Math.ceil(b/i)*i,h=Math.floor(c/i)*i,g>=h&&(c-h>g-b?(g=Math.floor(b/i)*i,h=g+i):(h=Math.ceil(c/i)*i,g=h-i));var m=(new Date).getTime();if(h>m||c>m){if(!d&&!e&&a.last)return a.last=k(a.last/2),void a.applyLast();a.last=k(m-g,e),a.applyLast()}else a.chartFrom=g,a.chartTo=h,a.last=0}function k(a,b){var c=36e5,d=24*c;if(a>d)return b?Math.floor(a/c)*c:Math.ceil(a/d)*d;if(a>c&&!b)return Math.ceil(a/c)*c;var e=6e4;return b?Math.floor(a/e)*e:Math.ceil(a/e)*e}function l(a,b){var d,e=b-a,f=Date.now()-a,g=c.layout.rollupConfigs;for(d=0;dThe trace entries have expired, see Configuration > Storage > Trace detail data
'):b.expired?$("#sps").append('This trace has expired
'):(c(),b=d(b),a.removeClass("hide"),e(b,0))}).fail(function(){$("#sps").append('An error occurred retrieving the trace entries
')}).always(function(){i=!0,j&&j.stop(),a.data("gtLoading",!1),a.data("gtLoaded",!0)})}}}),$(document).on("click",".gt-profile-toggle",function(){var a,c=$(this).parents(".gt-trace-parent"),d=$(this),e=c.data("gtProfile");if(!e){var f=c.data("gtServerId"),g=c.data("gtTraceId");a="backend/trace/profile?server-id="+f+"&trace-id="+g}b(d,"#profileOuter",e,a)});var s="',j+=e(g),j+=" to ",j+=e(i),j+="
",j+="",j+=c("gtMillis")(f),j+=" transactions per minute",j+="
",j+="