blazer 2.6.5 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +13 -28
  5. data/app/assets/javascripts/blazer/ace/ace.js +7235 -8906
  6. data/app/assets/javascripts/blazer/ace/ext-language_tools.js +762 -774
  7. data/app/assets/javascripts/blazer/ace/mode-sql.js +177 -72
  8. data/app/assets/javascripts/blazer/ace/snippets/sql.js +5 -29
  9. data/app/assets/javascripts/blazer/ace/snippets/text.js +1 -6
  10. data/app/assets/javascripts/blazer/ace/theme-twilight.js +8 -106
  11. data/app/assets/javascripts/blazer/application.js +9 -6
  12. data/app/assets/javascripts/blazer/chart.umd.js +13 -0
  13. data/app/assets/javascripts/blazer/chartjs-adapter-date-fns.bundle.js +6322 -0
  14. data/app/assets/javascripts/blazer/chartkick.js +1020 -914
  15. data/app/assets/javascripts/blazer/highlight.min.js +466 -3
  16. data/app/assets/javascripts/blazer/mapkick.bundle.js +1029 -0
  17. data/app/assets/javascripts/blazer/moment-timezone-with-data.js +39 -38
  18. data/app/assets/javascripts/blazer/moment.js +105 -88
  19. data/app/assets/javascripts/blazer/queries.js +10 -1
  20. data/app/assets/javascripts/blazer/rails-ujs.js +746 -0
  21. data/app/assets/javascripts/blazer/vue.global.prod.js +1 -0
  22. data/app/assets/stylesheets/blazer/bootstrap.css +1 -1
  23. data/app/assets/stylesheets/blazer/selectize.css +1 -1
  24. data/app/controllers/blazer/base_controller.rb +85 -84
  25. data/app/controllers/blazer/checks_controller.rb +6 -6
  26. data/app/controllers/blazer/dashboards_controller.rb +24 -24
  27. data/app/controllers/blazer/queries_controller.rb +208 -186
  28. data/app/controllers/blazer/uploads_controller.rb +49 -49
  29. data/app/helpers/blazer/base_helper.rb +0 -4
  30. data/app/models/blazer/query.rb +1 -12
  31. data/app/views/blazer/checks/index.html.erb +1 -1
  32. data/app/views/blazer/dashboards/_form.html.erb +11 -5
  33. data/app/views/blazer/queries/_form.html.erb +19 -14
  34. data/app/views/blazer/queries/docs.html.erb +11 -1
  35. data/app/views/blazer/queries/home.html.erb +9 -6
  36. data/app/views/blazer/queries/run.html.erb +17 -32
  37. data/app/views/blazer/queries/show.html.erb +12 -20
  38. data/app/views/layouts/blazer/application.html.erb +1 -5
  39. data/lib/blazer/adapters/sql_adapter.rb +1 -1
  40. data/lib/blazer/adapters.rb +17 -0
  41. data/lib/blazer/anomaly_detectors.rb +22 -0
  42. data/lib/blazer/data_source.rb +29 -40
  43. data/lib/blazer/engine.rb +11 -9
  44. data/lib/blazer/forecasters.rb +7 -0
  45. data/lib/blazer/result.rb +13 -71
  46. data/lib/blazer/result_cache.rb +71 -0
  47. data/lib/blazer/run_statement.rb +3 -2
  48. data/lib/blazer/run_statement_job.rb +2 -2
  49. data/lib/blazer/statement.rb +3 -1
  50. data/lib/blazer/version.rb +1 -1
  51. data/lib/blazer.rb +51 -53
  52. data/licenses/LICENSE-chart.js.txt +1 -1
  53. data/licenses/LICENSE-chartjs-adapter-date-fns.txt +9 -0
  54. data/licenses/LICENSE-chartkick.js.txt +1 -1
  55. data/licenses/LICENSE-date-fns.txt +21 -0
  56. data/licenses/LICENSE-kurkle-color.txt +9 -0
  57. data/licenses/LICENSE-mapkick-bundle.txt +1029 -0
  58. data/licenses/{LICENSE-jquery-ujs.txt → LICENSE-rails-ujs.txt} +1 -1
  59. data/licenses/LICENSE-vue.txt +1 -1
  60. metadata +26 -18
  61. data/app/assets/javascripts/blazer/Chart.js +0 -16172
  62. data/app/assets/javascripts/blazer/jquery-ujs.js +0 -555
  63. data/app/assets/javascripts/blazer/vue.js +0 -12014
  64. data/lib/blazer/adapters/mongodb_adapter.rb +0 -43
  65. data/lib/blazer/detect_anomalies.R +0 -19
