ruote-kit 2.1.10 → 2.1.11
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/.gitignore +2 -0
- data/CHANGELOG.txt +10 -0
- data/Gemfile +21 -5
- data/LICENSE.txt +20 -0
- data/README.rdoc +132 -80
- data/Rakefile +4 -15
- data/TODO.txt +12 -0
- data/config.ru +22 -14
- data/lib/ruote-kit/application.rb +46 -22
- data/lib/ruote-kit/helpers/json_helpers.rb +280 -0
- data/lib/ruote-kit/helpers/link_helpers.rb +117 -0
- data/lib/ruote-kit/helpers/misc_helpers.rb +35 -0
- data/lib/ruote-kit/helpers/pagination_helpers.rb +30 -0
- data/lib/ruote-kit/helpers/render_helpers.rb +39 -92
- data/lib/ruote-kit/public/_ruote/images/favicon.ico +0 -0
- data/lib/ruote-kit/public/_ruote/images/ruote.png +0 -0
- data/lib/ruote-kit/public/_ruote/images/ruote_buttons.png +0 -0
- data/lib/ruote-kit/public/_ruote/javascripts/jquery-1.4.2.min.js +154 -0
- data/lib/ruote-kit/public/_ruote/javascripts/rk.js +40 -0
- data/lib/ruote-kit/public/_ruote/javascripts/ruote-fluo-editor.js +548 -0
- data/lib/ruote-kit/public/_ruote/javascripts/ruote-fluo.js +32 -1
- data/lib/ruote-kit/public/_ruote/stylesheets/reset.css +53 -0
- data/lib/ruote-kit/public/_ruote/stylesheets/rk.css +355 -16
- data/lib/ruote-kit/public/_ruote/stylesheets/ruote-fluo-editor.css +108 -0
- data/lib/ruote-kit/resources/errors.rb +46 -43
- data/lib/ruote-kit/resources/expressions.rb +92 -35
- data/lib/ruote-kit/resources/participants.rb +53 -0
- data/lib/ruote-kit/resources/processes.rb +68 -36
- data/lib/ruote-kit/resources/schedules.rb +27 -0
- data/lib/ruote-kit/resources/workitems.rb +93 -31
- data/lib/ruote-kit/spec/ruote_helpers.rb +25 -16
- data/lib/ruote-kit/version.rb +3 -1
- data/lib/ruote-kit/views/_pagination.html.haml +38 -0
- data/lib/ruote-kit/views/_tree_editor.html.haml +52 -0
- data/lib/ruote-kit/views/error.html.haml +69 -0
- data/lib/ruote-kit/views/errors.html.haml +28 -12
- data/lib/ruote-kit/views/expression.html.haml +161 -30
- data/lib/ruote-kit/views/expressions.html.haml +26 -21
- data/lib/ruote-kit/views/http_error.html.haml +11 -0
- data/lib/ruote-kit/views/index.html.haml +4 -0
- data/lib/ruote-kit/views/layout.html.haml +52 -32
- data/lib/ruote-kit/views/participants.html.haml +79 -0
- data/lib/ruote-kit/views/process.html.haml +109 -42
- data/lib/ruote-kit/views/process_launched.html.haml +6 -2
- data/lib/ruote-kit/views/processes.html.haml +55 -24
- data/lib/ruote-kit/views/processes_new.html.haml +36 -0
- data/lib/ruote-kit/views/schedules.html.haml +42 -0
- data/lib/ruote-kit/views/workitem.html.haml +83 -29
- data/lib/ruote-kit/views/workitems.html.haml +42 -19
- data/lib/ruote-kit.rb +17 -88
- data/ruote-kit.gemspec +68 -80
- data/spec/it_has_an_engine.rb +69 -0
- data/spec/resources/errors_spec.rb +198 -270
- data/spec/resources/expressions_spec.rb +308 -52
- data/spec/resources/index_spec.rb +28 -16
- data/spec/resources/participants_spec.rb +102 -0
- data/spec/resources/processes_spec.rb +218 -104
- data/spec/resources/schedules_spec.rb +97 -0
- data/spec/resources/workitems_spec.rb +195 -100
- data/spec/ruote-kit_configure_spec.rb +32 -75
- data/spec/spec.opts +0 -1
- data/spec/spec_helper.rb +31 -92
- data/spec/webapp_helpers_spec.rb +309 -0
- metadata +87 -152
- data/lib/ruote-kit/configuration.rb +0 -83
- data/lib/ruote-kit/helpers/engine_helpers.rb +0 -24
- data/lib/ruote-kit/helpers/form_helpers.rb +0 -11
- data/lib/ruote-kit/helpers/launch_item_parser.rb +0 -59
- data/lib/ruote-kit/helpers/navigation_helpers.rb +0 -54
- data/lib/ruote-kit/helpers.rb +0 -9
- data/lib/ruote-kit/public/_ruote/images/bg.gif +0 -0
- data/lib/ruote-kit/public/_ruote/images/bg_button_left.gif +0 -0
- data/lib/ruote-kit/public/_ruote/images/bg_button_left_cancel.gif +0 -0
- data/lib/ruote-kit/public/_ruote/images/bg_button_left_submit.gif +0 -0
- data/lib/ruote-kit/public/_ruote/images/bg_button_right.gif +0 -0
- data/lib/ruote-kit/public/_ruote/javascripts/SimplyButtons.js +0 -191
- data/lib/ruote-kit/public/_ruote/javascripts/fluo-dial.js +0 -149
- data/lib/ruote-kit/public/_ruote/stylesheets/SimplyButtons.css +0 -226
- data/lib/ruote-kit/public/_ruote/stylesheets/base.css +0 -336
- data/lib/ruote-kit/public/_ruote/stylesheets/style.css +0 -393
- data/lib/ruote-kit/views/launch_process.html.haml +0 -19
- data/lib/ruote-kit/views/process_failed_to_launch.html.haml +0 -7
- data/lib/ruote-kit/views/resource_not_found.html.haml +0 -7
- data/spec/helpers/render_helpers_spec.rb +0 -214
- data/spec/ruote-kit_spec.rb +0 -4
- data/spec/views/expressions.html.haml_spec.rb +0 -31
- data/spec/views/launch_process.html.haml_spec.rb +0 -22
- data/spec/views/process.html.haml_spec.rb +0 -17
- data/spec/views/process_launched.html.haml_spec.rb +0 -16
- data/spec/views/processes.html.haml_spec.rb +0 -31
- data/spec/views/workitems.html.haml_spec.rb +0 -69
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
// Simply Buttons, version 2.0
|
|
2
|
-
// (c) 2007-2009 Kevin Miller
|
|
3
|
-
//
|
|
4
|
-
// This script is freely distributable under the terms of an MIT-style license.
|
|
5
|
-
//
|
|
6
|
-
/*-----------------------------------------------------------------------------------------------*/
|
|
7
|
-
//
|
|
8
|
-
// * Adjusts the buttons so that they will not have an outline when they are pressed.
|
|
9
|
-
// * If the browser is mobile then we replace the buttons with inputs for compatibility.
|
|
10
|
-
// * Disables the text in the buttons from being selected.
|
|
11
|
-
// * The default styles here are meant for use with the Sliding Doors technique http://alistapart.com/articles/slidingdoors/
|
|
12
|
-
// to be used for IE so we can have nice states with a horrid browser too!
|
|
13
|
-
//
|
|
14
|
-
/*-----------------------------------------------------------------------------------------------*/
|
|
15
|
-
|
|
16
|
-
var SimplyButtons = {
|
|
17
|
-
|
|
18
|
-
options : {
|
|
19
|
-
hyperlinkClass : 'button'
|
|
20
|
-
,activeButtonClass : 'button_active'
|
|
21
|
-
,states : {
|
|
22
|
-
outer : {
|
|
23
|
-
active : {
|
|
24
|
-
backgroundPosition : 'bottom left'
|
|
25
|
-
}
|
|
26
|
-
,inactive : {
|
|
27
|
-
backgroundPosition : 'top left'
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
,inner : {
|
|
31
|
-
active : {
|
|
32
|
-
backgroundPosition : 'bottom right'
|
|
33
|
-
}
|
|
34
|
-
,inactive : {
|
|
35
|
-
backgroundPosition : 'top right'
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
,iphone : {
|
|
40
|
-
replaceButtons : true
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
,buttons : []
|
|
45
|
-
|
|
46
|
-
,iphone : false
|
|
47
|
-
|
|
48
|
-
,init : function(options)
|
|
49
|
-
{
|
|
50
|
-
for (var property in options)
|
|
51
|
-
{
|
|
52
|
-
this.options[property] = options[property];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
this.iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i));
|
|
56
|
-
|
|
57
|
-
this.process(document.getElementsByTagName('button'), false);
|
|
58
|
-
this.process(document.getElementsByTagName('a'), true);
|
|
59
|
-
|
|
60
|
-
if (this.iphone && this.options.iphone.replaceButtons)
|
|
61
|
-
{
|
|
62
|
-
this.remove();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
,process : function(elements, links)
|
|
67
|
-
{
|
|
68
|
-
var linkTest = new RegExp('\\b' + this.options.hyperlinkClass + '\\b');
|
|
69
|
-
for (var a = 0; a < elements.length; a++)
|
|
70
|
-
{
|
|
71
|
-
if ((links && linkTest.test(elements[a].className)) || !links)
|
|
72
|
-
{
|
|
73
|
-
if (this.iphone && !links)
|
|
74
|
-
{
|
|
75
|
-
this.mobile(elements[a]);
|
|
76
|
-
}
|
|
77
|
-
else
|
|
78
|
-
{
|
|
79
|
-
this.disable(elements[a]);
|
|
80
|
-
this.setup(elements[a]);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (!links)
|
|
84
|
-
{
|
|
85
|
-
this.buttons.push(elements[a]);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
,mobile : function(element)
|
|
92
|
-
{
|
|
93
|
-
var input = document.createElement('input');
|
|
94
|
-
input.setAttribute('type', element.getAttribute('type') == 'submit' ? 'submit' : 'button');
|
|
95
|
-
|
|
96
|
-
var attributes = new Array('id', 'name', 'value', 'class', 'onclick', 'onmouseover', 'onmouseout', 'onpress', 'onfocus', 'onblur', 'onmouseup', 'onmousedown');
|
|
97
|
-
for (var a = 0; a < attributes.length; a++)
|
|
98
|
-
{
|
|
99
|
-
if (element.getAttribute(attributes[a]))
|
|
100
|
-
{
|
|
101
|
-
input.setAttribute(attributes[a], element.getAttribute(attributes[a]));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
input.style.marginLeft = element.style.marginLeft;
|
|
106
|
-
input.style.marginRight = element.style.marginRight;
|
|
107
|
-
|
|
108
|
-
element.parentNode.insertBefore(input, element);
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
,remove : function()
|
|
113
|
-
{
|
|
114
|
-
for (var a = 0; a < this.buttons.length; a++)
|
|
115
|
-
{
|
|
116
|
-
this.buttons[a].parentNode.removeChild(this.buttons[a]);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
,disable : function(element)
|
|
121
|
-
{
|
|
122
|
-
element.onselectstart = function() { return false; };
|
|
123
|
-
element.style.MozUserSelect = 'none';
|
|
124
|
-
element.style.KhtmlUserSelect = 'none';
|
|
125
|
-
element.style.UserSelect = 'none';
|
|
126
|
-
element.style.cursor = 'default';
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
,setup : function(element)
|
|
130
|
-
{
|
|
131
|
-
if (document.all)
|
|
132
|
-
{
|
|
133
|
-
if (element.tagName == 'BUTTON')
|
|
134
|
-
{
|
|
135
|
-
element.attachEvent('onfocus', this.bind(this.toggle, this, element));
|
|
136
|
-
}
|
|
137
|
-
else
|
|
138
|
-
{
|
|
139
|
-
element.attachEvent('onmousedown', this.bind(this.toggle, this, element));
|
|
140
|
-
}
|
|
141
|
-
element.attachEvent('onmouseup', this.bind(this.toggle, this, element));
|
|
142
|
-
}
|
|
143
|
-
else
|
|
144
|
-
{
|
|
145
|
-
element.onfocus = function() { this.blur(); };
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
,toggle : function(o, element)
|
|
150
|
-
{
|
|
151
|
-
if (element.tagName != 'BUTTON' && element.tagName != 'A')
|
|
152
|
-
{
|
|
153
|
-
while (element.tagName != 'A')
|
|
154
|
-
{
|
|
155
|
-
element = element.parentNode;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (event.type == 'focus' || event.type == 'mousedown')
|
|
159
|
-
{
|
|
160
|
-
element.className += ' ' + o.options.activeButtonClass;
|
|
161
|
-
o.style(element.childNodes[0], o.options.states.inner.active);
|
|
162
|
-
o.style(element.childNodes[0].childNodes[0], o.options.states.outer.active);
|
|
163
|
-
element.blur();
|
|
164
|
-
}
|
|
165
|
-
else
|
|
166
|
-
{
|
|
167
|
-
element.className = element.className.replace(o.options.activeButtonClass, '');
|
|
168
|
-
o.style(element.childNodes[0], o.options.states.inner.inactive);
|
|
169
|
-
o.style(element.childNodes[0].childNodes[0], o.options.states.outer.inactive);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
,style : function(element, styles)
|
|
174
|
-
{
|
|
175
|
-
for (var property in styles)
|
|
176
|
-
{
|
|
177
|
-
element.style[property] = styles[property];
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
,bind : function(func)
|
|
182
|
-
{
|
|
183
|
-
var args = [];
|
|
184
|
-
for (var a = 1; a < arguments.length; a++)
|
|
185
|
-
{
|
|
186
|
-
args.push(arguments[a]);
|
|
187
|
-
}
|
|
188
|
-
return function() { return func.apply(this, args); };
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
};
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/*
|
|
3
|
-
* OpenWFEru - open source ruby workflow and bpm engine
|
|
4
|
-
* (c) 2008 John Mettraux
|
|
5
|
-
*
|
|
6
|
-
* OpenWFEru is freely distributable under the terms
|
|
7
|
-
* of a BSD-style license.
|
|
8
|
-
* For details, see the OpenWFEru web site: http://openwferu.rubyforge.org
|
|
9
|
-
*
|
|
10
|
-
* Made in Japan
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
//
|
|
14
|
-
// example usage :
|
|
15
|
-
//
|
|
16
|
-
// var d = FluoDial.newDialog
|
|
17
|
-
// ("upload new version of expression (as YAML file)", 500, 105);
|
|
18
|
-
//
|
|
19
|
-
// var f = new Element
|
|
20
|
-
// ("form", { "method": "POST", "enctype": "multipart/form-data" });
|
|
21
|
-
// var fi = new Element
|
|
22
|
-
// ("input", { "type": "file", "name": "expression", "size": "50" });
|
|
23
|
-
// var si = new Element
|
|
24
|
-
// ("input", { "type": "submit", "value": "upload" });
|
|
25
|
-
// f.appendChild(fi);
|
|
26
|
-
// f.appendChild(si);
|
|
27
|
-
// d.body.appendChild(f);
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
var FluoDial = function() {
|
|
31
|
-
|
|
32
|
-
//
|
|
33
|
-
// private methods
|
|
34
|
-
|
|
35
|
-
function resizeItem (id, width, height) {
|
|
36
|
-
var item = $(id);
|
|
37
|
-
item.setStyle({ "width": ""+width+"px" });
|
|
38
|
-
item.setStyle({ "height": ""+height+"px" });
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function centerItem (id) {
|
|
42
|
-
|
|
43
|
-
var item = $(id);
|
|
44
|
-
|
|
45
|
-
var w = item.getDimensions()["width"];
|
|
46
|
-
var h = item.getDimensions()["height"];
|
|
47
|
-
|
|
48
|
-
if (centerItem.arguments.length > 1) {
|
|
49
|
-
w = centerItem.arguments[1];
|
|
50
|
-
h = centerItem.arguments[2];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var l = (window.innerWidth - w) / 2;
|
|
54
|
-
var t = (window.innerHeight - h) / 2;
|
|
55
|
-
|
|
56
|
-
item.setStyle({ "left": ""+l+"px" });
|
|
57
|
-
item.setStyle({ "top": ""+t+"px" });
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function resizeAndCenterItem (id, width, height) {
|
|
61
|
-
|
|
62
|
-
resizeItem(id, width, height);
|
|
63
|
-
centerItem(id, width, height);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function newRectangle (id, cclass, width, height) {
|
|
67
|
-
|
|
68
|
-
var r = $(id);
|
|
69
|
-
|
|
70
|
-
if (r) {
|
|
71
|
-
r.childElements().each(function (elt) {
|
|
72
|
-
elt.remove();
|
|
73
|
-
});
|
|
74
|
-
r.show();
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
r = new Element("div", { "id": id, "class": cclass });
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
resizeAndCenterItem(r, width, height);
|
|
81
|
-
|
|
82
|
-
return r;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function newDialog (title, width, height) {
|
|
86
|
-
|
|
87
|
-
var sheet = newRectangle
|
|
88
|
-
("dial_sheet", "dial_sheet", width, height);
|
|
89
|
-
var dialog = newRectangle
|
|
90
|
-
("dial_dialog", "dial_dialog", width-20, height-20);
|
|
91
|
-
|
|
92
|
-
document.body.appendChild(sheet);
|
|
93
|
-
document.body.appendChild(dialog);
|
|
94
|
-
|
|
95
|
-
var header = new Element
|
|
96
|
-
("div", { "class": "dial_header" });
|
|
97
|
-
var body = new Element
|
|
98
|
-
("div", { "id": dialog.id+"_body", "class": "dial_body" });
|
|
99
|
-
|
|
100
|
-
dialog.appendChild(header);
|
|
101
|
-
dialog.appendChild(body);
|
|
102
|
-
|
|
103
|
-
dialog.header = header;
|
|
104
|
-
dialog.body = body;
|
|
105
|
-
|
|
106
|
-
dialog.close = function () {
|
|
107
|
-
sheet.hide();
|
|
108
|
-
dialog.hide();
|
|
109
|
-
};
|
|
110
|
-
dialog.show = function () {
|
|
111
|
-
sheet.show();
|
|
112
|
-
dialog.show();
|
|
113
|
-
};
|
|
114
|
-
dialog.resize = function (w, h) {
|
|
115
|
-
resizeAndCenterItem(sheet, w, h);
|
|
116
|
-
resizeAndCenterItem(dialog, w-20, h-20);
|
|
117
|
-
};
|
|
118
|
-
dialog.stealElement = function (el) {
|
|
119
|
-
if ( ! (el instanceof HTMLElement)) el = document.getElementById(el);
|
|
120
|
-
this.body.appendChild(el);
|
|
121
|
-
//el.parentNode = dialog.body;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
var htitle = new Element("div", { "class": "dial_title" });
|
|
125
|
-
htitle.appendChild(document.createTextNode(title));
|
|
126
|
-
header.appendChild(htitle);
|
|
127
|
-
|
|
128
|
-
var hmenu = new Element("div", { "class": "dial_menu" });
|
|
129
|
-
var hclose = new Element
|
|
130
|
-
("a",
|
|
131
|
-
{ "href": "#",
|
|
132
|
-
"title": "close this dialog",
|
|
133
|
-
"onclick": "$('dial_dialog').close(); return false;" });
|
|
134
|
-
hclose.innerHTML = "close";
|
|
135
|
-
hmenu.appendChild(hclose);
|
|
136
|
-
header.appendChild(hmenu);
|
|
137
|
-
|
|
138
|
-
return dialog;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return {
|
|
142
|
-
|
|
143
|
-
//
|
|
144
|
-
// public methods
|
|
145
|
-
|
|
146
|
-
newDialog: newDialog
|
|
147
|
-
};
|
|
148
|
-
}();
|
|
149
|
-
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/*--------------------------------------------------------------------------------------------------
|
|
2
|
-
|
|
3
|
-
Simply Buttons, version 1.0
|
|
4
|
-
(c) 2007-2009 Kevin Miller
|
|
5
|
-
|
|
6
|
-
This script is freely distributable under the terms of an MIT-style license.
|
|
7
|
-
|
|
8
|
-
BUTTON DEFINITIONS
|
|
9
|
-
|
|
10
|
-
Edit below at your own risk, everything done here is for a reason for cross browser
|
|
11
|
-
compatibility so that the buttons will appear identical in the tested browsers.
|
|
12
|
-
|
|
13
|
-
Tested on: IE6 IE7 FF(PC/MAC) Safari SafariMobile Opera(PC/MAC)
|
|
14
|
-
|
|
15
|
-
--------------------------------------------------------------------------------------------------*/
|
|
16
|
-
|
|
17
|
-
button,
|
|
18
|
-
a.button,
|
|
19
|
-
a.button:link,
|
|
20
|
-
a.button:visited {
|
|
21
|
-
/*
|
|
22
|
-
Strip down the button and link elements to a base we can work with.
|
|
23
|
-
*/
|
|
24
|
-
padding: 0 0 0 0;
|
|
25
|
-
margin: 0 3px 0 3px;
|
|
26
|
-
border: none;
|
|
27
|
-
display: block;
|
|
28
|
-
float: left;
|
|
29
|
-
cursor: pointer;
|
|
30
|
-
text-decoration: none;
|
|
31
|
-
outline: none;
|
|
32
|
-
white-space: nowrap;
|
|
33
|
-
overflow: visible;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
* html a.button,
|
|
37
|
-
* html a.button:link,
|
|
38
|
-
* html a.button:visited {
|
|
39
|
-
/*
|
|
40
|
-
IE6 fix to make link fit text.
|
|
41
|
-
*/
|
|
42
|
-
width: 1%;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
button, x:-moz-any-link {
|
|
46
|
-
/*
|
|
47
|
-
FF fix to make button spacing even across browsers.
|
|
48
|
-
*/
|
|
49
|
-
margin: 0 0 0 0;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
*:first-child+html button {
|
|
53
|
-
/*
|
|
54
|
-
Reset IE7 back to what it was for previous fix.
|
|
55
|
-
*/
|
|
56
|
-
margin: 0 3px 0 3px;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
button span,
|
|
60
|
-
a.button span,
|
|
61
|
-
a.button:link span,
|
|
62
|
-
a.button:visited span {
|
|
63
|
-
/*
|
|
64
|
-
Set the span tags to display: block, as they will work our background-image magic.
|
|
65
|
-
*/
|
|
66
|
-
display: block;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/*--------------------------------------------------------------------------------------------------
|
|
70
|
-
|
|
71
|
-
CUSTOMIZATIONS
|
|
72
|
-
|
|
73
|
-
Edit below to change the look and feel of the buttons and even add more classes for
|
|
74
|
-
different looks and feels.
|
|
75
|
-
|
|
76
|
-
--------------------------------------------------------------------------------------------------*/
|
|
77
|
-
|
|
78
|
-
button,
|
|
79
|
-
a.button,
|
|
80
|
-
a.button:link,
|
|
81
|
-
a.button:visited {
|
|
82
|
-
/*
|
|
83
|
-
HEIGHT - Total height of button.
|
|
84
|
-
*/
|
|
85
|
-
height: 26px;
|
|
86
|
-
|
|
87
|
-
/*
|
|
88
|
-
NOTE - You must define the font here otherwise your buttons and links could end up diffrent.
|
|
89
|
-
*/
|
|
90
|
-
font-family: "Helvetica Neue", Helvetica, clean, sans-serif;
|
|
91
|
-
|
|
92
|
-
font-size: 13px;
|
|
93
|
-
color: #666666;
|
|
94
|
-
background-color: #ffffff;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
button.button_active,
|
|
98
|
-
a.button_active {
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
button span,
|
|
102
|
-
a.button span,
|
|
103
|
-
a.button:link span,
|
|
104
|
-
a.button:visited span {
|
|
105
|
-
/*
|
|
106
|
-
Right side padding for button (default).
|
|
107
|
-
*/
|
|
108
|
-
padding: 0 14px 0 0;
|
|
109
|
-
|
|
110
|
-
/*
|
|
111
|
-
SPAN HEIGHT - This should be 2px smaller than the height set on the button (see HEIGHT).
|
|
112
|
-
*/
|
|
113
|
-
height: 24px;
|
|
114
|
-
|
|
115
|
-
/*
|
|
116
|
-
We define our background top left and use the 'Sliding Doors' Technique for some fast loading buttons.
|
|
117
|
-
*/
|
|
118
|
-
background: url(../images/bg_button_right.gif) top right;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
button span span,
|
|
122
|
-
a.button span span,
|
|
123
|
-
a.button:link span span,
|
|
124
|
-
a.button:visited span span {
|
|
125
|
-
/*
|
|
126
|
-
Left side padding for button (default).
|
|
127
|
-
*/
|
|
128
|
-
padding: 0 0 0 13px;
|
|
129
|
-
|
|
130
|
-
/*
|
|
131
|
-
SPAN HEIGHT - This should be 1px smaller than the height set on the button (see HEIGHT).
|
|
132
|
-
*/
|
|
133
|
-
height: 24px;
|
|
134
|
-
|
|
135
|
-
/*
|
|
136
|
-
SPAN LINE-HEIGHT - This should be 1px smaller than the height set on the button (see HEIGHT) and will
|
|
137
|
-
center the text vertcailly.
|
|
138
|
-
*/
|
|
139
|
-
line-height: 24px;
|
|
140
|
-
|
|
141
|
-
/*
|
|
142
|
-
We define our background top left and use the 'Sliding Doors' Technique for some fast loading buttons.
|
|
143
|
-
*/
|
|
144
|
-
background: url(../images/bg_button_left.gif) top left;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
button:hover,
|
|
148
|
-
a.button:hover {
|
|
149
|
-
color: #000000;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
button.submit span,
|
|
153
|
-
a.submit span,
|
|
154
|
-
a.submit:link span,
|
|
155
|
-
a.submit:visited span {
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
button.submit span span,
|
|
159
|
-
a.submit span span,
|
|
160
|
-
a.submit:link span span,
|
|
161
|
-
a.submit:visited span span {
|
|
162
|
-
/*
|
|
163
|
-
Give some extra space for the icon.
|
|
164
|
-
*/
|
|
165
|
-
padding-left: 26px;
|
|
166
|
-
|
|
167
|
-
/*
|
|
168
|
-
Add in a left side piece with an icon.
|
|
169
|
-
*/
|
|
170
|
-
background-image: url(../images/bg_button_left_submit.gif);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
button.submit:hover,
|
|
174
|
-
a.submit:hover {
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
button.cancel span,
|
|
178
|
-
a.cancel span,
|
|
179
|
-
a.cancel:link span,
|
|
180
|
-
a.cancel:visited span {
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
button.cancel span span,
|
|
184
|
-
a.cancel span span,
|
|
185
|
-
a.cancel:link span span,
|
|
186
|
-
a.cancel:visited span span {
|
|
187
|
-
/*
|
|
188
|
-
Give some extra space for the icon.
|
|
189
|
-
*/
|
|
190
|
-
padding-left: 26px;
|
|
191
|
-
|
|
192
|
-
/*
|
|
193
|
-
Add in a left side piece with an icon.
|
|
194
|
-
*/
|
|
195
|
-
background-image: url(../images/bg_button_left_cancel.gif);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
button.cancel:hover,
|
|
199
|
-
a.cancel:hover {
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
button:active span,
|
|
203
|
-
a:active:active span,
|
|
204
|
-
/*
|
|
205
|
-
'button_active' is the class used by SimplyButtons.js to create the button states in IE.
|
|
206
|
-
*/
|
|
207
|
-
button.button_active span,
|
|
208
|
-
a.button_active:active span {
|
|
209
|
-
/*
|
|
210
|
-
Using the 'Sliding Doors' Technique we 'slide' the new button state into view.
|
|
211
|
-
*/
|
|
212
|
-
background-position: bottom right;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
button:active span span,
|
|
216
|
-
a:active:active span span,
|
|
217
|
-
/*
|
|
218
|
-
'button_active' is the class used by SimplyButtons.js to create the button states in IE.
|
|
219
|
-
*/
|
|
220
|
-
button.button_active span span,
|
|
221
|
-
a.button_active:active span span {
|
|
222
|
-
/*
|
|
223
|
-
Using the 'Sliding Doors' Technique we 'slide' the new button state into view.
|
|
224
|
-
*/
|
|
225
|
-
background-position: bottom left;
|
|
226
|
-
}
|