Description:
CRUD for contests. combined new contest pages with old contest management. fixed styling.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r267:0b01fdb623a8 - - 10 files changed: 548 inserted, 322 deleted
@@ -0,0 +1,290 | |||
|
1 | + body | |
|
2 | + background: white url(../images/topbg.jpg) repeat-x top center | |
|
3 | + font-size: 13px | |
|
4 | + font-family: Tahoma, "sans-serif" | |
|
5 | + margin: 10px | |
|
6 | + padding: 10px | |
|
7 | + | |
|
8 | + | |
|
9 | + input | |
|
10 | + font-family: Tahoma, "sans-serif" | |
|
11 | + | |
|
12 | + | |
|
13 | + h1 | |
|
14 | + font-size: 24px | |
|
15 | + color: #334488 | |
|
16 | + line-height: 2em | |
|
17 | + | |
|
18 | + | |
|
19 | + h2 | |
|
20 | + font-size: 18px | |
|
21 | + color: #5566bb | |
|
22 | + line-height: 1.5em | |
|
23 | + | |
|
24 | + | |
|
25 | + hr | |
|
26 | + border-top: 1px solid #dddddd | |
|
27 | + border-bottom: 1px solid #eeeeee | |
|
28 | + | |
|
29 | + | |
|
30 | + a | |
|
31 | + color: #6666cc | |
|
32 | + text-decoration: none | |
|
33 | + | |
|
34 | + &:link, &:visited | |
|
35 | + color: #6666cc | |
|
36 | + text-decoration: none | |
|
37 | + | |
|
38 | + &:hover, &:focus | |
|
39 | + color: #111166 | |
|
40 | + text-decoration: none | |
|
41 | + | |
|
42 | + | |
|
43 | + div | |
|
44 | + &.userbar | |
|
45 | + line-height: 1.5em | |
|
46 | + text-align: right | |
|
47 | + font-size: 12px | |
|
48 | + | |
|
49 | + &.title | |
|
50 | + padding: 10px 0px | |
|
51 | + line-height: 1.5em | |
|
52 | + font-size: 13px | |
|
53 | + | |
|
54 | + span.contest-over-msg | |
|
55 | + font-size: 15px | |
|
56 | + color: red | |
|
57 | + | |
|
58 | + table | |
|
59 | + width: 100% | |
|
60 | + font-weight: bold | |
|
61 | + | |
|
62 | + td | |
|
63 | + &.left-col | |
|
64 | + text-align: left | |
|
65 | + vertical-align: top | |
|
66 | + color: #444444 | |
|
67 | + | |
|
68 | + &.right-col | |
|
69 | + text-align: right | |
|
70 | + vertical-align: top | |
|
71 | + font-size: 18px | |
|
72 | + color: #116699 | |
|
73 | + | |
|
74 | + | |
|
75 | + table.info | |
|
76 | + margin: 10px 0 | |
|
77 | + border: 1px solid #666666 | |
|
78 | + border-collapse: collapse | |
|
79 | + font-size: 12px | |
|
80 | + | |
|
81 | + th | |
|
82 | + border: 1px solid #666666 | |
|
83 | + line-height: 1.5em | |
|
84 | + padding: 0 0.5em | |
|
85 | + | |
|
86 | + td | |
|
87 | + border-left: 1px solid #666666 | |
|
88 | + border-right: 1px solid #666666 | |
|
89 | + line-height: 1.5em | |
|
90 | + padding: 0 0.5em | |
|
91 | + | |
|
92 | + | |
|
93 | + tr | |
|
94 | + &.info-head | |
|
95 | + background: #777777 | |
|
96 | + color: white | |
|
97 | + | |
|
98 | + &.info-odd | |
|
99 | + background: #eeeeee | |
|
100 | + | |
|
101 | + &.info-even | |
|
102 | + background: #f9f9f9 | |
|
103 | + | |
|
104 | + =basicbox | |
|
105 | + background: #eeeeff | |
|
106 | + border: 1px dotted #99aaee | |
|
107 | + padding: 5px | |
|
108 | + margin: 10px 0px | |
|
109 | + color: black | |
|
110 | + font-size: 13px | |
|
111 | + | |
|
112 | + .infobox | |
|
113 | + +basicbox | |
|
114 | + | |
|
115 | + .submitbox | |
|
116 | + +basicbox | |
|
117 | + | |
|
118 | + .errorExplanation | |
|
119 | + border: 1px dotted gray | |
|
120 | + color: #bb2222 | |
|
121 | + padding: 5px 15px 5px 15px | |
|
122 | + margin-bottom: 5px | |
|
123 | + background-color: white | |
|
124 | + font-weight: normal | |
|
125 | + | |
|
126 | + h2 | |
|
127 | + color: #cc1111 | |
|
128 | + font-weight: bold | |
|
129 | + | |
|
130 | + | |
|
131 | + table.uinfo | |
|
132 | + border-collapse: collapse | |
|
133 | + border: 1px solid black | |
|
134 | + font-size: 13px | |
|
135 | + | |
|
136 | + | |
|
137 | + td.uinfo | |
|
138 | + vertical-align: top | |
|
139 | + border: 1px solid black | |
|
140 | + padding: 5px | |
|
141 | + | |
|
142 | + | |
|
143 | + th.uinfo | |
|
144 | + background: lightgreen | |
|
145 | + vertical-align: top | |
|
146 | + text-align: right | |
|
147 | + border: 1px solid black | |
|
148 | + padding: 5px | |
|
149 | + | |
|
150 | + | |
|
151 | + div | |
|
152 | + &.compilermsgbody | |
|
153 | + font-family: monospace | |
|
154 | + | |
|
155 | + &.task-menu | |
|
156 | + text-align: center | |
|
157 | + font-size: 13px | |
|
158 | + line-height: 1.75em | |
|
159 | + font-weight: bold | |
|
160 | + border-top: 1px dashed gray | |
|
161 | + border-bottom: 1px dashed gray | |
|
162 | + margin-top: 2px | |
|
163 | + margin-bottom: 4px | |
|
164 | + | |
|
165 | + | |
|
166 | + table.taskdesc | |
|
167 | + border: 2px solid #dddddd | |
|
168 | + border-collapse: collapse | |
|
169 | + margin: 10px auto | |
|
170 | + width: 90% | |
|
171 | + font-size: 13px | |
|
172 | + | |
|
173 | + p | |
|
174 | + font-size: 13px | |
|
175 | + | |
|
176 | + tr.name | |
|
177 | + border: 2px solid #dddddd | |
|
178 | + background: #dddddd | |
|
179 | + color: #333333 | |
|
180 | + font-weight: bold | |
|
181 | + font-size: 14px | |
|
182 | + line-height: 1.5em | |
|
183 | + text-align: center | |
|
184 | + | |
|
185 | + td | |
|
186 | + &.desc-odd | |
|
187 | + padding: 5px | |
|
188 | + padding-left: 20px | |
|
189 | + background: #fefeee | |
|
190 | + | |
|
191 | + &.desc-even | |
|
192 | + padding: 5px | |
|
193 | + padding-left: 20px | |
|
194 | + background: #feeefe | |
|
195 | + | |
|
196 | + | |
|
197 | + div | |
|
198 | + &.announcementbox | |
|
199 | + margin: 10px 0px | |
|
200 | + background: #bbddee | |
|
201 | + padding: 1px | |
|
202 | + | |
|
203 | + span.title | |
|
204 | + font-weight: bold | |
|
205 | + color: #224455 | |
|
206 | + padding-left: 10px | |
|
207 | + line-height: 1.6em | |
|
208 | + | |
|
209 | + &.announcement | |
|
210 | + margin: 2px | |
|
211 | + background: white | |
|
212 | + padding: 1px | |
|
213 | + padding-left: 10px | |
|
214 | + padding-right: 10px | |
|
215 | + padding-top: 5px | |
|
216 | + padding-bottom: 5px | |
|
217 | + | |
|
218 | + | |
|
219 | + .announcement p | |
|
220 | + font-size: 12px | |
|
221 | + margin: 2px | |
|
222 | + | |
|
223 | + | |
|
224 | + div.pub-info | |
|
225 | + text-align: right | |
|
226 | + font-style: italic | |
|
227 | + font-size: 9px | |
|
228 | + | |
|
229 | + p | |
|
230 | + text-align: right | |
|
231 | + font-style: italic | |
|
232 | + font-size: 9px | |
|
233 | + | |
|
234 | + | |
|
235 | + .announcement | |
|
236 | + .toggles | |
|
237 | + font-weight: normal | |
|
238 | + float: right | |
|
239 | + font-size: 80% | |
|
240 | + | |
|
241 | + .announcement-title | |
|
242 | + font-weight: bold | |
|
243 | + | |
|
244 | + | |
|
245 | + div | |
|
246 | + &.message | |
|
247 | + margin: 10px 0 0 | |
|
248 | + | |
|
249 | + div | |
|
250 | + &.message | |
|
251 | + margin: 0 0 0 30px | |
|
252 | + | |
|
253 | + &.body | |
|
254 | + border: 2px solid #dddddd | |
|
255 | + background: #fff8f8 | |
|
256 | + padding-left: 5px | |
|
257 | + | |
|
258 | + &.reply-body | |
|
259 | + border: 2px solid #bbbbbb | |
|
260 | + background: #fffff8 | |
|
261 | + padding-left: 5px | |
|
262 | + | |
|
263 | + &.stat | |
|
264 | + font-size: 10px | |
|
265 | + line-height: 1.75em | |
|
266 | + padding: 0 5px | |
|
267 | + color: #333333 | |
|
268 | + background: #dddddd | |
|
269 | + font-weight: bold | |
|
270 | + | |
|
271 | + &.message div.stat | |
|
272 | + font-size: 10px | |
|
273 | + line-height: 1.75em | |
|
274 | + padding: 0 5px | |
|
275 | + color: #444444 | |
|
276 | + background: #bbbbbb | |
|
277 | + font-weight: bold | |
|
278 | + | |
|
279 | + &.contest-title | |
|
280 | + color: white | |
|
281 | + text-align: center | |
|
282 | + line-height: 2em | |
|
283 | + | |
|
284 | + &.registration-desc, &.test-desc | |
|
285 | + border: 1px dotted gray | |
|
286 | + background: #f5f5f5 | |
|
287 | + padding: 5px | |
|
288 | + margin: 10px 0 | |
|
289 | + font-size: 12px | |
|
290 | + line-height: 1.5em |
@@ -3,6 +3,7 | |||
|
3 | 3 | before_filter :admin_authorization |
|
4 | 4 | |
|
5 | 5 | def index |
|
6 | + @num_contests = Contest.count() | |
|
6 | 7 | end |
|
7 | 8 | |
|
8 | 9 | def user_stat |
@@ -35,4 +36,15 | |||
|
35 | 36 | redirect_to :action => 'index' |
|
36 | 37 | end |
|
37 | 38 | |
|
39 | + def change_contest_mode | |
|
40 | + if ['standard', 'contest', 'indv-contest'].include? params[:id] | |
|
41 | + config = Configuration.find_by_key('system.mode') | |
|
42 | + config.value = params[:id] | |
|
43 | + config.save | |
|
44 | + else | |
|
45 | + flash[:notice] = 'Wrong contest mode value' | |
|
46 | + end | |
|
47 | + redirect_to :action => 'index' | |
|
48 | + end | |
|
49 | + | |
|
38 | 50 | end |
@@ -2,6 +2,9 | |||
|
2 | 2 | |
|
3 | 3 | before_filter :admin_authorization |
|
4 | 4 | |
|
5 | + in_place_edit_for :contest, :title | |
|
6 | + in_place_edit_for :contest, :enabled | |
|
7 | + | |
|
5 | 8 | # GET /contests |
|
6 | 9 | # GET /contests.xml |
|
7 | 10 | def index |
@@ -1,4 +1,9 | |||
|
1 | - .submitbox | |
|
2 | - %b Menu: | |
|
1 | + %h2 Individual contest mode | |
|
2 | + | |
|
3 | + In this mode, each individual user can log in and participate in the | |
|
4 | + contest at any time. The contest timer starts as soon as the user log | |
|
5 | + in. | |
|
6 | + | |
|
7 | + .infobox | |
|
3 | 8 | = link_to '[View user start time]', :action => 'user_stat' |
|
4 | 9 | = link_to '[Clear all start times]', {:action => 'clear_all_stat'}, {:confirm => 'Do you really want to clear all start time statistics?'} |
@@ -1,20 +1,30 | |||
|
1 | 1 | %h1 Contest management |
|
2 | 2 | |
|
3 | - .submitbox | |
|
3 | + .infobox | |
|
4 | 4 | |
|
5 | - %b Multiple contests: | |
|
6 | - = "There are #{Contest.count} contests running." | |
|
7 | - = "[#{link_to 'Create/Update/Delete contests', :controller => 'contests', :action => 'index'}]" | |
|
8 | - | |
|
5 | + - if @num_contests>1 | |
|
6 | + %b Multiple contests: | |
|
7 | + = "There are #{@num_contests} contests running." | |
|
8 | + - else | |
|
9 | + %b Single contest: | |
|
10 | + = "[#{link_to 'Add/remove contests', :controller => 'contests', :action => 'index'}]" | |
|
9 | 11 | |
|
10 | - %b Contest mode: | |
|
12 | + .infobox | |
|
13 | + %b Web interface mode: | |
|
14 | + - if (not Configuration.contest_mode?) and (not Configuration.indv_contest_mode?) | |
|
15 | + standard mode | |
|
16 | + - elsif Configuration.contest_mode? | |
|
17 | + normal contest mode. | |
|
18 | + - else | |
|
19 | + individual contest mode. | |
|
11 | 20 | |
|
12 | - - if (not Configuration.contest_mode?) and (not Configuration.indv_contest_mode?) | |
|
13 | - Currently the system is not running in contest mode. | |
|
14 | - - elsif Configuration.contest_mode? | |
|
15 | - System running in normal contest mode. | |
|
16 | - - else | |
|
17 | - System running in individual contest mode. | |
|
21 | + %br/ | |
|
22 | + Change mode to: | |
|
23 | + = "[#{link_to 'standard', :action => 'change_contest_mode', :id => 'standard'}]" | |
|
24 | + = "[#{link_to 'contest', :action => 'change_contest_mode', :id => 'contest'}]" | |
|
25 | + = "[#{link_to 'individual contest', :action => 'change_contest_mode', :id => 'indv-contest'}]" | |
|
26 | + | |
|
27 | + - if Configuration.indv_contest_mode? | |
|
18 | 28 | = render :partial => 'indv_contest_mode_index' |
|
19 | 29 | |
|
20 | 30 | %br/ |
@@ -3,18 +3,23 | |||
|
3 | 3 | <% form_for(@contest) do |f| %> |
|
4 | 4 | <%= f.error_messages %> |
|
5 | 5 | |
|
6 | - <p> | |
|
7 | - <%= f.label :title %><br /> | |
|
8 |
- <%= f. |
|
|
9 | - </p> | |
|
10 | - <p> | |
|
11 | - <%= f.label :enabled %><br /> | |
|
12 | - <%= f.check_box :enabled %> | |
|
13 | - </p> | |
|
6 | + <table> | |
|
7 | + <tr> | |
|
8 | + <td><%= f.label :title %></td> | |
|
9 | + <td><%= f.text_field :title %></td> | |
|
10 | + </tr> | |
|
11 | + <tr> | |
|
12 | + <td></td> | |
|
13 | + <td> | |
|
14 | + <%= f.check_box :enabled %> | |
|
15 | + <%= f.label :enabled %> | |
|
16 | + </td> | |
|
17 | + </tr> | |
|
18 | + </table> | |
|
14 | 19 | <p> |
|
15 | 20 | <%= f.submit 'Update' %> |
|
16 | 21 | </p> |
|
17 | 22 | <% end %> |
|
18 | 23 | |
|
19 | 24 | <%= link_to 'Show', @contest %> | |
|
20 | - <%= link_to 'Back', contests_path %> No newline at end of file | |
|
25 | + <%= link_to 'Back', contests_path %> |
@@ -1,19 +1,24 | |||
|
1 | + <% content_for :head do %> | |
|
2 | + <%= javascript_include_tag :defaults %> | |
|
3 | + <% end %> | |
|
4 | + | |
|
1 | 5 | <h1>Listing contests</h1> |
|
2 | 6 | |
|
3 |
- <div class=" |
|
|
4 |
- <b>Go back</b> |
|
|
7 | + <div class="infobox"> | |
|
8 | + <b>Go back to:</b> [<%= link_to 'contest management', :controller => 'contest_management', :action => 'index' %>] | |
|
5 | 9 | </div> |
|
6 | 10 | |
|
7 | 11 | <table> |
|
8 | 12 | <tr> |
|
9 | 13 | <th>Title</th> |
|
10 | - <th>Enabled</th> | |
|
14 | + <th>Enabled</th> | |
|
11 | 15 | </tr> |
|
12 | 16 | |
|
13 | 17 | <% @contests.each do |contest| %> |
|
18 | + <% @contest = contest %> | |
|
14 | 19 | <tr> |
|
15 | - <td><%=h contest.title %></td> | |
|
16 |
- <td><%= |
|
|
20 | + <td><%= in_place_editor_field :contest, :title, {}, :rows => 1 %></td> | |
|
21 | + <td><%= in_place_editor_field :contest, :enabled, {}, :rows => 1 %></td> | |
|
17 | 22 | <td><%= link_to 'Show', contest %></td> |
|
18 | 23 | <td><%= link_to 'Edit', edit_contest_path(contest) %></td> |
|
19 | 24 | <td><%= link_to 'Destroy', contest, :confirm => 'Are you sure?', :method => :delete %></td> |
@@ -1,7 +1,8 | |||
|
1 | - <p> | |
|
2 | - <b>Title:</b> | |
|
3 | - <%=h @contest.title %> | |
|
4 | - </p> | |
|
1 | + <h1>Contest: <%=h @contest.title %></h1> | |
|
2 | + | |
|
3 | + <div class="infobox"> | |
|
4 | + <b>Go back to:</b> [<%= link_to 'contest management', :controller => 'contest_management', :action => 'index' %>] | |
|
5 | + </div> | |
|
5 | 6 | |
|
6 | 7 | <p> |
|
7 | 8 | <b>Enabled:</b> |
@@ -10,4 +11,4 | |||
|
10 | 11 | |
|
11 | 12 | |
|
12 | 13 | <%= link_to 'Edit', edit_contest_path(@contest) %> | |
|
13 | - <%= link_to 'Back', contests_path %> No newline at end of file | |
|
14 | + <%= link_to 'Back', contests_path %> |
@@ -1,38 +1,38 | |||
|
1 | 1 | <h1>Listing users</h1> |
|
2 | 2 | |
|
3 | 3 | <div class="submitbox"> |
|
4 | - <b>Quick add</b> | |
|
5 | - <% form_tag :action => 'create' do %> | |
|
6 | - <table border="0"> | |
|
7 | - <tr> | |
|
8 |
- |
|
|
9 |
- |
|
|
10 |
- |
|
|
11 |
- |
|
|
12 |
- |
|
|
13 | - </tr> | |
|
14 | - <tr> | |
|
15 |
- |
|
|
16 |
- |
|
|
17 |
- |
|
|
18 |
- |
|
|
19 |
- |
|
|
20 |
- |
|
|
21 | - </tr></table> | |
|
22 | - <% end %> | |
|
23 | - <br/> | |
|
24 | - <b>Import from site management</b> | |
|
25 | - <% form_tag({:action => 'import'}, :multipart => true) do %> | |
|
26 | - File: <%= file_field_tag 'file' %> <%= submit_tag 'Import' %> | |
|
27 | - <% end %> | |
|
28 | - <br/> | |
|
29 | - <b>What else: </b> | |
|
30 | - <%= link_to '[New user]', :action => 'new' %> | |
|
31 |
- <%= link_to '[New |
|
|
32 |
- <%= link_to '[ |
|
|
33 |
- <%= link_to '[ |
|
|
34 | - <%= link_to '[View active users]', :action => 'active' %> | |
|
35 | - | |
|
4 | + <b>Quick add</b> | |
|
5 | + <% form_tag :action => 'create' do %> | |
|
6 | + <table border="0"> | |
|
7 | + <tr> | |
|
8 | + <td><label for="user_login">Login</label></td> | |
|
9 | + <td><label for="user_full_name">Full name</label></td> | |
|
10 | + <td><label for="user_password">Password</label></td> | |
|
11 | + <td><label for="user_password_confirmation">Confirm</label></td> | |
|
12 | + <td><label for="user_email">Email</label></td> | |
|
13 | + </tr> | |
|
14 | + <tr> | |
|
15 | + <td><%= text_field 'user', 'login', :size => 10 %></td> | |
|
16 | + <td><%= text_field 'user', 'full_name', :size => 30 %></td> | |
|
17 | + <td><%= password_field 'user', 'password', :size => 10 %></td> | |
|
18 | + <td><%= password_field 'user', 'password_confirmation', :size => 10 %></td> | |
|
19 | + <td><%= text_field 'user', 'email', :size => 15 %></td> | |
|
20 | + <td><%= submit_tag "Create" %></td> | |
|
21 | + </tr> | |
|
22 | + </table> | |
|
23 | + <% end %> | |
|
24 | + <br/> | |
|
25 | + <b>Import from site management</b> | |
|
26 | + <% form_tag({:action => 'import'}, :multipart => true) do %> | |
|
27 | + File: <%= file_field_tag 'file' %> <%= submit_tag 'Import' %> | |
|
28 | + <% end %> | |
|
29 | + <br/> | |
|
30 | + <b>What else: </b> | |
|
31 | + <%= link_to '[New user]', :action => 'new' %> | |
|
32 | + <%= link_to '[New list of users]', :action => 'new_list' %> | |
|
33 | + <%= link_to '[View administrators]', :action => 'admin' %> | |
|
34 | + <%= link_to '[Random passwords]', :action => 'random_all_passwords' %> | |
|
35 | + <%= link_to '[View active users]', :action => 'active' %> | |
|
36 | 36 | </div> |
|
37 | 37 | |
|
38 | 38 | <table> |
@@ -1,342 +1,237 | |||
|
1 | - /* Main Default */ | |
|
2 | 1 |
|
|
3 |
- |
|
|
4 |
- |
|
|
5 |
- |
|
|
6 |
- |
|
|
7 |
- |
|
|
8 | - } | |
|
2 | + background: white url(../images/topbg.jpg) repeat-x top center; | |
|
3 | + font-size: 13px; | |
|
4 | + font-family: Tahoma, "sans-serif"; | |
|
5 | + margin: 10px; | |
|
6 | + padding: 10px; } | |
|
9 | 7 | |
|
10 | - /* Form Font */ | |
|
11 | 8 | input { |
|
12 |
- |
|
|
13 | - } | |
|
9 | + font-family: Tahoma, "sans-serif"; } | |
|
14 | 10 | |
|
15 | - /* Heading 1&2 */ | |
|
16 | 11 | h1 { |
|
17 |
- |
|
|
18 |
- |
|
|
19 |
- |
|
|
20 | - } | |
|
12 | + font-size: 24px; | |
|
13 | + color: #334488; | |
|
14 | + line-height: 2em; } | |
|
21 | 15 | |
|
22 | 16 | h2 { |
|
23 |
- |
|
|
24 |
- |
|
|
25 |
- |
|
|
26 | - } | |
|
27 | - | |
|
28 | - /* Bar Line Color and Thickness */ | |
|
29 | - hr { | |
|
30 | - border-top: 1px solid #dddddd; | |
|
31 | - border-bottom: 1px solid #eeeeee; | |
|
32 | - } | |
|
17 | + font-size: 18px; | |
|
18 | + color: #5566bb; | |
|
19 | + line-height: 1.5em; } | |
|
33 | 20 | |
|
34 | - /* Link + Anchor Color */ | |
|
35 | - a, a:link, a:visited { | |
|
36 | - color: #6666cc; | |
|
37 | - text-decoration: none; | |
|
38 | - } | |
|
39 | - | |
|
40 | - a:hover, a:focus { | |
|
41 | - color: #111166; | |
|
42 | - text-decoration: none; | |
|
43 | - } | |
|
21 | + hr { | |
|
22 | + border-top: 1px solid #dddddd; | |
|
23 | + border-bottom: 1px solid #eeeeee; } | |
|
44 | 24 | |
|
45 | - /* This is the main menu bad*/ | |
|
46 | - div.userbar { | |
|
47 | - line-height: 1.5em; | |
|
48 | - text-align: right; | |
|
49 | - font-size: 12px; | |
|
50 | - } | |
|
25 | + a { | |
|
26 | + color: #6666cc; | |
|
27 | + text-decoration: none; } | |
|
28 | + a:link, a:visited { | |
|
29 | + color: #6666cc; | |
|
30 | + text-decoration: none; } | |
|
31 | + a:hover, a:focus { | |
|
32 | + color: #111166; | |
|
33 | + text-decoration: none; } | |
|
51 | 34 | |
|
52 | - /* This is the top bar, displaying user's full name */ | |
|
35 | + div.userbar { | |
|
36 | + line-height: 1.5em; | |
|
37 | + text-align: right; | |
|
38 | + font-size: 12px; } | |
|
53 | 39 | div.title { |
|
54 | - // background: #ddddff; | |
|
55 | - // border: 1px dashed blue; | |
|
56 | - padding: 10px 0px; | |
|
57 | - line-height: 1.5em; | |
|
58 | - font-size: 13px; | |
|
59 | - } | |
|
60 | - | |
|
61 | - div.title span.contest-over-msg { | |
|
40 | + padding: 10px 0px; | |
|
41 | + line-height: 1.5em; | |
|
42 | + font-size: 13px; } | |
|
43 | + div.title span.contest-over-msg { | |
|
62 | 44 | font-size: 15px; |
|
63 | - color: red; | |
|
64 | - } | |
|
65 | - | |
|
66 | - div.title table { | |
|
45 | + color: red; } | |
|
46 | + div.title table { | |
|
67 | 47 | width: 100%; |
|
68 | - font-weight: bold; | |
|
69 | - } | |
|
70 | - | |
|
71 | - div.title td.left-col { | |
|
48 | + font-weight: bold; } | |
|
49 | + div.title td.left-col { | |
|
72 | 50 | text-align: left; |
|
73 | 51 | vertical-align: top; |
|
74 | - color: #444444; | |
|
75 | - } | |
|
76 | - | |
|
77 | - div.title td.right-col { | |
|
52 | + color: #444444; } | |
|
53 | + div.title td.right-col { | |
|
78 | 54 | text-align: right; |
|
79 | 55 | vertical-align: top; |
|
80 | 56 | font-size: 18px; |
|
81 | - color: #116699; | |
|
82 | - } | |
|
57 | + color: #116699; } | |
|
83 | 58 | |
|
84 | - /* Standard table with header and rows with alternating background */ | |
|
85 | 59 | table.info { |
|
86 |
- |
|
|
87 |
- |
|
|
88 |
- |
|
|
89 |
- |
|
|
90 | - } | |
|
91 | - | |
|
92 | - table.info th { | |
|
60 | + margin: 10px 0; | |
|
61 | + border: 1px solid #666666; | |
|
62 | + border-collapse: collapse; | |
|
63 | + font-size: 12px; } | |
|
64 | + table.info th { | |
|
93 | 65 | border: 1px solid #666666; |
|
94 | 66 | line-height: 1.5em; |
|
95 | - padding: 0 0.5em; | |
|
96 | - } | |
|
97 | - | |
|
98 | - table.info td { | |
|
67 | + padding: 0 0.5em; } | |
|
68 | + table.info td { | |
|
99 | 69 | border-left: 1px solid #666666; |
|
100 | 70 | border-right: 1px solid #666666; |
|
101 | 71 | line-height: 1.5em; |
|
102 | - padding: 0 0.5em; | |
|
103 | - } | |
|
72 | + padding: 0 0.5em; } | |
|
104 | 73 | |
|
105 | 74 | tr.info-head { |
|
106 |
- |
|
|
107 |
- |
|
|
108 | - } | |
|
109 | - | |
|
75 | + background: #777777; | |
|
76 | + color: white; } | |
|
110 | 77 | tr.info-odd { |
|
111 |
- |
|
|
112 | - } | |
|
113 | - | |
|
78 | + background: #eeeeee; } | |
|
114 | 79 | tr.info-even { |
|
115 |
- |
|
|
116 | - } | |
|
80 | + background: #f9f9f9; } | |
|
117 | 81 | |
|
118 | - /******************************* | |
|
119 | - [Main] | |
|
120 | - ********************************/ | |
|
121 | - div.submitbox { | |
|
122 | - background: #eeeeff; | |
|
123 | - border: 1px dotted #99aaee; | |
|
124 | - padding: 5px; | |
|
125 | - margin: 10px 0px; | |
|
126 | - color: black; | |
|
127 | - font-size: 13px; | |
|
128 | - } | |
|
82 | + .infobox { | |
|
83 | + background: #eeeeff; | |
|
84 | + border: 1px dotted #99aaee; | |
|
85 | + padding: 5px; | |
|
86 | + margin: 10px 0px; | |
|
87 | + color: black; | |
|
88 | + font-size: 13px; } | |
|
129 | 89 | |
|
130 | - div.errorExplanation { | |
|
131 | - border: 1px dotted gray; | |
|
132 | - color: #bb2222; | |
|
133 |
- |
|
|
134 |
- |
|
|
135 | - background-color: white; | |
|
136 | - font-weight: normal; | |
|
137 | - } | |
|
90 | + .submitbox { | |
|
91 | + background: #eeeeff; | |
|
92 | + border: 1px dotted #99aaee; | |
|
93 | + padding: 5px; | |
|
94 | + margin: 10px 0px; | |
|
95 | + color: black; | |
|
96 | + font-size: 13px; } | |
|
138 | 97 | |
|
139 | - | |
|
140 | - div.errorExplanation h2 { | |
|
98 | + .errorExplanation { | |
|
99 | + border: 1px dotted gray; | |
|
100 | + color: #bb2222; | |
|
101 | + padding: 5px 15px 5px 15px; | |
|
102 | + margin-bottom: 5px; | |
|
103 | + background-color: white; | |
|
104 | + font-weight: normal; } | |
|
105 | + .errorExplanation h2 { | |
|
141 | 106 | color: #cc1111; |
|
142 | - font-weight: bold; | |
|
143 | - } | |
|
107 | + font-weight: bold; } | |
|
144 | 108 | |
|
145 | - /******************************* | |
|
146 | - [Settings] | |
|
147 | - ********************************/ | |
|
148 | 109 | table.uinfo { |
|
149 |
- |
|
|
150 |
- |
|
|
151 |
- |
|
|
152 | - } | |
|
110 | + border-collapse: collapse; | |
|
111 | + border: 1px solid black; | |
|
112 | + font-size: 13px; } | |
|
153 | 113 | |
|
154 | 114 | td.uinfo { |
|
155 |
- |
|
|
156 |
- |
|
|
157 |
- |
|
|
158 | - } | |
|
115 | + vertical-align: top; | |
|
116 | + border: 1px solid black; | |
|
117 | + padding: 5px; } | |
|
159 | 118 | |
|
160 | 119 | th.uinfo { |
|
161 |
- |
|
|
162 |
- |
|
|
163 |
- |
|
|
164 |
- |
|
|
165 |
- |
|
|
166 | - } | |
|
120 | + background: lightgreen; | |
|
121 | + vertical-align: top; | |
|
122 | + text-align: right; | |
|
123 | + border: 1px solid black; | |
|
124 | + padding: 5px; } | |
|
167 | 125 | |
|
168 | - /******************************* | |
|
169 | - [Submission] | |
|
170 | - ********************************/ | |
|
171 | 126 | div.compilermsgbody { |
|
172 |
- |
|
|
173 | - } | |
|
174 | - | |
|
127 | + font-family: monospace; } | |
|
175 | 128 | div.task-menu { |
|
176 |
- |
|
|
177 |
- |
|
|
178 |
- |
|
|
179 |
- |
|
|
180 |
- |
|
|
181 |
- |
|
|
182 |
- |
|
|
183 |
- |
|
|
184 | - } | |
|
129 | + text-align: center; | |
|
130 | + font-size: 13px; | |
|
131 | + line-height: 1.75em; | |
|
132 | + font-weight: bold; | |
|
133 | + border-top: 1px dashed gray; | |
|
134 | + border-bottom: 1px dashed gray; | |
|
135 | + margin-top: 2px; | |
|
136 | + margin-bottom: 4px; } | |
|
185 | 137 | |
|
186 | - /******************************* | |
|
187 | - [Submission] | |
|
188 | - ********************************/ | |
|
189 | 138 | table.taskdesc { |
|
190 |
- |
|
|
191 |
- |
|
|
192 |
- |
|
|
193 |
- |
|
|
194 |
- |
|
|
195 | - } | |
|
196 | - | |
|
197 |
- table.taskdesc |
|
|
198 | - font-size: 13px; | |
|
199 | - } | |
|
200 | - | |
|
201 | - table.taskdesc tr.name { | |
|
139 | + border: 2px solid #dddddd; | |
|
140 | + border-collapse: collapse; | |
|
141 | + margin: 10px auto; | |
|
142 | + width: 90%; | |
|
143 | + font-size: 13px; } | |
|
144 | + table.taskdesc p { | |
|
145 | + font-size: 13px; } | |
|
146 | + table.taskdesc tr.name { | |
|
202 | 147 | border: 2px solid #dddddd; |
|
203 | 148 | background: #dddddd; |
|
204 | 149 | color: #333333; |
|
205 | 150 | font-weight: bold; |
|
206 | 151 | font-size: 14px; |
|
207 | 152 | line-height: 1.5em; |
|
208 | - text-align: center; | |
|
209 | - } | |
|
210 | - | |
|
211 | - table.taskdesc td.desc-odd { | |
|
153 | + text-align: center; } | |
|
154 | + table.taskdesc td.desc-odd { | |
|
212 | 155 | padding: 5px; |
|
213 | 156 | padding-left: 20px; |
|
214 | - background: #fefeee; | |
|
215 | - } | |
|
216 | - | |
|
217 | - table.taskdesc td.desc-even { | |
|
157 | + background: #fefeee; } | |
|
158 | + table.taskdesc td.desc-even { | |
|
218 | 159 | padding: 5px; |
|
219 | 160 | padding-left: 20px; |
|
220 | - background: #feeefe; | |
|
221 | - } | |
|
222 | - | |
|
223 | - /********************** | |
|
224 | - Announcement | |
|
225 | - ***********************/ | |
|
161 | + background: #feeefe; } | |
|
226 | 162 | |
|
227 | 163 | div.announcementbox { |
|
228 |
- |
|
|
229 |
- |
|
|
230 |
- |
|
|
231 | - } | |
|
232 | - | |
|
233 | - div.announcementbox span.title { | |
|
164 | + margin: 10px 0px; | |
|
165 | + background: #bbddee; | |
|
166 | + padding: 1px; } | |
|
167 | + div.announcementbox span.title { | |
|
234 | 168 | font-weight: bold; |
|
235 | 169 | color: #224455; |
|
236 | 170 | padding-left: 10px; |
|
237 | - line-height: 1.6em; | |
|
238 | - } | |
|
239 | - | |
|
171 | + line-height: 1.6em; } | |
|
240 | 172 | div.announcement { |
|
241 |
- |
|
|
242 |
- |
|
|
243 |
- |
|
|
244 |
- |
|
|
245 |
- |
|
|
246 |
- |
|
|
247 |
- |
|
|
248 | - } | |
|
173 | + margin: 2px; | |
|
174 | + background: white; | |
|
175 | + padding: 1px; | |
|
176 | + padding-left: 10px; | |
|
177 | + padding-right: 10px; | |
|
178 | + padding-top: 5px; | |
|
179 | + padding-bottom: 5px; } | |
|
249 | 180 | |
|
250 | 181 | .announcement p { |
|
251 |
- |
|
|
252 |
- |
|
|
253 | - } | |
|
182 | + font-size: 12px; | |
|
183 | + margin: 2px; } | |
|
254 | 184 | |
|
255 |
- div.pub-info |
|
|
185 | + div.pub-info { | |
|
186 | + text-align: right; | |
|
187 | + font-style: italic; | |
|
188 | + font-size: 9px; } | |
|
189 | + div.pub-info p { | |
|
256 | 190 | text-align: right; |
|
257 | 191 | font-style: italic; |
|
258 | - font-size: 9px; | |
|
259 | - } | |
|
192 | + font-size: 9px; } | |
|
260 | 193 | |
|
261 | 194 | .announcement .toggles { |
|
262 |
- |
|
|
263 |
- |
|
|
264 |
- |
|
|
265 | - } | |
|
266 | - | |
|
195 | + font-weight: normal; | |
|
196 | + float: right; | |
|
197 | + font-size: 80%; } | |
|
267 | 198 | .announcement .announcement-title { |
|
268 |
- |
|
|
269 | - } | |
|
270 | - | |
|
271 | - /****************** | |
|
272 | - Messages | |
|
273 | - ******************/ | |
|
199 | + font-weight: bold; } | |
|
274 | 200 | |
|
275 | 201 | div.message { |
|
276 |
- |
|
|
277 | - } | |
|
278 | - | |
|
279 |
- div.message div. |
|
|
280 | - margin: 0 0 0 30px; | |
|
281 | - } | |
|
282 | - | |
|
283 | - div.message div.body { | |
|
202 | + margin: 10px 0 0; } | |
|
203 | + div.message div.message { | |
|
204 | + margin: 0 0 0 30px; } | |
|
205 | + div.message div.body { | |
|
284 | 206 | border: 2px solid #dddddd; |
|
285 | 207 | background: #fff8f8; |
|
286 | - padding-left: 5px; | |
|
287 | - } | |
|
288 | - | |
|
289 | - div.message div.reply-body { | |
|
208 | + padding-left: 5px; } | |
|
209 | + div.message div.reply-body { | |
|
290 | 210 | border: 2px solid #bbbbbb; |
|
291 | 211 | background: #fffff8; |
|
292 | - padding-left: 5px; | |
|
293 | - } | |
|
294 | - | |
|
295 | - div.message div.stat { | |
|
212 | + padding-left: 5px; } | |
|
213 | + div.message div.stat { | |
|
296 | 214 | font-size: 10px; |
|
297 | 215 | line-height: 1.75em; |
|
298 | 216 | padding: 0 5px; |
|
299 | 217 | color: #333333; |
|
300 | 218 | background: #dddddd; |
|
301 | - font-weight: bold; | |
|
302 | - } | |
|
303 | - | |
|
304 | - div.message div.message div.stat { | |
|
219 | + font-weight: bold; } | |
|
220 | + div.message div.message div.stat { | |
|
305 | 221 | font-size: 10px; |
|
306 | 222 | line-height: 1.75em; |
|
307 | 223 | padding: 0 5px; |
|
308 | 224 | color: #444444; |
|
309 | 225 | background: #bbbbbb; |
|
310 | - font-weight: bold; | |
|
311 | - } | |
|
312 | - | |
|
313 | - /******************** | |
|
314 | - Registration | |
|
315 | - ********************/ | |
|
226 | + font-weight: bold; } | |
|
316 | 227 | div.contest-title { |
|
317 |
- |
|
|
318 |
- |
|
|
319 |
- |
|
|
320 | - } | |
|
321 | - | |
|
322 | - div.registration-desc { | |
|
323 | - border: 1px dotted gray; | |
|
324 | - background: #f5f5f5; | |
|
325 | - padding: 5px; | |
|
326 | - margin: 10px 0; | |
|
327 | - font-size: 12px; | |
|
328 | - line-height: 1.5em; | |
|
329 | - } | |
|
330 | - | |
|
331 | - /******************** | |
|
332 | - [Test Interface] | |
|
333 | - ********************/ | |
|
334 | - | |
|
335 | - div.test-desc { | |
|
336 | - border: 1px dotted gray; | |
|
337 | - background: #f5f5f5; | |
|
338 | - padding: 5px; | |
|
339 | - margin: 10px 0; | |
|
340 | - font-size: 12px; | |
|
341 | - line-height: 1.5em; | |
|
342 | - } | |
|
228 | + color: white; | |
|
229 | + text-align: center; | |
|
230 | + line-height: 2em; } | |
|
231 | + div.registration-desc, div.test-desc { | |
|
232 | + border: 1px dotted gray; | |
|
233 | + background: #f5f5f5; | |
|
234 | + padding: 5px; | |
|
235 | + margin: 10px 0; | |
|
236 | + font-size: 12px; | |
|
237 | + line-height: 1.5em; } |
You need to be logged in to leave comments.
Login now