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
@@ -1,35 +1,42 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'search/conditions/abstract'
3
+
1
4
  module RademadeAdmin
2
5
  module Search
3
- class ListConditions < Abstract
6
+ module Conditions
7
+ class List < Abstract
4
8
 
5
- protected
9
+ protected
6
10
 
7
- def where
8
- where_conditions = super
9
- where_conditions[:and] = @params.slice(*@origin_fields)
10
- where_conditions
11
- end
11
+ def where
12
+ where_conditions = Where.new(:and)
13
+ @params.slice(*@origin_fields).each do |field, value|
14
+ where_conditions.add(field, value)
15
+ end
16
+ where_conditions
17
+ end
12
18
 
13
- def order
14
- field = @params[:sort] || default_order_field
15
- direction = @params[:direction] || :asc
16
- [{field => direction}]
17
- end
19
+ def order
20
+ field = @params[:sort] || default_order_field
21
+ direction = @params[:direction] || :asc
22
+ [{field => direction}]
23
+ end
18
24
 
19
- def page
20
- @params[:page] || 1
21
- end
25
+ def page
26
+ @params[:page] || 1
27
+ end
22
28
 
23
- def per_page
24
- @params[:paginate] || 20
25
- end
29
+ def per_page
30
+ @params[:paginate] || 20
31
+ end
26
32
 
27
- private
33
+ private
28
34
 
29
- def default_order_field
30
- @origin_fields.include?('position') ? :position : :id
31
- end
35
+ def default_order_field
36
+ @origin_fields.include?('position') ? :position : :id
37
+ end
32
38
 
39
+ end
33
40
  end
34
41
  end
35
- end
42
+ end
@@ -0,0 +1,28 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module RademadeAdmin
3
+ module Search
4
+ module Conditions
5
+ class Where
6
+
7
+ attr_reader :type, :parts
8
+
9
+ def initialize(type)
10
+ @type = type
11
+ @parts = []
12
+ end
13
+
14
+ def add(field, value)
15
+ @parts << {
16
+ :field => field,
17
+ :value => value
18
+ }
19
+ end
20
+
21
+ def sub_add(where)
22
+ @parts << where
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,54 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'search/conditions/abstract'
3
+
4
+ module RademadeAdmin
5
+ module Search
6
+ module Conditions
7
+ class RelatedList < Abstract
8
+
9
+ def base_condition(model)
10
+ model_related_name = model.to_s.tableize.gsub('/', '_').to_sym
11
+ @params[:parent].constantize.find(@params[:parent_id]).send(model_related_name)
12
+ end
13
+
14
+ protected
15
+
16
+ def where
17
+ where_conditions = Where.new(:and)
18
+ @params.slice(*@origin_fields).each do |field, value|
19
+ where_conditions.add(field, value)
20
+ end
21
+ where_conditions
22
+ end
23
+
24
+ def order
25
+ field = @params[:sort] || default_order_field
26
+ [{field => direction}]
27
+ end
28
+
29
+ def page
30
+ @params[:page] || 1
31
+ end
32
+
33
+ def per_page
34
+ @params[:paginate] || 20
35
+ end
36
+
37
+ private
38
+
39
+ def default_order_field
40
+ @origin_fields.include?('position') ? :position : :id
41
+ end
42
+
43
+ def direction
44
+ if @params[:direction].present?
45
+ @params[:direction].to_sym
46
+ else
47
+ :asc
48
+ end
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+ end
@@ -1,54 +1,45 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Search
3
- class QueryAdapter
4
+ module QueryAdapter
5
+ class Abstract
4
6
 
5
- def initialize(model)
6
- @model = model
7
- end
8
-
9
- def apply_conditions(search_conditions, is_related_list)
10
- # todo something with is_related_list
11
- @params = search_conditions.params
12
- @result = is_related_list ? related_base_condition : base_condition
13
- search_conditions.conditions.each do |query_part, values|
14
- @result = self.send(query_part, values) unless values.nil?
7
+ def initialize(model)
8
+ @model = model
15
9
  end
16
- @result
17
- end
18
10
 
19
- protected
11
+ def apply_conditions(search_conditions)
12
+ @params = search_conditions.params
13
+ @result = search_conditions.base_condition(@model)
14
+ search_conditions.conditions.each do |query_part, values|
15
+ @result = self.send(query_part, values) unless values.nil?
16
+ end
17
+ @result
18
+ end
20
19
 
