rademade_admin 0.0.1 → 0.0.2

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