blazer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of blazer might be problematic. Click here for more details.

Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +144 -0
  6. data/Rakefile +2 -0
  7. data/app/assets/javascripts/blazer/ace/ace.js +11 -0
  8. data/app/assets/javascripts/blazer/ace/ext-language_tools.js +5 -0
  9. data/app/assets/javascripts/blazer/ace/mode-sql.js +1 -0
  10. data/app/assets/javascripts/blazer/ace/snippets/sql.js +1 -0
  11. data/app/assets/javascripts/blazer/ace/snippets/text.js +1 -0
  12. data/app/assets/javascripts/blazer/ace/theme-twilight.js +1 -0
  13. data/app/assets/javascripts/blazer/application.js +15 -0
  14. data/app/assets/javascripts/blazer/daterangepicker.js +1026 -0
  15. data/app/assets/javascripts/blazer/highlight.pack.js +1 -0
  16. data/app/assets/javascripts/blazer/jquery.js +10308 -0
  17. data/app/assets/javascripts/blazer/jquery.stickytableheaders.js +263 -0
  18. data/app/assets/javascripts/blazer/jquery_ujs.js +469 -0
  19. data/app/assets/javascripts/blazer/list.js +1474 -0
  20. data/app/assets/javascripts/blazer/moment.js +2400 -0
  21. data/app/assets/javascripts/blazer/selectize.js +3477 -0
  22. data/app/assets/javascripts/blazer/stupidtable.js +114 -0
  23. data/app/assets/stylesheets/blazer/application.css +66 -0
  24. data/app/assets/stylesheets/blazer/bootstrap.css +6203 -0
  25. data/app/assets/stylesheets/blazer/bootstrap.css.map +1 -0
  26. data/app/assets/stylesheets/blazer/daterangepicker-bs3.css +267 -0
  27. data/app/assets/stylesheets/blazer/github.css +126 -0
  28. data/app/assets/stylesheets/blazer/selectize.default.css +386 -0
  29. data/app/controllers/blazer/queries_controller.rb +216 -0
  30. data/app/helpers/blazer/queries_helper.rb +21 -0
  31. data/app/models/blazer/audit.rb +5 -0
  32. data/app/models/blazer/connection.rb +5 -0
  33. data/app/models/blazer/query.rb +13 -0
  34. data/app/views/blazer/queries/_form.html.erb +84 -0
  35. data/app/views/blazer/queries/edit.html.erb +1 -0
  36. data/app/views/blazer/queries/index.html.erb +47 -0
  37. data/app/views/blazer/queries/new.html.erb +1 -0
  38. data/app/views/blazer/queries/run.html.erb +50 -0
  39. data/app/views/blazer/queries/show.html.erb +138 -0
  40. data/app/views/layouts/blazer/application.html.erb +17 -0
  41. data/blazer.gemspec +25 -0
  42. data/config/routes.rb +6 -0
  43. data/lib/blazer/engine.rb +11 -0
  44. data/lib/blazer/version.rb +3 -0
  45. data/lib/blazer.rb +16 -0
  46. data/lib/generators/blazer/install_generator.rb +33 -0
  47. data/lib/generators/blazer/templates/config.yml +8 -0
  48. data/lib/generators/blazer/templates/install.rb +17 -0
  49. metadata +134 -0
