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,32 @@
1
+ #notice {
2
+ color: green;
3
+ }
4
+
5
+ .field_with_errors {
6
+ padding: 2px;
7
+ background-color: red;
8
+ display: table;
9
+ }
10
+
11
+ #error_explanation {
12
+ width: 450px;
13
+ border: 2px solid red;
14
+ padding: 7px;
15
+ padding-bottom: 0;
16
+ margin-bottom: 20px;
17
+ background-color: #f0f0f0;
18
+ h2 {
19
+ text-align: left;
20
+ font-weight: bold;
21
+ padding: 5px 5px 5px 15px;
22
+ font-size: 12px;
23
+ margin: -7px;
24
+ margin-bottom: 0px;
25
+ background-color: #c00;
26
+ color: #fff;
27
+ }
28
+ ul li {
29
+ font-size: 12px;
30
+ list-style: square;
31
+ }
32
+ }
@@ -0,0 +1,24 @@
1
+ module RademadeAdmin
2
+ class AbstractController < ApplicationController
3
+ include ::RademadeAdmin::UriHelper
4
+
5
+ layout 'rademade_admin'
6
+
7
+ before_action :require_login
8
+
9
+ rescue_from ::CanCan::AccessDenied do |exception|
10
+ redirect_to root_url, :alert => exception.message
11
+ end
12
+
13
+ def require_login
14
+ redirect_to :controller => 'dashboard', :action => 'login' unless user_signed_in?
15
+ end
16
+
17
+ def render_errors(errors)
18
+ render :json => {
19
+ :errors => errors,
20
+ :message => 'Error occurred'
21
+ }, :status => :unprocessable_entity
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ module RademadeAdmin
2
+ class AdminUsersController < ModelController
3
+
4
+ options do
5
+ model 'RademadeAdmin::AdminUser'
6
+ list :email, :first_name, :last_name
7
+ form do
8
+ email
9
+ first_name
10
+ last_name
11
+ password
12
+ end
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ module RademadeAdmin
2
+ class ApplicationController < ActionController::Base
3
+ def current_ability
4
+ @current_ability ||= RademadeAdmin::Ability.new(current_user)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ module RademadeAdmin
2
+
3
+ class DashboardController < RademadeAdmin::AbstractController
4
+
5
+ skip_before_action :require_login, :only => [:login]
6
+
7
+ def index
8
+
9
+ end
10
+
11
+ def login
12
+ redirect_to :action => 'index' if user_signed_in?
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,122 @@
1
+ module RademadeAdmin
2
+ class ModelController < RademadeAdmin::AbstractController
3
+
4
+ extend RademadeAdmin::ModelOptions
5
+ include RademadeAdmin::Linker
6
+ include RademadeAdmin::InstanceOptions
7
+ include RademadeAdmin::Templates
8
+ include RademadeAdmin::Notifier
9
+
10
+ before_filter :load_options
11
+
12
+ def create
13
+ authorize! :create, model_class
14
+ saver = Saver.new(model_info, params)
15
+ saver.create_model
16
+ if saver.save_model
17
+ saver.save_aggregated_data
18
+ success_insert saver.item
19
+ else
20
+ render_errors saver.errors
21
+ end
22
+ end
23
+
24
+ def update
25
+ authorize! :update, model_class
26
+ saver = Saver.new(model_info, params)
27
+ if saver.update_model
28
+ saver.save_aggregated_data
29
+ success_update saver.item
30
+ else
31
+ render_errors saver.errors
32
+ end
33
+ end
34
+
35
+ def destroy
36
+ authorize! :destroy, model_class
37
+ @item = find_item(params[:id])
38
+ @item.delete if @item
39
+ success_delete @item
40
+ end
41
+
42
+ def autocomplete
43
+ 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)
48
+ end
49
+
50
+ # todo another action for related
51
+ def index
52
+ 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
+ respond_to do |format|
59
+ format.html { is_related_list ? render_template('related_index') : render_template }
60
+ format.json { render :json => @items }
61
+ end
62
+ end
63
+
64
+ def new
65
+ authorize! :create, model_class
66
+ @item = model_info.model.new
67
+ render_template
68
+ end
69
+
70
+ def edit
71
+ authorize! :update, model_class
72
+ @item = find_item(params[:id])
73
+ render_template
74
+ end
75
+
76
+ def unlink_relation
77
+ item = find_item(params[:id])
78
+ unlink(item)
79
+ item.save
80
+ success_unlink item
81
+ end
82
+
83
+ def link_relation
84
+ item = find_item(params[:id])
85
+ link(item)
86
+ item.save
87
+ success_link item
88
+ end
89
+
90
+ def show
91
+ authorize! :read, model_class
92
+ @item = find_item(params[:id])
93
+ respond_to do |format|
94
+ format.html { redirect_to :action => 'index' }
95
+ format.json { render :json => @item }
96
+ end
97
+ end
98
+
99
+ def form
100
+ authorize! :read, model_class
101
+ @item = params[:id].blank? ? model_info.model.new : find_item(params[:id])
102
+ render form_template_path(true), :layout => false
103
+ end
104
+
105
+ def re_sort
106
+ @sortable_service = RademadeAdmin::SortableService.new(model_info, params)
107
+ @sortable_service.re_sort_items
108
+ success_action
109
+ end
110
+
111
+ protected
112
+
113
+ def find_item(id)
114
+ model_info.model.find(id)
115
+ end
116
+
117
+ def render_template(template = action_name)
118
+ render abstract_template(template)
119
+ end
120
+
121
+ end
122
+ end
@@ -0,0 +1,22 @@
1
+ module RademadeAdmin
2
+ class SessionsController < RademadeAdmin::AbstractController
3
+
4
+ skip_before_action :require_login
5
+
6
+ def create
7
+ begin
8
+ user = RademadeAdmin::Login.admin( params )
9
+ sign_in user
10
+ render :json => user, :status => :ok
11
+ rescue RademadeAdmin::Login::Error => e
12
+ render :json => {:errors => e.field_messages}, :status => :precondition_failed
13
+ end
14
+ end
15
+
16
+ def logout
17
+ sign_out current_user
18
+ redirect_to :controller => 'dashboard', :action => 'login'
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+ module RademadeAdmin::FieldHelper
3
+
4
+ def field_to_label(field)
5
+ field.to_s.sub('_', ' ').capitalize
6
+ end
7
+
8
+ def pagination_option(number, name = 'paginate')
9
+ hash_params = request.query_parameters.clone
10
+ hash_params.delete(:page)
11
+ hash_params[name.to_sym] = number
12
+
13
+ options = '?' + hash_params.map do |k, v|
14
+ "#{k.to_s}=#{v}"
15
+ end.join('&')
16
+
17
+ selected = number == request.query_parameters[name.to_sym].to_i
18
+
19
+ content_tag(:option, number.to_s, selected: selected, value: request.path+options)
20
+ end
21
+
22
+ def input_attr(attrs = {})
23
+ attrs.merge :wrapper_html => {:class => 'form-group'},
24
+ :input_html => {:class => 'form-control'}
25
+ end
26
+
27
+ end
@@ -0,0 +1,63 @@
1
+ module RademadeAdmin::FormHelper
2
+
3
+ def admin_form(record, model, &block)
4
+ semantic_form_for(
5
+ record,
6
+ :url => record.new_record? ? admin_create_uri(model) : admin_update_uri(record),
7
+ :as => :data,
8
+ :html => {
9
+ :multipart => true,
10
+ :novalidate => true,
11
+ :autocomplete => 'off',
12
+ :class => (record.new_record? ? 'insert-item-form' : 'update-item-form') + ' form-horizontal',
13
+ },
14
+ &block
15
+ )
16
+ end
17
+
18
+ def admin_field(form, name, params, model_info, record)
19
+ attrs = admin_default_params(name).merge(admin_field_params(params))
20
+
21
+ field = form.input(name, input_attr(attrs))
22
+
23
+ if multiple_relation?(model_info, name)
24
+ link = admin_field_link_to_list(name, model_info, record).to_s
25
+ else
26
+ link = ''
27
+ end
28
+
29
+ concat field + link
30
+ end
31
+
32
+ def admin_default_params(name)
33
+ {:label => field_to_label(name)}
34
+ end
35
+
36
+ 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)
43
+ end
44
+
45
+ def admin_field_params(field_params)
46
+ if field_params.is_a? Hash
47
+ field_params
48
+ else
49
+ {:as => field_params}
50
+ end
51
+ end
52
+
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
@@ -0,0 +1,45 @@
1
+ module RademadeAdmin::MenuHelper
2
+
3
+ def main_menu
4
+ @model_infos = RademadeAdmin::Model::Graph.instance.root_models
5
+ menu = collect_children
6
+ menu.unshift({ :uri => url_for(:root), :name => 'Home', :ico => 'fa fa-home', :sub => [] })
7
+ menu
8
+ end
9
+
10
+ def active?(menu_item)
11
+ if menu_item[:is_current]
12
+ true
13
+ else
14
+ menu_item[:sub].each do |sub_item|
15
+ if active?(sub_item)
16
+ return true
17
+ end
18
+ end
19
+ false
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def collect_children(parent = nil)
26
+ menu = []
27
+ @model_infos.each do |model_info|
28
+ if model_info.parent_menu_item == parent
29
+ uri = admin_list_uri(model_info)
30
+ menu << {
31
+ :uri => uri,
32
+ :model_info => model_info,
33
+ :sub => collect_children(model_info.model.to_s),
34
+ :is_current => current_menu?(uri, model_info)
35
+ }
36
+ end
37
+ end
38
+ menu
39
+ end
40
+
41
+ def current_menu?(uri, model_info)
42
+ model_info == @model_info or (not uri.nil? and current_page?(uri))
43
+ end
44
+
45
+ end
@@ -0,0 +1,17 @@
1
+ module RademadeAdmin::NameHelper
2
+
3
+ def admin_list_name(model_info = @model_info, suffix = true)
4
+ list_name = model_info.item_name
5
+ if suffix
6
+ list_name += ' list'
7
+ else
8
+ list_name = list_name.pluralize
9
+ end
10
+ list_name
11
+ end
12
+
13
+ def admin_add_name(model_info = @model_info)
14
+ "Add #{model_info.item_name.downcase}"
15
+ end
16
+
17
+ end
@@ -0,0 +1,59 @@
1
+ module RademadeAdmin::UploadPreviewHelper
2
+
3
+ include ActionView::Helpers::TagHelper
4
+ include ActionView::Context
5
+
6
+ #@param uploader [CarrierWave::Uploader::Base]
7
+ def file_preview_html(uploader)
8
+ content_tag(:div, :class => 'image-preview-wrapper') do
9
+ if uploader.blank?
10
+ empty_file_html(uploader)
11
+ else
12
+ uploaded_file_html(uploader)
13
+ end
14
+ end
15
+ end
16
+
17
+ def empty_file_html(uploader)
18
+ content_tag(:span, 'File not chosen', {
19
+ :class => 'no-file'
20
+ })
21
+ end
22
+
23
+ def uploaded_file_html(uploader)
24
+ included_modules = uploader.class.ancestors
25
+ if included_modules.include? RademadeAdmin::Uploader::Photo
26
+ uploaded_image_preview(uploader)
27
+ elsif included_modules.include? RademadeAdmin::Uploader::Video
28
+ uploaded_video_preview(uploader)
29
+ else
30
+ uploaded_file_default_preview(uploader)
31
+ end
32
+ end
33
+
34
+ def uploaded_image_preview(uploader)
35
+ content_tag(:img, '', {
36
+ :src => uploader.resize(200, 200),
37
+ :class => 'image-preview',
38
+ :width => 200,
39
+ :height => 200
40
+ })
41
+ end
42
+
43
+ def uploaded_video_preview(uploader)
44
+ content_tag(:img, '', {
45
+ :src => uploader.thumb_path,
46
+ :class => 'video-preview',
47
+ :width => 300
48
+ })
49
+ end
50
+
51
+ def uploaded_file_default_preview(uploader)
52
+ file_path = uploader.file.file
53
+ text = File.basename(file_path) + ', ' + RademadeAdmin::FileInfoFormatter.format_size(File.size(file_path))
54
+ content_tag(:span, text, {
55
+ :class => 'file-uploaded'
56
+ })
57
+ end
58
+
59
+ end