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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0f63a923ddc8a45dd33a59bc21f0f388b7889cc1
4
- data.tar.gz: c108f46620d426b8782a8c4b31696e3977d9d893
3
+ metadata.gz: d7d3ca2426580bad9e67e2103140b383dab75f3d
4
+ data.tar.gz: c4a7f799fada0a7a5b4e13ecb02053e383c4f49e
5
5
  SHA512:
6
- metadata.gz: 28b13653558630df92357813bcdf7e1f2e36824f462e81fbb82c890334e98d17171b5d8c979ccba6a644737c9d96aadee2d73dfe000bac36a83f8d76b36ebf44
7
- data.tar.gz: 225d4afbd5e10d3b8db5311a87c36716888870209c8b8b42d84c439df6e12be47905f34ea2376df216185c882dd5af0695f6fc127eba98798a72216c23c92616
6
+ metadata.gz: d1459c6e0eff7fc3977e13dcb53d4814f53f4582557d6451e853f2d93a413167d3a0687511e58066002bf442ee45526a0c36d043083d7006486893fbcccfaf02
7
+ data.tar.gz: cc0288f1716a8537d044e24e91905b186cf0613c6bacad89496435426ccec358fa5ba4ced92cb437f899ebc6d6753ff0af6ef8773e5d4f1912cdd8b70a55f481
data/Rakefile CHANGED
@@ -14,21 +14,14 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
17
- APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
17
+ APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
18
18
  load 'rails/tasks/engine.rake'
19
19
 
20
-
21
-
22
20
  Bundler::GemHelper.install_tasks
23
21
 
24
- require 'rake/testtask'
25
-
26
- Rake::TestTask.new(:test) do |t|
27
- t.libs << 'lib'
28
- t.libs << 'test'
29
- t.pattern = 'test/**/*_test.rb'
30
- t.verbose = false
31
- end
22
+ require 'rspec/core'
23
+ require 'rspec/core/rake_task'
32
24
 
25
+ RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
33
26
 
34
- task default: :test
27
+ task default: :spec
@@ -1,17 +1,3 @@
1
- getUrlParams = ->
2
- pl = /\+/g
3
- search = /([^&=]+)=?([^&]*)/g
4
-
5
- decode = (s) ->
6
- decodeURIComponent s.replace(pl, " ")
7
-
8
- query = window.location.search.substring(1)
9
- urlParams = {}
10
- urlParams[decode(match[1])] = decode(match[2]) while match = search.exec(query)
11
-
12
- urlParams
13
-
14
-
15
1
  initSelect = ->
16
2
  $item = $('.select2-add-link')
17
3
  url = $item.data('relListUrl')
@@ -30,25 +16,20 @@ initSelect = ->
30
16
  ajax :
31
17
  url : url
32
18
  dataType : 'json'
33
- data : (term) -> {q: term}
34
- results : (data) -> {results: data}
19
+ data : (term) -> {q : term}
20
+ results : (data) -> {results : data}
35
21
  ).on 'change', (e) ->
36
- sendNew(e.added)
22
+ sendNew(e.added.link_url)
37
23
 
38
24
 
39
- sendNew = (added) ->
25
+ sendNew = (linkUrl) ->
40
26
  $.ajax
41
- url : ajax_link(added.id)
27
+ url : linkUrl
42
28
  type : 'PUT'
43
- data : getUrlParams()
44
29
  success : ->
45
30
  location.reload()
46
31
 
47
32
 
48
- ajax_link = (id) ->
49
- location.href.substring(0, location.href.indexOf(location.search)) + '/' + id + '/link_relation'
50
-
51
-
52
33
  $ ->
53
34
  $(document)
54
35
  .on('ready page:load init-select', initSelect)
@@ -74,6 +74,7 @@ window.FormAjaxSubmit = ($form) ->
74
74
  # It finds all 'array' members of data hash,
75
75
  # and splits their values by ',', cleaning all
76
76
  # non-space characters.
77
+ #todo extract. All class need super refactoring. Sergey, you can do it :)
77
78
  for memb of items.data
78
79
  array = items.data[memb]
79
80
  if $.isArray(array)
@@ -86,6 +87,9 @@ window.FormAjaxSubmit = ($form) ->
86
87
 
87
88
  items.data[memb] = if newArray.length is 0 then [''] else newArray
88
89
 
