rademade_admin 0.0.1

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 (270) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +34 -0
  4. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.eot +0 -0
  5. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.svg +228 -0
  6. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.ttf +0 -0
  7. data/app/assets/fonts/rademade_admin/glyphicons-halflings-regular.woff +0 -0
  8. data/app/assets/images/rademade_admin/backgrounds/back-blue.jpg +0 -0
  9. data/app/assets/images/rademade_admin/backgrounds/back-green.jpg +0 -0
  10. data/app/assets/images/rademade_admin/backgrounds/back-orange.png +0 -0
  11. data/app/assets/images/rademade_admin/backgrounds/blueish.jpg +0 -0
  12. data/app/assets/images/rademade_admin/backgrounds/select-bg.png +0 -0
  13. data/app/assets/images/rademade_admin/datatables/back_disabled.png +0 -0
  14. data/app/assets/images/rademade_admin/datatables/back_enabled.png +0 -0
  15. data/app/assets/images/rademade_admin/datatables/back_enabled_hover.png +0 -0
  16. data/app/assets/images/rademade_admin/datatables/forward_disabled.png +0 -0
  17. data/app/assets/images/rademade_admin/datatables/forward_enabled.png +0 -0
  18. data/app/assets/images/rademade_admin/datatables/forward_enabled_hover.png +0 -0
  19. data/app/assets/images/rademade_admin/datatables/sort_asc.png +0 -0
  20. data/app/assets/images/rademade_admin/datatables/sort_asc_disabled.png +0 -0
  21. data/app/assets/images/rademade_admin/datatables/sort_both.png +0 -0
  22. data/app/assets/images/rademade_admin/datatables/sort_desc.png +0 -0
  23. data/app/assets/images/rademade_admin/datatables/sort_desc_disabled.png +0 -0
  24. data/app/assets/images/rademade_admin/icons/btn-attach.png +0 -0
  25. data/app/assets/images/rademade_admin/icons/btn-setting.png +0 -0
  26. data/app/assets/images/rademade_admin/icons/btn-shuffle.png +0 -0
  27. data/app/assets/images/rademade_admin/icons/btn-tool.png +0 -0
  28. data/app/assets/images/rademade_admin/icons/buble.png +0 -0
  29. data/app/assets/images/rademade_admin/icons/glyphicons-halflings-white.png +0 -0
  30. data/app/assets/images/rademade_admin/icons/glyphicons-halflings.png +0 -0
  31. data/app/assets/images/rademade_admin/icons/ico-arrow-black.png +0 -0
  32. data/app/assets/images/rademade_admin/icons/ico-gallery-edit.png +0 -0
  33. data/app/assets/images/rademade_admin/icons/ico-gallery-trash.png +0 -0
  34. data/app/assets/images/rademade_admin/icons/ico-mail.png +0 -0
  35. data/app/assets/images/rademade_admin/icons/ico-phone.png +0 -0
  36. data/app/assets/images/rademade_admin/icons/ico-table-delete.png +0 -0
  37. data/app/assets/images/rademade_admin/icons/ico-table-edit.png +0 -0
  38. data/app/assets/images/rademade_admin/icons/ico-table-new.png +0 -0
  39. data/app/assets/images/rademade_admin/icons/lens.png +0 -0
  40. data/app/assets/images/rademade_admin/icons/skin-nav-bullets.png +0 -0
  41. data/app/assets/images/rademade_admin/icons/table-icons.png +0 -0
  42. data/app/assets/images/rademade_admin/icons/table-img.png +0 -0
  43. data/app/assets/images/rademade_admin/jquery-ui/animated-overlay.gif +0 -0
  44. data/app/assets/images/rademade_admin/jquery-ui/slider-handler.png +0 -0
  45. data/app/assets/images/rademade_admin/jquery-ui/slider-handler2.png +0 -0
  46. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  47. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  48. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
  49. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  50. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  51. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  52. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  53. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  54. data/app/assets/images/rademade_admin/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  55. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_222222_256x240.png +0 -0
  56. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
  57. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
  58. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
  59. data/app/assets/images/rademade_admin/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  60. data/app/assets/images/rademade_admin/logos/logo-white.png +0 -0
  61. data/app/assets/images/rademade_admin/logos/logo.png +0 -0
  62. data/app/assets/images/rademade_admin/notifier-loader-clean.gif +0 -0
  63. data/app/assets/images/rademade_admin/notifier-loader-plastic.gif +0 -0
  64. data/app/assets/images/rademade_admin/placeholders/new-gallery-img.png +0 -0
  65. data/app/assets/images/rademade_admin/placeholders/no-img-gallery.png +0 -0
  66. data/app/assets/images/rademade_admin/select2/select2.png +0 -0
  67. data/app/assets/images/rademade_admin/select2/select2x2.png +0 -0
  68. data/app/assets/images/rademade_admin/select2/spinner.gif +0 -0
  69. data/app/assets/images/rademade_admin/uniform/bg-input-focus.png +0 -0
  70. data/app/assets/images/rademade_admin/uniform/bg-input.png +0 -0
  71. data/app/assets/images/rademade_admin/uniform/sprite.png +0 -0
  72. data/app/assets/javascripts/rademade_admin.coffee +14 -0
  73. data/app/assets/javascripts/rademade_admin/app/app.coffee +1 -0
  74. data/app/assets/javascripts/rademade_admin/app/common/dnd-sort.coffee +42 -0
  75. data/app/assets/javascripts/rademade_admin/app/common/pagination.coffee +6 -0
  76. data/app/assets/javascripts/rademade_admin/app/common/related-index.coffee +54 -0
  77. data/app/assets/javascripts/rademade_admin/app/common/relation-list.coffee +109 -0
  78. data/app/assets/javascripts/rademade_admin/app/common/sort-list.coffee +47 -0
  79. data/app/assets/javascripts/rademade_admin/app/common/uploader.coffee +53 -0
  80. data/app/assets/javascripts/rademade_admin/app/form-popup/collection.coffee +20 -0
  81. data/app/assets/javascripts/rademade_admin/app/form-popup/initializer.coffee +43 -0
  82. data/app/assets/javascripts/rademade_admin/app/form-popup/model.coffee +4 -0
  83. data/app/assets/javascripts/rademade_admin/app/form-popup/view.coffee +57 -0
  84. data/app/assets/javascripts/rademade_admin/app/forms/insert.coffee +7 -0
  85. data/app/assets/javascripts/rademade_admin/app/forms/login.coffee +4 -0
  86. data/app/assets/javascripts/rademade_admin/app/forms/remove.coffee +6 -0
  87. data/app/assets/javascripts/rademade_admin/app/notifier/initialize.js +31 -0
  88. data/app/assets/javascripts/rademade_admin/detail_admin/theme.js +56 -0
  89. data/app/assets/javascripts/rademade_admin/form/form-ajax-submit.coffee +153 -0
  90. data/app/assets/javascripts/rademade_admin/form/library/jquery.form-serialize.js +54 -0
  91. data/app/assets/javascripts/rademade_admin/form/library/jquery.form.js +1121 -0
  92. data/app/assets/javascripts/rademade_admin/form/library/jquery.formrestrict.js +27 -0
  93. data/app/assets/javascripts/rademade_admin/form/library/jquery.validate.js +1231 -0
  94. data/app/assets/javascripts/rademade_admin/form/library/jquery.validate.messages_ru.js +27 -0
  95. data/app/assets/javascripts/rademade_admin/library/backbone.js +1581 -0
  96. data/app/assets/javascripts/rademade_admin/library/bootstrap/bootstrap.datepicker.js +989 -0
  97. data/app/assets/javascripts/rademade_admin/library/bootstrap/bootstrap.js +1992 -0
  98. data/app/assets/javascripts/rademade_admin/library/ckeditor/config.js +12 -0
  99. data/app/assets/javascripts/rademade_admin/library/jquery/jquery-ui-1.10.4.custom.min.js +6 -0
  100. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.dataTables.js +12099 -0
  101. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.js +2960 -0
  102. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.resize.js +60 -0
  103. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.flot.stack.js +188 -0
  104. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.knob.js +661 -0
  105. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.tablednd.js +1 -0
  106. data/app/assets/javascripts/rademade_admin/library/jquery/jquery.uniform.min.js +1 -0
  107. data/app/assets/javascripts/rademade_admin/library/notifier.custom.js +431 -0
  108. data/app/assets/javascripts/rademade_admin/library/notifier.custom.min.js +15 -0
  109. data/app/assets/javascripts/rademade_admin/library/underscore.js +1276 -0
  110. data/app/assets/javascripts/rademade_admin/library/wysihtml5-0.3.0.js +9463 -0
  111. data/app/assets/stylesheets/rademade_admin.css +14 -0
  112. data/app/assets/stylesheets/rademade_admin/base.scss.erb +23 -0
  113. data/app/assets/stylesheets/rademade_admin/bootstrap/bootstrap-overrides.css.erb +341 -0
  114. data/app/assets/stylesheets/rademade_admin/bootstrap/bootstrap.css.erb +5911 -0
  115. data/app/assets/stylesheets/rademade_admin/bootstrap/main.scss.erb +78 -0
  116. data/app/assets/stylesheets/rademade_admin/detail_admin/chart-showcase.scss.erb +33 -0
  117. data/app/assets/stylesheets/rademade_admin/detail_admin/datatables.scss.erb +3 -0
  118. data/app/assets/stylesheets/rademade_admin/detail_admin/elements.scss.erb +665 -0
  119. data/app/assets/stylesheets/rademade_admin/detail_admin/error.scss.erb +19 -0
  120. data/app/assets/stylesheets/rademade_admin/detail_admin/form-showcase.scss.erb +87 -0
  121. data/app/assets/stylesheets/rademade_admin/detail_admin/form-wizard.scss.erb +261 -0
  122. data/app/assets/stylesheets/rademade_admin/detail_admin/gallery.scss.erb +106 -0
  123. data/app/assets/stylesheets/rademade_admin/detail_admin/grids.scss.erb +21 -0
  124. data/app/assets/stylesheets/rademade_admin/detail_admin/icons.scss.erb +115 -0
  125. data/app/assets/stylesheets/rademade_admin/detail_admin/index.scss.erb +290 -0
  126. data/app/assets/stylesheets/rademade_admin/detail_admin/layout.scss.erb +523 -0
  127. data/app/assets/stylesheets/rademade_admin/detail_admin/new-user.scss.erb +49 -0
  128. data/app/assets/stylesheets/rademade_admin/detail_admin/personal-info.scss.erb +144 -0
  129. data/app/assets/stylesheets/rademade_admin/detail_admin/popup.scss.erb +3 -0
  130. data/app/assets/stylesheets/rademade_admin/detail_admin/signin.scss.erb +128 -0
  131. data/app/assets/stylesheets/rademade_admin/detail_admin/tables.scss.erb +195 -0
  132. data/app/assets/stylesheets/rademade_admin/detail_admin/ui-elements.scss.erb +177 -0
  133. data/app/assets/stylesheets/rademade_admin/detail_admin/user-list.scss.erb +112 -0
  134. data/app/assets/stylesheets/rademade_admin/detail_admin/user-profile.scss.erb +169 -0
  135. data/app/assets/stylesheets/rademade_admin/detail_admin/web-app-icons.scss.erb +25 -0
  136. data/app/assets/stylesheets/rademade_admin/edit.css +7 -0
  137. data/app/assets/stylesheets/rademade_admin/file-upload.scss.erb +12 -0
  138. data/app/assets/stylesheets/rademade_admin/lib/bootstrap.datepicker.css.erb +302 -0
  139. data/app/assets/stylesheets/rademade_admin/lib/jquery-ui-1.10.2.custom.css.erb +544 -0
  140. data/app/assets/stylesheets/rademade_admin/lib/morris.css.erb +2 -0
  141. data/app/assets/stylesheets/rademade_admin/lib/select2.css.erb +513 -0
  142. data/app/assets/stylesheets/rademade_admin/lib/uniform.default.css.erb +366 -0
  143. data/app/assets/stylesheets/rademade_admin/notifier.custom.css.erb +661 -0
  144. data/app/assets/stylesheets/rademade_admin/scaffolds.scss.erb +32 -0
  145. data/app/controllers/rademade_admin/abstract_controller.rb +24 -0
  146. data/app/controllers/rademade_admin/admin_users_controller.rb +16 -0
  147. data/app/controllers/rademade_admin/application_controller.rb +7 -0
  148. data/app/controllers/rademade_admin/dashboard_controller.rb +16 -0
  149. data/app/controllers/rademade_admin/model_controller.rb +122 -0
  150. data/app/controllers/rademade_admin/sessions_controller.rb +22 -0
  151. data/app/helpers/rademade_admin/field_helper.rb +27 -0
  152. data/app/helpers/rademade_admin/form_helper.rb +63 -0
  153. data/app/helpers/rademade_admin/menu_helper.rb +45 -0
  154. data/app/helpers/rademade_admin/name_helper.rb +17 -0
  155. data/app/helpers/rademade_admin/upload_preview_helper.rb +59 -0
  156. data/app/helpers/rademade_admin/uri_helper.rb +104 -0
  157. data/app/inputs/rademade_admin/admin_file_input.rb +70 -0
  158. data/app/inputs/rademade_admin/admin_select_input.rb +81 -0
  159. data/app/inputs/rademade_admin/admin_textarea_input.rb +5 -0
  160. data/app/inputs/rademade_admin/boolean_input.rb +13 -0
  161. data/app/models/rademade_admin/ability.rb +39 -0
  162. data/app/models/rademade_admin/user.rb +6 -0
  163. data/app/serializers/autocomplete_serializer.rb +46 -0
  164. data/app/services/form_builder.rb +3 -0
  165. data/app/services/loader_service.rb +7 -0
  166. data/app/services/login.rb +18 -0
  167. data/app/services/login/error.rb +17 -0
  168. data/app/services/model_controller/instance_options.rb +38 -0
  169. data/app/services/model_controller/linker.rb +49 -0
  170. data/app/services/model_controller/model_options.rb +39 -0
  171. data/app/services/model_controller/notifier.rb +40 -0
  172. data/app/services/model_controller/templates.rb +27 -0
  173. data/app/services/saver.rb +69 -0
  174. data/app/services/search/conditions/abstract.rb +53 -0
  175. data/app/services/search/conditions/autocomplete.rb +44 -0
  176. data/app/services/search/conditions/list.rb +35 -0
  177. data/app/services/search/query_adapter/abstract.rb +54 -0
  178. data/app/services/search/query_adapter/active_record.rb +33 -0
  179. data/app/services/search/query_adapter/mongoid.rb +33 -0
  180. data/app/services/search/searcher.rb +19 -0
  181. data/app/services/sortable_service.rb +37 -0
  182. data/app/services/video_service.rb +22 -0
  183. data/app/views/layouts/rademade_admin.html.erb +13 -0
  184. data/app/views/rademade_admin/_blocks/_form_control.html.erb +5 -0
  185. data/app/views/rademade_admin/_blocks/_header.html.erb +30 -0
  186. data/app/views/rademade_admin/_blocks/_menu.html.erb +41 -0
  187. data/app/views/rademade_admin/_blocks/_pagination.html.erb +18 -0
  188. data/app/views/rademade_admin/_blocks/_sub_menu.html.erb +19 -0
  189. data/app/views/rademade_admin/_blocks/sub_menu/_link.html.erb +5 -0
  190. data/app/views/rademade_admin/_layouts/inner.html.erb +37 -0
  191. data/app/views/rademade_admin/_layouts/inner/form.html.erb +15 -0
  192. data/app/views/rademade_admin/_layouts/inner/index_table.html.erb +59 -0
  193. data/app/views/rademade_admin/_layouts/inner/related_index_table.html.erb +55 -0
  194. data/app/views/rademade_admin/abstract/_form.html.erb +10 -0
  195. data/app/views/rademade_admin/abstract/edit.html.erb +9 -0
  196. data/app/views/rademade_admin/abstract/form.html.erb +1 -0
  197. data/app/views/rademade_admin/abstract/index.html.erb +77 -0
  198. data/app/views/rademade_admin/abstract/new.html.erb +9 -0
  199. data/app/views/rademade_admin/abstract/related_index.html.erb +78 -0
  200. data/app/views/rademade_admin/dashboard/index.html.erb +9 -0
  201. data/app/views/rademade_admin/dashboard/login.html.erb +31 -0
  202. data/config/initializers/devise.rb +250 -0
  203. data/config/initializers/routes.rb +3 -0
  204. data/config/locales/devise.en.yml +59 -0
  205. data/config/routes.rb +17 -0
  206. data/lib/rademade_admin.rb +26 -0
  207. data/lib/rademade_admin/configuration.rb +17 -0
  208. data/lib/rademade_admin/engine.rb +22 -0
  209. data/lib/rademade_admin/file_info_formatter.rb +12 -0
  210. data/lib/rademade_admin/hrml_buffer.rb +14 -0
  211. data/lib/rademade_admin/model/configuration.rb +52 -0
  212. data/lib/rademade_admin/model/configuration/fields.rb +33 -0
  213. data/lib/rademade_admin/model/data_adapter.rb +59 -0
  214. data/lib/rademade_admin/model/data_adapter/active_record.rb +53 -0
  215. data/lib/rademade_admin/model/data_adapter/mongoid.rb +49 -0
  216. data/lib/rademade_admin/model/graph.rb +36 -0
  217. data/lib/rademade_admin/model/info.rb +106 -0
  218. data/lib/rademade_admin/model/reflection.rb +31 -0
  219. data/lib/rademade_admin/model/reflection/data.rb +47 -0
  220. data/lib/rademade_admin/model/reflection/uploader.rb +18 -0
  221. data/lib/rademade_admin/routing.rb +3 -0
  222. data/lib/rademade_admin/routing/mapper.rb +42 -0
  223. data/lib/rademade_admin/routing/resource.rb +6 -0
  224. data/lib/rademade_admin/sortable.rb +12 -0
  225. data/lib/rademade_admin/uploader/photo.rb +13 -0
  226. data/lib/rademade_admin/uploader/video.rb +11 -0
  227. data/lib/rademade_admin/user.rb +16 -0
  228. data/lib/rademade_admin/version.rb +3 -0
  229. data/lib/tasks/rademade_admin_tasks.rake +4 -0
  230. data/test/dummy/README.rdoc +28 -0
  231. data/test/dummy/Rakefile +6 -0
  232. data/test/dummy/app/assets/javascripts/application.js +13 -0
  233. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  234. data/test/dummy/app/controllers/application_controller.rb +5 -0
  235. data/test/dummy/app/controllers/rademade_admin/posts_controller.rb +9 -0
  236. data/test/dummy/app/controllers/rademade_admin/users_controller.rb +14 -0
  237. data/test/dummy/app/helpers/application_helper.rb +2 -0
  238. data/test/dummy/app/models/post.rb +9 -0
  239. data/test/dummy/app/models/user.rb +7 -0
  240. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  241. data/test/dummy/bin/bundle +3 -0
  242. data/test/dummy/bin/rails +4 -0
  243. data/test/dummy/bin/rake +4 -0
  244. data/test/dummy/config.ru +4 -0
  245. data/test/dummy/config/application.rb +29 -0
  246. data/test/dummy/config/boot.rb +5 -0
  247. data/test/dummy/config/environment.rb +5 -0
  248. data/test/dummy/config/environments/development.rb +29 -0
  249. data/test/dummy/config/environments/production.rb +80 -0
  250. data/test/dummy/config/environments/test.rb +36 -0
  251. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  252. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  253. data/test/dummy/config/initializers/inflections.rb +16 -0
  254. data/test/dummy/config/initializers/mime_types.rb +5 -0
  255. data/test/dummy/config/initializers/rademade_admin.rb +3 -0
  256. data/test/dummy/config/initializers/secret_token.rb +12 -0
  257. data/test/dummy/config/initializers/session_store.rb +3 -0
  258. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  259. data/test/dummy/config/locales/en.yml +23 -0
  260. data/test/dummy/config/mongoid.yml +6 -0
  261. data/test/dummy/config/routes.rb +8 -0
  262. data/test/dummy/db/development.sqlite3 +0 -0
  263. data/test/dummy/public/404.html +58 -0
  264. data/test/dummy/public/422.html +58 -0
  265. data/test/dummy/public/500.html +57 -0
  266. data/test/dummy/public/favicon.ico +0 -0
  267. data/test/integration/navigation_test.rb +10 -0
  268. data/test/rademade_admin_test.rb +7 -0
  269. data/test/test_helper.rb +15 -0
  270. metadata +691 -0
