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
@@ -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]),