90
+ input_method = @_$form.find('input[name="_method"]')
91
+ items['_method'] = input_method.val() if input_method instanceof jQuery
92
+
89
93
  $.ajax(
90
94
  url: @_$form.attr('action')
91
95
  type: @_$form.attr('method')
@@ -1,14 +1,35 @@
1
- #= require jquery
2
- #= require jquery_ujs
1
+ #= require jquery/dist/jquery
2
+ #= require jquery-ui/ui/core
3
+ #= require jquery-ui/ui/widget
4
+ #= require jquery-ui/ui/mouse
5
+ #= require jquery-ui/ui/draggable
6
+ #= require jquery-ui/ui/resizable
7
+ #= require jquery-ui/ui/sortable
8
+ #= require jquery-ui/ui/slider
9
+ #= require jquery-fileupload/js/jquery.fileupload
10
+ #= require jquery-fileupload/js/jquery.iframe-transport
11
+ #= require jquery-form/jquery.form
12
+ #= require jquery-serialize/jquery.serialize-object
13
+ #= require jquery-formrestrict/jquery.formrestrict
14
+ #= require jquery-validation/src/core
15
+ #= require jquery-validation/src/ajax
16
+ #= require jquery-validation/src/delegate
3
17
  #= require turbolinks
4
18
  #= require select2
5
19
  #= require ckeditor/init
6
- #= require magnific-popup
7
- #= require rademade_admin/library/underscore.js
8
- #= require rademade_admin/library/backbone.js
20
+ #= require magnific-popup/dist/jquery.magnific-popup
21
+ #= require flot/jquery.flot
22
+ #= require flot/jquery.flot.resize
23
+ #= require flot/jquery.flot.stack
24
+ #= require knob/js/jquery.knob
25
+ #= require uniform/jquery.uniform
26
+ #= require data-tables/media/js/jquery.dataTables
27
+ #= require wysihtml5/dist/wysihtml5-0.3.0
28
+ #= require underscore/underscore
29
+ #= require backbone/backbone
30
+ #= require bootstrap/dist/js/bootstrap
31
+ #= require bootstrap-datepicker/js/bootstrap-datepicker
9
32
  #= require_tree ./rademade_admin/library
10
- #= require jquery-fileupload/basic
11
- #= require_tree ./rademade_admin/form/library
12
33
  #= require_tree ./rademade_admin/form
13
34
  #= require_tree ./rademade_admin/app
14
35
  #= require_tree ./rademade_admin
@@ -1,7 +1,7 @@
1
1
  i.tool{
2
2
  height: 14px;
3
3
  width: 14px;
4
- background: url("<%=image_path('rademade_admin/icons/btn-tools.png')%>") no-repeat;
4
+ background: url("<%=image_path('rademade_admin/icons/btn-tool.png')%>") no-repeat;
5
5
  display: inline-block;
6
6
  margin-top: 1px;
7
7
  *margin-right: .3em;
@@ -0,0 +1,19 @@
1
+ /*
2
+ *= require jquery-fileupload/css/jquery.fileupload-ui
3
+ *= require select2/select2
4
+ *= require magnific-popup/dist/magnific-popup
5
+ *= require bootstrap/dist/css/bootstrap
6
+ *= require jquery-ui/themes/base/core
7
+ *= require jquery-ui/themes/base/slider
8
+ *= require uniform/themes/default/css/uniform.default
9
+ *= require_tree ./rademade_admin
10
+ */
11
+
12
+ .cke_chrome {
13
+ width: 76% !important;
14
+ overflow: hidden;
15
+ }
16
+
17
+ #sidebar-nav #dashboard-menu ul.submenu {
18
+ margin-left: -7px;
19
+ }
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  class AbstractController < ApplicationController
3
4
  include ::RademadeAdmin::UriHelper
@@ -20,5 +21,6 @@ module RademadeAdmin
20
21
  :message => 'Error occurred'
21
22
  }, :status => :unprocessable_entity
22
23
  end
24
+
23
25
  end
24
26
  end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  class AdminUsersController < ModelController
3
4
 
@@ -13,4 +14,4 @@ module RademadeAdmin
13
14
  end
14
15
 
15
16
  end
16
- end
17
+ end
@@ -1,7 +1,10 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  class ApplicationController < ActionController::Base
4
+
3
5
  def current_ability
4
6
  @current_ability ||= RademadeAdmin::Ability.new(current_user)
