blazer 2.6.5 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/LICENSE.txt +1 -1
- data/README.md +13 -28
- data/app/assets/javascripts/blazer/ace/ace.js +7235 -8906
- data/app/assets/javascripts/blazer/ace/ext-language_tools.js +762 -774
- data/app/assets/javascripts/blazer/ace/mode-sql.js +177 -72
- data/app/assets/javascripts/blazer/ace/snippets/sql.js +5 -29
- data/app/assets/javascripts/blazer/ace/snippets/text.js +1 -6
- data/app/assets/javascripts/blazer/ace/theme-twilight.js +8 -106
- data/app/assets/javascripts/blazer/application.js +9 -6
- data/app/assets/javascripts/blazer/chart.umd.js +13 -0
- data/app/assets/javascripts/blazer/chartjs-adapter-date-fns.bundle.js +6322 -0
- data/app/assets/javascripts/blazer/chartkick.js +1020 -914
- data/app/assets/javascripts/blazer/highlight.min.js +466 -3
- data/app/assets/javascripts/blazer/mapkick.bundle.js +1029 -0
- data/app/assets/javascripts/blazer/moment-timezone-with-data.js +39 -38
- data/app/assets/javascripts/blazer/moment.js +105 -88
- data/app/assets/javascripts/blazer/queries.js +10 -1
- data/app/assets/javascripts/blazer/rails-ujs.js +746 -0
- data/app/assets/javascripts/blazer/vue.global.prod.js +1 -0
- data/app/assets/stylesheets/blazer/bootstrap.css +1 -1
- data/app/assets/stylesheets/blazer/selectize.css +1 -1
- data/app/controllers/blazer/base_controller.rb +85 -84
- data/app/controllers/blazer/checks_controller.rb +6 -6
- data/app/controllers/blazer/dashboards_controller.rb +24 -24
- data/app/controllers/blazer/queries_controller.rb +208 -186
- data/app/controllers/blazer/uploads_controller.rb +49 -49
- data/app/helpers/blazer/base_helper.rb +0 -4
- data/app/models/blazer/query.rb +1 -12
- data/app/views/blazer/checks/index.html.erb +1 -1
- data/app/views/blazer/dashboards/_form.html.erb +11 -5
- data/app/views/blazer/queries/_form.html.erb +19 -14
- data/app/views/blazer/queries/docs.html.erb +11 -1
- data/app/views/blazer/queries/home.html.erb +9 -6
- data/app/views/blazer/queries/run.html.erb +17 -32
- data/app/views/blazer/queries/show.html.erb +12 -20
- data/app/views/layouts/blazer/application.html.erb +1 -5
- data/lib/blazer/adapters/sql_adapter.rb +1 -1
- data/lib/blazer/adapters.rb +17 -0
- data/lib/blazer/anomaly_detectors.rb +22 -0
- data/lib/blazer/data_source.rb +29 -40
- data/lib/blazer/engine.rb +11 -9
- data/lib/blazer/forecasters.rb +7 -0
- data/lib/blazer/result.rb +13 -71
- data/lib/blazer/result_cache.rb +71 -0
- data/lib/blazer/run_statement.rb +3 -2
- data/lib/blazer/run_statement_job.rb +2 -2
- data/lib/blazer/statement.rb +3 -1
- data/lib/blazer/version.rb +1 -1
- data/lib/blazer.rb +51 -53
- data/licenses/LICENSE-chart.js.txt +1 -1
- data/licenses/LICENSE-chartjs-adapter-date-fns.txt +9 -0
- data/licenses/LICENSE-chartkick.js.txt +1 -1
- data/licenses/LICENSE-date-fns.txt +21 -0
- data/licenses/LICENSE-kurkle-color.txt +9 -0
- data/licenses/LICENSE-mapkick-bundle.txt +1029 -0
- data/licenses/{LICENSE-jquery-ujs.txt → LICENSE-rails-ujs.txt} +1 -1
- data/licenses/LICENSE-vue.txt +1 -1
- metadata +26 -18
- data/app/assets/javascripts/blazer/Chart.js +0 -16172
- data/app/assets/javascripts/blazer/jquery-ujs.js +0 -555
- data/app/assets/javascripts/blazer/vue.js +0 -12014
- data/lib/blazer/adapters/mongodb_adapter.rb +0 -43
- 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
|
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
|
-
|
16
|
-
|
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
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
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/
|
82
|
-
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
|
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"
|
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
|
-
|
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 ./
|
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 ./
|
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 () {
|