refinerycms-core 2.1.5 → 3.0.0

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 (449) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/refinery/add.png +0 -0
  3. data/app/assets/images/refinery/admin_bg.png +0 -0
  4. data/app/assets/images/refinery/ajax-loader.gif +0 -0
  5. data/app/assets/images/refinery/branch-end.gif +0 -0
  6. data/app/assets/images/refinery/branch.gif +0 -0
  7. data/app/assets/images/refinery/cross.png +0 -0
  8. data/app/assets/images/refinery/dialogLoadingAnimation.gif +0 -0
  9. data/app/assets/images/refinery/header_background.png +0 -0
  10. data/app/assets/images/refinery/hover-gradient.jpg +0 -0
  11. data/app/assets/images/refinery/icons/accept.png +0 -0
  12. data/app/assets/images/refinery/icons/add.png +0 -0
  13. data/app/assets/images/refinery/icons/ajax-loader.gif +0 -0
  14. data/app/assets/images/refinery/icons/application_edit.png +0 -0
  15. data/app/assets/images/refinery/icons/application_go.png +0 -0
  16. data/app/assets/images/refinery/icons/arrow_left.png +0 -0
  17. data/app/assets/images/refinery/icons/arrow_left_right.png +0 -0
  18. data/app/assets/images/refinery/icons/arrow_switch.png +0 -0
  19. data/app/assets/images/refinery/icons/arrow_up.png +0 -0
  20. data/app/assets/images/refinery/icons/arrow_up_down.png +0 -0
  21. data/app/assets/images/refinery/icons/bin.png +0 -0
  22. data/app/assets/images/refinery/icons/bin_closed.png +0 -0
  23. data/app/assets/images/refinery/icons/cancel.png +0 -0
  24. data/app/assets/images/refinery/icons/cog_add.png +0 -0
  25. data/app/assets/images/refinery/icons/cog_edit.png +0 -0
  26. data/app/assets/images/refinery/icons/cross.png +0 -0
  27. data/app/assets/images/refinery/icons/delete.png +0 -0
  28. data/app/assets/images/refinery/icons/doc.png +0 -0
  29. data/app/assets/images/refinery/icons/down.gif +0 -0
  30. data/app/assets/images/refinery/icons/edit.png +0 -0
  31. data/app/assets/images/refinery/icons/email.png +0 -0
  32. data/app/assets/images/refinery/icons/email_edit.png +0 -0
  33. data/app/assets/images/refinery/icons/email_go.png +0 -0
  34. data/app/assets/images/refinery/icons/email_open.png +0 -0
  35. data/app/assets/images/refinery/icons/eye.png +0 -0
  36. data/app/assets/images/refinery/icons/folder.png +0 -0
  37. data/app/assets/images/refinery/icons/folder_open.png +0 -0
  38. data/app/assets/images/refinery/icons/folder_page_white.png +0 -0
  39. data/app/assets/images/refinery/icons/image_add.png +0 -0
  40. data/app/assets/images/refinery/icons/image_edit.png +0 -0
  41. data/app/assets/images/refinery/icons/img.png +0 -0
  42. data/app/assets/images/refinery/icons/information.png +0 -0
  43. data/app/assets/images/refinery/icons/layout_add.png +0 -0
  44. data/app/assets/images/refinery/icons/layout_edit.png +0 -0
  45. data/app/assets/images/refinery/icons/locale-blue.svg +15 -0
  46. data/app/assets/images/refinery/icons/locale.svg +11 -0
  47. data/app/assets/images/refinery/icons/music.png +0 -0
  48. data/app/assets/images/refinery/icons/page.png +0 -0
  49. data/app/assets/images/refinery/icons/page_add.png +0 -0
  50. data/app/assets/images/refinery/icons/page_edit.png +0 -0
  51. data/app/assets/images/refinery/icons/page_white_edit.png +0 -0
  52. data/app/assets/images/refinery/icons/page_white_gear.png +0 -0
  53. data/app/assets/images/refinery/icons/page_white_put.png +0 -0
  54. data/app/assets/images/refinery/icons/pdf.png +0 -0
  55. data/app/assets/images/refinery/icons/ppt.png +0 -0
  56. data/app/assets/images/refinery/icons/star.png +0 -0
  57. data/app/assets/images/refinery/icons/tick.png +0 -0
  58. data/app/assets/images/refinery/icons/up.gif +0 -0
  59. data/app/assets/images/refinery/icons/user_add.png +0 -0
  60. data/app/assets/images/refinery/icons/user_comment.png +0 -0
  61. data/app/assets/images/refinery/icons/user_edit.png +0 -0
  62. data/app/assets/images/refinery/icons/xls.png +0 -0
  63. data/app/assets/images/refinery/icons/zip.png +0 -0
  64. data/app/assets/images/refinery/icons/zoom.png +0 -0
  65. data/app/assets/images/refinery/logo-large.png +0 -0
  66. data/app/assets/images/refinery/logo-medium.png +0 -0
  67. data/app/assets/images/refinery/logo-site-bar.png +0 -0
  68. data/app/assets/images/refinery/logo-small-medium.png +0 -0
  69. data/app/assets/images/refinery/logo-small.png +0 -0
  70. data/app/assets/images/refinery/logo-tiny.png +0 -0
  71. data/app/assets/images/refinery/logo.png +0 -0
  72. data/app/assets/images/refinery/nav-3-background.gif +0 -0
  73. data/app/assets/images/refinery/nav_inactive_background.png +0 -0
  74. data/app/assets/images/refinery/orange_button.png +0 -0
  75. data/app/assets/images/refinery/page_bg.png +0 -0
  76. data/app/assets/images/refinery/text_field_background.png +0 -0
  77. data/app/assets/images/refinery/tooltip-nib.gif +0 -0
  78. data/app/assets/images/refinery/tooltip-nib.png +0 -0
  79. data/app/assets/javascripts/admin.js +7 -6
  80. data/app/assets/javascripts/refinery/admin.js.erb +99 -60
  81. data/app/assets/javascripts/refinery/ajaxy_pagination.js.coffee +2 -5
  82. data/app/assets/javascripts/refinery/application.js +8 -0
  83. data/app/assets/javascripts/refinery/core.js +4 -18
  84. data/app/assets/javascripts/refinery/interface.js.coffee.erb +5 -29
  85. data/app/assets/javascripts/refinery/modal_dialogs.js.erb +0 -105
  86. data/app/assets/javascripts/refinery/nestedsortables.js +183 -110
  87. data/app/assets/javascripts/refinery/refinery.js.erb +3 -9
  88. data/app/assets/javascripts/refinery/serializelist.js +1 -1
  89. data/app/assets/javascripts/refinery/site_bar.js +0 -5
  90. data/app/assets/javascripts/refinery/sortable_list.js +10 -11
  91. data/app/assets/javascripts/refinery/submit_continue.js.coffee.erb +1 -1
  92. data/app/assets/stylesheets/application.scss +2 -0
  93. data/app/assets/stylesheets/refinery/_colours.scss +18 -0
  94. data/app/assets/stylesheets/refinery/_icons.scss +85 -0
  95. data/app/assets/stylesheets/refinery/{layout.css.scss → _layout.scss} +306 -338
  96. data/app/assets/stylesheets/refinery/_mixins.scss +84 -0
  97. data/app/assets/stylesheets/refinery/{submenu.css.scss → _submenu.scss} +2 -2
  98. data/app/assets/stylesheets/refinery/{tooltips.css.scss → _tooltips.scss} +0 -0
  99. data/app/assets/stylesheets/refinery/_ui.scss +252 -0
  100. data/app/assets/stylesheets/refinery/{formatting.css.scss → formatting.scss} +0 -0
  101. data/app/assets/stylesheets/refinery/refinery.scss +10 -0
  102. data/app/assets/stylesheets/refinery/site_bar.scss +126 -0
  103. data/app/assets/stylesheets/refinery/{theme.css.scss → theme.scss} +0 -0
  104. data/app/controllers/refinery/admin/core_controller.rb +2 -7
  105. data/app/controllers/refinery/admin/dialogs_controller.rb +4 -3
  106. data/app/controllers/refinery/admin_controller.rb +0 -1
  107. data/app/controllers/refinery/fast_controller.rb +0 -4
  108. data/app/helpers/refinery/admin/visual_editor_helper.rb +13 -0
  109. data/app/helpers/refinery/admin_helper.rb +4 -0
  110. data/app/helpers/refinery/custom_assets_helper.rb +2 -2
  111. data/app/helpers/refinery/image_helper.rb +9 -8
  112. data/app/helpers/refinery/meta_helper.rb +1 -1
  113. data/app/helpers/refinery/site_bar_helper.rb +16 -2
  114. data/app/helpers/refinery/tag_helper.rb +38 -5
  115. data/app/models/refinery/core/base_model.rb +3 -1
  116. data/app/views/layouts/refinery/admin.html.erb +12 -10
  117. data/app/views/layouts/refinery/admin_dialog.html.erb +1 -4
  118. data/app/views/refinery/_content_page.html.erb +1 -1
  119. data/app/views/refinery/_google_analytics.html.erb +8 -9
  120. data/app/views/refinery/_head.html.erb +1 -1
  121. data/app/views/refinery/_javascripts.html.erb +0 -15
  122. data/app/views/refinery/_message.html.erb +1 -1
  123. data/app/views/refinery/_site_bar.html.erb +9 -6
  124. data/app/views/refinery/admin/_error_messages.html.erb +4 -4
  125. data/app/views/refinery/admin/_form_actions.html.erb +1 -0
  126. data/app/views/refinery/admin/_form_advanced_options_menu.html.erb +3 -4
  127. data/app/views/refinery/admin/_head.html.erb +3 -0
  128. data/app/views/refinery/admin/_image_picker.html.erb +4 -5
  129. data/app/views/refinery/admin/_javascripts.html.erb +4 -9
  130. data/app/views/refinery/admin/_locale_picker.html.erb +9 -2
  131. data/app/views/refinery/admin/_make_sortable.html.erb +8 -6
  132. data/app/views/refinery/admin/_menu.html.erb +2 -15
  133. data/app/views/refinery/admin/_menu_item.html.erb +3 -0
  134. data/app/views/refinery/admin/_resource_picker.html.erb +12 -22
  135. data/app/views/refinery/admin/_search.html.erb +1 -1
  136. data/app/views/refinery/admin/_tabbed_fields.html.erb +2 -2
  137. data/app/views/refinery/admin/_wysiwyg.html.erb +1 -1
  138. data/{lib/generators/refinery/cms/templates/app/decorators/controllers/refinery/.gitkeep → app/views/refinery/admin/dialog_success.html.erb} +0 -0
  139. data/app/views/refinery/admin/dialogs/show.html.erb +1 -19
  140. data/config/initializers/assets.rb +6 -0
  141. data/config/locales/ca.yml +84 -0
  142. data/config/locales/cs.yml +12 -5
  143. data/config/locales/en.yml +6 -2
  144. data/config/locales/fr.yml +15 -11
  145. data/config/locales/hu.yml +3 -1
  146. data/config/locales/it.yml +5 -1
  147. data/config/locales/ja.yml +2 -2
  148. data/config/locales/pt.yml +5 -3
  149. data/config/locales/ru.yml +7 -0
  150. data/config/locales/sl.yml +0 -3
  151. data/config/locales/tr.yml +43 -41
  152. data/config/routes.rb +1 -4
  153. data/lib/generators/refinery/cms/cms_generator.rb +68 -26
  154. data/lib/generators/refinery/cms/templates/app/decorators/{models/refinery/.gitkeep → controllers/refinery/.keep} +0 -0
  155. data/lib/generators/refinery/{form/templates/.gitkeep → cms/templates/app/decorators/models/refinery/.keep} +0 -0
  156. data/lib/generators/refinery/cms/templates/config/database.yml.mysql +3 -3
  157. data/lib/generators/refinery/cms/templates/config/database.yml.postgresql +3 -3
  158. data/lib/generators/refinery/core/templates/config/initializers/refinery/core.rb.erb +18 -5
  159. data/lib/generators/refinery/dummy/dummy_generator.rb +3 -1
  160. data/lib/generators/refinery/dummy/templates/rails/application.js +3 -0
  161. data/lib/generators/refinery/dummy/templates/rails/application.rb.erb +0 -2
  162. data/lib/generators/refinery/dummy/templates/rails/blank.png +0 -0
  163. data/lib/generators/refinery/dummy/templates/rails/routes.rb +1 -1
  164. data/lib/generators/refinery/engine/engine_generator.rb +3 -2
  165. data/lib/generators/refinery/engine/templates/Gemfile +9 -4
  166. data/lib/generators/refinery/engine/templates/Rakefile +3 -4
  167. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb.erb +11 -2
  168. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/plural_name_controller.rb.erb +2 -2
  169. data/lib/generators/refinery/engine/templates/app/models/refinery/namespace/singular_name.rb.erb +5 -5
  170. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_actions.html.erb +7 -12
  171. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_form.html.erb +8 -8
  172. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +3 -3
  173. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +6 -11
  174. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +1 -1
  175. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/plural_name/show.html.erb +4 -4
  176. data/lib/generators/refinery/engine/templates/db/migrate/1_create_namespace_plural_name.rb.erb +2 -9
  177. data/lib/generators/refinery/engine/templates/db/seeds.rb.erb +13 -19
  178. data/lib/generators/refinery/engine/templates/lib/refinery/plural_name/engine.rb.erb +0 -4
  179. data/lib/generators/refinery/engine/templates/readme.md +3 -3
  180. data/lib/generators/refinery/engine/templates/refinerycms-extension_plural_name.gemspec +1 -0
  181. data/lib/generators/refinery/engine/templates/spec/features/refinery/namespace/admin/plural_name_spec.rb.erb +25 -28
  182. data/lib/generators/refinery/engine/templates/spec/models/refinery/namespace/singular_name_spec.rb.erb +1 -1
  183. data/lib/generators/refinery/engine/templates/spec/spec_helper.rb +1 -1
  184. data/lib/refinery.rb +7 -9
  185. data/lib/refinery/admin/base_controller.rb +42 -32
  186. data/lib/refinery/application_controller.rb +25 -17
  187. data/lib/refinery/cli.rb +54 -19
  188. data/lib/refinery/core.rb +5 -0
  189. data/lib/refinery/core/authorisation_adapter.rb +11 -0
  190. data/lib/refinery/core/authorisation_manager.rb +14 -0
  191. data/lib/refinery/core/configuration.rb +25 -4
  192. data/lib/refinery/core/default_route.rb +16 -0
  193. data/lib/refinery/core/engine.rb +44 -25
  194. data/lib/refinery/core/nil_user.rb +42 -0
  195. data/lib/refinery/crud.rb +40 -29
  196. data/lib/refinery/extension_generation.rb +11 -22
  197. data/lib/refinery/generators/generated_attribute.rb +54 -0
  198. data/lib/refinery/generators/named_base.rb +16 -0
  199. data/lib/refinery/menu.rb +3 -2
  200. data/lib/refinery/menu_item.rb +1 -1
  201. data/lib/refinery/plugin.rb +27 -43
  202. data/lib/refinery/plugins.rb +22 -26
  203. data/lib/refinery/users_manager.rb +8 -0
  204. data/lib/refinery/version.rb +7 -3
  205. data/lib/tasks/refinery.rake +7 -0
  206. data/license.md +1 -1
  207. data/refinerycms-core.gemspec +11 -8
  208. data/spec/controllers/refinery/admin/dummy_controller_spec.rb +23 -11
  209. data/spec/controllers/refinery/sitemap_controller_spec.rb +2 -2
  210. data/spec/features/refinery/admin/custom_assets_spec.rb +12 -10
  211. data/spec/features/refinery/admin/dialogs_spec.rb +5 -5
  212. data/spec/features/refinery/admin/xhr_paging_spec.rb +24 -38
  213. data/spec/features/refinery/application_layout_spec.rb +3 -3
  214. data/spec/features/refinery/core_spec.rb +1 -1
  215. data/spec/features/refinery/site_bar_spec.rb +44 -23
  216. data/spec/helpers/refinery/admin_helper_spec.rb +15 -0
  217. data/spec/helpers/refinery/custom_assets_helper_spec.rb +15 -23
  218. data/spec/helpers/refinery/html_truncation_helper_spec.rb +10 -5
  219. data/spec/helpers/refinery/meta_helper_spec.rb +3 -3
  220. data/spec/helpers/refinery/pagination_helper_spec.rb +7 -7
  221. data/spec/helpers/refinery/tag_helper_spec.rb +4 -4
  222. data/spec/helpers/refinery/translation_helper_spec.rb +3 -3
  223. data/spec/lib/generators/refinery/cms/cms_generator_spec.rb +30 -25
  224. data/spec/lib/generators/refinery/core/core_generator_spec.rb +1 -1
  225. data/spec/lib/generators/refinery/engine/engine_generator_multiple_resources_spec.rb +7 -8
  226. data/spec/lib/generators/refinery/engine/engine_generator_sanity_check_spec.rb +15 -15
  227. data/spec/lib/generators/refinery/engine/engine_generator_spec.rb +9 -9
  228. data/spec/lib/generators/refinery/engine/engine_generator_with_i18n_spec.rb +1 -1
  229. data/spec/lib/generators/refinery/engine/engine_generator_without_frontend_spec.rb +1 -1
  230. data/spec/lib/refinery/application_controller_spec.rb +16 -16
  231. data/spec/lib/refinery/authorisation_manager_spec.rb +10 -0
  232. data/spec/lib/refinery/cli_spec.rb +83 -21
  233. data/spec/lib/refinery/core/configuration_spec.rb +5 -5
  234. data/spec/lib/refinery/core/nil_user_spec.rb +39 -0
  235. data/spec/lib/refinery/core_spec.rb +39 -30
  236. data/spec/lib/refinery/crud_spec.rb +70 -59
  237. data/spec/lib/refinery/menu_spec.rb +4 -4
  238. data/spec/lib/refinery/plugin_spec.rb +56 -45
  239. data/spec/lib/refinery/plugins_spec.rb +39 -87
  240. data/spec/lib/refinery/users_manager_spec.rb +9 -0
  241. data/spec/support/refinery.rb +3 -8
  242. data/vendor/assets/fonts/font-awesome/FontAwesome.otf +0 -0
  243. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
  244. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.svg +565 -0
  245. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
  246. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
  247. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
  248. data/vendor/assets/stylesheets/_font-awesome-compass.scss +5 -0
  249. data/vendor/assets/stylesheets/_font-awesome-sprockets.scss +5 -0
  250. data/vendor/assets/stylesheets/_font-awesome.scss +17 -0
  251. data/vendor/assets/stylesheets/font-awesome/_animated.scss +34 -0
  252. data/vendor/assets/stylesheets/font-awesome/_bordered-pulled.scss +16 -0
  253. data/vendor/assets/stylesheets/font-awesome/_core.scss +12 -0
  254. data/vendor/assets/stylesheets/font-awesome/_extras.scss +44 -0
  255. data/vendor/assets/stylesheets/font-awesome/_fixed-width.scss +6 -0
  256. data/vendor/assets/stylesheets/font-awesome/_icons.scss +596 -0
  257. data/vendor/assets/stylesheets/font-awesome/_larger.scss +13 -0
  258. data/vendor/assets/stylesheets/font-awesome/_list.scss +19 -0
  259. data/vendor/assets/stylesheets/font-awesome/_mixins.scss +26 -0
  260. data/vendor/assets/stylesheets/font-awesome/_path.scss +14 -0
  261. data/vendor/assets/stylesheets/font-awesome/_rotated-flipped.scss +20 -0
  262. data/vendor/assets/stylesheets/font-awesome/_stacked.scss +20 -0
  263. data/vendor/assets/stylesheets/font-awesome/_variables.scss +606 -0
  264. metadata +144 -441
  265. data/app/assets/images/refinery/carousel-left.png +0 -0
  266. data/app/assets/images/refinery/carousel-right.png +0 -0
  267. data/app/assets/images/wymeditor/skins/refinery/arrow_redo.png +0 -0
  268. data/app/assets/images/wymeditor/skins/refinery/arrow_undo.png +0 -0
  269. data/app/assets/images/wymeditor/skins/refinery/eye.png +0 -0
  270. data/app/assets/images/wymeditor/skins/refinery/html5/article.png +0 -0
  271. data/app/assets/images/wymeditor/skins/refinery/html5/aside.png +0 -0
  272. data/app/assets/images/wymeditor/skins/refinery/html5/blockquote.png +0 -0
  273. data/app/assets/images/wymeditor/skins/refinery/html5/command.png +0 -0
  274. data/app/assets/images/wymeditor/skins/refinery/html5/details.png +0 -0
  275. data/app/assets/images/wymeditor/skins/refinery/html5/figcaption.png +0 -0
  276. data/app/assets/images/wymeditor/skins/refinery/html5/figure.png +0 -0
  277. data/app/assets/images/wymeditor/skins/refinery/html5/footer.png +0 -0
  278. data/app/assets/images/wymeditor/skins/refinery/html5/h1.png +0 -0
  279. data/app/assets/images/wymeditor/skins/refinery/html5/h2.png +0 -0
  280. data/app/assets/images/wymeditor/skins/refinery/html5/h3.png +0 -0
  281. data/app/assets/images/wymeditor/skins/refinery/html5/h4.png +0 -0
  282. data/app/assets/images/wymeditor/skins/refinery/html5/h5.png +0 -0
  283. data/app/assets/images/wymeditor/skins/refinery/html5/h6.png +0 -0
  284. data/app/assets/images/wymeditor/skins/refinery/html5/header.png +0 -0
  285. data/app/assets/images/wymeditor/skins/refinery/html5/hgroup.png +0 -0
  286. data/app/assets/images/wymeditor/skins/refinery/html5/mark.png +0 -0
  287. data/app/assets/images/wymeditor/skins/refinery/html5/meter.png +0 -0
  288. data/app/assets/images/wymeditor/skins/refinery/html5/nav.png +0 -0
  289. data/app/assets/images/wymeditor/skins/refinery/html5/p.png +0 -0
  290. data/app/assets/images/wymeditor/skins/refinery/html5/pre.png +0 -0
  291. data/app/assets/images/wymeditor/skins/refinery/html5/progress.png +0 -0
  292. data/app/assets/images/wymeditor/skins/refinery/html5/readme.md +0 -1
  293. data/app/assets/images/wymeditor/skins/refinery/html5/rp.png +0 -0
  294. data/app/assets/images/wymeditor/skins/refinery/html5/rt.png +0 -0
  295. data/app/assets/images/wymeditor/skins/refinery/html5/ruby.png +0 -0
  296. data/app/assets/images/wymeditor/skins/refinery/html5/section.png +0 -0
  297. data/app/assets/images/wymeditor/skins/refinery/html5/summary.png +0 -0
  298. data/app/assets/images/wymeditor/skins/refinery/html5/time.png +0 -0
  299. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-blockquote.png +0 -0
  300. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-h1.png +0 -0
  301. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-h2.png +0 -0
  302. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-h3.png +0 -0
  303. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-h4.png +0 -0
  304. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-h5.png +0 -0
  305. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-h6.png +0 -0
  306. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-p.png +0 -0
  307. data/app/assets/images/wymeditor/skins/refinery/iframe/lbl-pre.png +0 -0
  308. data/app/assets/images/wymeditor/skins/refinery/link_add.png +0 -0
  309. data/app/assets/images/wymeditor/skins/refinery/link_break.png +0 -0
  310. data/app/assets/images/wymeditor/skins/refinery/page_code.png +0 -0
  311. data/app/assets/images/wymeditor/skins/refinery/page_paste.png +0 -0
  312. data/app/assets/images/wymeditor/skins/refinery/photo_add.png +0 -0
  313. data/app/assets/images/wymeditor/skins/refinery/right.png +0 -0
  314. data/app/assets/images/wymeditor/skins/refinery/style.png +0 -0
  315. data/app/assets/images/wymeditor/skins/refinery/table_add.png +0 -0
  316. data/app/assets/images/wymeditor/skins/refinery/text_align_center.png +0 -0
  317. data/app/assets/images/wymeditor/skins/refinery/text_align_justify.png +0 -0
  318. data/app/assets/images/wymeditor/skins/refinery/text_align_left.png +0 -0
  319. data/app/assets/images/wymeditor/skins/refinery/text_align_right.png +0 -0
  320. data/app/assets/images/wymeditor/skins/refinery/text_bold.png +0 -0
  321. data/app/assets/images/wymeditor/skins/refinery/text_heading_1.png +0 -0
  322. data/app/assets/images/wymeditor/skins/refinery/text_heading_2.png +0 -0
  323. data/app/assets/images/wymeditor/skins/refinery/text_heading_3.png +0 -0
  324. data/app/assets/images/wymeditor/skins/refinery/text_heading_4.png +0 -0
  325. data/app/assets/images/wymeditor/skins/refinery/text_heading_5.png +0 -0
  326. data/app/assets/images/wymeditor/skins/refinery/text_heading_6.png +0 -0
  327. data/app/assets/images/wymeditor/skins/refinery/text_indent.png +0 -0
  328. data/app/assets/images/wymeditor/skins/refinery/text_indent_remove.png +0 -0
  329. data/app/assets/images/wymeditor/skins/refinery/text_italic.png +0 -0
  330. data/app/assets/images/wymeditor/skins/refinery/text_list_bullets.png +0 -0
  331. data/app/assets/images/wymeditor/skins/refinery/text_list_numbers.png +0 -0
  332. data/app/assets/images/wymeditor/skins/refinery/text_paragraph.png +0 -0
  333. data/app/assets/images/wymeditor/skins/refinery/text_strikethrough.png +0 -0
  334. data/app/assets/images/wymeditor/skins/refinery/text_subscript.png +0 -0
  335. data/app/assets/images/wymeditor/skins/refinery/text_superscript.png +0 -0
  336. data/app/assets/images/wymeditor/skins/refinery/text_underline.png +0 -0
  337. data/app/assets/images/wymeditor/skins/wymeditor_icon.png +0 -0
  338. data/app/assets/javascripts/refinery/boot_wym.js.erb +0 -285
  339. data/app/assets/javascripts/refinery/sortable_menu.js.coffee.erb +0 -20
  340. data/app/assets/javascripts/refinery/wymeditor.js +0 -37
  341. data/app/assets/javascripts/wymeditor/GPL-license.txt +0 -278
  342. data/app/assets/javascripts/wymeditor/MIT-license.txt +0 -20
  343. data/app/assets/javascripts/wymeditor/README +0 -35
  344. data/app/assets/javascripts/wymeditor/browsers/ie.js.erb +0 -224
  345. data/app/assets/javascripts/wymeditor/browsers/mozilla.js.erb +0 -292
  346. data/app/assets/javascripts/wymeditor/browsers/opera.js.erb +0 -123
  347. data/app/assets/javascripts/wymeditor/browsers/webkit.js.erb +0 -283
  348. data/app/assets/javascripts/wymeditor/classes.js.erb +0 -1575
  349. data/app/assets/javascripts/wymeditor/functions.js.erb +0 -222
  350. data/app/assets/javascripts/wymeditor/lang/bg.js +0 -57
  351. data/app/assets/javascripts/wymeditor/lang/ca.js +0 -45
  352. data/app/assets/javascripts/wymeditor/lang/cs.js +0 -58
  353. data/app/assets/javascripts/wymeditor/lang/da.js +0 -48
  354. data/app/assets/javascripts/wymeditor/lang/de.js +0 -45
  355. data/app/assets/javascripts/wymeditor/lang/en.js +0 -57
  356. data/app/assets/javascripts/wymeditor/lang/es.js +0 -58
  357. data/app/assets/javascripts/wymeditor/lang/fa.js +0 -46
  358. data/app/assets/javascripts/wymeditor/lang/fi.js +0 -57
  359. data/app/assets/javascripts/wymeditor/lang/fr.js +0 -58
  360. data/app/assets/javascripts/wymeditor/lang/he.js +0 -45
  361. data/app/assets/javascripts/wymeditor/lang/hu.js +0 -45
  362. data/app/assets/javascripts/wymeditor/lang/it.js +0 -48
  363. data/app/assets/javascripts/wymeditor/lang/ja.js +0 -47
  364. data/app/assets/javascripts/wymeditor/lang/lv.js +0 -47
  365. data/app/assets/javascripts/wymeditor/lang/nb.js +0 -48
  366. data/app/assets/javascripts/wymeditor/lang/nl.js +0 -57
  367. data/app/assets/javascripts/wymeditor/lang/nn.js +0 -45
  368. data/app/assets/javascripts/wymeditor/lang/pl.js +0 -56
  369. data/app/assets/javascripts/wymeditor/lang/pt-BR.js +0 -58
  370. data/app/assets/javascripts/wymeditor/lang/pt.js +0 -45
  371. data/app/assets/javascripts/wymeditor/lang/rs.js +0 -47
  372. data/app/assets/javascripts/wymeditor/lang/ru.js +0 -57
  373. data/app/assets/javascripts/wymeditor/lang/sk.js +0 -56
  374. data/app/assets/javascripts/wymeditor/lang/sl.js +0 -47
  375. data/app/assets/javascripts/wymeditor/lang/sv.js +0 -45
  376. data/app/assets/javascripts/wymeditor/lang/tr.js +0 -45
  377. data/app/assets/javascripts/wymeditor/lang/vi.js +0 -47
  378. data/app/assets/javascripts/wymeditor/lang/zh-CN.js +0 -47
  379. data/app/assets/javascripts/wymeditor/prototypes.js.erb +0 -1103
  380. data/app/assets/javascripts/wymeditor/setup.js.erb +0 -622
  381. data/app/assets/javascripts/wymeditor/skins/refinery/skin.js +0 -45
  382. data/app/assets/javascripts/wymeditor/validators.js.erb +0 -777
  383. data/app/assets/stylesheets/refinery/refinery.css +0 -15
  384. data/app/assets/stylesheets/refinery/site_bar.css.scss +0 -92
  385. data/app/assets/stylesheets/refinery/ui.css.scss +0 -103
  386. data/app/assets/stylesheets/wymeditor/skins/refinery/skin.css.scss +0 -530
  387. data/app/assets/stylesheets/wymeditor/skins/refinery/wymiframe.css.scss +0 -156
  388. data/app/helpers/refinery/admin/core_helper.rb +0 -6
  389. data/app/helpers/refinery/admin/dialogs_helper.rb +0 -6
  390. data/app/helpers/refinery/fast_helper.rb +0 -4
  391. data/app/helpers/refinery/sitemap_helper.rb +0 -4
  392. data/app/views/refinery/wymiframe.html.erb +0 -14
  393. data/lib/generators/refinery/form/USAGE +0 -20
  394. data/lib/generators/refinery/form/form_generator.rb +0 -25
  395. data/lib/generators/refinery/form/templates/.gitignore +0 -2
  396. data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb.erb +0 -54
  397. data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/admin/settings_controller.rb.erb +0 -45
  398. data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/plural_name_controller.rb.erb +0 -53
  399. data/lib/generators/refinery/form/templates/app/mailers/refinery/namespace/mailer.rb.erb +0 -22
  400. data/lib/generators/refinery/form/templates/app/models/refinery/namespace/setting.rb.erb +0 -34
  401. data/lib/generators/refinery/form/templates/app/models/refinery/namespace/singular_name.rb.erb +0 -49
  402. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +0 -23
  403. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +0 -25
  404. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_submenu.html.erb +0 -29
  405. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +0 -4
  406. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/show.html.erb +0 -52
  407. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/spam.html.erb +0 -27
  408. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/_confirmation_email_form.html.erb +0 -51
  409. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/_notification_recipients_form.html.erb +0 -21
  410. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/edit.html.erb +0 -5
  411. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/mailer/confirmation.html.erb +0 -1
  412. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/mailer/notification.html.erb +0 -17
  413. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/plural_name/new.html.erb +0 -43
  414. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/plural_name/thank_you.html.erb +0 -1
  415. data/lib/generators/refinery/form/templates/config/locales/cs.yml +0 -78
  416. data/lib/generators/refinery/form/templates/config/locales/da.yml +0 -66
  417. data/lib/generators/refinery/form/templates/config/locales/de.yml +0 -78
  418. data/lib/generators/refinery/form/templates/config/locales/en.yml +0 -78
  419. data/lib/generators/refinery/form/templates/config/locales/es.yml +0 -66
  420. data/lib/generators/refinery/form/templates/config/locales/fr.yml +0 -78
  421. data/lib/generators/refinery/form/templates/config/locales/it.yml +0 -66
  422. data/lib/generators/refinery/form/templates/config/locales/lv.yml +0 -77
  423. data/lib/generators/refinery/form/templates/config/locales/nb.yml +0 -75
  424. data/lib/generators/refinery/form/templates/config/locales/nl.yml +0 -78
  425. data/lib/generators/refinery/form/templates/config/locales/pt-BR.yml +0 -78
  426. data/lib/generators/refinery/form/templates/config/locales/ru.yml +0 -77
  427. data/lib/generators/refinery/form/templates/config/locales/sk.yml +0 -78
  428. data/lib/generators/refinery/form/templates/config/locales/sl.yml +0 -67
  429. data/lib/generators/refinery/form/templates/config/locales/tr.yml +0 -78
  430. data/lib/generators/refinery/form/templates/config/locales/zh-CN.yml +0 -78
  431. data/lib/generators/refinery/form/templates/config/routes.rb.erb +0 -26
  432. data/lib/generators/refinery/form/templates/db/migrate/1_create_plural_name.rb.erb +0 -39
  433. data/lib/generators/refinery/form/templates/db/seeds.rb.erb +0 -31
  434. data/lib/generators/refinery/form/templates/lib/generators/refinery/plural_name_generator.rb.erb +0 -20
  435. data/lib/generators/refinery/form/templates/lib/refinery/plural_name.rb.erb +0 -18
  436. data/lib/generators/refinery/form/templates/lib/refinery/plural_name/engine.rb.erb +0 -27
  437. data/lib/generators/refinery/form/templates/lib/refinerycms-plural_name.rb.erb +0 -1
  438. data/lib/generators/refinery/form/templates/refinerycms-plural_name.gemspec +0 -16
  439. data/lib/generators/refinery/form/templates/script/rails +0 -10
  440. data/lib/refinery/activity.rb +0 -113
  441. data/lib/refinery/ext/action_view/helpers/form_builder.rb +0 -9
  442. data/lib/refinery/ext/action_view/helpers/form_helper.rb +0 -20
  443. data/lib/refinery/ext/action_view/helpers/form_tag_helper.rb +0 -10
  444. data/spec/controllers/refinery/admin/refinery_core_controller_spec.rb +0 -19
  445. data/spec/controllers/refinery/fast_controller_spec.rb +0 -12
  446. data/spec/lib/generators/refinery/form/form_generator_spec.rb +0 -99
  447. data/spec/lib/refinery/activity_spec.rb +0 -46
  448. data/spec/support/background_selenium_firefox_driver.rb +0 -14
  449. data/vendor/assets/javascripts/jquery/jquery.jcarousel.js +0 -900
