releaf 0.1.2 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (322) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +19 -21
  3. data/lib/releaf.rb +1 -34
  4. data/lib/releaf/all.rb +3 -0
  5. data/lib/releaf/rspec.rb +4 -0
  6. data/lib/releaf/rspec/features_matchers.rb +76 -0
  7. data/lib/releaf/rspec/helpers.rb +227 -0
  8. data/lib/releaf/rspec/matchers.rb +16 -0
  9. data/lib/releaf/test.rb +5 -0
  10. data/spec/factories/author.rb +6 -0
  11. data/spec/factories/book.rb +5 -0
  12. data/spec/factories/chapter.rb +7 -0
  13. data/spec/factories/common.rb +5 -0
  14. data/spec/factories/home_page.rb +5 -0
  15. data/spec/factories/node.rb +43 -0
  16. data/spec/factories/node_route.rb +7 -0
  17. data/spec/factories/publisher.rb +5 -0
  18. data/spec/factories/role.rb +21 -0
  19. data/spec/factories/text_page.rb +5 -0
  20. data/spec/factories/user.rb +22 -0
  21. data/spec/rails_helper.rb +122 -0
  22. data/spec/spec_helper.rb +81 -24
  23. data/spec/support/controller_macros.rb +8 -0
  24. data/spec/support/excel_helpers.rb +63 -0
  25. data/spec/support/shared/service_includer.rb +9 -0
  26. data/spec/support/wait_steps.rb +23 -0
  27. metadata +141 -499
  28. data/README.md +0 -77
  29. data/Rakefile +0 -70
  30. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  31. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_flat_75_ffffff_40x100.png +0 -0
  32. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  33. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_65_ffffff_1x400.png +0 -0
  34. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_75_dadada_1x400.png +0 -0
  35. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  36. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  37. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  38. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_222222_256x240.png +0 -0
  39. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_2e83ff_256x240.png +0 -0
  40. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_454545_256x240.png +0 -0
  41. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_888888_256x240.png +0 -0
  42. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_cd0a0a_256x240.png +0 -0
  43. data/app/assets/images/releaf/3rd_party/lightbox/close.png +0 -0
  44. data/app/assets/images/releaf/3rd_party/lightbox/loading.gif +0 -0
  45. data/app/assets/images/releaf/3rd_party/lightbox/next.png +0 -0
  46. data/app/assets/images/releaf/3rd_party/lightbox/prev.png +0 -0
  47. data/app/assets/images/releaf/add.png +0 -0
  48. data/app/assets/images/releaf/background.jpg +0 -0
  49. data/app/assets/images/releaf/button/button_bgr.gif +0 -0
  50. data/app/assets/images/releaf/button/button_hover_bgr.png +0 -0
  51. data/app/assets/images/releaf/controllers/content/close.gif +0 -0
  52. data/app/assets/images/releaf/controllers/content/close_active.gif +0 -0
  53. data/app/assets/images/releaf/controllers/content/close_hover.gif +0 -0
  54. data/app/assets/images/releaf/controllers/content/global_fields_bgr.png +0 -0
  55. data/app/assets/images/releaf/controllers/content/open.gif +0 -0
  56. data/app/assets/images/releaf/controllers/content/open_2.gif +0 -0
  57. data/app/assets/images/releaf/controllers/content/open_active.gif +0 -0
  58. data/app/assets/images/releaf/controllers/content/open_hover.gif +0 -0
  59. data/app/assets/images/releaf/controllers/sessions/background.jpg +0 -0
  60. data/app/assets/images/releaf/controllers/sessions/logo.jpg +0 -0
  61. data/app/assets/images/releaf/expand_tool/close.png +0 -0
  62. data/app/assets/images/releaf/expand_tool/close_hover.png +0 -0
  63. data/app/assets/images/releaf/expand_tool/close_hover_shim.png +0 -0
  64. data/app/assets/images/releaf/expand_tool/close_shim.png +0 -0
  65. data/app/assets/images/releaf/expand_tool/loader.gif +0 -0
  66. data/app/assets/images/releaf/expand_tool/open.png +0 -0
  67. data/app/assets/images/releaf/expand_tool/open_hover.png +0 -0
  68. data/app/assets/images/releaf/expand_tool/open_hover_shim.png +0 -0
  69. data/app/assets/images/releaf/expand_tool/open_shim.png +0 -0
  70. data/app/assets/images/releaf/favicon.ico +0 -0
  71. data/app/assets/images/releaf/globalFieldContainerBgr.png +0 -0
  72. data/app/assets/images/releaf/icons/129.png +0 -0
  73. data/app/assets/images/releaf/icons/130.png +0 -0
  74. data/app/assets/images/releaf/icons/accept.png +0 -0
  75. data/app/assets/images/releaf/icons/add.png +0 -0
  76. data/app/assets/images/releaf/icons/arrow_down.png +0 -0
  77. data/app/assets/images/releaf/icons/arrow_left.png +0 -0
  78. data/app/assets/images/releaf/icons/arrow_refresh.png +0 -0
  79. data/app/assets/images/releaf/icons/arrow_up.png +0 -0
  80. data/app/assets/images/releaf/icons/bin_empty.png +0 -0
  81. data/app/assets/images/releaf/icons/bullet_black.png +0 -0
  82. data/app/assets/images/releaf/icons/bullet_connect.png +0 -0
  83. data/app/assets/images/releaf/icons/bullet_start.png +0 -0
  84. data/app/assets/images/releaf/icons/bullet_tick.png +0 -0
  85. data/app/assets/images/releaf/icons/chrome.png +0 -0
  86. data/app/assets/images/releaf/icons/control_play.png +0 -0
  87. data/app/assets/images/releaf/icons/date.png +0 -0
  88. data/app/assets/images/releaf/icons/delete.png +0 -0
  89. data/app/assets/images/releaf/icons/disk.png +0 -0
  90. data/app/assets/images/releaf/icons/drag-handle.png +0 -0
  91. data/app/assets/images/releaf/icons/error.png +0 -0
  92. data/app/assets/images/releaf/icons/eye.png +0 -0
  93. data/app/assets/images/releaf/icons/firefox.png +0 -0
  94. data/app/assets/images/releaf/icons/google-not-available.gif +0 -0
  95. data/app/assets/images/releaf/icons/google.gif +0 -0
  96. data/app/assets/images/releaf/icons/keyboard.png +0 -0
  97. data/app/assets/images/releaf/icons/left_16.png +0 -0
  98. data/app/assets/images/releaf/icons/link.png +0 -0
  99. data/app/assets/images/releaf/icons/magnifier.png +0 -0
  100. data/app/assets/images/releaf/icons/notAllowed.png +0 -0
  101. data/app/assets/images/releaf/icons/page_white_add.png +0 -0
  102. data/app/assets/images/releaf/icons/page_white_edit.png +0 -0
  103. data/app/assets/images/releaf/icons/page_white_put.png +0 -0
  104. data/app/assets/images/releaf/icons/page_white_text.png +0 -0
  105. data/app/assets/images/releaf/icons/pencil.png +0 -0
  106. data/app/assets/images/releaf/icons/picture.png +0 -0
  107. data/app/assets/images/releaf/icons/right_16.png +0 -0
  108. data/app/assets/images/releaf/icons/tick.png +0 -0
  109. data/app/assets/images/releaf/icons/warning.png +0 -0
  110. data/app/assets/images/releaf/icons/world_go.png +0 -0
  111. data/app/assets/images/releaf/icons/world_link.png +0 -0
  112. data/app/assets/images/releaf/input/autocompleteExpandIcon.png +0 -0
  113. data/app/assets/images/releaf/input/input_bgr.gif +0 -0
  114. data/app/assets/images/releaf/language_root.png +0 -0
  115. data/app/assets/images/releaf/loader.gif +0 -0
  116. data/app/assets/images/releaf/logout.png +0 -0
  117. data/app/assets/images/releaf/main_menu/active_bgr.png +0 -0
  118. data/app/assets/images/releaf/main_menu/bgr.png +0 -0
  119. data/app/assets/images/releaf/main_menu/hover_bgr.png +0 -0
  120. data/app/assets/images/releaf/module.png +0 -0
  121. data/app/assets/images/releaf/panel_layout/active_bgr.png +0 -0
  122. data/app/assets/images/releaf/panel_layout/secondary_panel_horizontal_bgr.png +0 -0
  123. data/app/assets/images/releaf/panel_layout/secondary_panel_vertical_bgr.png +0 -0
  124. data/app/assets/images/releaf/releaf_table/selected_bgr.png +0 -0
  125. data/app/assets/images/releaf/releaf_table/th_bgr.gif +0 -0
  126. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/README.md +0 -73
  127. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/jquery.cookie.js +0 -47
  128. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/server.js +0 -24
  129. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/test.html +0 -19
  130. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/test.js +0 -80
  131. data/app/assets/javascripts/releaf/3rd_party/jquery-ui-timepicker-addon.js +0 -1882
  132. data/app/assets/javascripts/releaf/3rd_party/lightbox.js.erb +0 -379
  133. data/app/assets/javascripts/releaf/application.js +0 -14
  134. data/app/assets/javascripts/releaf/controllers/base.js +0 -130
  135. data/app/assets/javascripts/releaf/controllers/releaf/content.js +0 -90
  136. data/app/assets/javascripts/releaf/controllers/releaf/translations.js +0 -31
  137. data/app/assets/javascripts/releaf/include/continuous_scroll.js +0 -321
  138. data/app/assets/javascripts/releaf/include/field.type_autocomplete.js +0 -58
  139. data/app/assets/javascripts/releaf/include/field.type_date_or_datetime_or_time.js +0 -43
  140. data/app/assets/javascripts/releaf/include/field.type_richtext.js +0 -90
  141. data/app/assets/javascripts/releaf/include/localization.js +0 -12
  142. data/app/assets/javascripts/releaf/include/nested_fields.js +0 -64
  143. data/app/assets/javascripts/releaf/include/sortable.js +0 -29
  144. data/app/assets/javascripts/releaf/lib/request_url.js +0 -183
  145. data/app/assets/stylesheets/releaf/3rd_party/jquery-ui-1.9.2.custom.css.erb +0 -464
  146. data/app/assets/stylesheets/releaf/3rd_party/jquery-ui-timepicker-addon.css +0 -10
  147. data/app/assets/stylesheets/releaf/3rd_party/lightbox.css.erb +0 -157
  148. data/app/assets/stylesheets/releaf/application.css.erb +0 -122
  149. data/app/assets/stylesheets/releaf/controllers/base.css.erb +0 -205
  150. data/app/assets/stylesheets/releaf/controllers/releaf/content.css.erb +0 -422
  151. data/app/assets/stylesheets/releaf/controllers/releaf/sessions.css.scss.erb +0 -116
  152. data/app/assets/stylesheets/releaf/controllers/releaf/translations.css.erb +0 -205
  153. data/app/assets/stylesheets/releaf/include/button.css.erb +0 -176
  154. data/app/assets/stylesheets/releaf/include/field.css.erb +0 -281
  155. data/app/assets/stylesheets/releaf/include/input.css.erb +0 -40
  156. data/app/assets/stylesheets/releaf/include/main_menu.css.erb +0 -66
  157. data/app/assets/stylesheets/releaf/include/pagination.css.erb +0 -29
  158. data/app/assets/stylesheets/releaf/include/panel_layout.css.erb +0 -251
  159. data/app/assets/stylesheets/releaf/include/releaf_table.css.erb +0 -112
  160. data/app/assets/stylesheets/releaf/include/sortable.css.erb +0 -12
  161. data/app/controllers/releaf/admins_controller.rb +0 -55
  162. data/app/controllers/releaf/application_controller.rb +0 -11
  163. data/app/controllers/releaf/base_application_controller.rb +0 -18
  164. data/app/controllers/releaf/base_controller.rb +0 -571
  165. data/app/controllers/releaf/content_controller.rb +0 -183
  166. data/app/controllers/releaf/roles_controller.rb +0 -38
  167. data/app/controllers/releaf/sessions_controller.rb +0 -27
  168. data/app/controllers/releaf/tinymce_assets_controller.rb +0 -26
  169. data/app/controllers/releaf/translations_controller.rb +0 -117
  170. data/app/helpers/releaf/admin_helper.rb +0 -59
  171. data/app/helpers/releaf/application_helper.rb +0 -4
  172. data/app/helpers/releaf/pagination_renderer.rb +0 -44
  173. data/app/helpers/releaf/releaf_devise_helper.rb +0 -8
  174. data/app/models/releaf/admin.rb +0 -60
  175. data/app/models/releaf/blank_node_base.rb +0 -29
  176. data/app/models/releaf/node.rb +0 -222
  177. data/app/models/releaf/node_base.rb +0 -31
  178. data/app/models/releaf/role.rb +0 -126
  179. data/app/models/releaf/tinymce_asset.rb +0 -6
  180. data/app/views/layouts/releaf/admin.html.haml +0 -57
  181. data/app/views/layouts/releaf/devise.html.haml +0 -32
  182. data/app/views/releaf/aliases/_edit.body.html.haml +0 -50
  183. data/app/views/releaf/aliases/_edit.header.html.haml +0 -19
  184. data/app/views/releaf/aliases/_index.row.html.haml +0 -5
  185. data/app/views/releaf/aliases/_secondary_panel.html.haml +0 -13
  186. data/app/views/releaf/base/_edit.body.html.haml +0 -11
  187. data/app/views/releaf/base/_edit.field.html.haml +0 -23
  188. data/app/views/releaf/base/_edit.field_type_autocomplete.html.haml +0 -15
  189. data/app/views/releaf/base/_edit.field_type_boolean.html.haml +0 -5
  190. data/app/views/releaf/base/_edit.field_type_date.html.haml +0 -8
  191. data/app/views/releaf/base/_edit.field_type_datetime.html.haml +0 -8
  192. data/app/views/releaf/base/_edit.field_type_delete_nested.html.haml +0 -3
  193. data/app/views/releaf/base/_edit.field_type_file.html.haml +0 -10
  194. data/app/views/releaf/base/_edit.field_type_image.html.haml +0 -12
  195. data/app/views/releaf/base/_edit.field_type_item.html.haml +0 -31
  196. data/app/views/releaf/base/_edit.field_type_link.html.haml +0 -4
  197. data/app/views/releaf/base/_edit.field_type_link_i18n.html.haml +0 -26
  198. data/app/views/releaf/base/_edit.field_type_password.html.haml +0 -4
  199. data/app/views/releaf/base/_edit.field_type_richtext.html.haml +0 -4
  200. data/app/views/releaf/base/_edit.field_type_richtext_i18n.html.haml +0 -27
  201. data/app/views/releaf/base/_edit.field_type_text.html.haml +0 -4
  202. data/app/views/releaf/base/_edit.field_type_text_i18n.html.haml +0 -27
  203. data/app/views/releaf/base/_edit.field_type_textarea.html.haml +0 -4
  204. data/app/views/releaf/base/_edit.field_type_textarea_i18n.html.haml +0 -27
  205. data/app/views/releaf/base/_edit.field_type_time.html.haml +0 -8
  206. data/app/views/releaf/base/_edit.fields.association.html.haml +0 -48
  207. data/app/views/releaf/base/_edit.fields.has_many_template.html.haml +0 -15
  208. data/app/views/releaf/base/_edit.fields.html.haml +0 -20
  209. data/app/views/releaf/base/_edit.footer.html.haml +0 -14
  210. data/app/views/releaf/base/_edit.form.html.haml +0 -4
  211. data/app/views/releaf/base/_edit.header.html.haml +0 -3
  212. data/app/views/releaf/base/_index.body.html.haml +0 -6
  213. data/app/views/releaf/base/_index.cell.html.haml +0 -20
  214. data/app/views/releaf/base/_index.footer.html.haml +0 -28
  215. data/app/views/releaf/base/_index.header.html.haml +0 -4
  216. data/app/views/releaf/base/_index.row.html.haml +0 -6
  217. data/app/views/releaf/base/_index.search.html.haml +0 -5
  218. data/app/views/releaf/base/_index.table.html.haml +0 -24
  219. data/app/views/releaf/base/_secondary_panel.html.haml +0 -10
  220. data/app/views/releaf/base/_show.body.html.haml +0 -3
  221. data/app/views/releaf/base/_show.field.html.haml +0 -20
  222. data/app/views/releaf/base/_show.field_type_date.html.haml +0 -9
  223. data/app/views/releaf/base/_show.field_type_date_time.html.haml +0 -9
  224. data/app/views/releaf/base/_show.field_type_email.html.haml +0 -6
  225. data/app/views/releaf/base/_show.field_type_file.html.haml +0 -7
  226. data/app/views/releaf/base/_show.field_type_image.html.haml +0 -10
  227. data/app/views/releaf/base/_show.field_type_item.html.haml +0 -11
  228. data/app/views/releaf/base/_show.field_type_link.html.haml +0 -14
  229. data/app/views/releaf/base/_show.field_type_password.html.haml +0 -6
  230. data/app/views/releaf/base/_show.field_type_richtext.html.haml +0 -6
  231. data/app/views/releaf/base/_show.field_type_text.html.haml +0 -6
  232. data/app/views/releaf/base/_show.field_type_textarea.html.haml +0 -6
  233. data/app/views/releaf/base/_show.field_type_time.html.haml +0 -9
  234. data/app/views/releaf/base/_show.field_type_url.html.haml +0 -7
  235. data/app/views/releaf/base/_show.fields.association.html.haml +0 -36
  236. data/app/views/releaf/base/_show.fields.has_many_template.html.haml +0 -12
  237. data/app/views/releaf/base/_show.fields.html.haml +0 -17
  238. data/app/views/releaf/base/_show.footer.html.haml +0 -18
  239. data/app/views/releaf/base/_show.header.html.haml +0 -3
  240. data/app/views/releaf/base/confirm_destroy.html.haml +0 -17
  241. data/app/views/releaf/base/edit.html.haml +0 -1
  242. data/app/views/releaf/base/index.html.haml +0 -3
  243. data/app/views/releaf/base/new.html.haml +0 -1
  244. data/app/views/releaf/base/show.html.haml +0 -3
  245. data/app/views/releaf/content/_edit.body.html.haml +0 -46
  246. data/app/views/releaf/content/_edit.content_fields.html.haml +0 -11
  247. data/app/views/releaf/content/_edit.fields.html.haml +0 -17
  248. data/app/views/releaf/content/_edit.slug.html.haml +0 -12
  249. data/app/views/releaf/content/_get_content_form.html.haml +0 -7
  250. data/app/views/releaf/content/_secondary_panel.html.haml +0 -3
  251. data/app/views/releaf/content/_tree_level.html.haml +0 -16
  252. data/app/views/releaf/content/ajax.new.html.haml +0 -3
  253. data/app/views/releaf/content/index.html.haml +0 -0
  254. data/app/views/releaf/roles/_edit.field.permissions.html.haml +0 -5
  255. data/app/views/releaf/roles/_show.field.default.html.haml +0 -6
  256. data/app/views/releaf/roles/_show.field.permissions.html.haml +0 -11
  257. data/app/views/releaf/sessions/new.html.haml +0 -17
  258. data/app/views/releaf/translations/_edit.body.html.haml +0 -50
  259. data/app/views/releaf/translations/_edit.header.html.haml +0 -19
  260. data/app/views/releaf/translations/_index.row.html.haml +0 -5
  261. data/app/views/releaf/translations/_secondary_panel.html.haml +0 -13
  262. data/bin/releaf +0 -25
  263. data/lib/generators/releaf/install_generator.rb +0 -87
  264. data/lib/generators/releaf/templates/config/common_fields.yml.example +0 -17
  265. data/lib/generators/releaf/templates/controllers/home_controller.rb +0 -4
  266. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  267. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_flat_75_ffffff_40x100.png +0 -0
  268. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  269. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_65_ffffff_1x400.png +0 -0
  270. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_75_dadada_1x400.png +0 -0
  271. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  272. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  273. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  274. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_222222_256x240.png +0 -0
  275. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_2e83ff_256x240.png +0 -0
  276. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_454545_256x240.png +0 -0
  277. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_888888_256x240.png +0 -0
  278. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_cd0a0a_256x240.png +0 -0
  279. data/lib/generators/releaf/templates/images/3rd_party/lightbox/close.png +0 -0
  280. data/lib/generators/releaf/templates/images/3rd_party/lightbox/loading.gif +0 -0
  281. data/lib/generators/releaf/templates/images/3rd_party/lightbox/next.png +0 -0
  282. data/lib/generators/releaf/templates/images/3rd_party/lightbox/prev.png +0 -0
  283. data/lib/generators/releaf/templates/initializers/releaf.rb +0 -20
  284. data/lib/generators/releaf/templates/initializers/releaf_i18n.rb +0 -25
  285. data/lib/generators/releaf/templates/initializers/releaf_store_current_template.rb +0 -25
  286. data/lib/generators/releaf/templates/javascripts/3rd_party/jquery.jcarousel.js +0 -1058
  287. data/lib/generators/releaf/templates/javascripts/3rd_party/jquery_ui.js +0 -14850
  288. data/lib/generators/releaf/templates/javascripts/3rd_party/lightbox.js.erb +0 -379
  289. data/lib/generators/releaf/templates/javascripts/application.js +0 -15
  290. data/lib/generators/releaf/templates/javascripts/lib/init_jcarousel.js +0 -40
  291. data/lib/generators/releaf/templates/javascripts/lib/js_check.js +0 -8
  292. data/lib/generators/releaf/templates/javascripts/lib/request_url.js +0 -169
  293. data/lib/generators/releaf/templates/javascripts/lib/sortable.js +0 -29
  294. data/lib/generators/releaf/templates/migrations/create_releaf_admins.rb +0 -53
  295. data/lib/generators/releaf/templates/migrations/create_releaf_nodes.rb +0 -25
  296. data/lib/generators/releaf/templates/migrations/create_releaf_roles.rb +0 -12
  297. data/lib/generators/releaf/templates/migrations/create_releaf_tinymce_assets.rb +0 -11
  298. data/lib/generators/releaf/templates/migrations/create_releaf_translations.rb +0 -31
  299. data/lib/generators/releaf/templates/models/admin_ability.rb +0 -51
  300. data/lib/generators/releaf/templates/seeds.rb +0 -64
  301. data/lib/generators/releaf/templates/stylesheets/3rd_party/jquery_ui/smoothness.css.erb +0 -1174
  302. data/lib/generators/releaf/templates/stylesheets/3rd_party/lightbox.css.erb +0 -157
  303. data/lib/generators/releaf/templates/stylesheets/3rd_party/reset.css +0 -48
  304. data/lib/generators/releaf/templates/stylesheets/application.scss +0 -15
  305. data/lib/generators/releaf/templates/stylesheets/style.scss +0 -45
  306. data/lib/generators/releaf/templates/views/home/index.html.haml +0 -1
  307. data/lib/generators/releaf/templates/views/layouts/application.html.haml +0 -26
  308. data/lib/i18n/backend/releaf.rb +0 -97
  309. data/lib/i18n/backend/releaf/translation.rb +0 -61
  310. data/lib/i18n/backend/releaf/translation_data.rb +0 -39
  311. data/lib/i18n/backend/releaf/translation_group.rb +0 -34
  312. data/lib/i18n/releaf.rb +0 -1
  313. data/lib/releaf/boolean_at.rb +0 -77
  314. data/lib/releaf/engine.rb +0 -4
  315. data/lib/releaf/globalize3/fallbacks.rb +0 -19
  316. data/lib/releaf/resources.rb +0 -101
  317. data/lib/releaf/slug.rb +0 -118
  318. data/lib/releaf/version.rb +0 -3
  319. data/lib/tasks/releaf_tasks.rake +0 -4
  320. data/spec/factories/factories.rb +0 -24
  321. data/spec/features/admin_spec.rb +0 -41
  322. data/templates/releaf/installer.rb +0 -207