21
- def base_condition
22
- @model.unscoped
23
- end
20
+ protected
24
21
 
25
- def related_base_condition
26
- parent_model = @params[:parent].constantize
27
- parent_id = @params[:parent_id]
28
- model_related_name = @model.to_s.demodulize.pluralize.downcase.to_sym
29
- parent_model.find(parent_id).send(model_related_name).unscoped
30
- end
22
+ def where(where_conditions)
23
+ @result
24
+ end
31
25
 
32
- def where(where_conditions)
33
- @result
34
- end
26
+ def order(order_conditions)
27
+ @result
28
+ end
35
29
 
36
- def order(order_conditions)
37
- @result
38
- end
30
+ def page(page_condition)
31
+ @result.page(page_condition)
32
+ end
39
33
 
40
- def page(page_condition)
41
- @result.page(page_condition)
42
- end
34
+ def per_page(per_page_condition)
35
+ @result.per(per_page_condition)
36
+ end
43
37
 
44
- def per_page(per_page_condition)
45
- @result.per(per_page_condition)
46
- end
38
+ def limit(limit_condition)
39
+ @result.limit(limit_condition)
40
+ end
47
41
 
48
- def limit(limit_condition)
49
- @result.limit(limit_condition)
50
42
  end
51
-
52
43
  end
53
44
  end
54
- end
45
+ end
@@ -1,33 +1,45 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'search/query_adapter/abstract'
3
+
1
4
  module RademadeAdmin
2
5
  module Search
3
- class ActiveRecord < Abstract
6
+ module QueryAdapter
7
+ class ActiveRecord < Abstract
8
+
9
+ protected
10
+
11
+ def where(where_conditions)
12
+ @values = []
13
+ condition = collect_where_conditions(where_conditions)
14
+ @result.where([condition, *@values])
15
+ end
4
16
 
5
- protected
17
+ def order(order_conditions)
18
+ order_conditions.each do |order_condition|
19
+ @result = @result.order(order_condition)
20
+ end
21
+ @result
22
+ end
6
23
 
7
- def where(where_conditions)
8
- values = []
9
- condition = ''
10
- where_conditions.each do |type, conditions|
11
- conditions.each do |field, value|
12
- condition += " #{type.to_s.capitalize} " unless condition.empty?
13
- if value.is_a? Array
14
- condition += "#{field} IN (?)"
24
+ def collect_where_conditions(where_conditions)
25
+ condition = ''
26
+ where_conditions.parts.each do |part|
27
+ condition += " #{where_conditions.type.to_s.capitalize} " unless condition.empty?
28
+ if part.is_a? RademadeAdmin::Search::Conditions::Where
29
+ condition += "(#{collect_where_conditions(part)})"
15
30
  else
16
- condition += "#{field} = ?"
31
+ if part[:value].is_a? Array
32
+ condition += "#{part[:field]} IN (?)"
33
+ else
34
+ condition += "#{part[:field]} = ?"
35
+ end
36
+ @values << part[:value]
17
37
  end
18
- values << value
19
38
  end
39
+ condition
20
40
  end
21
- @result.where([condition, *values])
22
- end
23
41
 
24
- def order(order_conditions)
25
- order_conditions.each do |order_condition|
26
- @result = @result.order(order_condition)
27
- end
28
- @result
29
42
  end
30
-
31
43
  end
32
44
  end
33
- end
45
+ end
@@ -1,33 +1,51 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'search/query_adapter/abstract'
3
+
1
4
  module RademadeAdmin
2
5
  module Search
3
- class Mongoid < Abstract
6
+ module QueryAdapter
7
+ class Mongoid < Abstract
8
+
9
+ protected
4
10
 
5
- protected
11
+ WHERE_METHOD_MAP = { :or => :or, :and => :where }.freeze
6
12
 
7
- def where(where_conditions)
8
- # todo
9
- if defined?(::Mongoid::Paranoia) and @model.ancestors.include? ::Mongoid::Paranoia
10
- where_conditions[:and][:deleted_at] = nil
13
+ def where(where_conditions)
14
+ if defined?(::Mongoid::Paranoia) and @model.ancestors.include? ::Mongoid::Paranoia
15
+ where_condition = RademadeAdmin::Search::Conditions::Where.new(:and)
16
+ where_condition.add(:deleted_at, nil)
17
+ where_condition.sub_add(where_conditions) if where_conditions
18
+ where_conditions = where_condition
19
+ end
20
+ collect_where_condition(where_conditions, @result)
11
21
  end