@@ -1,10 +1,10 @@
1
1
  # <%= extension_plural_name.titleize %> extension for Refinery CMS.
2
2
 
3
- ## How to build this extension as a gem
3
+ ## How to build this extension as a gem (not required)
4
4
 
5
5
  cd vendor/extensions/<%= extension_plural_name %>
6
6
  gem build refinerycms-<%= extension_plural_name %>.gemspec
7
7
  gem install refinerycms-<%= extension_plural_name %>.gem
8
8
 
9
- # Sign up for a http://rubygems.org/ account and publish the gem
10
- gem push refinerycms-<%= extension_plural_name %>.gem
9
+ # Sign up for a https://rubygems.org/ account and publish the gem
10
+ gem push refinerycms-<%= extension_plural_name %>.gem
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  # Runtime dependencies
14
14
  s.add_dependency 'refinerycms-core', '~> <%= Refinery::Version %>'
15
+ s.add_dependency 'acts_as_indexed', '~> 0.8.0'
15
16
 
16
17
  # Development dependencies (usually used for testing)
17
18
  s.add_development_dependency 'refinerycms-testing', '~> <%= Refinery::Version %>'
@@ -4,8 +4,8 @@ require "spec_helper"
4
4
  describe Refinery do
5
5
  describe "<%= namespacing %>" do
