refinerycms-core 1.0.11 → 2.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 (528) hide show
  1. data/{public → app/assets/images}/favicon.ico +0 -0
  2. data/{public → app/assets}/images/refinery/add.png +0 -0
  3. data/{public → app/assets}/images/refinery/admin_bg.png +0 -0
  4. data/{public → app/assets}/images/refinery/ajax-loader.gif +0 -0
  5. data/{public → app/assets}/images/refinery/branch-end.gif +0 -0
  6. data/{public → app/assets}/images/refinery/branch-start.gif +0 -0
  7. data/{public → app/assets}/images/refinery/branch.gif +0 -0
  8. data/{public → app/assets}/images/refinery/carousel-left.png +0 -0
  9. data/{public → app/assets}/images/refinery/carousel-right.png +0 -0
  10. data/{public → app/assets}/images/refinery/cross.png +0 -0
  11. data/{public → app/assets}/images/refinery/dialogLoadingAnimation.gif +0 -0
  12. data/{public → app/assets}/images/refinery/header_background.png +0 -0
  13. data/{public → app/assets}/images/refinery/hover-gradient.jpg +0 -0
  14. data/{public → app/assets}/images/refinery/icons/accept.png +0 -0
  15. data/{public → app/assets}/images/refinery/icons/add.png +0 -0
  16. data/{public → app/assets}/images/refinery/icons/ajax-loader.gif +0 -0
  17. data/{public → app/assets}/images/refinery/icons/application_edit.png +0 -0
  18. data/{public → app/assets}/images/refinery/icons/application_go.png +0 -0
  19. data/{public → app/assets}/images/refinery/icons/arrow_left.png +0 -0
  20. data/{public → app/assets}/images/refinery/icons/arrow_switch.png +0 -0
  21. data/{public → app/assets}/images/refinery/icons/arrow_up.png +0 -0
  22. data/{public → app/assets}/images/refinery/icons/bin.png +0 -0
  23. data/{public → app/assets}/images/refinery/icons/bin_closed.png +0 -0
  24. data/{public → app/assets}/images/refinery/icons/cancel.png +0 -0
  25. data/{public → app/assets}/images/refinery/icons/cog_add.png +0 -0
  26. data/{public → app/assets}/images/refinery/icons/cog_edit.png +0 -0
  27. data/{public → app/assets}/images/refinery/icons/cross.png +0 -0
  28. data/{public → app/assets}/images/refinery/icons/delete.png +0 -0
  29. data/{public → app/assets}/images/refinery/icons/doc.png +0 -0
  30. data/{public → app/assets}/images/refinery/icons/down.gif +0 -0
  31. data/{public → app/assets}/images/refinery/icons/edit.png +0 -0
  32. data/{public → app/assets}/images/refinery/icons/email.png +0 -0
  33. data/{public → app/assets}/images/refinery/icons/email_edit.png +0 -0
  34. data/{public → app/assets}/images/refinery/icons/email_go.png +0 -0
  35. data/{public → app/assets}/images/refinery/icons/email_open.png +0 -0
  36. data/{public → app/assets}/images/refinery/icons/eye.png +0 -0
  37. data/app/assets/images/refinery/icons/folder.png +0 -0
  38. data/app/assets/images/refinery/icons/folder_open.png +0 -0
  39. data/{public → app/assets}/images/refinery/icons/folder_page_white.png +0 -0
  40. data/{public → app/assets}/images/refinery/icons/image_add.png +0 -0
  41. data/{public → app/assets}/images/refinery/icons/image_edit.png +0 -0
  42. data/{public → app/assets}/images/refinery/icons/img.png +0 -0
  43. data/{public → app/assets}/images/refinery/icons/information.png +0 -0
  44. data/{public → app/assets}/images/refinery/icons/layout_add.png +0 -0
  45. data/{public → app/assets}/images/refinery/icons/layout_edit.png +0 -0
  46. data/{public → app/assets}/images/refinery/icons/music.png +0 -0
  47. data/app/assets/images/refinery/icons/page.png +0 -0
  48. data/{public → app/assets}/images/refinery/icons/page_add.png +0 -0
  49. data/{public → app/assets}/images/refinery/icons/page_edit.png +0 -0
  50. data/{public → app/assets}/images/refinery/icons/page_white_edit.png +0 -0
  51. data/{public → app/assets}/images/refinery/icons/page_white_gear.png +0 -0
  52. data/{public → app/assets}/images/refinery/icons/page_white_put.png +0 -0
  53. data/{public → app/assets}/images/refinery/icons/pdf.png +0 -0
  54. data/{public → app/assets}/images/refinery/icons/ppt.png +0 -0
  55. data/{public → app/assets}/images/refinery/icons/star.png +0 -0
  56. data/{public → app/assets}/images/refinery/icons/tick.png +0 -0
  57. data/{public → app/assets}/images/refinery/icons/up.gif +0 -0
  58. data/{public → app/assets}/images/refinery/icons/user_add.png +0 -0
  59. data/{public → app/assets}/images/refinery/icons/user_comment.png +0 -0
  60. data/{public → app/assets}/images/refinery/icons/user_edit.png +0 -0
  61. data/{public → app/assets}/images/refinery/icons/xls.png +0 -0
  62. data/{public → app/assets}/images/refinery/icons/zip.png +0 -0
  63. data/{public → app/assets}/images/refinery/icons/zoom.png +0 -0
  64. data/{public → app/assets}/images/refinery/logo-large.png +0 -0
  65. data/{public → app/assets}/images/refinery/logo-medium.png +0 -0
  66. data/{public → app/assets}/images/refinery/logo-site-bar.png +0 -0
  67. data/{public → app/assets}/images/refinery/logo-small-medium.png +0 -0
  68. data/{public → app/assets}/images/refinery/logo-small.png +0 -0
  69. data/{public → app/assets}/images/refinery/logo-tiny.png +0 -0
  70. data/{public → app/assets}/images/refinery/logo.png +0 -0
  71. data/{public → app/assets}/images/refinery/nav-3-background.gif +0 -0
  72. data/{public → app/assets}/images/refinery/nav_inactive_background.png +0 -0
  73. data/{public → app/assets}/images/refinery/orange_button.png +0 -0
  74. data/{public → app/assets}/images/refinery/page_bg.png +0 -0
  75. data/{public → app/assets}/images/refinery/resolve_digital_footer_logo.png +0 -0
  76. data/{public → app/assets}/images/refinery/text_field_background.png +0 -0
  77. data/{public → app/assets}/images/refinery/tooltip-nib.gif +0 -0
  78. data/{public → app/assets}/images/refinery/tooltip-nib.png +0 -0
  79. data/{public → app/assets}/images/wymeditor/skins/refinery/arrow_redo.png +0 -0
  80. data/{public → app/assets}/images/wymeditor/skins/refinery/arrow_undo.png +0 -0
  81. data/{public → app/assets}/images/wymeditor/skins/refinery/eye.png +0 -0
  82. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/article.png +0 -0
  83. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/aside.png +0 -0
  84. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/blockquote.png +0 -0
  85. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/command.png +0 -0
  86. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/details.png +0 -0
  87. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/figcaption.png +0 -0
  88. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/figure.png +0 -0
  89. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/footer.png +0 -0
  90. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h1.png +0 -0
  91. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h2.png +0 -0
  92. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h3.png +0 -0
  93. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h4.png +0 -0
  94. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h5.png +0 -0
  95. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h6.png +0 -0
  96. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/header.png +0 -0
  97. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/hgroup.png +0 -0
  98. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/mark.png +0 -0
  99. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/meter.png +0 -0
  100. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/nav.png +0 -0
  101. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/p.png +0 -0
  102. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/pre.png +0 -0
  103. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/progress.png +0 -0
  104. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/readme.md +0 -0
  105. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/rp.png +0 -0
  106. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/rt.png +0 -0
  107. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/ruby.png +0 -0
  108. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/section.png +0 -0
  109. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/summary.png +0 -0
  110. data/{public → app/assets}/images/wymeditor/skins/refinery/html5/time.png +0 -0
  111. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-blockquote.png +0 -0
  112. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h1.png +0 -0
  113. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h2.png +0 -0
  114. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h3.png +0 -0
  115. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h4.png +0 -0
  116. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h5.png +0 -0
  117. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h6.png +0 -0
  118. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-p.png +0 -0
  119. data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-pre.png +0 -0
  120. data/{public → app/assets}/images/wymeditor/skins/refinery/link_add.png +0 -0
  121. data/{public → app/assets}/images/wymeditor/skins/refinery/link_break.png +0 -0
  122. data/{public → app/assets}/images/wymeditor/skins/refinery/page_code.png +0 -0
  123. data/{public → app/assets}/images/wymeditor/skins/refinery/page_paste.png +0 -0
  124. data/{public → app/assets}/images/wymeditor/skins/refinery/photo_add.png +0 -0
  125. data/{public → app/assets}/images/wymeditor/skins/refinery/right.png +0 -0
  126. data/{public → app/assets}/images/wymeditor/skins/refinery/style.png +0 -0
  127. data/{public → app/assets}/images/wymeditor/skins/refinery/table_add.png +0 -0
  128. data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_center.png +0 -0
  129. data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_justify.png +0 -0
  130. data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_left.png +0 -0
  131. data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_right.png +0 -0
  132. data/{public → app/assets}/images/wymeditor/skins/refinery/text_bold.png +0 -0
  133. data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_1.png +0 -0
  134. data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_2.png +0 -0
  135. data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_3.png +0 -0
  136. data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_4.png +0 -0
  137. data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_5.png +0 -0
  138. data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_6.png +0 -0
  139. data/{public → app/assets}/images/wymeditor/skins/refinery/text_indent.png +0 -0
  140. data/{public → app/assets}/images/wymeditor/skins/refinery/text_indent_remove.png +0 -0
  141. data/{public → app/assets}/images/wymeditor/skins/refinery/text_italic.png +0 -0
  142. data/{public → app/assets}/images/wymeditor/skins/refinery/text_list_bullets.png +0 -0
  143. data/{public → app/assets}/images/wymeditor/skins/refinery/text_list_numbers.png +0 -0
  144. data/{public → app/assets}/images/wymeditor/skins/refinery/text_paragraph.png +0 -0
  145. data/{public → app/assets}/images/wymeditor/skins/refinery/text_strikethrough.png +0 -0
  146. data/{public → app/assets}/images/wymeditor/skins/refinery/text_subscript.png +0 -0
  147. data/{public → app/assets}/images/wymeditor/skins/refinery/text_superscript.png +0 -0
  148. data/{public → app/assets}/images/wymeditor/skins/refinery/text_underline.png +0 -0
  149. data/{public → app/assets}/images/wymeditor/skins/wymeditor_icon.png +0 -0
  150. data/{public → app/assets}/javascripts/admin.js +1 -2
  151. data/{public → app/assets}/javascripts/application.js +0 -0
  152. data/{public → app/assets}/javascripts/dd_belatedpng.js +0 -0
  153. data/{public → app/assets}/javascripts/jquery/GPL-LICENSE.txt +0 -0
  154. data/{public → app/assets}/javascripts/jquery/MIT-LICENSE.txt +0 -0
  155. data/{public → app/assets}/javascripts/jquery/jquery.corner.js +0 -0
  156. data/{public → app/assets}/javascripts/jquery/jquery.html5-placeholder-shim.js +0 -0
  157. data/{public → app/assets}/javascripts/jquery/jquery.jcarousel.js +0 -0
  158. data/{public → app/assets}/javascripts/jquery/jquery.textTruncate.js +0 -0
  159. data/{public → app/assets}/javascripts/jquery/jquery.timers.js +0 -0
  160. data/app/assets/javascripts/modernizr-min.js +4 -0
  161. data/{public/javascripts/refinery/admin.js → app/assets/javascripts/refinery/admin.js.erb} +121 -209
  162. data/app/assets/javascripts/refinery/ajaxy_pagination.js.coffee +13 -0
  163. data/{public/javascripts/refinery/boot_wym.js → app/assets/javascripts/refinery/boot_wym.js.erb} +8 -8
  164. data/{public → app/assets}/javascripts/refinery/core.js +1 -1
  165. data/app/assets/javascripts/refinery/interface.js.coffee.erb +70 -0
  166. data/app/assets/javascripts/refinery/modal_dialogs.js.erb +142 -0
  167. data/app/assets/javascripts/refinery/nestedsortables.js +356 -0
  168. data/app/assets/javascripts/refinery/refinery.js.erb +20 -0
  169. data/app/assets/javascripts/refinery/serializelist.js +68 -0
  170. data/{public → app/assets}/javascripts/refinery/site_bar.js +0 -0
  171. data/app/assets/javascripts/refinery/sortable_menu.js.coffee +21 -0
  172. data/{public/javascripts/refinery/submenu.js → app/assets/javascripts/refinery/submenu.js.erb} +1 -1
  173. data/app/assets/javascripts/refinery/submit_continue.js.coffee.erb +8 -0
  174. data/app/assets/javascripts/refinery/tree.js +25 -0
  175. data/app/assets/javascripts/refinery/wymeditor.js +37 -0
  176. data/app/assets/javascripts/wymeditor/browsers/ie.js.erb +224 -0
  177. data/app/assets/javascripts/wymeditor/browsers/mozilla.js.erb +293 -0
  178. data/app/assets/javascripts/wymeditor/browsers/opera.js.erb +123 -0
  179. data/app/assets/javascripts/wymeditor/browsers/webkit.js.erb +284 -0
  180. data/app/assets/javascripts/wymeditor/classes.js.erb +1577 -0
  181. data/app/assets/javascripts/wymeditor/functions.js.erb +218 -0
  182. data/{public → app/assets}/javascripts/wymeditor/lang/bg.js +0 -0
  183. data/{public → app/assets}/javascripts/wymeditor/lang/ca.js +0 -0
  184. data/{public → app/assets}/javascripts/wymeditor/lang/cs.js +12 -1
  185. data/{public → app/assets}/javascripts/wymeditor/lang/da.js +0 -0
  186. data/{public → app/assets}/javascripts/wymeditor/lang/de.js +0 -0
  187. data/{public → app/assets}/javascripts/wymeditor/lang/en.js +0 -0
  188. data/{public → app/assets}/javascripts/wymeditor/lang/es.js +0 -0
  189. data/{public → app/assets}/javascripts/wymeditor/lang/fa.js +0 -0
  190. data/{public → app/assets}/javascripts/wymeditor/lang/fi.js +0 -0
  191. data/{public → app/assets}/javascripts/wymeditor/lang/fr.js +13 -1
  192. data/{public → app/assets}/javascripts/wymeditor/lang/he.js +0 -0
  193. data/{public → app/assets}/javascripts/wymeditor/lang/hu.js +0 -0
  194. data/{public → app/assets}/javascripts/wymeditor/lang/it.js +0 -0
  195. data/{public/javascripts/wymeditor/lang/jp.js → app/assets/javascripts/wymeditor/lang/ja.js} +1 -1
  196. data/{public → app/assets}/javascripts/wymeditor/lang/lv.js +0 -0
  197. data/{public → app/assets}/javascripts/wymeditor/lang/nb.js +0 -0
  198. data/{public → app/assets}/javascripts/wymeditor/lang/nl.js +0 -0
  199. data/{public → app/assets}/javascripts/wymeditor/lang/nn.js +0 -0
  200. data/{public → app/assets}/javascripts/wymeditor/lang/pl.js +0 -0
  201. data/app/assets/javascripts/wymeditor/lang/pt-BR.js +58 -0
  202. data/{public → app/assets}/javascripts/wymeditor/lang/pt.js +0 -0
  203. data/{public → app/assets}/javascripts/wymeditor/lang/rs.js +0 -0
  204. data/{public → app/assets}/javascripts/wymeditor/lang/ru.js +14 -3
  205. data/{public → app/assets}/javascripts/wymeditor/lang/sk.js +12 -1
  206. data/{public → app/assets}/javascripts/wymeditor/lang/sl.js +0 -0
  207. data/{public → app/assets}/javascripts/wymeditor/lang/sv.js +0 -0
  208. data/{public → app/assets}/javascripts/wymeditor/lang/tr.js +0 -0
  209. data/{public → app/assets}/javascripts/wymeditor/lang/vi.js +0 -0
  210. data/{public → app/assets}/javascripts/wymeditor/lang/zh_cn.js +0 -0
  211. data/app/assets/javascripts/wymeditor/prototypes.js.erb +1106 -0
  212. data/app/assets/javascripts/wymeditor/setup.js.erb +622 -0
  213. data/{public → app/assets}/javascripts/wymeditor/skins/refinery/skin.js +0 -0
  214. data/app/assets/javascripts/wymeditor/validators.js.erb +776 -0
  215. data/{public/stylesheets/refinery/home.css → app/assets/stylesheets/.gitkeep} +0 -0
  216. data/app/assets/stylesheets/application.css.scss +55 -0
  217. data/{public/stylesheets/refinery/formatting.css → app/assets/stylesheets/formatting.css.scss} +20 -23
  218. data/{public/stylesheets/home.css → app/assets/stylesheets/home.css.scss} +1 -2
  219. data/{public/stylesheets/refinery/refinery.css → app/assets/stylesheets/refinery/refinery.css.scss} +616 -654
  220. data/app/assets/stylesheets/refinery/site_bar.css.scss +92 -0
  221. data/app/assets/stylesheets/refinery/submenu.css.scss +24 -0
  222. data/app/assets/stylesheets/refinery/tooltips.css.scss +34 -0
  223. data/{public/stylesheets/refinery/ui.css → app/assets/stylesheets/refinery/ui.css.scss} +50 -54
  224. data/{public/stylesheets/refinery/theme.css → app/assets/stylesheets/theme.css.scss} +1 -1
  225. data/{public/stylesheets/wymeditor/skins/refinery/skin.css → app/assets/stylesheets/wymeditor/skins/refinery/skin.css.scss} +58 -58
  226. data/{public/stylesheets/wymeditor/skins/refinery/wymiframe.css → app/assets/stylesheets/wymeditor/skins/refinery/wymiframe.css.scss} +29 -29
  227. data/app/controllers/application_controller.rb +0 -1
  228. data/app/controllers/refinery/admin/dialogs_controller.rb +24 -0
  229. data/app/controllers/refinery/admin/refinery_core_controller.rb +14 -0
  230. data/app/controllers/{admin/base_controller.rb → refinery/admin_controller.rb} +2 -3
  231. data/app/controllers/refinery/fast_controller.rb +5 -1
  232. data/app/controllers/refinery/sitemap_controller.rb +20 -0
  233. data/app/helpers/application_helper.rb +1 -1
  234. data/app/helpers/refinery/custom_assets_helper.rb +11 -0
  235. data/app/helpers/refinery/html_truncation_helper.rb +23 -0
  236. data/app/helpers/refinery/image_helper.rb +37 -0
  237. data/app/helpers/refinery/menu_helper.rb +66 -0
  238. data/app/helpers/refinery/meta_helper.rb +52 -0
  239. data/app/helpers/refinery/pagination_helper.rb +14 -0
  240. data/app/helpers/refinery/site_bar_helper.rb +30 -0
  241. data/app/helpers/refinery/tag_helper.rb +20 -0
  242. data/app/helpers/refinery/translation_helper.rb +15 -0
  243. data/app/models/refinery/core/base_model.rb +11 -0
  244. data/app/views/layouts/application.html.erb +9 -9
  245. data/app/views/layouts/refinery/admin.html.erb +23 -0
  246. data/app/views/layouts/refinery/admin_dialog.html.erb +17 -0
  247. data/app/views/layouts/refinery/flash.html.erb +2 -0
  248. data/app/views/refinery/_content_page.html.erb +2 -0
  249. data/app/views/{shared → refinery}/_draft_page_message.html.erb +0 -0
  250. data/app/views/refinery/_footer.html.erb +4 -0
  251. data/app/views/{shared → refinery}/_google_analytics.html.erb +2 -2
  252. data/app/views/refinery/_head.html.erb +18 -0
  253. data/app/views/refinery/_header.html.erb +7 -0
  254. data/app/views/{shared → refinery}/_html_tag.html.erb +0 -0
  255. data/app/views/{shared → refinery}/_ie6check.html.erb +2 -2
  256. data/app/views/{shared → refinery}/_javascripts.html.erb +0 -0
  257. data/app/views/refinery/_menu.html.erb +20 -0
  258. data/app/views/refinery/_menu_branch.html.erb +19 -0
  259. data/app/views/refinery/_message.html.erb +7 -0
  260. data/app/views/{shared → refinery}/_no_script.html.erb +0 -0
  261. data/app/views/{shared → refinery}/_site_bar.html.erb +3 -3
  262. data/app/views/{shared → refinery}/admin/_continue_editing.html.erb +0 -0
  263. data/app/views/refinery/admin/_dialog_success.html.erb +5 -0
  264. data/app/views/{shared → refinery}/admin/_error_messages.html.erb +0 -0
  265. data/app/views/{shared → refinery}/admin/_form_actions.html.erb +11 -15
  266. data/app/views/refinery/admin/_head.html.erb +13 -0
  267. data/app/views/{shared → refinery}/admin/_image_picker.html.erb +8 -7
  268. data/app/views/refinery/admin/_javascripts.html.erb +8 -0
  269. data/app/views/refinery/admin/_make_sortable.html.erb +16 -0
  270. data/app/views/{admin → refinery/admin}/_menu.html.erb +4 -4
  271. data/app/views/{shared → refinery}/admin/_resource_picker.html.erb +14 -23
  272. data/app/views/{shared → refinery}/admin/_search.html.erb +1 -1
  273. data/app/views/{shared → refinery}/admin/_sortable_list.html.erb +0 -0
  274. data/app/views/{shared → refinery}/admin/_tabbed_fields.html.erb +2 -2
  275. data/app/views/{admin → refinery/admin}/dialogs/show.html.erb +0 -0
  276. data/app/views/refinery/sitemap/index.xml.builder +25 -0
  277. data/app/views/{wymiframe.html.erb → refinery/wymiframe.html.erb} +2 -3
  278. data/config/initializers/will_paginate_monkeypatch.rb +21 -0
  279. data/config/locales/bg.yml +24 -29
  280. data/config/locales/cs.yml +20 -25
  281. data/config/locales/da.yml +19 -24
  282. data/config/locales/de.yml +19 -24
  283. data/config/locales/el.yml +19 -24
  284. data/config/locales/en.yml +25 -31
  285. data/config/locales/es.yml +12 -17
  286. data/config/locales/fi.yml +22 -27
  287. data/config/locales/fr.yml +19 -24
  288. data/config/locales/it.yml +19 -40
  289. data/config/locales/{jp.yml → ja.yml} +25 -28
  290. data/config/locales/ko.yml +76 -0
  291. data/config/locales/lt.yml +19 -24
  292. data/config/locales/lv.yml +21 -26
  293. data/config/locales/nb.yml +19 -24
  294. data/config/locales/nl.yml +19 -24
  295. data/config/locales/pl.yml +19 -24
  296. data/config/locales/pt-BR.yml +19 -24
  297. data/config/locales/rs.yml +19 -25
  298. data/config/locales/ru.yml +37 -38
  299. data/config/locales/sk.yml +19 -24
  300. data/config/locales/sl.yml +12 -21
  301. data/config/locales/sv.yml +19 -24
  302. data/config/locales/vi.yml +19 -24
  303. data/config/locales/zh-CN.yml +19 -24
  304. data/config/locales/zh-TW.yml +19 -24
  305. data/config/routes.rb +5 -10
  306. data/lib/generators/refinery/clash_keywords.yml +3 -0
  307. data/lib/generators/refinery/cms/cms_generator.rb +238 -0
  308. data/lib/generators/{templates → refinery/cms/templates}/.gitignore +3 -1
  309. data/lib/generators/refinery/cms/templates/app/decorators/controllers/refinery/.gitkeep +0 -0
  310. data/lib/generators/refinery/cms/templates/app/decorators/models/refinery/.gitkeep +0 -0
  311. data/lib/generators/{templates → refinery/cms/templates}/app/views/sitemap/index.xml.builder +1 -1
  312. data/lib/generators/{templates → refinery/cms/templates}/config/database.yml.mysql +5 -5
  313. data/lib/generators/{templates → refinery/cms/templates}/config/database.yml.postgresql +26 -25
  314. data/lib/generators/{templates → refinery/cms/templates}/config/database.yml.sqlite3 +1 -9
  315. data/lib/generators/refinery/cms/templates/config/initializers/devise.rb +229 -0
  316. data/lib/generators/refinery/core/core_generator.rb +9 -0
  317. data/lib/generators/refinery/core/templates/config/initializers/refinery/core.rb.erb +48 -0
  318. data/lib/generators/refinery/dummy/dummy_generator.rb +86 -0
  319. data/lib/generators/refinery/dummy/templates/rails/Rakefile +7 -0
  320. data/lib/generators/refinery/dummy/templates/rails/application.rb +14 -0
  321. data/lib/generators/refinery/dummy/templates/rails/boot.rb +6 -0
  322. data/lib/generators/refinery/dummy/templates/rails/database.yml +34 -0
  323. data/lib/generators/refinery/dummy/templates/rails/routes.rb +3 -0
  324. data/lib/generators/refinery/engine/USAGE +24 -0
  325. data/lib/generators/refinery/engine/engine_generator.rb +36 -0
  326. data/lib/generators/refinery/engine/templates/Gemfile +69 -0
  327. data/lib/generators/refinery/engine/templates/Guardfile +27 -0
  328. data/lib/generators/refinery/engine/templates/Rakefile +20 -0
  329. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb +14 -0
  330. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/plural_name_controller.rb +34 -0
  331. data/lib/generators/refinery/engine/templates/app/models/refinery/namespace/singular_name.rb +28 -0
  332. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_actions.html.erb +25 -0
  333. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_form.html.erb +67 -0
  334. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_locale_picker.html.erb +11 -0
  335. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_plural_name.html.erb +2 -0
  336. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +18 -0
  337. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +32 -0
  338. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_sortable_list.html.erb +5 -0
  339. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/edit.html.erb +1 -0
  340. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +7 -0
  341. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/new.html.erb +1 -0
  342. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/plural_name/index.html.erb +11 -0
  343. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/plural_name/show.html.erb +39 -0
  344. data/lib/generators/refinery/engine/templates/config/locales/en.yml +28 -0
  345. data/lib/generators/refinery/engine/templates/config/locales/es.yml +29 -0
  346. data/lib/generators/refinery/engine/templates/config/locales/fr.yml +28 -0
  347. data/lib/generators/refinery/engine/templates/config/locales/nb.yml +28 -0
  348. data/lib/generators/refinery/engine/templates/config/locales/nl.yml +28 -0
  349. data/lib/generators/refinery/engine/templates/config/routes.rb +19 -0
  350. data/lib/generators/refinery/engine/templates/db/migrate/1_create_namespace_plural_name.rb +39 -0
  351. data/lib/generators/refinery/engine/templates/db/seeds.rb +23 -0
  352. data/lib/generators/refinery/engine/templates/lib/generators/refinery/extension_plural_name_generator.rb +18 -0
  353. data/lib/generators/refinery/engine/templates/lib/refinery/plural_name/engine.rb +30 -0
  354. data/lib/generators/refinery/engine/templates/lib/refinery/plural_name.rb +21 -0
  355. data/lib/generators/refinery/engine/templates/lib/refinerycms-extension_plural_name.rb +1 -0
  356. data/lib/generators/refinery/engine/templates/lib/tasks/refinery/extension_plural_name.rake +13 -0
  357. data/lib/generators/refinery/engine/templates/readme.md +10 -0
  358. data/lib/generators/refinery/engine/templates/refinerycms-extension_plural_name.gemspec +18 -0
  359. data/lib/generators/refinery/engine/templates/spec/models/refinery/namespace/singular_name_spec.rb +20 -0
  360. data/lib/generators/refinery/engine/templates/spec/requests/refinery/namespace/admin/plural_name_spec.rb +200 -0
  361. data/lib/generators/refinery/engine/templates/spec/spec_helper.rb +50 -0
  362. data/lib/generators/refinery/engine/templates/spec/support/factories/refinery/plural_name.rb +7 -0
  363. data/lib/generators/refinery/engine/templates/tasks/rspec.rake +6 -0
  364. data/lib/generators/refinery/engine/templates/tasks/testing.rake +8 -0
  365. data/lib/generators/refinery/form/USAGE +20 -0
  366. data/lib/generators/refinery/form/form_generator.rb +31 -0
  367. data/lib/generators/refinery/form/templates/.gitkeep +0 -0
  368. data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb +54 -0
  369. data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/admin/settings_controller.rb +51 -0
  370. data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/plural_name_controller.rb +53 -0
  371. data/lib/generators/refinery/form/templates/app/mailers/refinery/namespace/mailer.rb +22 -0
  372. data/lib/generators/refinery/form/templates/app/models/refinery/namespace/setting.rb +34 -0
  373. data/lib/generators/refinery/form/templates/app/models/refinery/namespace/singular_name.rb +46 -0
  374. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +23 -0
  375. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +25 -0
  376. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_submenu.html.erb +29 -0
  377. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +4 -0
  378. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/show.html.erb +52 -0
  379. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/spam.html.erb +26 -0
  380. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/_confirmation_email_form.html.erb +51 -0
  381. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/_notification_recipients_form.html.erb +21 -0
  382. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/edit.html.erb +5 -0
  383. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/mailer/confirmation.html.erb +1 -0
  384. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/mailer/notification.html.erb +17 -0
  385. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/plural_name/new.html.erb +43 -0
  386. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/plural_name/thank_you.html.erb +1 -0
  387. data/lib/generators/refinery/form/templates/config/locales/da.yml +69 -0
  388. data/lib/generators/refinery/form/templates/config/locales/de.yml +78 -0
  389. data/lib/generators/refinery/form/templates/config/locales/en.yml +78 -0
  390. data/lib/generators/refinery/form/templates/config/locales/es.yml +70 -0
  391. data/lib/generators/refinery/form/templates/config/locales/fr.yml +78 -0
  392. data/lib/generators/refinery/form/templates/config/locales/it.yml +68 -0
  393. data/lib/generators/refinery/form/templates/config/locales/lv.yml +77 -0
  394. data/lib/generators/refinery/form/templates/config/locales/nb.yml +78 -0
  395. data/lib/generators/refinery/form/templates/config/locales/nl.yml +77 -0
  396. data/lib/generators/refinery/form/templates/config/locales/pt-BR.yml +78 -0
  397. data/lib/generators/refinery/form/templates/config/locales/ru.yml +80 -0
  398. data/lib/generators/refinery/form/templates/config/locales/sl.yml +69 -0
  399. data/lib/generators/refinery/form/templates/config/locales/zh-CN.yml +4 -0
  400. data/lib/generators/refinery/form/templates/config/routes.rb +26 -0
  401. data/lib/generators/refinery/form/templates/db/migrate/1_create_plural_name.rb +42 -0
  402. data/lib/generators/refinery/form/templates/db/seeds.rb +27 -0
  403. data/lib/generators/refinery/form/templates/lib/generators/refinery/plural_name_generator.rb +20 -0
  404. data/lib/generators/refinery/form/templates/lib/refinery/plural_name/engine.rb +30 -0
  405. data/lib/generators/refinery/form/templates/lib/refinery/plural_name.rb +17 -0
  406. data/lib/generators/refinery/form/templates/lib/refinerycms-plural_name.rb +1 -0
  407. data/lib/generators/refinery/form/templates/refinerycms-plural_name.gemspec +19 -0
  408. data/lib/refinery/activity.rb +75 -18
  409. data/lib/refinery/admin/base_controller.rb +49 -66
  410. data/lib/refinery/application_controller.rb +59 -79
  411. data/lib/refinery/base_presenter.rb +25 -23
  412. data/lib/refinery/catch_all_routes.rb +1 -1
  413. data/lib/refinery/cli.rb +162 -0
  414. data/lib/refinery/core/configuration.rb +57 -0
  415. data/lib/refinery/core/engine.rb +143 -0
  416. data/lib/refinery/core.rb +179 -0
  417. data/lib/refinery/crud.rb +74 -54
  418. data/lib/refinery/engine.rb +56 -12
  419. data/lib/refinery/errors.rb +13 -0
  420. data/lib/refinery/ext/action_view/helpers/form_builder.rb +7 -0
  421. data/lib/refinery/ext/action_view/helpers/form_helper.rb +20 -0
  422. data/lib/refinery/ext/action_view/helpers/form_tag_helper.rb +10 -0
  423. data/lib/refinery/extension_generation.rb +258 -0
  424. data/lib/refinery/menu.rb +0 -19
  425. data/lib/refinery/menu_item.rb +32 -14
  426. data/lib/refinery/plugin.rb +19 -43
  427. data/lib/refinery/plugins.rb +2 -2
  428. data/lib/refinery/version.rb +16 -0
  429. data/lib/refinerycms-core.rb +1 -175
  430. data/lib/tasks/refinery.rake +2 -191
  431. data/lib/tasks/yard.rake +1 -1
  432. data/refinerycms-core.gemspec +23 -422
  433. data/spec/controllers/refinery/admin/refinery_core_controller_spec.rb +20 -0
  434. data/spec/controllers/{fast_controller_spec.rb → refinery/fast_controller_spec.rb} +3 -1
  435. data/spec/controllers/refinery/sitemap_controller_spec.rb +28 -0
  436. data/spec/helpers/refinery/custom_assets_helper_spec.rb +53 -0
  437. data/spec/helpers/refinery/html_truncation_helper_spec.rb +26 -0
  438. data/spec/helpers/refinery/pagination_helper_spec.rb +35 -0
  439. data/spec/helpers/refinery/tag_helper_spec.rb +23 -0
  440. data/spec/helpers/refinery/translation_helper_spec.rb +14 -0
  441. data/spec/lib/generators/refinery/cms/cms_generator_spec.rb +47 -0
  442. data/spec/lib/generators/refinery/core/core_generator_spec.rb +29 -0
  443. data/spec/lib/generators/refinery/engine/engine_generator_spec.rb +84 -0
  444. data/spec/lib/generators/refinery/engine/engine_generator_with_i18n_spec.rb +85 -0
  445. data/spec/lib/generators/refinery/engine/engine_generator_without_frontend_spec.rb +77 -0
  446. data/spec/lib/generators/refinery/form/form_generator_spec.rb +91 -0
  447. data/spec/lib/refinery/activity_spec.rb +38 -0
  448. data/spec/lib/refinery/application_controller_spec.rb +28 -0
  449. data/spec/lib/refinery/core_spec.rb +176 -0
  450. data/spec/lib/refinery/plugin_spec.rb +36 -34
  451. data/spec/lib/refinery/plugins_spec.rb +42 -16
  452. data/spec/requests/refinery/admin/custom_assets_spec.rb +32 -0
  453. data/spec/requests/refinery/admin/dialogs_spec.rb +28 -0
  454. data/spec/requests/refinery/search_spec.rb +71 -0
  455. data/spec/requests/refinery/site_bar_spec.rb +49 -0
  456. data/spec/support/background_selenium_firefox_driver.rb +14 -0
  457. data/spec/support/database_cleaner.rb +15 -0
  458. data/spec/support/fixtures/invalid_engine.rb +6 -0
  459. data/spec/support/fixtures/valid_engine.rb +13 -0
  460. data/spec/support/refinery.rb +14 -0
  461. metadata +626 -439
  462. data/app/controllers/admin/dialogs_controller.rb +0 -23
  463. data/app/controllers/admin/refinery_core_controller.rb +0 -12
  464. data/app/controllers/sitemap_controller.rb +0 -18
  465. data/app/views/admin/_head.html.erb +0 -21
  466. data/app/views/admin/_javascripts.html.erb +0 -33
  467. data/app/views/layouts/admin.html.erb +0 -24
  468. data/app/views/layouts/admin_dialog.html.erb +0 -14
  469. data/app/views/shared/_content_page.html.erb +0 -63
  470. data/app/views/shared/_footer.html.erb +0 -4
  471. data/app/views/shared/_head.html.erb +0 -20
  472. data/app/views/shared/_header.html.erb +0 -7
  473. data/app/views/shared/_menu.html.erb +0 -19
  474. data/app/views/shared/_menu_branch.html.erb +0 -19
  475. data/app/views/shared/_message.html.erb +0 -10
  476. data/app/views/shared/admin/_make_sortable.html.erb +0 -13
  477. data/app/views/welcome.html.erb +0 -17
  478. data/config/locales/lolcat.yml +0 -71
  479. data/doc/included-jquery-ui-packages.jpg +0 -0
  480. data/features/dialogs.feature +0 -20
  481. data/features/search.feature +0 -55
  482. data/features/site_bar.feature +0 -27
  483. data/features/step_definitions/core_steps.rb +0 -59
  484. data/features/support/paths.rb +0 -18
  485. data/features/uploads/beach.jpeg +0 -0
  486. data/features/uploads/refinery_is_awesome.txt +0 -1
  487. data/lib/gemspec.rb +0 -44
  488. data/lib/generators/refinerycms_generator.rb +0 -124
  489. data/lib/generators/templates/autotest/autotest.rb +0 -17
  490. data/lib/generators/templates/autotest/discover.rb +0 -2
  491. data/lib/generators/templates/config/initializers/devise.rb +0 -144
  492. data/lib/generators/templates/db/seeds.rb +0 -5
  493. data/lib/refinery/admin_base_controller.rb +0 -5
  494. data/lib/refinery/application.rb +0 -47
  495. data/lib/refinery/application_helper.rb +0 -19
  496. data/lib/refinery/configuration.rb +0 -29
  497. data/lib/refinery/helpers/form_helper.rb +0 -66
  498. data/lib/refinery/helpers/head_helper.rb +0 -17
  499. data/lib/refinery/helpers/html_truncation_helper.rb +0 -25
  500. data/lib/refinery/helpers/image_helper.rb +0 -42
  501. data/lib/refinery/helpers/menu_helper.rb +0 -98
  502. data/lib/refinery/helpers/meta_helper.rb +0 -78
  503. data/lib/refinery/helpers/pagination_helper.rb +0 -16
  504. data/lib/refinery/helpers/script_helper.rb +0 -36
  505. data/lib/refinery/helpers/site_bar_helper.rb +0 -32
  506. data/lib/refinery/helpers/tag_helper.rb +0 -22
  507. data/lib/refinery/helpers/translation_helper.rb +0 -17
  508. data/lib/tasks/doc.rake +0 -29
  509. data/public/javascripts/i18n-messages.js +0 -2
  510. data/public/javascripts/jquery-min.js +0 -16
  511. data/public/javascripts/jquery-ui-custom-min.js +0 -252
  512. data/public/javascripts/jquery.js +0 -8374
  513. data/public/javascripts/modernizr-min.js +0 -2
  514. data/public/javascripts/rails.js +0 -297
  515. data/public/javascripts/refinery/i18n.js +0 -340
  516. data/public/javascripts/refinery/nestedsortables.js +0 -164
  517. data/public/javascripts/refinery/serializelist.js +0 -66
  518. data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +0 -5262
  519. data/public/javascripts/wymeditor/lang/pt-BR.js +0 -47
  520. data/public/stylesheets/application.css +0 -4
  521. data/public/stylesheets/formatting.css +0 -4
  522. data/public/stylesheets/refinery/application.css +0 -76
  523. data/public/stylesheets/refinery/site_bar.css +0 -87
  524. data/public/stylesheets/refinery/submenu.css +0 -22
  525. data/public/stylesheets/refinery/tooltips.css +0 -34
  526. data/public/stylesheets/theme.css +0 -4
  527. data/spec/controllers/refinery_core_controller_spec.rb +0 -18
  528. data/spec/controllers/sitemap_controller_spec.rb +0 -27
