Browse Source

Use Selectize.js for entering tags. Fixes #324

pull/340/head
Pēteris Caune 5 years ago
parent
commit
00810ff123
No known key found for this signature in database GPG Key ID: E28D7679E9A9EDE2
13 changed files with 824 additions and 9 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +6
    -0
      hc/front/views.py
  3. +316
    -0
      static/css/selectize.hc.css
  4. +17
    -1
      static/js/checks.js
  5. +18
    -1
      static/js/details.js
  6. +4
    -0
      static/js/selectize.min.js
  7. +1
    -0
      stuff/bootstrap.sh
  8. +152
    -0
      stuff/selectize/selectize.hc.less
  9. +298
    -0
      stuff/selectize/selectize.less
  10. +2
    -1
      templates/base.html
  11. +1
    -1
      templates/front/details.html
  12. +1
    -0
      templates/front/my_checks.html
  13. +7
    -5
      templates/front/update_name_modal.html

+ 1
- 0
CHANGELOG.md View File

@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
- Experimental Prometheus metrics endpoint (#300)
- Don't store user's current project in DB, put it explicitly in page URLs (#336)
- API reference in Markdown
- Use Selectize.js for entering tags (#324)
### Bug Fixes
- The "render_docs" command checks if markdown and pygments is installed (#329)


+ 6
- 0
hc/front/views.py View File

@ -511,6 +511,11 @@ def details(request, code):
channels = Channel.objects.filter(project=check.project)
channels = list(channels.order_by("created"))
all_tags = set()
q = Check.objects.filter(project=check.project).exclude(tags="")
for tags in q.values_list("tags", flat=True):
all_tags.update(tags.split(" "))
ctx = {
"page": "details",
"project": check.project,
@ -520,6 +525,7 @@ def details(request, code):
"downtimes": check.downtimes(months=3),
"is_new": "new" in request.GET,
"is_copied": "copied" in request.GET,
"all_tags": " ".join(sorted(all_tags)),
}
return render(request, "front/details.html", ctx)


+ 316
- 0
static/css/selectize.hc.css View File

@ -0,0 +1,316 @@
/**
* selectize.bootstrap3.css (v@@version) - Bootstrap 3 Theme
* Copyright (c) 20132015 Brian Reavis & contributors
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at:
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*
* @author Brian Reavis <brian@thirdroute.com>
*/
.selectize-control {
position: relative;
}
.selectize-dropdown,
.selectize-input,
.selectize-input input {
color: #333333;
font-family: inherit;
font-size: inherit;
line-height: 20px;
-webkit-font-smoothing: inherit;
}
.selectize-input,
.selectize-control.single .selectize-input.input-active {
background: #ffffff;
cursor: text;
display: inline-block;
}
.selectize-input {
border: 1px solid #cccccc;
padding: 6px 12px;
display: inline-block;
width: 100%;
overflow: hidden;
position: relative;
z-index: 1;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.selectize-control.multi .selectize-input.has-items {
padding: 4px 12px 1px;
}
.selectize-input.full {
background-color: #ffffff;
}
.selectize-input.disabled,
.selectize-input.disabled * {
cursor: default !important;
}
.selectize-input.focus {
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
}
.selectize-input.dropdown-active {
-webkit-border-radius: 2px 2px 0 0;
-moz-border-radius: 2px 2px 0 0;
border-radius: 2px 2px 0 0;
}
.selectize-input > * {
vertical-align: baseline;
display: -moz-inline-stack;
display: inline-block;
zoom: 1;
*display: inline;
}
.selectize-control.multi .selectize-input > div {
cursor: pointer;
margin: 0 3px 3px 0;
padding: 2px 6px;
background: #efefef;
color: #333333;
border: 0 solid rgba(0, 0, 0, 0);
}
.selectize-control.multi .selectize-input > div.active {
background: #22bc66;
color: #ffffff;
border: 0 solid rgba(0, 0, 0, 0);
}
.selectize-control.multi .selectize-input.disabled > div,
.selectize-control.multi .selectize-input.disabled > div.active {
color: #808080;
background: #ffffff;
border: 0 solid rgba(77, 77, 77, 0);
}
.selectize-input > input {
display: inline-block !important;
padding: 0 !important;
min-height: 0 !important;
max-height: none !important;
max-width: 100% !important;
margin: 0 !important;
text-indent: 0 !important;
border: 0 none !important;
background: none !important;
line-height: inherit !important;
-webkit-user-select: auto !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
}
.selectize-input > input::-ms-clear {
display: none;
}
.selectize-input > input:focus {
outline: none !important;
}
.selectize-input::after {
content: ' ';
display: block;
clear: left;
}
.selectize-input.dropdown-active::before {
content: ' ';
display: block;
position: absolute;
background: #ffffff;
height: 1px;
bottom: 0;
left: 0;
right: 0;
}
.selectize-dropdown {
position: absolute;
z-index: 10;
border: 1px solid #d0d0d0;
background: #ffffff;
margin: -1px 0 0 0;
border-top: 0 none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-webkit-border-radius: 0 0 2px 2px;
-moz-border-radius: 0 0 2px 2px;
border-radius: 0 0 2px 2px;
}
.selectize-dropdown [data-selectable] {
cursor: pointer;
overflow: hidden;
}
.selectize-dropdown [data-selectable] .highlight {
background: rgba(255, 237, 40, 0.4);
-webkit-border-radius: 1px;
-moz-border-radius: 1px;
border-radius: 1px;
}
.selectize-dropdown .option,
.selectize-dropdown .optgroup-header {
padding: 3px 12px;
}
.selectize-dropdown .option,
.selectize-dropdown [data-disabled],
.selectize-dropdown [data-disabled] [data-selectable].option {
cursor: inherit;
opacity: 0.5;
}
.selectize-dropdown [data-selectable].option {
opacity: 1;
}
.selectize-dropdown .optgroup:first-child .optgroup-header {
border-top: 0 none;
}
.selectize-dropdown .optgroup-header {
color: #777777;
background: #ffffff;
cursor: default;
}
.selectize-dropdown .active {
background-color: #f5f5f5;
color: #262626;
}
.selectize-dropdown .active.create {
color: #262626;
}
.selectize-dropdown .create {
color: rgba(51, 51, 51, 0.5);
}
.selectize-dropdown-content {
overflow-y: auto;
overflow-x: hidden;
max-height: 200px;
-webkit-overflow-scrolling: touch;
}
.selectize-control.single .selectize-input,
.selectize-control.single .selectize-input input {
cursor: pointer;
}
.selectize-control.single .selectize-input.input-active,
.selectize-control.single .selectize-input.input-active input {
cursor: text;
}
.selectize-control.single .selectize-input:after {
content: ' ';
display: block;
position: absolute;
top: 50%;
right: 17px;
margin-top: -3px;
width: 0;
height: 0;
border-style: solid;
border-width: 5px 5px 0 5px;
border-color: #333333 transparent transparent transparent;
}
.selectize-control.single .selectize-input.dropdown-active:after {
margin-top: -4px;
border-width: 0 5px 5px 5px;
border-color: transparent transparent #333333 transparent;
}
.selectize-control.rtl.single .selectize-input:after {
left: 17px;
right: auto;
}
.selectize-control.rtl .selectize-input > input {
margin: 0 4px 0 -2px !important;
}
.selectize-control .selectize-input.disabled {
opacity: 0.5;
background-color: #ffffff;
}
.selectize-dropdown,
.selectize-dropdown.form-control {
height: auto;
padding: 0;
margin: 2px 0 0 0;
z-index: 1000;
background: #ffffff;
border: 1px solid #cccccc;
border: 1px solid rgba(0, 0, 0, 0.15);
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}
.selectize-dropdown .optgroup-header {
font-size: 12px;
line-height: 1.42857143;
}
.selectize-dropdown .optgroup:first-child:before {
display: none;
}
.selectize-dropdown .optgroup:before {
content: ' ';
display: block;
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #e5e5e5;
margin-left: -12px;
margin-right: -12px;
}
.selectize-dropdown-content {
padding: 5px 0;
}
.selectize-dropdown-header {
padding: 6px 12px;
}
.selectize-input {
min-height: 34px;
}
.selectize-input.dropdown-active {
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.selectize-input.dropdown-active::before {
display: none;
}
.selectize-input.focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px rgba(102, 175, 233, 0.2);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px rgba(102, 175, 233, 0.2);
}
.has-error .selectize-input {
border-color: #a94442;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .selectize-input:focus {
border-color: #843534;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.selectize-control.multi .selectize-input.has-items {
padding-left: 6px;
padding-right: 6px;
}
.selectize-control.multi .selectize-input > div {
-webkit-border-radius: 1px;
-moz-border-radius: 1px;
border-radius: 1px;
}
.form-control.selectize-control {
padding: 0;
height: auto;
border: none;
background: none;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}

+ 17
- 1
static/js/checks.js View File

@ -7,7 +7,7 @@ $(function () {
$("#update-name-form").attr("action", url);
$("#update-name-input").val(this.dataset.name);
$("#update-tags-input").val(this.dataset.tags);
tagsSelectize.setValue(this.dataset.tags.split(" "));
$("#update-desc-input").val(this.dataset.desc);
$('#update-name-modal').modal("show");
$("#update-name-input").focus();
@ -233,4 +233,20 @@ $(function () {
prompt("Press Ctrl+C to select:", text)
});
// Configure Selectize for entering tags
$("#update-tags-input").selectize({
create: true,
createOnBlur: true,
delimiter: " ",
labelField: "value",
searchField: ["value"],
hideSelected: true,
highlight: false
});
var tagsSelectize = document.getElementById("update-tags-input").selectize;
$("#my-checks-tags div").each(function(idx, el) {
tagsSelectize.addOption({value: el.textContent});
});
});

+ 18
- 1
static/js/details.js View File

@ -6,6 +6,24 @@ $(function () {
return false;
});
// Configure Selectize for entering tags
var options = [];
var allTags = $("#update-tags-input").data("all-tags").split(" ");
for (var i=0, tag; tag = allTags[i]; i++) {
options.push({value: tag});
}
$("#update-tags-input").selectize({
create: true,
createOnBlur: true,
delimiter: " ",
labelField: "value",
searchField: ["value"],
hideSelected: true,
highlight: false,
options: options
});
$("#new-check-alert a").click(function() {
$("#" + this.dataset.target).click();
return false;
@ -152,5 +170,4 @@ $(function () {
$("#transfer-confirm").prop("disabled", !this.value);
});
});

+ 4
- 0
static/js/selectize.min.js
File diff suppressed because it is too large
View File


+ 1
- 0
stuff/bootstrap.sh View File

@ -1 +1,2 @@
lessc bootstrap/bootstrap.less ../static/css/bootstrap.css
lessc selectize/selectize.hc.less ../static/css/selectize.hc.css

+ 152
- 0
stuff/selectize/selectize.hc.less View File

@ -0,0 +1,152 @@
/**
* selectize.bootstrap3.css (v@@version) - Bootstrap 3 Theme
* Copyright (c) 2013–2015 Brian Reavis & contributors
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at:
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*
* @author Brian Reavis <[email protected]>
*/
@import "../bootstrap/variables.less";
@import "../bootstrap/mixins.less";
@import "selectize";
@selectize-font-family: inherit;
@selectize-font-size: inherit;
@selectize-line-height: @line-height-computed;
@selectize-color-text: @text-color;
@selectize-color-highlight: rgba(255,237,40,0.4);
@selectize-color-input: @input-bg;
@selectize-color-input-full: @input-bg;
@selectize-color-input-error: @state-danger-text;
@selectize-color-input-error-focus: darken(@selectize-color-input-error, 10%);
@selectize-color-disabled: @input-bg;
@selectize-color-item: #efefef;
@selectize-color-item-border: rgba(0,0,0,0);
@selectize-color-item-active: @component-active-bg;
@selectize-color-item-active-text: #fff;
@selectize-color-item-active-border: rgba(0,0,0,0);
@selectize-color-optgroup: @dropdown-bg;
@selectize-color-optgroup-text: @dropdown-header-color;
@selectize-color-optgroup-border: @dropdown-divider-bg;
@selectize-color-dropdown: @dropdown-bg;
@selectize-color-dropdown-border-top: mix(@input-border, @input-bg, 0.8);
@selectize-color-dropdown-item-active: @dropdown-link-hover-bg;
@selectize-color-dropdown-item-active-text: @dropdown-link-hover-color;
@selectize-color-dropdown-item-create-active-text: @dropdown-link-hover-color;
@selectize-opacity-disabled: 0.5;
@selectize-shadow-input: none;
@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);
@selectize-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, .075);
@selectize-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@selectize-color-input-error, 20%);
@selectize-border: 1px solid @input-border;
@selectize-border-radius: @input-border-radius;
@selectize-width-item-border: 0;
@selectize-padding-x: @padding-base-horizontal;
@selectize-padding-y: @padding-base-vertical;
@selectize-padding-dropdown-item-x: @padding-base-horizontal;
@selectize-padding-dropdown-item-y: 3px;
@selectize-padding-item-x: 6px;
@selectize-padding-item-y: 2px;
@selectize-margin-item-x: 3px;
@selectize-margin-item-y: 3px;
@selectize-caret-margin: 0;
@selectize-arrow-size: 5px;
@selectize-arrow-color: @selectize-color-text;
@selectize-arrow-offset: @selectize-padding-x + 5px;
.selectize-dropdown, .selectize-dropdown.form-control {
height: auto;
padding: 0;
margin: 2px 0 0 0;
z-index: @zindex-dropdown;
background: @selectize-color-dropdown;
border: 1px solid @dropdown-fallback-border;
border: 1px solid @dropdown-border;
.selectize-border-radius(@border-radius-base);
.selectize-box-shadow(0 6px 12px rgba(0,0,0,.175));
}
.selectize-dropdown {
.optgroup-header {
font-size: @font-size-small;
line-height: @line-height-base;
}
.optgroup:first-child:before {
display: none;
}
.optgroup:before {
content: ' ';
display: block;
.nav-divider();
margin-left: @selectize-padding-dropdown-item-x * -1;
margin-right: @selectize-padding-dropdown-item-x * -1;
}
}
.selectize-dropdown-content {
padding: 5px 0;
}
.selectize-dropdown-header {
padding: @selectize-padding-dropdown-item-y * 2 @selectize-padding-dropdown-item-x;
}
.selectize-input {
min-height: @input-height-base;
&.dropdown-active {
.selectize-border-radius(@selectize-border-radius);
}
&.dropdown-active::before {
display: none;
}
&.focus {
@color: @input-border-focus;
@color-rgba: rgba(red(@color), green(@color), blue(@color), .2);
border-color: @color;
outline: 0;
.selectize-box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px @{color-rgba}");
}
}
.has-error .selectize-input {
border-color: @selectize-color-input-error;
.selectize-box-shadow(@selectize-shadow-input-error);
&:focus {
border-color: @selectize-color-input-error-focus;
.selectize-box-shadow(@selectize-shadow-input-error-focus);
}
}
.selectize-control {
&.multi {
.selectize-input.has-items {
padding-left: @selectize-padding-x - @selectize-padding-item-x;
padding-right: @selectize-padding-x - @selectize-padding-item-x;
}
.selectize-input > div {
.selectize-border-radius(@selectize-border-radius - 1px);
}
}
}
.form-control.selectize-control {
padding: 0;
height: auto;
border: none;
background: none;
.selectize-box-shadow(none);
.selectize-border-radius(0);
}

+ 298
- 0
stuff/selectize/selectize.less View File

@ -0,0 +1,298 @@
// base styles
@selectize-font-family: inherit;
@selectize-font-smoothing: inherit;
@selectize-font-size: 13px;
@selectize-line-height: 18px;
@selectize-color-text: #303030;
@selectize-color-border: #d0d0d0;
@selectize-color-highlight: rgba(125,168,208,0.2);
@selectize-color-input: #fff;
@selectize-color-input-full: @selectize-color-input;
@selectize-color-disabled: #fafafa;
@selectize-color-item: #f2f2f2;
@selectize-color-item-text: @selectize-color-text;
@selectize-color-item-border: #d0d0d0;
@selectize-color-item-active: #e8e8e8;
@selectize-color-item-active-text: @selectize-color-text;
@selectize-color-item-active-border: #cacaca;
@selectize-color-dropdown: #fff;
@selectize-color-dropdown-border: @selectize-color-border;
@selectize-color-dropdown-border-top: #f0f0f0;
@selectize-color-dropdown-item-active: #f5fafd;
@selectize-color-dropdown-item-active-text: #495c68;
@selectize-color-dropdown-item-create-text: rgba(red(@selectize-color-text), green(@selectize-color-text), blue(@selectize-color-text), 0.5);
@selectize-color-dropdown-item-create-active-text: @selectize-color-dropdown-item-active-text;
@selectize-color-optgroup: @selectize-color-dropdown;
@selectize-color-optgroup-text: @selectize-color-text;
@selectize-lighten-disabled-item: 30%;
@selectize-lighten-disabled-item-text: 30%;
@selectize-lighten-disabled-item-border: 30%;
@selectize-opacity-disabled: 0.5;
@selectize-shadow-input: inset 0 1px 1px rgba(0,0,0,0.1);
@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);
@selectize-border: 1px solid @selectize-color-border;
@selectize-dropdown-border: 1px solid @selectize-color-dropdown-border;
@selectize-border-radius: 3px;
@selectize-width-item-border: 0;
@selectize-max-height-dropdown: 200px;
@selectize-padding-x: 8px;
@selectize-padding-y: 8px;
@selectize-padding-item-x: 6px;
@selectize-padding-item-y: 2px;
@selectize-padding-dropdown-item-x: @selectize-padding-x;
@selectize-padding-dropdown-item-y: 5px;
@selectize-margin-item-x: 3px;
@selectize-margin-item-y: 3px;
@selectize-arrow-size: 5px;
@selectize-arrow-color: #808080;
@selectize-arrow-offset: 15px;
@selectize-caret-margin: 0 2px 0 0;
@selectize-caret-margin-rtl: 0 4px 0 -2px;
.selectize-border-radius (@radii) {
-webkit-border-radius: @radii;
-moz-border-radius: @radii;
border-radius: @radii;
}
.selectize-unselectable () {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.selectize-box-shadow (@shadow) {
-webkit-box-shadow: @shadow;
box-shadow: @shadow;
}
.selectize-box-sizing (@type: border-box) {
-webkit-box-sizing: @type;
-moz-box-sizing: @type;
box-sizing: @type;
}
.selectize-vertical-gradient (@color-top, @color-bottom) {
background-color: mix(@color-top, @color-bottom, 60%);
background-image: -moz-linear-gradient(top, @color-top, @color-bottom); // FF 3.6+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@color-top), to(@color-bottom)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(top, @color-top, @color-bottom); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(top, @color-top, @color-bottom); // Opera 11.10
background-image: linear-gradient(to bottom, @color-top, @color-bottom); // Standard, IE10
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@color-top),argb(@color-bottom))); // IE9 and down
}
.selectize-control {
position: relative;
}
.selectize-dropdown, .selectize-input, .selectize-input input {
color: @selectize-color-text;
font-family: @selectize-font-family;
font-size: @selectize-font-size;
line-height: @selectize-line-height;
-webkit-font-smoothing: @selectize-font-smoothing;
}
.selectize-input, .selectize-control.single .selectize-input.input-active {
background: @selectize-color-input;
cursor: text;
display: inline-block;
}
.selectize-input {
border: @selectize-border;
padding: @selectize-padding-y @selectize-padding-x;
display: inline-block;
width: 100%;
overflow: hidden;
position: relative;
z-index: 1;
.selectize-box-sizing(border-box);
.selectize-box-shadow(@selectize-shadow-input);
.selectize-border-radius(@selectize-border-radius);
.selectize-control.multi &.has-items {
@padding-x: @selectize-padding-x;
@padding-top: @selectize-padding-y - @selectize-padding-item-y - @selectize-width-item-border;
@padding-bottom: @selectize-padding-y - @selectize-padding-item-y - @selectize-margin-item-y - @selectize-width-item-border;
padding: @padding-top @padding-x @padding-bottom;
}
&.full {
background-color: @selectize-color-input-full;
}
&.disabled, &.disabled * {
cursor: default !important;
}
&.focus {
.selectize-box-shadow(@selectize-shadow-input-focus);
}
&.dropdown-active {
.selectize-border-radius(@selectize-border-radius @selectize-border-radius 0 0);
}
> * {
vertical-align: baseline;
display: -moz-inline-stack;
display: inline-block;
zoom: 1;
*display: inline;
}
.selectize-control.multi & > div {
cursor: pointer;
margin: 0 @selectize-margin-item-x @selectize-margin-item-y 0;
padding: @selectize-padding-item-y @selectize-padding-item-x;
background: @selectize-color-item;
color: @selectize-color-item-text;
border: @selectize-width-item-border solid @selectize-color-item-border;
&.active {
background: @selectize-color-item-active;
color: @selectize-color-item-active-text;
border: @selectize-width-item-border solid @selectize-color-item-active-border;
}
}
.selectize-control.multi &.disabled > div {
&, &.active {
color: lighten(desaturate(@selectize-color-item-text, 100%), @selectize-lighten-disabled-item-text);
background: lighten(desaturate(@selectize-color-item, 100%), @selectize-lighten-disabled-item);
border: @selectize-width-item-border solid lighten(desaturate(@selectize-color-item-border, 100%), @selectize-lighten-disabled-item-border);
}
}
> input {
&::-ms-clear {
display: none;
}
display: inline-block !important;
padding: 0 !important;
min-height: 0 !important;
max-height: none !important;
max-width: 100% !important;
margin: @selectize-caret-margin !important;
text-indent: 0 !important;
border: 0 none !important;
background: none !important;
line-height: inherit !important;
-webkit-user-select: auto !important;
.selectize-box-shadow(none) !important;
&:focus { outline: none !important; }
}
}
.selectize-input::after {
content: ' ';
display: block;
clear: left;
}
.selectize-input.dropdown-active::before {
content: ' ';
display: block;
position: absolute;
background: @selectize-color-dropdown-border-top;
height: 1px;
bottom: 0;
left: 0;
right: 0;
}
.selectize-dropdown {
position: absolute;
z-index: 10;
border: @selectize-dropdown-border;
background: @selectize-color-dropdown;
margin: -1px 0 0 0;
border-top: 0 none;
.selectize-box-sizing(border-box);
.selectize-box-shadow(0 1px 3px rgba(0,0,0,0.1));
.selectize-border-radius(0 0 @selectize-border-radius @selectize-border-radius);
[data-selectable] {
cursor: pointer;
overflow: hidden;
.highlight {
background: @selectize-color-highlight;
.selectize-border-radius(1px);
}
}
.option, .optgroup-header {
padding: @selectize-padding-dropdown-item-y @selectize-padding-dropdown-item-x;
}
.option, [data-disabled], [data-disabled] [data-selectable].option {
cursor: inherit;
opacity: 0.5;
}
[data-selectable].option {
opacity: 1;
}
.optgroup:first-child .optgroup-header {
border-top: 0 none;
}
.optgroup-header {
color: @selectize-color-optgroup-text;
background: @selectize-color-optgroup;
cursor: default;
}
.active {
background-color: @selectize-color-dropdown-item-active;
color: @selectize-color-dropdown-item-active-text;
&.create {
color: @selectize-color-dropdown-item-create-active-text;
}
}
.create {
color: @selectize-color-dropdown-item-create-text;
}
}
.selectize-dropdown-content {
overflow-y: auto;
overflow-x: hidden;
max-height: @selectize-max-height-dropdown;
-webkit-overflow-scrolling: touch;
}
.selectize-control.single .selectize-input {
&, input { cursor: pointer; }
&.input-active, &.input-active input { cursor: text; }
&:after {
content: ' ';
display: block;
position: absolute;
top: 50%;
right: @selectize-arrow-offset;
margin-top: round((-1 * @selectize-arrow-size / 2));
width: 0;
height: 0;
border-style: solid;
border-width: @selectize-arrow-size @selectize-arrow-size 0 @selectize-arrow-size;
border-color: @selectize-arrow-color transparent transparent transparent;
}
&.dropdown-active:after {
margin-top: @selectize-arrow-size * -0.8;
border-width: 0 @selectize-arrow-size @selectize-arrow-size @selectize-arrow-size;
border-color: transparent transparent @selectize-arrow-color transparent;
}
}
.selectize-control.rtl {
&.single .selectize-input:after {
left: @selectize-arrow-offset;
right: auto;
}
.selectize-input > input {
margin: @selectize-caret-margin-rtl !important;
}
}
.selectize-control .selectize-input.disabled {
opacity: @selectize-opacity-disabled;
background-color: @selectize-color-disabled;
}