6
6
  describe "Admin" do
7
- describe "<%= plural_name %>" do
8
- refinery_login_with :refinery_user
7
+ describe "<%= plural_name %>", type: :feature do
8
+ refinery_login
9
9
  <% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>
10
10
  describe "<%= plural_name %> list" do
11
11
  before do
@@ -15,8 +15,8 @@ describe Refinery do
15
15
 
16
16
  it "shows two items" do
17
17
  visit refinery.<%= namespacing.underscore %>_admin_<%= plural_name %>_path
18
- page.should have_content("UniqueTitleOne")
19
- page.should have_content("UniqueTitleTwo")
18
+ expect(page).to have_content("UniqueTitleOne")
19
+ expect(page).to have_content("UniqueTitleTwo")
20
20
  end
21
21
  end
22
22
 
@@ -30,19 +30,17 @@ describe Refinery do
30
30
  context "valid data" do
31
31
  it "should succeed" do
32
32
  fill_in "<%= title.name.titleize %>", :with => "This is a test of the first string field"
33
- click_button "Save"
33
+ expect { click_button "Save" }.to change(Refinery::<%= namespacing %>::<%= class_name %>, :count).from(0).to(1)
34
34
 
35
- page.should have_content("'This is a test of the first string field' was successfully added.")
36
- Refinery::<%= namespacing %>::<%= class_name %>.count.should == 1
35
+ expect(page).to have_content("'This is a test of the first string field' was successfully added.")
37
36
  end