@@ -1,103 +1,208 @@
1
- define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
- "use strict";
3
-
1
+ define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
4
2
  var oop = require("../lib/oop");
5
3
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
6
-
7
- var SqlHighlightRules = function() {
8
-
9
- var keywords = (
10
- "select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|" +
4
+ var SqlHighlightRules = function () {
5
+ var keywords = ("select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|" +
11
6
  "when|then|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|" +
12
- "foreign|not|references|default|null|inner|cross|natural|database|drop|grant"
13
- );
14
-
15
- var builtinConstants = (
16
- "true|false"
17
- );
18
-
19
- var builtinFunctions = (
20
- "avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|" +
21
- "coalesce|ifnull|isnull|nvl"
22
- );
23
-
24
- var dataTypes = (
25
- "int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|" +
26
- "money|real|number|integer"
27
- );
28
-
7
+ "foreign|not|references|default|null|inner|cross|natural|database|drop|grant|distinct");
8
+ var builtinConstants = ("true|false");
9
+ var builtinFunctions = ("avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|" +
10
+ "coalesce|ifnull|isnull|nvl");
11
+ var dataTypes = ("int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|" +
12
+ "money|real|number|integer");
29
13
  var keywordMapper = this.createKeywordMapper({
30
14
  "support.function": builtinFunctions,
31
15
  "keyword": keywords,
32
16
  "constant.language": builtinConstants,
33
17
  "storage.type": dataTypes
34
18
  }, "identifier", true);
35
-
36
19
  this.$rules = {
37
- "start" : [ {
38
- token : "comment",
39
- regex : "--.*$"
40
- }, {
41
- token : "comment",
42
- start : "/\\*",
43
- end : "\\*/"
44
- }, {
45
- token : "string", // " string
46
- regex : '".*?"'
47
- }, {
48
- token : "string", // ' string
49
- regex : "'.*?'"
50
- }, {
51
- token : "string", // ` string (apache drill)
52
- regex : "`.*?`"
53
- }, {
54
- token : "constant.numeric", // float
55
- regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
56
- }, {
57
- token : keywordMapper,
58
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
59
- }, {
60
- token : "keyword.operator",
61
- regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="
62
- }, {
63
- token : "paren.lparen",
64
- regex : "[\\(]"
65
- }, {
66
- token : "paren.rparen",
67
- regex : "[\\)]"
68
- }, {
69
- token : "text",
70
- regex : "\\s+"
71
- } ]
20
+ "start": [{
21
+ token: "comment",
22
+ regex: "--.*$"
23
+ }, {
24
+ token: "comment",
25
+ start: "/\\*",
26
+ end: "\\*/"
27
+ }, {
28
+ token: "string",
29
+ regex: '".*?"'
30
+ }, {
31
+ token: "string",
32
+ regex: "'.*?'"
33
+ }, {
34
+ token: "string",
35
+ regex: "`.*?`"
36
+ }, {
37
+ token: "constant.numeric",
38
+ regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
39
+ }, {
40
+ token: keywordMapper,
41
+ regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
42
+ }, {
43
+ token: "keyword.operator",
44
+ regex: "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="
45
+ }, {
46
+ token: "paren.lparen",
47
+ regex: "[\\(]"
48
+ }, {
49
+ token: "paren.rparen",
50
+ regex: "[\\)]"
51
+ }, {
52
+ token: "text",
53
+ regex: "\\s+"
54
+ }]
72
55
  };
73
56
  this.normalizeRules();
74
57
  };
75
-
76
58
  oop.inherits(SqlHighlightRules, TextHighlightRules);
77
-
78
59
  exports.SqlHighlightRules = SqlHighlightRules;
60
+
61
+ });
62
+
63
+ define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
64
+ var oop = require("../../lib/oop");
65
+ var Range = require("../../range").Range;
66
+ var BaseFoldMode = require("./fold_mode").FoldMode;
67
+ var FoldMode = exports.FoldMode = function (commentRegex) {
68
+ if (commentRegex) {
69
+ this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
70
+ this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
71
+ }
72
+ };
73
+ oop.inherits(FoldMode, BaseFoldMode);
74
+ (function () {
75
+ this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
76
+ this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
77
+ this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
78
+ this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
79
+ this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
80
+ this._getFoldWidgetBase = this.getFoldWidget;
81
+ this.getFoldWidget = function (session, foldStyle, row) {
82
+ var line = session.getLine(row);
83
+ if (this.singleLineBlockCommentRe.test(line)) {
84
+ if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
85
+ return "";
86
+ }
87
+ var fw = this._getFoldWidgetBase(session, foldStyle, row);
88
+ if (!fw && this.startRegionRe.test(line))
89
+ return "start"; // lineCommentRegionStart
90
+ return fw;
91
+ };
92
+ this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
93
+ var line = session.getLine(row);
94
+ if (this.startRegionRe.test(line))
95
+ return this.getCommentRegionBlock(session, line, row);
96
+ var match = line.match(this.foldingStartMarker);
97
+ if (match) {
98
+ var i = match.index;
99
+ if (match[1])
100
+ return this.openingBracketBlock(session, match[1], row, i);
101
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
102
+ if (range && !range.isMultiLine()) {
103
+ if (forceMultiline) {
104
+ range = this.getSectionRange(session, row);
105
+ }
106
+ else if (foldStyle != "all")
107
+ range = null;
108
+ }
109
+ return range;
110
+ }
111
+ if (foldStyle === "markbegin")
112
+ return;
113
+ var match = line.match(this.foldingStopMarker);
114
+ if (match) {
115
+ var i = match.index + match[0].length;
116
+ if (match[1])
117
+ return this.closingBracketBlock(session, match[1], row, i);
118
+ return session.getCommentFoldRange(row, i, -1);
119
+ }
120
+ };
121
+ this.getSectionRange = function (session, row) {
122
+ var line = session.getLine(row);
123
+ var startIndent = line.search(/\S/);
124
+ var startRow = row;
125
+ var startColumn = line.length;
126
+ row = row + 1;
127
+ var endRow = row;
128
+ var maxRow = session.getLength();
129
+ while (++row < maxRow) {
130
+ line = session.getLine(row);
131
+ var indent = line.search(/\S/);
132
+ if (indent === -1)
133
+ continue;
134
+ if (startIndent > indent)
135
+ break;
136
+ var subRange = this.getFoldWidgetRange(session, "all", row);
137
+ if (subRange) {
138
+ if (subRange.start.row <= startRow) {
139
+ break;
140
+ }
141
+ else if (subRange.isMultiLine()) {
142
+ row = subRange.end.row;
143
+ }
144
+ else if (startIndent == indent) {
145
+ break;
146
+ }
147
+ }
148
+ endRow = row;
149
+ }
150
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
151
+ };
152
+ this.getCommentRegionBlock = function (session, line, row) {
153
+ var startColumn = line.search(/\s*$/);
154
+ var maxRow = session.getLength();
155
+ var startRow = row;
156
+ var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
157
+ var depth = 1;
158
+ while (++row < maxRow) {
159
+ line = session.getLine(row);
160
+ var m = re.exec(line);
161
+ if (!m)
162
+ continue;
163
+ if (m[1])
164
+ depth--;
165
+ else
166
+ depth++;
167
+ if (!depth)
168
+ break;
169
+ }
170
+ var endRow = row;
171
+ if (endRow > startRow) {
172
+ return new Range(startRow, startColumn, endRow, line.length);
173
+ }
174
+ };
175
+ }).call(FoldMode.prototype);
176
+
79
177
  });
