admin_data 1.0.22 → 1.1.0

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.
Files changed (116) hide show
  1. data/History.txt +23 -16
  2. data/README.md +1 -1
  3. data/Rakefile +2 -2
  4. data/app/controllers/admin_data/application_controller.rb +111 -0
  5. data/app/controllers/admin_data/crud_controller.rb +100 -0
  6. data/app/controllers/admin_data/feed_controller.rb +38 -16
  7. data/app/controllers/admin_data/home_controller.rb +11 -0
  8. data/app/controllers/admin_data/migration_controller.rb +12 -12
  9. data/app/controllers/admin_data/public_controller.rb +29 -19
  10. data/app/controllers/admin_data/search_controller.rb +99 -103
  11. data/app/controllers/admin_data/table_structure_controller.rb +25 -0
  12. data/app/helpers/admin_data/application_helper.rb +287 -0
  13. data/app/views/admin_data/crud/association/_association_info.html.erb +11 -0
  14. data/app/views/admin_data/crud/association/_belongs_to_info.html.erb +7 -0
  15. data/app/views/admin_data/{main → crud}/association/_habtm_info.html.erb +3 -3
  16. data/app/views/admin_data/{main → crud}/association/_has_many_info.html.erb +3 -3
  17. data/app/views/admin_data/crud/association/_has_one_info.html.erb +6 -0
  18. data/app/views/admin_data/{main → crud}/edit.html.erb +9 -9
  19. data/app/views/admin_data/{main → crud}/misc/_form.html.erb +6 -6
  20. data/app/views/admin_data/{main → crud}/misc/_modify_record.html.erb +4 -4
  21. data/app/views/admin_data/{main → crud}/new.html.erb +7 -7
  22. data/app/views/admin_data/{main → crud}/show.html.erb +10 -10
  23. data/app/views/admin_data/{main → home}/index.html.erb +2 -2
  24. data/app/views/admin_data/migration/index.html.erb +3 -3
  25. data/app/views/admin_data/search/_search_base.html.erb +5 -5
  26. data/app/views/admin_data/search/quick_search.html.erb +4 -4
  27. data/app/views/admin_data/search/search/_listing.html.erb +11 -9
  28. data/app/views/admin_data/search/search/_sortby.html.erb +4 -3
  29. data/app/views/admin_data/search/search/_title.html.erb +7 -7
  30. data/app/views/admin_data/shared/_breadcrum.html.erb +11 -5
  31. data/app/views/admin_data/shared/_header.html.erb +6 -6
  32. data/app/views/admin_data/shared/_secondary_navigation.html.erb +13 -14
  33. data/app/views/admin_data/{main/table_structure.html.erb → table_structure/index.html.erb} +11 -11
  34. data/app/views/layouts/admin_data.html.erb +15 -15
  35. data/config/routes.rb +3 -3
  36. data/lib/admin_data.rb +29 -6
  37. data/lib/admin_data/active_record_util.rb +38 -6
  38. data/lib/admin_data/configuration.rb +113 -0
  39. data/lib/admin_data/deprecation.rb +31 -0
  40. data/lib/admin_data/railtie.rb +2 -7
  41. data/lib/admin_data/search.rb +1 -1
  42. data/lib/admin_data/util.rb +74 -161
  43. data/lib/admin_data/version.rb +1 -1
  44. data/test/rails_root/app/controllers/application_controller.rb +3 -0
  45. data/test/rails_root/app/helpers/application_helper.rb +5 -0
  46. data/test/rails_root/app/models/city.rb +22 -0
  47. data/test/rails_root/app/models/club.rb +3 -0
  48. data/test/rails_root/app/models/newspaper.rb +4 -0
  49. data/test/rails_root/app/models/phone_number.rb +3 -0
  50. data/test/rails_root/app/models/user.rb +17 -0
  51. data/test/rails_root/app/models/website.rb +3 -0
  52. data/test/rails_root/config/application.rb +42 -0
  53. data/test/rails_root/config/boot.rb +13 -0
  54. data/test/rails_root/config/environment.rb +5 -0
  55. data/test/rails_root/config/environments/development.rb +22 -0
  56. data/test/rails_root/config/environments/production.rb +49 -0
  57. data/test/rails_root/config/environments/test.rb +35 -0
  58. data/test/rails_root/config/initializers/admin_data.rb +22 -0
  59. data/test/rails_root/config/initializers/backtrace_silencers.rb +7 -0
  60. data/test/rails_root/config/initializers/empty_spaces_to_nil.rb +10 -0
  61. data/test/rails_root/config/initializers/inflections.rb +10 -0
  62. data/test/rails_root/config/initializers/mime_types.rb +5 -0
  63. data/test/rails_root/config/initializers/secret_token.rb +7 -0
  64. data/test/rails_root/config/initializers/session_store.rb +8 -0
  65. data/test/rails_root/config/routes.rb +9 -0
  66. data/test/rails_root/db/migrate/20091030202259_create_users.rb +55 -0
  67. data/test/rails_root/db/schema.rb +63 -0
  68. data/test/rails_root/db/seeds.rb +40 -0
  69. data/test/rails_root/features/step_definitions/advance_search_steps.rb +13 -0
  70. data/test/rails_root/features/step_definitions/app_steps.rb +40 -0
  71. data/test/rails_root/features/step_definitions/async.rb +18 -0
  72. data/test/rails_root/features/step_definitions/crud_show_steps.rb +37 -0
  73. data/test/rails_root/features/step_definitions/feed_steps.rb +3 -0
  74. data/test/rails_root/features/step_definitions/quick_search_steps.rb +65 -0
  75. data/test/rails_root/features/step_definitions/util.rb +86 -0
  76. data/test/rails_root/features/step_definitions/web_steps.rb +219 -0
  77. data/test/rails_root/features/support/env.rb +68 -0
  78. data/test/rails_root/features/support/paths.rb +33 -0
  79. data/test/rails_root/test/factories.rb +30 -0
  80. data/test/rails_root/test/performance/browsing_test.rb +9 -0
  81. data/test/rails_root/test/test_helper.rb +13 -0
  82. metadata +100 -49
  83. data/app/controllers/admin_data/base_controller.rb +0 -112
  84. data/app/controllers/admin_data/main_controller.rb +0 -141
  85. data/app/views/admin_data/main/association/_association_info.html.erb +0 -11
  86. data/app/views/admin_data/main/association/_belongs_to_info.html.erb +0 -7
  87. data/app/views/admin_data/main/association/_has_one_info.html.erb +0 -6
  88. data/lib/admin_data/chelper.rb +0 -37
  89. data/lib/admin_data/helpers.rb +0 -271
  90. data/lib/admin_data/settings.rb +0 -67
  91. data/lib/css/base.css +0 -1108
  92. data/lib/css/vendor/jquery-ui-1.7.2.custom.css +0 -406
  93. data/lib/js/advance_search/act_on_result.js +0 -45
  94. data/lib/js/advance_search/advance_search.js +0 -83
  95. data/lib/js/advance_search/advance_search_structure.js +0 -79
  96. data/lib/js/advance_search/ajaxify_advance_search.js +0 -28
  97. data/lib/js/advance_search/build_first_row.js +0 -8
  98. data/lib/js/advance_search/event_bindings.js +0 -76
  99. data/lib/js/advance_search/global_ajax_setting.js +0 -10
  100. data/lib/js/advance_search/trigger_submit_on_domready.js +0 -6
  101. data/lib/js/misc/drop_down_change.js +0 -8
  102. data/lib/js/misc/js_util.js +0 -58
  103. data/lib/js/misc/quick_search_input_focus.js +0 -6
  104. data/lib/js/test/act_on_result.js +0 -120
  105. data/lib/js/test/advance_search.js +0 -80
  106. data/lib/js/test/ajaxify_advance_search.js +0 -29
  107. data/lib/js/test/build_first_row.js +0 -10
  108. data/lib/js/test/event_bindings.js +0 -100
  109. data/lib/js/vendor/jack.js +0 -903
  110. data/lib/js/vendor/jquery-1.4.2.js +0 -6240
  111. data/lib/js/vendor/jquery-ui-1.7.2.custom.min.js +0 -298
  112. data/lib/js/vendor/jquery.ba-isjquery.js +0 -21
  113. data/lib/js/vendor/jquery.form.js +0 -814
  114. data/lib/js/vendor/log.js +0 -9
  115. data/lib/js/vendor/qunit.js +0 -1043
  116. data/lib/js/vendor/rails.js +0 -132
