admin_data 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. data/History.txt +221 -0
  2. data/README.textile +21 -0
  3. data/Rakefile +46 -0
  4. data/app/controllers/admin_data/base_controller.rb +114 -0
  5. data/app/controllers/admin_data/diagnostic_controller.rb +28 -0
  6. data/app/controllers/admin_data/feed_controller.rb +17 -0
  7. data/app/controllers/admin_data/main_controller.rb +132 -0
  8. data/app/controllers/admin_data/migration_controller.rb +19 -0
  9. data/app/controllers/admin_data/search_controller.rb +125 -0
  10. data/app/controllers/admin_data/validate_model_controller.rb +106 -0
  11. data/app/views/admin_data/diagnostic/index.html.erb +17 -0
  12. data/app/views/admin_data/diagnostic/missing_index.html.erb +26 -0
  13. data/app/views/admin_data/feed/index.rss.builder +24 -0
  14. data/app/views/admin_data/main/all_models.html.erb +22 -0
  15. data/app/views/admin_data/main/association/_association_info.html.erb +10 -0
  16. data/app/views/admin_data/main/association/_belongs_to_info.html.erb +7 -0
  17. data/app/views/admin_data/main/association/_has_many_info.html.erb +7 -0
  18. data/app/views/admin_data/main/association/_has_one_info.html.erb +6 -0
  19. data/app/views/admin_data/main/edit.html.erb +38 -0
  20. data/app/views/admin_data/main/misc/_form.html.erb +25 -0
  21. data/app/views/admin_data/main/misc/_modify_record.html.erb +22 -0
  22. data/app/views/admin_data/main/new.html.erb +23 -0
  23. data/app/views/admin_data/main/show.html.erb +41 -0
  24. data/app/views/admin_data/main/table_structure.html.erb +55 -0
  25. data/app/views/admin_data/migration/index.html.erb +18 -0
  26. data/app/views/admin_data/migration/jstest.html.erb +51 -0
  27. data/app/views/admin_data/search/_search_base.html.erb +34 -0
  28. data/app/views/admin_data/search/advance_search.html.erb +3 -0
  29. data/app/views/admin_data/search/quick_search.html.erb +6 -0
  30. data/app/views/admin_data/search/search/_advance_search_form.html.erb +48 -0
  31. data/app/views/admin_data/search/search/_errors.html.erb +5 -0
  32. data/app/views/admin_data/search/search/_listing.html.erb +40 -0
  33. data/app/views/admin_data/search/search/_search_form.html.erb +28 -0
  34. data/app/views/admin_data/search/search/_sortby.html.erb +18 -0
  35. data/app/views/admin_data/search/search/_title.html.erb +34 -0
  36. data/app/views/admin_data/shared/_breadcrum.html.erb +10 -0
  37. data/app/views/admin_data/shared/_drop_down_klasses.html.erb +4 -0
  38. data/app/views/admin_data/shared/_flash_message.html.erb +13 -0
  39. data/app/views/admin_data/shared/_header.html.erb +23 -0
  40. data/app/views/admin_data/shared/_powered_by.html.erb +23 -0
  41. data/app/views/admin_data/shared/_secondary_navigation.html.erb +28 -0
  42. data/app/views/admin_data/validate_model/_bad.html.erb +1 -0
  43. data/app/views/admin_data/validate_model/tid.html.erb +2 -0
  44. data/app/views/admin_data/validate_model/validate.html.erb +67 -0
  45. data/app/views/layouts/admin_data.html.erb +60 -0
  46. data/config/routes.rb +34 -0
  47. data/init.rb +1 -0
  48. data/lib/admin_data.rb +34 -0
  49. data/lib/admin_data/chelper.rb +37 -0
  50. data/lib/admin_data/compatibility.rb +7 -0
  51. data/lib/admin_data/helpers.rb +222 -0
  52. data/lib/admin_data/railtie.rb +21 -0
  53. data/lib/admin_data/search.rb +186 -0
  54. data/lib/admin_data/settings.rb +72 -0
  55. data/lib/admin_data/util.rb +237 -0
  56. data/lib/admin_data/version.rb +3 -0
  57. data/lib/admin_data_date_validation.rb +79 -0
  58. data/lib/css/app.css +224 -0
  59. data/lib/css/base.css +1071 -0
  60. data/lib/css/header.css +65 -0
  61. data/lib/css/rounded.css +18 -0
  62. data/lib/css/themes/drastic-dark/style.css +374 -0
  63. data/lib/css/umbrella.css +34 -0
  64. data/lib/css/vendor/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png +0 -0
  65. data/lib/css/vendor/images/ui-bg_dots-small_65_a6a6a6_2x2.png +0 -0
  66. data/lib/css/vendor/images/ui-bg_flat_0_333333_40x100.png +0 -0
  67. data/lib/css/vendor/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
  68. data/lib/css/vendor/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  69. data/lib/css/vendor/images/ui-bg_glass_55_fbf8ee_1x400.png +0 -0
  70. data/lib/css/vendor/images/ui-bg_highlight-hard_100_eeeeee_1x100.png +0 -0
  71. data/lib/css/vendor/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png +0 -0
  72. data/lib/css/vendor/images/ui-bg_highlight-soft_15_cc0000_1x100.png +0 -0
  73. data/lib/css/vendor/images/ui-icons_004276_256x240.png +0 -0
  74. data/lib/css/vendor/images/ui-icons_cc0000_256x240.png +0 -0
  75. data/lib/css/vendor/images/ui-icons_ffffff_256x240.png +0 -0
  76. data/lib/css/vendor/jquery-ui-1.7.2.custom.css +406 -0
  77. data/lib/css/vendor/qunit.css +119 -0
  78. data/lib/js/advance_search/act_on_result.js +47 -0
  79. data/lib/js/advance_search/adv_search.js +46 -0
  80. data/lib/js/advance_search/advance_search.js +60 -0
  81. data/lib/js/advance_search/advance_search_structure.js +79 -0
  82. data/lib/js/advance_search/ajaxify_advance_search.js +28 -0
  83. data/lib/js/advance_search/build_first_row.js +12 -0
  84. data/lib/js/advance_search/event_bindings.js +87 -0
  85. data/lib/js/advance_search/global_ajax_setting.js +10 -0
  86. data/lib/js/advance_search/trigger_submit_on_domready.js +6 -0
  87. data/lib/js/misc/drop_down_change.js +8 -0
  88. data/lib/js/misc/js_util.js +42 -0
  89. data/lib/js/misc/quick_search_input_focus.js +6 -0
  90. data/lib/js/test/act_on_result.js +120 -0
  91. data/lib/js/test/advance_search.js +80 -0
  92. data/lib/js/test/ajaxify_advance_search.js +29 -0
  93. data/lib/js/test/build_first_row.js +10 -0
  94. data/lib/js/test/event_bindings.js +100 -0
  95. data/lib/js/validate_model/ajaxify_form.js +66 -0
  96. data/lib/js/validate_model/select_all.js +15 -0
  97. data/lib/js/vendor/jack.js +903 -0
  98. data/lib/js/vendor/jquery-1.4.1.js +6078 -0
  99. data/lib/js/vendor/jquery-ui-1.7.2.custom.min.js +298 -0
  100. data/lib/js/vendor/jquery.ba-isjquery.js +21 -0
  101. data/lib/js/vendor/jquery.form.js +814 -0
  102. data/lib/js/vendor/jquery.lint.js +604 -0
  103. data/lib/js/vendor/log.js +9 -0
  104. data/lib/js/vendor/qunit.js +1043 -0
  105. data/lib/tasks/admin_data_tasks.rake +7 -0
  106. data/lib/tasks/validate_models_bg.rake +23 -0
  107. data/test/factories/article.rb +9 -0
  108. data/test/factories/car.rb +4 -0
  109. data/test/factories/city.rb +4 -0
  110. data/test/factories/comment.rb +6 -0
  111. data/test/factories/door.rb +4 -0
  112. data/test/factories/engine.rb +4 -0
  113. data/test/functional/base_controller_test.rb +5 -0
  114. data/test/functional/feed_controller_test.rb +34 -0
  115. data/test/functional/main_controller_test.rb +421 -0
  116. data/test/functional/migration_controller_test.rb +30 -0
  117. data/test/functional/routes_test.rb +61 -0
  118. data/test/functional/search_controller_test.rb +814 -0
  119. data/test/helper/view_helper_test.rb +177 -0
  120. data/test/misc_tests/date_validation_test.rb +32 -0
  121. data/test/misc_tests/settings_test.rb +29 -0
  122. data/test/misc_tests/util_test.rb +83 -0
  123. data/test/rails_root/Gemfile +22 -0
  124. data/test/rails_root/Gemfile.lock +101 -0
  125. data/test/rails_root/Rakefile +7 -0
  126. data/test/rails_root/app/controllers/application_controller.rb +3 -0
  127. data/test/rails_root/app/helpers/application_helper.rb +2 -0
  128. data/test/rails_root/app/models/article.rb +25 -0
  129. data/test/rails_root/app/models/city.rb +15 -0
  130. data/test/rails_root/app/models/comment.rb +13 -0
  131. data/test/rails_root/app/models/tech_magazine.rb +2 -0
  132. data/test/rails_root/app/models/vehicle/car.rb +4 -0
  133. data/test/rails_root/app/models/vehicle/door.rb +3 -0
  134. data/test/rails_root/app/models/vehicle/engine.rb +3 -0
  135. data/test/rails_root/app/views/layouts/application.html.erb +14 -0
  136. data/test/rails_root/config.ru +4 -0
  137. data/test/rails_root/config/application.rb +42 -0
  138. data/test/rails_root/config/boot.rb +13 -0
  139. data/test/rails_root/config/database.yml +22 -0
  140. data/test/rails_root/config/environment.rb +5 -0
  141. data/test/rails_root/config/environments/development.rb +22 -0
  142. data/test/rails_root/config/environments/production.rb +49 -0
  143. data/test/rails_root/config/environments/test.rb +35 -0
  144. data/test/rails_root/config/initializers/backtrace_silencers.rb +7 -0
  145. data/test/rails_root/config/initializers/inflections.rb +10 -0
  146. data/test/rails_root/config/initializers/mime_types.rb +5 -0
  147. data/test/rails_root/config/initializers/secret_token.rb +7 -0
  148. data/test/rails_root/config/initializers/session_store.rb +8 -0
  149. data/test/rails_root/config/locales/en.yml +5 -0
  150. data/test/rails_root/config/routes.rb +58 -0
  151. data/test/rails_root/db/migrate/20090809061114_create_tables.rb +70 -0
  152. data/test/rails_root/db/schema.rb +74 -0
  153. data/test/rails_root/db/seeds.rb +7 -0
  154. data/test/rails_root/script/rails +6 -0
  155. data/test/rails_root/test/performance/browsing_test.rb +0 -0
  156. data/test/rails_root/test/test_helper.rb +13 -0
  157. data/test/support/assertions.rb +20 -0
  158. data/test/test_helper.rb +74 -0
  159. metadata +321 -0
