admin_data 1.0.22 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,28 +1,27 @@
1
1
  <%
2
- @quick_search_tab_active = params[:action] == 'quick_search' ? 'active' : ''
3
- @advance_search_tab_active = params[:action] == 'advance_search' ? 'active' : ''
4
- @table_structure_tab_active = params[:action] == 'table_structure' ? 'active' : ''
5
- @add_new_record_tab_active = %w(new create).include?(params[:action]) ? 'active' : ''
2
+ quick_search_tab_active = params[:action] == 'quick_search' ? 'active' : ''
3
+ advance_search_tab_active = params[:action] == 'advance_search' ? 'active' : ''
4
+ table_structure_tab_active = params[:controller] == 'admin_data/table_structure' ? 'active' : ''
5
+ add_new_record_tab_active = %w(new create).include?(params[:action]) ? 'active' : ''
6
6
  %>
7
-
8
7
  <ul>
9
8
 
10
- <li class="first <%=@quick_search_tab_active%>">
11
- <%= link_to 'Quick Search', admin_data_search_path(:klass => klass.name.underscore) %>
9
+ <li class="first <%=quick_search_tab_active%>">
10
+ <%= link_to 'Quick Search', admin_data_search_path(:klass => klass.name.underscore) %>
12
11
  </li>
13
12
 
14
- <li class="<%=@advance_search_tab_active%>">
13
+ <li class="<%=advance_search_tab_active%>">
15
14
  <%= link_to 'Advance Search', admin_data_advance_search_path(:klass => klass.name.underscore) %>
16
15
  </li>
17
16
 
18
- <li class="<%=@table_structure_tab_active%>">
17
+ <li class="<%=table_structure_tab_active%>">
19
18
  <%= link_to 'Table Structure', admin_data_table_structure_path(:klass => klass.name.underscore) %>
20
19
  </li>
21
-
22
- <% if admin_data_is_allowed_to_update? %>
23
- <li class="<%=@add_new_record_tab_active%>">
20
+
21
+ <% if is_allowed_to_update? %>
22
+ <li class="<%=add_new_record_tab_active%>">
24
23
  <%= link_to '+Add New Record', admin_data_new_path(:klass => klass.name.underscore) %>
25
24
  </li>
26
- <% end %>
27
-
25
+ <% end %>
26
+
28
27
  </ul>
@@ -1,17 +1,17 @@
1
1
  <div id="main">
2
2
 
3
- <%= admin_data_breadcrum do %>
4
- <%= link_to @klass, admin_data_search_path(:klass => @klass.name) %>
3
+ <%= breadcrum do %>
4
+ <%= link_to @klass, admin_data_search_path(:klass => @klass.name) %>
5
5
  <% end %>
6
-
6
+
7
7
  <%= render 'admin_data/shared/flash_message', :model => @model %>
8
-
8
+
9
9
  <div class="block" id="block-tables">
10
10
  <div class="secondary-navigation">
11
11
  <%= render 'admin_data/shared/secondary_navigation', :klass => @klass %>
12
12
  <div class="clear"></div>
13
- </div>
14
- <div class="content rounded">
13
+ </div>
14
+ <div class="content rounded">
15
15
  <h2 class="title"></h2>
16
16
  <div class="inner">
17
17
  <h1 class='table_name'>Table name : <%=@klass.send(:table_name)%></h1>
@@ -29,13 +29,13 @@
29
29
  <td><%=column.null%></td>
30
30
  <td><%= AdminData::Util.string_representation_of_data(column.default) if column.has_default?%></td>
31
31
  </tr>
32
- <% end %>
32
+ <% end %>
33
33
  </table>
34
34
 
35
- <h2>Index</h2>
35
+ <h2>Index</h2>
36
36
  <% if @indexes.size == 0 %>
37
37
  <p>No index was found </p>
38
- <% else %>
38
+ <% else %>
39
39
  <table class="table colorize">
40
40
  <tr>
41
41
  <th>Info</th>
@@ -44,10 +44,10 @@
44
44
  <tr>
45
45
  <td><%= index %></td>
46
46
  </tr>
47
- <% end %>
47
+ <% end %>
48
48
  </table>
49
49
  <% end %>
50
-
50
+
51
51
  </div>
52
52
  </div>
53
53
  </div>
@@ -6,35 +6,35 @@
6
6
  <%= @page_title.blank? ? 'admin_data' : "#{@page_title} - admin_data" %>
7
7
  </title>
8
8
 
9
- <%= AdminData::Util.google_hosted_jquery_ui_css(self).html_safe %>
9
+ <%= stylesheet_link_tag('vendor/jquery-ui-1.7.2.custom.css') %>
10
10
 
11
- <%= AdminData::Util.stylesheet_link_tag('base').html_safe %>
11
+ <%= stylesheet_link_tag('base') %>
12
12
 