@@ -0,0 +1,114 @@
1
+ // Stupid jQuery table plugin.
2
+
3
+ // Call on a table
4
+ // sortFns: Sort functions for your datatypes.
5
+ (function($) {
6
+
7
+ $.fn.stupidtable = function(sortFns) {
8
+ return this.each(function() {
9
+ var $table = $(this);
10
+ sortFns = sortFns || {};
11
+
12
+ // Merge sort functions with some default sort functions.
13
+ sortFns = $.extend({}, $.fn.stupidtable.default_sort_fns, sortFns);
14
+
15
+
16
+ // ==================================================== //
17
+ // Begin execution! //
18
+ // ==================================================== //
19
+
20
+ // Do sorting when THs are clicked
21
+ $table.on("click.stupidtable", "th", function() {
22
+ var $this = $(this);
23
+ var th_index = 0;
24
+ var dir = $.fn.stupidtable.dir;
25
+
26
+ $table.find("th").slice(0, $this.index()).each(function() {
27
+ var cols = $(this).attr("colspan") || 1;
28
+ th_index += parseInt(cols,10);
29
+ });
30
+
31
+ // Determine (and/or reverse) sorting direction, default `asc`
32
+ var sort_dir = $this.data("sort-default") || dir.ASC;
33
+ if ($this.data("sort-dir"))
34
+ sort_dir = $this.data("sort-dir") === dir.ASC ? dir.DESC : dir.ASC;
35
+
36
+ // Choose appropriate sorting function.
37
+ var type = $this.data("sort") || null;
38
+
39
+ // Prevent sorting if no type defined
40
+ if (type === null) {
41
+ return;
42
+ }
43
+
44
+ // Trigger `beforetablesort` event that calling scripts can hook into;
45
+ // pass parameters for sorted column index and sorting direction
46
+ $table.trigger("beforetablesort", {column: th_index, direction: sort_dir});
47
+ // More reliable method of forcing a redraw
48
+ $table.css("display");
49
+
50
+ // Run sorting asynchronously on a timout to force browser redraw after
51
+ // `beforetablesort` callback. Also avoids locking up the browser too much.
52
+ setTimeout(function() {
53
+ // Gather the elements for this column
54
+ var column = [];
55
+ var sortMethod = sortFns[type];
56
+ var trs = $table.children("tbody").children("tr");
57
+
58
+ // Extract the data for the column that needs to be sorted and pair it up
59
+ // with the TR itself into a tuple
60
+ trs.each(function(index,tr) {
61
+ var $e = $(tr).children().eq(th_index);
62
+ var sort_val = $e.data("sort-value");
63
+ var order_by = typeof(sort_val) !== "undefined" ? sort_val : $e.text();
64
+ column.push([order_by, tr]);
65
+ });
66
+
67
+ // Sort by the data-order-by value
68
+ column.sort(function(a, b) { return sortMethod(a[0], b[0]); });
69
+ if (sort_dir != dir.ASC)
70
+ column.reverse();
71
+
72
+ // Replace the content of tbody with the sorted rows. Strangely (and
73
+ // conveniently!) enough, .append accomplishes this for us.
74
+ trs = $.map(column, function(kv) { return kv[1]; });
75
+ $table.children("tbody").append(trs);
76
+
77
+ // Reset siblings
78
+ $table.find("th").data("sort-dir", null).removeClass("sorting-desc sorting-asc");
79
+ $this.data("sort-dir", sort_dir).addClass("sorting-"+sort_dir);
80
+
81
+ // Trigger `aftertablesort` event. Similar to `beforetablesort`
82
+ $table.trigger("aftertablesort", {column: th_index, direction: sort_dir});
83
+ // More reliable method of forcing a redraw
84
+ $table.css("display");
85
+ }, 10);
86
+ });
87
+ });
88
+ };
89
+
90
+ // Enum containing sorting directions
91
+ $.fn.stupidtable.dir = {ASC: "asc", DESC: "desc"};
92
+
93
+ $.fn.stupidtable.default_sort_fns = {
94
+ "int": function(a, b) {
95
+ return parseInt(a.replace(/,/g, ''), 10) - parseInt(b.replace(/,/g, ''), 10);
96
+ },
97
+ "float": function(a, b) {
98
+ return parseFloat(a) - parseFloat(b);
99
+ },
100
+ "string": function(a, b) {
101
+ if (a < b) return -1;
102
+ if (a > b) return +1;
103
+ return 0;
104
+ },
105
+ "string-ins": function(a, b) {
106
+ a = a.toLowerCase();
107
+ b = b.toLowerCase();
108
+ if (a < b) return -1;
109
+ if (a > b) return +1;
110
+ return 0;
111
+ }
112
+ };
113
+
114
+ })(jQuery);
@@ -0,0 +1,66 @@
1
+ /*
2
+ *= require ./bootstrap
3
+ *= require ./selectize.default
4
+ *= require ./github
5
+ *= require ./daterangepicker-bs3
6
+ *= require_self
7
+ */
8
+
9
+ pre {
10
+ border: none;
11
+ border-radius: 0;
12
+ }
13
+
14
+ body {
15
+ padding-top: 20px;
16
+ padding-bottom: 20px;
17
+ }
18
+
19
+ #results th {
20
+ cursor: pointer;
21
+ }
22
+
23
+ #results thead {
24
+ background-color: #fff;
25
+ }
26
+
27
+ input.search {
28
+ border: none;
29
+ box-shadow: none;
30
+ }
31
+
32
+ input.search:focus {
33
+ outline: none;
34
+ box-shadow: none;
35
+ }
36
+
37
+ .button_to {
38
+ display: inline-block;
39
+ }
40
+
41
+ .button_to input:focus {
42
+ outline: none;
43
+ }
44
+
45
+ .form-inline .selectize-control, .text-right .selectize-control {
46
+ display: inline-block;
47
+ vertical-align: middle;
48
+ margin-left: 5px;
49
+ margin-right: 20px;
50
+ text-align: left;
51
+ }
52
+
53
+ #editor-container {
54
+ background-color: #141414;
55
+ padding-top: 10px;
56
+ padding-bottom: 10px;
57
+ }
58
+
59
+ #editor {
60
+ display: none;
61
+ height: 100px;
62
+ }
63
+
64
+ .ace_print-margin-layer {
65
+ display: none;
66
+ }