@@ -0,0 +1,65 @@
1
+ #header {
2
+ float: left;
3
+ width: 100%;
4
+ background: #003366;
5
+ font-size: 20px;
6
+ }
7
+
8
+ #iheader {
9
+ margin: 0 auto;
10
+ width: 950px;
11
+ }
12
+
13
+ #logo {
14
+ float: left;
15
+ color: #fff;
16
+ font-size: 30px;
17
+ padding: 5px 35px 0 5px;
18
+ }
19
+
20
+ #logo a {
21
+ color: #fff;
22
+ text-decoration: none;
23
+ }
24
+
25
+ #logo a:hover {
26
+ text-decoration: underline;
27
+ }
28
+
29
+ #header ul {
30
+ list-style: none;
31
+ padding: 10px 0 0 20px;
32
+ margin: 0;
33
+ }
34
+
35
+ #header ul li {
36
+ float: left;
37
+ border: 1px solid;
38
+ border-bottom-width: 0;
39
+ margin: 0 0.5em 0 0;
40
+ }
41
+
42
+ #header ul li#selected {
43
+ position: relative;
44
+ top: 1px;
45
+ }
46
+
47
+ #header ul li a {
48
+ display: block;
49
+ padding: 5px 6px 0 6px;
50
+ text-decoration: none;
51
+ color: white;
52
+ background: #1a4f85;
53
+ }
54
+
55
+ #header ul li#selected a {
56
+ background: #fff;
57
+ color: #1a4f85;
58
+ }
59
+
60
+ #header ul li a:hover {
61
+ background: #539ADF;
62
+ }
63
+
64
+
65
+
@@ -0,0 +1,18 @@
1
+ input[type="button"] { cursor: pointer; }
2
+ input.button { cursor: pointer; }
3
+
4
+ .element { border: 1px solid red; }
5
+
6
+ .rounded{
7
+ -moz-border-radius: 5px; /* Firefox */
8
+ -webkit-border-radius: 5px; /* Safari */
9
+ }
10
+
11
+ .flash .error {
12
+ background: #c00;
13
+ color: #fff;
14
+ }
15
+
16
+ .flash .message {
17
+ text-align: left;
18
+ }
@@ -0,0 +1,374 @@
1
+ /*
2
+
3
+ Drastic Dark
4
+ by Juan Maria Martinez Arce
5
+ juan[at]insignia4u.com
6
+
7
+ light grey: #ededec
8
+ medium grey: #36393d
9
+ dark grey: #1a1a1a
10
+ interactive action yellow #ffff88
11
+ red #cc0000
12
+ light blue #E6EEFC
13
+ dark blue #0B43A8
14
+
15
+ */
16
+
17
+ .small {
18
+ font-size: 11px;
19
+ font-style: normal;
20
+ font-weight: normal;
21
+ text-transform: normal;
22
+ letter-spacing: normal;
23
+ line-height: 1.4em;
24
+ }
25
+
26
+ .gray {
27
+ color:#999999;
28
+ font-family: Georgia, serif;
29
+ font-size: 13px;
30
+ font-style: italic;
31
+ font-weight: normal;
32
+ text-transform: normal;
33
+ letter-spacing: normal;
34
+ line-height: 1.6em;
35
+ }
36
+
37
+ .hightlight {
38
+ background-color: #ffff88;
39
+ font-weight: bold;
40
+ color: #36393d;
41
+ }
42
+
43
+ a:link, a:visited, a:hover, a:active, h1, h2, h3 { color: #36393d; }
44
+ a { -moz-outline: none; }
45
+
46
+ body {
47
+ color: #222;
48
+ background: #ededec;
49
+ font-family: helvetica, arial, sans-serif;
50
+ }
51
+
52
+ hr {
53
+ background: #f0f0ee;
54
+ color: #f0f0ee;
55
+ }
56
+
57
+ #header {
58
+ background: #36393d;
59
+ }
60
+
61
+ #header h1 {
62
+ padding: 15px 0;
63
+ font-size: 28px;
64
+ font-style: normal;
65
+ font-weight: bold;
66
+ text-transform: normal;
67
+ letter-spacing: -1px;
68
+ line-height: 1.2em;
69
+ }
70
+
71
+ #header h1 a:link, #header h1 a:active, #header h1 a:hover, #header h1 a:visited {
72
+ color: #FFF;
73
+ }
74
+
75
+ #user-navigation {
76
+ top: auto;
77
+ bottom: 5px;
78
+ right: 25px;
79
+ }
80
+
81
+ #user-navigation a.logout {
82
+ background: #cc0000;
83
+ padding: 1px 4px;
84
+ -moz-border-radius: 4px;
85
+ -webkit-border-radius: 3px;
86
+ }
87
+
88
+ #main .block .content {
89
+ background: #FFF;
90
+ padding-top: 1px;
91
+ }
92
+
93
+ #main .block .content h2 {
94
+ margin-left: 15px;
95
+ font-size: 22px;
96
+ font-style: normal;
97
+ font-weight: bold;
98
+ text-transform: normal;
99
+ letter-spacing: -1px;
100
+ line-height: 1.2em;
101
+ }
102
+
103
+ #main .block .content p {
104
+ font-size: 13px;
105
+ font-style: normal;
106
+ font-weight: normal;
107
+ text-transform: normal;
108
+ letter-spacing: normal;
109
+ line-height: 1.45em;
110
+ }
111
+
112
+ #sidebar .block {
113
+ background: #FFF;
114
+ }
115
+
116
+ #sidebar .block h4 {
117
+ font-weight: bold;
118
+ }
119
+
120
+ #sidebar .notice {
121
+ background: #E6EEFC;
122
+ }
123
+
124
+ #sidebar .notice h4 {
125
+ color: #0B43A8;
126
+ }
127
+
128
+ #sidebar h3 {
129
+ background: #36393d;
130
+ color: #FFF;
131
+ border-bottom: 5px solid #1a1a1a;
132
+ }
133
+
134
+ #main-navigation ul li {
135
+ padding-left: 15px;
136
+ }
137
+
138
+ #main-navigation ul li a {
139
+ padding: 8px 0;
140
+ }
141
+
142
+ #main-navigation ul li.active {
143
+ padding: 0;
144
+ margin-left: 15px;
145
+ }
146
+
147
+ #main-navigation ul li.active {
148
+ margin-left: 15px;
149
+ }
150
+
151
+ #main-navigation ul li.active a {
152
+ padding: 8px 15px;
153
+ }
154
+
155
+ #sidebar ul li a:link, #sidebar ul li a:visited {
156
+ background: #FFF;
157
+ border-bottom: 1px solid #F0F0EE;
158
+ text-decoration: none;
159
+ }
160
+
161
+ #sidebar ul li a:hover, #sidebar ul li a:active {
162
+ background: #666666;
163
+ color: #ffffff;;
164
+ }
165
+
166
+ #main-navigation {
167
+ background: #1a1a1a;
168
+ }
169
+
170
+ #main-navigation ul li {
171
+ background: #1a1a1a;
172
+ margin-right: 0;
173
+ }
174
+
175
+ #main-navigation ul li.active {
176
+ background: #f0f0ee;
177
+ }
178
+
179
+ #main-navigation ul li a:link, #main-navigation ul li a:visited, #main-navigation ul li a:hover, #main-navigation ul li a:active,
180
+ .secondary-navigation ul li a:link, .secondary-navigation ul li a:visited, .secondary-navigation ul li a:hover, .secondary-navigation ul li a:active,
181
+ #user-navigation ul li a:link, #user-navigation ul li a:visited, #user-navigation ul li a:hover, #user-navigation ul li a:active {
182
+ text-decoration: none;
183
+ color: #FFF;
184
+ }
185
+
186
+ .secondary-navigation li a:hover {
187
+ background: #666666;
188
+ }
189
+
190
+ #main-navigation ul li.active a:link, #main-navigation ul li.active a:visited, #main-navigation ul li.active a:hover, #main-navigation ul li.active a:active {
191
+ color: #1a1a1a;
192
+ }
193
+
194
+ .secondary-navigation {
195
+ background: #36393d;
196
+ border-bottom-color: #4F8AFF;
197
+ }
198
+
199
+ .secondary-navigation ul li.active, .secondary-navigation ul li.active a:hover {
200
+ background: #1a1a1a;
201
+ background: #4F8AFF;
202
+ }
203
+
204
+ #footer .block {
205
+ color: #FFF;
206
+ background: #1a1a1a;
207
+ }
208
+
209
+ #footer .block p {
210
+ margin: 0;
211
+ padding: 10px;
212
+ }
213
+
214
+ /* pagination */
215
+
216
+ .pagination a, .pagination span {
217
+ background: #ededec;
218
+ -moz-border-radius: 3px;
219
+ border: 1px solid #c1c1c1;
220
+ }
221
+
222
+ .pagination span.current {
223
+ background: #36393d;
224
+ color: #FFF;
225
+ border: 1px solid #36393d;
226
+ }
227
+
228
+ .pagination a {
229
+ color: #1a1a1a;
230
+ }
231
+
232
+ .pagination a:hover {
233
+ border: 1px solid #666;
234
+ }
235
+
236
+ /* tables */
237
+
238
+ .table th {
239
+ background: #36393d;
240
+ color: #FFF;
241
+ }
242
+
243
+ .table td {
244
+ border-bottom:1px solid #F0F0EE;
245
+ }
246
+
247
+ .table tr.even {
248
+ background: #ebebeb;
249
+ }
250
+
251
+ /* forms */
252
+
253
+ .form label.label {
254
+ color: #666666;
255
+ }
256
+
257
+ .form input.text_field, .form textarea.text_area {
258
+ width: 100%;
259
+ border: 1px solid #ededec;
260
+ }
261
+
262
+ .form input.button {
263
+ background: #ededec;
264
+ -moz-border-radius: 5px;
265
+ border: 1px solid #c1c1c1;
266
+ padding: 2px 5px;
267
+ cursor: pointer;
268
+ color: #36393d;
269
+ font-weight: bold;
270
+ font-size: 11px;
271
+ }
272
+
273
+ .form input.button:hover {
274
+ border: 1px solid #666;
275
+ }
276
+
277
+ .form .description {
278
+ font-style: italic;
279
+ color: #8C8C8C;
280
+ font-size: .9em;
281
+ }
282
+
283
+ .form .navform a {
284
+ color: #cc0000;
285
+ }
286
+
287
+ /* flash-messages */
288
+ .flash .message {
289
+ -moz-border-radius: 3px;
290
+ -webkit-border-radius: 3px;
291
+ text-align:center;
292
+ margin: 0 auto 15px;
293
+
294
+ }
295
+
296
+ .flash .message p {
297
+ margin:8px;
298
+ }
299
+ .flash .error {
300
+ border: 1px solid #fbb;
301
+ background-color: #fdd;
302
+ }
303
+ .flash .warning {
304
+ border: 1px solid #fffaaa;
305
+ background-color: #ffffcc;
306
+ }
307
+ .flash .notice {
308
+ border: 1px solid #1FDF00;
309
+ background-color: #BBFFB6;
310
+ }
311
+
312
+ /* lists */
313
+
314
+ ul.list li {
315
+ border-bottom-color: #F0F0EE;
316
+ border-bottom-width: 1px;
317
+ border-bottom-style: solid;
318
+ }
319
+
320
+ ul.list li .item .avatar {
321
+ border-color: #F0F0EE;
322
+ border-width: 1px;
323
+ border-style: solid;
324
+ padding: 2px;
325
+ }
326
+
327
+ /* box */
328
+
329
+ #box .block {
330
+ background: #FFF;
331
+ }
332
+
333
+ #box .block h2 {
334
+ background: #36393d;
335
+ color: #FFF;
336
+ }
337
+
338
+
339
+ /* rounded borders */
340
+
341
+ #main, #main-navigation, #main-navigation li, .secondary-navigation, #main .block, #sidebar .block, #sidebar h3, ul.list li,
342
+ #footer .block, .form input.button, #box .block, #box .block h2 {
343
+ -moz-border-radius-topleft: 4px;
344
+ -webkit-border-top-left-radius: 4px;
345
+ -moz-border-radius-topright: 4px;
346
+ -webkit-border-top-right-radius: 4px;
347
+ }
348
+
349
+ .secondary-navigation li.first a, .secondary-navigation ul li.first, .table th.first, .table th.first {
350
+ -moz-border-radius-topleft: 4px;
351
+ -webkit-border-top-left-radius: 4px;
352
+ }
353
+
354
+ .table th.last {
355
+ -moz-border-radius-topright: 4px;
356
+ -webkit-border-top-right-radius: 4px;
357
+ }
358
+
359
+ .secondary-navigation ul li.first {
360
+ -moz-border-radius-topleft: 4px;
361
+ -webkit-border-top-left-radius: 4px;
362
+ }
363
+
364
+ #sidebar, #sidebar .block, #main .block, #sidebar ul.navigation, ul.list li, #footer .block, .form input.button, #box .block {
365
+ -moz-border-radius-bottomleft: 4px;
366
+ -webkit-border-bottom-left-radius: 4px;
367
+ -moz-border-radius-bottomright: 4px;
368
+ -webkit-border-bottom-right-radius: 4px;
369
+ }
370
+
371
+ .secondary-navigation {
372
+ border-bottom-width: 5px;
373
+ }
374
+