rademade_admin 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -12
  3. data/app/assets/javascripts/rademade_admin/app/common/related-index.coffee +5 -24
  4. data/app/assets/javascripts/rademade_admin/form/form-ajax-submit.coffee +4 -0
  5. data/app/assets/javascripts/rademade_admin.coffee +28 -7
  6. data/app/assets/stylesheets/rademade_admin/detail_admin/icons.scss.erb +1 -1
  7. data/app/assets/stylesheets/rademade_admin.scss.erb +19 -0
  8. data/app/controllers/rademade_admin/abstract_controller.rb +2 -0
  9. data/app/controllers/rademade_admin/admin_users_controller.rb +2 -1
  10. data/app/controllers/rademade_admin/application_controller.rb +3 -0
  11. data/app/controllers/rademade_admin/dashboard_controller.rb +1 -1
  12. data/app/controllers/rademade_admin/model_controller.rb +48 -25
  13. data/app/controllers/rademade_admin/sessions_controller.rb +2 -1
  14. data/app/helpers/rademade_admin/field_helper.rb +30 -3
  15. data/app/helpers/rademade_admin/form_helper.rb +12 -18
  16. data/app/helpers/rademade_admin/menu_helper.rb +2 -1
  17. data/app/helpers/rademade_admin/name_helper.rb +2 -1
  18. data/app/helpers/rademade_admin/upload_preview_helper.rb +2 -1
  19. data/app/helpers/rademade_admin/uri_helper.rb +16 -0
  20. data/app/inputs/rademade_admin/admin_file_input.rb +2 -1
  21. data/app/inputs/rademade_admin/admin_select_input.rb +2 -1
  22. data/app/inputs/rademade_admin/admin_textarea_input.rb +2 -1
  23. data/app/inputs/rademade_admin/boolean_input.rb +2 -1
  24. data/app/models/rademade_admin/ability.rb +1 -1
  25. data/app/serializers/autocomplete/base_serializer.rb +49 -0
  26. data/app/serializers/autocomplete/link_serializer.rb +20 -0
  27. data/app/services/form_builder.rb +2 -1
  28. data/app/services/linker.rb +34 -0
  29. data/app/services/loader_service.rb +2 -1
  30. data/app/services/login/error.rb +2 -1
  31. data/app/services/login.rb +2 -1
  32. data/app/services/model_controller/instance_options.rb +1 -0
  33. data/app/services/model_controller/model_options.rb +2 -1
  34. data/app/services/model_controller/notifier.rb +2 -1
  35. data/app/services/model_controller/templates.rb +10 -12
  36. data/app/services/saver.rb +2 -1
  37. data/app/services/search/conditions/abstract.rb +42 -38
  38. data/app/services/search/conditions/autocomplete.rb +34 -28
  39. data/app/services/search/conditions/list.rb +30 -23
  40. data/app/services/search/conditions/part/where.rb +28 -0
  41. data/app/services/search/conditions/related_list.rb +54 -0
  42. data/app/services/search/query_adapter/abstract.rb +30 -39
  43. data/app/services/search/query_adapter/active_record.rb +33 -21
  44. data/app/services/search/query_adapter/mongoid.rb +38 -20
  45. data/app/services/search/searcher.rb +5 -4
  46. data/app/services/sortable_service.rb +2 -1
  47. data/app/services/video_service.rb +2 -1
  48. data/app/views/rademade_admin/_blocks/_menu.html.erb +7 -1
  49. data/app/views/rademade_admin/_blocks/_sub_menu.html.erb +0 -8
  50. data/app/views/rademade_admin/_layouts/inner/related_index_table.html.erb +1 -2
  51. data/app/views/rademade_admin/abstract/index.html.erb +6 -5
  52. data/app/views/rademade_admin/abstract/related_index.html.erb +11 -4
  53. data/config/initializers/bower_rails.rb +6 -0
  54. data/config/initializers/devise.rb +1 -0
  55. data/config/initializers/formtastic.rb +13 -0
  56. data/config/initializers/routes.rb +2 -1
  57. data/config/routes.rb +2 -1
  58. data/lib/rademade_admin/bower/performer.rb +14 -0
  59. data/lib/rademade_admin/configuration.rb +2 -1
  60. data/lib/rademade_admin/engine.rb +5 -1
  61. data/lib/rademade_admin/file_info_formatter.rb +2 -1
  62. data/lib/rademade_admin/hrml_buffer.rb +2 -1
  63. data/lib/rademade_admin/model/configuration/fields.rb +2 -1
  64. data/lib/rademade_admin/model/configuration.rb +2 -1
  65. data/lib/rademade_admin/model/data_adapter/active_record.rb +10 -4
  66. data/lib/rademade_admin/model/data_adapter/mongoid.rb +6 -1
  67. data/lib/rademade_admin/model/data_adapter.rb +6 -1
  68. data/lib/rademade_admin/model/graph.rb +2 -1
  69. data/lib/rademade_admin/model/info.rb +4 -3
  70. data/lib/rademade_admin/model/reflection/data.rb +2 -1
  71. data/lib/rademade_admin/model/reflection/uploader.rb +2 -2
  72. data/lib/rademade_admin/model/reflection.rb +5 -13
  73. data/lib/rademade_admin/routing/mapper.rb +4 -1
  74. data/lib/rademade_admin/routing/resource.rb +2 -1
  75. data/lib/rademade_admin/routing.rb +2 -1
  76. data/lib/rademade_admin/sortable.rb +1 -0
  77. data/lib/rademade_admin/uploader/photo.rb +2 -1
  78. data/lib/rademade_admin/uploader/video.rb +2 -1
  79. data/lib/rademade_admin/user.rb +1 -0
  80. data/lib/rademade_admin/version.rb +2 -1
  81. data/lib/rademade_admin.rb +8 -6
  82. data/lib/tasks/rademade_bower_install.rake +9 -0
  83. metadata +92 -339
  84. data/MIT-LICENSE +0 -20
  85. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.eot +0 -0
  86. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.svg +0 -228
  87. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.ttf +0 -0
  88. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.woff +0 -0
  89. data/app/assets/images/rademade_admin/datatables/back_disabled.png +0 -0
  90. data/app/assets/images/rademade_admin/datatables/back_enabled.png +0 -0
  91. data/app/assets/images/rademade_admin/datatables/back_enabled_hover.png +0 -0
  92. data/app/assets/images/rademade_admin/datatables/forward_disabled.png +0 -0
  93. data/app/assets/images/rademade_admin/datatables/forward_enabled.png +0 -0
  94. data/app/assets/images/rademade_admin/datatables/forward_enabled_hover.png +0 -0
  95. data/app/assets/images/rademade_admin/datatables/sort_asc.png +0 -0
  96. data/app/assets/images/rademade_admin/datatables/sort_asc_disabled.png +0 -0
  97. data/app/assets/images/rademade_admin/datatables/sort_both.png +0 -0
  98. data/app/assets/images/rademade_admin/datatables/sort_desc.png +0 -0
  99. data/app/assets/images/rademade_admin/datatables/sort_desc_disabled.png +0 -0
  100. data/app/assets/images/rademade_admin/jquery-ui/animated-overlay.gif +0 -0
  101. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  102. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  103. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
  104. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  105. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  106. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  107. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  108. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  109. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  110. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_222222_256x240.png +0 -0
  111. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
  112. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
  113. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
  114. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  115. data/app/assets/images/rademade_admin/select2/select2.png +0 -0
  116. data/app/assets/images/rademade_admin/select2/select2x2.png +0 -0
  117. data/app/assets/images/rademade_admin/select2/spinner.gif +0 -0
  118. data/app/assets/images/rademade_admin/uniform/bg-input-focus.png +0 -0
  119. data/app/assets/images/rademade_admin/uniform/bg-input.png +0 -0
  120. data/app/assets/images/rademade_admin/uniform/sprite.png +0 -0
  121. data/app/assets/javascripts/rademade_admin/form/library/jquery.form-serialize.js +0 -54
  122. data/app/assets/javascripts/rademade_admin/form/library/jquery.form.js +0 -1121
  123. data/app/assets/javascripts/rademade_admin/form/library/jquery.formrestrict.js +0 -27
  124. data/app/assets/javascripts/rademade_admin/form/library/jquery.validate.js +0 -1231
  125. data/app/assets/javascripts/rademade_admin/form/library/jquery.validate.messages_ru.js +0 -27
  126. data/app/assets/javascripts/rademade_admin/library/backbone.js +0 -1581
  127. data/app/assets/javascripts/rademade_admin/library/bootstrap/bootstrap.datepicker.js +0 -989
  128. data/app/assets/javascripts/rademade_admin/library/bootstrap/bootstrap.js +0 -1992
  129. data/app/assets/javascripts/rademade_admin/library/jquery/jquery-ui-1.10.4.custom.min.js +0 -6
  130. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.dataTables.js +0 -12099
  131. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.js +0 -2960
  132. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.resize.js +0 -60
  133. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.stack.js +0 -188
  134. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.knob.js +0 -661
  135. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.uniform.min.js +0 -1
  136. data/app/assets/javascripts/rademade_admin/library/notifier.custom.js +0 -431
  137. data/app/assets/javascripts/rademade_admin/library/underscore.js +0 -1276
  138. data/app/assets/javascripts/rademade_admin/library/wysihtml5-0.3.0.js +0 -9463
  139. data/app/assets/stylesheets/rademade_admin/bootstrap/bootstrap.css.erb +0 -5911
  140. data/app/assets/stylesheets/rademade_admin/lib/jquery-ui-1.10.2.custom.css.erb +0 -544
  141. data/app/assets/stylesheets/rademade_admin/lib/select2.css.erb +0 -513
  142. data/app/assets/stylesheets/rademade_admin/lib/uniform.default.css.erb +0 -366
  143. data/app/assets/stylesheets/rademade_admin.css +0 -14
  144. data/app/models/rademade_admin/user.rb +0 -6
  145. data/app/serializers/autocomplete_serializer.rb +0 -46
  146. data/app/services/model_controller/linker.rb +0 -49
  147. data/test/dummy/README.rdoc +0 -28
  148. data/test/dummy/Rakefile +0 -6
  149. data/test/dummy/app/assets/javascripts/application.js +0 -13
  150. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  151. data/test/dummy/app/controllers/application_controller.rb +0 -5
  152. data/test/dummy/app/controllers/rademade_admin/posts_controller.rb +0 -9
  153. data/test/dummy/app/controllers/rademade_admin/users_controller.rb +0 -14
  154. data/test/dummy/app/helpers/application_helper.rb +0 -2
  155. data/test/dummy/app/models/post.rb +0 -9
  156. data/test/dummy/app/models/user.rb +0 -7
  157. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  158. data/test/dummy/bin/bundle +0 -3
  159. data/test/dummy/bin/rails +0 -4
  160. data/test/dummy/bin/rake +0 -4
  161. data/test/dummy/config/application.rb +0 -29
  162. data/test/dummy/config/boot.rb +0 -5
  163. data/test/dummy/config/environment.rb +0 -5
  164. data/test/dummy/config/environments/development.rb +0 -29
  165. data/test/dummy/config/environments/production.rb +0 -80
  166. data/test/dummy/config/environments/test.rb +0 -36
  167. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  168. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  169. data/test/dummy/config/initializers/inflections.rb +0 -16
  170. data/test/dummy/config/initializers/mime_types.rb +0 -5
  171. data/test/dummy/config/initializers/rademade_admin.rb +0 -3
  172. data/test/dummy/config/initializers/secret_token.rb +0 -12
  173. data/test/dummy/config/initializers/session_store.rb +0 -3
  174. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  175. data/test/dummy/config/locales/en.yml +0 -23
  176. data/test/dummy/config/mongoid.yml +0 -6
  177. data/test/dummy/config/routes.rb +0 -8
  178. data/test/dummy/config.ru +0 -4
  179. data/test/dummy/db/development.sqlite3 +0 -0
  180. data/test/dummy/public/404.html +0 -58
  181. data/test/dummy/public/422.html +0 -58
  182. data/test/dummy/public/500.html +0 -57
  183. data/test/dummy/public/favicon.ico +0 -0
  184. data/test/integration/navigation_test.rb +0 -10
  185. data/test/rademade_admin_test.rb +0 -7
  186. data/test/test_helper.rb +0 -15