38
37
  end
39
38
 
40
39
  context "invalid data" do
41
40
  it "should fail" do
42
- click_button "Save"
41
+ expect { click_button "Save" }.not_to change(Refinery::<%= namespacing %>::<%= class_name %>, :count)
43
42
 
44
- page.should have_content("<%= title.name.titleize %> can't be blank")
45
- Refinery::<%= namespacing %>::<%= class_name %>.count.should == 0
43
+ expect(page).to have_content("<%= title.name.titleize %> can't be blank")
46
44
  end
47
45
  end
48
46
 
@@ -55,10 +53,9 @@ describe Refinery do
55
53
  click_link "Add New <%= singular_name.titleize %>"
56
54
 
57
55
  fill_in "<%= title.name.titleize %>", :with => "UniqueTitle"
58
- click_button "Save"
56
+ expect { click_button "Save" }.not_to change(Refinery::<%= namespacing %>::<%= class_name %>, :count)
59
57
 
60
- page.should have_content("There were problems")
61
- Refinery::<%= namespacing %>::<%= class_name %>.count.should == 1
58
+ expect(page).to have_content("There were problems")
62
59
  end
63
60
  end
64
61
  <% if localized? %>
@@ -76,20 +73,20 @@ describe Refinery do
76
73
  end
77
74
 
