qadmin 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/History.txt +9 -0
  2. data/LICENSE +20 -0
  3. data/Manifest.txt +52 -0
  4. data/PostInstall.txt +1 -0
  5. data/README.rdoc +39 -0
  6. data/Rakefile +31 -0
  7. data/init.rb +1 -0
  8. data/lib/qadmin.rb +20 -0
  9. data/lib/qadmin/assets/form_builder.rb +36 -0
  10. data/lib/qadmin/configuration.rb +48 -0
  11. data/lib/qadmin/controller.rb +139 -0
  12. data/lib/qadmin/form_builder.rb +23 -0
  13. data/lib/qadmin/helper.rb +128 -0
  14. data/lib/qadmin/option_set.rb +48 -0
  15. data/lib/qadmin/overlay.rb +31 -0
  16. data/lib/qadmin/page_titles.rb +34 -0
  17. data/lib/qadmin/templates.rb +52 -0
  18. data/lib/qadmin/views/content_forms/_attachments_form.erb +0 -0
  19. data/lib/qadmin/views/content_forms/_photos_form.erb +4 -0
  20. data/lib/qadmin/views/content_forms/_videos_form.erb +0 -0
  21. data/lib/qadmin/views/default/edit.erb +12 -0
  22. data/lib/qadmin/views/default/index.erb +9 -0
  23. data/lib/qadmin/views/default/new.erb +12 -0
  24. data/lib/qadmin/views/default/show.erb +7 -0
  25. data/rails/init.rb +5 -0
  26. data/rails_generators/qadmin/USAGE +5 -0
  27. data/rails_generators/qadmin/qadmin_generator.rb +111 -0
  28. data/rails_generators/qadmin/templates/_form.html.erb +7 -0
  29. data/rails_generators/qadmin/templates/_instance.html.erb +8 -0
  30. data/rails_generators/qadmin/templates/controller.rb +6 -0
  31. data/rails_generators/qadmin/templates/functional_test.rb +114 -0
  32. data/rails_generators/qadmin/templates/images/icon_asc.gif +0 -0
  33. data/rails_generators/qadmin/templates/images/icon_desc.gif +0 -0
  34. data/rails_generators/qadmin/templates/images/icon_destroy.png +0 -0
  35. data/rails_generators/qadmin/templates/images/icon_edit.png +0 -0
  36. data/rails_generators/qadmin/templates/images/icon_export.png +0 -0
  37. data/rails_generators/qadmin/templates/images/icon_find.png +0 -0
  38. data/rails_generators/qadmin/templates/images/icon_import.png +0 -0
  39. data/rails_generators/qadmin/templates/images/icon_list.png +0 -0
  40. data/rails_generators/qadmin/templates/images/icon_new.png +0 -0
  41. data/rails_generators/qadmin/templates/images/icon_next.gif +0 -0
  42. data/rails_generators/qadmin/templates/images/icon_prev.gif +0 -0
  43. data/rails_generators/qadmin/templates/images/icon_show.png +0 -0
  44. data/rails_generators/qadmin/templates/images/icon_sort.png +0 -0
  45. data/rails_generators/qadmin/templates/images/indicator_medium.gif +0 -0
  46. data/rails_generators/qadmin/templates/layout.html.erb +45 -0
  47. data/rails_generators/qadmin/templates/style.css +683 -0
  48. data/test/test_generator_helper.rb +29 -0
  49. data/test/test_helper.rb +83 -0
  50. data/test/test_qadmin_controller.rb +148 -0
  51. data/test/test_qadmin_generator.rb +76 -0
  52. data/test/test_qadmin_option_set.rb +86 -0
  53. metadata +162 -0
