From 087458b7678990a5552adbcad578ca9d75db9de4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?=
Date: Sat, 22 Apr 2017 11:48:52 -0700
Subject: [PATCH] Allow selecting multiple label values when creating silence.
This commit turns label checkboxes into multiselect dropdowns that are populated from all labels of all instances of current alert (matched by alertname label). There is also a cocollapsible preview box that allows user to inspect raw silence JSON object we will send to the Alertmanager API. Fixes #69
---
Makefile | 3 +
assets/static/base.css | 26 +++
.../css/1.12.2-bootstrap-select.min.css | 6 +
assets/static/managed/css/assets.txt | 1 +
.../managed/js/1.12.2-bootstrap-select.min.js | 9 +
assets/static/managed/js/assets.txt | 1 +
.../static/managed/js/bootstrap-select.js.map | 1 +
assets/static/templates.js | 1 +
assets/static/ui.js | 168 ++++++++++++------
assets/templates/alertgroup.html | 1 +
assets/templates/silence.html | 43 ++++-
bindata_assetfs.go | 83 ++++++++-
12 files changed, 274 insertions(+), 69 deletions(-)
create mode 100644 assets/static/managed/css/1.12.2-bootstrap-select.min.css
create mode 100644 assets/static/managed/js/1.12.2-bootstrap-select.min.js
create mode 100644 assets/static/managed/js/bootstrap-select.js.map
diff --git a/Makefile b/Makefile
index 068953350..a68fbaca6 100644
--- a/Makefile
+++ b/Makefile
@@ -166,6 +166,9 @@ assets: bootstrap-tagsinput/0.8.0/bootstrap-tagsinput-typeahead.css
# datepicker widget for bootstrap3
assets: bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js
assets: bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css
+# multiselect widget for bootstrap3, used for silence form
+assets: bootstrap-select/1.12.2/js/bootstrap-select.min.js
+assets: bootstrap-select/1.12.2/css/bootstrap-select.min.css
# loaders.css, for animated spinners
assets: loaders.css/0.1.2/loaders.css.min.js
assets: loaders.css/0.1.2/loaders.min.css
diff --git a/assets/static/base.css b/assets/static/base.css
index 83495372b..ab68d4130 100644
--- a/assets/static/base.css
+++ b/assets/static/base.css
@@ -388,3 +388,29 @@ span.alert-group-link > a {
.silence-result-icon {
font-size: 12em;
}
+
+.silence-label-select {
+ background-color: inherit;
+}
+
+.bootstrap-select > button {
+ padding: 0;
+}
+.silence-label-select > .bs-caret {
+ margin-left: -6px;
+}
+.silence-label-select:hover, .silence-label-picker:hover,
+.silence-label-select:active, .silence-label-picker:active,
+.silence-label-select:focus, .silence-label-picker:focus {
+ color: inherit;
+}
+.bootstrap-select > .dropdown-menu > .dropdown-menu > li > a > .label {
+ margin-right: 20px;
+}
+
+a[aria-expanded=true] .fa-chevron-right {
+ display: none;
+}
+a[aria-expanded=false] .fa-chevron-down {
+ display: none;
+}
diff --git a/assets/static/managed/css/1.12.2-bootstrap-select.min.css b/assets/static/managed/css/1.12.2-bootstrap-select.min.css
new file mode 100644
index 000000000..d178d8248
--- /dev/null
+++ b/assets/static/managed/css/1.12.2-bootstrap-select.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap-select v1.12.2 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2017 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-group-lg .bootstrap-select.btn-group.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.btn-group.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:0!important}.bootstrap-select.btn-group.bs-container{position:absolute;height:0!important;padding:0!important}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
\ No newline at end of file
diff --git a/assets/static/managed/css/assets.txt b/assets/static/managed/css/assets.txt
index 03a8b3117..158cf263c 100644
--- a/assets/static/managed/css/assets.txt
+++ b/assets/static/managed/css/assets.txt
@@ -5,4 +5,5 @@
0.8.0-bootstrap-tagsinput.css
0.8.0-bootstrap-tagsinput-typeahead.css
4.17.47-bootstrap-datetimepicker.min.css
+1.12.2-bootstrap-select.min.css
0.1.2-loaders.min.css
diff --git a/assets/static/managed/js/1.12.2-bootstrap-select.min.js b/assets/static/managed/js/1.12.2-bootstrap-select.min.js
new file mode 100644
index 000000000..80f6556ac
--- /dev/null
+++ b/assets/static/managed/js/1.12.2-bootstrap-select.min.js
@@ -0,0 +1,9 @@
+/*!
+ * Bootstrap-select v1.12.2 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2017 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b?b.replace(this.re,this.ch):""}),b}function c(b){var c=arguments,d=b;[].shift.apply(c);var e,f=this.each(function(){var b=a(this);if(b.is("select")){var f=b.data("selectpicker"),g="object"==typeof d&&d;if(f){if(g)for(var h in g)g.hasOwnProperty(h)&&(f.options[h]=g[h])}else{var i=a.extend({},k.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),g);i.template=a.extend({},k.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,g.template),b.data("selectpicker",f=new k(this,i))}"string"==typeof d&&(e=f[d]instanceof Function?f[d].apply(f,c):f.options[d])}});return"undefined"!=typeof e?e:f}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return!(g+j>e)&&c.call(d,f,i)!=-1};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j":">",'"':""","'":"'","`":"`"},g={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},h=function(a){var b=function(b){return a[b]},c="(?:"+Object.keys(a).join("|")+")",d=RegExp(c),e=RegExp(c,"g");return function(a){return a=null==a?"":""+a,d.test(a)?a.replace(e,b):a}},i=h(f),j=h(g),k=function(b,c){d.useDefault||(a.valHooks.select.set=d._set,d.useDefault=!0),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.$lis=null,this.options=c,null===this.options.title&&(this.options.title=this.$element.attr("title"));var e=this.options.windowPadding;"number"==typeof e&&(this.options.windowPadding=[e,e,e,e]),this.val=k.prototype.val,this.render=k.prototype.render,this.refresh=k.prototype.refresh,this.setStyle=k.prototype.setStyle,this.selectAll=k.prototype.selectAll,this.deselectAll=k.prototype.deselectAll,this.destroy=k.prototype.destroy,this.remove=k.prototype.remove,this.show=k.prototype.show,this.hide=k.prototype.hide,this.init()};k.VERSION="1.12.2",k.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",showTick:!1,template:{caret:''},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0},k.prototype={constructor:k,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement).appendTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),this.options.dropdownAlignRight===!0&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!1),b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!0),b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),b.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){b.$button.addClass("bs-invalid").focus(),b.$element.on({"focus.bs.select":function(){b.$button.focus(),b.$element.off("focus.bs.select")},"shown.bs.select":function(){b.$element.val(b.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&b.$button.removeClass("bs-invalid"),b.$element.off("rendered.bs.select")}})}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",c=this.$element.parent().hasClass("input-group")?" input-group-btn":"",d=this.autofocus?" autofocus":"",e=this.options.header?''+this.options.header+"
":"",f=this.options.liveSearch?'':"",g=this.multiple&&this.options.actionsBox?' ":"",h=this.multiple&&this.options.doneButton?'":"",j='";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){var a=this.createLi();this.$menuInner[0].innerHTML=a},createLi:function(){var c=this,d=[],e=0,f=document.createElement("option"),g=-1,h=function(a,b,c,d){return""+a+""},j=function(d,e,f,g){return''+d+''};if(this.options.title&&!this.multiple&&(g--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];f.className="bs-title-option",f.innerHTML=this.options.title,f.value="",k.insertBefore(f,k.firstChild);var l=a(k.options[k.selectedIndex]);void 0===l.attr("selected")&&void 0===this.$element.data("selected")&&(f.selected=!0)}return this.$element.find("option").each(function(b){var f=a(this);if(g++,!f.hasClass("bs-title-option")){var k=this.className||"",l=this.style.cssText,m=f.data("content")?f.data("content"):f.html(),n=f.data("tokens")?f.data("tokens"):null,o="undefined"!=typeof f.data("subtext")?''+f.data("subtext")+"":"",p="undefined"!=typeof f.data("icon")?' ':"",q=f.parent(),r="OPTGROUP"===q[0].tagName,s=r&&q[0].disabled,t=this.disabled||s;if(""!==p&&t&&(p=""+p+""),c.options.hideDisabled&&(t&&!r||s))return void g--;if(f.data("content")||(m=p+''+m+o+""),r&&f.data("divider")!==!0){if(c.options.hideDisabled&&t){if(void 0===q.data("allOptionsDisabled")){var u=q.children();q.data("allOptionsDisabled",u.filter(":disabled").length===u.length)}if(q.data("allOptionsDisabled"))return void g--}var v=" "+q[0].className||"";if(0===f.index()){e+=1;var w=q[0].label,x="undefined"!=typeof q.data("subtext")?''+q.data("subtext")+"":"",y=q.data("icon")?' ':"";w=y+''+i(w)+x+"",0!==b&&d.length>0&&(g++,d.push(h("",null,"divider",e+"div"))),g++,d.push(h(w,null,"dropdown-header"+v,e))}if(c.options.hideDisabled&&t)return void g--;d.push(h(j(m,"opt "+k+v,l,n),b,"",e))}else if(f.data("divider")===!0)d.push(h("",b,"divider"));else if(f.data("hidden")===!0)d.push(h(j(m,k,l,n),b,"hidden is-hidden"));else{var z=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName;if(!z&&c.options.hideDisabled)for(var A=a(this).prevAll(),B=0;B ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' '+c.data("subtext")+"":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content").toString():e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",j(a.trim(f.replace(/<[^>]*>?/g,"")))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("input");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle&&getComputedStyle(d),v=u?null:a(d),w={vert:parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),horiz:parseInt(u?u.paddingLeft:v.css("paddingLeft"))+parseInt(u?u.paddingRight:v.css("paddingRight"))+parseInt(u?u.borderLeftWidth:v.css("borderLeftWidth"))+parseInt(u?u.borderRightWidth:v.css("borderRightWidth"))},x={vert:w.vert+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2,horiz:w.horiz+parseInt(u?u.marginLeft:v.css("marginLeft"))+parseInt(u?u.marginRight:v.css("marginRight"))+2};document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f,g,h,i,j=this,k=this.$menu,l=this.$menuInner,m=a(window),n=this.$newElement[0].offsetHeight,o=this.$newElement[0].offsetWidth,p=this.sizeInfo.liHeight,q=this.sizeInfo.headerHeight,r=this.sizeInfo.searchHeight,s=this.sizeInfo.actionsHeight,t=this.sizeInfo.doneButtonHeight,u=this.sizeInfo.dividerHeight,v=this.sizeInfo.menuPadding,w=this.sizeInfo.menuExtras,x=this.options.hideDisabled?".disabled":"",y=function(){var b,c=j.$newElement.offset(),d=a(j.options.container);j.options.container&&!d.is("body")?(b=d.offset(),b.top+=parseInt(d.css("borderTopWidth")),b.left+=parseInt(d.css("borderLeftWidth"))):b={top:0,left:0};var e=j.options.windowPadding;f=c.top-b.top-m.scrollTop(),g=m.height()-f-n-b.top-e[2],h=c.left-b.left-m.scrollLeft(),i=m.width()-h-o-b.left-e[1],f-=e[0],h-=e[3]};if(y(),"auto"===this.options.size){var z=function(){var m,n=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},u=j.$menuInner[0].getElementsByTagName("li"),x=Array.prototype.filter?Array.prototype.filter.call(u,n("hidden",!1)):j.$lis.not(".hidden"),z=Array.prototype.filter?Array.prototype.filter.call(x,n("dropdown-header",!0)):x.filter(".dropdown-header");y(),b=g-w.vert,c=i-w.horiz,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height"),k.data("width")||k.data("width",k.width()),e=k.data("width")):(d=k.height(),e=k.width()),j.options.dropupAuto&&j.$newElement.toggleClass("dropup",f>g&&b-w.verti&&c-w.horiz3?3*p+w.vert-2:0,k.css({"max-height":b+"px",overflow:"hidden","min-height":m+q+r+s+t+"px"}),l.css({"max-height":b-q-r-s-t-v.vert+"px","overflow-y":"auto","min-height":Math.max(m-v.vert,0)+"px"})};z(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",z),m.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",z)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(x).length>this.options.size){var A=this.$lis.not(".divider").not(x).children().slice(0,this.options.size).last().parent().index(),B=this.$lis.slice(0,A+1).filter(".divider").length;b=p*this.options.size+B*u+v.vert,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height")):d=k.height(),j.options.dropupAuto&&this.$newElement.toggleClass("dropup",f>g&&b-w.vert');var b,c,d,e=this,f=a(this.options.container),g=function(a){e.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),f.is("body")?c={top:0,left:0}:(c=f.offset(),c.top+=parseInt(f.css("borderTopWidth"))-f.scrollTop(),c.left+=parseInt(f.css("borderLeftWidth"))-f.scrollLeft()),d=a.hasClass("dropup")?0:a[0].offsetHeight,e.$bsContainer.css({top:b.top-c.top+d,left:b.left-c.left,width:a[0].offsetWidth})};this.$button.on("click",function(){var b=a(this);e.isDisabled()||(g(e.$newElement),e.$bsContainer.appendTo(e.options.container).toggleClass("open",!b.hasClass("open")).append(e.$menu))}),a(window).on("resize scroll",function(){g(e.$newElement)}),this.$element.on("hide.bs.select",function(){e.$menu.data("height",e.$menu.height()),e.$bsContainer.detach()})},setSelected:function(a,b,c){c||(this.togglePlaceholder(),c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b).find("a").attr("aria-selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1).attr("aria-disabled",!0):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0).attr("aria-disabled",!1)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1).attr("aria-disabled",!0)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled").attr("aria-disabled",!1)),this.$button.attr("tabindex")!=-1||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},togglePlaceholder:function(){var a=this.$element.val();this.$button.toggleClass("bs-placeholder",null===a||""===a||a.constructor===Array&&0===a.length)},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&this.$element.attr("tabindex")!==-98&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var b=this,c=a(document);c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$button.on("click",function(){b.setSize()}),this.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()}),this.$menuInner.on("click","li a",function(c){var d=a(this),f=d.parent().data("originalIndex"),g=b.$element.val(),h=b.$element.prop("selectedIndex"),i=!0;if(b.multiple&&1!==b.options.maxOptions&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var j=b.$element.find("option"),k=j.eq(f),l=k.prop("selected"),m=k.parent("optgroup"),n=b.options.maxOptions,o=m.data("maxOptions")||!1;if(b.multiple){if(k.prop("selected",!l),b.setSelected(f,!l),d.blur(),n!==!1||o!==!1){var p=n');t[2]&&(u=u.replace("{var}",t[2][n>1?0:1]),v=v.replace("{var}",t[2][o>1?0:1])),k.prop("selected",!1),b.$menu.append(w),n&&p&&(w.append(a(""+u+"
")),i=!1,b.$element.trigger("maxReached.bs.select")),o&&q&&(w.append(a(""+v+"
")),i=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(f,!1)},10),w.delay(750).fadeOut(300,function(){a(this).remove()})}}}else j.prop("selected",!1),k.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected").find("a").attr("aria-selected",!1),b.setSelected(f,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),i&&(g!=b.$element.val()&&b.multiple||h!=b.$element.prop("selectedIndex")&&!b.multiple)&&(e=[f,k.prop("selected"),l],b.$element.triggerNative("change"))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.change(function(){b.render(!1),b.$element.trigger("changed.bs.select",e),e=null})},liveSearchListener:function(){var c=this,d=a('');this.$button.on("click.dropdown.data-api",function(){c.$menuInner.find(".active").removeClass("active"),c.$searchbox.val()&&(c.$searchbox.val(""),c.$lis.not(".is-hidden").removeClass("hidden"),d.parent().length&&d.remove()),c.multiple||c.$menuInner.find(".selected").addClass("active"),setTimeout(function(){c.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(c.$lis.not(".is-hidden").removeClass("hidden"),c.$lis.filter(".active").removeClass("active"),d.remove(),c.$searchbox.val()){var e,f=c.$lis.not(".is-hidden, .divider, .dropdown-header");if(e=c.options.liveSearchNormalize?f.find("a").not(":a"+c._searchStyle()+'("'+b(c.$searchbox.val())+'")'):f.find("a").not(":"+c._searchStyle()+'("'+c.$searchbox.val()+'")'),e.length===f.length)d.html(c.options.noneResultsText.replace("{0}",'"'+i(c.$searchbox.val())+'"')),c.$menuInner.append(d),c.$lis.addClass("hidden");else{e.parent().addClass("hidden");var g,h=c.$lis.not(".hidden");h.each(function(b){var c=a(this);c.hasClass("divider")?void 0===g?c.addClass("hidden"):(g&&g.addClass("hidden"),g=c):c.hasClass("dropdown-header")&&h.eq(b+1).data("optgroup")!==c.data("optgroup")?c.addClass("hidden"):g=null}),g&&g.addClass("hidden"),f.not(".hidden").first().addClass("active")}}})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){if(this.multiple){"undefined"==typeof b&&(b=!0),this.findLis();var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden"),e=d.length,f=[];if(b){if(d.filter(".selected").length===d.length)return}else if(0===d.filter(".selected").length)return;d.toggleClass("selected",b);for(var g=0;g=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90))return o.options.container?o.$button.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),void o.$searchbox.focus();if(o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(c.preventDefault(),c.stopPropagation(),o.$menuInner.click(),o.$button.focus()),d=a('[role="listbox"] li'+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),eh&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),
+m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var l=a.fn.selectpicker;a.fn.selectpicker=c,a.fn.selectpicker.Constructor=k,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=l,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',k.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);c.call(b,b.data())})})}(a)});
+//# sourceMappingURL=bootstrap-select.js.map
\ No newline at end of file
diff --git a/assets/static/managed/js/assets.txt b/assets/static/managed/js/assets.txt
index 0528f3f0c..abc1fd486 100644
--- a/assets/static/managed/js/assets.txt
+++ b/assets/static/managed/js/assets.txt
@@ -7,6 +7,7 @@
0.8.0-bootstrap-tagsinput.min.js
1.1.1-typeahead.bundle.min.js
4.17.47-bootstrap-datetimepicker.min.js
+1.12.2-bootstrap-select.min.js
0.1.2-loaders.css.min.js
2.1.3-js.cookie.min.js
1.8.3-underscore-min.js
diff --git a/assets/static/managed/js/bootstrap-select.js.map b/assets/static/managed/js/bootstrap-select.js.map
new file mode 100644
index 000000000..82f842dee
--- /dev/null
+++ b/assets/static/managed/js/bootstrap-select.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap-select.js"],"names":["root","factory","define","amd","a0","module","exports","require","this","jQuery","$","normalizeToBase","text","rExps","re","ch","each","replace","Plugin","option","args","arguments","_option","shift","apply","value","chain","$this","is","data","options","i","hasOwnProperty","config","extend","Selectpicker","DEFAULTS","fn","selectpicker","defaults","template","Function","String","prototype","includes","toString","defineProperty","object","$defineProperty","Object","result","error","indexOf","search","TypeError","string","call","stringLength","length","searchString","searchLength","position","undefined","pos","Number","start","Math","min","max","configurable","writable","startsWith","index","charCodeAt","keys","o","k","r","push","valHooks","useDefault","_set","select","set","elem","changed_arguments","triggerNative","eventName","event","el","dispatchEvent","Event","bubbles","document","createEvent","initEvent","fireEvent","createEventObject","eventType","trigger","expr","pseudos","icontains","obj","meta","$obj","haystack","toUpperCase","ibegins","aicontains","aibegins","escapeMap","&","<",">","\"","'","`","unescapeMap","&","<",">",""","'","`","createEscaper","map","escaper","match","source","join","testRegexp","RegExp","replaceRegexp","test","htmlEscape","htmlUnescape","element","$element","$newElement","$button","$menu","$lis","title","attr","winPad","windowPadding","val","render","refresh","setStyle","selectAll","deselectAll","destroy","remove","show","hide","init","VERSION","noneSelectedText","noneResultsText","countSelectedText","numSelected","numTotal","maxOptionsText","numAll","numGroup","selectAllText","deselectAllText","doneButton","doneButtonText","multipleSeparator","styleBase","style","size","selectedTextFormat","width","container","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","header","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","iconBase","tickIcon","showTick","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","constructor","that","id","addClass","liObj","multiple","prop","autofocus","createView","after","appendTo","children","$menuInner","$searchbox","find","removeClass","click","e","preventDefault","focus","checkDisabled","clickListener","liveSearchListener","setWidth","selectPosition","on","hide.bs.dropdown","hidden.bs.dropdown","show.bs.dropdown","shown.bs.dropdown","hasAttribute","focus.bs.select","off","shown.bs.select","rendered.bs.select","validity","valid","setTimeout","createDropdown","inputGroup","parent","hasClass","searchbox","actionsbox","donebutton","drop","$drop","li","createLi","innerHTML","reloadLi","_li","optID","titleOption","createElement","liIndex","generateLI","content","classes","optgroup","generateA","inline","tokens","html","className","insertBefore","firstChild","$opt","selectedIndex","selected","optionClass","cssText","subtext","icon","$parent","isOptgroup","tagName","isOptgroupDisabled","disabled","isDisabled","$options","filter","optGroupClass","label","labelSubtext","labelIcon","showDivider","previousElementSibling","$prev","prevAll","optGroupDistance","d","prevOption","eq","findLis","updateLi","notDisabled","setDisabled","parentNode","setSelected","togglePlaceholder","tabIndex","selectedItems","toArray","split","totalCount","not","tr8nText","trim","status","buttonClass","liHeight","sizeInfo","newElement","menu","menuInner","divider","a","cloneNode","actions","appendChild","createTextNode","input","body","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","dividerHeight","outerHeight","menuStyle","getComputedStyle","menuPadding","vert","parseInt","paddingTop","css","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginTop","marginBottom","marginLeft","marginRight","removeChild","setSize","menuHeight","menuWidth","getHeight","getWidth","selectOffsetTop","selectOffsetBot","selectOffsetLeft","selectOffsetRight","$window","window","selectHeight","selectWidth","offsetWidth","divHeight","getPos","containerPos","offset","$container","top","left","scrollTop","height","scrollLeft","getSize","minHeight","include","classList","contains","lis","getElementsByTagName","lisVisible","Array","optGroup","toggleClass","max-height","overflow","min-height","overflow-y","optIndex","slice","last","divLength","$selectClone","clone","$selectClone2","ulWidth","outerWidth","btnWidth","$bsContainer","actualHeight","getPlacement","append","detach","removeAttr","$document","keyCode","offsetTop","clickedIndex","prevValue","prevIndex","triggerChange","stopPropagation","$option","state","$optgroup","maxOptionsGrp","blur","maxReached","maxReachedGrp","optgroupID","maxOptionsArr","maxTxt","maxTxtGrp","$notify","delay","fadeOut","currentTarget","target","change","$no_results","$hideItems","$searchBase","_searchStyle","$foundDiv","$lisVisible","first","styles","begins","changeAll","lisVisLen","selectedOptions","origIndex","getAttribute","toggle","keydown","$items","next","prev","nextPrev","isActive","selector","keyCodeMap","32","48","49","50","51","52","53","54","55","56","57","59","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","96","97","98","99","100","101","102","103","104","105","nextAll","count","prevKey","keyIndex","toLowerCase","substring","before","removeData","old","Constructor","noConflict","$selectpicker"],"mappings":"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","file":"bootstrap-select.min.js"}
\ No newline at end of file
diff --git a/assets/static/templates.js b/assets/static/templates.js
index 5e7f6ae74..673538cc4 100644
--- a/assets/static/templates.js
+++ b/assets/static/templates.js
@@ -23,6 +23,7 @@ var Templates = (function(params) {
silenceForm: '#silence-form',
silenceFormSuccess: '#silence-form-success',
silenceFormError: '#silence-form-error',
+ silenceFormFatal: '#silence-form-fatal',
// label button
buttonLabel: '#label-button-filter',
diff --git a/assets/static/ui.js b/assets/static/ui.js
index 4c42c05db..6b5e273b7 100644
--- a/assets/static/ui.js
+++ b/assets/static/ui.js
@@ -82,41 +82,123 @@ var UI = (function(params) {
}
+ silenceFormData = function() {
+ var values = $("#newSilenceForm").serializeArray();
+ var payload = {
+ matchers: [],
+ startsAt: "",
+ endsAt: "",
+ createdBy: "",
+ comment: ""
+ };
+ $.each(values, function(i, elem){
+ switch (elem.name) {
+ case "comment": case "createdBy":
+ payload[elem.name] = elem.value;
+ break;
+ case "startsAt": case "endsAt":
+ payload[elem.name] = moment(elem.value);
+ break;
+ }
+ });
+ $.each($("#newSilenceForm .selectpicker"), function(i, elem) {
+ var label_key = $(elem).data('label-key');
+ var values = $(elem).selectpicker('val');
+ if (values && values.length > 0) {
+ var pval;
+ isRegex = false;
+ if (values.length > 1) {
+ pval = "(" + values.join("|") + ")";
+ isRegex = true;
+ } else {
+ pval = values[0];
+ }
+ payload["matchers"].push({
+ name: label_key,
+ value: pval,
+ isRegex: isRegex
+ });
+ }
+ });
+ return payload;
+ }
+
+ silenceFormJSONRender = function() {
+ var d = "curl " + $("#silenceModal").data("silence-api")
+ + "\n -X POST --data "
+ + JSON.stringify(silenceFormData(), undefined, 2);
+ $("#silenceJSONBlob").html(d);
+ }
+
// modal form for creating new silences
setupSilenceForm = function() {
var modal = $("#silenceModal");
modal.on("show.bs.modal", function(event) {
Unsee.Pause();
- var modal = $(this);
var elem = $(event.relatedTarget);
- var labels = [];
+ var elemLabels = {};
$.each(elem.data("labels").split(","), function(i, l) {
- labels.push({
- key: l.split("=")[0],
- value: l.split("=")[1],
- attrs: Alerts.GetLabelAttrs(l.split("=")[0], l.split("=")[1])
- });
+ elemLabels[l.split("=")[0]] = l.split("=")[1];
});
- modal.find(".modal-body").html(
- Templates.Render("silenceForm", {
- labels: labels
- })
- );
- $('.datetime-picker').datetimepicker({
- format: "YYYY-MM-DD HH:mm",
- icons: {
- time: 'fa fa-clock-o',
- date: 'fa fa-calendar',
- up: 'fa fa-chevron-up',
- down: 'fa fa-chevron-down',
- previous: 'fa fa-chevron-left',
- next: 'fa fa-chevron-right',
- today: 'fa fa-asterisk',
- clear: 'fa fa-undo',
- close: 'fa fa-close'
+ $.ajax({
+ url: 'alerts.json?q=alertname=' + elem.data('alertname'),
+ error: function(xhr, textStatus, errorThrown) {
+ var err = xhr.responseText || errorThrown || textStatus;
+ modal.find(".modal-body").html(
+ Templates.Render("silenceFormFatal", {error: err})
+ );
},
- minDate: moment().subtract(1, 'minutes'),
- sideBySide: true
+ success: function(data) {
+ var modal = $("#silenceModal");
+ var labels = {};
+ $.each(data.groups, function(i, group) {
+ $.each(group.alerts, function(j, alert) {
+ $.each(alert.labels, function(label_key, label_val) {
+ if (labels[label_key] == undefined) {
+ labels[label_key] = {};
+ }
+ if (labels[label_key][label_val] == undefined) {
+ labels[label_key][label_val] = {
+ key: label_key,
+ value: label_val,
+ attrs: Alerts.GetLabelAttrs(label_key, label_val),
+ selected: elemLabels[label_key] == label_val
+ }
+ }
+ });
+ });
+ });
+ modal.find(".modal-body").html(
+ Templates.Render("silenceForm", {labels: labels})
+ );
+ $(".selectpicker").selectpicker({
+ iconBase: 'fa',
+ tickIcon: 'fa-check',
+ width: 'fit',
+ actionsBox: true,
+ selectAllText: 'All',
+ deselectAllText: 'None',
+ noneSelectedText: 'No label selected',
+ multipleSeparator: ' ',
+ selectedTextFormat: 'count > 2'
+ });
+ $('.datetime-picker').datetimepicker({
+ format: "YYYY-MM-DD HH:mm",
+ icons: {
+ time: 'fa fa-clock-o',
+ date: 'fa fa-calendar',
+ up: 'fa fa-chevron-up',
+ down: 'fa fa-chevron-down',
+ previous: 'fa fa-chevron-left',
+ next: 'fa fa-chevron-right',
+ today: 'fa fa-asterisk',
+ clear: 'fa fa-undo',
+ close: 'fa fa-close'
+ },
+ minDate: moment().subtract(1, 'minutes'),
+ sideBySide: true
+ });
+ }
});
});
@@ -125,34 +207,14 @@ var UI = (function(params) {
modal.find(".modal-body").children().remove();
Unsee.WaitForNextReload();
});
+ modal.on('show.bs.collapse, dp.change', function (e) {
+ silenceFormJSONRender();
+ });
+ modal.on('change', function (e) {
+ silenceFormJSONRender();
+ });
modal.submit(function(event) {
- var values = $("#newSilenceForm").serializeArray();
- var payload = {
- matchers: [],
- startsAt: "",
- endsAt: "",
- createdBy: "",
- comment: ""
- };
- $.each(values, function(i, elem){
- switch (elem.name) {
- case "comment": case "createdBy":
- payload[elem.name] = elem.value;
- break;
- case "startsAt": case "endsAt":
- payload[elem.name] = moment(elem.value);
- break;
- default:
- if (elem.value == "on") {
- payload["matchers"].push({
- name: elem.name.split("=")[0],
- value: elem.name.split("=")[1],
- isRegex: false
- })
- }
- }
- });
-
+ payload = silenceFormData();
if (payload["matchers"].length == 0) {
var errContent = Templates.Render("silenceFormError", {error: "Select at least on label"});
$("#newSilenceAlert").html(errContent).removeClass("hidden");
diff --git a/assets/templates/alertgroup.html b/assets/templates/alertgroup.html
index bd47a4ca1..4a8e33cdb 100644
--- a/assets/templates/alertgroup.html
+++ b/assets/templates/alertgroup.html
@@ -90,6 +90,7 @@
diff --git a/assets/templates/silence.html b/assets/templates/silence.html
index b46d53d89..7fbc54367 100644
--- a/assets/templates/silence.html
+++ b/assets/templates/silence.html
@@ -2,17 +2,20 @@
+
+