@@ -0,0 +1,104 @@
1
+ module RademadeAdmin::UriHelper
2
+
3
+ def admin_unlink_uri(model, parent, parent_id)
4
+ admin_model_url_for(model.class, {
5
+ :action => :unlink_relation,
6
+ :id => model.id,
7
+ :parent => parent,
8
+ :parent_id => parent_id
9
+ })
10
+ end
11
+
12
+ def admin_list_uri(model)
13
+ admin_model_url_for(model, {
14
+ :action => :index
15
+ })
16
+ end
17
+
18
+ def admin_autocomplete_uri(model, opts = {})
19
+ admin_model_url_for(model, {
20
+ :action => :autocomplete
21
+ }.merge(opts))
22
+ end
23
+
24
+ def admin_new_uri(model)
25
+ admin_model_url_for(model, {
26
+ :action => :new
27
+ })
28
+ end
29
+
30
+ def admin_new_form_uri(model)
31
+ admin_model_url_for(model, {
32
+ :action => :form
33
+ })
34
+ end
35
+
36
+ def admin_edit_uri(model)
37
+ entity_url(model, :edit)
38
+ end
39
+
40
+ def admin_edit_form_uri(model)
41
+ entity_url(model, :form)
42
+ end
43
+
44
+ def admin_delete_uri(model)
45
+ entity_url(model, :destroy)
46
+ end
47
+
48
+ def admin_create_uri(model)
49
+ admin_model_url_for(model, {
50
+ :action => :create
51
+ })
52
+ end
53
+
54
+ def admin_update_uri(model)
55
+ entity_url(model, :update)
56
+ end
57
+
58
+ def admin_model_url_for(model_info, options = {})
59
+ unless model_info.is_a? RademadeAdmin::Model::Info
60
+ model_info = RademadeAdmin::Model::Graph.instance.model_info(model_info)
61
+ end
62
+ options.merge!(get_id(model_info)) if nested?(model_info)
63
+ url_options = options.merge({
64
+ :controller => model_info.controller
65
+ })
66
+ admin_url_for(url_options)
67
+ end
68
+
69
+ def admin_url_for(url_options)
70
+ url_options = url_options.merge({
71
+ :only_path => true
72
+ })
73
+ #todo folder of admin controllers
74
+ url_options[:controller] = 'rademade_admin/' + url_options[:controller]
75
+ begin
76
+ Rails.application.routes.url_helpers.url_for(url_options)
77
+ rescue
78
+ begin
79
+ RademadeAdmin::Engine.routes.url_helpers.url_for(url_options)
80
+ rescue
81
+ nil
82
+ end
83
+ end
84
+ end
85
+
86
+ private
87
+
88
+ def nested?(model_info)
89
+ @object and model_info
90
+ end
91
+
92
+ def get_id(model_info)
93
+ key = model_info.model.to_s.foreign_key
94
+ { key.to_sym => @object.id }
95
+ end
96
+
97
+ def entity_url(model, action)
98
+ admin_model_url_for(model.class, {
99
+ :action => action,
100
+ :id => model.id
101
+ })
102
+ end
103
+
104
+ end
@@ -0,0 +1,70 @@
1
+ module RademadeAdmin
2
+ class AdminFileInput < Formtastic::Inputs::FileInput
3
+
4
+ include UploadPreviewHelper
5
+ include UriHelper
6
+
7
+ def to_html
8
+ input_wrapping do
9
+ template.content_tag(
10
+ :div,
11
+ HtmlBuffer.new([label_html, file_html]),
12
+ {:class => 'uploader-block'}
13
+ )
14
+ end
15
+ end
16
+
17
+ def file_html
18
+ template.content_tag(
19
+ :div,
20
+ HtmlBuffer.new([preview_html, input_file_html, upload_progress_html, input_hidden_html]),
21
+ {:class => 'uploader-wrapper'}
22
+ )
23
+ end
24
+
25
+ def preview_html
26
+ file_preview_html(object.send(method))
27
+ end
28
+
29
+ def input_file_html
30
+ builder.file_field(method, {
31
+ :id => nil,
32
+ :class => 'uploader-input-file',
33
+ :name => input_name,
34
+ :data => {
35
+ :column => input_name,
36
+ :id => object.id.to_s,
37
+ :saved => object.new_record? ? 0 : 1,
38
+ :model => model_name,
39
+ :uploader => uploader_classname,
40
+ :url => admin_url_for(:controller => 'file', :action => 'upload')
41
+ }
42
+ })
43
+ end
44
+
45
+ def input_hidden_html
46
+ builder.hidden_field(method, {
47
+ :class => 'uploader-input-hidden hidden'
48
+ })
49
+ end
50
+
51
+ def upload_progress_html
52
+ progress_slider = template.content_tag(:div, '', {:class => 'upload-progress'})
53
+ template.content_tag(:div, progress_slider, {
54
+ :class => 'upload-progress-wrapper',
55
+ :style => 'display:none'
56
+ })
57
+ end
58
+
59
+ protected
60
+
61
+ def current_file
62
+ object.send(input_name)
63
+ end
64
+
65
+ def uploader_classname
66
+ current_file.class.name
67
+ end
68
+
69
+ end
70
+ end
@@ -0,0 +1,81 @@
1
+ module RademadeAdmin
2
+ class AdminSelectInput < Formtastic::Inputs::SelectInput
3
+
4
+ include ::RademadeAdmin::UriHelper
5
+
6
+ alias_method :parent_select_html, :select_html
7
+
8
+ def select_html
9
+ template.content_tag(
10
+ :div,
11
+ RademadeAdmin::HtmlBuffer.new([select_ui_html, add_new_button_html]),
12
+ html_attributes
13
+ )
14
+ end
15
+
16
+ private
17
+
18
+ def add_new_button_html
19
+ related_with_model? ? add_button_html : ''
20
+ end
21
+
22
+ def select_ui_html
23
+ template.text_field_tag(extra_input_html_options[:name], input_value, html_attributes)
24
+ end
25
+
26
+ def input_value
27
+ object_reflection = builder.object.send(reflection_name)
28
+ if multiple?
29
+ object_reflection.pluck(:id).map(&:to_s).join(',')
30
+ else
31
+ object_reflection.try(:id).to_s
32
+ end
33
+ end
34
+
35
+ def html_attributes
36
+ {
37
+ :class => 'select-wrapper',
38
+ :data => reflection_data.merge('owner-class' => object.class.to_s),
39
+ :type => 'hidden'
40
+ }
41
+ end
42
+
43
+ def add_button_html
44
+ url = new_item_url
45
+ template.content_tag(:button, 'Add new', {
46
+ :class => 'relation-add-button',
47
+ 'data-new' => url,
48
+ 'data-class' => reflection_class
49
+ }) if url
50
+ end
51
+
52
+ def new_item_url
53
+ admin_new_form_uri(reflection_class.constantize)
54
+ end
55
+
56
+ def reflection_data
57
+ data = {}
58
+ if related_with_model?
59
+ data.merge!({
60
+ 'rel-multiple' => multiple?.to_s,
61
+ 'rel-class' => reflection_class,
62
+ 'rel-list-url' => admin_autocomplete_uri(reflection_class, format: :json)
63
+ })
64
+ end
65
+ data
66
+ end
67
+
68
+ def reflection_class
69
+ related_with_model? ? reflection.class_name : nil
70
+ end
71
+
72
+ def related_with_model?
73
+ !association.nil?
74
+ end
75
+
76
+ def reflection_name
77
+ reflection.is_a?(Hash) ? reflection[:name] : reflection.name
78
+ end
79
+
80
+ end
81
+ end
@@ -0,0 +1,5 @@
1
+ module RademadeAdmin
2
+ class AdminTextareaInput < Formtastic::Inputs::TextInput
3
+
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ module RademadeAdmin
2
+ class BooleanInput < Formtastic::Inputs::BooleanInput
3
+
4
+ def label_with_nested_checkbox
5
+ builder.label(
6
+ method,
7
+ label_text,
8
+ label_html_options
9
+ ) + check_box_html
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+ module RademadeAdmin
3
+ class Ability
4
+ include CanCan::Ability
5
+
6
+ def initialize(user)
7
+ if user.try(:admin?)
8
+ can :manage, :all
9
+ end
10
+ # Define abilities for the passed in user here. For example:
11
+ #
12
+ # user ||= User.new # guest user (not logged in)
13
+ # if user.admin?
14
+ # can :manage, :all
15
+ # else
16
+ # can :read, :all
17
+ # end
18
+ #
19
+ # The first argument to `can` is the action you are giving the user
20
+ # permission to do.
21
+ # If you pass :manage it will apply to every action. Other common actions
22
+ # here are :read, :create, :update and :destroy.
23
+ #
24
+ # The second argument is the resource the user can perform the action on.
25
+ # If you pass :all it will apply to every resource. Otherwise pass a Ruby
26
+ # class of the resource.
27
+ #
28
+ # The third argument is an optional hash of conditions to further filter the
29
+ # objects.
30
+ # For example, here the user can only update published articles.
31
+ #
32
+ # can :update, Article, :published => true
33
+ #
34
+ # See the wiki for details:
35
+ # https://github.com/ryanb/cancan/wiki/Defining-Abilities
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,6 @@
1
+ module RademadeAdmin
2
+ class User
3
+ include RademadeAdmin::UserModule
4
+
5
+ end
6
+ end
@@ -0,0 +1,46 @@
1
+ ##
2
+ # Class: AutocompleteSerializer
3
+ #
4
+ # Creates hash (ready for JSON serialization) with
5
+ # pairs of id => value to show in the autocomplete
6
+ # select UI.
7
+ #
8
+ # The output format of to_json is optimized for 'Select2'
9
+ # autocomplete UI.
10
+ #
11
+ # It would generate JSON of models :id and :text. Text is determined by
12
+ # #to_autocomplete method, or by #to_s.
13
+ class AutocompleteSerializer
14
+ include RademadeAdmin::UriHelper
15
+
16
+ def as_json
17
+ build_json
18
+ end
19
+
20
+ # args are left for backward compatibility
21
+ # to Rails :json renderer
22
+ def to_json(*args)
23
+ as_json.to_json
24
+ end
25
+
26
+ private
27
+
28
+ attr_reader :collection
29
+
30
+ def initialize(collection)
31
+ @collection = collection
32
+ end
33
+
34
+ def build_json
35
+ items = []
36
+ collection.each do |member|
37
+ items << {
38
+ :id => member.id.to_s,
39
+ :text => (member.respond_to?(:to_autocomplete) ? member.to_autocomplete : member.to_s),
40
+ :edit_url => admin_edit_form_uri(member)
41
+ }
42
+ end
43
+ items
44
+ end
45
+
46
+ end
@@ -0,0 +1,3 @@
1
+ class RademadeAdmin::FormBuilder < Formtastic::FormBuilder
2
+
3
+ end
@@ -0,0 +1,7 @@
1
+ module RademadeAdmin
2
+ class LoaderService
3
+ def self.const_get(name)
4
+ name.classify.constantize
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ module RademadeAdmin
2
+ class Login
3
+ def self.admin(params)
4
+ params.require( :data ).permit([:email, :password])
5
+ user = RademadeAdmin.user_class.where(:email => params[:data][:email]).first
6
+
7
+ error('There is no users with such email', :email) unless user.is_a? RademadeAdmin.user_class
8
+ error('Incorrect password', :password) unless user.valid_password? params[:data][:password]
9
+ error('Access denied', :email) unless user.admin?
10
+
11
+ user
12
+ end
13
+
14
+ def self.error(message, field)
15
+ raise Error.new( message, field )
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ module RademadeAdmin
2
+ class Login
3
+ class Error < Exception
4
+
5
+ attr_accessor :field
6
+
7
+ def initialize(message, field)
8
+ super message
9
+ @field = field
10
+ end
11
+
12
+ def field_messages
13
+ { field.to_sym => message }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,38 @@
1
+ module RademadeAdmin
2
+ module InstanceOptions
3
+
4
+ attr_reader :model_info, :model_class, :model_name, :item_name,
5
+ :list_fields, :semantic_form_fields
6
+
7
+ def load_model_options
8
+ @model_info = self.class.model_info
9
+ @model_name = self.class.model_name
10
+ @model_class = self.class.model_class
11
+ @item_name = self.class.item_name
12
+ end
13
+
14
+ def load_field_options
15
+ @list_fields = @model_info.list_fields
16
+ @semantic_form_fields = @model_info.semantic_form_fields
17
+ end
18
+
19
+ def origin_fields
20
+ @model_info.origin_fields
21
+ end
22
+
23
+ def filter_fields
24
+ @model_info.filter_fields
25
+ end
26
+
27
+ def load_template_options
28
+ @form_template_path ||= form_template_path
29
+ end
30
+
31
+ def load_options
32
+ load_model_options
33
+ load_field_options
34
+ load_template_options
35
+ end
36
+
37
+ end
38
+ end