5
7
  end
8
+
6
9
  end
7
10
  end
@@ -1,5 +1,5 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
-
3
3
  class DashboardController < RademadeAdmin::AbstractController
4
4
 
5
5
  skip_before_action :require_login, :only => [:login]
@@ -1,8 +1,8 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  class ModelController < RademadeAdmin::AbstractController
3
4
 
4
5
  extend RademadeAdmin::ModelOptions
5
- include RademadeAdmin::Linker
6
6
  include RademadeAdmin::InstanceOptions
7
7
  include RademadeAdmin::Templates
8
8
  include RademadeAdmin::Notifier
@@ -15,7 +15,8 @@ module RademadeAdmin
15
15
  saver.create_model
16
16
  if saver.save_model
17
17
  saver.save_aggregated_data
18
- success_insert saver.item
18
+ @item = saver.item
19
+ success_insert @item
19
20
  else
20
21
  render_errors saver.errors
21
22
  end
@@ -26,7 +27,8 @@ module RademadeAdmin
26
27
  saver = Saver.new(model_info, params)
27
28
  if saver.update_model
28
29
  saver.save_aggregated_data
29
- success_update saver.item
30
+ @item = saver.item
31
+ success_update @item
30
32
  else
31
33
  render_errors saver.errors
32
34
  end
@@ -41,22 +43,34 @@ module RademadeAdmin
41
43
 
42
44
  def autocomplete
43
45
  authorize! :read, model_class
44
- search_conditions = Search::AutocompleteConditions.new(params, origin_fields, model_info.filter_fields)
45
- searcher = Search::Searcher.new model_info
46
- items = searcher.search search_conditions
47
- render :json => AutocompleteSerializer.new(items)
46
+ init_search Search::Conditions::Autocomplete.new(params, origin_fields, model_info.filter_fields)
47
+ render :json => Autocomplete::BaseSerializer.new(@items)
48
+ end
49
+
50
+ def link_autocomplete
51
+ authorize! :read, model_class
52
+ init_search Search::Conditions::Autocomplete.new(params, origin_fields, model_info.filter_fields)
53
+ render :json => Autocomplete::LinkSerializer.new(@items, params[:parent], params[:parent_id])
48
54
  end
49
55
 
50
- # todo another action for related
51
56
  def index
52
57
  authorize! :read, model_class
53
- is_related_list = !!params[:parent]
54
- search_conditions = Search::ListConditions.new(params, origin_fields)
55
- @searcher = Search::Searcher.new model_info
56
- @items = @searcher.search search_conditions, is_related_list
57
- @sortable_service = RademadeAdmin::SortableService.new(model_info, params)
58
+ init_search Search::Conditions::List.new(params, origin_fields)
59
+ init_sortable_service
60
+ respond_to do |format|
61
+ format.html { render_template }
62
+ format.json { render :json => @items }
63
+ end
64
+ end
65
+
66
+ def related_index
67
+ authorize! :read, model_class
68
+ init_search Search::Conditions::RelatedList.new(params, origin_fields)
69
+ init_sortable_service
70
+ @parent_model_info = RademadeAdmin::Model::Graph.instance.model_info(params[:parent])
71
+ @parent = @parent_model_info.model.find(params[:parent_id])
58
72
  respond_to do |format|
59
- format.html { is_related_list ? render_template('related_index') : render_template }
73
+ format.html { render_template }
60
74
  format.json { render :json => @items }
61
75
  end
62
76
  end
@@ -73,18 +87,12 @@ module RademadeAdmin
73
87
  render_template
74
88
  end
75
89
 
76
- def unlink_relation
77
- item = find_item(params[:id])
78
- unlink(item)
79
- item.save
80
- success_unlink item
90
+ def link_relation
91
+ process_link :link
81
92
  end
82
93
 
83
- def link_relation
84
- item = find_item(params[:id])
85
- link(item)
86
- item.save
87
- success_link item
94
+ def unlink_relation
95
+ process_link :unlink
88
96
  end
89
97
 
90
98
  def show
@@ -103,7 +111,7 @@ module RademadeAdmin
103
111
  end
104
112
 
105
113
  def re_sort
106
- @sortable_service = RademadeAdmin::SortableService.new(model_info, params)
114
+ init_sortable_service
107
115
  @sortable_service.re_sort_items
108
116
  success_action
109
117
  end
