refinerycms-core 1.0.11 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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