13
- <%= AdminData::Util.google_hosted_jquery(self).html_safe %>
13
+ <%= javascript_include_tag('vendor/jquery-1.4.2.js', 'vendor/jquery-ui-1.7.2.custom.min.js') %>
14
14
 
15
- <%= AdminData::Util.javascript_include_tag('vendor/jquery.form').html_safe %>
15
+ <%= javascript_include_tag('vendor/jquery_form') %>
16
16
 
17
- <%= AdminData::Util.javascript_include_tag('vendor/log',
17
+ <%= javascript_include_tag('vendor/log',
18
18
  'vendor/rails',
19
19
  'misc/drop_down_change',
20
20
  'misc/quick_search_input_focus',
21
21
  'advance_search/global_ajax_setting',
22
- 'misc/js_util').html_safe %>
22
+ 'misc/js_util') %>
23
23
 
24
24
  <% if params[:action] == 'advance_search' %>
25
- <%= AdminData::Util.javascript_include_tag(
26
- 'advance_search/advance_search',
27
- 'advance_search/advance_search_structure',
25
+ <%= javascript_include_tag(
26
+ 'advance_search/advance_search',
27
+ 'advance_search/advance_search_structure',
28
28
  'advance_search/ajaxify_advance_search',
29
29
  'advance_search/act_on_result',
30
30
  'advance_search/build_first_row',
31
31
  'advance_search/event_bindings',
32
32
  'advance_search/trigger_submit_on_domready'
33
- ).html_safe %>
33
+ ) %>
34
34
  <% end %>
35
35
 
36
36
  <%= csrf_meta_tag %>
37
-
37
+
38
38
  </head>
39
39
 
40
40
  <body>
@@ -46,14 +46,14 @@
46
46
  <div>
47
47
  <%= render 'admin_data/shared/header', :drop_down_for_klasses => @drop_down_for_klasses %>
48
48
  <div class='clear'></div>
49
- </div>
49
+ </div>
50
50
  <div id="container">
51
51
  <div id="wrapper">
52
52
  <%= yield %>
53
- <div class="clear"></div>
54
- </div>
53
+ <div class="clear"></div>
54
+ </div>
55
55
  <%= render :partial => 'admin_data/shared/powered_by' %>
56
56
  </div>
57
57
  </body>
58
-
58
+
59
59
  </html>
data/config/routes.rb CHANGED
@@ -7,9 +7,7 @@ Rails.application.routes.draw do
7
7
  namespace(:admin_data) do
8
8
  scope :admin_data do
9
9
 
10
- controller "main" do
11
- match '/', :to => :index, :as => :index
12
- match '/klass/:klass/table_structure', :to => :table_structure, :as => :table_structure, :via => :get
10
+ controller "crud" do
13
11
  match '/klass/(:klass)', :to => :index, :as => :index, :via => :get
14
12
  match '/klass/(:klass)', :to => :create, :as => :index, :via => :post
15
13
  match '/klass/:klass/new', :to => :new, :as => :new, :via => :get
@@ -25,9 +23,11 @@ Rails.application.routes.draw do
25
23
  match '/jstest', :to => :jstest, :as => :jstest
26
24
  end
27
25
 
26
+ match '/table_structure/:klass' => "table_structure#index", :as => :table_structure
28
27
  match '/quick_search/:klass' => "search#quick_search", :as => :search
29
28
  match '/advance_search/:klass' => "search#advance_search", :as => :advance_search
30
29
  match '/public/*file' => "public#serve"
30
+ root :to => "home#index"
31
31
 
32
32
  end
33
33
  end
data/lib/admin_data.rb CHANGED
@@ -1,6 +1,34 @@
1
1
  require 'will_paginate'
2
+ require 'admin_data/configuration'
2
3
 
3
4
  module AdminData
5
+ LIBPATH = File.expand_path(::File.dirname(__FILE__)) + File::SEPARATOR
6
+
7
+ def self.plugin_dir
8
+ File.expand_path(File.join(LIBPATH, '..')) + File::SEPARATOR
9
+ end
10
+
11
+ def self.public_dir
12
+ File.expand_path(File.join(LIBPATH, '..', 'public')) + File::SEPARATOR
13
+ end
14
+
15
+ class << self
16
+ # A configuration object that acts like a hash.
17
+ # See AdminData::Configuration for details.
18
+ attr_accessor :configuration
19
+
20
+ # Call this method to modify defaults in initializer.
21
+ #
22
+ # @example
23
+ # AdminData.config do |config|
24
+ # config.number_of_records_per_page = 20
25
+ # end
26
+ def config
27
+ self.configuration ||= Configuration.new
28
+ block_given? ? yield(self.configuration) : self.configuration
29
+ end
30
+ end
31
+
4
32
  end
