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
@@ -0,0 +1,143 @@
1
+ module Refinery
2
+ module Core
3
+ class Engine < ::Rails::Engine
4
+ include Refinery::Engine
5
+
6
+ isolate_namespace Refinery
7
+ engine_name :refinery
8
+
9
+ class << self
10
+ # Require/load (based on Rails app.config) all decorators from app/decorators/
11
+ # and from registered plugins' paths too.
12
+ def load_decorators
13
+ [Rails.root, Refinery::Plugins.registered.pathnames].flatten.map { |p|
14
+ Dir[p.join('app', 'decorators', '**', '*_decorator.rb')]
15
+ }.flatten.uniq.each do |decorator|
16
+ Rails.application.config.cache_classes ? require(decorator) : load(decorator)
17
+ end
18
+ end
19
+
20
+ # Performs the Refinery inclusion process which extends the currently loaded Rails
21
+ # applications with Refinery's controllers and helpers. The process is wrapped by
22
+ # a before_inclusion and after_inclusion step that calls procs registered by the
23
+ # Refinery::Engine#before_inclusion and Refinery::Engine#after_inclusion class methods
24
+ def refinery_inclusion!
25
+ before_inclusion_procs.each(&:call)
26
+
27
+ [::ApplicationController, Refinery::AdminController].each do |c|
28
+ c.send :include, Refinery::ApplicationController
29
+ c.send :helper, Refinery::Core::Engine.helpers
30
+ end
31
+
32
+ [Refinery::UsersController, Refinery::SessionsController, Refinery::PasswordsController].each do |c|
33
+ c.send :helper, Refinery::Core::Engine.helpers
34
+ end
35
+
36
+ Refinery::AdminController.send :include, Refinery::Admin::BaseController
37
+
38
+ after_inclusion_procs.each(&:call)
39
+ end
40
+ end
41
+
42
+ config.autoload_paths += %W( #{config.root}/lib )
43
+
44
+ # We can't reload the base class because otherwise in development mode
45
+ # we lose any configuration that is applied to it like macros for Dragonfly.
46
+ config.autoload_once_paths += %W( #{config.root}/app/models/refinery/core )
47
+
48
+ # Include the refinery controllers and helpers dynamically
49
+ config.to_prepare &method(:refinery_inclusion!).to_proc
50
+
51
+ after_inclusion &method(:load_decorators).to_proc
52
+
53
+ # Wrap errors in spans
54
+ config.to_prepare do
55
+ ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
56
+ "<span class=\"fieldWithErrors\">#{html_tag}</span>".html_safe
57
+ end
58
+ end
59
+
60
+ initializer "refinery.will_paginate" do
61
+ WillPaginate.per_page = 20
62
+ end
63
+
64
+ initializer "register refinery_core plugin" do
65
+ Refinery::Plugin.register do |plugin|
66
+ plugin.pathname = root
67
+ plugin.name = 'refinery_core'
68
+ plugin.class_name = 'RefineryEngine'
69
+ plugin.version = Refinery.version
70
+ plugin.hide_from_menu = true
71
+ plugin.always_allow_access = true
72
+ plugin.menu_match = /refinery\/(refinery_core)$/
73
+ end
74
+ end
75
+
76
+ initializer "register refinery_dialogs plugin" do
77
+ Refinery::Plugin.register do |plugin|
78
+ plugin.pathname = root
79
+ plugin.name = 'refinery_dialogs'
80
+ plugin.version = Refinery.version
81
+ plugin.hide_from_menu = true
82
+ plugin.always_allow_access = true
83
+ plugin.menu_match = /refinery\/(refinery_)?dialogs/
84
+ end
85
+ end
86
+
87
+ initializer "refinery.routes" do |app|
88
+ app.routes_reloader.paths << File.expand_path('../../catch_all_routes.rb', __FILE__)
89
+ end
90
+
91
+ initializer "refinery.autoload_paths" do |app|
92
+ app.config.autoload_paths += [
93
+ Rails.root.join('app', 'presenters'),
94
+ Rails.root.join('vendor', '**', '**', 'app', 'presenters'),
95
+ Refinery.roots.map{|r| r.join('**', 'app', 'presenters')}
96
+ ].flatten
97
+ end
98
+
99
+ initializer "refinery.acts_as_indexed" do
100
+ ActsAsIndexed.configure do |config|
101
+ config.index_file = Rails.root.join('tmp', 'index')
102
+ config.index_file_depth = 3
103
+ config.min_word_size = 3
104
+ end
105
+ end
106
+
107
+ # set the manifests and assets to be precompiled
108
+ initializer "refinery.assets.precompile" do |app|
109
+ app.config.assets.precompile += [
110
+ "refinery/*",
111
+ "refinery/icons/*",
112
+ "wymeditor/lang/*",
113
+ "wymeditor/skins/refinery/*",
114
+ "wymeditor/skins/refinery/**/*",
115
+ "modernizr-min.js",
116
+ "dd_belatedpng.js"
117
+ ]
118
+ end
119
+
120
+ # Disable asset debugging - it's a performance killer in dev mode
121
+ initializer "refinery.assets.pipeline" do |app|
122
+ app.config.assets.debug = false
123
+ end
124
+
125
+ # active model fields which may contain sensitive data to filter
126
+ initializer "refinery.params.filter" do |app|
127
+ app.config.filter_parameters += [:password, :password_confirmation]
128
+ end
129
+
130
+ initializer "refinery.encoding" do |app|
131
+ app.config.encoding = 'utf-8'
132
+ end
133
+
134
+ initializer "refinery.memory_store" do |app|
135
+ app.config.cache_store = :memory_store
136
+ end
137
+
138
+ config.after_initialize do
139
+ Refinery.register_extension(Refinery::Core)
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,179 @@
1
+ require 'rails/all'
2
+ require 'rbconfig'
3
+ require 'acts_as_indexed'
4
+ require 'truncate_html'
5
+ require 'will_paginate'
6
+
7
+ module Refinery
8
+ WINDOWS = !!(RbConfig::CONFIG['host_os'] =~ %r!(msdos|mswin|djgpp|mingw)!) unless defined? WINDOWS
9
+
10
+ require 'refinery/errors'
11
+
12
+ autoload :Activity, 'refinery/activity'
13
+ autoload :ApplicationController, 'refinery/application_controller'
14
+ autoload :Engine, 'refinery/engine'
15
+ autoload :Menu, 'refinery/menu'
16
+ autoload :MenuItem, 'refinery/menu_item'
17
+ autoload :Plugin, 'refinery/plugin'
18
+ autoload :Plugins, 'refinery/plugins'
19
+ autoload :Version, 'refinery/version'
20
+ autoload :Crud, 'refinery/crud'
21
+ autoload :BasePresenter, 'refinery/base_presenter'
22
+
23
+ require 'refinery/ext/action_view/helpers/form_builder'
24
+ require 'refinery/ext/action_view/helpers/form_helper'
25
+ require 'refinery/ext/action_view/helpers/form_tag_helper'
26
+
27
+ module Admin
28
+ autoload :BaseController, 'refinery/admin/base_controller'
29
+ end
30
+
31
+ autoload :CmsGenerator, 'generators/refinery/cms/cms_generator'
32
+ autoload :DummyGenerator, 'generators/refinery/dummy/dummy_generator'
33
+ autoload :CoreGenerator, 'generators/refinery/core/core_generator'
34
+ autoload :EngineGenerator, 'generators/refinery/engine/engine_generator'
35
+
36
+ class << self
37
+ @@extensions = []
38
+
39
+ # Returns an array of modules representing currently registered Refinery Engines
40
+ #
41
+ # Example:
42
+ # Refinery.extensions => [Refinery::Core, Refinery::Pages]
43
+ def extensions
44
+ @@extensions
45
+ end
46
+
47
+ # Register an extension with Refinery
48
+ #
49
+ # Example:
50
+ # Refinery.register_extension(Refinery::Core)
51
+ def register_extension(const)
52
+ return if extension_registered?(const)
53
+
54
+ validate_extension!(const)
55
+
56
+ @@extensions << const
57
+ end
58
+ alias_method :register_engine, :register_extension
59
+
60
+ # Unregister an extension from Refinery
61
+ #
62
+ # Example:
63
+ # Refinery.unregister_extension(Refinery::Core)
64
+ def unregister_extension(const)
65
+ @@extensions.delete(const)
66
+ end
67
+
68
+ # Returns true if an extension is currently registered with Refinery
69
+ #
70
+ # Example:
71
+ # Refinery.extension_registered?(Refinery::Core)
72
+ def extension_registered?(const)
73
+ @@extensions.include?(const)
74
+ end
75
+
76
+ # Constructs a deprecation warning message and warns with Kernel#warn
77
+ #
78
+ # Example:
79
+ # Refinery.deprecate('foo') => "The use of 'foo' is deprecated"
80
+ #
81
+ # An options parameter can be specified to construct a more detailed deprecation message
82
+ #
83
+ # Options:
84
+ # when - version that this deprecated feature will be removed
85
+ # replacement - a replacement for what is being deprecated
86
+ # caller - who called the deprecated feature
87
+ #
88
+ # Example:
89
+ # Refinery.deprecate('foo', :when => 'tomorrow', :replacement => 'bar') =>
90
+ # "The use of 'foo' is deprecated and will be removed at version 2.0. Please use 'bar' instead."
91
+ def deprecate(what, options = {})
92
+ # Build a warning.
93
+ warning = "\n-- DEPRECATION WARNING --\n"
94
+ warning << "The use of '#{what}' is deprecated"
95
+ warning << " and will be removed at version #{options[:when]}" if options[:when]
96
+ warning << "."
97
+ warning << "\nPlease use #{options[:replacement]} instead." if options[:replacement]
98
+
99
+ # See if we can trace where this happened
100
+ if options[:caller]
101
+ whos_calling = options[:caller].detect{|c| c =~ %r{#{Rails.root.to_s}}}.inspect.to_s.split(':in').first
102
+ warning << "\nCalled from: #{whos_calling}\n"
103
+ end
104
+
105
+ # Give stern talking to.
106
+ warn warning
107
+ end
108
+
109
+ def i18n_enabled?
110
+ !!(defined?(::Refinery::I18n) && ::Refinery::I18n.enabled?)
111
+ end
112
+
113
+ # Returns a Pathname to the root of the Refinery CMS project
114
+ def root
115
+ @root ||= Pathname.new(File.expand_path('../../../../', __FILE__))
116
+ end
117
+
118
+ # Returns an array of Pathnames pointing to the root directory of each extension that
119
+ # has been registered with Refinery.
120
+ #
121
+ # Example:
122
+ # Refinery.roots => [#<Pathname:/Users/Reset/Code/refinerycms/core>, #<Pathname:/Users/Reset/Code/refinerycms/pages>]
123
+ #
124
+ # An optional extension_name parameter can be specified to return just the Pathname for
125
+ # the specified extension. This can be represented in Constant, Symbol, or String form.
126
+ #
127
+ # Example:
128
+ # Refinery.roots(Refinery::Core) => #<Pathname:/Users/Reset/Code/refinerycms/core>
129
+ # Refinery.roots(:'refinery/core') => #<Pathname:/Users/Reset/Code/refinerycms/core>
130
+ # Refinery.roots("refinery/core") => #<Pathname:/Users/Reset/Code/refinerycms/core>
131
+ def roots(extension_name = nil)
132
+ return @roots ||= self.extensions.map { |extension| extension.root } if extension_name.nil?
133
+
134
+ extension_name.to_s.camelize.constantize.root
135
+ end
136
+
137
+ def version
138
+ Refinery::Version.to_s
139
+ end
140
+
141
+ # Returns string version of url helper path. We need this to temporary support namespaces
142
+ # like Refinery::Image and Refinery::Blog::Post
143
+ #
144
+ # Example:
145
+ # Refinery.route_for_model("Refinery::Image") => "admin_image_path"
146
+ # Refinery.route_for_model(Refinery::Image, true) => "admin_images_path"
147
+ # Refinery.route_for_model(Refinery::Blog::Post) => "blog_admin_post_path"
148
+ # Refinery.route_for_model(Refinery::Blog::Post, true) => "blog_admin_posts_path"
149
+ def route_for_model(klass, plural = false)
150
+ parts = klass.to_s.underscore.split('/').delete_if { |p| p.blank? }
151
+
152
+ resource_name = plural ? parts[-1].pluralize : parts[-1]
153
+
154
+ if parts.size == 2
155
+ "admin_#{resource_name}_path"
156
+ elsif parts.size > 2
157
+ [parts[1..-2].join("_"), "admin", resource_name, "path"].join("_")
158
+ end
159
+ end
160
+
161
+ private
162
+ def validate_extension!(const)
163
+ unless const.respond_to?(:root) && const.root.is_a?(Pathname)
164
+ raise InvalidEngineError, "Engine must define a root accessor that returns a pathname to its root"
165
+ end
166
+ end
167
+ end
168
+
169
+ module Core
170
+ require 'refinery/core/engine'
171
+ require 'refinery/core/configuration'
172
+
173
+ class << self
174
+ def root
175
+ @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
176
+ end
177
+ end
178
+ end
179
+ end
data/lib/refinery/crud.rb CHANGED
@@ -10,25 +10,26 @@
10
10
  # Full documentation about CRUD and resources go here:
11
11
  # -> http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-resources
12
12
  # Example (add to your controller):
13
- # crudify :foo, {:title_attribute => 'name'} for CRUD on Foo model
14
- # crudify 'foo/bar', :{title_attribute => 'name'} for CRUD on Foo::Bar model
13
+ # crudify :foo, :title_attribute => 'name' for CRUD on Foo model
14
+ # crudify :'foo/bar', :title_attribute => 'name' for CRUD on Foo::Bar model
15
+ # Note: @singular_name will result in @foo for :foo and @bar for :'foo/bar'
15
16
 
16
17
  module Refinery
17
18
  module Crud
18
19
 
19
20
  def self.default_options(model_name)
20
- class_name = model_name.to_s.include?("/") ? "::#{model_name.to_s.camelize}" : model_name.to_s.camelize
21
+ class_name = "#{model_name.to_s.camelize.gsub('/', '::')}".gsub('::::', '::')
21
22
  this_class = class_name.constantize.base_class
22
- singular_name = model_name.to_s.underscore.gsub("/","_")
23
+ singular_name = ActiveModel::Naming.param_key(this_class)
23
24
  plural_name = singular_name.pluralize
24
25
 
25
26
  {
26
27
  :conditions => '',
27
28
  :include => [],
28
- :order => ('position ASC' if this_class.table_exists? and this_class.column_names.include?('position')),
29
+ :order => ('position ASC' if this_class.table_exists? && this_class.column_names.include?('position')),
29
30
  :paging => true,
30
31
  :per_page => false,
31
- :redirect_to_url => "admin_#{model_name.to_s.gsub('/', '_').pluralize}_url",
32
+ :redirect_to_url => "refinery.#{Refinery.route_for_model(class_name.constantize, true)}",
32
33
  :searchable => true,
33
34
  :search_conditions => '',
34
35
  :sortable => true,
@@ -54,6 +55,10 @@ module Refinery
54
55
  plural_name = options[:plural_name]
55
56
 
56
57
  module_eval %(
58
+ def self.crudify_options
59
+ #{options.inspect}
60
+ end
61
+
57
62
  prepend_before_filter :find_#{singular_name},
58
63
  :only => [:update, :destroy, :edit, :show]
59
64
 
@@ -63,14 +68,14 @@ module Refinery
63
68
 
64
69
  def create
65
70
  # if the position field exists, set this object as last object, given the conditions of this class.
66
- if #{class_name}.column_names.include?("position")
71
+ if #{class_name}.column_names.include?("position") && params[:#{singular_name}][:position].nil?
67
72
  params[:#{singular_name}].merge!({
68
73
  :position => ((#{class_name}.maximum(:position, :conditions => #{options[:conditions].inspect})||-1) + 1)
69
74
  })
70
75
  end
71
76
 
72
77
  if (@#{singular_name} = #{class_name}.create(params[:#{singular_name}])).valid?
73
- (request.xhr? ? flash.now : flash).notice = t(
78
+ flash.notice = t(
74
79
  'refinery.crudify.created',
75
80
  :what => "'\#{@#{singular_name}.#{options[:title_attribute]}}'"
76
81
  )
@@ -82,18 +87,19 @@ module Refinery
82
87
  unless request.xhr?
83
88
  redirect_to :back
84
89
  else
85
- render :partial => "/shared/message"
90
+ render :partial => '/refinery/message'
86
91
  end
87
92
  end
88
93
  else
89
- render :text => "<script>parent.window.location = '\#{#{options[:redirect_to_url]}}';</script>"
94
+ self.index
95
+ @dialog_successful = true
96
+ render :index
90
97
  end
91
98
  else
92
99
  unless request.xhr?
93
100
  render :action => 'new'
94
101
  else
95
- render :partial => "/shared/admin/error_messages",
96
- :locals => {
102
+ render :partial => '/refinery/admin/error_messages', :locals => {
97
103
  :object => @#{singular_name},
98
104
  :include_object_name => true
99
105
  }
@@ -107,7 +113,7 @@ module Refinery
107
113
 
108
114
  def update
109
115
  if @#{singular_name}.update_attributes(params[:#{singular_name}])
110
- (request.xhr? ? flash.now : flash).notice = t(
116
+ flash.notice = t(
111
117
  'refinery.crudify.updated',
112
118
  :what => "'\#{@#{singular_name}.#{options[:title_attribute]}}'"
113
119
  )
@@ -119,18 +125,19 @@ module Refinery
119
125
  unless request.xhr?
120
126
  redirect_to :back
121
127
  else
122
- render :partial => "/shared/message"
128
+ render :partial => '/refinery/message'
123
129
  end
124
130
  end
125
131
  else
126
- render :text => "<script>parent.window.location = '\#{#{options[:redirect_to_url]}}';</script>"
132
+ self.index
133
+ @dialog_successful = true
134
+ render :index
127
135
  end
128
136
  else
129
137
  unless request.xhr?
130
138
  render :action => 'edit'
131
139
  else
132
- render :partial => "/shared/admin/error_messages",
133
- :locals => {
140
+ render :partial => '/refinery/admin/error_messages', :locals => {
134
141
  :object => @#{singular_name},
135
142
  :include_object_name => true
136
143
  }
@@ -168,17 +175,22 @@ module Refinery
168
175
  # If we have already found a set then we don't need to again
169
176
  find_all_#{plural_name} if @#{plural_name}.nil?
170
177
 
171
- paging_options = {:page => params[:page]}
172
-
173
- # Use per_page from crudify options.
174
- if #{options[:per_page].present?.inspect}
175
- paging_options.update({:per_page => #{options[:per_page].inspect}})
176
- # Seems will_paginate doesn't always use the implicit method.
178
+ per_page = if #{options[:per_page].present?.inspect}
179
+ #{options[:per_page].inspect}
177
180
  elsif #{class_name}.methods.map(&:to_sym).include?(:per_page)
178
- paging_options.update({:per_page => #{class_name}.per_page})
181
+ #{class_name}.per_page
179
182
  end
180
183
 
181
- @#{plural_name} = @#{plural_name}.paginate(paging_options)
184
+ @#{plural_name} = @#{plural_name}.paginate(:page => params[:page], :per_page => per_page)
185
+ end
186
+
187
+ # If the controller is being accessed via an ajax request
188
+ # then render only the collection of items.
189
+ def render_partial_response?
190
+ if request.xhr?
191
+ render :text => render_to_string(:partial => '#{plural_name}', :layout => false).html_safe,
192
+ :layout => 'refinery/flash' and return false
193
+ end
182
194
  end
183
195
 
184
196
  # Returns a weighted set of results based on the query specified by the user.
@@ -195,6 +207,7 @@ module Refinery
195
207
  protected :find_#{singular_name},
196
208
  :find_all_#{plural_name},
197
209
  :paginate_all_#{plural_name},
210
+ :render_partial_response?,
198
211
  :search_all_#{plural_name}
199
212
  )
200
213
 
@@ -206,7 +219,7 @@ module Refinery
206
219
  search_all_#{plural_name} if searching?
207
220
  paginate_all_#{plural_name}
208
221
 
209
- render :partial => '#{plural_name}' if #{options[:xhr_paging].inspect} && request.xhr?
222
+ render_partial_response?
210
223
  end
211
224
  )
212
225
  else
@@ -217,6 +230,8 @@ module Refinery
217
230
  else
218
231
  search_all_#{plural_name}
219
232
  end
233
+
234
+ render_partial_response?
220
235
  end
221
236
  )
222
237
  end
@@ -227,13 +242,14 @@ module Refinery
227
242
  def index
228
243
  paginate_all_#{plural_name}
229
244
 
230
- render :partial => '#{plural_name}' if #{options[:xhr_paging].inspect} && request.xhr?
245
+ render_partial_response?
231
246
  end
232
247
  )
233
248
  else
234
249
  module_eval %(
235
250
  def index
236
251
  find_all_#{plural_name}
252
+ render_partial_response?
237
253
  end
238
254
  )
239
255
  end
@@ -249,36 +265,35 @@ module Refinery
249
265
  # Based upon http://github.com/matenia/jQuery-Awesome-Nested-Set-Drag-and-Drop
250
266
  def update_positions
251
267
  previous = nil
252
- # The list doesn't come to us in the correct order. Frustration.
253
- 0.upto((newlist ||= params[:ul]).length - 1) do |index|
254
- hash = newlist[index.to_s]
255
- moved_item_id = hash['id'].split(/#{singular_name}\\_?/)
256
- @current_#{singular_name} = #{class_name}.where(:id => moved_item_id).first
257
-
258
- if @current_#{singular_name}.respond_to?(:move_to_root)
259
- if previous.present?
260
- @current_#{singular_name}.move_to_right_of(#{class_name}.where(:id => previous).first)
268
+ params[:ul].each do |_, list|
269
+ list.each do |index, hash|
270
+ moved_item_id = hash['id'].split(/#{singular_name}\\_?/)
271
+ @current_#{singular_name} = #{class_name}.find_by_id(moved_item_id)
272
+
273
+ if @current_#{singular_name}.respond_to?(:move_to_root)
274
+ if previous.present?
275
+ @current_#{singular_name}.move_to_right_of(#{class_name}.find_by_id(previous))
276
+ else
277
+ @current_#{singular_name}.move_to_root
278
+ end
261
279
  else
262
- @current_#{singular_name}.move_to_root
280
+ @current_#{singular_name}.update_attribute(:position, index)
263
281
  end
264
- else
265
- @current_#{singular_name}.update_attribute(:position, index)
266
- end
267
282
 
268
- if hash['children'].present?
269
- update_child_positions(hash, @current_#{singular_name})
270
- end
283
+ if hash['children'].present?
284
+ update_child_positions(hash, @current_#{singular_name})
285
+ end
271
286
 
272
- previous = moved_item_id
287
+ previous = moved_item_id
288
+ end
273
289
  end
274
290
 
275
291
  #{class_name}.rebuild! if #{class_name}.respond_to?(:rebuild!)
276
292
  render :nothing => true
277
293
  end
278
294
 
279
- def update_child_positions(node, #{singular_name})
280
- 0.upto(node['children'].length - 1) do |child_index|
281
- child = node['children'][child_index.to_s]
295
+ def update_child_positions(_node, #{singular_name})
296
+ _node['children']['0'].each do |_, child|
282
297
  child_id = child['id'].split(/#{singular_name}\_?/)
283
298
  child_#{singular_name} = #{class_name}.where(:id => child_id).first
284
299
  child_#{singular_name}.move_to_child_of(#{singular_name})
@@ -288,21 +303,26 @@ module Refinery
288
303
  end
289
304
  end
290
305
  end
291
-
292
306
  )
293
307
  end
294
308
 
295
309
  module_eval %(
296
- def self.sortable?
297
- #{options[:sortable].to_s}
298
- end
310
+ class << self
311
+ def pageable?
312
+ #{options[:paging].to_s}
313
+ end
314
+ alias_method :paging?, :pageable?
299
315
 
300
- def self.searchable?
301
- #{options[:searchable].to_s}
316
+ def sortable?
317
+ #{options[:sortable].to_s}
318
+ end
319
+
320
+ def searchable?
321
+ #{options[:searchable].to_s}
322
+ end
302
323
  end
303
324
  )
304
325
 
305
-
306
326
  end
307
327
 
308
328
  end
@@ -1,19 +1,63 @@
1
- require 'rails/engine'
1
+ require 'active_support/concern'
2
2
 
3
3
  module Refinery
4
4
  module Engine
5
- class << self
6
- def included(base)
7
- base.module_eval do
8
- class << self
9
- def refinery
10
- ::Refinery.config
11
- end
12
- end
5
+ extend ActiveSupport::Concern
13
6
 
14
- def refinery
15
- self.class.refinery
16
- end
7
+ module ClassMethods
8
+ def after_inclusion_procs #:nodoc:
9
+ @@after_inclusion_procs ||= []
10
+ end
11
+
12
+ # Specify a block of code to be run after the refinery inclusion step. See
13
+ # Refinery::Core::Engine#refinery_inclusion for details regarding the Refinery
14
+ # inclusion process.
15
+ #
16
+ # Example:
17
+ # module Refinery
18
+ # module Images
19
+ # class Engine < Rails::Engine
20
+ # engine_name :images
21
+ #
22
+ # after_inclusion do
23
+ # # perform something here
24
+ # end
25
+ # end
26
+ # end
27
+ # end
28
+ def after_inclusion(&block)
29
+ if block && block.respond_to?(:call)
30
+ after_inclusion_procs << block
31
+ else
32
+ raise 'Anything added to be called after_inclusion must be callable (respond to #call).'
33
+ end
34
+ end
35
+
36
+ def before_inclusion_procs #:nodoc:
37
+ @@before_inclusion_procs ||= []
38
+ end
39
+
40
+ # Specify a block of code to be run before the refinery inclusion step. See
41
+ # Refinery::Core::Engine#refinery_inclusion for details regarding the Refinery
42
+ # inclusion process.
43
+ #
44
+ # Example:
45
+ # module Refinery
46
+ # module Images
47
+ # class Engine < Rails::Engine
48
+ # engine_name :images
49
+ #
50
+ # before_inclusion do
51
+ # # perform something here
52
+ # end
53
+ # end
54
+ # end
55
+ # end
56
+ def before_inclusion(&block)
57
+ if block && block.respond_to?(:call)
58
+ before_inclusion_procs << block
59
+ else
60
+ raise 'Anything added to be called before_inclusion must be callable (respond to #call).'
17
61
  end
18
62
  end
19
63
  end