@@ -5,93 +5,76 @@ module Refinery
5
5
  module Admin
6
6
  module BaseController
7
7
 
8
- def self.included(controller)
9
- controller.send :include, ::Refinery::Admin::BaseController::InstanceMethods
10
- controller.send :include, ::Refinery::Admin::BaseController::ClassMethods
11
- end
8
+ extend ActiveSupport::Concern
12
9
 
13
- module ClassMethods
14
- def self.included(c)
15
- c.layout :layout?
10
+ included do
11
+ layout :layout?
16
12
 
17
- c.before_filter :authenticate_user!, :restrict_plugins, :restrict_controller
18
- c.after_filter :store_location?, :except => [:new, :create, :edit, :update, :destroy, :update_positions] # for redirect_back_or_default
13
+ before_filter :authenticate_refinery_user!, :restrict_plugins, :restrict_controller
14
+ after_filter :store_location?, :except => [:new, :create, :edit, :update, :destroy, :update_positions] # for redirect_back_or_default
19
15
 
20
- c.helper_method :searching?, :group_by_date
21
- end
16
+ helper_method :searching?, :group_by_date
22
17
  end
23
18
 
24
- module InstanceMethods
25
- def admin?
26
- true # we're in the admin base controller, so always true.
27
- end
28
-
29
- def searching?
30
- params[:search].present?
31
- end
32
-
33
- def error_404(exception=nil)
34
- # fallback to the default 404.html page.
35
- render :file => Rails.root.join("public", "404.html").cleanpath.to_s,
36
- :layout => false,
37
- :status => 404
38
- end
19
+ def admin?
20
+ true # we're in the admin base controller, so always true.
21
+ end
39
22
 