@@ -0,0 +1,30 @@
1
+ Factory.define :user do |f|
2
+ f.first_name 'Mary'
3
+ f.last_name 'Jane'
4
+ f.age 21
5
+ f.born_at {Time.parse('August 31 2010')}
6
+ end
7
+
8
+ Factory.define :website do |f|
9
+ f.url 'http://example.com'
10
+ f.association :user
11
+ end
12
+
13
+ Factory.define :phone_number do |f|
14
+ f.number '123-456-7890'
15
+ f.association :user
16
+ end
17
+
18
+ Factory.define :club do |f|
19
+ f.name 'sun-shine club'
20
+ f.association :user
21
+ end
22
+
23
+ Factory.define :newspaper do |f|
24
+ f.paper_id 'dc_express'
25
+ f.name 'DC Express'
26
+ end
27
+
28
+ Factory.define :city do |f|
29
+ f.name 'seattle'
30
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+ require 'rails/performance_test_help'
3
+
4
+ # Profiling results for each test method are written to tmp/performance.
5
+ class BrowsingTest < ActionDispatch::PerformanceTest
6
+ def test_homepage
7
+ get '/'
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rails/test_help'
4
+
5
+ class ActiveSupport::TestCase
6
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7
+ #
8
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
9
+ # -- they do not yet inherit this setting
10
+ fixtures :all
11
+
12
+ # Add more helper methods to be used by all tests here...
13
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: admin_data
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 22
10
- version: 1.0.22
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Neeraj Singh
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-27 00:00:00 -05:00
18
+ date: 2010-12-07 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -109,25 +109,27 @@ files:
109
109
  - History.txt
