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.
- data/History.txt +23 -16
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/app/controllers/admin_data/application_controller.rb +111 -0
- data/app/controllers/admin_data/crud_controller.rb +100 -0
- data/app/controllers/admin_data/feed_controller.rb +38 -16
- data/app/controllers/admin_data/home_controller.rb +11 -0
- data/app/controllers/admin_data/migration_controller.rb +12 -12
- data/app/controllers/admin_data/public_controller.rb +29 -19
- data/app/controllers/admin_data/search_controller.rb +99 -103
- data/app/controllers/admin_data/table_structure_controller.rb +25 -0
- data/app/helpers/admin_data/application_helper.rb +287 -0
- data/app/views/admin_data/crud/association/_association_info.html.erb +11 -0
- data/app/views/admin_data/crud/association/_belongs_to_info.html.erb +7 -0
- data/app/views/admin_data/{main → crud}/association/_habtm_info.html.erb +3 -3
- data/app/views/admin_data/{main → crud}/association/_has_many_info.html.erb +3 -3
- data/app/views/admin_data/crud/association/_has_one_info.html.erb +6 -0
- data/app/views/admin_data/{main → crud}/edit.html.erb +9 -9
- data/app/views/admin_data/{main → crud}/misc/_form.html.erb +6 -6
- data/app/views/admin_data/{main → crud}/misc/_modify_record.html.erb +4 -4
- data/app/views/admin_data/{main → crud}/new.html.erb +7 -7
- data/app/views/admin_data/{main → crud}/show.html.erb +10 -10
- data/app/views/admin_data/{main → home}/index.html.erb +2 -2
- data/app/views/admin_data/migration/index.html.erb +3 -3
- data/app/views/admin_data/search/_search_base.html.erb +5 -5
- data/app/views/admin_data/search/quick_search.html.erb +4 -4
- data/app/views/admin_data/search/search/_listing.html.erb +11 -9
- data/app/views/admin_data/search/search/_sortby.html.erb +4 -3
- data/app/views/admin_data/search/search/_title.html.erb +7 -7
- data/app/views/admin_data/shared/_breadcrum.html.erb +11 -5
- data/app/views/admin_data/shared/_header.html.erb +6 -6
- data/app/views/admin_data/shared/_secondary_navigation.html.erb +13 -14
- data/app/views/admin_data/{main/table_structure.html.erb → table_structure/index.html.erb} +11 -11
- data/app/views/layouts/admin_data.html.erb +15 -15
- data/config/routes.rb +3 -3
- data/lib/admin_data.rb +29 -6
- data/lib/admin_data/active_record_util.rb +38 -6
- data/lib/admin_data/configuration.rb +113 -0
- data/lib/admin_data/deprecation.rb +31 -0
- data/lib/admin_data/railtie.rb +2 -7
- data/lib/admin_data/search.rb +1 -1
- data/lib/admin_data/util.rb +74 -161
- data/lib/admin_data/version.rb +1 -1
- data/test/rails_root/app/controllers/application_controller.rb +3 -0
- data/test/rails_root/app/helpers/application_helper.rb +5 -0
- data/test/rails_root/app/models/city.rb +22 -0
- data/test/rails_root/app/models/club.rb +3 -0
- data/test/rails_root/app/models/newspaper.rb +4 -0
- data/test/rails_root/app/models/phone_number.rb +3 -0
- data/test/rails_root/app/models/user.rb +17 -0
- data/test/rails_root/app/models/website.rb +3 -0
- data/test/rails_root/config/application.rb +42 -0
- data/test/rails_root/config/boot.rb +13 -0
- data/test/rails_root/config/environment.rb +5 -0
- data/test/rails_root/config/environments/development.rb +22 -0
- data/test/rails_root/config/environments/production.rb +49 -0
- data/test/rails_root/config/environments/test.rb +35 -0
- data/test/rails_root/config/initializers/admin_data.rb +22 -0
- data/test/rails_root/config/initializers/backtrace_silencers.rb +7 -0
- data/test/rails_root/config/initializers/empty_spaces_to_nil.rb +10 -0
- data/test/rails_root/config/initializers/inflections.rb +10 -0
- data/test/rails_root/config/initializers/mime_types.rb +5 -0
- data/test/rails_root/config/initializers/secret_token.rb +7 -0
- data/test/rails_root/config/initializers/session_store.rb +8 -0
- data/test/rails_root/config/routes.rb +9 -0
- data/test/rails_root/db/migrate/20091030202259_create_users.rb +55 -0
- data/test/rails_root/db/schema.rb +63 -0
- data/test/rails_root/db/seeds.rb +40 -0
- data/test/rails_root/features/step_definitions/advance_search_steps.rb +13 -0
- data/test/rails_root/features/step_definitions/app_steps.rb +40 -0
- data/test/rails_root/features/step_definitions/async.rb +18 -0
- data/test/rails_root/features/step_definitions/crud_show_steps.rb +37 -0
- data/test/rails_root/features/step_definitions/feed_steps.rb +3 -0
- data/test/rails_root/features/step_definitions/quick_search_steps.rb +65 -0
- data/test/rails_root/features/step_definitions/util.rb +86 -0
- data/test/rails_root/features/step_definitions/web_steps.rb +219 -0
- data/test/rails_root/features/support/env.rb +68 -0
- data/test/rails_root/features/support/paths.rb +33 -0
- data/test/rails_root/test/factories.rb +30 -0
- data/test/rails_root/test/performance/browsing_test.rb +9 -0
- data/test/rails_root/test/test_helper.rb +13 -0
- metadata +100 -49
- data/app/controllers/admin_data/base_controller.rb +0 -112
- data/app/controllers/admin_data/main_controller.rb +0 -141
- data/app/views/admin_data/main/association/_association_info.html.erb +0 -11
- data/app/views/admin_data/main/association/_belongs_to_info.html.erb +0 -7
- data/app/views/admin_data/main/association/_has_one_info.html.erb +0 -6
- data/lib/admin_data/chelper.rb +0 -37
- data/lib/admin_data/helpers.rb +0 -271
- data/lib/admin_data/settings.rb +0 -67
- data/lib/css/base.css +0 -1108
- data/lib/css/vendor/jquery-ui-1.7.2.custom.css +0 -406
- data/lib/js/advance_search/act_on_result.js +0 -45
- data/lib/js/advance_search/advance_search.js +0 -83
- data/lib/js/advance_search/advance_search_structure.js +0 -79
- data/lib/js/advance_search/ajaxify_advance_search.js +0 -28
- data/lib/js/advance_search/build_first_row.js +0 -8
- data/lib/js/advance_search/event_bindings.js +0 -76
- data/lib/js/advance_search/global_ajax_setting.js +0 -10
- data/lib/js/advance_search/trigger_submit_on_domready.js +0 -6
- data/lib/js/misc/drop_down_change.js +0 -8
- data/lib/js/misc/js_util.js +0 -58
- data/lib/js/misc/quick_search_input_focus.js +0 -6
- data/lib/js/test/act_on_result.js +0 -120
- data/lib/js/test/advance_search.js +0 -80
- data/lib/js/test/ajaxify_advance_search.js +0 -29
- data/lib/js/test/build_first_row.js +0 -10
- data/lib/js/test/event_bindings.js +0 -100
- data/lib/js/vendor/jack.js +0 -903
- data/lib/js/vendor/jquery-1.4.2.js +0 -6240
- data/lib/js/vendor/jquery-ui-1.7.2.custom.min.js +0 -298
- data/lib/js/vendor/jquery.ba-isjquery.js +0 -21
- data/lib/js/vendor/jquery.form.js +0 -814
- data/lib/js/vendor/log.js +0 -9
- data/lib/js/vendor/qunit.js +0 -1043
- data/lib/js/vendor/rails.js +0 -132
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
<%
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
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="
|
|
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="
|
|
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
|
|
23
|
-
<li class="
|
|
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
|
-
<%=
|
|
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
|
-
<%=
|
|
9
|
+
<%= stylesheet_link_tag('vendor/jquery-ui-1.7.2.custom.css') %>
|
|
10
10
|
|
|
11
|
-
<%=
|
|
11
|
+
<%= stylesheet_link_tag('base') %>
|
|
12
12
|
|
|
13
|
-
<%=
|
|
13
|
+
<%= javascript_include_tag('vendor/jquery-1.4.2.js', 'vendor/jquery-ui-1.7.2.custom.min.js') %>
|
|
14
14
|
|
|
15
|
-
<%=
|
|
15
|
+
<%= javascript_include_tag('vendor/jquery_form') %>
|
|
16
16
|
|
|
17
|
-
<%=
|
|
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')
|
|
22
|
+
'misc/js_util') %>
|
|
23
23
|
|
|
24
24
|
<% if params[:action] == 'advance_search' %>
|
|
25
|
-
<%=
|
|
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
|
-
)
|
|
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 "
|
|
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/
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
|
|
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
|