40
- protected
23
+ def searching?
24
+ params[:search].present?
25
+ end
41
26
 
42
- def group_by_date(records)
43
- new_records = []
27
+ protected
44
28
 
45
- records.each do |record|
46
- key = record.created_at.strftime("%Y-%m-%d")
47
- record_group = new_records.collect{|records| records.last if records.first == key }.flatten.compact << record
48
- (new_records.delete_if {|i| i.first == key}) << [key, record_group]
49
- end
29
+ def group_by_date(records)
30
+ new_records = []
50
31
 
51
- new_records
32
+ records.each do |record|
33
+ key = record.created_at.strftime("%Y-%m-%d")
34
+ record_group = new_records.collect{|records| records.last if records.first == key }.flatten.compact << record
35
+ (new_records.delete_if {|i| i.first == key}) << [key, record_group]
52
36
  end
53
37
 
54
- def restrict_plugins
55
- current_length = (plugins = current_user.authorized_plugins).length
56
-
57
- # Superusers get granted access if they don't already have access.
58
- if current_user.has_role?(:superuser)
59
- if (plugins = plugins | ::Refinery::Plugins.registered.names).length > current_length
60
- current_user.plugins = plugins
61
- end
62
- end
38
+ new_records
39
+ end
63
40
 
64
- Refinery::Plugins.set_active(plugins)
65
- end
41
+ def restrict_plugins
42
+ current_length = (plugins = current_refinery_user.authorized_plugins).length
66
43
 
