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
@@ -0,0 +1,176 @@
1
+ require 'spec_helper'
2
+
3
+ describe Refinery do
4
+ describe "#extensions" do
5
+ it "should return an array of modules representing registered extensions" do
6
+ subject.extensions.should be_a(Array)
7
+ subject.extensions.each do |e|
8
+ e.should be_a(Module)
9
+ end
10
+ end
11
+ end
12
+
13
+ describe "#register_extension" do
14
+ before(:each) { subject.extensions.clear }
15
+
16
+ it "should add the extension's module to the array of registered extensions" do
17
+ subject.register_extension(Refinery::Core)
18
+
19
+ Refinery.extensions.should include(Refinery::Core)
20
+ Refinery.extensions.should have(1).item
21
+ end
22
+
23
+ it "should not allow same extension to be registered twice" do
24
+ subject.register_extension(Refinery::Core)
25
+ subject.register_extension(Refinery::Core)
26
+
27
+ Refinery.extensions.should have(1).item
28
+ end
29
+ end
30
+
31
+ describe "#extension_registered?" do
32
+ context "with Refinery::Core::Engine registered" do
33
+ before(:each) { subject.register_extension(Refinery::Core) }
34
+
35
+ it "should return true if the extension is registered" do
36
+ subject.extension_registered?(Refinery::Core).should == true
37
+ end
38
+ end
39
+
40
+ context "with no extensions registered" do
41
+ before(:each) { subject.extensions.clear }
42
+
43
+ it "should return false if the extension is not registered" do
44
+ subject.extension_registered?(Refinery::Core).should == false
45
+ end
46
+ end
47
+ end
48
+
49
+ describe "#unregister_extension" do
50
+ before(:each) do
51
+ subject.extensions.clear
52
+ subject.register_extension(Refinery::Images)
53
+ end
54
+
55
+ it "should remove the extension's module from the array of registered extensions" do
56
+ subject.unregister_extension(Refinery::Images)
57
+
58
+ subject.extensions.should have(0).item
59
+ end
60
+ end
61
+
62
+ describe "#validate_extension!" do
63
+ context "with a valid extension" do
64
+ it "should return nil" do
65
+ subject.send(:validate_extension!, Refinery::ValidEngine).should be_nil
66
+ end
67
+ end
68
+
69
+ context "with an invalid extension" do
70
+ it "should raise invalid extension exception" do
71
+ lambda {
72
+ subject.send(:validate_extension!, Refinery::InvalidEngine)
73
+ }.should raise_error(Refinery::InvalidEngineError, "Engine must define a root accessor that returns a pathname to its root")
74
+ end
75
+ end
76
+ end
77
+
78
+ describe "#roots" do
79
+ it "should return pathname to extension root when given constant as parameter" do
80
+ subject.roots(Refinery::Core).should == Refinery::Core.root
81
+ end
82
+
83
+ it "should return pathname to extension root when given symbol as parameter" do
84
+ subject.roots(:'refinery/core').should == Refinery::Core.root
85
+ end
86
+
87
+ it "should return pathname to extension root when given string as parameter" do
88
+ subject.roots("refinery/core").should == Refinery::Core.root
89
+ end
90
+
91
+ it "should return an array of all pathnames if no extension_name is specified" do
92
+ subject.roots.should be_a(Array)
93
+ subject.roots.each do |root|
94
+ root.should be_a(Pathname)
95
+ end
96
+ end
97
+ end
98
+
99
+ describe "#deprecate" do
100
+ before(:each) do
101
+ @errors = StringIO.new
102
+ @old_err = $stderr
103
+ $stderr = @errors
104
+ end
105
+
106
+ after(:each) { $stderr = @old_err }
107
+
108
+ it "shows a deprecation warning" do
109
+ Refinery.deprecate("ugis")
110
+ @errors.rewind
111
+ @errors.read.should == "\n-- DEPRECATION WARNING --\nThe use of 'ugis' is deprecated.\n"
112
+ end
113
+
114
+ it "takes when option" do
115
+ Refinery.deprecate("ugis", :when => "10.0")
116
+ @errors.rewind
117
+ @errors.read.should == "\n-- DEPRECATION WARNING --\nThe use of 'ugis' is deprecated and will be removed at version 10.0.\n"
118
+ end
119
+
120
+ it "takes replacement option" do
121
+ Refinery.deprecate("ugis", :when => "10.0", :replacement => "philip")
122
+ @errors.rewind
123
+ @errors.read.should == "\n-- DEPRECATION WARNING --\nThe use of 'ugis' is deprecated and will be removed at version 10.0.\nPlease use philip instead.\n"
124
+ end
125
+ end
126
+
127
+ describe "#i18n_enabled?" do
128
+ it "returns true when Refinery::I18n.enabled? is true" do
129
+ Refinery::I18n.stub(:enabled?).and_return(true)
130
+ subject.i18n_enabled?.should == true
131
+ end
132
+
133
+ it "returns false when Refinery::I18n.enabled? is false" do
134
+ Refinery::I18n.stub(:enabled?).and_return(false)
135
+ subject.i18n_enabled?.should == false
136
+ end
137
+ end
138
+
139
+ describe ".route_for_model" do
140
+ context "when passed Refinery::Dummy" do
141
+ it "returns admin_dummy_path" do
142
+ Refinery.route_for_model("Refinery::Dummy").should == "admin_dummy_path"
143
+ end
144
+ end
145
+
146
+ context "when passed Refinery::Dummy and true" do
147
+ it "returns admin_dummies_path" do
148
+ Refinery.route_for_model("Refinery::Dummy", true).should == "admin_dummies_path"
149
+ end
150
+ end
151
+
152
+ context "when passed Refinery::DummyName" do
153
+ it "returns admin_dummy_name_path" do
154
+ Refinery.route_for_model("Refinery::DummyName").should == "admin_dummy_name_path"
155
+ end
156
+ end
157
+
158
+ context "when passed Refinery::DummyName and true" do
159
+ it "returns admin_dummy_names_path" do
160
+ Refinery.route_for_model("Refinery::DummyName", true).should == "admin_dummy_names_path"
161
+ end
162
+ end
163
+
164
+ context "when passed Refinery::Dummy::Name" do
165
+ it "returns dummy_admin_name_path" do
166
+ Refinery.route_for_model("Refinery::Dummy::Name").should == "dummy_admin_name_path"
167
+ end
168
+ end
169
+
170
+ context "when passed Refinery::Dummy::Name and true" do
171
+ it "returns dummy_admin_names_path" do
172
+ Refinery.route_for_model("Refinery::Dummy::Name", true).should == "dummy_admin_names_path"
173
+ end
174
+ end
175
+ end
176
+ end
@@ -3,6 +3,7 @@ require 'spec_helper'
3
3
  module Refinery