5
33
 
6
34
  if Rails.version >= '3.0'
@@ -12,12 +40,7 @@ end
12
40
  # move date_validation to inside admin_data
13
41
  require 'admin_data_date_validation'
14
42
 
15
- require 'admin_data/helpers'
16
- require 'admin_data/chelper'
17
- require 'admin_data/settings'
43
+ require 'admin_data/deprecation'
18
44
  require 'admin_data/extension'
19
45
  require 'admin_data/util'
20
46
  require 'admin_data/active_record_util'
21
-
22
- AdminData::Config.initialize_defaults
23
- ActionView::Base.send :include, AdminData::Helpers
@@ -1,26 +1,50 @@
1
1
  module AdminData
2
2
  class ActiveRecordUtil
3
3
 
4
+ # class User
5
+ # has_and_belongs_to_many :clubs
6
+ # end
7
+ #
8
+ # User.declared_habtm_association_names(Club)
9
+ # #=> ['clubs']
4
10
  def self.declared_habtm_association_names(klass)
5
11
  delcared_association_names_for(klass, :has_and_belongs_to_many).map(&:name).map(&:to_s)
6
12
  end
7
13
 
14
+ # class User
15
+ # belongs_to :club
16
+ # end
17
+ #
18
+ # User.declared_belongs_to_association_names(Club)
19
+ # #=> ['club']
8
20
  def self.declared_belongs_to_association_names(klass)
9
21
  delcared_association_names_for(klass, :belongs_to).map(&:name).map(&:to_s)
10
22
  end
11
23
 
24
+ # class User
25
+ # has_one :car
26
+ # end
27
+ #
28
+ # User.declared_has_one_association_names(Car)
29
+ # #=> ['car']
12
30
  def self.declared_has_one_association_names(klass)
13
31
  delcared_association_names_for(klass, :has_one).map(&:name).map(&:to_s)
14
32
  end
15
33
 
34
+ # class User
35
+ # has_many :cars
36
+ # end
37
+ #
38
+ # User.declared_has_many_association_names(Car)
39
+ # #=> ['cars']
16
40
  def self.declared_has_many_association_names(klass)
17
41
  delcared_association_names_for(klass, :has_many).map(&:name).map(&:to_s)
18
42
  end
19
43
 
20
44
  # returns declared association names like
21
- # #=> [comments]
22
- # #=> [positive_comments]
23
- # #=> [negative_comments]
45
+ # #=> ['comments']
46
+ # #=> ['positive_comments']
47
+ # #=> ['negative_comments']
24
48
  def self.delcared_association_names_for(klass, association_type)
25
49
  klass.name.camelize.constantize.reflections.values.select do |value|
26
50
  value.macro == association_type
@@ -28,7 +52,13 @@ module AdminData
28
52
  end
29
53
 
30
54
  # returns an array of classes
31
- # #=> [Comment]
55
+ #
56
+ # class User
57
+ # has_and_belongs_to_many :clubs
58
+ # end
59
+ #
60
+ # ActiveRecordUtil.habtm_klasses_for(User)
61
+ # #=> [Club]
32
62
  def self.habtm_klasses_for(klass)
33
63
  declared_habtm_association_names(klass).map do |assoc_name|
34
64
  klass_for_association_type_and_name(klass, :has_and_belongs_to_many, assoc_name)
@@ -41,7 +71,8 @@ module AdminData
41
71
  # has_many :comments
42
72
  # end
43
73
  #
44
- # AdminData::ActiveRecordUtil.habtm_klass_for_association_name(User, 'comments') #=> Comment
74
+ # ActiveRecordUtil.klass_for_association_type_and_name(User, :has_many, 'comments') #=> Comment
75
+ #
45
76
  def self.klass_for_association_type_and_name(klass, association_type, association_name)
46
77
  data = klass.name.camelize.constantize.reflections.values.detect do |value|
47
78
  value.macro == association_type && value.name.to_s == association_name
@@ -51,7 +82,8 @@ module AdminData
51
82
  # TODO test with polymorphic
52
83
 
53
84
 
54
- def self.association_info_size(k)
85
+ # returns false if the given Klass has no association info. Otherwise returns true.
86
+ def self.has_association_info?(k)
55
87
  AdminData::ActiveRecordUtil.declared_belongs_to_association_names(k).any? ||
56
88
  AdminData::ActiveRecordUtil.declared_has_many_association_names(k).any? ||
57
89
  AdminData::ActiveRecordUtil.declared_has_many_association_names(k).any? ||
