caboose-cms 0.0.7 → 0.1.0
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.
- data/app/assets/images/caboose/caboose_nav.png +0 -0
- data/app/assets/javascripts/caboose/admin.js +37 -0
- data/app/assets/javascripts/caboose/application.js +2 -1
- data/app/assets/javascripts/caboose/model.form.page.js +30 -0
- data/app/assets/javascripts/caboose/station.js +223 -0
- data/app/assets/stylesheets/caboose/admin.css +57 -0
- data/app/assets/stylesheets/caboose/caboose.css +146 -16
- data/app/assets/stylesheets/caboose/tinymce.css +25 -0
- data/app/controllers/caboose/pages_controller.rb +43 -19
- data/app/controllers/caboose/permissions_controller.rb +91 -73
- data/app/controllers/caboose/roles_controller.rb +49 -37
- data/app/controllers/caboose/settings_controller.rb +100 -0
- data/app/controllers/caboose/station_controller.rb +13 -0
- data/app/controllers/caboose/users_controller.rb +51 -44
- data/app/models/caboose/caboose_plugin.rb +2 -6
- data/app/models/caboose/page.rb +3 -3
- data/app/models/caboose/page_bar_generator.rb +37 -28
- data/app/models/caboose/page_plugin.rb +43 -0
- data/app/models/caboose/permission_plugin.rb +27 -0
- data/app/models/caboose/role.rb +19 -1
- data/app/models/caboose/role_plugin.rb +27 -0
- data/app/models/caboose/setting.rb +5 -0
- data/app/models/caboose/settings_plugin.rb +27 -0
- data/app/models/caboose/user.rb +1 -2
- data/app/models/caboose/user_plugin.rb +28 -0
- data/app/views/caboose/pages/edit.html.erb +7 -27
- data/app/views/caboose/pages/edit_settings.html.erb +38 -0
- data/app/views/caboose/pages/sitemap.html.erb +12 -0
- data/app/views/caboose/permissions/edit.html.erb +21 -4
- data/app/views/caboose/permissions/index.html.erb +29 -21
- data/app/views/caboose/permissions/new.html.erb +22 -2
- data/app/views/caboose/roles/edit.html.erb +40 -27
- data/app/views/caboose/roles/index.html.erb +3 -5
- data/app/views/caboose/roles/new.html.erb +30 -11
- data/app/views/caboose/settings/edit.html.erb +23 -0
- data/app/views/caboose/settings/index.html.erb +33 -0
- data/app/views/caboose/settings/new.html.erb +25 -0
- data/app/views/caboose/users/edit.html.erb +11 -14
- data/app/views/caboose/users/index.html.erb +2 -4
- data/app/views/caboose/users/new.html.erb +2 -0
- data/app/views/caboose/users/update_pic.html.erb +1 -1
- data/app/views/layouts/caboose/_station.html.erb +43 -14
- data/app/views/layouts/caboose/{caboose.html.erb → admin.html.erb} +2 -2
- data/config/routes.rb +16 -5
- data/lib/caboose.rb +1 -1
- data/lib/caboose/engine.rb +15 -6
- data/lib/caboose/version.rb +1 -1
- data/lib/sample_files/tinymce.yml +22 -0
- data/lib/tasks/caboose.rake +21 -1
- metadata +40 -12
- data/app/assets/javascripts/caboose/caboose.js +0 -28
- data/app/assets/javascripts/caboose/permissions.js +0 -0
- data/app/assets/javascripts/caboose/roles.js +0 -35
- data/app/assets/javascripts/caboose/users.js +0 -38
- data/app/views/caboose/permissions/show.html.erb +0 -15
- data/app/views/caboose/roles/show.html.erb +0 -20
- data/app/views/caboose/users/update_resume.html.erb +0 -14
Binary file
|
@@ -0,0 +1,37 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// the compiled file.
|
9
|
+
//
|
10
|
+
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
+
// GO AFTER THE REQUIRES BELOW.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require jquery-ui
|
16
|
+
//= require tinymce-jquery
|
17
|
+
//= require class
|
18
|
+
//= require model
|
19
|
+
//= require attribute
|
20
|
+
//= require form
|
21
|
+
//= require form/embedded
|
22
|
+
//= require attribute/checkbox-multiple
|
23
|
+
//= require attribute/checkbox
|
24
|
+
//= require attribute/date-time
|
25
|
+
//= require attribute/file
|
26
|
+
//= require attribute/hidden
|
27
|
+
//= require attribute/image
|
28
|
+
//= require attribute/password
|
29
|
+
//= require attribute/radio
|
30
|
+
//= require attribute/rich-text
|
31
|
+
//= require attribute/select
|
32
|
+
//= require attribute/texarea
|
33
|
+
//= require attribute/textjs
|
34
|
+
//= require attribute/h1
|
35
|
+
//= require attribute/time
|
36
|
+
//= require attribute/video
|
37
|
+
//= require caboose/station
|
@@ -14,6 +14,7 @@
|
|
14
14
|
//= require jquery
|
15
15
|
//= require jquery_ujs
|
16
16
|
//= require jquery-ui
|
17
|
+
//= require tinymce-jquery
|
17
18
|
//= require class
|
18
19
|
//= require model
|
19
20
|
//= require attribute
|
@@ -33,5 +34,5 @@
|
|
33
34
|
//= require attribute/textjs
|
34
35
|
//= require attribute/time
|
35
36
|
//= require attribute/video
|
36
|
-
//= require caboose/
|
37
|
+
//= require caboose/station
|
37
38
|
//= require caboose_after
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
Model.Form.Page = Model.Form.extend({
|
3
|
+
|
4
|
+
class_name: 'Model.Form.Page',
|
5
|
+
|
6
|
+
// Returns the form for editing a model or false for an embedded form.
|
7
|
+
edit: function()
|
8
|
+
{
|
9
|
+
var m = this.model;
|
10
|
+
|
11
|
+
var this2 = this;
|
12
|
+
var div = $('<div/>');
|
13
|
+
$(m.attributes).each(function(i, a) {
|
14
|
+
if (a.type == 'hidden')
|
15
|
+
return;
|
16
|
+
div.append(
|
17
|
+
$('<div/>').attr('id', m.name + '_' + m.id + '_' + a.name + '_container')
|
18
|
+
);
|
19
|
+
});
|
20
|
+
|
21
|
+
div.append($('<div/>').attr('id', this.message))
|
22
|
+
.append($('<p/>')
|
23
|
+
.append($('<input/>').attr('type', 'button').val('Back').click(function() { caboose_station.close_url('/pages/'+m.id+'/redirect'); }))
|
24
|
+
.append(' ')
|
25
|
+
.append($('<input/>').attr('type', 'button').val('Delete ' + m.name).click(function() { m.ajax_delete(); }))
|
26
|
+
);
|
27
|
+
return div;
|
28
|
+
}
|
29
|
+
|
30
|
+
});
|
@@ -0,0 +1,223 @@
|
|
1
|
+
|
2
|
+
var CabooseStation = function() {};
|
3
|
+
|
4
|
+
CabooseStation = Class.extend({
|
5
|
+
conductor: false,
|
6
|
+
state: 'min', // left, right, or min
|
7
|
+
open_tabs: [], // Currently open tabs
|
8
|
+
|
9
|
+
init: function()
|
10
|
+
{
|
11
|
+
this.attach_dom();
|
12
|
+
//alert(this.open_tabs);
|
13
|
+
|
14
|
+
if ($('#caboose_station').hasClass('state_left'))
|
15
|
+
{
|
16
|
+
$('#caboose_station').css('left', 0);
|
17
|
+
$('#caboose_station').show();
|
18
|
+
this.state = 'left';
|
19
|
+
}
|
20
|
+
else if ($('#caboose_station').hasClass('state_right'))
|
21
|
+
{
|
22
|
+
$('#caboose_station').css('right', 0);
|
23
|
+
$('#caboose_station').show();
|
24
|
+
this.state = 'right';
|
25
|
+
}
|
26
|
+
else
|
27
|
+
{
|
28
|
+
$('#caboose_station').hide();
|
29
|
+
this.state = 'min';
|
30
|
+
}
|
31
|
+
},
|
32
|
+
|
33
|
+
attach_dom: function()
|
34
|
+
{
|
35
|
+
var this2 = this;
|
36
|
+
$('#caboose_station li ul.visible').each(function (i,ul) {
|
37
|
+
var id = $(this).parent().attr('id').replace('nav_item_', '');
|
38
|
+
this2.open_tabs[this2.open_tabs.length] = id;
|
39
|
+
});
|
40
|
+
|
41
|
+
$('#caboose_conductor').click(function() { this2.open(); });
|
42
|
+
$('#caboose_station ul.hidden').hide();
|
43
|
+
$('#caboose_station li a.top_level').click(function() {
|
44
|
+
ul = $(this).parent().children("ul.hidden:first");
|
45
|
+
var id = $(this).parent().attr('id').replace('nav_item_', '');
|
46
|
+
if (ul.length)
|
47
|
+
{
|
48
|
+
ul.slideDown(200).addClass('visible').removeClass('hidden');
|
49
|
+
this2.open_tabs[this2.open_tabs.length] = id;
|
50
|
+
}
|
51
|
+
else
|
52
|
+
{
|
53
|
+
ul = $(this).parent().children("ul:first");
|
54
|
+
ul.hide().addClass('hidden').removeClass('visible');
|
55
|
+
|
56
|
+
var index = this2.open_tabs.indexOf(id);
|
57
|
+
if (index > -1)
|
58
|
+
this2.open_tabs.splice(index, 1);
|
59
|
+
}
|
60
|
+
});
|
61
|
+
$('#caboose_station li ul a').each(function(i, a) {
|
62
|
+
var href = $(a).attr('href');
|
63
|
+
$(a).click(function(event) {
|
64
|
+
event.preventDefault();
|
65
|
+
this2.open_url(href);
|
66
|
+
})
|
67
|
+
});
|
68
|
+
$('#caboose_station a.close').click(function(event) {
|
69
|
+
event.preventDefault();
|
70
|
+
|
71
|
+
if (this2.state == 'left')
|
72
|
+
this2.close_url($(this).attr('href'));
|
73
|
+
else if (this2.state == 'right')
|
74
|
+
this2.min();
|
75
|
+
});
|
76
|
+
},
|
77
|
+
|
78
|
+
min: function()
|
79
|
+
{
|
80
|
+
if (this.state == 'min')
|
81
|
+
return;
|
82
|
+
if (this.state == 'right')
|
83
|
+
{
|
84
|
+
$('#caboose_station').hide('slide', { direction: 'right' }, 300);
|
85
|
+
}
|
86
|
+
else if (this.state == 'left')
|
87
|
+
{
|
88
|
+
var w = $(window).width();
|
89
|
+
$('#caboose_station').animate({ left: '+=' + w }, 300);
|
90
|
+
}
|
91
|
+
this.state = 'min';
|
92
|
+
},
|
93
|
+
|
94
|
+
left: function(func_after)
|
95
|
+
{
|
96
|
+
if (this.state == 'left')
|
97
|
+
return;
|
98
|
+
if (!func_after)
|
99
|
+
func_after = function() {};
|
100
|
+
if (this.state == 'right')
|
101
|
+
{
|
102
|
+
var w = $(window).width() - $('#caboose_station').width();
|
103
|
+
$('#caboose_station').animate({ left: '-=' + w }, 300, func_after);
|
104
|
+
}
|
105
|
+
else if (this.state == 'min')
|
106
|
+
{
|
107
|
+
var w = $(window).width();
|
108
|
+
$('#caboose_station').animate({ left: '+=' + w }, 300, func_after);
|
109
|
+
}
|
110
|
+
this.state = 'left';
|
111
|
+
},
|
112
|
+
|
113
|
+
right: function(func_after)
|
114
|
+
{
|
115
|
+
if (this.state == 'right')
|
116
|
+
return;
|
117
|
+
if (!func_after)
|
118
|
+
func_after = function() {};
|
119
|
+
if (this.state == 'left')
|
120
|
+
{
|
121
|
+
var w = $(window).width() - $('#caboose_station').width();
|
122
|
+
$('#caboose_station').animate({ left: '+=' + w }, 300, func_after);
|
123
|
+
}
|
124
|
+
else if (this.state == 'min')
|
125
|
+
{
|
126
|
+
$('#caboose_station').show('slide', { direction: 'right' }, 300, func_after);
|
127
|
+
}
|
128
|
+
this.state = 'right';
|
129
|
+
},
|
130
|
+
|
131
|
+
open: function()
|
132
|
+
{
|
133
|
+
if (this.state == 'min')
|
134
|
+
this.right();
|
135
|
+
else if (this.state == 'right')
|
136
|
+
this.left();
|
137
|
+
},
|
138
|
+
|
139
|
+
close: function()
|
140
|
+
{
|
141
|
+
if (this.state == 'min')
|
142
|
+
return;
|
143
|
+
if (this.state == 'left')
|
144
|
+
this.right();
|
145
|
+
else if (this.state == 'right');
|
146
|
+
this.min();
|
147
|
+
},
|
148
|
+
|
149
|
+
open_url: function(url)
|
150
|
+
{
|
151
|
+
// Send the station settings first
|
152
|
+
var this2 = this;
|
153
|
+
$.ajax({
|
154
|
+
url: '/admin/station',
|
155
|
+
type: 'put',
|
156
|
+
data: {
|
157
|
+
state: 'left',
|
158
|
+
open_tabs: this2.open_tabs,
|
159
|
+
return_url: window.location.pathname
|
160
|
+
},
|
161
|
+
success: function() {
|
162
|
+
if (this2.state == 'left')
|
163
|
+
{
|
164
|
+
window.location = url;
|
165
|
+
return;
|
166
|
+
}
|
167
|
+
|
168
|
+
var w = $(window).width() - $('#caboose_station').width();
|
169
|
+
var h = $(window).height();
|
170
|
+
|
171
|
+
$('#caboose_station').after(
|
172
|
+
$('<div/>')
|
173
|
+
.attr('id', 'caboose_white')
|
174
|
+
.css({
|
175
|
+
position: 'absolute',
|
176
|
+
right: -1,
|
177
|
+
top: 0,
|
178
|
+
width: 1,
|
179
|
+
height: h,
|
180
|
+
background: 'url(/assets/loading.gif) 40px 40px no-repeat #fff'
|
181
|
+
})
|
182
|
+
);
|
183
|
+
$('#caboose_station').removeClass('state_right').addClass('state_left');
|
184
|
+
$('#caboose_station').animate({ left: '-=' + w }, 300, function() {
|
185
|
+
//$.ajax({
|
186
|
+
// url: url,
|
187
|
+
// success: function(html) { window.location = url; }
|
188
|
+
//});
|
189
|
+
window.location = url;
|
190
|
+
});
|
191
|
+
$('#caboose_white').animate({ width: '+=' + w }, 300);
|
192
|
+
}
|
193
|
+
});
|
194
|
+
},
|
195
|
+
|
196
|
+
close_url: function(url)
|
197
|
+
{
|
198
|
+
// Send the station settings first
|
199
|
+
var this2 = this;
|
200
|
+
$.ajax({
|
201
|
+
url: '/admin/station',
|
202
|
+
type: 'put',
|
203
|
+
data: {
|
204
|
+
state: 'right',
|
205
|
+
open_tabs: this2.open_tabs,
|
206
|
+
return_url: false
|
207
|
+
},
|
208
|
+
success: function() {
|
209
|
+
var w = $(window).width() - $('#caboose_station').width();
|
210
|
+
$('#caboose_station').removeClass('state_left').addClass('state_right');
|
211
|
+
$('#content_wrapper').animate({ marginLeft: '+=' + w }, 300);
|
212
|
+
$('#caboose_station').animate({ left: '+=' + w }, 300, function() { window.location = url; })
|
213
|
+
}
|
214
|
+
});
|
215
|
+
}
|
216
|
+
});
|
217
|
+
|
218
|
+
/******************************************************************************/
|
219
|
+
|
220
|
+
var caboose_station = false;
|
221
|
+
$(document).ready(function() {
|
222
|
+
caboose_station = new CabooseStation();
|
223
|
+
});
|
@@ -0,0 +1,57 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require modeljs
|
12
|
+
*= require caboose/caboose
|
13
|
+
*/
|
14
|
+
|
15
|
+
body {
|
16
|
+
margin: 0;
|
17
|
+
padding: 0;
|
18
|
+
}
|
19
|
+
|
20
|
+
#top_nav {
|
21
|
+
display: none;
|
22
|
+
}
|
23
|
+
|
24
|
+
#content_wrapper {
|
25
|
+
margin-left: 208px;
|
26
|
+
}
|
27
|
+
|
28
|
+
#content {
|
29
|
+
padding: 0 0 0 30px;
|
30
|
+
}
|
31
|
+
|
32
|
+
#content h1 {
|
33
|
+
margin: 0 0 20px -30px;
|
34
|
+
padding: 40px 0 0 30px;
|
35
|
+
height: 80px;
|
36
|
+
background: #e1e1e1;
|
37
|
+
border-bottom: #aaa 1px solid;
|
38
|
+
font-size: 36pt;
|
39
|
+
}
|
40
|
+
|
41
|
+
#content h1.model_attribute_h1 {
|
42
|
+
margin: inherit;
|
43
|
+
padding: inherit;
|
44
|
+
height: auto;
|
45
|
+
background: transparent;
|
46
|
+
border-bottom: none;
|
47
|
+
font-size: 36pt;
|
48
|
+
}
|
49
|
+
|
50
|
+
p.current_page_editing {
|
51
|
+
position: absolute;
|
52
|
+
top: 84px;
|
53
|
+
left: 212px;
|
54
|
+
|
55
|
+
margin: 0;
|
56
|
+
padding: 10px 10px 10px 30px;
|
57
|
+
}
|
@@ -13,8 +13,18 @@ body {
|
|
13
13
|
|
14
14
|
.page_links a {
|
15
15
|
display: inline-block;
|
16
|
-
|
17
|
-
|
16
|
+
margin: 0 2px;
|
17
|
+
padding: 5px 8px 3px 8px;
|
18
|
+
|
19
|
+
border: #505050 1px solid;
|
20
|
+
background: #e1e1e1;
|
21
|
+
color: #505050;
|
22
|
+
text-decoration: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
.page_links a:hover {
|
26
|
+
background: #505050;
|
27
|
+
color: #fff;
|
18
28
|
}
|
19
29
|
|
20
30
|
.page_links .middle_links a {
|
@@ -23,43 +33,163 @@ body {
|
|
23
33
|
|
24
34
|
.page_links span.current_page {
|
25
35
|
display: inline-block;
|
26
|
-
padding:
|
27
|
-
|
36
|
+
padding: 5px 8px 3px 8px;
|
37
|
+
|
38
|
+
border: #941403 1px solid;
|
39
|
+
background: #941403;
|
40
|
+
color: #fff;
|
41
|
+
text-decoration: none;
|
28
42
|
}
|
29
43
|
|
30
44
|
#caboose_station {
|
45
|
+
display: none;
|
31
46
|
position: absolute;
|
32
47
|
top: 0;
|
33
48
|
right: 0;
|
34
|
-
width:
|
49
|
+
width: 208px;
|
35
50
|
height: 100%;
|
36
|
-
background: #
|
37
|
-
border: #
|
51
|
+
background: #e1e1e1;
|
52
|
+
border: #aaa 1px solid;
|
53
|
+
}
|
54
|
+
|
55
|
+
#caboose_station h2 {
|
56
|
+
height: 86px;
|
57
|
+
background-image: url('/assets/caboose/caboose_nav.png');
|
58
|
+
background-position: 0 -33px;
|
59
|
+
margin: 0;
|
60
|
+
padding: 0;
|
61
|
+
border-bottom: #aaa 1px solid;
|
62
|
+
|
63
|
+
/* Hide the text. */
|
64
|
+
text-indent: 100%;
|
65
|
+
white-space: nowrap;
|
66
|
+
overflow: hidden;
|
38
67
|
}
|
39
68
|
|
40
|
-
#caboose_station ul {
|
69
|
+
#caboose_station ul.account {
|
70
|
+
margin: 0;
|
71
|
+
padding: 0;
|
72
|
+
list-style: none;
|
73
|
+
height: 33px;
|
74
|
+
}
|
75
|
+
|
76
|
+
#caboose_station ul.account li {
|
77
|
+
margin: 0;
|
78
|
+
padding: 0;
|
79
|
+
list-style: none;
|
80
|
+
float: left;
|
81
|
+
border: 0;
|
82
|
+
background: #ccc;
|
83
|
+
}
|
84
|
+
|
85
|
+
#caboose_station ul.account li a {
|
86
|
+
display: block;
|
87
|
+
margin: 0;
|
88
|
+
padding: 0;
|
89
|
+
height: 33px;
|
90
|
+
background-image: url(/assets/caboose/caboose_nav.png);
|
91
|
+
background-repeat: no-repeat;
|
92
|
+
background-position: 0 0;
|
93
|
+
|
94
|
+
/* Hide the text. */
|
95
|
+
text-indent: 100%;
|
96
|
+
white-space: nowrap;
|
97
|
+
overflow: hidden;
|
98
|
+
}
|
99
|
+
|
100
|
+
#caboose_station ul.account li.my_account a { width: 103px; background-position: 0px 0px; border-right: #828181 1px solid; }
|
101
|
+
#caboose_station ul.account li.logout a { width: 103px; background-position: -106px 0px; border-left: #cecece 1px solid; }
|
102
|
+
|
103
|
+
#caboose_station ul.account li.my_account a:hover { background-position: -212px 0px; }
|
104
|
+
#caboose_station ul.account li.logout a:hover { background-position: -318px 0px; }
|
105
|
+
|
106
|
+
#caboose_station ul.account li a:hover {
|
107
|
+
color: #941403;
|
108
|
+
}
|
109
|
+
|
110
|
+
#caboose_station ul.admin {
|
41
111
|
margin: 0;
|
42
112
|
padding: 0;
|
43
113
|
list-style: none;
|
44
114
|
}
|
45
115
|
|
46
|
-
#caboose_station ul li {
|
116
|
+
#caboose_station ul.admin li {
|
47
117
|
margin: 0;
|
48
118
|
padding: 0;
|
49
119
|
list-style: none;
|
50
120
|
}
|
51
121
|
|
52
|
-
#caboose_station
|
122
|
+
#caboose_station ul.admin li ul {
|
123
|
+
margin: 0;
|
124
|
+
padding: 0;
|
125
|
+
list-style: none;
|
126
|
+
}
|
127
|
+
|
128
|
+
#caboose_station ul.admin a {
|
53
129
|
display: block;
|
54
|
-
color: #fff;
|
55
|
-
text-decoration: none;
|
56
130
|
margin: 1px 0 0 0;
|
57
131
|
padding: 8px 10px;
|
58
|
-
|
132
|
+
color: #505050;
|
133
|
+
text-decoration: none;
|
59
134
|
}
|
60
135
|
|
61
|
-
#caboose_station a:hover {
|
62
|
-
|
136
|
+
#caboose_station ul.admin a:hover {
|
137
|
+
color: #941403;
|
138
|
+
}
|
139
|
+
|
140
|
+
#caboose_station ul.admin a.top_level {
|
141
|
+
background-image: url('/assets/caboose/caboose_nav.png');
|
142
|
+
background-repeat: no-repeat;
|
143
|
+
background-position: 0 0;
|
144
|
+
width: 208px;
|
145
|
+
height: 50px;
|
146
|
+
margin: 0;
|
147
|
+
padding: 0;
|
148
|
+
border-top: #f7f7f7 1px solid;
|
149
|
+
border-bottom: #aaa 1px solid;
|
150
|
+
|
151
|
+
/* Hide the text. */
|
152
|
+
text-indent: 100%;
|
153
|
+
white-space: nowrap;
|
154
|
+
overflow: hidden;
|
155
|
+
}
|
156
|
+
|
157
|
+
#caboose_station ul.admin li#nav_item_users a.top_level { background-position: 0px -119px; }
|
158
|
+
#caboose_station ul.admin li#nav_item_roles a.top_level { background-position: 0px -171px; }
|
159
|
+
#caboose_station ul.admin li#nav_item_permissions a.top_level { background-position: 0px -222px; }
|
160
|
+
#caboose_station ul.admin li#nav_item_pages a.top_level { background-position: 0px -275px; }
|
161
|
+
#caboose_station ul.admin li#nav_item_settings a.top_level { background-position: 0px -328px; }
|
162
|
+
|
163
|
+
#caboose_station ul.admin li#nav_item_users a.top_level:hover { background-position: -212px -119px; }
|
164
|
+
#caboose_station ul.admin li#nav_item_roles a.top_level:hover { background-position: -212px -171px; }
|
165
|
+
#caboose_station ul.admin li#nav_item_permissions a.top_level:hover { background-position: -212px -222px; }
|
166
|
+
#caboose_station ul.admin li#nav_item_pages a.top_level:hover { background-position: -212px -275px; }
|
167
|
+
#caboose_station ul.admin li#nav_item_settings a.top_level:hover { background-position: -212px -328px; }
|
168
|
+
|
169
|
+
#caboose_station ul.admin li#nav_item_users a.top_level:active { background-position: -424px -119px; }
|
170
|
+
#caboose_station ul.admin li#nav_item_roles a.top_level:active { background-position: -424px -171px; }
|
171
|
+
#caboose_station ul.admin li#nav_item_permissions a.top_level:active { background-position: -424px -222px; }
|
172
|
+
#caboose_station ul.admin li#nav_item_pages a.top_level:active { background-position: -424px -275px; }
|
173
|
+
#caboose_station ul.admin li#nav_item_settings a.top_level:active { background-position: -424px -328px; }
|
174
|
+
|
175
|
+
#caboose_station.state_left a.close,
|
176
|
+
#caboose_station.state_right a.close {
|
177
|
+
display: block;
|
178
|
+
background-image: url('/assets/caboose/caboose_nav.png');
|
179
|
+
background-repeat: no-repeat;
|
180
|
+
background-position: 0 0;
|
181
|
+
width: 208px;
|
182
|
+
height: 50px;
|
183
|
+
|
184
|
+
/* Hide the text. */
|
185
|
+
text-indent: 100%;
|
186
|
+
white-space: nowrap;
|
187
|
+
overflow: hidden;
|
63
188
|
}
|
64
189
|
|
65
|
-
#caboose_station
|
190
|
+
#caboose_station.state_left a.close { background-position: 0px -422px; } /* Back */
|
191
|
+
#caboose_station.state_right a.close { background-position: 0px -380px; } /* Close */
|
192
|
+
#caboose_station.state_left a.close:hover { background-position: -212px -422px; } /* Back */
|
193
|
+
#caboose_station.state_right a.close:hover { background-position: -212px -380px; } /* Close */
|
194
|
+
#caboose_station.state_left a.close:active { background-position: -424px -422px; } /* Back */
|
195
|
+
#caboose_station.state_right a.close:active { background-position: -424px -380px; } /* Close */
|