4
4
  module RefineryRspec
5
5
  class Engine < ::Rails::Engine
6
+ isolate_namespace ::Refinery
6
7
  ::Refinery::Plugin.register do |plugin|
7
8
  plugin.name = 'refinery_rspec'
8
9
  plugin.hide_from_menu = true
@@ -14,14 +15,15 @@ end
14
15
  module Refinery
15
16
  describe Plugin do
16
17
 
17
- let(:plugin) { Refinery::Plugins.registered.detect { |plugin| plugin.name == 'refinery_rspec' } }
18
+ let(:plugin) { ::Refinery::Plugins.registered.detect { |plugin| plugin.name == 'refinery_rspec' } }
18
19
 
19
- def setup_i18n
20
- ::I18n.backend = ::I18n::Backend::Simple.new
21
- ::I18n.backend.store_translations :en, :plugins => {
22
- :refinery_rspec => {
23
- :title => 'RefineryCMS RSpec',
24
- :description => 'RSpec tests for plugin.rb'
20
+ before do
21
+ ::I18n.backend.store_translations :en, :refinery => {
22
+ :plugins => {
23
+ :refinery_rspec => {
24
+ :title => "Refinery CMS RSpec",
25
+ :description => "RSpec tests for plugin.rb"
26
+ }
25
27
  }
26
28
  }
27
29
  end
@@ -39,29 +41,17 @@ module Refinery
39
41
  end
40
42
 
41
43
  describe '#title' do
42
- before { setup_i18n }
43
-
44
44
  it 'returns plugin title defined by I18n' do
45
- plugin.title.should == 'RefineryCMS RSpec'
45
+ plugin.title.should == 'Refinery CMS RSpec'
46
46
  end
47
47
  end
48
48
 
49
49
  describe '#description' do
50
- before { setup_i18n }
51
-
52
50
  it 'returns plugin description defined by I18n' do
53
51
  plugin.description.should == 'RSpec tests for plugin.rb'
54
52
  end
55
53
  end
56
54
 
57
- describe '#activity' do
58
-
59
- end
60
-
61
- describe '#activity=' do
62
-
63
- end
64
-
65
55
  describe '#pathname' do
66
56
  it 'should be set by default' do
67
57
  plugin.pathname.should_not == nil
@@ -85,18 +75,18 @@ module Refinery
85
75
  end
86
76
  end
87
77
 
88
- describe '#always_allow_access?' do
78
+ describe '#always_allow_access' do
89
79
  it 'returns false if @always_allow_access is not set or its set to false' do
90
- plugin.always_allow_access?.should be_false
80
+ plugin.always_allow_access.should be_false
91
81
  end
92
82
 
93
83
  it 'returns true if set so' do
94
- plugin.stub(:always_allow_access?).and_return(true)
95
- plugin.always_allow_access?.should be
84
+ plugin.stub(:always_allow_access).and_return(true)
85
+ plugin.always_allow_access.should be
96
86
  end
97
87
  end
98
88
 
99
- describe '#dashboard?' do
89
+ describe '#dashboard' do
100
90
  it 'returns false if @dashboard is not set or its set to false' do
101
91
  plugin.dashboard.should be_false
102
92
  end
@@ -109,17 +99,18 @@ module Refinery
109
99
 
110
100
  describe '#menu_match' do
111
101
  it 'returns regexp based on plugin name' do
112
- plugin.menu_match.should == /(admin|refinery)\/refinery_rspec$/
102
+ plugin.menu_match.should == %r{refinery/refinery_rspec(/.+?)?$}
113
103
  end
114
104
  end
115
105
 
116
106
  describe '#highlighted?' do
117
107
  it 'returns true if params[:controller] match menu_match regexp' do
118
- plugin.highlighted?({:controller => 'refinery/refinery_rspec'}).should be
108
+ plugin.highlighted?({:controller => '/refinery/admin/refinery_rspec'}).should be
109
+ plugin.highlighted?({:controller => '/refinery/refinery_rspec'}).should be
119
110
  end
120
111
 
121
- it 'returns true if dashboard? is true and params[:action] == error_404' do
122
- plugin.stub(:dashboard?).and_return(true)
112
+ it 'returns true if dashboard is true and params[:action] == error_404' do
113
+ plugin.stub(:dashboard).and_return(true)
123
114
  plugin.highlighted?({:action => 'error_404'}).should be
124
115
  end
125
116
  end
@@ -135,15 +126,15 @@ module Refinery
135
126
 
136
127
  context 'when @url is already defined' do
137
128
  it 'returns hash' do
138
- plugin.stub(:url).and_return({:controller => '/admin/testa'})
139
- plugin.url.should == {:controller => '/admin/testa'}
129
+ plugin.stub(:url).and_return({:controller => 'refinery/admin/testa'})
130
+ plugin.url[:controller].should == 'refinery/admin/testa'
140
131
  end
141
132
  end
142
133
 
143
134
  context 'when controller is present' do
144
135
  it 'returns hash based on it' do
145
136
  plugin.stub(:controller).and_return('testb')
146
- plugin.url.should == {:controller => '/admin/testb'}
137
+ plugin.url[:controller].should == 'refinery/admin/testb'
147
138
  end
148
139
  end
149
140
 
@@ -151,13 +142,24 @@ module Refinery
151
142
 
152
143
  it 'returns hash based on it' do
153
144
  plugin.stub(:directory).and_return('first/second/testc')
154
- plugin.url.should == {:controller => '/admin/testc'}
145
+ plugin.url[:controller].should == 'refinery/admin/testc'
155
146
  end
156
147
  end
157
148
 
158
149
  context 'when controller and directory not present' do
159
150
  it 'returns hash based on plugins name' do
160
- plugin.url.should == {:controller => '/admin/refinery_rspec'}
151
+ plugin.url[:controller].should == 'refinery/admin/refinery_rspec'
152
+ end
153
+ end
154
+ end
155
+
156
+ describe '#activity_by_class_name' do
157
+ before { plugin.activity = [ { :class_name => "X::Y::Z" }, { :class_name => "X::Y::ZZ" }] }
158
+
159
+ context 'when the plugin have diferents activities' do
160
+ it 'returns the correct activity' do
161
+ plugin.activity_by_class_name("X::Y::Z").first.should == plugin.activity.first
162
+ plugin.activity_by_class_name("X::Y::ZZ").first.should == plugin.activity.last
161
163
  end
162
164
  end
163
165
  end
@@ -3,6 +3,7 @@ require 'spec_helper'
3
3
  module Refinery
4
4
  module MyPlugin
5
5
  class Engine < ::Rails::Engine
6
+ isolate_namespace ::Refinery
6
7
  ::Refinery::Plugin.register do |plugin|
7
8
  plugin.name = "my_plugin"
8
9
  plugin.hide_from_menu = true
@@ -12,42 +13,52 @@ module Refinery
12
13
 
13
14
  module MyOtherPlugin
14
15
  class Engine < ::Rails::Engine
16
+ isolate_namespace ::Refinery
15
17
  ::Refinery::Plugin.register do |plugin|
16
18
  plugin.name = "my_other_plugin"
17
19
  plugin.hide_from_menu = true
18
20
  end
19
21
  end
20
22
  end
21
- end
22
23
 
23
- module Refinery
24
+ ::I18n.backend.store_translations :en, :refinery => {
25
+ :plugins => {
26
+ :my_plugin => {
27
+ :title => "my plugin"
28
+ },
29
+ :my_other_plugin => {
30
+ :title => "my other plugin"
31
+ }
32
+ }
33
+ }
34
+
24
35
  describe Plugins do
25
36
 
26
37
  before(:each) do
27
38
  # First, deactivate all.
28
- Plugins.set_active([])
39
+ subject.class.set_active([])
29
40
  end
30
41
 
31
42
  describe '#activate' do
32
43
  it "activates a plugin" do
33
44
  subject.class.activate("my_plugin")
34
45
 
35
- Plugins.active.names.should include("my_plugin")
46
+ subject.class.active.names.should include("my_plugin")
36
47
  end
37
48
 
38
49
  it "only activates the same plugin once" do
39
50
  subject.class.activate("my_other_plugin")
40
51
  subject.class.activate("my_other_plugin")
41
52
 
42
- Plugins.active.names.count("my_other_plugin").should == 1
53
+ subject.class.active.names.count("my_other_plugin").should == 1
43
54
  end
44
55
 
45
56
  it "doesn't deactivate the first plugin when another is activated" do
46
57
  subject.class.activate("my_plugin")
47
58
  subject.class.activate("my_other_plugin")
48
59
 
49
- Plugins.active.names.should include("my_plugin")
50
- Plugins.active.names.should include("my_other_plugin")
60
+ subject.class.active.names.should include("my_plugin")
61
+ subject.class.active.names.should include("my_other_plugin")
51
62
  end
52
63
  end
53
64
 
@@ -56,33 +67,34 @@ module Refinery
56
67
  subject.class.activate("my_plugin")
57
68
  subject.class.deactivate("my_plugin")
58
69
 
59
- Plugins.active.count.should == 0
70
+ subject.class.active.count.should == 0
60
71
  end
61
72
  end
62
73
 
63
74
  describe '#set_active' do
75
+
64
76
  it "activates a single plugin" do
65
77
  subject.class.set_active(%w(my_plugin))
66
78
 
67
- Plugins.active.names.should include("my_plugin")
79
+ subject.class.active.names.should include("my_plugin")
68
80
  end
69
81
 
70
82
  it "activates a list of plugins" do
71
83
  subject.class.set_active(%w(my_plugin my_other_plugin))
72
84
 
73
- Plugins.active.names.should include("my_plugin")
74
- Plugins.active.names.should include("my_plugin")
85
+ subject.class.active.names.should include("my_plugin")
86
+ subject.class.active.names.should include("my_plugin")
75
87
 
76
- Plugins.active.count.should == 2
88
+ subject.class.active.count.should == 2
77
89
  end
78
90
 
79
91
  it "deactivates the initial plugins when another set is set_active" do
80
92
  subject.class.set_active(%w(my_plugin))
81
93
  subject.class.set_active(%w(my_other_plugin))
82
94
 
83
- Plugins.active.names.should_not include("my_plugin")
84
- Plugins.active.names.should include("my_other_plugin")
85
- Plugins.active.count.should == 1
95
+ subject.class.active.names.should_not include("my_plugin")
96
+ subject.class.active.names.should include("my_other_plugin")
97
+ subject.class.active.count.should == 1
86
98
  end
87
99
 
88
100
  end
@@ -112,7 +124,7 @@ module Refinery
112
124
 
113
125
  it 'only contains items that are always allowed' do
114
126
  subject.class.always_allowed.any?.should be_true
115
- subject.class.always_allowed.all? { |p| p.always_allow_access? }.should be_true
127
+ subject.class.always_allowed.all? { |p| p.always_allow_access }.should be_true
116
128
  end
117
129
  end
118
130
 
@@ -127,5 +139,19 @@ module Refinery
127
139
  end
128
140
  end
129
141
 
142
+ describe ".find_by_name" do
143
+ it "finds plugin by given name" do
144
+ subject.class.set_active(%w(my_plugin))
145
+ subject.class.active.find_by_name("my_plugin").name.should == "my_plugin"
146
+ end
147
+ end
148
+
149
+ describe ".find_by_title" do
150
+ it "finds plugin by given title" do
151
+ subject.class.set_active(%w(my_plugin))
152
+ subject.class.active.find_by_title("my plugin").title.should == "my plugin"
153
+ end
154
+ end
155
+
130
156
  end
131
157
  end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ describe "custom" do
5
+ login_refinery_user
6
+
7
+ context "javascripts" do
8
+ before(:each) do
9
+ ::Refinery::Core.clear_javascripts!
10
+ end
11
+
12
+ it "should be rendered when specified" do
13
+ ::Refinery::Core.config.register_javascript('custom_js')
14
+ visit refinery.admin_dashboard_path
15
+ page.body.include?('custom_js.js').should be
16
+ end
17
+ end
18
+
19
+ context "stylesheets" do
20
+ before(:each) do
21
+ ::Refinery::Core.clear_stylesheets!
22
+ end
23
+
24
+ it "should be rendered when specified" do
25
+ ::Refinery::Core.config.register_stylesheet('custom_css')
26
+ visit refinery.admin_dashboard_path
27
+ page.body.include?('custom_css.css').should be
28
+ end
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,28 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ describe "dialog" do
5
+ login_refinery_user
6
+
7
+ context "links" do
8
+ it "have iframe src" do
9
+ visit refinery.admin_dialog_path('Link')
10
+ page.should have_selector("iframe[src='/refinery/pages_dialogs/link_to']")
11
+ end
12
+ end
13
+
14
+ context "images" do
15
+ it "have iframe src" do
16
+ visit refinery.admin_dialog_path('Image')
17
+ page.should have_selector("iframe[src='/refinery/images/insert?modal=true']")
18
+ end
19
+ end
20
+
21
+ context "a" do
22
+ it "have empty iframe src" do
23
+ visit refinery.admin_dialog_path('a')
24
+ page.should have_selector("iframe[src='']")
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,71 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ describe "search" do
5
+ login_refinery_user
6
+
7
+ context "when searched item exists" do
8
+ describe "image extension" do
9
+ before(:each) { FactoryGirl.create(:image) }
10
+
11
+ it "returns found image" do
12
+ visit refinery.admin_images_path
13
+ fill_in "search", :with => "beach"
14
+ click_button "Search"
15
+ page.should have_selector("img[src*='beach.jpeg']")
16
+ end
17
+ end
18
+
19
+ describe "resource extension" do
20
+ before(:each) { FactoryGirl.create(:resource) }
21
+
22
+ it "returns found resource" do
23
+ visit refinery.admin_resources_path
24
+ fill_in "search", :with => "refinery"
25
+ click_button "Search"
26
+ page.should have_content("Refinery Is Awesome.txt")
27
+ end
28
+ end
29
+
30
+ describe "page extension" do
31
+ before(:each) { FactoryGirl.create(:page, :title => "Ugis Ozols") }
32
+
33
+ it "returns found page" do
34
+ visit refinery.admin_pages_path
35
+ fill_in "search", :with => "ugis"
36
+ click_button "Search"
37
+ page.should have_content("Ugis Ozols")
38
+ end
39
+ end
40
+ end
41
+
42
+ context "when searched item don't exist" do
43
+ def shared_stuff
44
+ fill_in "search", :with => "yada yada"
45
+ click_button "Search"
46
+ page.should have_content("Sorry, no results found")
47
+ end
48
+
49
+ describe "image extension" do
50
+ it "returns no results" do
51
+ visit refinery.admin_images_path
52
+ shared_stuff
53
+ end
54
+ end
55
+
56
+ describe "resource extension" do
57
+ it "returns no results" do
58
+ visit refinery.admin_resources_path
59
+ shared_stuff
60
+ end
61
+ end
62
+
63
+ describe "page extension" do
64
+ it "returns no results" do
65
+ visit refinery.admin_pages_path
66
+ shared_stuff
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,49 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ describe "site bar" do
5
+ login_refinery_user
6
+
7
+ it "have logout link" do
8
+ visit refinery.admin_dashboard_path
9
+
10
+ page.should have_content("Log out")
11
+ page.should have_selector("a[href='/refinery/logout']")
12
+ end
13
+
14
+ context "when in backend" do
15
+ before { visit refinery.admin_dashboard_path }
16
+
17
+ it "have a 'switch to your website button'" do
18
+ page.should have_content("Switch to your website")
19
+ page.should have_selector("a[href='/']")
20
+ end
21
+
22
+ it "switches to frontend" do
23
+ page.current_path.should == refinery.admin_dashboard_path
24
+ click_link "Switch to your website"
25
+ page.current_path.should == refinery.root_path
26
+ end
27
+ end
28
+
29
+ context "when in frontend" do
30
+ before do
31
+ # make a page in order to avoid 404
32
+ FactoryGirl.create(:page, :link_url => "/")
33
+
34
+ visit refinery.root_path
35
+ end
36
+
37
+ it "have a 'switch to your website editor' button" do
38
+ page.should have_content("Switch to your website editor")
39
+ page.should have_selector("a[href='/refinery']")
40
+ end
41
+
42
+ it "switches to backend" do
43
+ page.current_path.should == refinery.root_path
44
+ click_link "Switch to your website editor"
45
+ page.current_path.should == refinery.admin_root_path
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,14 @@
1
+ if Capybara.javascript_driver == :selenium
2
+ require 'selenium-webdriver'
3
+ require 'selenium/webdriver/firefox'
4
+
5
+ if defined?(Selenium::WebDriver::Firefox::Launcher) && Selenium::WebDriver::Platform.mac?
6
+ # Run firefox in the background, on OS X
7
+ Selenium::WebDriver::Firefox::Launcher.class_eval do
8
+ def start
9
+ assert_profile
10
+ @binary.start_with @profile, @profile_dir, ''
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ require 'database_cleaner'
2
+
3
+ RSpec.configure do |config|
4
+ config.before(:suite) do
5
+ DatabaseCleaner.strategy = :truncation
6
+ end
7
+
8
+ config.before(:each) do
9
+ DatabaseCleaner.start
10
+ end
11
+
12
+ config.after(:each) do
13
+ DatabaseCleaner.clean
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ module Refinery
2
+ module InvalidEngine
3
+ class Engine < Rails::Engine
4
+ end
5
+ end
6
+ end