@@ -0,0 +1,113 @@
1
+ module AdminData
2
+
3
+ class Configuration
4
+
5
+ # Number of recores displayed while listing records
6
+ attr_accessor :number_of_records_per_page
7
+
8
+ # Default value is false .
9
+ # Set this value to true if you want admin_data to ignored
10
+ # the column_limit returned by ActiveRecord .
11
+ attr_accessor :ignore_column_limit
12
+
13
+ # By default this value is true .
14
+ # Set this value to false if you do not want all the belongs_to
15
+ # ids to be populated. If set to false then instead of a dropdown
16
+ # user will get a text field where the id can be entered. It matters
17
+ # only while editing or creating a new record.
18
+ attr_accessor :drop_down_for_associations
19
+
20
+ # Holds a proc which should be called. If the returned value is
21
+ # true then user is granted the access. Otherwise access is denied.
22
+ attr_writer :is_allowed_to_view
23
+
24
+ # Holds a proc which should be called. If the returned value is
25
+ # true then user is granted the access. Otherwise access is denied.
26
+ attr_writer :is_allowed_to_update
27
+
28
+ # Holds a proc which should be called. If the returned value is
29
+ # true then user is granted the access. Otherwise access is denied.
30
+ attr_writer :is_allowed_to_view_feed
31
+
32
+ # For feed authentication a combination of user_id and password is used.
33
+ # This attribute sets the user_id .
34
+ attr_accessor :feed_authentication_user_id
35
+
36
+ # For feed authentication a combination of user_id and password is used.
37
+ # This attribute sets the password .
38
+ attr_accessor :feed_authentication_password
39
+
40
+ # Tell AdminData to not to use id for models like given below.
41
+ #
42
+ # class City < ActiveRecord::Base
43
+ # def to_param
44
+ # self.permanent_name
45
+ # end
46
+ # end
47
+ #
48
+ # AdminData.config do |config|
49
+ # proc = lambda {|params| {:conditions => ["permanent_name = ?", params[:id] ] } }
50
+ # config.find_conditions = {'City' => proc }
51
+ # end
52
+ #
53
+ attr_accessor :find_conditions
54
+
55
+ # Tell AdminData how to display the value for a column
56
+ #
57
+ # AdminData.config do |config|
58
+ # proc = lambda {|model| model.send(:data).inspect}
59
+ # config.column_settings = {'City' => {:data => proc } }
60
+ # end
61
+ #
62
+ attr_accessor :column_settings
63
+
64
+ # Tell AdminData how to order the columns for a model.
65
+ #
66
+ # AdminData.config do |config|
67
+ # config.column_order = {'City' => [:id, :title, :body, :published_at, :author_name]}
68
+ # end
69
+ #
70
+ attr_accessor :columns_order
71
+
72
+ def is_allowed_to_view
73
+ return lambda {|controller| return true } if Rails.env.development?
74
+ @is_allowed_to_view || lambda {|_| nil }
75
+ end
76
+
77
+ def is_allowed_to_update
78
+ return lambda {|controller| return true } if Rails.env.development?
79
+ @is_allowed_to_update || lambda {|_| nil }
80
+ end
81
+
82
+ def is_allowed_to_view_feed
83
+ return lambda {|controller| return true } if Rails.env.development?
84
+ @is_allowed_to_view_feed || lambda {|_| nil }
85
+ end
86
+
87
+ # TODO explain why it is needed
88
+ attr_reader :adapter_name
89
+
90
+ # Tell AdminData how to name a column in a listing
91
+ # Example:
92
+ #
93
+ # config.column_headers = {'Timesheet' => {:id => 'ID'}
94
+ #
95
+ attr_accessor :column_headers
96
+
97
+ def initialize
98
+ @number_of_records_per_page = 50
99
+ @is_allowed_to_view = nil
100
+ @is_allowed_to_update = nil
101
+ @is_allowed_to_view_feed = nil
102
+ @find_conditions = {}
103
+ @drop_down_for_associations = true
104
+ @columns_order = {}
105
+ @column_headers = {}
106
+ @column_settings = {}
107
+ @adapter_name = ActiveRecord::Base.connection.adapter_name
108
+ @ignore_column_limit = false
109
+ end
110
+
111
+ end
112
+
113
+ end
@@ -0,0 +1,31 @@
1
+ class AdminData::Config
2
+
3
+ cattr_accessor :setting
4
+
5
+ def self.set=(input = {})
6
+
7
+ msg=<<EOF
8
+ AdminData API has changed in version 1.1 .
9
+
10
+ The changes are very minor.
11
+
12
+ Instead of
13
+
14
+ AdminData::Config.set = {
15
+ :find_conditions => ....
16
+ }
17
+
18
+ Now you need to do
19
+
20
+ AdminData.config do |config|
21
+ config.find_conditions = ...
22
+ }
23
+
24
+ Please refer to documentation at https://github.com/neerajdotname/admin_data/wiki/Customizing-admin_data-for-a-Rails-3-application for more information.
25
+
26
+ EOF
27
+
28
+ raise msg
29
+ end
30
+
31
+ end