67
- def restrict_controller
68
- if Refinery::Plugins.active.reject { |plugin| params[:controller] !~ Regexp.new(plugin.menu_match)}.empty?
69
- warn "'#{current_user.username}' tried to access '#{params[:controller]}' but was rejected."
70
- error_404
44
+ # Superusers get granted access if they don't already have access.
45
+ if current_refinery_user.has_role?(:superuser)
46
+ if (plugins = plugins | ::Refinery::Plugins.registered.names).length > current_length
47
+ current_refinery_user.plugins = plugins
71
48
  end
72
49
  end
73
50
 
74
- # Override method from application_controller. Not needed in this controller.
75
- def find_pages_for_menu; end
51
+ ::Refinery::Plugins.set_active(plugins)
52
+ end
76
53
 
77
- private
78
- def layout?
79
- "admin#{"_dialog" if from_dialog?}"
80
- end
54
+ def restrict_controller
55
+ # if ::Refinery::Plugins.active.reject { |plugin| params[:controller] !~ Regexp.new(plugin.menu_match)}.empty?
56
+ # warn "'#{current_refinery_user.username}' tried to access '#{params[:controller]}' but was rejected."
57
+ # error_404
58
+ # end
59
+ end
81
60
 
82
- # Check whether it makes sense to return the user to the last page they
83
- # were at instead of the default e.g. admin_pages_url
84
- # right now we just want to snap back to index actions and definitely not to dialogues.
85
- def store_location?
86
- store_location unless action_name !~ /index/ or request.xhr? or from_dialog?
87
- end
61
+ private
88
62
 