80
178
 
81
- define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules"], function(require, exports, module) {
82
- "use strict";
179
+ define("ace/mode/folding/sql",["require","exports","module","ace/lib/oop","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
180
+ var oop = require("../../lib/oop");
181
+ var BaseFoldMode = require("./cstyle").FoldMode;
182
+ var FoldMode = exports.FoldMode = function () { };
183
+ oop.inherits(FoldMode, BaseFoldMode);
184
+ (function () {
185
+ }).call(FoldMode.prototype);
83
186
 
187
+ });
188
+
189
+ define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules","ace/mode/folding/sql"], function(require, exports, module){"use strict";
84
190
  var oop = require("../lib/oop");
85
191
  var TextMode = require("./text").Mode;
86
192
  var SqlHighlightRules = require("./sql_highlight_rules").SqlHighlightRules;
87
-
88
- var Mode = function() {
193
+ var SqlFoldMode = require("./folding/sql").FoldMode;
194
+ var Mode = function () {
89
195
  this.HighlightRules = SqlHighlightRules;
196
+ this.foldingRules = new SqlFoldMode();
90
197
  this.$behaviour = this.$defaultBehaviour;
91
198
  };
92
199
  oop.inherits(Mode, TextMode);
93
-
94
- (function() {
95
-
200
+ (function () {
96
201
  this.lineCommentStart = "--";
97
-
202
+ this.blockComment = { start: "/*", end: "*/" };
98
203
  this.$id = "ace/mode/sql";
204
+ this.snippetFileId = "ace/snippets/sql";
99
205
  }).call(Mode.prototype);
100
-
101
206
  exports.Mode = Mode;
102
207
 
103
208
  }); (function() {
@@ -1,33 +1,9 @@
1
- define("ace/snippets/sql",["require","exports","module"], function(require, exports, module) {
2
- "use strict";
1
+ define("ace/snippets/sql.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet tbl\n\tcreate table ${1:table} (\n\t\t${2:columns}\n\t);\nsnippet col\n\t${1:name}\t${2:type}\t${3:default ''}\t${4:not null}\nsnippet ccol\n\t${1:name}\tvarchar2(${2:size})\t${3:default ''}\t${4:not null}\nsnippet ncol\n\t${1:name}\tnumber\t${3:default 0}\t${4:not null}\nsnippet dcol\n\t${1:name}\tdate\t${3:default sysdate}\t${4:not null}\nsnippet ind\n\tcreate index ${3:$1_$2} on ${1:table}(${2:column});\nsnippet uind\n\tcreate unique index ${1:name} on ${2:table}(${3:column});\nsnippet tblcom\n\tcomment on table ${1:table} is '${2:comment}';\nsnippet colcom\n\tcomment on column ${1:table}.${2:column} is '${3:comment}';\nsnippet addcol\n\talter table ${1:table} add (${2:column} ${3:type});\nsnippet seq\n\tcreate sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\nsnippet s*\n\tselect * from ${1:table}\n";
3
2
 
4
- exports.snippetText = "snippet tbl\n\
5
- create table ${1:table} (\n\
6
- ${2:columns}\n\
7
- );\n\
8
- snippet col\n\
9
- ${1:name} ${2:type} ${3:default ''} ${4:not null}\n\
10
- snippet ccol\n\
11
- ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\n\
12
- snippet ncol\n\
13
- ${1:name} number ${3:default 0} ${4:not null}\n\
14
- snippet dcol\n\
15
- ${1:name} date ${3:default sysdate} ${4:not null}\n\
16
- snippet ind\n\
17
- create index ${3:$1_$2} on ${1:table}(${2:column});\n\
18
- snippet uind\n\
19
- create unique index ${1:name} on ${2:table}(${3:column});\n\
20
- snippet tblcom\n\
21
- comment on table ${1:table} is '${2:comment}';\n\
22
- snippet colcom\n\
23
- comment on column ${1:table}.${2:column} is '${3:comment}';\n\
24
- snippet addcol\n\
25
- alter table ${1:table} add (${2:column} ${3:type});\n\
26
- snippet seq\n\
27
- create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\n\
28
- snippet s*\n\
29
- select * from ${1:table}\n\
30
- ";
3
+ });
4
+
5
+ define("ace/snippets/sql",["require","exports","module","ace/snippets/sql.snippets"], function(require, exports, module){"use strict";
6
+ exports.snippetText = require("./sql.snippets");
31
7
  exports.scope = "sql";
32
8
 
33
9
  }); (function() {
@@ -1,10 +1,5 @@
1
- define("ace/snippets/text",["require","exports","module"], function(require, exports, module) {
2
- "use strict";
3
1
 
4
- exports.snippetText =undefined;
5
- exports.scope = "text";
6
-
7
- }); (function() {
2
+ ; (function() {
8
3
  window.require(["ace/snippets/text"], function(m) {
9
4
  if (typeof module == "object" && typeof exports == "object" && module) {
10
5
  module.exports = m;
@@ -1,111 +1,13 @@
1
- define("ace/theme/twilight",["require","exports","module","ace/lib/dom"], function(require, exports, module) {
1
+ define("ace/theme/twilight.css",["require","exports","module"], function(require, exports, module){module.exports = ".ace-twilight .ace_gutter {\n background: #232323;\n color: #E2E2E2\n}\n\n.ace-twilight .ace_print-margin {\n width: 1px;\n background: #232323\n}\n\n.ace-twilight {\n background-color: #141414;\n color: #F8F8F8\n}\n\n.ace-twilight .ace_cursor {\n color: #A7A7A7\n}\n\n.ace-twilight .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20)\n}\n\n.ace-twilight.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px #141414;\n}\n\n.ace-twilight .ace_marker-layer .ace_step {\n background: rgb(102, 82, 0)\n}\n\n.ace-twilight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25)\n}\n\n.ace-twilight .ace_marker-layer .ace_active-line {\n background: rgba(255, 255, 255, 0.031)\n}\n\n.ace-twilight .ace_gutter-active-line {\n background-color: rgba(255, 255, 255, 0.031)\n}\n\n.ace-twilight .ace_marker-layer .ace_selected-word {\n border: 1px solid rgba(221, 240, 255, 0.20)\n}\n\n.ace-twilight .ace_invisible {\n color: rgba(255, 255, 255, 0.25)\n}\n\n.ace-twilight .ace_keyword,\n.ace-twilight .ace_meta {\n color: #CDA869\n}\n\n.ace-twilight .ace_constant,\n.ace-twilight .ace_constant.ace_character,\n.ace-twilight .ace_constant.ace_character.ace_escape,\n.ace-twilight .ace_constant.ace_other,\n.ace-twilight .ace_heading,\n.ace-twilight .ace_markup.ace_heading,\n.ace-twilight .ace_support.ace_constant {\n color: #CF6A4C\n}\n\n.ace-twilight .ace_invalid.ace_illegal {\n color: #F8F8F8;\n background-color: rgba(86, 45, 86, 0.75)\n}\n\n.ace-twilight .ace_invalid.ace_deprecated {\n text-decoration: underline;\n font-style: italic;\n color: #D2A8A1\n}\n\n.ace-twilight .ace_support {\n color: #9B859D\n}\n\n.ace-twilight .ace_fold {\n background-color: #AC885B;\n border-color: #F8F8F8\n}\n\n.ace-twilight .ace_support.ace_function {\n color: #DAD085\n}\n\n.ace-twilight .ace_list,\n.ace-twilight .ace_markup.ace_list,\n.ace-twilight .ace_storage {\n color: #F9EE98\n}\n\n.ace-twilight .ace_entity.ace_name.ace_function,\n.ace-twilight .ace_meta.ace_tag {\n color: #AC885B\n}\n\n.ace-twilight .ace_string {\n color: #8F9D6A\n}\n\n.ace-twilight .ace_string.ace_regexp {\n color: #E9C062\n}\n\n.ace-twilight .ace_comment {\n font-style: italic;\n color: #5F5A60\n}\n\n.ace-twilight .ace_variable {\n color: #7587A6\n}\n\n.ace-twilight .ace_xml-pe {\n color: #494949\n}\n\n.ace-twilight .ace_indent-guide {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y\n}\n\n.ace-twilight .ace_indent-guide-active {\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\") right repeat-y;\n}\n";
2
2
 
3
- exports.isDark = true;
4
- exports.cssClass = "ace-twilight";
5
- exports.cssText = ".ace-twilight .ace_gutter {\
6
- background: #232323;\
7
- color: #E2E2E2\
8
- }\
9
- .ace-twilight .ace_print-margin {\
10
- width: 1px;\
11
- background: #232323\
12
- }\
13
- .ace-twilight {\
14
- background-color: #141414;\
15
- color: #F8F8F8\
16
- }\
17
- .ace-twilight .ace_cursor {\
18
- color: #A7A7A7\
19
- }\
20
- .ace-twilight .ace_marker-layer .ace_selection {\
21
- background: rgba(221, 240, 255, 0.20)\
22
- }\
23
- .ace-twilight.ace_multiselect .ace_selection.ace_start {\
24
- box-shadow: 0 0 3px 0px #141414;\
25
- }\
26
- .ace-twilight .ace_marker-layer .ace_step {\
27
- background: rgb(102, 82, 0)\
28
- }\
29
- .ace-twilight .ace_marker-layer .ace_bracket {\
30
- margin: -1px 0 0 -1px;\
31
- border: 1px solid rgba(255, 255, 255, 0.25)\
32
- }\
33
- .ace-twilight .ace_marker-layer .ace_active-line {\
34
- background: rgba(255, 255, 255, 0.031)\
35
- }\
36
- .ace-twilight .ace_gutter-active-line {\
37
- background-color: rgba(255, 255, 255, 0.031)\
38
- }\
39
- .ace-twilight .ace_marker-layer .ace_selected-word {\
40
- border: 1px solid rgba(221, 240, 255, 0.20)\
41
- }\
42
- .ace-twilight .ace_invisible {\
43
- color: rgba(255, 255, 255, 0.25)\
44
- }\
45
- .ace-twilight .ace_keyword,\
46
- .ace-twilight .ace_meta {\
47
- color: #CDA869\
48
- }\
49
- .ace-twilight .ace_constant,\
50
- .ace-twilight .ace_constant.ace_character,\
51
- .ace-twilight .ace_constant.ace_character.ace_escape,\
52
- .ace-twilight .ace_constant.ace_other,\
53
- .ace-twilight .ace_heading,\
54
- .ace-twilight .ace_markup.ace_heading,\
55
- .ace-twilight .ace_support.ace_constant {\
56
- color: #CF6A4C\
57
- }\
58
- .ace-twilight .ace_invalid.ace_illegal {\
59
- color: #F8F8F8;\
60
- background-color: rgba(86, 45, 86, 0.75)\
61
- }\
62
- .ace-twilight .ace_invalid.ace_deprecated {\
63
- text-decoration: underline;\
64
- font-style: italic;\
65
- color: #D2A8A1\
66
- }\
67
- .ace-twilight .ace_support {\
68
- color: #9B859D\
69
- }\
70
- .ace-twilight .ace_fold {\
71
- background-color: #AC885B;\
72
- border-color: #F8F8F8\
73
- }\
74
- .ace-twilight .ace_support.ace_function {\
75
- color: #DAD085\
76
- }\
77
- .ace-twilight .ace_list,\
78
- .ace-twilight .ace_markup.ace_list,\
79
- .ace-twilight .ace_storage {\
80
- color: #F9EE98\
81
- }\
82
- .ace-twilight .ace_entity.ace_name.ace_function,\
83
- .ace-twilight .ace_meta.ace_tag,\
84
- .ace-twilight .ace_variable {\
85
- color: #AC885B\
86
- }\
87
- .ace-twilight .ace_string {\
88
- color: #8F9D6A\
89
- }\
90
- .ace-twilight .ace_string.ace_regexp {\
91
- color: #E9C062\
92
- }\
93
- .ace-twilight .ace_comment {\
94
- font-style: italic;\
95
- color: #5F5A60\
96
- }\
97
- .ace-twilight .ace_variable {\
98
- color: #7587A6\
99
- }\
100
- .ace-twilight .ace_xml-pe {\
101
- color: #494949\
102
- }\
103
- .ace-twilight .ace_indent-guide {\
104
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y\
105
- }";
3
+ });
106
4
 
5
+ define("ace/theme/twilight",["require","exports","module","ace/theme/twilight.css","ace/lib/dom"], function(require, exports, module){exports.isDark = true;
6
+ exports.cssClass = "ace-twilight";
7
+ exports.cssText = require("./twilight.css");
107
8
  var dom = require("../lib/dom");
108
- dom.importCssString(exports.cssText, exports.cssClass);
9
+ dom.importCssString(exports.cssText, exports.cssClass, false);
10
+
109
11
  }); (function() {
110
12
  window.require(["ace/theme/twilight"], function(m) {
111
13
  if (typeof module == "object" && typeof exports == "object" && module) {
@@ -113,4 +15,4 @@ dom.importCssString(exports.cssText, exports.cssClass);
113
15
  }
114
16
  });
115
17
  })();
116
-
18
+
@@ -1,5 +1,5 @@
1
1
  //= require ./jquery
2
- //= require ./jquery-ujs
2
+ //= require ./rails-ujs
3
3
  //= require ./stupidtable
4
4
  //= require ./stupidtable-custom-settings
5
5
  //= require ./jquery.stickytableheaders
@@ -8,19 +8,18 @@
8
8
  //= require ./moment
9
9
  //= require ./moment-timezone-with-data
10
10
  //= require ./daterangepicker
11
- //= require ./Chart.js
11
+ //= require ./chart.umd
12
+ //= require ./chartjs-adapter-date-fns.bundle
12
13
  //= require ./chartkick
14
+ //= require ./mapkick.bundle
13
15
  //= require ./ace
14
16
  //= require ./Sortable
15
17
  //= require ./bootstrap
16
- //= require ./vue
18
+ //= require ./vue.global.prod
17
19
  //= require ./routes
18
20
  //= require ./queries
19
21
  //= require ./fuzzysearch
20
22
 
21
- Vue.config.devtools = false
22
- Vue.config.productionTip = false
23
-
24
23
  $(document).on('mouseenter', '.dropdown-toggle', function () {
25
24
  $(this).parent().addClass('open')
26
25
  })
@@ -33,6 +32,10 @@ $(document).on("click", "#code", function () {
33
32
  $(this).addClass("expanded")
34
33
  })
35
34
 
35
+ $(document).on("click", "a[disabled]", function (e) {
36
+ e.preventDefault()
37
+ })
38
+
36
39
  function submitIfCompleted($form) {
37
40
  var completed = true
38
41
  $form.find("input[name], select").each( function () {