mirror of
https://github.com/prometheus/alertmanager
synced 2025-02-18 03:27:04 +00:00
* Add pagination for silences * Exit del loop after ID is deleted * Use limit instead of n in API call * Hide limit choice in client frontend * Remove unnecessary append * Clarify doc string for Query
8 lines
17 KiB
JavaScript
8 lines
17 KiB
JavaScript
/*
|
|
* angular-ui-bootstrap
|
|
* http://angular-ui.github.io/bootstrap/
|
|
|
|
* Version: 2.0.1 - 2016-08-02
|
|
* License: MIT
|
|
*/angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.pagination","ui.bootstrap.paging","ui.bootstrap.tabindex","ui.bootstrap.dropdown","ui.bootstrap.position"]),angular.module("ui.bootstrap.tpls",["uib/template/pagination/pagination.html"]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging","ui.bootstrap.tabindex"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(t,e,n,i,a){function o(t,e,n){return{number:t,text:e,active:n}}function r(t,e){var n=[],i=1,a=e,r=angular.isDefined(s)&&e>s;r&&(u?(i=Math.max(t-Math.floor(s/2),1),a=i+s-1,a>e&&(a=e,i=a-s+1)):(i=(Math.ceil(t/s)-1)*s+1,a=Math.min(i+s-1,e)));for(var l=i;a>=l;l++){var c=o(l,p(l),l===t);n.push(c)}if(r&&s>0&&(!u||g||d)){if(i>1){if(!d||i>3){var f=o(i-1,"...",!1);n.unshift(f)}if(d){if(3===i){var h=o(2,"2",!1);n.unshift(h)}var b=o(1,"1",!1);n.unshift(b)}}if(e>a){if(!d||e-2>a){var m=o(a+1,"...",!1);n.push(m)}if(d){if(a===e-2){var v=o(e-1,e-1,!1);n.push(v)}var w=o(e,e,!1);n.push(w)}}}return n}var l=this,s=angular.isDefined(e.maxSize)?t.$parent.$eval(e.maxSize):a.maxSize,u=angular.isDefined(e.rotate)?t.$parent.$eval(e.rotate):a.rotate,g=angular.isDefined(e.forceEllipses)?t.$parent.$eval(e.forceEllipses):a.forceEllipses,d=angular.isDefined(e.boundaryLinkNumbers)?t.$parent.$eval(e.boundaryLinkNumbers):a.boundaryLinkNumbers,p=angular.isDefined(e.pageLabel)?function(n){return t.$parent.$eval(e.pageLabel,{$page:n})}:angular.identity;t.boundaryLinks=angular.isDefined(e.boundaryLinks)?t.$parent.$eval(e.boundaryLinks):a.boundaryLinks,t.directionLinks=angular.isDefined(e.directionLinks)?t.$parent.$eval(e.directionLinks):a.directionLinks,i.create(this,t,e),e.maxSize&&l._watchers.push(t.$parent.$watch(n(e.maxSize),function(t){s=parseInt(t,10),l.render()}));var c=this.render;this.render=function(){c(),t.page>0&&t.page<=t.totalPages&&(t.pages=r(t.page,t.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(t,e){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],restrict:"A",controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(t,e){return e.templateUrl||"uib/template/pagination/pagination.html"},link:function(t,n,i,a){n.addClass("pagination");var o=a[0],r=a[1];r&&o.init(r,e)}}}]),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(t){return{create:function(e,n,i){e.setNumPages=i.numPages?t(i.numPages).assign:angular.noop,e.ngModelCtrl={$setViewValue:angular.noop},e._watchers=[],e.init=function(t,a){e.ngModelCtrl=t,e.config=a,t.$render=function(){e.render()},i.itemsPerPage?e._watchers.push(n.$parent.$watch(i.itemsPerPage,function(t){e.itemsPerPage=parseInt(t,10),n.totalPages=e.calculateTotalPages(),e.updatePage()})):e.itemsPerPage=a.itemsPerPage,n.$watch("totalItems",function(t,i){(angular.isDefined(t)||t!==i)&&(n.totalPages=e.calculateTotalPages(),e.updatePage())})},e.calculateTotalPages=function(){var t=e.itemsPerPage<1?1:Math.ceil(n.totalItems/e.itemsPerPage);return Math.max(t||0,1)},e.render=function(){n.page=parseInt(e.ngModelCtrl.$viewValue,10)||1},n.selectPage=function(t,i){i&&i.preventDefault();var a=!n.ngDisabled||!i;a&&n.page!==t&&t>0&&t<=n.totalPages&&(i&&i.target&&i.target.blur(),e.ngModelCtrl.$setViewValue(t),e.ngModelCtrl.$render())},n.getText=function(t){return n[t+"Text"]||e.config[t+"Text"]},n.noPrevious=function(){return 1===n.page},n.noNext=function(){return n.page===n.totalPages},e.updatePage=function(){e.setNumPages(n.$parent,n.totalPages),n.page>n.totalPages?n.selectPage(n.totalPages):e.ngModelCtrl.$render()},n.$on("$destroy",function(){for(;e._watchers.length;)e._watchers.shift()()})}}}]),angular.module("ui.bootstrap.tabindex",[]).directive("uibTabindexToggle",function(){return{restrict:"A",link:function(t,e,n){n.$observe("disabled",function(t){n.$set("tabindex",t?-1:null)})}}}),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(t,e){var n=null;this.open=function(e){n||t.on("click",i),n&&n!==e&&(n.isOpen=!1),n=e},this.close=function(e){if(n===e){n=null,t.off("click",i);var a=e.getDropdownElement();a&&a.off("keydown",this.keybindFilter)}};var i=function(t){if(n&&!(t&&"disabled"===n.getAutoClose()||t&&3===t.which)){var i=n.getToggleElement();if(!(t&&i&&i[0].contains(t.target))){var a=n.getDropdownElement();t&&"outsideClick"===n.getAutoClose()&&a&&a[0].contains(t.target)||(n.isOpen=!1,n.focusToggleElement(),e.$$phase||n.$apply())}}};this.keybindFilter=function(t){27===t.which?(t.stopPropagation(),n.focusToggleElement(),i()):n.isKeynavEnabled()&&-1!==[38,40].indexOf(t.which)&&n.isOpen&&(t.preventDefault(),t.stopPropagation(),n.focusDropdownEntry(t.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(t,e,n,i,a,o,r,l,s,u,g){var d,p,c=this,f=t.$new(),h=a.appendToOpenClass,b=a.openClass,m=angular.noop,v=n.onToggle?i(n.onToggle):angular.noop,w=!1,P=null,$=!1,x=s.find("body");e.addClass("dropdown"),this.init=function(){if(n.isOpen&&(p=i(n.isOpen),m=p.assign,t.$watch(p,function(t){f.isOpen=!!t})),angular.isDefined(n.dropdownAppendTo)){var a=i(n.dropdownAppendTo)(f);a&&(P=angular.element(a))}w=angular.isDefined(n.dropdownAppendToBody),$=angular.isDefined(n.keyboardNav),w&&!P&&(P=x),P&&c.dropdownMenu&&(P.append(c.dropdownMenu),e.on("$destroy",function(){c.dropdownMenu.remove()}))},this.toggle=function(t){return f.isOpen=arguments.length?!!t:!f.isOpen,angular.isFunction(m)&&m(f,f.isOpen),f.isOpen},this.isOpen=function(){return f.isOpen},f.getToggleElement=function(){return c.toggleElement},f.getAutoClose=function(){return n.autoClose||"always"},f.getElement=function(){return e},f.isKeynavEnabled=function(){return $},f.focusDropdownEntry=function(t){var n=c.dropdownMenu?angular.element(c.dropdownMenu).find("a"):e.find("ul").eq(0).find("a");switch(t){case 40:c.selectedOption=angular.isNumber(c.selectedOption)?c.selectedOption===n.length-1?c.selectedOption:c.selectedOption+1:0;break;case 38:c.selectedOption=angular.isNumber(c.selectedOption)?0===c.selectedOption?0:c.selectedOption-1:n.length-1}n[c.selectedOption].focus()},f.getDropdownElement=function(){return c.dropdownMenu},f.focusToggleElement=function(){c.toggleElement&&c.toggleElement[0].focus()},f.$watch("isOpen",function(n,i){if(P&&c.dropdownMenu){var a,s,p,$=l.positionElements(e,c.dropdownMenu,"bottom-left",!0),x=0;if(a={top:$.top+"px",display:n?"block":"none"},s=c.dropdownMenu.hasClass("dropdown-menu-right"),s?(a.left="auto",p=l.scrollbarPadding(P),p.heightOverflow&&p.scrollbarWidth&&(x=p.scrollbarWidth),a.right=window.innerWidth-x-($.left+e.prop("offsetWidth"))+"px"):(a.left=$.left+"px",a.right="auto"),!w){var y=l.offset(P);a.top=$.top-y.top+"px",s?a.right=window.innerWidth-($.left-y.left+e.prop("offsetWidth"))+"px":a.left=$.left-y.left+"px"}c.dropdownMenu.css(a)}var k=P?P:e,M=k.hasClass(P?h:b);if(M===!n&&r[n?"addClass":"removeClass"](k,P?h:b).then(function(){angular.isDefined(n)&&n!==i&&v(t,{open:!!n})}),n)c.dropdownMenuTemplateUrl?g(c.dropdownMenuTemplateUrl).then(function(t){d=f.$new(),u(t.trim())(d,function(t){var e=t;c.dropdownMenu.replaceWith(e),c.dropdownMenu=e,c.dropdownMenu.on("keydown",o.keybindFilter)})}):c.dropdownMenu&&c.dropdownMenu.on("keydown",o.keybindFilter),f.focusToggleElement(),o.open(f,e);else{if(o.close(f,e),c.dropdownMenuTemplateUrl){d&&d.$destroy();var T=angular.element('<ul class="dropdown-menu"></ul>');c.dropdownMenu.replaceWith(T),c.dropdownMenu=T}c.selectedOption=null}angular.isFunction(m)&&m(t,n)})}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(t,e,n,i){i.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"A",require:"?^uibDropdown",link:function(t,e,n,i){if(i&&!angular.isDefined(n.dropdownNested)){e.addClass("dropdown-menu");var a=n.templateUrl;a&&(i.dropdownMenuTemplateUrl=a),i.dropdownMenu||(i.dropdownMenu=e)}}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(t,e,n,i){if(i){e.addClass("dropdown-toggle"),i.toggleElement=e;var a=function(a){a.preventDefault(),e.hasClass("disabled")||n.disabled||t.$apply(function(){i.toggle()})};e.bind("click",a),e.attr({"aria-haspopup":!0,"aria-expanded":!1}),t.$watch(i.isOpen,function(t){e.attr("aria-expanded",!!t)}),t.$on("$destroy",function(){e.unbind("click",a)})}}}}),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(t,e){var n,i,a={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},o={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/},r=/(HTML|BODY)/;return{getRawNode:function(t){return t.nodeName?t:t[0]||t},parseStyle:function(t){return t=parseFloat(t),isFinite(t)?t:0},offsetParent:function(n){function i(t){return"static"===(e.getComputedStyle(t).position||"static")}n=this.getRawNode(n);for(var a=n.offsetParent||t[0].documentElement;a&&a!==t[0].documentElement&&i(a);)a=a.offsetParent;return a||t[0].documentElement},scrollbarWidth:function(a){if(a){if(angular.isUndefined(i)){var o=t.find("body");o.addClass("uib-position-body-scrollbar-measure"),i=e.innerWidth-o[0].clientWidth,i=isFinite(i)?i:0,o.removeClass("uib-position-body-scrollbar-measure")}return i}if(angular.isUndefined(n)){var r=angular.element('<div class="uib-position-scrollbar-measure"></div>');t.find("body").append(r),n=r[0].offsetWidth-r[0].clientWidth,n=isFinite(n)?n:0,r.remove()}return n},scrollbarPadding:function(t){t=this.getRawNode(t);var n=e.getComputedStyle(t),i=this.parseStyle(n.paddingRight),a=this.parseStyle(n.paddingBottom),o=this.scrollParent(t,!1,!0),l=this.scrollbarWidth(o,r.test(o.tagName));return{scrollbarWidth:l,widthOverflow:o.scrollWidth>o.clientWidth,right:i+l,originalRight:i,heightOverflow:o.scrollHeight>o.clientHeight,bottom:a+l,originalBottom:a}},isScrollable:function(t,n){t=this.getRawNode(t);var i=n?a.hidden:a.normal,o=e.getComputedStyle(t);return i.test(o.overflow+o.overflowY+o.overflowX)},scrollParent:function(n,i,o){n=this.getRawNode(n);var r=i?a.hidden:a.normal,l=t[0].documentElement,s=e.getComputedStyle(n);if(o&&r.test(s.overflow+s.overflowY+s.overflowX))return n;var u="absolute"===s.position,g=n.parentElement||l;if(g===l||"fixed"===s.position)return l;for(;g.parentElement&&g!==l;){var d=e.getComputedStyle(g);if(u&&"static"!==d.position&&(u=!1),!u&&r.test(d.overflow+d.overflowY+d.overflowX))break;g=g.parentElement}return g},position:function(n,i){n=this.getRawNode(n);var a=this.offset(n);if(i){var o=e.getComputedStyle(n);a.top-=this.parseStyle(o.marginTop),a.left-=this.parseStyle(o.marginLeft)}var r=this.offsetParent(n),l={top:0,left:0};return r!==t[0].documentElement&&(l=this.offset(r),l.top+=r.clientTop-r.scrollTop,l.left+=r.clientLeft-r.scrollLeft),{width:Math.round(angular.isNumber(a.width)?a.width:n.offsetWidth),height:Math.round(angular.isNumber(a.height)?a.height:n.offsetHeight),top:Math.round(a.top-l.top),left:Math.round(a.left-l.left)}},offset:function(n){n=this.getRawNode(n);var i=n.getBoundingClientRect();return{width:Math.round(angular.isNumber(i.width)?i.width:n.offsetWidth),height:Math.round(angular.isNumber(i.height)?i.height:n.offsetHeight),top:Math.round(i.top+(e.pageYOffset||t[0].documentElement.scrollTop)),left:Math.round(i.left+(e.pageXOffset||t[0].documentElement.scrollLeft))}},viewportOffset:function(n,i,a){n=this.getRawNode(n),a=a!==!1?!0:!1;var o=n.getBoundingClientRect(),r={top:0,left:0,bottom:0,right:0},l=i?t[0].documentElement:this.scrollParent(n),s=l.getBoundingClientRect();if(r.top=s.top+l.clientTop,r.left=s.left+l.clientLeft,l===t[0].documentElement&&(r.top+=e.pageYOffset,r.left+=e.pageXOffset),r.bottom=r.top+l.clientHeight,r.right=r.left+l.clientWidth,a){var u=e.getComputedStyle(l);r.top+=this.parseStyle(u.paddingTop),r.bottom-=this.parseStyle(u.paddingBottom),r.left+=this.parseStyle(u.paddingLeft),r.right-=this.parseStyle(u.paddingRight)}return{top:Math.round(o.top-r.top),bottom:Math.round(r.bottom-o.bottom),left:Math.round(o.left-r.left),right:Math.round(r.right-o.right)}},parsePlacement:function(t){var e=o.auto.test(t);return e&&(t=t.replace(o.auto,"")),t=t.split("-"),t[0]=t[0]||"top",o.primary.test(t[0])||(t[0]="top"),t[1]=t[1]||"center",o.secondary.test(t[1])||(t[1]="center"),t[2]=e?!0:!1,t},positionElements:function(t,n,i,a){t=this.getRawNode(t),n=this.getRawNode(n);var r=angular.isDefined(n.offsetWidth)?n.offsetWidth:n.prop("offsetWidth"),l=angular.isDefined(n.offsetHeight)?n.offsetHeight:n.prop("offsetHeight");i=this.parsePlacement(i);var s=a?this.offset(t):this.position(t),u={top:0,left:0,placement:""};if(i[2]){var g=this.viewportOffset(t,a),d=e.getComputedStyle(n),p={width:r+Math.round(Math.abs(this.parseStyle(d.marginLeft)+this.parseStyle(d.marginRight))),height:l+Math.round(Math.abs(this.parseStyle(d.marginTop)+this.parseStyle(d.marginBottom)))};if(i[0]="top"===i[0]&&p.height>g.top&&p.height<=g.bottom?"bottom":"bottom"===i[0]&&p.height>g.bottom&&p.height<=g.top?"top":"left"===i[0]&&p.width>g.left&&p.width<=g.right?"right":"right"===i[0]&&p.width>g.right&&p.width<=g.left?"left":i[0],i[1]="top"===i[1]&&p.height-s.height>g.bottom&&p.height-s.height<=g.top?"bottom":"bottom"===i[1]&&p.height-s.height>g.top&&p.height-s.height<=g.bottom?"top":"left"===i[1]&&p.width-s.width>g.right&&p.width-s.width<=g.left?"right":"right"===i[1]&&p.width-s.width>g.left&&p.width-s.width<=g.right?"left":i[1],"center"===i[1])if(o.vertical.test(i[0])){var c=s.width/2-r/2;g.left+c<0&&p.width-s.width<=g.right?i[1]="left":g.right+c<0&&p.width-s.width<=g.left&&(i[1]="right")}else{var f=s.height/2-p.height/2;g.top+f<0&&p.height-s.height<=g.bottom?i[1]="top":g.bottom+f<0&&p.height-s.height<=g.top&&(i[1]="bottom")}}switch(i[0]){case"top":u.top=s.top-l;break;case"bottom":u.top=s.top+s.height;break;case"left":u.left=s.left-r;break;case"right":u.left=s.left+s.width}switch(i[1]){case"top":u.top=s.top;break;case"bottom":u.top=s.top+s.height-l;break;case"left":u.left=s.left;break;case"right":u.left=s.left+s.width-r;break;case"center":o.vertical.test(i[0])?u.left=s.left+s.width/2-r/2:u.top=s.top+s.height/2-l/2}return u.top=Math.round(u.top),u.left=Math.round(u.left),u.placement="center"===i[1]?i[0]:i[0]+"-"+i[1],u},adjustTop:function(t,e,n,i){return-1!==t.indexOf("top")&&n!==i?{top:e.top-i+"px"}:void 0},positionArrow:function(t,n){t=this.getRawNode(t);var i=t.querySelector(".tooltip-inner, .popover-inner");if(i){var a=angular.element(i).hasClass("tooltip-inner"),r=t.querySelector(a?".tooltip-arrow":".arrow");if(r){var l={top:"",bottom:"",left:"",right:""};if(n=this.parsePlacement(n),"center"===n[1])return void angular.element(r).css(l);var s="border-"+n[0]+"-width",u=e.getComputedStyle(r)[s],g="border-";g+=o.vertical.test(n[0])?n[0]+"-"+n[1]:n[1]+"-"+n[0],g+="-radius";var d=e.getComputedStyle(a?i:t)[g];switch(n[0]){case"top":l.bottom=a?"0":"-"+u;break;case"bottom":l.top=a?"0":"-"+u;break;case"left":l.right=a?"0":"-"+u;break;case"right":l.left=a?"0":"-"+u}l[n[1]]=d,angular.element(r).css(l)}}}}}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(t){t.put("uib/template/pagination/pagination.html",'<li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)" ng-disabled="noPrevious()||ngDisabled" uib-tabindex-toggle>{{::getText(\'first\')}}</a></li>\n<li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)" ng-disabled="noPrevious()||ngDisabled" uib-tabindex-toggle>{{::getText(\'previous\')}}</a></li>\n<li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)" ng-disabled="ngDisabled&&!page.active" uib-tabindex-toggle>{{page.text}}</a></li>\n<li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle>{{::getText(\'next\')}}</a></li>\n<li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle>{{::getText(\'last\')}}</a></li>\n')}]),angular.module("ui.bootstrap.position").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibPositionCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-position-measure{display:block !important;visibility:hidden !important;position:absolute !important;top:-9999px !important;left:-9999px !important;}.uib-position-scrollbar-measure{position:absolute !important;top:-9999px !important;width:50px !important;height:50px !important;overflow:scroll !important;}.uib-position-body-scrollbar-measure{overflow:scroll !important;}</style>'),angular.$$uibPositionCss=!0});
|