110
110
  - README.md
111
111
  - Rakefile
112
- - app/controllers/admin_data/base_controller.rb
112
+ - app/controllers/admin_data/application_controller.rb
113
+ - app/controllers/admin_data/crud_controller.rb
113
114
  - app/controllers/admin_data/feed_controller.rb
114
- - app/controllers/admin_data/main_controller.rb
115
+ - app/controllers/admin_data/home_controller.rb
115
116
  - app/controllers/admin_data/migration_controller.rb
116
117
  - app/controllers/admin_data/public_controller.rb
117
118
  - app/controllers/admin_data/search_controller.rb
119
+ - app/controllers/admin_data/table_structure_controller.rb
120
+ - app/helpers/admin_data/application_helper.rb
121
+ - app/views/admin_data/crud/association/_association_info.html.erb
122
+ - app/views/admin_data/crud/association/_belongs_to_info.html.erb
123
+ - app/views/admin_data/crud/association/_habtm_info.html.erb
124
+ - app/views/admin_data/crud/association/_has_many_info.html.erb
125
+ - app/views/admin_data/crud/association/_has_one_info.html.erb
126
+ - app/views/admin_data/crud/edit.html.erb
127
+ - app/views/admin_data/crud/misc/_form.html.erb
128
+ - app/views/admin_data/crud/misc/_modify_record.html.erb
129
+ - app/views/admin_data/crud/new.html.erb
130
+ - app/views/admin_data/crud/show.html.erb
118
131
  - app/views/admin_data/feed/index.rss.builder
119
- - app/views/admin_data/main/association/_association_info.html.erb
120
- - app/views/admin_data/main/association/_belongs_to_info.html.erb
121
- - app/views/admin_data/main/association/_habtm_info.html.erb
122
- - app/views/admin_data/main/association/_has_many_info.html.erb
123
- - app/views/admin_data/main/association/_has_one_info.html.erb
124
- - app/views/admin_data/main/edit.html.erb
125
- - app/views/admin_data/main/index.html.erb
126
- - app/views/admin_data/main/misc/_form.html.erb
127
- - app/views/admin_data/main/misc/_modify_record.html.erb
128
- - app/views/admin_data/main/new.html.erb
129
- - app/views/admin_data/main/show.html.erb
130
- - app/views/admin_data/main/table_structure.html.erb
132
+ - app/views/admin_data/home/index.html.erb
131
133
  - app/views/admin_data/migration/index.html.erb
132
134
  - app/views/admin_data/migration/jstest.html.erb
133
135
  - app/views/admin_data/search/_search_base.html.erb
