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
@@ -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