12
- method_map = { :or => :or, :and => :where }
13
- where_conditions.each do |type, conditions|
14
- conditions.each do |field, value|
15
- if value.is_a? Array
16
- field = field.in
22
+
23
+ def order(order_conditions)
24
+ order_conditions.each do |order_condition|
25
+ @result = @result.order_by(order_condition)
26
+ end
27
+ @result
28
+ end
29
+
30
+ def collect_where_condition(where_conditions, result)
31
+ where_method = WHERE_METHOD_MAP[where_conditions.type]
32
+ where_conditions.parts.each do |part|
33
+ if part.is_a? RademadeAdmin::Search::Conditions::Where
34
+ result = result.send(where_method, where_sub_condition(part))
35
+ else
36
+ field = part[:field]
37
+ field = field.in if part[:value].is_a? Array
38
+ result = result.send(where_method, field => part[:value])
17
39
  end
18
- @result = @result.send(method_map[type], field => value)
19
40
  end
41
+ result
20
42
  end
21
- @result
22
- end
23
43
 
24
- def order(order_conditions)
25
- order_conditions.each do |order_condition|
26
- @result = @result.order_by(order_condition)
44
+ def where_sub_condition(where_sub_conditions)
45
+ collect_where_condition(where_sub_conditions, @model.all).selector
27
46
  end
28
- @result
47
+
29
48
  end
30
-
31
49
  end
32
50
  end
33
- end
51
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  module Search
3
4
  class Searcher
@@ -6,14 +7,14 @@ module RademadeAdmin
6
7
  @model_info = model_info
7
8
  end
8
9
 
9
- def search(search_conditions, is_related_list = false)
10
- query_adapter.apply_conditions(search_conditions, is_related_list)
10
+ def search(search_conditions)
11
+ query_adapter.apply_conditions(search_conditions)
11
12
  end
12
13
 
13
14
  def query_adapter
14
- @query_adapter ||= "RademadeAdmin::Search::#{@model_info.model_reflection.orm_type}".constantize.new(@model_info.model)
15
+ @query_adapter ||= "RademadeAdmin::Search::QueryAdapter::#{@model_info.model_reflection.orm_type}".constantize.new(@model_info.model)
15
16
  end
16
17
 
17
18
  end
18
19
  end
19
- end
20
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  class RademadeAdmin::SortableService
2
3
 
3
4
  def initialize(model_info, params)
@@ -34,4 +35,4 @@ class RademadeAdmin::SortableService
34
35
  @model_info.has_field? 'position'
35
36
  end
36
37
 
37
- end
38
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  class RademadeAdmin::VideoService
2
3
 
3
4
  def initialize(file_path)
@@ -19,4 +20,4 @@ class RademadeAdmin::VideoService
19
20
  end
20
21
  end
21
22
 
22
- end
23
+ end
@@ -31,7 +31,13 @@
31
31
  </a><%
32
32
 
33
33
  if has_sub_items
34
- concat render 'rademade_admin/_blocks/sub_menu', :menu_item => menu_item
34
+ %><ul class="submenu"><%
35
+ concat render 'rademade_admin/_blocks/sub_menu/link', {
36
+ :uri => admin_list_uri(menu_item[:model_info]),
37
+ :title => admin_list_name(menu_item[:model_info])
38
+ }
39
+ concat render 'rademade_admin/_blocks/sub_menu', :menu_item => menu_item
40
+ %></ul><%
35
41
  end
36
42
 
37
43
  %></li><%
@@ -1,12 +1,4 @@
1
1
  <ul class="submenu"><%
2
- concat render 'rademade_admin/_blocks/sub_menu/link', {
3
- :uri => admin_list_uri(menu_item[:model_info]),
4
- :title => admin_list_name(menu_item[:model_info])
5
- }
6
- concat render 'rademade_admin/_blocks/sub_menu/link', {
7
- :uri => admin_new_uri(menu_item[:model_info]),
8
- :title => admin_add_name(menu_item[:model_info])
9
- }
10
2
  menu_item[:sub].each do |sub_item|
11
3
  concat render 'rademade_admin/_blocks/sub_menu/link', {
12
4
  :uri => admin_list_uri(sub_item[:model_info]),