78
75
  it "should succeed" do
79
- Refinery::<%= namespacing %>::<%= class_name %>.count.should == 1
76
+ expect(Refinery::<%= namespacing %>::<%= class_name %>.count).to eq(1)
80
77
  end
81
78
 
82
- it "should show locale flag for page" do
79
+ it "should show locale marker for page" do
83
80
  p = Refinery::<%= namespacing %>::<%= class_name %>.last
84
81
  within "#<%= singular_name %>_#{p.id}" do
85
- page.should have_css("img[src='/assets/refinery/icons/flags/en.png']")
82
+ expect(page).to have_css(".locale_marker", content: 'EN')
86
83
  end
87
84
  end
88
85
 
89
86
  it "should show <%= title.name %> in the admin menu" do
90
87
  p = Refinery::<%= namespacing %>::<%= class_name %>.last
91
88
  within "#<%= singular_name %>_#{p.id}" do
92
- page.should have_content('First column')
89
+ expect(page).to have_content('First column')
93
90
  end
94
91
  end
95
92
  end
@@ -113,22 +110,22 @@ describe Refinery do
113
110
  end
114
111
 
115
112
  it "should succeed" do
116
- Refinery::<%= namespacing %>::<%= class_name %>.count.should == 1
117
- Refinery::<%= namespacing %>::<%= class_name %>::Translation.count.should == 2
113
+ expect(Refinery::<%= namespacing %>::<%= class_name %>.count).to eq(1)
114
+ expect(Refinery::<%= namespacing %>::<%= class_name %>::Translation.count).to eq(2)
118
115
  end
