joshuaclayton-watchtower 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/Manifest +66 -0
- data/README.textile +34 -0
- data/Rakefile +35 -0
- data/app/controllers/watchtower_controller.rb +3 -0
- data/app/helpers/watchtower_helper.rb +27 -0
- data/app/models/watched_exception.rb +3 -0
- data/app/views/layouts/watchtower.erb +34 -0
- data/app/views/watchtower/_recordset.erb +10 -0
- data/app/views/watchtower/destroy.js.rjs +0 -0
- data/app/views/watchtower/destroy_multiple.js.rjs +6 -0
- data/app/views/watchtower/index.html.erb +59 -0
- data/app/views/watchtower/index.js.rjs +2 -0
- data/app/views/watchtower/show.html.erb +26 -0
- data/config/routes.rb +3 -0
- data/generators/watchtower/USAGE +1 -0
- data/generators/watchtower/templates/README +26 -0
- data/generators/watchtower/templates/migrations/create_watched_exceptions.rb +20 -0
- data/generators/watchtower/watchtower_generator.rb +12 -0
- data/generators/watchtower_assets/USAGE +1 -0
- data/generators/watchtower_assets/templates/public/javascripts/watchtower/jquery-1.3.2.min.js +19 -0
- data/generators/watchtower_assets/templates/public/javascripts/watchtower/jquery-ui-1.7.1.custom.min.js +160 -0
- data/generators/watchtower_assets/templates/public/javascripts/watchtower/jquery.watchtower.bindings.js +50 -0
- data/generators/watchtower_assets/templates/public/javascripts/watchtower/jquery.watchtower.events.js +102 -0
- data/generators/watchtower_assets/templates/public/javascripts/watchtower/jquery.watchtower.js +65 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/admin.css +60 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/ajax-loader.gif +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/bullet-black.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/buttons/sprite-gray.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/buttons/x.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/icons/caution-sign-red.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/icons/caution-sign-sm.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/icons/caution-sign.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/icons/edit-template.gif +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/icons/success-badge.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/assets/images/nav-admin-shadow.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/extras.css +86 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/forms.css +312 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/ie.css +31 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_glass_75_ffffff_1x400.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-icons_222222_256x240.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-icons_2e83ff_256x240.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-icons_454545_256x240.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-icons_888888_256x240.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/jquery-ui-1.7.1.custom.css +404 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/reset.css +235 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/screen.css +208 -0
- data/generators/watchtower_assets/templates/public/stylesheets/watchtower/watchtower.css +56 -0
- data/generators/watchtower_assets/watchtower_assets_generator.rb +19 -0
- data/lib/watchtower/application_controller_base.rb +40 -0
- data/lib/watchtower/controller_base.rb +54 -0
- data/lib/watchtower/watched_exception_base.rb +84 -0
- data/lib/watchtower/watched_exceptions_presenter.rb +23 -0
- data/lib/watchtower.rb +5 -0
- data/rails/init.rb +2 -0
- data/tasks/watchtower_tasks.rake +0 -0
- data/test/test_helper.rb +3 -0
- data/watchtower.gemspec +38 -0
- metadata +154 -0
@@ -0,0 +1,160 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery UI 1.7.1
|
3
|
+
*
|
4
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
5
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
7
|
+
*
|
8
|
+
* http://docs.jquery.com/UI
|
9
|
+
*/
|
10
|
+
* jQuery UI Datepicker 1.7.1
|
11
|
+
*
|
12
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
13
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
14
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
15
|
+
*
|
16
|
+
* http://docs.jquery.com/UI/Datepicker
|
17
|
+
*
|
18
|
+
* Depends:
|
19
|
+
* ui.core.js
|
20
|
+
*/
|
21
|
+
* jQuery UI Effects 1.7.1
|
22
|
+
*
|
23
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
24
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
25
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
26
|
+
*
|
27
|
+
* http://docs.jquery.com/UI/Effects/
|
28
|
+
*/
|
29
|
+
* jQuery UI Effects Blind 1.7.1
|
30
|
+
*
|
31
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
32
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
33
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
34
|
+
*
|
35
|
+
* http://docs.jquery.com/UI/Effects/Blind
|
36
|
+
*
|
37
|
+
* Depends:
|
38
|
+
* effects.core.js
|
39
|
+
*/
|
40
|
+
* jQuery UI Effects Bounce 1.7.1
|
41
|
+
*
|
42
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
43
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
44
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
45
|
+
*
|
46
|
+
* http://docs.jquery.com/UI/Effects/Bounce
|
47
|
+
*
|
48
|
+
* Depends:
|
49
|
+
* effects.core.js
|
50
|
+
*/
|
51
|
+
* jQuery UI Effects Clip 1.7.1
|
52
|
+
*
|
53
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
54
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
55
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
56
|
+
*
|
57
|
+
* http://docs.jquery.com/UI/Effects/Clip
|
58
|
+
*
|
59
|
+
* Depends:
|
60
|
+
* effects.core.js
|
61
|
+
*/
|
62
|
+
* jQuery UI Effects Drop 1.7.1
|
63
|
+
*
|
64
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
65
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
66
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
67
|
+
*
|
68
|
+
* http://docs.jquery.com/UI/Effects/Drop
|
69
|
+
*
|
70
|
+
* Depends:
|
71
|
+
* effects.core.js
|
72
|
+
*/
|
73
|
+
* jQuery UI Effects Explode 1.7.1
|
74
|
+
*
|
75
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
76
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
77
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
78
|
+
*
|
79
|
+
* http://docs.jquery.com/UI/Effects/Explode
|
80
|
+
*
|
81
|
+
* Depends:
|
82
|
+
* effects.core.js
|
83
|
+
*/
|
84
|
+
* jQuery UI Effects Fold 1.7.1
|
85
|
+
*
|
86
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
87
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
88
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
89
|
+
*
|
90
|
+
* http://docs.jquery.com/UI/Effects/Fold
|
91
|
+
*
|
92
|
+
* Depends:
|
93
|
+
* effects.core.js
|
94
|
+
*/
|
95
|
+
* jQuery UI Effects Highlight 1.7.1
|
96
|
+
*
|
97
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
98
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
99
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
100
|
+
*
|
101
|
+
* http://docs.jquery.com/UI/Effects/Highlight
|
102
|
+
*
|
103
|
+
* Depends:
|
104
|
+
* effects.core.js
|
105
|
+
*/
|
106
|
+
* jQuery UI Effects Pulsate 1.7.1
|
107
|
+
*
|
108
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
109
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
110
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
111
|
+
*
|
112
|
+
* http://docs.jquery.com/UI/Effects/Pulsate
|
113
|
+
*
|
114
|
+
* Depends:
|
115
|
+
* effects.core.js
|
116
|
+
*/
|
117
|
+
* jQuery UI Effects Scale 1.7.1
|
118
|
+
*
|
119
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
120
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
121
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
122
|
+
*
|
123
|
+
* http://docs.jquery.com/UI/Effects/Scale
|
124
|
+
*
|
125
|
+
* Depends:
|
126
|
+
* effects.core.js
|
127
|
+
*/
|
128
|
+
* jQuery UI Effects Shake 1.7.1
|
129
|
+
*
|
130
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
131
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
132
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
133
|
+
*
|
134
|
+
* http://docs.jquery.com/UI/Effects/Shake
|
135
|
+
*
|
136
|
+
* Depends:
|
137
|
+
* effects.core.js
|
138
|
+
*/
|
139
|
+
* jQuery UI Effects Slide 1.7.1
|
140
|
+
*
|
141
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
142
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
143
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
144
|
+
*
|
145
|
+
* http://docs.jquery.com/UI/Effects/Slide
|
146
|
+
*
|
147
|
+
* Depends:
|
148
|
+
* effects.core.js
|
149
|
+
*/
|
150
|
+
* jQuery UI Effects Transfer 1.7.1
|
151
|
+
*
|
152
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
153
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
154
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
155
|
+
*
|
156
|
+
* http://docs.jquery.com/UI/Effects/Transfer
|
157
|
+
*
|
158
|
+
* Depends:
|
159
|
+
* effects.core.js
|
160
|
+
*/
|
@@ -0,0 +1,50 @@
|
|
1
|
+
(function($) {
|
2
|
+
$(function() {
|
3
|
+
var $doc = $(document),
|
4
|
+
watchtower = $doc.data("watchtower");
|
5
|
+
|
6
|
+
var deleteIds = function(elements) {
|
7
|
+
var idsToDelete = [];
|
8
|
+
if(elements.length > 0 && !confirm("Are you sure you want to delete these exceptions?")) { return; }
|
9
|
+
elements.map(function(idx, li) {
|
10
|
+
idsToDelete.push($(li).attr("id").match(/\d+/)[0]);
|
11
|
+
});
|
12
|
+
watchtower.data.destroy(idsToDelete.join(","));
|
13
|
+
};
|
14
|
+
|
15
|
+
$doc.bind("delete-visible.watchtower", function(data) {
|
16
|
+
deleteIds($("ul.watched-exceptions li"));
|
17
|
+
});
|
18
|
+
|
19
|
+
$doc.bind("delete-selected.watchtower", function(data) {
|
20
|
+
deleteIds($("ul.watched-exceptions li.selected"));
|
21
|
+
});
|
22
|
+
|
23
|
+
$doc.bind("select-all.watchtower", function(data) {
|
24
|
+
$("ul.watched-exceptions li").each(function(idx, li) {
|
25
|
+
$(li).addClass("selected");
|
26
|
+
});
|
27
|
+
});
|
28
|
+
|
29
|
+
$doc.bind("select-none.watchtower", function(data) {
|
30
|
+
$("ul.watched-exceptions li").each(function(idx, li) {
|
31
|
+
$(li).removeClass("selected");
|
32
|
+
});
|
33
|
+
});
|
34
|
+
|
35
|
+
$doc.bind("clear-start-at.watchtower", function(data) {
|
36
|
+
$("#watchtower_exceptions_start_at").val("");
|
37
|
+
watchtower.utilities.handleDateChange("start_at", "");
|
38
|
+
});
|
39
|
+
|
40
|
+
$doc.bind("clear-end-at.watchtower", function(data) {
|
41
|
+
$("#watchtower_exceptions_end_at").val("");
|
42
|
+
watchtower.utilities.handleDateChange("end_at", "");
|
43
|
+
});
|
44
|
+
|
45
|
+
$doc.bind("clear-search.watchtower", function(data) {
|
46
|
+
$("#watched_exception_query").val("");
|
47
|
+
watchtower.filters("query").clear();
|
48
|
+
});
|
49
|
+
});
|
50
|
+
})(jQuery);
|
@@ -0,0 +1,102 @@
|
|
1
|
+
(function($) {
|
2
|
+
$(function() {
|
3
|
+
var $doc = $(document),
|
4
|
+
watchtower = $doc.data("watchtower");
|
5
|
+
|
6
|
+
$(".delete-visible").click(function() {
|
7
|
+
$doc.trigger("delete-visible.watchtower");
|
8
|
+
});
|
9
|
+
|
10
|
+
$(".delete-selected").click(function() {
|
11
|
+
$doc.trigger("delete-selected.watchtower");
|
12
|
+
});
|
13
|
+
|
14
|
+
$(".select-all").click(function() {
|
15
|
+
$doc.trigger("select-all.watchtower");
|
16
|
+
});
|
17
|
+
|
18
|
+
$(".select-none").click(function() {
|
19
|
+
$doc.trigger("select-none.watchtower");
|
20
|
+
});
|
21
|
+
|
22
|
+
$(".clear-watchtower-start-at").click(function() {
|
23
|
+
$doc.trigger("clear-start-at.watchtower");
|
24
|
+
});
|
25
|
+
|
26
|
+
$(".clear-watchtower-end-at").click(function() {
|
27
|
+
$doc.trigger("clear-end-at.watchtower");
|
28
|
+
});
|
29
|
+
|
30
|
+
$(".clear-watchtower-query").click(function() {
|
31
|
+
$doc.trigger("clear-search.watchtower");
|
32
|
+
});
|
33
|
+
|
34
|
+
$(".pagination a").live("click", function() {
|
35
|
+
watchtower.filters("page").set($(this).attr("href").match(/page\=(\d+)/)[1]);
|
36
|
+
});
|
37
|
+
|
38
|
+
$("ul.watched-exceptions li").live("click", function() {
|
39
|
+
$(this).toggleClass("selected");
|
40
|
+
});
|
41
|
+
|
42
|
+
$("ul.watched-exceptions li a").live("click", function(e) {
|
43
|
+
$(this).stopImmediatePropagation()
|
44
|
+
});
|
45
|
+
|
46
|
+
$("#watchtower-search").submit(function(evt) {
|
47
|
+
watchtower.filters("query").set($("input[type=text]", $(this)).val());
|
48
|
+
return false;
|
49
|
+
});
|
50
|
+
|
51
|
+
$doc.keydown(function(e) {
|
52
|
+
if (/(input|textarea|select)/i.test(e.target.nodeName)) { return; }
|
53
|
+
|
54
|
+
if(e.which == "37") { /* left */
|
55
|
+
e.preventDefault();
|
56
|
+
$(".pagination a[rel*=prev]:first").trigger("click");
|
57
|
+
} else if(e.which == "39") { /* right */
|
58
|
+
e.preventDefault();
|
59
|
+
$(".pagination a[rel*=next]:first").trigger("click");
|
60
|
+
} else if(String.fromCharCode(e.which) == "X") {
|
61
|
+
e.preventDefault();
|
62
|
+
$doc.trigger("delete-selected.watchtower");
|
63
|
+
} else if(String.fromCharCode(e.which) == "A") {
|
64
|
+
e.preventDefault();
|
65
|
+
$doc.trigger("select-all.watchtower");
|
66
|
+
} else if(String.fromCharCode(e.which) == "V") {
|
67
|
+
e.preventDefault();
|
68
|
+
$doc.trigger("delete-visible.watchtower");
|
69
|
+
} else if(String.fromCharCode(e.which) == "N") {
|
70
|
+
e.preventDefault();
|
71
|
+
$doc.trigger("select-none.watchtower");
|
72
|
+
}
|
73
|
+
});
|
74
|
+
|
75
|
+
$("div.filter button").each(function(idx, button) {
|
76
|
+
var $button = $(button),
|
77
|
+
filter = $button.parents("div.filter").attr("class").match(/filter\-(\w+)/).pop(),
|
78
|
+
name = $button.siblings(".action-name").text();
|
79
|
+
|
80
|
+
$button.click(function(e) {
|
81
|
+
var item = $(this).parent();
|
82
|
+
$(this).parents("div.filter").find("button span").each(function(i, s) {
|
83
|
+
$(s).html("");
|
84
|
+
});
|
85
|
+
|
86
|
+
if(item.hasClass("active-filter")) {
|
87
|
+
$(this).find("span").html("");
|
88
|
+
watchtower.filters(filter).clear(function() {
|
89
|
+
item.removeClass("active-filter");
|
90
|
+
});
|
91
|
+
} else {
|
92
|
+
$(this).find("span").html("✓");
|
93
|
+
watchtower.filters(filter).set(name, function() {
|
94
|
+
item.siblings().removeClass("active-filter");
|
95
|
+
item.addClass("active-filter");
|
96
|
+
});
|
97
|
+
}
|
98
|
+
return false;
|
99
|
+
});
|
100
|
+
});
|
101
|
+
});
|
102
|
+
})(jQuery);
|
data/generators/watchtower_assets/templates/public/javascripts/watchtower/jquery.watchtower.js
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
(function($) {
|
2
|
+
var $doc = $(document);
|
3
|
+
|
4
|
+
$.watchtower = function(options) {
|
5
|
+
var self = {
|
6
|
+
params: {},
|
7
|
+
utilities: {
|
8
|
+
handleDateChange: function(dateName, date) {
|
9
|
+
var watchtower = $(document).data("watchtower");
|
10
|
+
if(date.length > 0) {
|
11
|
+
watchtower.filters(dateName).set(date);
|
12
|
+
} else {
|
13
|
+
watchtower.filters(dateName).clear();
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
data: {
|
18
|
+
get: function() {
|
19
|
+
var fn = arguments[0] || function() {};
|
20
|
+
$.get("/watchtower", self.params, function(data) { eval(data); fn(); });
|
21
|
+
},
|
22
|
+
destroy: function(ids) {
|
23
|
+
var fn = arguments[1] || function() {};
|
24
|
+
$.post("/watchtower/destroy_multiple", $.extend({id: ids, "_method": "delete", authenticity_token: $(document).data("authToken")}, self.params), function(data) { eval(data); fn(); });
|
25
|
+
}
|
26
|
+
},
|
27
|
+
filters: function(name) {
|
28
|
+
var watchtower = $(document).data("watchtower");
|
29
|
+
if(self.params["page"] && name != "page") { delete(self.params["page"]); }
|
30
|
+
return {
|
31
|
+
set: function(filter, fn) {
|
32
|
+
self.params[name] = filter;
|
33
|
+
watchtower.data.get(fn);
|
34
|
+
},
|
35
|
+
clear: function(fn) {
|
36
|
+
var oldFilter = self.params[name];
|
37
|
+
delete(self.params[name]);
|
38
|
+
watchtower.data.get(fn);
|
39
|
+
}
|
40
|
+
};
|
41
|
+
}
|
42
|
+
};
|
43
|
+
|
44
|
+
$doc.data("watchtower", self);
|
45
|
+
return $doc.data("watchtower");
|
46
|
+
};
|
47
|
+
|
48
|
+
$(function() {
|
49
|
+
$(".loading-progress").ajaxStart(function() {
|
50
|
+
$(this).stop(true, true).fadeIn("slow");
|
51
|
+
}).ajaxStop(function() {
|
52
|
+
$(this).stop(true, false).animate({opacity: 1.0}, 100).fadeOut("slow");
|
53
|
+
});
|
54
|
+
|
55
|
+
var watchtower = $doc.data("watchtower");
|
56
|
+
|
57
|
+
$("#watchtower_exceptions_start_at").datepicker({
|
58
|
+
onClose: function(date, inst) { watchtower.utilities.handleDateChange("start_at", date); }
|
59
|
+
});
|
60
|
+
|
61
|
+
$("#watchtower_exceptions_end_at").datepicker({
|
62
|
+
onClose: function(date, inst) { watchtower.utilities.handleDateChange("end_at", date); }
|
63
|
+
});
|
64
|
+
});
|
65
|
+
})(jQuery);
|
@@ -0,0 +1,60 @@
|
|
1
|
+
/** =admin.css
|
2
|
+
************************************************************
|
3
|
+
@project Easel
|
4
|
+
@note Styles for the control panel and front end administration
|
5
|
+
************************************************************/
|
6
|
+
|
7
|
+
/** =nav-admin
|
8
|
+
************************************************************/
|
9
|
+
.nav-admin {
|
10
|
+
position: fixed;
|
11
|
+
bottom: 0;
|
12
|
+
left: 0;
|
13
|
+
width: 100%;
|
14
|
+
background: url(assets/images/nav-admin-shadow.png) repeat-x;
|
15
|
+
z-index: 1000;
|
16
|
+
font-size: 11px;
|
17
|
+
text-align: right;
|
18
|
+
color: #ccc;
|
19
|
+
padding-top: 10px;
|
20
|
+
}
|
21
|
+
.nav-admin .inner {
|
22
|
+
padding: 3px 0;
|
23
|
+
height: 18px;
|
24
|
+
background: #000;
|
25
|
+
border-bottom: 2px #fff solid;
|
26
|
+
}
|
27
|
+
.nav-admin ul {
|
28
|
+
margin-right: 10px;
|
29
|
+
}
|
30
|
+
.nav-admin ul,
|
31
|
+
.nav-admin .greeting {
|
32
|
+
display: inline;
|
33
|
+
}
|
34
|
+
.nav-admin li {
|
35
|
+
margin-left: 9px;
|
36
|
+
padding-left: 10px;
|
37
|
+
border-left: 1px solid #6c6759;
|
38
|
+
}
|
39
|
+
.nav-admin a,
|
40
|
+
.nav-admin a:hover {
|
41
|
+
background: none;
|
42
|
+
color: #fff;
|
43
|
+
}
|
44
|
+
.nav-admin a:hover {
|
45
|
+
text-decoration: underline;
|
46
|
+
}
|
47
|
+
.nav-admin .greeting {
|
48
|
+
font-style: italic;
|
49
|
+
margin-right: 1.5em;
|
50
|
+
}
|
51
|
+
.nav-admin .edit a {
|
52
|
+
background: url(assets/images/icons/edit-template.gif) no-repeat 0 50%;
|
53
|
+
padding-left: 15px;
|
54
|
+
}
|
55
|
+
|
56
|
+
/** =content entry callouts
|
57
|
+
************************************************************/
|
58
|
+
.highlight {
|
59
|
+
background-color: rgba(255, 255, 0, .2);
|
60
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,86 @@
|
|
1
|
+
/** =extras.css
|
2
|
+
************************************************************
|
3
|
+
@project Easel
|
4
|
+
@note Reference and reusable techniques best kept out of the screen.css
|
5
|
+
@note Import into screen.css or just copy/paste as needed
|
6
|
+
@note Stick anything that may be able to be reused in here
|
7
|
+
@fontdef "Bradley Hand ITC", "Apple Chancery", "URW Chancery L", cursive; script/cursive
|
8
|
+
************************************************************/
|
9
|
+
|
10
|
+
/** =css3 rounded corners for nice browsers
|
11
|
+
************************************************************/
|
12
|
+
.rnd {
|
13
|
+
border-radius: 1em;
|
14
|
+
-moz-border-radius: 1em;
|
15
|
+
-webkit-border-radius: 1em;
|
16
|
+
padding: 1em;
|
17
|
+
}
|
18
|
+
|
19
|
+
/** =Safari 3 and 4 fix for light on dark text
|
20
|
+
************************************************************
|
21
|
+
@note Fixes chunky light text on dark bg in Safari. Change #000 to the element's background color.
|
22
|
+
@see http://jonnotie.nl/blog/fix-the-bad-text-rendering-in-safari-take-two/
|
23
|
+
************************************************************/
|
24
|
+
.safari-txt {
|
25
|
+
text-shadow: #000 0 0 1px;
|
26
|
+
}
|
27
|
+
|
28
|
+
/** =use the best ampersand available
|
29
|
+
************************************************************/
|
30
|
+
.amp {
|
31
|
+
font-family: Baskerville, Palatino, Constantia, "Book Antiqua", "URW Palladio L", serif;
|
32
|
+
font-style: italic;
|
33
|
+
font-weight: normal;
|
34
|
+
}
|
35
|
+
|
36
|
+
/** =Helvetica Neue Light
|
37
|
+
************************************************************
|
38
|
+
@see http://blog.gesteves.com/post/36097597/helvetica-neue-light
|
39
|
+
************************************************************/
|
40
|
+
.hn-light {
|
41
|
+
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
|
42
|
+
font-weight: 300;
|
43
|
+
}
|
44
|
+
|
45
|
+
/** =sliding doors buttons (with hover)
|
46
|
+
************************************************************
|
47
|
+
@see http://www.filamentgroup.com/lab/styling_the_button_element_with_sliding_doors
|
48
|
+
@see http://git.fusionary.com/?p=fusionary/build_tools.git
|
49
|
+
************************************************************/
|
50
|
+
button.btn {
|
51
|
+
border:0;
|
52
|
+
cursor:pointer;
|
53
|
+
font-weight:bold;
|
54
|
+
padding:0 10px 0 0;
|
55
|
+
text-align:center;
|
56
|
+
font-size: 1em;
|
57
|
+
background: none;
|
58
|
+
position: relative;
|
59
|
+
}
|
60
|
+
button.btn span {
|
61
|
+
position:relative;
|
62
|
+
display:block;
|
63
|
+
white-space:nowrap;
|
64
|
+
padding:0 0 0 10px;
|
65
|
+
height:26px;
|
66
|
+
line-height:24px;
|
67
|
+
color:#fff;
|
68
|
+
}
|
69
|
+
|
70
|
+
/* removes 1px border in FF */
|
71
|
+
button::-moz-focus-inner { border: none; padding: 0;}
|
72
|
+
|
73
|
+
/* using a sprite instead of four separate images... */
|
74
|
+
button.btn,
|
75
|
+
button.btn span {
|
76
|
+
background-image: url(assets/images/buttons/sprite-gray.png);
|
77
|
+
background-repeat: no-repeat;
|
78
|
+
}
|
79
|
+
button.btn {background-position: 100% 0;}
|
80
|
+
button.btn span { background-position: 0 -50px; }
|
81
|
+
button.btn:hover, button.btn.active { background-position: 100% -100px; }
|
82
|
+
button.btn:hover span, button.btn.active span { background-position: 0 -150px; }
|
83
|
+
|
84
|
+
button.btn:active, button.btn.active {
|
85
|
+
top:1px;
|
86
|
+
}
|