hobo 0.6.4 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/hobo +4 -6
- data/hobo_files/plugin/CHANGES.txt +170 -0
- data/hobo_files/plugin/generators/hobo_front_controller/templates/index.dryml +9 -9
- data/hobo_files/plugin/generators/hobo_front_controller/templates/search.dryml +9 -9
- data/hobo_files/plugin/generators/hobo_migration/hobo_migration_generator.rb +7 -2
- data/hobo_files/plugin/generators/hobo_rapid/hobo_rapid_generator.rb +4 -4
- data/hobo_files/plugin/generators/hobo_rapid/templates/{hobo_rapid.css → hobo-rapid.css} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/{hobo_rapid.js → hobo-rapid.js} +66 -47
- data/hobo_files/plugin/generators/hobo_rapid/templates/lowpro.js +130 -44
- data/hobo_files/plugin/generators/hobo_rapid/templates/{hobo_base.css → reset.css} +0 -5
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/images/pencil.png +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/images/small_close.png +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/stylesheets/application.css +45 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/stylesheets/rapid_ui.css +167 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/views/application.dryml +10 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_bodytop.gif → bkg-bodytop.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_01.gif → bkg-corner-01.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_02.gif → bkg-corner-02.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_03.gif → bkg-corner-03.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_04.gif → bkg-corner-04.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_bottom.gif → bkg-shadow-bottom.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_left.gif → bkg-shadow-left.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_right.gif → bkg-shadow-right.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_top.gif → bkg-shadow-top.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_blue.gif → header-blue.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_dblue.gif → header-dblue.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_green.gif → header-green.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_purple.gif → header-purple.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_red.gif → header-red.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_dblue.gif → txt-list-img-dblue.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_green.gif → txt-list-img-green.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_purple.gif → txt-list-img-purple.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_red.gif → txt-list-img-red.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_01.gif → window-corner-01.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_02.gif → window-corner-02.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_03.gif → window-corner-03.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_04.gif → window-corner-04.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_bottom.gif → window-shadow-bottom.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_left.gif → window-shadow-left.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_right.gif → window-shadow-right.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_top.gif → window-shadow-top.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/stylesheets/application.css +69 -69
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/views/application.dryml +39 -53
- data/hobo_files/plugin/generators/hobo_user_model/templates/model.rb +1 -1
- data/hobo_files/plugin/lib/extensions.rb +0 -16
- data/hobo_files/plugin/lib/hobo/dryml/part_context.rb +1 -1
- data/hobo_files/plugin/lib/hobo/dryml/tag_parameters.rb +35 -0
- data/hobo_files/plugin/lib/hobo/dryml/taglib.rb +2 -2
- data/hobo_files/plugin/lib/hobo/dryml/template.rb +165 -236
- data/hobo_files/plugin/lib/hobo/dryml/template_environment.rb +158 -123
- data/hobo_files/plugin/lib/hobo/hobo_helper.rb +15 -4
- data/hobo_files/plugin/lib/hobo/model.rb +30 -11
- data/hobo_files/plugin/lib/hobo/model_controller.rb +13 -9
- data/hobo_files/plugin/lib/hobo/model_router.rb +27 -7
- data/hobo_files/plugin/lib/hobo/static_tags +0 -2
- data/hobo_files/plugin/lib/hobo/user.rb +3 -3
- data/hobo_files/plugin/lib/rexml.rb +10 -3
- data/hobo_files/plugin/tags/core.dryml +11 -16
- data/hobo_files/plugin/tags/rapid.dryml +147 -110
- data/hobo_files/plugin/tags/rapid_document_tags.dryml +22 -20
- data/hobo_files/plugin/tags/rapid_editing.dryml +41 -41
- data/hobo_files/plugin/tags/rapid_forms.dryml +51 -49
- data/hobo_files/plugin/tags/rapid_navigation.dryml +34 -34
- data/hobo_files/plugin/tags/rapid_pages.dryml +174 -174
- data/hobo_files/plugin/tags/rapid_plus.dryml +19 -19
- data/hobo_files/plugin/tags/rapid_support.dryml +5 -5
- data/hobo_files/plugin/tasks/dump_fixtures.rake +62 -53
- data/hobo_files/plugin/tasks/fix_dryml.rake +144 -0
- data/hobo_files/plugin/tasks/hobo_tasks.rake +0 -4
- metadata +43 -32
- data/hobo_files/plugin/lib/hobo/dryml/tag_module.rb +0 -9
@@ -1,25 +1,16 @@
|
|
1
1
|
LowPro = {};
|
2
2
|
LowPro.Version = '0.5';
|
3
|
+
LowPro.CompatibleWithPrototype = '1.6.0';
|
4
|
+
|
5
|
+
if (Prototype.Version != LowPro.CompatibleWithPrototype && console && console.warn)
|
6
|
+
console.warn("This version of Low Pro is tested with Prototype " + LowPro.CompatibleWithPrototype +
|
7
|
+
" it may not work as expected with this version (" + Prototype.Version + ")");
|
3
8
|
|
4
9
|
if (!Element.addMethods)
|
5
10
|
Element.addMethods = function(o) { Object.extend(Element.Methods, o) };
|
6
11
|
|
7
12
|
// Simple utility methods for working with the DOM
|
8
|
-
DOM = {
|
9
|
-
prependChild : function(element, node) {
|
10
|
-
$(element).insertBefore(node, element.firstChild);
|
11
|
-
},
|
12
|
-
appendChildren : function(element, children) {
|
13
|
-
element = $(element);
|
14
|
-
if (!(children instanceof Array))
|
15
|
-
children = Array.prototype.slice.call(arguments, 1);
|
16
|
-
children.each(function(child) { element.appendChild(child) });
|
17
|
-
return children;
|
18
|
-
}
|
19
|
-
};
|
20
|
-
|
21
|
-
// Add them to the element mixin
|
22
|
-
Element.addMethods(DOM);
|
13
|
+
DOM = {};
|
23
14
|
|
24
15
|
// DOMBuilder for prototype
|
25
16
|
DOM.Builder = {
|
@@ -80,7 +71,7 @@ DOM.Builder.fromHTML = function(html) {
|
|
80
71
|
// Event.onReady(callbackFunction);
|
81
72
|
Object.extend(Event, {
|
82
73
|
onReady : function(f) {
|
83
|
-
document.observe('
|
74
|
+
document.observe('dom:loaded', f);
|
84
75
|
}
|
85
76
|
});
|
86
77
|
|
@@ -119,7 +110,7 @@ Event.addBehavior = function(rules) {
|
|
119
110
|
|
120
111
|
Object.extend(Event.addBehavior, {
|
121
112
|
rules : {}, cache : [],
|
122
|
-
reassignAfterAjax :
|
113
|
+
reassignAfterAjax : false,
|
123
114
|
autoTrigger : true,
|
124
115
|
|
125
116
|
load : function(rules) {
|
@@ -130,6 +121,7 @@ Object.extend(Event.addBehavior, {
|
|
130
121
|
var parts = sel.split(/:(?=[a-z]+$)/), css = parts[0], event = parts[1];
|
131
122
|
$$(css).each(function(element) {
|
132
123
|
if (event) {
|
124
|
+
observer = Event.addBehavior._wrapObserver(observer);
|
133
125
|
$(element).observe(event, observer);
|
134
126
|
Event.addBehavior.cache.push([element, event, observer]);
|
135
127
|
} else {
|
@@ -151,6 +143,12 @@ Object.extend(Event.addBehavior, {
|
|
151
143
|
Event.stopObserving.apply(Event, c);
|
152
144
|
});
|
153
145
|
this.cache = [];
|
146
|
+
},
|
147
|
+
|
148
|
+
_wrapObserver: function(observer) {
|
149
|
+
return function(event) {
|
150
|
+
if (observer.call(this, event) === false) event.stop();
|
151
|
+
}
|
154
152
|
}
|
155
153
|
|
156
154
|
});
|
@@ -158,7 +156,7 @@ Object.extend(Event.addBehavior, {
|
|
158
156
|
Event.observe(window, 'unload', Event.addBehavior.unload.bind(Event.addBehavior));
|
159
157
|
|
160
158
|
// A silly Prototype style shortcut for the reckless
|
161
|
-
$$$ = Event.addBehavior;
|
159
|
+
$$$ = Event.addBehavior.bind(Event);
|
162
160
|
|
163
161
|
// Behaviors can be bound to elements to provide an object orientated way of controlling elements
|
164
162
|
// and their behavior. Use Behavior.create() to make a new behavior class then use attach() to
|
@@ -186,42 +184,130 @@ $$$ = Event.addBehavior;
|
|
186
184
|
//
|
187
185
|
// Each behaviour has a collection of all its instances in Behavior.instances
|
188
186
|
//
|
189
|
-
Behavior = {
|
190
|
-
create
|
191
|
-
var
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
187
|
+
var Behavior = {
|
188
|
+
create: function() {
|
189
|
+
var parent = null, properties = $A(arguments);
|
190
|
+
if (Object.isFunction(properties[0]))
|
191
|
+
parent = properties.shift();
|
192
|
+
|
193
|
+
var behavior = function() {
|
194
|
+
var behavior = arguments.callee;
|
195
|
+
if (!this.initialize) {
|
196
|
+
var args = $A(arguments);
|
197
|
+
|
198
|
+
return function() {
|
199
|
+
var initArgs = [this].concat(args);
|
200
|
+
behavior.attach.apply(behavior, initArgs);
|
201
|
+
};
|
202
|
+
} else {
|
203
|
+
var args = (arguments.length == 2 && arguments[1] instanceof Array) ?
|
204
|
+
arguments[1] : Array.prototype.slice.call(arguments, 1);
|
205
|
+
|
206
|
+
this.element = $(arguments[0]);
|
207
|
+
this.initialize.apply(this, args);
|
208
|
+
behavior._bindEvents(this);
|
209
|
+
behavior.instances.push(this);
|
210
|
+
}
|
211
|
+
};
|
212
|
+
|
213
|
+
Object.extend(behavior, Class.Methods);
|
214
|
+
Object.extend(behavior, Behavior.Methods);
|
215
|
+
behavior.superclass = parent;
|
216
|
+
behavior.subclasses = [];
|
213
217
|
behavior.instances = [];
|
218
|
+
|
219
|
+
if (parent) {
|
220
|
+
var subclass = function() { };
|
221
|
+
subclass.prototype = parent.prototype;
|
222
|
+
behavior.prototype = new subclass;
|
223
|
+
parent.subclasses.push(behavior);
|
224
|
+
}
|
225
|
+
|
226
|
+
for (var i = 0; i < properties.length; i++)
|
227
|
+
behavior.addMethods(properties[i]);
|
228
|
+
|
229
|
+
if (!behavior.prototype.initialize)
|
230
|
+
behavior.prototype.initialize = Prototype.emptyFunction;
|
231
|
+
|
232
|
+
behavior.prototype.constructor = behavior;
|
233
|
+
|
214
234
|
return behavior;
|
215
235
|
},
|
216
|
-
|
236
|
+
Methods : {
|
217
237
|
attach : function(element) {
|
218
238
|
return new this(element, Array.prototype.slice.call(arguments, 1));
|
219
239
|
},
|
220
240
|
_bindEvents : function(bound) {
|
221
241
|
for (var member in bound)
|
222
242
|
if (member.match(/^on(.+)/) && typeof bound[member] == 'function')
|
223
|
-
bound.element.observe(RegExp.$1, bound[member].bindAsEventListener(bound));
|
243
|
+
bound.element.observe(RegExp.$1, Event.addBehavior._wrapObserver(bound[member].bindAsEventListener(bound)));
|
224
244
|
}
|
225
245
|
}
|
226
246
|
};
|
227
247
|
|
248
|
+
Remote = Behavior.create({
|
249
|
+
initialize: function(options) {
|
250
|
+
if (this.element.nodeName == 'FORM') new Remote.Form(this.element, options);
|
251
|
+
else new Remote.Link(this.element, options);
|
252
|
+
}
|
253
|
+
});
|
254
|
+
|
255
|
+
Remote.Base = {
|
256
|
+
initialize : function(options) {
|
257
|
+
this.options = Object.extend({
|
258
|
+
evaluateScripts : true
|
259
|
+
}, options || {});
|
260
|
+
},
|
261
|
+
_makeRequest : function(options) {
|
262
|
+
if (options.update) new Ajax.Updater(options.update, options.url, options);
|
263
|
+
else new Ajax.Request(options.url, options);
|
264
|
+
return false;
|
265
|
+
}
|
266
|
+
}
|
267
|
+
|
268
|
+
Remote.Link = Behavior.create(Remote.Base, {
|
269
|
+
onclick : function() {
|
270
|
+
var options = Object.extend({ url : this.element.href, method : 'get' }, this.options);
|
271
|
+
return this._makeRequest(options);
|
272
|
+
}
|
273
|
+
});
|
274
|
+
|
275
|
+
|
276
|
+
Remote.Form = Behavior.create(Remote.Base, {
|
277
|
+
onclick : function(e) {
|
278
|
+
var sourceElement = e.element();
|
279
|
+
|
280
|
+
if (sourceElement.nodeName.toLowerCase() == 'input' &&
|
281
|
+
sourceElement.type == 'submit')
|
282
|
+
this._submitButton = sourceElement;
|
283
|
+
},
|
284
|
+
onsubmit : function() {
|
285
|
+
var options = Object.extend({
|
286
|
+
url : this.element.action,
|
287
|
+
method : this.element.method || 'get',
|
288
|
+
parameters : this.element.serialize({ submit: this._submitButton.name })
|
289
|
+
}, this.options);
|
290
|
+
this._submitButton = null;
|
291
|
+
return this._makeRequest(options);
|
292
|
+
}
|
293
|
+
});
|
294
|
+
|
295
|
+
Observed = Behavior.create({
|
296
|
+
initialize : function(callback, options) {
|
297
|
+
this.callback = callback.bind(this);
|
298
|
+
this.options = options || {};
|
299
|
+
this.observer = (this.element.nodeName == 'FORM') ? this._observeForm() : this._observeField();
|
300
|
+
},
|
301
|
+
stop: function() {
|
302
|
+
this.observer.stop();
|
303
|
+
},
|
304
|
+
_observeForm: function() {
|
305
|
+
return (this.options.frequency) ? new Form.Observer(this.element, this.options.frequency, this.callback) :
|
306
|
+
new Form.EventObserver(this.element, this.callback);
|
307
|
+
},
|
308
|
+
_observeField: function() {
|
309
|
+
return (this.options.frequency) ? new Form.Element.Observer(this.element, this.options.frequency, this.callback) :
|
310
|
+
new Form.Element.EventObserver(this.element, this.callback);
|
311
|
+
}
|
312
|
+
});
|
313
|
+
|
@@ -29,9 +29,6 @@ body {
|
|
29
29
|
color: black;
|
30
30
|
background: white;
|
31
31
|
}
|
32
|
-
ol, ul {
|
33
|
-
list-style: none;
|
34
|
-
}
|
35
32
|
|
36
33
|
/* Tables still need 'cellspacing="0"' in the markup. */
|
37
34
|
table {
|
@@ -63,5 +60,3 @@ h3 { font-size: 18px;}
|
|
63
60
|
h4 { font-size: 14px;}
|
64
61
|
h5 { font-size: 12px;}
|
65
62
|
h6 { font-size: 10px;}
|
66
|
-
|
67
|
-
ul, ol { list-style: none;}
|
Binary file
|
data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/images/small_close.png
ADDED
Binary file
|
@@ -0,0 +1,45 @@
|
|
1
|
+
html {background: #666;}
|
2
|
+
body {
|
3
|
+
width: 600px; margin: 0 auto; background: white;
|
4
|
+
font: 14px "Lucida Grande", Arial, sans-serif;
|
5
|
+
line-height: 21px; padding-bottom: 10px; margin-bottom: 20px;
|
6
|
+
}
|
7
|
+
h1, h2, h3 {font-family: "Rockwell", "Trebuchet MS", "Arial", sans-serif;}
|
8
|
+
h1 {line-height: 54px;}
|
9
|
+
h2 {line-height: 42px;}
|
10
|
+
h3 {line-height: 27px;}
|
11
|
+
|
12
|
+
a {
|
13
|
+
text-decoration: none; color: black;
|
14
|
+
border-bottom: 1px dotted #aaa;
|
15
|
+
}
|
16
|
+
a:hover {border-bottom: 1px dotted #222;}
|
17
|
+
|
18
|
+
.content_header, .content_body {margin: 30px;}
|
19
|
+
.article { margin: 20px 0; border-top: 1px dotted #ccc;}
|
20
|
+
|
21
|
+
/***********/
|
22
|
+
|
23
|
+
.page_header .nav {color: white; padding-bottom: 8px; background: black; overflow: hidden; height: 100%;}
|
24
|
+
.page_header .nav li {float: left; padding-right: 20px;}
|
25
|
+
.page_header .nav a {border-bottom: 1px solid black; color: white;}
|
26
|
+
.page_header .nav a:hover {border-bottom: 1px dotted #ddd;}
|
27
|
+
.main_nav {float: right;}
|
28
|
+
.main_nav li {line-height: 36px;}
|
29
|
+
.main_nav a {
|
30
|
+
font: bold 16px "Myriad Pro", Arial, sans-serif;
|
31
|
+
}
|
32
|
+
.account_nav {
|
33
|
+
clear: both; float: right;
|
34
|
+
font: normal 12px "Myriad Pro", Arial, sans-serif;
|
35
|
+
}
|
36
|
+
.account_nav a {font-weight: bold;}
|
37
|
+
|
38
|
+
/***********/
|
39
|
+
|
40
|
+
.intro {
|
41
|
+
background: #eee; color: #222; padding: 10px 20px;
|
42
|
+
}
|
43
|
+
.intro h2 {
|
44
|
+
font-size: 18px; line-height: 27px;
|
45
|
+
}
|
data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/stylesheets/rapid_ui.css
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
.flash {
|
2
|
+
background: #92ab6e;
|
3
|
+
padding: 10px;
|
4
|
+
margin-top: 5px;
|
5
|
+
border-top: 2px solid #829862;
|
6
|
+
border-bottom: 2px solid #829862;
|
7
|
+
}
|
8
|
+
|
9
|
+
input.text, input.string, input.email_address, input.password, textarea {
|
10
|
+
border: 2px solid #444; padding: 1px;
|
11
|
+
}
|
12
|
+
input.file_upload {
|
13
|
+
background: #070707; border: 1px dotted #666;
|
14
|
+
color: white;
|
15
|
+
}
|
16
|
+
|
17
|
+
.button {
|
18
|
+
padding: 4px 8px;
|
19
|
+
color: white; /* background: #292929; border: 2px solid #444;*/ background: black; border: 1px solid #666;
|
20
|
+
font: 12px "Lucida Grande", Arial, sans-serif;
|
21
|
+
}
|
22
|
+
.button:hover {cursor: pointer;}
|
23
|
+
/*.delete_button {
|
24
|
+
border: none; background: url(../images/small_close.png) center bottom no-repeat;
|
25
|
+
width: 14px; height: 15px;
|
26
|
+
margin: 0; padding: 0; margin-left: 5px;
|
27
|
+
overflow: hidden; text-indent: -300px;
|
28
|
+
}*/
|
29
|
+
|
30
|
+
.in_place_textfield_bhv, .in_place_textarea_bhv, .in_place_html_textarea_bhv {
|
31
|
+
/* background: #070707; border: 1px dotted #666;*/
|
32
|
+
padding: 0 3px;
|
33
|
+
background-image: url(../images/pencil.png);
|
34
|
+
background-position: top right;
|
35
|
+
background-repeat: no-repeat;
|
36
|
+
}
|
37
|
+
.in_place_textfield_bhv {
|
38
|
+
padding-right: 20px;
|
39
|
+
}
|
40
|
+
|
41
|
+
.inplaceeditor-form input, .inplaceeditor-form textarea,
|
42
|
+
table.new_record textarea, table.new_record input {
|
43
|
+
background: #070707; border: 1px dotted #666;
|
44
|
+
padding: 3px; color: white; width: 100%;
|
45
|
+
}
|
46
|
+
.inplaceeditor-form, .inplaceeditor-form input {
|
47
|
+
display: inline;
|
48
|
+
}
|
49
|
+
|
50
|
+
.login-table, .login-table td {border: none;}
|
51
|
+
.login_table td.field_label { vertical-align: middle; }
|
52
|
+
.login-table tr td {
|
53
|
+
padding-bottom: 15px;
|
54
|
+
padding-right: 10px;
|
55
|
+
}
|
56
|
+
#login-form {
|
57
|
+
padding-top: 20px;
|
58
|
+
}
|
59
|
+
#login-form .submit_button {margin-left: 68px;}
|
60
|
+
|
61
|
+
/**** Admin ****/
|
62
|
+
|
63
|
+
.admin-banner {
|
64
|
+
background: #9d0018; border-top: 2px solid #7a0013; border-bottom: 2px solid #7a0013;
|
65
|
+
padding: 2px 0;
|
66
|
+
margin: 10px 0;
|
67
|
+
}
|
68
|
+
.admin-banner p, .admin-banner span {
|
69
|
+
font: 12px "Lucida Grande", Arial, sans-serif;
|
70
|
+
}
|
71
|
+
.admin-banner p, .admin-banner div {margin-bottom: 0;}
|
72
|
+
.admin-banner a {color: white; text-decoration: none; padding: 1px 5px; font-weight: bold;}
|
73
|
+
.admin-banner a:hover {color: #9d0018; background: white;}
|
74
|
+
.admin-banner .logged-in {
|
75
|
+
float: right;
|
76
|
+
}
|
77
|
+
|
78
|
+
/* rails error message */
|
79
|
+
.error_messages {
|
80
|
+
font-family: "Lucida Grande", arial, sans-serif;
|
81
|
+
background: #9d0018;
|
82
|
+
border: 1px solid #7a0013;
|
83
|
+
padding: 15px 30px;
|
84
|
+
color: white;
|
85
|
+
margin-bottom: 20px;
|
86
|
+
}
|
87
|
+
.error_messages h2 {
|
88
|
+
text-transform: none;
|
89
|
+
letter-spacing: normal;
|
90
|
+
color: white;
|
91
|
+
margin-bottom: 10px;
|
92
|
+
}
|
93
|
+
.error_messages li {
|
94
|
+
margin-left: 20px;
|
95
|
+
}
|
96
|
+
|
97
|
+
/********* everything below here came from hobo_rapid.css, needs looking at ********/
|
98
|
+
|
99
|
+
/**** Default styling for Rapid ****/
|
100
|
+
|
101
|
+
#ajax_progress {
|
102
|
+
color: grey;
|
103
|
+
float: right;
|
104
|
+
margin: 20px;
|
105
|
+
position: fixed;
|
106
|
+
background: white;
|
107
|
+
font-family: Tahoma "sans serif";
|
108
|
+
display: none;
|
109
|
+
z-index: 10;
|
110
|
+
}
|
111
|
+
|
112
|
+
#ajax_progress div {
|
113
|
+
border: 1px dashed grey;
|
114
|
+
margin: 10px;
|
115
|
+
padding: 3px;
|
116
|
+
/* padding-top: -15px;*/
|
117
|
+
}
|
118
|
+
|
119
|
+
#ajax_progress img {
|
120
|
+
padding-left: 6px;
|
121
|
+
vertical-align: middle;
|
122
|
+
}
|
123
|
+
|
124
|
+
|
125
|
+
/* Scriptaculous Autocompleter ---*/
|
126
|
+
|
127
|
+
div.completions_popup {
|
128
|
+
position:absolute;
|
129
|
+
width:250px;
|
130
|
+
background-color:white;
|
131
|
+
border:1px solid #888;
|
132
|
+
margin:0px;
|
133
|
+
padding:0px;
|
134
|
+
}
|
135
|
+
div.completions_popup ul {
|
136
|
+
list-style-type:none;
|
137
|
+
margin:0px;
|
138
|
+
padding:0px;
|
139
|
+
}
|
140
|
+
div.completions_popup ul li.selected { background-color: #ffb;}
|
141
|
+
div.completions_popup ul li {
|
142
|
+
list-style-type:none;
|
143
|
+
display:block;
|
144
|
+
margin:0;
|
145
|
+
padding:2px;
|
146
|
+
cursor:pointer;
|
147
|
+
}
|
148
|
+
|
149
|
+
|
150
|
+
.field_list { width:95%; }
|
151
|
+
.field_list td { padding: 5px; vertical-align: middle; }
|
152
|
+
.field_list td.field_label {
|
153
|
+
text-align: left; width: 1px; white-space: nowrap; vertical-align: top;
|
154
|
+
padding-top: 10px; padding-bottom: 10px;
|
155
|
+
}
|
156
|
+
/*.field_list input[type=text] { width: 100%; }*/
|
157
|
+
/*.field_list input, .field_list textarea { margin: -2px 0 0 0; }*/
|
158
|
+
.field_list textarea { width: 100%; margin: 0; }
|
159
|
+
/*table.login-table input {font-size: 16px; color: black;}*/
|
160
|
+
|
161
|
+
/*input[type=text].wide { width: 100%; }*/
|
162
|
+
textarea { height: 200px; }
|
163
|
+
textarea.wide { width: 100%; }
|
164
|
+
textarea.tall { height: 350px; }
|
165
|
+
|
166
|
+
.field_list input.percentage {width: 25px; display: inline; margin-right: 5px; padding: 1px 3px;}
|
167
|
+
|