+ 2
- 1
templates/base.html View File

@ -17,13 +17,14 @@
{% block head %}{% endblock %}
{% compress css %}
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/bootstrap-select.min.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/selectize.hc.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/add_project_modal.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/add_pushover.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/add_webhook.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/base.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/billing.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/bootstrap-select.min.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/channel_checks.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/channels.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'css/checkbox.css' %}" type="text/css">


+ 1
- 1
templates/front/details.html View File

@ -43,7 +43,6 @@
{{ check.name_then_code }}
<small><a id="edit-name" href="#">(edit&hellip;)</a></small>
</h1>
<span class="label label-tag">{{ check.project }}</span>
{% for tag in check.tags_list %}
<span class="label label-tag">{{ tag }}</span>
{% endfor %}
@ -294,6 +293,7 @@
{% compress js %}
<script src="{% static 'js/jquery-2.1.4.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
<script src="{% static 'js/selectize.min.js' %}"></script>
<script src="{% static 'js/clipboard.min.js' %}"></script>
<script src="{% static 'js/bootstrap-select.min.js' %}"></script>
<script src="{% static 'js/nouislider.min.js' %}"></script>


+ 1
- 0
templates/front/my_checks.html View File

@ -85,6 +85,7 @@
<script src="{% static 'js/jquery-2.1.4.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
<script src="{% static 'js/bootstrap-select.min.js' %}"></script>
<script src="{% static 'js/selectize.min.js' %}"></script>
<script src="{% static 'js/nouislider.min.js' %}"></script>
<script src="{% static 'js/clipboard.min.js' %}"></script>
<script src="{% static 'js/update-timeout-modal.js' %}"></script>


+ 7
- 5
templates/front/update_name_modal.html View File

@ -43,9 +43,8 @@
name="tags"
type="text"
maxlength="500"
value="{{ check.tags }}"
placeholder="production www"
class="form-control" />
data-all-tags="{{ all_tags }}"
value="{{ check.tags }}" />
<span class="help-block">
Use tags for easy filtering and for status badges.
@ -63,9 +62,12 @@
id="update-desc-input"
class="form-control"
rows="5"
placeholder="Additional notes for your own reference.
Will appear in email alerts about this check going DOWN and in Slack notifications."
name="desc">{{ check.desc }}</textarea>
<span class="help-block">
Additional notes for your own reference. Will appear
in email alerts about this check going down and in
Slack notifications.
</span>
</div>
</div>
</div>


Loading…
Cancel
Save