89
- # Override authorized? so that only users with the Refinery role can admin the website.
90
- def authorized?
91
- refinery_user?
92
- end
63
+ def layout?
64
+ "refinery/admin#{"_dialog" if from_dialog?}"
93
65
  end
94
66
 
67
+ # Check whether it makes sense to return the user to the last page they
68
+ # were at instead of the default e.g. refinery_admin_pages_path
69
+ # right now we just want to snap back to index actions and definitely not to dialogues.
70
+ def store_location?
71
+ store_location unless action_name !~ /index/ or request.xhr? or from_dialog?
72
+ end
73
+
74
+ # Override authorized? so that only users with the Refinery role can admin the website.
75
+ def authorized?
76
+ refinery_user?
77
+ end
95
78
  end
96
79
  end
97
80
  end
@@ -1,106 +1,86 @@
1
- require 'action_controller'
2
- # require application helper so that we can include our helpers into it.
3
- if defined?(Rails) and !Rails.root.nil?
4
- if (app_helper = Rails.root.join('app', 'helpers', 'application_helper.rb')).file?
5
- require app_helper.to_s
6
- end
7
- end
8
-
9
1
  module Refinery
10
2
  module ApplicationController
11
3
 
12
- def self.included(controller)
13
- controller.send :include, ::Refinery::ApplicationController::InstanceMethods
14
- controller.send :include, ::Refinery::ApplicationController::ClassMethods
15
- end
4
+ extend ActiveSupport::Concern
16
5
 