@@ -1,183 +0,0 @@
1
- module Releaf
2
- class ContentController < BaseController
3
- helper_method :content_fields_to_display
4
-
5
- def content_fields_to_display obj_class
6
- if obj_class.respond_to? :releaf_fields_to_display
7
- obj_class.releaf_fields_to_display params[:action]
8
- else
9
- obj_class.column_names - %w[id created_at updated_at position]
10
- end
11
- end
12
-
13
- def fields_to_display
14
- return super unless params[:action] == 'show'
15
- return %w[name parent_id visible protected content]
16
- end
17
-
18
- def build_secondary_panel_variables
19
- @nodes = Node.roots
20
- super
21
- end
22
-
23
- def index
24
- authorize! :index, Node
25
- respond_to do |format|
26
- format.html
27
- end
28
- end
29
-
30
- def create
31
- content_type = _node_params[:content_type].constantize
32
- authorize! :create, content_type
33
- @resource = resource_class.new(_node_params)
34
-
35
- respond_to do |format|
36
- if @resource.save
37
- format.html { redirect_to url_for(:action => "edit", :controller => 'content', :id => @resource.id)}
38
- else
39
- form_extras
40
- @order_nodes = Node.where(:parent_id => (params[:parent_id] ? params[:parent_id] : nil))
41
- format.html { render action: "new" }
42
- end
43
- end
44
- end
45
-
46
- def generate_url
47
- tmp_resource = nil
48
-
49
- if params[:id]
50
- tmp_resource = Node.find(params[:id])
51
- elsif params[:parent_id].blank? == false
52
- parent = Node.find(params[:parent_id])
53
- tmp_resource = parent.children.new
54
- else
55
- tmp_resource = Node.new
56
- end
57
-
58
- tmp_resource.name = params[:name]
59
- tmp_resource.slug = nil
60
- # FIXME calling private method
61
- tmp_resource.send(:ensure_unique_url)
62
-
63
- respond_to do |format|
64
- format.js { render :text => tmp_resource.slug }
65
- end
66
- end
67
-
68
- def update
69
- @resource = resource_class.find(params[:id])
70
- authorize! :edit, @resource
71
-
72
- form_extras
73
- @order_nodes = Node.where(:parent_id => (@resource.parent_id ? @resource.parent_id : nil)).where('id != :id', :id => params[:id])
74
-
75
- @resource.assign_attributes(_node_params)
76
-
77
-
78
- respond_to do |format|
79
- if @resource.save
80
- format.html { redirect_to url_for(:action => "edit") }
81
- else
82
- format.html { render action: "edit" }
83
- end
84
- end
85
- end
86
-
87
- def new
88
- authorize! :create, resource_class
89
- unless params[:ajax] == '1'
90
- super
91
- @order_nodes = Node.where(:parent_id => (params[:parent_id] ? params[:parent_id] : nil))
92
- @position = 1
93
- @resource.parent_id = params[:parent_id]
94
- form_extras
95
- else
96
- Rails.application.eager_load!
97
- get_base_models
98
- render 'ajax.new', :layout => nil
99
- end
100
- end
101
-
102
- def edit
103
- super
104
- @order_nodes = Node.where(:parent_id => (@resource.parent_id ? @resource.parent_id : nil)).where('id != :id', :id => params[:id])
105
-
106
- if @resource.higher_item
107
- @position = @resource.position
108
- else
109
- @position = 1
110
- end
111
-
112
- form_extras
113
- end
114
-
115
- def setup
116
- super
117
- @features[:show] = false
118
- end
119
-
120
- def get_content_form
121
- Rails.application.eager_load!
122
- raise ArgumentError unless content_type_class_names.include? params[:content_type]
123
- @node = resource_class.find(params[:id])
124
- authorize! :edit, @resource
125
-
126
- @resource = params[:content_type].constantize.new
127
-
128
- respond_to do |format|
129
- format.html { render :partial => 'get_content_form', :layout => false }
130
- end
131
-
132
- end
133
-
134
- def resource_class
135
- Node
136
- end
137
-
138
- protected
139
-
140
- def _node_params
141
- params.require(:resource).permit!
142
- end
143
-
144
- private
145
-
146
- def content_type_class_names
147
- content_type_classes.map { |nc| nc.name }.sort
148
- end
149
-
150
- def content_type_classes
151
- NodeBase.node_classes + BlankNodeBase.node_classes
152
- end
153
-
154
- def form_extras
155
- Rails.application.eager_load!
156
- get_base_models
157
-
158
- new_content_if_needed
159
- end
160
-
161
- def resource_params
162
- []
163
- end
164
-
165
- def new_content_if_needed
166
- return if @resource.content
167
- if params[:content_type]
168
- if get_base_models.map { |bm| bm.name }.include? params[:content_type]
169
- @resource.content_type = params[:content_type]
170
- content_class = @resource.content_type.constantize
171
- if content_class.node_type == 'Releaf::NodeBase'
172
- @resource.content = @resource.content_type.constantize.new
173
- end
174
- end
175
- end
176
- end
177
-
178
- def get_base_models
179
- @base_models ||= content_type_classes
180
- end
181
-
182
- end
183
- end
@@ -1,38 +0,0 @@
1
- module Releaf
2
- class RolesController < BaseController
3
-
4
- def resource_class
5
- Releaf::Role
6
- end
7
-
8
- def fields_to_display
9
- case params[:action].to_sym
10
- when :index
11
- %w[name default_controller default]
12
- when :create, :edit, :new, :update, :show
13
- %w[name default default_controller permissions]
14
- else
15
- []
16
- end
17
- end
18
-
19
- protected
20
-
21
- def resource_params
22
- return [] unless %w[update create].include? params[:action]
23
-
24
- fields = ['name', 'default', 'default_controller']
25
- AdminAbility::PERMISSIONS.each do |permission|
26
- if permission.is_a? String
27
- fields.push "#{permission}_permission"
28
- elsif permission.is_a? Array
29
- fields.push "#{permission[0]}_permissions"
30
- else
31
- raise RuntimeError, 'invalid permissions'
32
- end
33
- end
34
- return fields
35
- end
36
-
37
- end
38
- end
@@ -1,27 +0,0 @@
1
- module Releaf
2
- class SessionsController < Devise::SessionsController
3
- layout "releaf/devise"
4
-
5
- def after_sign_in_path_for(resource)
6
- controller_name = resource.role.default_controller
7
-
8
- if controller_name
9
- if controller_name == 'content'
10
- default_path = releaf_nodes_path
11
- elsif controller_name == 'translations'
12
- default_path = releaf_translation_groups_path
13
- else
14
- default_path = send("admin_#{controller_name}_path")
15
- end
16
- else
17
- default_path = releaf_nodes_path
18
- end
19
-
20
- return default_path
21
- end
22
-
23
- def full_controller_name
24
- self.class.name.sub(/Controller$/, '').underscore
25
- end
26
- end
27
- end
@@ -1,26 +0,0 @@
1
- module Releaf
2
- class TinymceAssetsController < BaseController
3
- skip_authorization_check :only => [:create]
4
-
5
- def create
6
- asset = TinymceAsset.new
7
- asset.file_type = params[:file].content_type
8
- asset.file = params[:file]
9
- asset.save!
10
-
11
-
12
- render json: {
13
- image: {
14
- # url: serve_tinymce_asset_path(asset)
15
- url: asset.file.url
16
- }
17
- }, content_type: "text/html"
18
- end
19
-
20
- # def serve
21
- # asset = TinymceAsset.find(params[:id])
22
- # send_file asset.file.path, :type => asset.file_type
23
- # end
24
-
25
- end
26
- end
@@ -1,117 +0,0 @@
1
- module Releaf
2
- class TranslationsController < BaseController
3
-
4
- def resource_class
5
- @object_class
6
- end
7
-
8
- def build_secondary_panel_variables
9
- @groups = I18n::Backend::Releaf::TranslationGroup.order(:scope).all
10
- super
11
- end
12
-
13
- def columns( view = nil )
14
- return super + (Settings.i18n_locales || [])
15
- end
16
-
17
- def index
18
- authorize! :manage, I18n::Backend::Releaf::Translation
19
- @resources = @object_class = I18n::Backend::Releaf::Translation.includes(:translation_data).filter(:search => params[:search])
20
- if !params[:ajax].blank?
21
- render :layout => false
22
- end
23
- end
24
-
25
- def edit
26
- authorize! :manage, I18n::Backend::Releaf::Translation
27
- @resource = resource_class.find(params[:id])
28
- end
29
-
30
- def create
31
- authorize! :manage, I18n::Backend::Releaf::Translation
32
- @resource = resource_class.new(resource_params)
33
-
34
- respond_to do |format|
35
- if @resource.save
36
- update_translations
37
- Settings.i18n_updated_at = Time.now
38
- format.html { redirect_to url_for(:action => "edit", :id => @resource.id) }
39
- else
40
- format.html { render :action => "new" }
41
- end
42
- end
43
- end
44
-
45
- def update
46
- authorize! :manage, I18n::Backend::Releaf::Translation
47
- @resource = resource_class.find(params[:id])
48
-
49
- unless params[:translations].blank?
50
- ids_to_keep = update_translations
51
- @resource.translations.where('id NOT IN (?)', ids_to_keep).destroy_all
52
- else
53
- @resource.translations.destroy_all
54
- end
55
- Settings.i18n_updated_at = Time.now
56
-
57
-
58
- respond_to do |format|
59
- format.html { redirect_to url_for(:action => "edit", :id => @resource.id) }
60
- end
61
- end
62
-
63
- protected
64
-
65
- def setup
66
- super
67
- @object_class = I18n::Backend::Releaf::TranslationGroup
68
- @features[:show] = false
69
- @continuous_scroll = true
70
- end
71
-
72
- private
73
-
74
- def update_translations
75
- return [] if params[:translations].blank?
76
-
77
- ids_to_keep = [];
78
- params[:translations].each_pair do |id,t|
79
- next if t['key'].blank?
80
-
81
- translation = nil
82
- if id =~ /\A\d+\z/
83
- translation = I18n::Backend::Releaf::Translation.find(id)
84
- else
85
- translation = @resource.translations.new
86
- end
87
-
88
- translation.key = params[:translation_group][:scope] + '.' + t['key']
89
- translation.save
90
-
91
-
92
- unless id =~ /\A\d+\z/
93
- id = translation.id
94
- end
95
-
96
- ids_to_keep.push id
97
-
98
-
99
- (Settings.i18n_locales || []).each do |locale|
100
- translation_data = I18n::Backend::Releaf::TranslationData.find_or_initialize_by_translation_id_and_lang(id, locale)
101
- unless t['localization'][locale].blank?
102
- translation_data.localization = t['localization'][locale]
103
- translation_data.save
104
- else
105
- translation_data.destroy
106
- end
107
- end
108
- end
109
- return ids_to_keep
110
- end
111
-
112
- def resource_params
113
- params.require(:resource).permit(:scope)
114
- end
115
-
116
- end
117
- end
@@ -1,59 +0,0 @@
1
- module Releaf
2
- module AdminHelper
3
-
4
- def is_this_main_menu_item_active? releaf_main_menu_item
5
- _check_if_this_is_valid_releaf_main_menu_item releaf_main_menu_item
6
-
7
- unless releaf_main_menu_item.start_with?('*')
8
- return params[:controller] == _menu_item_controller_name(releaf_main_menu_item)
9
- else
10
- return base_menu_items(releaf_main_menu_item).include? params[:controller]
11
- end
12
- end
13
-
14
- def main_menu_item_url releaf_main_menu_item, options={}
15
- # TODO implement options
16
- _check_if_this_is_valid_releaf_main_menu_item releaf_main_menu_item
17
-
18
- unless releaf_main_menu_item.start_with?('*')
19
- return url_for(:controller => _menu_item_controller_name(releaf_main_menu_item), :action => _menu_item_action_name(releaf_main_menu_item))
20
- else
21
- submenu_items = Releaf.base_menu[releaf_main_menu_item]
22
-
23
- # TODO find first item in submenu_items list, that current admin can access
24
- first_accessible_item = submenu_items[0][1][0] # currently will find first
25
-
26
- return url_for(:controller => _menu_item_controller_name(first_accessible_item), :action => _menu_item_action_name(first_accessible_item))
27
- end
28
- end
29
-
30
- def base_menu_items base_menu_name
31
- submenu_items = Releaf.base_menu[base_menu_name]
32
- return [] if submenu_items.blank?
33
-
34
- all_submenu_items = []
35
- submenu_items.each do |group|
36
- group[1].each { |item| all_submenu_items.push _menu_item_controller_name(item) }
37
- end
38
-
39
- return all_submenu_items
40
- end
41
-
42
- private
43
-
44
- def _menu_item_controller_name releaf_menu_item
45
- releaf_menu_item.split(/#/, 2).first
46
- end
47
-
48
- def _menu_item_action_name releaf_menu_item
49
- releaf_menu_item.split(/#/, 2)[2] || 'index'
50
- end
51
-
52
- def _check_if_this_is_valid_releaf_main_menu_item item
53
- raise ArgumentError, "not a string" unless item.is_a? String
54
- raise ArgumentError, "no such Releaf main menu item" unless Releaf.main_menu.include? item
55
- end
56
-
57
-
58
- end
59
- end