@@ -145,45 +147,57 @@ files:
145
147
  - app/views/admin_data/shared/_header.html.erb
146
148
  - app/views/admin_data/shared/_powered_by.html.erb
147
149
  - app/views/admin_data/shared/_secondary_navigation.html.erb
150
+ - app/views/admin_data/table_structure/index.html.erb
148
151
  - app/views/layouts/admin_data.html.erb
149
152
  - config/routes.rb
150
153
  - lib/admin_data.rb
151
154
  - lib/admin_data/active_record_util.rb
152
- - lib/admin_data/chelper.rb
155
+ - lib/admin_data/configuration.rb
156
+ - lib/admin_data/deprecation.rb
153
157
  - lib/admin_data/extension.rb
154
- - lib/admin_data/helpers.rb
155
158
  - lib/admin_data/railtie.rb
156
159
  - lib/admin_data/search.rb
157
- - lib/admin_data/settings.rb
158
160
  - lib/admin_data/util.rb
159
161
  - lib/admin_data/version.rb
160
162
  - lib/admin_data_date_validation.rb
161
- - lib/css/base.css
162
- - lib/css/vendor/jquery-ui-1.7.2.custom.css
163
- - lib/js/advance_search/act_on_result.js
164
- - lib/js/advance_search/advance_search.js
165
- - lib/js/advance_search/advance_search_structure.js
166
- - lib/js/advance_search/ajaxify_advance_search.js
167
- - lib/js/advance_search/build_first_row.js
168
- - lib/js/advance_search/event_bindings.js
169
- - lib/js/advance_search/global_ajax_setting.js
170
- - lib/js/advance_search/trigger_submit_on_domready.js
171
- - lib/js/misc/drop_down_change.js
172
- - lib/js/misc/js_util.js
173
- - lib/js/misc/quick_search_input_focus.js
174
- - lib/js/test/act_on_result.js
175
- - lib/js/test/advance_search.js
176
- - lib/js/test/ajaxify_advance_search.js
177
- - lib/js/test/build_first_row.js
178
- - lib/js/test/event_bindings.js
179
- - lib/js/vendor/jack.js
180
- - lib/js/vendor/jquery-1.4.2.js
181
- - lib/js/vendor/jquery-ui-1.7.2.custom.min.js
182
- - lib/js/vendor/jquery.ba-isjquery.js
183
- - lib/js/vendor/jquery.form.js
184
- - lib/js/vendor/log.js
185
- - lib/js/vendor/qunit.js
186
- - lib/js/vendor/rails.js
163
+ - test/rails_root/app/controllers/application_controller.rb
164
+ - test/rails_root/app/helpers/application_helper.rb
165
+ - test/rails_root/app/models/city.rb
166
+ - test/rails_root/app/models/club.rb
167
+ - test/rails_root/app/models/newspaper.rb
168
+ - test/rails_root/app/models/phone_number.rb
169
+ - test/rails_root/app/models/user.rb
170
+ - test/rails_root/app/models/website.rb
171
+ - test/rails_root/config/application.rb
172
+ - test/rails_root/config/boot.rb
173
+ - test/rails_root/config/environment.rb
174
+ - test/rails_root/config/environments/development.rb
175
+ - test/rails_root/config/environments/production.rb
176
+ - test/rails_root/config/environments/test.rb
177
+ - test/rails_root/config/initializers/admin_data.rb
178
+ - test/rails_root/config/initializers/backtrace_silencers.rb
179
+ - test/rails_root/config/initializers/empty_spaces_to_nil.rb
180
+ - test/rails_root/config/initializers/inflections.rb
181
+ - test/rails_root/config/initializers/mime_types.rb
182
+ - test/rails_root/config/initializers/secret_token.rb
183
+ - test/rails_root/config/initializers/session_store.rb
184
+ - test/rails_root/config/routes.rb
185
+ - test/rails_root/db/migrate/20091030202259_create_users.rb
186
+ - test/rails_root/db/schema.rb
187
+ - test/rails_root/db/seeds.rb
188
+ - test/rails_root/features/step_definitions/advance_search_steps.rb
189
+ - test/rails_root/features/step_definitions/app_steps.rb
190
+ - test/rails_root/features/step_definitions/async.rb
191
+ - test/rails_root/features/step_definitions/crud_show_steps.rb
192
+ - test/rails_root/features/step_definitions/feed_steps.rb
193
+ - test/rails_root/features/step_definitions/quick_search_steps.rb
194
+ - test/rails_root/features/step_definitions/util.rb
195
+ - test/rails_root/features/step_definitions/web_steps.rb
196
+ - test/rails_root/features/support/env.rb
197
+ - test/rails_root/features/support/paths.rb
198
+ - test/rails_root/test/factories.rb
199
+ - test/rails_root/test/performance/browsing_test.rb
200
+ - test/rails_root/test/test_helper.rb
187
201
  has_rdoc: true
