ymdp 0.1.10 → 0.1.11
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/Gemfile +8 -1
- data/History.txt +13 -2
- data/Rakefile +7 -0
- data/VERSION +1 -1
- data/features/data/app/assets/yrb/en-US/keys_en-US.pres +1 -0
- data/features/data/app/javascripts/application.js +7 -0
- data/features/data/app/stylesheets/application.css +3 -0
- data/features/data/app/views/layouts/application.html.haml +25 -0
- data/features/data/app/views/page.html.haml +2 -0
- data/{spec → features}/data/config/config.yml +5 -6
- data/features/data/config/content.yml +2 -0
- data/features/data/config/jslint.js +1 -0
- data/features/data/config/servers.yml +10 -0
- data/features/step_definitions/ymdp_steps.rb +54 -0
- data/features/support/env.rb +40 -0
- data/features/ymdp.feature +61 -0
- data/lib/ymdp.rb +7 -12
- data/lib/ymdp/base.rb +16 -65
- data/lib/ymdp/commands/generate.rb +2 -4
- data/lib/ymdp/compiler/base.rb +10 -8
- data/lib/ymdp/compiler/domains.rb +2 -1
- data/lib/ymdp/compiler/template.rb +29 -18
- data/lib/ymdp/{processor → compressor}/compressor.rb +6 -1
- data/{spec/data/script → lib/ymdp/compressor}/yuicompressor-2.4.2.jar +0 -0
- data/lib/ymdp/configuration/config.rb +3 -4
- data/lib/ymdp/configuration/constants.rb +22 -19
- data/lib/ymdp/tasks/ymdp.rake +0 -2
- data/{spec/data/script → lib/ymdp/validator}/jslint.js +0 -0
- data/lib/ymdp/{processor → validator}/validator.rb +30 -38
- data/lib/ymdp/{application.rb → view/application.rb} +0 -0
- data/lib/ymdp/{application_view.rb → view/application_view.rb} +4 -4
- data/lib/ymdp/{asset_tag_helper.rb → view/asset_tag_helper.rb} +0 -0
- data/lib/ymdp/{tag_helper.rb → view/tag_helper.rb} +0 -0
- data/spec/application_spec.rb +2 -0
- data/spec/application_view_spec.rb +6 -6
- data/spec/compiler_template_spec.rb +4 -4
- data/spec/compressor_spec.rb +11 -7
- data/spec/configuration_spec.rb +3 -0
- data/spec/default_settings.rb +1 -1
- data/spec/domains_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/stubs.rb +4 -1
- data/spec/validator_spec.rb +45 -40
- data/spec/ymdp_base_spec.rb +10 -7
- data/ymdp.gemspec +25 -76
- metadata +32 -76
- data/lib/ymdp/processor/form_post.rb +0 -62
- data/lib/ymdp/processor/w3c.rb +0 -24
- data/spec/data/Rakefile +0 -3
- data/spec/data/VERSION +0 -1
- data/spec/data/app/.gitignore +0 -1
- data/spec/data/app/assets/images/lightbox/lightbox_bg.png +0 -0
- data/spec/data/app/assets/javascripts/OpenMailIntl.js +0 -291
- data/spec/data/app/assets/javascripts/controls.js +0 -965
- data/spec/data/app/assets/javascripts/date.js +0 -104
- data/spec/data/app/assets/javascripts/dragdrop.js +0 -974
- data/spec/data/app/assets/javascripts/effects.js +0 -1123
- data/spec/data/app/assets/javascripts/lowpro.js +0 -320
- data/spec/data/app/assets/javascripts/prototype.js +0 -4874
- data/spec/data/app/assets/javascripts/scriptaculous.js +0 -68
- data/spec/data/app/assets/yrb/en-US/application_en-US.pres +0 -7
- data/spec/data/app/helpers/application_helper.rb +0 -3
- data/spec/data/app/javascripts/application.js +0 -580
- data/spec/data/app/javascripts/debug.js +0 -138
- data/spec/data/app/javascripts/flash.js +0 -96
- data/spec/data/app/javascripts/header.js +0 -13
- data/spec/data/app/javascripts/help.js +0 -76
- data/spec/data/app/javascripts/i18n.js +0 -235
- data/spec/data/app/javascripts/launcher.js +0 -159
- data/spec/data/app/javascripts/logger.js +0 -61
- data/spec/data/app/javascripts/tag_helper.js +0 -178
- data/spec/data/app/stylesheets/application.css +0 -0
- data/spec/data/app/stylesheets/ie.css +0 -0
- data/spec/data/app/stylesheets/ie6.css +0 -0
- data/spec/data/app/stylesheets/ie7.css +0 -0
- data/spec/data/app/stylesheets/ie8.css +0 -0
- data/spec/data/app/stylesheets/lightbox.css +0 -30
- data/spec/data/app/stylesheets/non_ie.css +0 -0
- data/spec/data/app/views/layouts/application.html.haml +0 -37
- data/spec/data/app/views/page.html.haml +0 -1
- data/spec/data/app/views/shared/_error.html.haml +0 -8
- data/spec/data/app/views/shared/_flash.html.haml +0 -2
- data/spec/data/app/views/shared/_javascripts.html.haml +0 -22
- data/spec/data/app/views/shared/_loading.html.haml +0 -13
- data/spec/data/app/views/shared/_stylesheets.html.haml +0 -23
- data/spec/data/config/categories.yml +0 -6
- data/spec/data/config/config.yml.example +0 -30
- data/spec/data/config/constants.rb +0 -52
- data/spec/data/config/content.yml +0 -2
- data/spec/data/config/servers.yml +0 -10
- data/spec/data/config/servers.yml.example +0 -10
- data/spec/data/lib/init.rb +0 -13
- data/spec/data/lib/tasks/environment.rake +0 -4
- data/spec/data/lib/tasks/keys.rake +0 -3
- data/spec/data/lib/tasks/setup.rake +0 -13
- data/spec/data/lib/tasks/ymdp.rake +0 -4
- data/spec/data/script/build +0 -9
- data/spec/data/script/config +0 -13
- data/spec/data/script/destroy +0 -18
- data/spec/data/script/generate +0 -4
- data/spec/data/script/gitrm +0 -17
- data/spec/data/script/growl +0 -6
- data/spec/data/script/images +0 -48
- data/spec/data/script/langs +0 -29
- data/spec/data/script/translate +0 -5
- data/spec/data/script/ymdt +0 -1895
- data/spec/data/script/ymdt.old +0 -1890
- data/test.rb +0 -46
@@ -1,159 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
LAUNCHING
|
3
|
-
|
4
|
-
global to every view. launches new views and closes the current one.
|
5
|
-
*/
|
6
|
-
|
7
|
-
/* set asset version */
|
8
|
-
|
9
|
-
var LAUNCHER, Launcher;
|
10
|
-
|
11
|
-
LAUNCHER = {
|
12
|
-
VERSION: "<%= @hash %>",
|
13
|
-
MESSAGE: "<%= @message %>",
|
14
|
-
DEPLOYED: <%= Time.now.to_i %>,
|
15
|
-
DEPLOYED_STRING: "<%= Time.now.to_s %>"
|
16
|
-
};
|
17
|
-
|
18
|
-
YAHOO.namespace("launcher");
|
19
|
-
|
20
|
-
|
21
|
-
YAHOO.launcher.launch = function(view, title, type) {
|
22
|
-
openmail.Application.getParameters(function(response) {
|
23
|
-
title = I18n.t("ORGANIZER");
|
24
|
-
// don't try to relaunch current tab
|
25
|
-
if (response.data === null || response.data.view !== view) {
|
26
|
-
openmail.Application.openView(
|
27
|
-
{
|
28
|
-
id: view,
|
29
|
-
view: view,
|
30
|
-
target: type,
|
31
|
-
title: title,
|
32
|
-
parameters: {
|
33
|
-
view: view
|
34
|
-
}
|
35
|
-
});
|
36
|
-
openmail.Application.closeView(null);
|
37
|
-
}
|
38
|
-
});
|
39
|
-
};
|
40
|
-
|
41
|
-
|
42
|
-
YAHOO.launcher.launchTab = function(view, title) {
|
43
|
-
Try.these(function () {
|
44
|
-
var translated_title;
|
45
|
-
translated_title = I18n.t(title);
|
46
|
-
|
47
|
-
if (translated_title) {
|
48
|
-
title = translated_title;
|
49
|
-
title[0] = title[0].capitalize();
|
50
|
-
}
|
51
|
-
|
52
|
-
});
|
53
|
-
YAHOO.launcher.launch(view, title, "tab");
|
54
|
-
};
|
55
|
-
|
56
|
-
// User must be signed in for this page, we'll
|
57
|
-
// sign them in if they don't have an OIB cookie
|
58
|
-
//
|
59
|
-
YAHOO.launcher.launchActiveTab = function(view, title) {
|
60
|
-
YAHOO.launcher.launchView(function() {
|
61
|
-
YAHOO.launcher.launchTab(view, title);
|
62
|
-
});
|
63
|
-
};
|
64
|
-
|
65
|
-
|
66
|
-
YAHOO.launcher.launchView = function(launch_view) {
|
67
|
-
// get Yahoo! user's guid and ymail_wssid
|
68
|
-
YAHOO.oib.getGuidAndYmailWssid(function(guid, ymail_wssid) {
|
69
|
-
|
70
|
-
// call /ymdp/verify and return data about the user
|
71
|
-
YAHOO.oib.verifyUser(function(user) {
|
72
|
-
|
73
|
-
// YAHOO.logger.info("Called switcher in state '" + YAHOO.constants.states[user.state] + "'");
|
74
|
-
|
75
|
-
YAHOO.oib.login = user.login;
|
76
|
-
var state;
|
77
|
-
state = parseInt(user.state, 10);
|
78
|
-
|
79
|
-
switch(YAHOO.constants.states[user.state]) {
|
80
|
-
case "inspect":
|
81
|
-
// inspect
|
82
|
-
|
83
|
-
// launch_view();
|
84
|
-
YAHOO.launcher.launchInspect();
|
85
|
-
break;
|
86
|
-
case "authorized":
|
87
|
-
// authorized but not yet 'signed in'
|
88
|
-
YAHOO.oib.signInUser();
|
89
|
-
break;
|
90
|
-
case "new_active":
|
91
|
-
// no messages processed yet
|
92
|
-
case "processing":
|
93
|
-
// activated but we have synced fewer than 80% of their messages
|
94
|
-
case "active":
|
95
|
-
// active, launch the view this method was intended for
|
96
|
-
launch_view();
|
97
|
-
break;
|
98
|
-
// case "inactive":
|
99
|
-
// inactive
|
100
|
-
default:
|
101
|
-
// other
|
102
|
-
YAHOO.launcher.launchAuthorize();
|
103
|
-
}
|
104
|
-
});
|
105
|
-
});
|
106
|
-
};
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
YAHOO.launcher.launchIdentity = function() {
|
111
|
-
YAHOO.launcher.launchActiveTab("identity", "My Account");
|
112
|
-
};
|
113
|
-
|
114
|
-
YAHOO.launcher.launchSettings = function() {
|
115
|
-
YAHOO.launcher.launchActiveTab("settings", "Settings");
|
116
|
-
// YAHOO.launcher.launchActiveTab("goodbye", "Settings");
|
117
|
-
};
|
118
|
-
|
119
|
-
YAHOO.launcher.launchInspect = function() {
|
120
|
-
YAHOO.launcher.launchTab("inspect", "Inspect");
|
121
|
-
};
|
122
|
-
|
123
|
-
YAHOO.launcher.launchAuthorize = function() {
|
124
|
-
YAHOO.launcher.launchTab("authorize", "Authorize");
|
125
|
-
};
|
126
|
-
|
127
|
-
YAHOO.launcher.launchDeactivate = function() {
|
128
|
-
YAHOO.launcher.launchHidden("deactivate", "Deactivate");
|
129
|
-
};
|
130
|
-
|
131
|
-
YAHOO.launcher.launchHidden = function(view, title) {
|
132
|
-
YAHOO.launcher.launch(view, title, "hidden");
|
133
|
-
};
|
134
|
-
|
135
|
-
YAHOO.launcher.l = function(view) {
|
136
|
-
view = "launch" + view.capitalize();
|
137
|
-
YAHOO.launcher[view]();
|
138
|
-
};
|
139
|
-
|
140
|
-
YAHOO.launcher.launchStatistics = function() {
|
141
|
-
YAHOO.launcher.launchTab("statistics", "Statistics");
|
142
|
-
};
|
143
|
-
|
144
|
-
YAHOO.launcher.launchGoodbye = function() {
|
145
|
-
YAHOO.launcher.launchTab("goodbye", "Goodbye");
|
146
|
-
};
|
147
|
-
|
148
|
-
YAHOO.launcher.relaunchAuthorize = YAHOO.launcher.launchAuthorize;
|
149
|
-
|
150
|
-
YAHOO.launcher.launchMaintenance = function() {
|
151
|
-
YAHOO.launcher.launchTab("maintenance", "Maintenance");
|
152
|
-
};
|
153
|
-
|
154
|
-
YAHOO.launcher.launchReauthorize = function() {
|
155
|
-
YAHOO.launcher.launchTab("reauthorize", "Reauthorize");
|
156
|
-
};
|
157
|
-
|
158
|
-
Launcher = YAHOO.launcher;
|
159
|
-
|
@@ -1,61 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
YMDP LOGGER
|
3
|
-
|
4
|
-
Send logging messages to OIB.
|
5
|
-
|
6
|
-
Messages are saved in log/ymdp.log
|
7
|
-
|
8
|
-
*/
|
9
|
-
|
10
|
-
|
11
|
-
/* set asset version */
|
12
|
-
|
13
|
-
var LOGGER, Logger;
|
14
|
-
|
15
|
-
LOGGER = {
|
16
|
-
VERSION: "<%= @hash %>",
|
17
|
-
MESSAGE: "<%= @message %>",
|
18
|
-
DEPLOYED: <%= Time.now.to_i %>,
|
19
|
-
DEPLOYED_STRING: "<%= Time.now.to_s %>"
|
20
|
-
};
|
21
|
-
|
22
|
-
YAHOO.namespace("logger");
|
23
|
-
|
24
|
-
YAHOO.logger.write = function(level, message) {
|
25
|
-
if (YAHOO.oib.login !== undefined) {
|
26
|
-
message = "[login: " + YAHOO.oib.login + "] " + message;
|
27
|
-
}
|
28
|
-
if (YAHOO.oib.guid !== undefined) {
|
29
|
-
message = "[guid: " + YAHOO.oib.guid + "] " + message;
|
30
|
-
}
|
31
|
-
YAHOO.oib.callOIB("ymdp/log",
|
32
|
-
{
|
33
|
-
level: level,
|
34
|
-
message: message,
|
35
|
-
method: "POST"
|
36
|
-
},
|
37
|
-
function() {
|
38
|
-
// log message written successfully
|
39
|
-
});
|
40
|
-
};
|
41
|
-
|
42
|
-
YAHOO.logger.debug = function(message) {
|
43
|
-
YAHOO.logger.write("debug", message);
|
44
|
-
};
|
45
|
-
YAHOO.logger.info = function(message) {
|
46
|
-
YAHOO.logger.write("info", message);
|
47
|
-
};
|
48
|
-
YAHOO.logger.warn = function(message) {
|
49
|
-
YAHOO.logger.write("warn", message);
|
50
|
-
};
|
51
|
-
YAHOO.logger.error = function(message) {
|
52
|
-
YAHOO.logger.write("warn", message);
|
53
|
-
};
|
54
|
-
YAHOO.logger.fatal = function(message) {
|
55
|
-
YAHOO.logger.write("fatal", message);
|
56
|
-
};
|
57
|
-
|
58
|
-
|
59
|
-
Logger = YAHOO.logger;
|
60
|
-
|
61
|
-
// END YMDP LOGGER
|
@@ -1,178 +0,0 @@
|
|
1
|
-
/* TAG HELPERS */
|
2
|
-
|
3
|
-
var Tags;
|
4
|
-
|
5
|
-
function tagHelper(tag_name, text, options) {
|
6
|
-
var m, opts;
|
7
|
-
|
8
|
-
m = "";
|
9
|
-
opts = "";
|
10
|
-
|
11
|
-
Object.keys(options).each(function(key) {
|
12
|
-
opts = opts + " " + key + "='" + options[key] + "'";
|
13
|
-
});
|
14
|
-
|
15
|
-
m = m + "<" + tag_name + " " + opts + ">";
|
16
|
-
m = m + text;
|
17
|
-
m = m + "<\/" + tag_name + ">";
|
18
|
-
return m;
|
19
|
-
}
|
20
|
-
|
21
|
-
function optionTag(text, options) {
|
22
|
-
return tagHelper("option", text, options);
|
23
|
-
}
|
24
|
-
|
25
|
-
function selectTag(text, options) {
|
26
|
-
return tagHelper("select", text, options);
|
27
|
-
}
|
28
|
-
|
29
|
-
function spanTag(text, options) {
|
30
|
-
return tagHelper("span", text, options);
|
31
|
-
}
|
32
|
-
|
33
|
-
function liTag(text, options) {
|
34
|
-
return tagHelper("li", text, options);
|
35
|
-
}
|
36
|
-
|
37
|
-
function divTag(text, options) {
|
38
|
-
return tagHelper("div", text, options);
|
39
|
-
}
|
40
|
-
|
41
|
-
function tdTag(text, options) {
|
42
|
-
return tagHelper("td", text, options);
|
43
|
-
}
|
44
|
-
|
45
|
-
function inputTag(value, options) {
|
46
|
-
options['value'] = value;
|
47
|
-
return tagHelper("input", "", options);
|
48
|
-
}
|
49
|
-
|
50
|
-
function textField(value, options) {
|
51
|
-
return inputTag(value, options);
|
52
|
-
}
|
53
|
-
|
54
|
-
function submitTag(value, options) {
|
55
|
-
options['type'] = 'submit';
|
56
|
-
return inputTag(value, options);
|
57
|
-
}
|
58
|
-
|
59
|
-
function optionsForSelect(options, selected) {
|
60
|
-
var m;
|
61
|
-
m = "";
|
62
|
-
options.each(function(option) {
|
63
|
-
var key, value, opts;
|
64
|
-
|
65
|
-
if (Object.isArray(option)) {
|
66
|
-
key = option[0];
|
67
|
-
value = option[1];
|
68
|
-
} else {
|
69
|
-
key = option;
|
70
|
-
value = option;
|
71
|
-
}
|
72
|
-
|
73
|
-
opts = {
|
74
|
-
value: value
|
75
|
-
};
|
76
|
-
|
77
|
-
if (key === selected) {
|
78
|
-
opts.selected = 'selected';
|
79
|
-
}
|
80
|
-
|
81
|
-
m = m + optionTag(key, opts);
|
82
|
-
});
|
83
|
-
return m;
|
84
|
-
}
|
85
|
-
|
86
|
-
Tags = {
|
87
|
-
create: function(tag_name, text, options) {
|
88
|
-
options = options || {};
|
89
|
-
var m, opts;
|
90
|
-
|
91
|
-
m = "";
|
92
|
-
opts = "";
|
93
|
-
|
94
|
-
Object.keys(options).each(function(key) {
|
95
|
-
if (options[key]) {
|
96
|
-
opts = opts + " " + key + "='" + options[key] + "'";
|
97
|
-
}
|
98
|
-
});
|
99
|
-
|
100
|
-
m = m + "<" + tag_name + " " + opts + ">";
|
101
|
-
m = m + text;
|
102
|
-
m = m + "<\/" + tag_name + ">";
|
103
|
-
return m;
|
104
|
-
},
|
105
|
-
|
106
|
-
input: function(value, options) {
|
107
|
-
options = options || {};
|
108
|
-
options["value"] = value;
|
109
|
-
options["name"] = options["name"] || "";
|
110
|
-
options["id"] = options["id"] || options["name"];
|
111
|
-
|
112
|
-
return Tags.create("input", "", options);
|
113
|
-
},
|
114
|
-
|
115
|
-
hiddenInput: function(value, options) {
|
116
|
-
options = options || {};
|
117
|
-
options["type"] = "hidden";
|
118
|
-
return Tags.input(value, options);
|
119
|
-
},
|
120
|
-
|
121
|
-
checkBox: function(name, options) {
|
122
|
-
options = options || {};
|
123
|
-
var check_box, hidden_options, hidden_check_box;
|
124
|
-
|
125
|
-
options["type"] = "checkbox";
|
126
|
-
options["name"] = name;
|
127
|
-
|
128
|
-
if (options["checked"]) {
|
129
|
-
options["checked"] = "checked";
|
130
|
-
} else {
|
131
|
-
options["checked"] = undefined;
|
132
|
-
}
|
133
|
-
|
134
|
-
check_box = Tags.input("1", options);
|
135
|
-
|
136
|
-
hidden_options = {
|
137
|
-
"name": name
|
138
|
-
};
|
139
|
-
hidden_check_box = Tags.hiddenInput("0", hidden_options);
|
140
|
-
|
141
|
-
return check_box + " " + hidden_check_box;
|
142
|
-
},
|
143
|
-
|
144
|
-
submit: function(value, options) {
|
145
|
-
options = options || {};
|
146
|
-
options["value"] = value;
|
147
|
-
options["id"] = options["id"] || options["name"];
|
148
|
-
options["type"] = "submit";
|
149
|
-
return Tags.input(value, options);
|
150
|
-
},
|
151
|
-
|
152
|
-
linkToFunction: function(value, onclick, options) {
|
153
|
-
options = options || {};
|
154
|
-
var jv;
|
155
|
-
|
156
|
-
jv = "#";
|
157
|
-
options["href"] = options["href"] || jv;
|
158
|
-
options["onclick"] = onclick;
|
159
|
-
return Tags.a(value, options);
|
160
|
-
},
|
161
|
-
|
162
|
-
div: function(text, options) {
|
163
|
-
return new Element('div', options).update(text);
|
164
|
-
},
|
165
|
-
|
166
|
-
init: function() {
|
167
|
-
$w("li ul span div p a option select strong").each(function(tag_name) {
|
168
|
-
Tags[tag_name] = function(text, options) {
|
169
|
-
options = options || {};
|
170
|
-
return Tags.create(tag_name, text, options);
|
171
|
-
};
|
172
|
-
});
|
173
|
-
}
|
174
|
-
};
|
175
|
-
|
176
|
-
Tags.init();
|
177
|
-
|
178
|
-
/* END TAG HELPERS */
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,30 +0,0 @@
|
|
1
|
-
.lightbox-wrapper {
|
2
|
-
background: transparent url('<%= @assets_directory %>/images/lightbox/lightbox_bg.png') 0 100% repeat;
|
3
|
-
position: fixed;
|
4
|
-
top: 0;
|
5
|
-
left: 0;
|
6
|
-
width: 100%;
|
7
|
-
height: 100%;
|
8
|
-
z-index: 10000;
|
9
|
-
}
|
10
|
-
|
11
|
-
.lightbox-container {
|
12
|
-
background-color: #fff;
|
13
|
-
margin: auto;
|
14
|
-
margin-top: 25px;
|
15
|
-
padding: 10px;
|
16
|
-
}
|
17
|
-
|
18
|
-
.lightbox-contents {
|
19
|
-
height: 100%;
|
20
|
-
width: 100%;
|
21
|
-
margin: auto;
|
22
|
-
text-align: center;
|
23
|
-
}
|
24
|
-
|
25
|
-
.close_link {
|
26
|
-
font-size: 14px;
|
27
|
-
text-align: right;
|
28
|
-
margin-top: -10px;
|
29
|
-
margin-right: 4px;
|
30
|
-
}
|
File without changes
|
@@ -1,37 +0,0 @@
|
|
1
|
-
!!!
|
2
|
-
%html
|
3
|
-
%head
|
4
|
-
/
|
5
|
-
= "Sprint #{@version} #{@sprint_name}"
|
6
|
-
= "'#{@view}' view for #{@domain}: #{@server}"
|
7
|
-
= "built at #{Time.now}"
|
8
|
-
= "commit #{@hash}, '#{@message}'"
|
9
|
-
|
10
|
-
- raise "No server" unless @server
|
11
|
-
|
12
|
-
%title= "#{@view} view for #{@domain}: #{@server}"
|
13
|
-
|
14
|
-
= render :partial => 'stylesheets'
|
15
|
-
|
16
|
-
/ Prototype
|
17
|
-
|
18
|
-
= javascript_include "prototype.js"
|
19
|
-
= javascript_include "scriptaculous.js"
|
20
|
-
|
21
|
-
|
22
|
-
%body{:class => @view}
|
23
|
-
= render :partial => 'loading'
|
24
|
-
= render :partial => 'flash'
|
25
|
-
|
26
|
-
#main{:style => "display: none;"}
|
27
|
-
|
28
|
-
#content
|
29
|
-
= @content
|
30
|
-
|
31
|
-
= render :partial => 'javascripts'
|
32
|
-
|
33
|
-
/
|
34
|
-
= "Sprint #{@version} #{@sprint_name}"
|
35
|
-
= "'#{@view}' view for #{@domain}: #{@server}"
|
36
|
-
= "built at #{Time.now}"
|
37
|
-
= "commit #{@hash}, '#{@message}'"
|