119
116
 
120
117
  it "should show locale flag for page" do
121
118
  p = Refinery::<%= namespacing %>::<%= class_name %>.last
122
119
  within "#<%= singular_name %>_#{p.id}" do
123
- page.should have_css("img[src='/assets/refinery/icons/flags/en.png']")
124
- page.should have_css("img[src='/assets/refinery/icons/flags/cs.png']")
120
+ expect(page).to have_css(".locale_marker", content: 'EN')
121
+ expect(page).to have_css(".locale_marker", content: 'CS')
125
122
  end
126
123
  end
127
124
 
128
125
  it "should show <%= title.name %> in backend locale in the admin menu" do
129
126
  p = Refinery::<%= namespacing %>::<%= class_name %>.last
130
127
  within "#<%= singular_name %>_#{p.id}" do
131
- page.should have_content('First column')
128
+ expect(page).to have_content('First column')
132
129
  end
133
130
  end
134
131
  end
@@ -148,14 +145,14 @@ describe Refinery do
148
145
  it "should show title in backend locale in the admin menu" do
149
146
  p = Refinery::<%= namespacing %>::<%= class_name %>.last
150
147
  within "#<%= singular_name %>_#{p.id}" do
151
- page.should have_content('First translated column')
148
+ expect(page).to have_content('First translated column')
152
149
  end