188
202
  homepage: http://github.com/neerajdotname/admin_data
189
203
  licenses: []
@@ -218,5 +232,42 @@ rubygems_version: 1.3.7
218
232
  signing_key:
219
233
  specification_version: 3
220
234
  summary: Manage database using browser
221
- test_files: []
222
-
235
+ test_files:
236
+ - test/rails_root/app/controllers/application_controller.rb
237
+ - test/rails_root/app/helpers/application_helper.rb
238
+ - test/rails_root/app/models/city.rb
239
+ - test/rails_root/app/models/club.rb
240
+ - test/rails_root/app/models/newspaper.rb
241
+ - test/rails_root/app/models/phone_number.rb
242
+ - test/rails_root/app/models/user.rb
243
+ - test/rails_root/app/models/website.rb
244
+ - test/rails_root/config/application.rb
245
+ - test/rails_root/config/boot.rb
246
+ - test/rails_root/config/environment.rb
247
+ - test/rails_root/config/environments/development.rb
248
+ - test/rails_root/config/environments/production.rb
249
+ - test/rails_root/config/environments/test.rb
250
+ - test/rails_root/config/initializers/admin_data.rb
251
+ - test/rails_root/config/initializers/backtrace_silencers.rb
252
+ - test/rails_root/config/initializers/empty_spaces_to_nil.rb
253
+ - test/rails_root/config/initializers/inflections.rb
254
+ - test/rails_root/config/initializers/mime_types.rb
255
+ - test/rails_root/config/initializers/secret_token.rb
256
+ - test/rails_root/config/initializers/session_store.rb
257
+ - test/rails_root/config/routes.rb
258
+ - test/rails_root/db/migrate/20091030202259_create_users.rb
259
+ - test/rails_root/db/schema.rb
260
+ - test/rails_root/db/seeds.rb
261
+ - test/rails_root/features/step_definitions/advance_search_steps.rb
262
+ - test/rails_root/features/step_definitions/app_steps.rb
263
+ - test/rails_root/features/step_definitions/async.rb
264
+ - test/rails_root/features/step_definitions/crud_show_steps.rb
265
+ - test/rails_root/features/step_definitions/feed_steps.rb
266
+ - test/rails_root/features/step_definitions/quick_search_steps.rb
267
+ - test/rails_root/features/step_definitions/util.rb
268
+ - test/rails_root/features/step_definitions/web_steps.rb
269
+ - test/rails_root/features/support/env.rb
270
+ - test/rails_root/features/support/paths.rb
271
+ - test/rails_root/test/factories.rb
272
+ - test/rails_root/test/performance/browsing_test.rb
273
+ - test/rails_root/test/test_helper.rb
@@ -1,112 +0,0 @@
1
- class AdminData::BaseController < ApplicationController
2
-
3
- unloadable
4
-
5
- helper_method :admin_data_is_allowed_to_update?
6
-
7
- layout 'admin_data'
8
-
9
- include AdminData::Chelper
10
-
11
- before_filter :build_klasses, :build_drop_down_for_klasses, :check_page_parameter, :prepare_drop_down_klasses
12
-
13
- attr_reader :klass, :model
14
-
15
- private
16
-
17
- def prepare_drop_down_klasses
18
- k = params[:klass] || ''
19
- @drop_down_url = "http://#{request.host_with_port}/admin_data/quick_search/#{CGI.escape(k)}"
20
- end
21
-
22
- def ensure_is_allowed_to_view
23
- render :text => 'not authorized' unless admin_data_is_allowed_to_view?
24
- end
25
-
26
- def ensure_is_allowed_to_view_klass
27
- render :text => 'not authorized' unless admin_data_is_allowed_to_view_klass?
28
- end
29
-
30
- def ensure_is_allowed_to_update
31
- render :text => 'not authorized' unless admin_data_is_allowed_to_update?
32
- end
33
-
34
- def ensure_is_allowed_to_update_klass
35
- render :text => 'not authorized' unless admin_data_is_allowed_to_update_klass?
36
- end
37
-
38
-
39
- def get_class_from_params
40
- begin
41
- @klass = AdminData::Util.camelize_constantize(params[:klass])
42
- rescue TypeError => e # in case no params[:klass] is supplied
43
- Rails.logger.debug 'no params[:klass] was supplied'
44
- redirect_to admin_data_index_path
45
- rescue NameError # in case wrong params[:klass] is supplied
46
- Rails.logger.debug 'wrong params[:klass] was supplied'
47
- redirect_to admin_data_index_path
48
- end
49
- end
50
-
51
- def build_klasses
52
- # if is_allowed_to_view_klass option is passed then global constant can't be used since
53
- # list of klasses need to be built for each user. It will slow down the speed a bit since
54
- # every single the list needs to be built
55
- if AdminData::Config.setting[:is_allowed_to_view_klass]
56
- @klasses = _build_custom_klasses
57
- else
58
- @klasses = _build_all_klasses
59
- end
60
- end
61
-
62
- def _build_all_klasses
63
- if defined? $admin_data_all_klasses
64
- return $admin_data_all_klasses
65
- else
66
- model_dir = File.join(Rails.root, 'app', 'models')
67
- model_names = Dir.chdir(model_dir) { Dir["*.rb"] }
68
- klasses = get_klass_names(model_names)
69
- $admin_data_all_klasses = remove_klasses_without_table(klasses).sort_by {|r| r.name.underscore}
70
- end
71
- end
72
-
73
- def _build_custom_klasses
74
- _build_all_klasses.compact.select do |klass_local|
75
- @klass = klass_local
76
- admin_data_is_allowed_to_view_klass?
77
- end
78
- end
79
-
80
- def remove_klasses_without_table(klasses)
81
- klasses.select { |k| k.ancestors.include?(ActiveRecord::Base) && k.connection.table_exists?(k.table_name) }
82
- end
83
-
84
- def get_klass_names(model_names)
85
- model_names.inject([]) do |output, model_name|
86
- klass_name = model_name.sub(/\.rb$/,'').camelize
87
- begin
88
- output << AdminData::Util.constantize_klass(klass_name)
89
- rescue Exception => e
90
- Rails.logger.debug e.message
91
- end
92
- output
93
- end
94
- end
95
-
96
- def build_drop_down_for_klasses
97
- @drop_down_for_klasses = @klasses.inject([]) do |result, klass|
98
- result << [klass.name.underscore, admin_data_search_url(:klass => klass.name.underscore)]
99
- end
100
- end
101
-
102
- def check_page_parameter
103
- # Got hoptoad error because of url like
104
- # http://localhost:3000/admin_data/User/advance_search?page=http://201.134.249.164/intranet/on.txt?
105
- if params[:page].blank? || (params[:page] =~ /\A\d+\z/)
106
- # proceed
107
- else
108
- render :text => 'Invalid params[:page]', :status => :unprocessable_entity
109
- end
110
- end
111
-
112
- end
@@ -1,141 +0,0 @@
1
- class AdminData::MainController < AdminData::BaseController
2
-
3
- unloadable
4
-
5
- before_filter :get_class_from_params, :only => [ :table_structure, :show, :destroy, :del, :edit, :new, :update, :create]
6
-
7
- before_filter :ensure_is_allowed_to_view
8
-
9
- before_filter :get_model_and_verify_it, :only => [:destroy, :del, :edit, :update, :show]
10
-
11
- before_filter :ensure_is_allowed_to_view_klass, :except => [:index]
12
-
13
- before_filter :ensure_is_allowed_to_update, :only => [:destroy, :del, :edit, :update, :create]
14
-
15
- before_filter :ensure_is_allowed_to_update_klass, :only => [:destroy, :del, :edit, :update, :create]
16
-
17
-
18
- def table_structure
19
- @page_title = 'table_structure'
20
- @indexes = []
21
- if (indexes = ActiveRecord::Base.connection.indexes(@klass.table_name)).any?
22
- add_index_statements = indexes.map do |index|
23
- statment_parts = [ ('add_index ' + index.table.inspect) ]
24
- statment_parts << index.columns.inspect
25
- statment_parts << (':name => ' + index.name.inspect)
26
- statment_parts << ':unique => true' if index.unique
27
-
28
- ' ' + statment_parts.join(', ')
29
- end
30
- add_index_statements.sort.each { |index| @indexes << index }
31
- end
32
- respond_to {|format| format.html}
33
- end
34
-
35
- def index
36
- respond_to {|format| format.html}
37
- end
38
-
39
- def show
40
- @page_title = "#{@klass.name.underscore}:#{@model.id}"
41
- respond_to {|format| format.html}
42
- end
43
-
44
- def destroy
45
- @klass.send(:destroy, params[:id])
46
- redirect_to admin_data_search_path(:klass => @klass.name.underscore)
47
- end
48
-
49
- def del
50
- @klass.send(:delete, params[:id])
51
- flash[:success] = 'Record was deleted'
52
- redirect_to admin_data_search_path(:klass => @klass.name.underscore)
53
- end
54
-
55
- def edit
56
- @page_title = "edit #{@klass.name.underscore}:#{@model.id}"
57
- @columns = columns_list
58
- respond_to {|format| format.html}
59
- end
60
-
61
- def new
62
- @page_title = "new #{@klass.name.underscore}"
63
- @model = @klass.send(:new)
64
- @columns = columns_list
65
- respond_to {|format| format.html}
66
- end
67
-
68
- def update
69
- model_name_underscored = @klass.name.underscore
70
- model_attrs = update_model_with_assoc(params[model_name_underscored])
71
- @columns = columns_list
72
-
73
- respond_to do |format|
74
- if @model.update_attributes(model_attrs)
75
- format.html do
76
- flash[:success] = "Record was updated"
77
- redirect_to admin_data_path(:id => @model, :klass => @klass.name.underscore)
78
- end
79
- format.js { render :json => {:success => true}}
80
- else
81
- format.html { render :action => 'edit' }
82
- format.js { render :json => {:error => @model.errors.full_messages.join } }
83
- end
84
- end
85
- end
86
-
87
- def create
88
- model_name_underscored = @klass.name.underscore
89
- model_attrs = update_model_with_assoc(params[model_name_underscored])
90
- @model = @klass.create(model_attrs)
91
- @columns = columns_list
92
-
93
- respond_to do |format|
94
- if @model.errors.any?
95
- format.html { render :action => 'new' }
96
- format.js { render :json => {:error => @model.errors.full_messages.join() }}
97
- else
98
- format.html do
99
- flash[:success] = "Record was created"
100
- redirect_to admin_data_path(:id => @model, :klass => @klass.name.underscore)
101
- end
102
- format.js { render :json => {} }
103
- end
104
- end
105
- end
106
-
107
- private
108
-
109
- # If this class has any habtm relationships, update the parameters
110
- # in the model with the actual objects so they can be saved properly
111
- # TODO write test for it
112
- def update_model_with_assoc(model_attrs)
113
- AdminData::ActiveRecordUtil.habtm_klasses_for(klass).each do |k|
114
- if model_attrs.include? k.table_name
115
- model_attrs[k.table_name].map! { |s| k.find(s.to_i) }
116
- end
117
- end
118
- model_attrs
119
- end
120
-
121
- def get_model_and_verify_it
122
- primary_key = @klass.primary_key.intern
123
- conditional_id = params[:id] =~ /^(\d+)-.*/ ? params[:id].to_i : params[:id]
124
- condition = {primary_key => conditional_id}
125
-
126
- _proc = AdminData::Config.setting[:find_conditions] ? AdminData::Config.setting[:find_conditions][@klass.name] : nil
127
- if _proc && find_conditions = _proc.call(params)
128
- condition = find_conditions.fetch(:conditions) if find_conditions.has_key?(:conditions)
129
- end
130
-
131
- @model = @klass.send('find', :first, :conditions => condition)
132
- unless @model
133
- render :text => "#{@klass.name} not found: #{params[:id]}", :status => :not_found
134
- end
135
- end
136
-
137
- def columns_list
138
- params[:attr].blank? ? @klass.columns : @klass.columns.find_all {|col| params[:attr] == col.name}
139
- end
140
-
141
- end