17
- module ClassMethods
18
- def self.included(c) # Extend controller
19
- c.helper_method :home_page?,
20
- :local_request?,
21
- :just_installed?,
22
- :from_dialog?,
23
- :admin?,
24
- :login?
6
+ included do # Extend controller
7
+ helper_method :home_page?,
8
+ :local_request?,
9
+ :just_installed?,
10
+ :from_dialog?,
11
+ :admin?,
12
+ :login?
25
13
 
26
- c.protect_from_forgery # See ActionController::RequestForgeryProtection
14
+ protect_from_forgery # See ActionController::RequestForgeryProtection
27
15
 
28
- c.send :include, ::Refinery::Crud # basic create, read, update and delete methods
16
+ send :include, Refinery::Crud # basic create, read, update and delete methods
29
17
 
30
- c.send :before_filter, :find_pages_for_menu,
31
- :show_welcome_page?
18
+ send :before_filter, :refinery_user_required?
32
19
 
33
- c.send :after_filter, :store_current_location!,
34
- :if => Proc.new {|c| c.send(:refinery_user?) rescue false }
20
+ send :after_filter, :store_current_location!,
21
+ :if => Proc.new {|c| send(:refinery_user?) }
35
22
 
36
- if Refinery.rescue_not_found
37
- c.send :rescue_from, ActiveRecord::RecordNotFound,
38
- ActionController::UnknownAction,
39
- ActionView::MissingTemplate,
40
- :with => :error_404
41
- end
23
+ if Refinery::Core.rescue_not_found
24
+ send :rescue_from, ActiveRecord::RecordNotFound,
25
+ ActionController::UnknownAction,
26
+ ActionView::MissingTemplate,
27
+ :with => :error_404
42
28
  end
43
29
  end