153
150
  end
154
151
 
155
152
  it "should show locale flag for page" do
156
153
  p = Refinery::<%= namespacing %>::<%= class_name %>.last
157
154
  within "#<%= singular_name %>_#{p.id}" do
158
- page.should have_css("img[src='/assets/refinery/icons/flags/cs.png']")
155
+ expect(page).to have_css(".locale_marker", content: 'CS')
159
156
  end
160
157
  end
161
158
  end
@@ -176,8 +173,8 @@ describe Refinery do
176
173
  fill_in "<%= title.name.titleize %>", :with => "A different <%= title.name %>"
177
174
  click_button "Save"
178
175
 
179
- page.should have_content("'A different <%= title.name %>' was successfully updated.")
180
- page.should have_no_content("A <%= title.name %>")
176
+ expect(page).to have_content("'A different <%= title.name %>' was successfully updated.")
177
+ expect(page).not_to have_content("A <%= title.name %>")
181
178
  end
182
179
  end
183
180
 
@@ -189,8 +186,8 @@ describe Refinery do
189
186
 
190
187
  click_link "Remove this <%= singular_name.titleize.downcase %> forever"
191
188
 
192
- page.should have_content("'UniqueTitleOne' was successfully removed.")
193
- Refinery::<%= namespacing %>::<%= class_name %>.count.should == 0
189
+ expect(page).to have_content("'UniqueTitleOne' was successfully removed.")
190
+ expect(Refinery::<%= namespacing %>::<%= class_name %>.count).to eq(0)
194
191
  end
195
192
  end
196
193
  <% end %>
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  module Refinery
4
4
  module <%= namespacing %>
5
5
  describe <%= class_name %> do
6
- describe "validations" do
6
+ describe "validations", type: :model do
7
7
  subject do
8
8
  FactoryGirl.create(:<%= singular_name %><% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? -%>,
9
9
  :<%= title.name %> => "Refinery CMS"<% end %>)
@@ -24,7 +24,7 @@ end
24
24
 
25
25
  # Requires supporting files with custom matchers and macros, etc,
26
26
  # in ./support/ and its subdirectories including factories.