@@ -38,8 +38,7 @@
38
38
  <% end %>
39
39
  <td>
40
40
  <ul class="actions">
41
- <li><%= button_to 'Unlink',
42
- admin_unlink_uri(item, params[:parent], params[:parent_id]), {
41
+ <li><%= button_to 'Unlink', admin_unlink_uri(item, params[:parent], params[:parent_id]), {
43
42
  :method => :patch,
44
43
  :form => {:class => 'delete-item-form'}
45
44
  } %></li>
@@ -21,12 +21,13 @@
21
21
 
22
22
  <thead>
23
23
  <tr>
24
- <% @list_fields.each_with_index do |name, index| %>
25
- <th class="col-md-3 sort-button" data-column="<%= name %>">
24
+ <% @list_fields.each_with_index do |name, index|
25
+ list_field_name = field_name(name)
26
+ %><th class="col-md-3 sort-button" data-column="<%= list_field_name %>">
26
27
  <% unless index == 0 %>
27
28
  <span class="line"></span>
28
29
  <% end %>
29
- <span><%= field_to_label(name) + @sortable_service.sorting_sign(name) %></span>
30
+ <span><%= field_to_label(name) + @sortable_service.sorting_sign(list_field_name) %></span>
30
31
  </th>
31
32
  <% end %>
32
33
 
@@ -39,7 +40,7 @@
39
40
 
40
41
  <% has_position = @sortable_service.has_position? %>
41
42
  <tbody class="table-sortable" data-position='<%= has_position %>'>
42
- <% @items.each_with_index do |item, index| %>
43
+ <% @items.each_with_index do |item| %>
43
44
  <tr<%
44
45
  if has_position
45
46
  %> id='<%= item.position %>'<%
@@ -47,7 +48,7 @@
47
48
  %> data-id='<%= item.id %>'>
48
49
  <% @list_fields.each do |name|
49
50
  %><td><%
50
- value = item.send(name)
51
+ value = field_value(name, item)
51
52
  # todo remove hard code, extract helper (data adapter)
52
53
  if value.respond_to? :id
53
54
  concat link_to value.to_s, admin_edit_uri(value)
@@ -1,5 +1,7 @@
1
1
  <% content_for :last_crumbs do %>
2
- <%= link_to("#{params[:parent]}", admin_model_url_for(params[:parent], {
2
+ <%= link_to(admin_list_name(@parent_model_info), admin_list_uri(@parent_model_info)) %>
3
+ <span class="separator">-></span>
4
+ <%= link_to(@parent, admin_model_url_for(params[:parent], {
3
5
  :action => :edit,
4
6
  :id => params[:parent_id]
5
7
  })) %>
@@ -8,17 +10,22 @@
8
10
  <% end %>
9
11
 
10
12
  <% content_for :page_header do %>
11
- <h3><%= admin_list_name(@model_info) %> of <%= params[:parent] %></h3>
13
+ <h3><%= admin_list_name(@model_info) %> of "<%= @parent %>"</h3>
12
14
  <% end %>
13
15
 
14
16
  <% content_for :content do %>
17
+ <% autocomplete_uri = admin_link_autocomplete_uri(@model_info, {
18
+ :parent => params[:parent],
19
+ :parent_id => params[:parent_id],
20
+ :format => :json
21
+ }) %>
15
22
  <%= content_tag(
16
23
  :input,
17
24
  nil,
18
25
  :type => 'hidden',
19
26
  :class => 'select2-add-link',
20
27
  :'data-model' => @model_class.to_s,
21
- :'data-rel-list-url' => admin_autocomplete_uri(@model_info) + '.json')
28
+ :'data-rel-list-url' => autocomplete_uri)
22
29
  %><table class="table table-hover">
23
30
  <thead>
24
31
  <tr>
@@ -40,7 +47,7 @@
40
47
 
41
48
  <% has_position = @sortable_service.has_position? %>
42
49
  <tbody data-position='false'>
43
- <% @items.each_with_index do |item, index| %>
50
+ <% @items.each do |item| %>
44
51
  <tr<%
45
52
  if has_position
46
53
  %> id='<%= item.position %>'<%
@@ -0,0 +1,6 @@
1
+ # -*- encoding : utf-8 -*-
2
+ BowerRails.configure do |bower_rails|
3
+ bower_rails.install_before_precompile = true
4
+ bower_rails.resolve_before_precompile = true
5
+ bower_rails.clean_before_precompile = true
6
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  # Use this hook to configure devise mailer, warden hooks and so forth.
2
3
  # Many of these configuration options can be set straight in your model.
3
4
  Devise.setup do |config|
@@ -0,0 +1,13 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Formtastic
3
+ module Helpers
4
+ module InputHelper
5
+
6
+ def input_class(as)
7
+ @input_classes_cache ||= {}
8
+ @input_classes_cache[as] ||= input_class_by_trying(as)
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  class ActionDispatch::Routing::Mapper
2
3
  include RademadeAdmin::Routing::Mapper
3
- end
4
+ end
data/config/routes.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  RademadeAdmin::Engine.routes.draw do
2
3
 
3
4
  mount Ckeditor::Engine => '/ckeditor'
@@ -11,7 +12,7 @@ RademadeAdmin::Engine.routes.draw do
11
12
  get 'login' => 'dashboard#login', :as => 'login'
12
13
 
13
14
  resources :sessions do
14
- delete 'logout', :on => :collection
15
+ get 'logout', :on => :collection
15
16
  end
16
17
 
17
18
  end
@@ -0,0 +1,14 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'bower-rails/performer'
3
+
4
+ module RademadeAdmin
5
+ module Bower
6
+ class Performer < BowerRails::Performer
7
+
8
+ def bower_root_path
9
+ @root_path ||= RademadeAdmin::Engine.root.to_s
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  class Configuration
3
4
  class << self
@@ -14,4 +15,4 @@ module RademadeAdmin
14
15
  end
15
16
  end
16
17
  end
17
- end
18
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'rademade_admin/routing/mapper'
2
3
  require 'formtastic'
3
4
 
@@ -5,9 +6,12 @@ module RademadeAdmin
5
6
  class Engine < ::Rails::Engine
6
7
  isolate_namespace RademadeAdmin
7
8
 
9
+ config.assets.paths << "#{config.root}/vendor/assets/javascript/bower_components"
10
+
11
+ $LOAD_PATH << "#{config.root}/app/services/"
12
+
8
13
  paths = %W(
9
14
  #{config.root}/app/helpers/**/*.rb
10
- #{config.root}/app/services/crud_controller/*.rb
11
15
  #{config.root}/app/services/**/*.rb
12
16
  #{config.root}/app/inputs/**/*.rb
13
17
  #{config.root}/lib/rademade_admin/**/*.rb
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  class FileInfoFormatter
3
4
 
@@ -9,4 +10,4 @@ module RademadeAdmin
9
10
  end
10
11
 
11
12
  end
12
- end
13
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  #todo move to concern dir
2
3
  module RademadeAdmin
3
4
  class HtmlBuffer < Array
@@ -11,4 +12,4 @@ module RademadeAdmin
11
12
  end
12
13
 
13
14
  end
14
- end
15
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  class Fields
@@ -30,4 +31,4 @@ module RademadeAdmin
30
31
 
31
32
  end
32
33
  end
33
- end
34
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  class Configuration
@@ -49,4 +50,4 @@ module RademadeAdmin
49
50
 
50
51
  end
51
52
  end
52
- end
53
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  module DataAdapter
@@ -12,12 +13,17 @@ module RademadeAdmin
12
13
  @model.reflect_on_association(name)
13
14
  end
14
15
 
16
+ def many_relation?(field)
17
+ reflect_on_association(field).try(:collection?)
18
+ end
19
+
15
20
  def association_foreign_key(relation)
16
- assoc_key = relation.association_foreign_key
21
+ assoc_key = relation.name.to_s
17
22
  if relation.collection?
18
- assoc_key += 's'
23
+ assoc_key.singularize.foreign_key.pluralize
24
+ else
25
+ assoc_key.foreign_key
19
26
  end
20
- assoc_key
21
27
  end
22
28
 
23
29
  def fields
@@ -50,4 +56,4 @@ module RademadeAdmin
50
56
  end
51
57
  end
52
58
  end
53
- end
59
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  module DataAdapter
@@ -12,6 +13,10 @@ module RademadeAdmin
12
13
  @model.reflect_on_association(name)
13
14
  end
14
15
 
16
+ def many_relation?(field)
17
+ reflect_on_association(field).try(:many?)
18
+ end
19
+
15
20
  def association_foreign_key(relation)
16
21
  rel_name = relation.name.to_s
17
22
  if relation.many?
@@ -46,4 +51,4 @@ module RademadeAdmin
46
51
  end
47
52
  end
48
53
  end
49
- end
54
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  module DataAdapter
@@ -14,6 +15,10 @@ module RademadeAdmin
14
15
  nil
15
16
  end
16
17
 
18
+ def many_relation?(field)
19
+ false
20
+ end
21
+
17
22
  def association_foreign_key(relation)
18
23
  nil
19
24
  end
@@ -56,4 +61,4 @@ module RademadeAdmin
56
61
 
57
62
  end
58
63
  end
59
- end
64
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  class Graph
@@ -33,4 +34,4 @@ module RademadeAdmin
33
34
 
34
35
  end
35
36
  end
36
- end
37
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  class Info
@@ -93,9 +94,9 @@ module RademadeAdmin
93
94
 
94
95
  def default_field_type(field)
95
96
  if @model_reflection.association_fields.include? field
96
- :'rademade_admin/admin_select'
97
+ 'rademade_admin/admin_select'
97
98
  elsif @model_reflection.uploader_fields.include? field
98
- :'rademade_admin/admin_file'
99
+ 'rademade_admin/admin_file'
99
100
  else
100
101
  nil
101
102
  end
@@ -103,4 +104,4 @@ module RademadeAdmin
103
104
 
104
105
  end
105
106
  end
106
- end
107
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  class Reflection
@@ -44,4 +45,4 @@ module RademadeAdmin
44
45
  end
45
46
  end
46
47
  end
47
- end
48
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Model
3
4
  class Reflection
@@ -7,7 +8,6 @@ module RademadeAdmin
7
8
  @model.respond_to?(:uploaders) ? @model.uploaders : []
8
9
  end
9
10
 
10
- # todo move to module
11
11
  def uploader_fields
12
12
  @model.respond_to?(:uploaders) ? @model.uploaders.keys : []
13
13
  end
@@ -15,4 +15,4 @@ module RademadeAdmin
15
15
  end
16
16
  end
17
17
  end
18
- end
18
+ end
@@ -1,4 +1,7 @@
1
- #todo move to routing dir
1
+ # -*- encoding : utf-8 -*-
2
+ require 'rademade_admin/model/reflection/uploader'
3
+ require 'rademade_admin/model/reflection/data'
4
+
2
5
  module RademadeAdmin
3
6
  module Model
4
7
  class Reflection
@@ -11,21 +14,10 @@ module RademadeAdmin
11
14
  @model, @controller, @controller_name, @inner = model, controller, controller_name, inner
12
15
  end
13
16
 
14
- def parent_menu_item
15
- @controller_name.camelize.constantize.instance_variable_get('@parent_item')
16
- end
17
-
18
17
  def nested?
19
18
  @inner
20
19
  end
21
20
 
22
- # @doc
23
- # Admin::User => :users
24
- # RademadeAdmin::User::Adapter => :adapters
25
- def model_related_name
26
- @model.to_s.demodulize.pluralize.downcase.to_sym
27
- end
28
-
29
21
  end
30
22
  end
31
- end
23
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Routing
3
4
  module Mapper
@@ -15,6 +16,8 @@ module RademadeAdmin
15
16
 
16
17
  collection do
17
18
  get :autocomplete
19
+ get :link_autocomplete
20
+ get :related_index if parent_resource_actions.include? :index
18
21
  patch :re_sort
19
22
  end
20
23
 
@@ -24,7 +27,7 @@ module RademadeAdmin
24
27
 
25
28
  member do
26
29
  get :form if parent_resource_actions.include? :edit
27
- patch :unlink_relation if parent_resource_actions.include? :update
30
+ post :unlink_relation if parent_resource_actions.include? :update
28
31
  put :link_relation if parent_resource_actions.include? :update
29
32
  end
30
33
 
@@ -1,6 +1,7 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Routing
3
4
  class Resource < ActionDispatch::Routing::Mapper::Resources::Resource
4
5
  end
5
6
  end
6
- end
7
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin::Routing
2
3
 
3
- end
4
+ end