@@ -118,5 +126,20 @@ module RademadeAdmin
118
126
  render abstract_template(template)
119
127
  end
120
128
 
129
+ def init_search(search_conditions)
130
+ @searcher = Search::Searcher.new model_info
131
+ @items = @searcher.search search_conditions
132
+ end
133
+
134
+ def init_sortable_service
135
+ @sortable_service = RademadeAdmin::SortableService.new(model_info, params)
136
+ end
137
+
138
+ def process_link(method)
139
+ linker = Linker.new(model_info, params[:parent], params[:parent_id])
140
+ linker.send(method, params[:id])
141
+ send("success_#{method}", find_item(params[:id]))
142
+ end
143
+
121
144
  end
122
145
  end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin
2
3
  class SessionsController < RademadeAdmin::AbstractController
3
4
 
@@ -5,7 +6,7 @@ module RademadeAdmin
5
6
 
6
7
  def create
7
8
  begin
8
- user = RademadeAdmin::Login.admin( params )
9
+ user = RademadeAdmin::Login.admin(params)
9
10
  sign_in user
10
11
  render :json => user, :status => :ok
11
12
  rescue RademadeAdmin::Login::Error => e
@@ -1,8 +1,29 @@
1
- # encoding: utf-8
1
+ # -*- encoding : utf-8 -*-
2
2
  module RademadeAdmin::FieldHelper
3
3
 
4
4
  def field_to_label(field)
5
- field.to_s.sub('_', ' ').capitalize
5
+ if configured_field?(field) and field.values.first[:label].present?
6
+ field.values.first[:label]
7
+ else
8
+ field.to_s.humanize
9
+ end
10
+ end
11
+
12
+ def field_name(field)
13
+ configured_field?(field) ? field.keys.first : field
14
+ end
15
+
16
+ def field_value(field, item)
17
+ if configured_field?(field)
18
+ if field.values.first[:method].present?
19
+ method_name = field.values.first[:method]
20
+ else
21
+ method_name = field.keys.first
22
+ end
23
+ else
24
+ method_name = field
25
+ end
26
+ item.send(method_name)
6
27
  end
7
28
 
8
29
  def pagination_option(number, name = 'paginate')
@@ -24,4 +45,10 @@ module RademadeAdmin::FieldHelper
24
45
  :input_html => {:class => 'form-control'}
25
46
  end
26
47
 
27
- end
48
+ private
49
+
50
+ def configured_field?(field)
51
+ field.is_a? Hash
52
+ end
53
+
54
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module RademadeAdmin::FormHelper
2
3
 
3
4
  def admin_form(record, model, &block)
@@ -20,7 +21,7 @@ module RademadeAdmin::FormHelper
20
21
 
21
22
  field = form.input(name, input_attr(attrs))
22
23
 
23
- if multiple_relation?(model_info, name)
24
+ if model_info.model_reflection.many_relation? name
24
25
  link = admin_field_link_to_list(name, model_info, record).to_s
25
26
  else
26
27
  link = ''
@@ -34,12 +35,15 @@ module RademadeAdmin::FormHelper
34
35
  end
35
36
 
36
37
  def admin_field_link_to_list(name, model_info, record)
37
- uri = admin_model_url_for(model_info.reflect_on_association(name).class_name, {
38
- :action => :index,
39
- :parent => model_info.model,
40
- :parent_id => record.id.to_s
41
- })
42
- link_to(field_to_label(name).pluralize + ' list', uri)
38
+ if record.id
39
+ related_model = model_info.reflect_on_association(name).class_name
40
+ uri = admin_model_url_for(related_model, {
41
+ :action => :related_index,
42
+ :parent => model_info.model,
43
+ :parent_id => record.id.to_s
44
+ })
45
+ link_to(RademadeAdmin::Model::Graph.instance.model_info(related_model).item_name + ' list', uri) if uri
46
+ end
43
47
  end
44
48
 
45
49
  def admin_field_params(field_params)
@@ -50,14 +54,4 @@ module RademadeAdmin::FormHelper
50
54
  end
51
55
  end
52
56
 
53
- private
54
-
55
- def multiple_relation?(model_info, name)
56
- association = model_info.reflect_on_association(name)
57
- if association
58
- inner_model = association.class_name.to_s
59
- model_info.has_many.include? inner_model
60
- end
61
- end
62
-
63
- end
57
+ end