44
30
 
45
- module InstanceMethods
46
- def admin?
47
- controller_name =~ %r{^admin/}
48
- end
31
+ def admin?
32
+ controller_name =~ %r{^admin/}
33
+ end
49
34
 
50
- def error_404(exception=nil)
51
- # fallback to the default 404.html page.
52
- file = Rails.root.join('public', '404.html')
53
- file = Refinery.roots('core').join('public', '404.html') unless file.exist?
54
- render :file => file.cleanpath.to_s,
55
- :layout => false,
56
- :status => 404
57
- end
35
+ def error_404(exception=nil)
36
+ # fallback to the default 404.html page.
37
+ file = Rails.root.join('public', '404.html')
38
+ file = Refinery.roots(:'refinery/core').join('public', '404.html') unless file.exist?
39
+ render :file => file.cleanpath.to_s.gsub(%r{#{file.extname}$}, ''),
40
+ :layout => false, :status => 404, :formats => [:html]
41
+ return false
42
+ end
58
43
 
59
- def from_dialog?
60
- params[:dialog] == 'true' or params[:modal] == 'true'
61
- end
44
+ def from_dialog?
45
+ params[:dialog] == 'true' or params[:modal] == 'true'
46
+ end
62
47
 
63
- def home_page?
64
- root_path =~ /^#{request.path}\/?/
65
- end
48
+ def home_page?
49
+ refinery.root_path =~ /^#{Regexp.escape(request.path.sub("//", "/"))}\/?/
50
+ end
66
51
 
67
- def just_installed?
68
- Role[:refinery].users.empty?
69
- end
52
+ def just_installed?
53
+ Refinery::Role[:refinery].users.empty?
54
+ end
70
55
 
71
- def local_request?
72
- Rails.env.development? or request.remote_ip =~ /(::1)|(127.0.0.1)|((192.168).*)/
73
- end
56
+ def local_request?
57
+ Rails.env.development? or request.remote_ip =~ /(::1)|(127.0.0.1)|((192.168).*)/
58
+ end
74
59
 
75
- def login?
76
- (controller_name =~ /^(user|session)(|s)/ and not admin?) or just_installed?
77
- end
60
+ def login?
61
+ (controller_name =~ /^(user|session)(|s)/ and not admin?) or just_installed?
62
+ end
78
63
 
79
- protected
64
+ protected
80
65
 
81
- # get all the pages to be displayed in the site menu.
82
- def find_pages_for_menu
83
- raise NotImplementedError, 'Please implement protected method find_pages_for_menu'
84
- end
66
+ # use a different model for the meta information.
67
+ def present(model)
68
+ presenter = (Object.const_get("#{model.class}Presenter") rescue ::Refinery::BasePresenter)
69
+ @meta = presenter.new(model)
70
+ end
85
71
 
86
- # use a different model for the meta information.
87
- def present(model)
88
- presenter = (Object.const_get("#{model.class}Presenter") rescue ::Refinery::BasePresenter)
89
- @meta = presenter.new(model)
72
+ def refinery_user_required?
73
+ if just_installed? and controller_name != 'users'
74
+ redirect_to refinery.new_refinery_user_registration_path
90
75
  end
76
+ end
91
77
 
92
- def show_welcome_page?
93
- if just_installed? and controller_name != 'users'
94
- render :template => '/welcome', :layout => 'login'
95
- end
96
- end
78
+ private
97
79
 
98
- private
99
- def store_current_location!
100
- if admin? and request.get? and !request.xhr? and !from_dialog?
101
- # ensure that we don't redirect to AJAX or POST/PUT/DELETE urls
102
- session[:refinery_return_to] = request.path
103
- end
80
+ def store_current_location!
81
+ if admin? and request.get? and !request.xhr? and !from_dialog?
82
+ # ensure that we don't redirect to AJAX or POST/PUT/DELETE urls
83
+ session[:refinery_return_to] = request.path.sub('//', '/')
104
84
  end
105
85
  end
106
86
  end
@@ -1,31 +1,33 @@
1
- class Refinery::BasePresenter
1
+ module Refinery
2
+ class BasePresenter
2
3
 
3
- DEFAULT_FIELDS = {
4
- :title => Proc.new { |p| (p.model.class.name.titleize if p.model.present?) },
5
- :path => Proc.new { |p| p.title },
6
- :browser_title => nil,
7
- :meta_description => nil,
8
- :meta_keywords => nil
9
- }
4
+ DEFAULT_FIELDS = {
5
+ :title => proc { |p| (p.model.class.name.titleize if p.model.present?) },
6
+ :path => proc { |p| p.title },
7
+ :browser_title => nil,
8
+ :meta_description => nil,
9
+ :meta_keywords => nil
10
+ }
10
11
 
11
- attr_reader :model
12
+ attr_reader :model
12
13
 
13
- def initialize(obj)
14
- @model = obj
15
- end
14
+ def initialize(obj)
15
+ @model = obj
16
+ end
16
17
 
17
- def method_missing(method, *args)
18
- if @model.respond_to? method
19
- @model.send method
20
- elsif DEFAULT_FIELDS.has_key? method
21
- (value = DEFAULT_FIELDS[method]).is_a?(Proc) ? value.call(self) : value
22
- else
23
- raise NoMethodError.new("#{self.class.name} doesn't know #{method}. Define or delegate it.", method)
18
+ def method_missing(method, *args)
19
+ if @model.respond_to? method
20
+ @model.send method
21
+ elsif DEFAULT_FIELDS.has_key? method
22
+ (value = DEFAULT_FIELDS[method]).is_a?(Proc) ? value.call(self) : value
23
+ else
24
+ raise NoMethodError.new("#{self.class.name} doesn't know #{method}. Define or delegate it.", method)
25
+ end
24
26
  end
25
- end
26
27
 
27
- def respond_to?(method)
28
- super || @model.respond_to?(method) || DEFAULT_FIELDS.has_key?(method)
29
- end
28
+ def respond_to?(method)
29
+ super || @model.respond_to?(method) || DEFAULT_FIELDS.has_key?(method)
30
+ end
30
31
 
32
+ end
31
33
  end
@@ -1,3 +1,3 @@
1
- ::Refinery::Application.routes.draw do
1
+ Refinery::Core::Engine.routes.append do
2
2
  match '/refinery/*path' => 'admin/base#error_404'
3
3
  end
@@ -0,0 +1,162 @@
1
+ require 'thor'
2
+
3
+ module Refinery
4
+ class CLI < Thor
5
+ include Thor::Actions
6
+
7
+ desc "override", "copies files from any Refinery extension that you are using into your application"
8
+ def override(env)
9
+ if (view = env["view"]).present?
10
+ pattern = "{refinery#{File::SEPARATOR},}#{view.split("/").join(File::SEPARATOR)}*.{erb,builder}"
11
+ looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "views", pattern).to_s}
12
+
13
+ # copy in the matches
14
+ if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
15
+ matches.each do |match|
16
+ dir = match.split("/app/views/").last.split('/')
17
+ file = dir.pop # get rid of the file.
18
+ dir = dir.join(File::SEPARATOR) # join directory back together
19
+
20
+ destination_dir = Rails.root.join("app", "views", dir)
21
+ FileUtils.mkdir_p(destination_dir)
22
+ FileUtils.cp match, (destination = File.join(destination_dir, file))
23
+
24
+ puts "Copied view template file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
25
+ end
26
+ else
27
+ puts "Couldn't match any view template files in any extensions like #{view}"
28
+ end
29
+ elsif (controller = env["controller"]).present?
30
+ pattern = "{refinery#{File::SEPARATOR},}#{controller.split("/").join(File::SEPARATOR)}*.rb"
31
+ looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "controllers", pattern).to_s}
32
+
33
+ # copy in the matches
34
+ if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
35
+ matches.each do |match|
36
+ dir = match.split("/app/controllers/").last.split('/')
37
+ file = dir.pop # get rid of the file.
38
+ dir = dir.join(File::SEPARATOR) # join directory back together
39
+
40
+ destination_dir = Rails.root.join("app", "controllers", dir)
41
+ FileUtils.mkdir_p(destination_dir)
42
+ FileUtils.cp match, (destination = File.join(destination_dir, file))
43
+
44
+ puts "Copied controller file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
45
+ end
46
+ else
47
+ puts "Couldn't match any controller files in any extensions like #{controller}"
48
+ end
49
+ elsif (model = env["model"]).present?
50
+ pattern = "{refinery#{File::SEPARATOR},}#{model.split("/").join(File::SEPARATOR)}*.rb"
51
+ looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "models", pattern).to_s}
52
+
53
+ # copy in the matches
54
+ if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
55
+ matches.each do |match|
56
+ dir = match.split("/app/models/").last.split('/')
57
+ file = dir.pop # get rid of the file.
58
+ dir = dir.join(File::SEPARATOR) # join directory back together
59
+
60
+ destination_dir = Rails.root.join("app", "models", dir)
61
+ FileUtils.mkdir_p(destination_dir)
62
+ FileUtils.cp match, (destination = File.join(destination_dir, file))
63
+
64
+ puts "Copied model file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
65
+ end
66
+ else
67
+ puts "Couldn't match any model files in any extensions like #{model}"
68
+ end
69
+ elsif (javascripts = env["javascript"]).present?
70
+ pattern = "#{javascripts.split("/").join(File::SEPARATOR)}*.js"
71
+ looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "assets", "javascripts", pattern).to_s}
72
+
73
+ # copy in the matches
74
+ if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
75
+ matches.each do |match|
76
+ dir = match.split("/app/assets/javascripts/").last.split('/')
77
+ file = dir.pop # get rid of the file.
78
+ dir = dir.join(File::SEPARATOR) # join directory back together
79
+
80
+ destination_dir = Rails.root.join("app", "assets", "javascripts", dir)
81
+ FileUtils.mkdir_p(destination_dir)
82
+ FileUtils.cp match, (destination = File.join(destination_dir, file))
83
+
84
+ puts "Copied javascript file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
85
+ end
86
+ else
87
+ puts "Couldn't match any javascript files in any extensions like #{javascripts}"
88
+ end
89
+ elsif (stylesheets = env["stylesheet"]).present?
90
+ pattern = "#{stylesheets.split("/").join(File::SEPARATOR)}*.css.scss"
91
+ looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "assets", "stylesheets", pattern).to_s}
92
+
93
+ # copy in the matches
94
+ if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
95
+ matches.each do |match|
96
+ dir = match.split("/app/assets/stylesheets/").last.split('/')
97
+ file = dir.pop # get rid of the file.
98
+ dir = dir.join(File::SEPARATOR) # join directory back together
99
+
100
+ destination_dir = Rails.root.join("app", "assets", "stylesheets", dir)
101
+ FileUtils.mkdir_p(destination_dir)
102
+ FileUtils.cp match, (destination = File.join(destination_dir, file))
103
+
104
+ puts "Copied stylesheet file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
105
+ end
106
+ else
107
+ puts "Couldn't match any stylesheet files in any extensions like #{stylesheets}"
108
+ end
109
+ else
110
+ puts "You didn't specify anything to override. Here are some examples:"
111
+ {
112
+ :view => ['pages/home', 'refinery/pages/home', '**/*menu', '_menu_branch'],
113
+ :javascript => %w(admin refinery/site_bar),
114
+ :stylesheet => %w(home refinery/site_bar),
115
+ :controller => %w(pages),
116
+ :model => %w(page refinery/page)
117
+ }.each do |type, examples|
118
+ examples.each do |example|
119
+ puts "rake refinery:override #{type}=#{example}"
120
+ end
121
+ end
122
+ end
123
+
124
+ end
125
+
126
+ desc "uncrudify", "shows you the code that your controller using crudify is running for a given action"
127
+ def uncrudify(controller, action)
128
+ unless (controller_name = controller).present? and (action = action).present?
129
+ abort <<-HELPDOC.strip_heredoc
130
+ You didn't specify anything to uncrudify. Here's some examples:
131
+ rake refinery:uncrudify controller=refinery/admin/pages action=create
132
+ rake refinery:uncrudify controller=products action=new
133
+ HELPDOC
134
+ end
135
+
136
+ controller_class_name = "#{controller_name}_controller".classify
137
+ begin
138
+ controller_class = controller_class_name.constantize
139
+ rescue NameError
140
+ abort "#{controller_class_name} is not defined"
141
+ end
142
+
143
+ crud_lines = Refinery.roots(:'refinery/core').join('lib', 'refinery', 'crud.rb').read
144
+ if (matches = crud_lines.scan(/(\ +)(def #{action}.+?protected)/m).first).present? and
145
+ (method_lines = "#{matches.last.split(%r{^#{matches.first}end}).first.strip}\nend".split("\n")).many?
146
+ indent = method_lines.second.index(%r{[^ ]})
147
+ crud_method = method_lines.join("\n").gsub(/^#{" " * indent}/, " ")
148
+
149
+ crud_options = controller_class.try(:crudify_options) || {}
150
+ crud_method.gsub!('#{options[:redirect_to_url]}', crud_options[:redirect_to_url].to_s)
151
+ crud_method.gsub!('#{options[:conditions].inspect}', crud_options[:conditions].inspect)
152
+ crud_method.gsub!('#{options[:title_attribute]}', crud_options[:title_attribute])
153
+ crud_method.gsub!('#{singular_name}', crud_options[:singular_name])
154
+ crud_method.gsub!('#{class_name}', crud_options[:class_name])
155
+ crud_method.gsub!('#{plural_name}', crud_options[:plural_name])
156
+ crud_method.gsub!('\\#{', '#{')
157
+
158
+ puts crud_method
159
+ end
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,57 @@
1
+ module Refinery
2
+ module Core
3
+ include ActiveSupport::Configurable
4
+
5
+ config_accessor :rescue_not_found, :s3_backend, :base_cache_key, :site_name,
6
+ :google_analytics_page_code, :authenticity_token_on_frontend,
7
+ :menu_hide_children, :menu_css, :dragonfly_secret, :ie6_upgrade_message_enabled,
8
+ :show_internet_explorer_upgrade_message, :wymeditor_whitelist_tags,
9
+ :javascripts, :stylesheets, :s3_bucket_name, :s3_region, :s3_access_key_id,
10
+ :s3_secret_access_key
11
+
12
+ self.rescue_not_found = false
13
+ self.s3_backend = false
14
+ self.base_cache_key = :refinery
15
+ self.site_name = "Company Name"
16
+ self.google_analytics_page_code = "UA-xxxxxx-x"
17
+ self.authenticity_token_on_frontend = true
18
+ self.menu_hide_children = false
19
+ self.menu_css = { :selected => "selected", :first => "first", :last => "last" }
20
+ self.dragonfly_secret = Array.new(24) { rand(256) }.pack('C*').unpack('H*').first
21
+ self.ie6_upgrade_message_enabled = true
22
+ self.show_internet_explorer_upgrade_message = false
23
+ self.wymeditor_whitelist_tags = {}
24
+ self.javascripts = []
25
+ self.stylesheets = []
26
+ self.s3_bucket_name = ENV['S3_BUCKET']
27
+ self.s3_region = ENV['S3_REGION']
28
+ self.s3_access_key_id = ENV['S3_KEY']
29
+ self.s3_secret_access_key = ENV['S3_SECRET']
30
+
31
+ def config.register_javascript(name)
32
+ self.javascripts << name
33
+ end
34
+
35
+ def config.register_stylesheet(*args)
36
+ self.stylesheets << Stylesheet.new(*args)
37
+ end
38
+
39
+ def self.clear_javascripts!
40
+ self.javascripts = []
41
+ end
42
+
43
+ def self.clear_stylesheets!
44
+ self.stylesheets = []
45
+ end
46
+
47
+ # wrapper for stylesheet registration
48
+ class Stylesheet
49
+ attr_reader :options, :path
50
+ def initialize(*args)
51
+ @options = args.extract_options!
52
+ @path = args.first if args.first
53
+ end
54
+ end
55
+
56
+ end
57
+ end