27
- ([Rails.root.to_s] | ::Refinery::Plugins.registered.pathnames).map{|p|
27
+ ([Rails.root.to_s] | ::Refinery::Plugins.registered.pathnames).map{ |p|
28
28
  Dir[File.join(p, 'spec', 'support', '**', '*.rb').to_s]
29
29
  }.flatten.sort.each do |support_file|
30
30
  require support_file
data/lib/refinery.rb CHANGED
@@ -17,10 +17,6 @@ module Refinery
17
17
  autoload :Crud, 'refinery/crud'
18
18
  autoload :BasePresenter, 'refinery/base_presenter'
19
19
 
20
- require 'refinery/ext/action_view/helpers/form_builder'
21
- require 'refinery/ext/action_view/helpers/form_helper'
22
- require 'refinery/ext/action_view/helpers/form_tag_helper'
23
-
24
20
  module Admin
25
21
  autoload :BaseController, 'refinery/admin/base_controller'
26
22
  end
@@ -142,13 +138,15 @@ module Refinery
142
138
  options = {:plural => false, :admin => true}.merge options
143
139
 
144
140
  klass = klass.constantize if klass.respond_to?(:constantize)
145
- active_name = ActiveModel::Name.new klass, (Refinery if klass.parents.include?(Refinery))
141
+ active_name = ::ActiveModel::Name.new(
142
+ klass, (Refinery if klass.parents.include?(Refinery))
143
+ )
146
144
 
147
145
  if options[:admin]
148
146
  # Most of the time this gets rid of 'refinery'
149
- parts = active_name.underscore.split('/').reject{|name|
147
+ parts = active_name.to_s.underscore.split('/').reject do |name|
150
148
  active_name.singular_route_key.exclude?(name)
151
- }
149
+ end
152
150
 
153
151
  # Get the singular resource_name from the url parts
154
152
  resource_name = parts.pop
@@ -169,14 +167,14 @@ module Refinery
169
167
  private
170
168
  def detect_invoker(the_caller = caller)
171
169
  return '' unless the_caller && the_caller.respond_to?(:detect)
172
- the_caller.detect{|c| /#{Rails.root}/ === c }.inspect.to_s.split(':in').first
170
+ the_caller.detect{ |c| /#{Rails.root}/ === c }.inspect.to_s.split(':in').first
173
171
  end
174
172
 
175
173
  # plain Module#included? or Module#included_modules doesn't cut it here
176
174
  def included_extension_module?(base, extension_module)
177
175
  if base.kind_of?(Class)
178
176
  direct_superclass = base.superclass
179
- base.ancestors.take_while {|ancestor| ancestor != direct_superclass}.include?(extension_module)
177
+ base.ancestors.take_while { |ancestor| ancestor != direct_superclass}.include?(extension_module)
180
178
  else
181
179
  base < extension_module # can't do better than that for modules
182
180
  end
@@ -1,4 +1,6 @@
1
1
  require 'action_controller'
2
+ require 'refinery/core/authorisation_manager'
3
+ require 'zilch/authorisation/users_manager'
2
4
 
3
5
  module Refinery
4
6
  module Admin
@@ -7,12 +9,13 @@ module Refinery
7
9
  def self.included(base)
8
10
  base.layout :layout?
9
11
 
10
- base.before_filter :require_refinery_users!, :force_ssl!,
11
- :authenticate_refinery_user!, :restrict_plugins,
12
+ base.before_action :force_ssl!,
13
+ :authenticate_refinery_user!,
12
14
  :restrict_controller
13
- base.after_filter :store_location?, :only => [:index] # for redirect_back_or_default
14
15
 
15
- base.helper_method :searching?, :group_by_date
16
+ base.after_action :store_location?, :only => [:index] # for redirect_back_or_default
17
+
18
+ base.helper_method :searching?, :group_by_date, :refinery_admin_root_path
16
19
  end
17
20
 
18
21
  def admin?
@@ -23,60 +26,54 @@ module Refinery
23
26
  params[:search].present?
24
27
  end
25
28
 
29
+ def refinery_admin_root_path
30
+ current_refinery_user.landing_url
31
+ end
32
+
26
33
  protected
27
34
 
28
35
  def force_ssl!
29
36
  redirect_to :protocol => 'https' if Refinery::Core.force_ssl && !request.ssl?
30
37
  end
31
38
 
39
+ def authenticate_refinery_user!
40
+ authorisation_manager.authenticate!
41
+ end
42
+
32
43
  def group_by_date(records)
33
44
  new_records = []
34
45
 
35
46
  records.each do |record|
36
47
  key = record.created_at.strftime("%Y-%m-%d")
37
- record_group = new_records.collect{|records| records.last if records.first == key }.flatten.compact << record
38
- (new_records.delete_if {|i| i.first == key}) << [key, record_group]
48
+ record_group = new_records.map{ |r| r.last if r.first == key }.flatten.compact << record
49
+ (new_records.delete_if { |i| i.first == key}) << [key, record_group]
39
50
  end
40
51
 
41
52
  new_records
42
53
  end
43
54
 
44
- def require_refinery_users!
45
- redirect_to refinery.signup_path if just_installed? && controller_name != 'users'
46
- end
47
-
48
- def restrict_plugins
49
- current_length = (plugins = current_refinery_user.authorized_plugins).length
50
-
51
- # Superusers get granted access if they don't already have access.
52
- if current_refinery_user.has_role?(:superuser)
53
- if (plugins = plugins | ::Refinery::Plugins.registered.names).length > current_length
54
- current_refinery_user.plugins = plugins
55
- end
56
- end
57
-
58
- ::Refinery::Plugins.set_active(plugins)
59
- end
60
-
61
55
  def restrict_controller
62
- unless allow_controller? params[:controller].gsub 'admin/', ''
63
- logger.warn "'#{current_refinery_user.username}' tried to access '#{params[:controller]}' but was rejected."
56
+ unless allow_controller?(params[:controller].gsub('admin/', ''))
57
+ logger.warn "'#{current_refinery_user}' tried to access '#{params[:controller]}' but was rejected."
64
58
  error_404
65
59
  end
66
60
  end
67
61
 
68
62
  private
69
63
 
70
- def allow_controller?(controller_path)
71
- ::Refinery::Plugins.active.any? {|plugin|
72
- Regexp.new(plugin.menu_match) === controller_path
73
- }
64
+ def allow_controller?(controller_name)
65
+ authorisation_manager.allow?(:controller, controller_name)
66
+ end
67
+
68
+ def authorisation_manager
69
+ @authorisation_manager ||= ::Refinery::Core::AuthorisationManager.new
74
70
  end
75
71
 
76
72
  def layout?
77
73
  "refinery/admin#{'_dialog' if from_dialog?}"
78
74
  end
79
75
 
76
+ # TODO: all store_location stuff should be in its own object..
80
77
  # Check whether it makes sense to return the user to the last page they
81
78
  # were at instead of the default e.g. refinery_admin_pages_path
82
79
  # right now we just want to snap back to index actions and definitely not to dialogues.
@@ -84,9 +81,22 @@ module Refinery
84
81
  store_location unless request.xhr? || from_dialog?
85
82
  end
86
83
 
87
- # Override authorized? so that only users with the Refinery role can admin the website.
88
- def authorized?
89
- refinery_user?
84
+ # Store the URI of the current request in the session.
85
+ #
86
+ # We can return to this location by calling #redirect_back_or_default.
87
+ def store_location
88
+ session[:return_to] = request.fullpath
89
+ end
90
+
91
+ # Clear and return the stored location
92
+ def pop_stored_location
93
+ session.delete(:return_to)
94
+ end
95
+
96
+ # Redirect to the URI stored by the most recent store_location call or
97
+ # to the passed default.
98
+ def redirect_back_or_default(default)
99
+ redirect_to(pop_stored_location || default)
90
100
  end
91
101
  end
92
102
  end
@@ -1,68 +1,76 @@
1
+ require 'refinery/core/authorisation_manager'
2
+
1
3
  module Refinery
2
4
  module ApplicationController
3
5
 
4
6
  def self.included(base) # Extend controller
5
- base.helper_method :home_page?, :local_request?, :just_installed?,
6
- :from_dialog?, :admin?, :login?
7
+ base.helper_method :home_page?,
8
+ :local_request?,
9
+ :from_dialog?,
10
+ :admin?,
11
+ :current_refinery_user,
12
+ :authorisation_manager, :authorization_manager
7
13
 
8
14
  base.protect_from_forgery # See ActionController::RequestForgeryProtection
9
15
 
10
16
  base.send :include, Refinery::Crud # basic create, read, update and delete methods
11
17
 
12
18
  if Refinery::Core.rescue_not_found
13
- base.rescue_from ActiveRecord::RecordNotFound,
19
+ base.rescue_from ::ActiveRecord::RecordNotFound,
14
20
  ::AbstractController::ActionNotFound,
15
- ActionView::MissingTemplate,
21
+ ::ActionView::MissingTemplate,
16
22
  :with => :error_404
17
23
  end
18
24
  end
19
25
 
20
26
  def admin?
21
- %r{^admin/} === controller_name
27
+ %r{\Aadmin/} === controller_name
22
28
  end
23
29
 
24
- def error_404(exception=nil)
30
+ def error_404(exception = nil)
25
31
  # fallback to the default 404.html page.
26
32
  file = Rails.root.join 'public', '404.html'
27
- file = Refinery.roots(:'refinery/core').join('public', '404.html') unless file.exist?
33
+ file = Refinery.roots('refinery/core').join('public', '404.html') unless file.exist?
28
34
  render :file => file.cleanpath.to_s.gsub(%r{#{file.extname}$}, ''),
29
- :layout => false, :status => 404, :formats => [:html]
35
+ :layout => false, :status => 404, :formats => [:html]
30
36
  return false
31
37
  end
32
38
 
33
39
  def from_dialog?
34
- params[:dialog] == 'true' or params[:modal] == 'true'
40
+ params[:dialog] == 'true' || params[:modal] == 'true'
35
41
  end
36
42
 
37
43
  def home_page?
38
44
  %r{^#{Regexp.escape(request.path)}} === refinery.root_path
39
45
  end
40
46
 
41
- def just_installed?
42
- Refinery::Role[:refinery].users.empty?
43
- end
44
-
45
47
  def local_request?
46
48
  Rails.env.development? || /(::1)|(127.0.0.1)|((192.168).*)/ === request.remote_ip
47
49
  end
48
50
 
49
- def login?
50
- (/^(user|session)(|s)/ === controller_name && !admin?) || just_installed?
51
+ def current_refinery_user
52
+ authorisation_manager.current_user
51
53
  end
52
54
 
53
- protected
55
+ protected
54
56
 
55
57
  # use a different model for the meta information.
56
58
  def present(model)
57
59
  @meta = presenter_for(model).new(model)
58
60
  end
59
61
 
60
- def presenter_for(model, default=BasePresenter)
62
+ def presenter_for(model, default = BasePresenter)
61
63
  return default if model.nil?
62
64
 
63
65
  "#{model.class.name}Presenter".constantize
64
66
  rescue NameError
65
67
  default
66
68
  end
69
+
70
+ def authorisation_manager
71
+ @authorisation_manager ||= ::Refinery::Core::AuthorisationManager.new
72
+ end
73
+ # We ❤ you, too ️
74
+ alias_method :authorization_manager, :authorisation_manager
67
75
  end
68
76
  end