@@ -0,0 +1,45 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+
8
+ <title>Admin</title>
9
+
10
+ <%%= stylesheet_link_tag 'admin' %>
11
+ <%%= javascript_include_tag :defaults %>
12
+ <%%= javascript_include_tag 'file_browser' %>
13
+ </head>
14
+ <body>
15
+ <div id="header">
16
+ <h1>Admin</h1>
17
+ <div id="loginbox"><%% if logged_in? %>Welcome, <%%= current_user %> / <%%= link_to "Logout", '/logout' %><%% else %><%%= link_to "Login", '/login' %><%% end %></div>
18
+ </div>
19
+ <div id="main">
20
+ <div id="left_menu">
21
+ <h3>Panels</h3>
22
+ <ul class="menu">
23
+ <%% simple_menu([]) do |name,controller| %>
24
+ <li><%%= link_to(name.titleize, {:controller => controller}, :class => (like_current_page?(:controller => controller) ? 'selected' : '')) %></li>
25
+ <%% end %>
26
+ </ul>
27
+ <h3>Quick Links</h3>
28
+ <ul class="menu">
29
+ </ul>
30
+ </div>
31
+ <div id="content">
32
+ <%% if flash[:message] %>
33
+ <div id="message_main" class="message">
34
+ <%%= h flash[:message] %>
35
+ </div>
36
+ <%% elsif flash[:warning] %>
37
+ <div id="message_main" class="message warning">
38
+ <%%= h flash[:warning] %>
39
+ </div>
40
+ <%% end %>
41
+ <%%= yield %>
42
+ </div>
43
+ </div>
44
+ </body>
45
+ </html>
@@ -0,0 +1,683 @@
1
+ *, html {
2
+ padding: 0px;
3
+ margin: 0px;
4
+ }
5
+ body {
6
+ font-family: Arial, Helvetica, sans-serif;
7
+ font-size: 12px;
8
+ background:#FEFEFE;
9
+ color:#000;
10
+ }
11
+ img {
12
+ border: 0;
13
+ }
14
+ a:link, a:visited {
15
+ color:#4C6A8B;
16
+ text-decoration:none;
17
+ }
18
+ a:visited {
19
+ color:#767676;
20
+ }
21
+ a:hover {
22
+ color:#F16F7F;
23
+ }
24
+ form input[type=file] {
25
+ /* width:100px;*/
26
+ }
27
+ h1,h2,h3,h4,h5 {
28
+ padding-left:0px;
29
+ padding-right:0px;
30
+ color:#333;
31
+ }
32
+ p {
33
+ padding: 10px;
34
+ }
35
+ h3 {
36
+ margin: 10px 0px;
37
+ }
38
+ h5 {
39
+ margin: 10px 0px;
40
+ font-size:12px;
41
+ color:#666;
42
+ /* border-bottom:1px solid #E5E5E5;*/
43
+ text-decoration:underline;
44
+ }
45
+ ul {
46
+ list-style:none;
47
+ padding:5px;
48
+ margin:0px 10px;
49
+ }
50
+ ul li {
51
+ padding: 5px 0px;
52
+ }
53
+ label {
54
+ font-size:12px;
55
+ }
56
+ p label, label.form_label {
57
+ float:left;
58
+ width:120px;
59
+ color:#666;
60
+ padding:5px 0px;
61
+ }
62
+ p label.radio_label {
63
+ width:auto;
64
+ float:none;
65
+ margin-left: 10px;
66
+ vertical-align:bottom;
67
+ }
68
+ form p {
69
+ padding: 8px 10px;
70
+ }
71
+ input, textarea {
72
+ font-family:Helvetica, Arial, sans-serif;
73
+ font-size: 14px;
74
+ padding: 4px;
75
+ border: 1px solid #333;
76
+ vertical-align:middle;
77
+ }
78
+ textarea {
79
+ font-family:Monaco, Courier, fixed;
80
+ font-size:12px;
81
+ }
82
+ input.title {
83
+ font-size: 22px;
84
+ font-weight:bold;
85
+ }
86
+ input[type=button], input[type=submit] {
87
+ color:#FFF;
88
+ background:#333;
89
+ border:1px solid #E5E5E5;
90
+ padding:4px 12px;
91
+ }
92
+ input[type=button] {
93
+ background:#666;
94
+ }
95
+ form p strong {
96
+ margin:5px 0px;
97
+ }
98
+ form p strong {
99
+ display:block;
100
+ }
101
+ option {
102
+ padding: 0px 4px;
103
+ }
104
+
105
+ #header {
106
+ padding: 0px 20px;
107
+ height:60px;
108
+ background: #000;
109
+ color:#FFF;
110
+ }
111
+ #header h1 {
112
+ color:#FFF;
113
+ padding:20px 0px;
114
+ margin:0px;
115
+ }
116
+ #loginbox {
117
+ position:absolute;
118
+ top: 10px;
119
+ right: 20px;
120
+ color:#CCC;
121
+ }
122
+ #content {
123
+ padding: 20px;
124
+ }
125
+
126
+ #menu {
127
+ width: auto;
128
+ font-size: 14px;
129
+ border-bottom: 1px solid #000;
130
+ background:#F34D84;
131
+ }
132
+ #menu ul {
133
+ padding: 0px;
134
+ margin:0px;
135
+ }
136
+ #menu ul li {
137
+ float:left;
138
+ margin:0px;
139
+ padding:0px;
140
+ }
141
+ #menu ul li a:link, #menu ul li a:visited {
142
+ font-weight: bold;
143
+ color: #FFF;
144
+ text-decoration: none;
145
+ padding: 4px 10px;
146
+ display:block;
147
+ }
148
+ #menu ul li a:hover {
149
+ color: #CCC;
150
+ background:#000;
151
+ }
152
+ #menu ul li a.selected {
153
+ color:#999;
154
+ background:#333;
155
+ }
156
+
157
+ #footer {
158
+ margin: 20px 0px;
159
+ font-size: 10px;
160
+ color:#999;
161
+ width:auto;
162
+ text-align:center;
163
+ }
164
+ /******************************************************
165
+ * left menu *
166
+ \*****************************************************/
167
+ #main {
168
+ background:#FEFEFE;
169
+ }
170
+ #left_menu {
171
+ position:absolute;
172
+ top:60px;
173
+ left:0px;
174
+ width:150px;
175
+ }
176
+ #content {
177
+ background:#FFF;
178
+ border-left:1px solid #E5E5E5;
179
+ margin: 0px 0px 0px 150px;
180
+ }
181
+ #left_menu .menu {
182
+ border-bottom:1px solid #E5E5E5;
183
+ margin:5px 0px;
184
+ padding:0px;
185
+ }
186
+ #left_menu .menu li {
187
+ font-size:14px;
188
+ font-weight:bold;
189
+ margin:0px;
190
+ padding:0px;
191
+ }
192
+ #left_menu .menu li a:link, #left_menu .menu li a:visited {
193
+ color:#4C6A8B;
194
+ padding: 5px 15px;
195
+ display:block;
196
+ }
197
+ #left_menu .menu li a:hover {
198
+ color:#FFF;
199
+ background:#666;
200
+ }
201
+ #left_menu .menu li a.selected {
202
+ color:#FFF;
203
+ background:#333;
204
+ }
205
+ #left_menu h3 {
206
+ color:#666;
207
+ font-size:12px;
208
+ margin:10px 0px 0px 15px;
209
+ }
210
+
211
+
212
+ /******************************************************
213
+ * admin controls *
214
+ \*****************************************************/
215
+
216
+ span.control {
217
+ position:relative;
218
+ float:right;
219
+ top:-20px;
220
+ text-align:right;
221
+ font-size:11px;
222
+ }
223
+ table {
224
+ width:99%;
225
+ margin: 10px 0px;
226
+ border-collapse: collapse;
227
+ }
228
+ th, td {
229
+ border-bottom: 1px solid #E5E5E5;
230
+ padding: 6px 4px 6px 0px;
231
+ text-align: center;
232
+ }
233
+ .first_col {
234
+ text-align: left;
235
+ }
236
+ .total {
237
+ text-align: right;
238
+ padding: 10px;
239
+ margin-right: 100px;
240
+ }
241
+ fieldset, .fields_group {
242
+ margin: 10px 0px 0px 0px;
243
+ background:#F5F5F5;
244
+ border:1px solid #E5E5E5;
245
+ padding:0px 0px 5px;
246
+ }
247
+ .fields_group {
248
+ background:#F9F9F9;
249
+ padding: 10px;
250
+ }
251
+ legend {
252
+ font-weight: bold;
253
+ font-size:14px;
254
+ color:#333;
255
+ background:#F5F5F5;
256
+ border-top:1px solid #E5E5E5;
257
+ padding: 5px 5px;
258
+ margin: 0px 5px;
259
+ }
260
+ ul.admin_controls {
261
+ margin: 10px 0px;
262
+ padding: 0px;
263
+ border-top: 1px solid #E5E5E5;
264
+ border-bottom: 1px solid #E5E5E5;
265
+ background: #F7F7F7;
266
+ height:24px;
267
+ }
268
+ ul.admin_controls li {
269
+ float:left;
270
+ list-style-type:none;
271
+ padding:0px;
272
+ margin: 0px 4px;
273
+ }
274
+ ul.admin_controls li a:link, ul.admin_controls li a:visited {
275
+ padding: 4px 8px;
276
+ display:block;
277
+ }
278
+ ul.admin_controls li a:hover {
279
+ background:#CCCCCC;
280
+ color: #000000;
281
+ }
282
+ ul.admin_controls li img {
283
+ vertical-align: bottom;
284
+ }
285
+
286
+
287
+ /******************************************************
288
+ * departments *
289
+ \*****************************************************/
290
+ .departments_list {
291
+ font-size: 14px;
292
+ padding: 10px;
293
+ margin: 0px;
294
+ }
295
+ .departments_list li {
296
+ list-style-type: none;
297
+ padding: 5px 0px;
298
+ margin: 0px;
299
+ }
300
+ .departments_list li ul li {
301
+ font-size: 13px;
302
+ }
303
+ .sort_handle {
304
+ display:none;
305
+ font-size:8px;
306
+ font-weight:bold;
307
+ font-style:normal;
308
+ color:#CCC;
309
+ background:#666;
310
+ padding:2px;
311
+ margin: 0px 4px;
312
+ cursor: move;
313
+ }
314
+ .controls {
315
+ font-size: 10px;
316
+ background: #E5E5E5;
317
+ padding: 2px;
318
+ }
319
+ .promos_list tr {
320
+ }
321
+ .departments_list.sorting .sort_handle,
322
+ .promos_list.sorting .sort_handle {
323
+ display:inline;
324
+ }
325
+ .departments_list.sorting li .controls,
326
+ .promos_list.sorting .promo_image {
327
+ display:none;
328
+ }
329
+
330
+ /******************************************************
331
+ * file selector/browser *
332
+ \*****************************************************/
333
+ .file_selector {
334
+ /* position: relative;*/
335
+ width:auto;
336
+
337
+ }
338
+ .file_selector .alt {
339
+ background:#B2D5FF;
340
+ }
341
+ .file_browser {
342
+ margin:0px 10px;
343
+ width:auto;
344
+ max-width:500px;
345
+ height:310px;
346
+ overflow:auto;
347
+ border:1px solid #CCC;
348
+ background-attachment: fixed;
349
+ /* border-left:1px solid #E5E5E5;
350
+ border-bottom:1px solid #E5E5E5;
351
+ */
352
+ }
353
+ .file_browser_setter {
354
+ clear:both;
355
+ }
356
+
357
+ .file_selector.selector_open {
358
+ border-top:1px solid #E5E5E5;
359
+ border-bottom:1px solid #E5E5E5;
360
+ }
361
+ .file_browser_setter .pane {
362
+ padding: 10px 0px;
363
+ background:#FFF;
364
+ }
365
+ .file_selector_browse_toggle {
366
+ position:relative;
367
+ top:0px;
368
+ right:10px;
369
+ }
370
+ ul.directory_list {
371
+ margin:0px;
372
+ padding:0px;
373
+ list-style-type:none;
374
+ /* background: url(/images/file_browser/bg_alternating.gif) 0 0 repeat;*/
375
+ }
376
+ ul.directory_list a:link, ul.directory_list a:visited {
377
+ color:#000;
378
+ padding:2px 0px;
379
+ }
380
+ .file_browser_current ul.directory_list {
381
+ display:inline;
382
+ float:left;
383
+ width:300px;
384
+ }
385
+ li.directory a {
386
+ font-weight:bold;
387
+ display: block;
388
+ }
389
+ li.file a {
390
+ font-weight:normal;
391
+ }
392
+ li.file a.disabled {
393
+ color:#BEBEBE;
394
+ cursor:default;
395
+ }
396
+ ul.directory_list li {
397
+ display:block;
398
+ padding: 4px 0px 0px 12px;
399
+ cursor:pointer;
400
+ clear:both;
401
+ }
402
+ ul.directory_list li img.directory_loading {
403
+ vertical-align:middle;
404
+ margin: 2px;
405
+ }
406
+ ul.directory_list li a.selected {
407
+ background-color:#2E75D9;
408
+ color:#FFF;
409
+ }
410
+ span.file_icon {
411
+ background:url(/images/admin/file_browser/icon_file.png) 0px 0px no-repeat;
412
+ display:block;
413
+ margin:-2px 4px 0 0;
414
+ padding:0px;
415
+ width:16px;
416
+ height:20px;
417
+ float:left;
418
+ vertical-align:middle;
419
+ }
420
+ span.icon_directory {
421
+ background:url(/images/admin/file_browser/icon_directory.png) 0px 0px no-repeat;
422
+ }
423
+ span.icon_file_jpg, span.icon_file_png, span.icon_file_gif {
424
+ background:url(/images/admin/file_browser/icon_photo.png) 0px 0px no-repeat;
425
+ }
426
+ span.icon_file_flv, span.icon_file_mov {
427
+ background:url(/images/admin/file_browser/icon_video.png) 0px 0px no-repeat;
428
+ }
429
+ span.icon_file_pdf {
430
+ background:url(/images/admin/file_browser/icon_pdf.png) 0px 0px no-repeat;
431
+ }
432
+ ul.file_menu {
433
+ width:100px;
434
+ background:#FFF;
435
+ border:1px solid #E5E5E5;
436
+ padding:0px;
437
+ margin:0px;
438
+ z-index:100;
439
+ }
440
+ ul.file_menu li.file_menu_item {
441
+ padding:0px;
442
+ cursor:pointer;
443
+ /* border-bottom:1px solid #E5E5E5;*/
444
+ }
445
+ ul.file_menu li.file_menu_item a {
446
+ padding: 4px 12px;
447
+ display:block;
448
+ }
449
+ ul.file_menu li.file_menu_item a.disabled {
450
+ color:#BEBEBE;
451
+ cursor:default;
452
+ }
453
+ ul.file_menu li.file_menu_item a:hover {
454
+ background:#2E75D9;
455
+ color:#fff;
456
+ }
457
+ ul.file_menu li.file_menu_item a.disabled:hover {
458
+ background:none;
459
+ color:#BEBEBE;
460
+ }
461
+ .mini_upload {
462
+ border:0px;
463
+ width:500px;
464
+ height:310px;
465
+ overflow:auto;
466
+ }
467
+ /******************************************************
468
+ * Tabs *
469
+ \*****************************************************/
470
+ .tabs ul {
471
+ position:relative;
472
+ width:auto;
473
+ height:20px;
474
+ list-style-type:none;
475
+ padding-left:15px;
476
+ margin:0px;
477
+ border-bottom: 1px solid #E5E5E5;
478
+ z-index:5;
479
+ vertical-align:bottom;
480
+ }
481
+ .tabs ul li {
482
+ float:left;
483
+ text-align:center;
484
+ margin: 0px 5px 0px 0px;
485
+ padding:5px 10px;
486
+ font-size: 12px;
487
+ font-weight:bold;
488
+ color:#999;
489
+ background-color:#f5f5f5;
490
+ border: 1px solid #E5E5E5;
491
+ /* background:url(/images/tab_bg.png) 0 0 no-repeat transparent;*/
492
+ cursor:pointer;
493
+ }
494
+ .tabs ul li.selected {
495
+ background:#FFF;
496
+ border-bottom:1px solid #FFF;
497
+ color:#000;
498
+ z-index:10;
499
+ }
500
+ /******************************************************
501
+ * stats *
502
+ \*****************************************************/
503
+ table.stats {
504
+ width: 500px;
505
+ border:1px solid #CCC;
506
+ border-collapse:collapse;
507
+ text-align:left;
508
+ }
509
+ table.stats th {
510
+ text-align:left;
511
+ vertical-align:top;
512
+ padding: 4px 10px;
513
+ }
514
+ table.stats td {
515
+ text-align:left;
516
+ }
517
+ /******************************************************
518
+ * pagination *
519
+ \*****************************************************/
520
+ .pagination {
521
+ width: 100%;
522
+ text-align:right;
523
+ margin: 0px 0px 20px 0px;
524
+ padding: 4px 0px;
525
+ background: #F7F7F7;
526
+ display:block;
527
+ color:#CCC;
528
+ font-weight:bold;
529
+ }
530
+ /*.pagination ul {
531
+ margin: 10px 0px;
532
+ padding: 0px;
533
+ font-size: 14px;
534
+ }
535
+ .pagination ul li {
536
+ list-style-type:none;
537
+ padding:0px;
538
+ margin: 0px 4px;
539
+ display:inline;
540
+ }
541
+ */
542
+ .pagination a, .pagination span {
543
+ padding:0px 5px;
544
+ /* display:block;
545
+ float:left;*/
546
+ }
547
+ .pagination span.current {
548
+ color:#333;
549
+ }
550
+ /******************************************************
551
+ * overlay *
552
+ \*****************************************************/
553
+ #overlay, .overlay {
554
+ position: absolute;
555
+ top: 0;
556
+ left: 0;
557
+ z-index: 20;
558
+ width: 100%;
559
+ height: 95%;
560
+ background-color: #333;
561
+ filter:alpha(opacity=55);
562
+ -moz-opacity: 0.55;
563
+ opacity: 0.55;
564
+ }
565
+ #mini_browser_overlay {
566
+ height:400px;
567
+ }
568
+ #overlay_holder {
569
+ position: absolute;
570
+ top: 0;
571
+ left: 0;
572
+ z-index: 20;
573
+ width: 100%;
574
+ text-align:center;
575
+ background:transparent;
576
+ }
577
+ .overlay_box {
578
+ width:415px;
579
+ height:auto;
580
+ background: #FFF;
581
+ position:relative;
582
+ top:25px;
583
+ margin:0px auto;
584
+ padding: 20px;
585
+ text-align:left;
586
+ border: 1px solid #CCC;
587
+ z-index: 50;
588
+ }
589
+ .overlay_close {
590
+ position: absolute;
591
+ top: 10px;
592
+ right:10px;
593
+ cursor: pointer;
594
+ }
595
+
596
+
597
+ /******************************************************
598
+ * error *
599
+ \*****************************************************/
600
+ p.need_login {
601
+ text-align:center;
602
+ font-size:12px;
603
+ font-weight:bold;
604
+ color:#999;
605
+ padding: 10px 0px;
606
+ }
607
+ .fieldWithErrors {
608
+ /* padding: 4px 2px 8px 2px;
609
+ background-color: #7F1F1F;
610
+ */ display: inline;
611
+ }
612
+
613
+
614
+ .fieldWithErrors input {
615
+ background:#F6E0CE;
616
+ border-bottom: 4px solid #4c0019;
617
+ }
618
+ #errorExplanation {
619
+ width: auto;
620
+ /* border: 2px solid #4c0019;*/
621
+ padding-bottom: 12px;
622
+ margin: 0px 0px 20px 0px;
623
+ background-color: #C83638;
624
+ color: #FFF;
625
+ }
626
+
627
+ #errorExplanation h2 {
628
+ text-align: left;
629
+ padding: 5px 5px 5px 10px;
630
+ font-size: 14px;
631
+ margin: 0px;
632
+ background-color: #4c0019;
633
+ color: #fff;
634
+ }
635
+
636
+ #errorExplanation p {
637
+ margin-bottom: 0;
638
+ padding: 10px;
639
+ }
640
+ #errorExplanation ul li {
641
+ font-size: 14px;
642
+ list-style-type: square;
643
+ margin: 2px 20px;
644
+ }
645
+ .message {
646
+ width:auto;
647
+ background:#FFFCCC;
648
+ margin:10px 0px 20px 0px;
649
+ padding:10px;
650
+ font-size:14px;
651
+ font-weight:bold;
652
+ color:#333;
653
+ }
654
+
655
+ span.message {
656
+ background:none;
657
+ border:none;
658
+ color: #FFC;
659
+ }
660
+ .message a {
661
+ text-decoration:none;
662
+ }
663
+ .message.warning {
664
+ background:#C83638;
665
+ color:#FFF;
666
+ }
667
+
668
+ .error_page {
669
+ font-size:16px;
670
+ width:100%;
671
+ text-align:center;
672
+ padding: 100px 0px;
673
+ }
674
+ .hr {
675
+ height: 1px;
676
+ margin: 10px 0px;
677
+ border-bottom: 1px solid #CCC;
678
+ }
679
+ .clear {
680
+ clear:both;
681
+ line-height: 0px;
682
+ height: 0px;
683
+ }