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,224 @@
1
+ /*
2
+ * WYMeditor : what you see is What You Mean web-based editor
3
+ * Copyright (c) 2005 - 2009 Jean-Francois Hovinne, http://www.wymeditor.org/
4
+ * Dual licensed under the MIT (MIT-license.txt)
5
+ * and GPL (GPL-license.txt) licenses.
6
+ *
7
+ * For further information visit:
8
+ * http://www.wymeditor.org/
9
+ *
10
+ * File Name:
11
+ * jquery.wymeditor.explorer.js
12
+ * MSIE specific class and functions.
13
+ * See the documentation for more info.
14
+ *
15
+ * File Authors:
16
+ * Jean-Francois Hovinne (jf.hovinne a-t wymeditor dotorg)
17
+ * Bermi Ferrer (wymeditor a-t bermi dotorg)
18
+ * Frédéric Palluel-Lafleur (fpalluel a-t gmail dotcom)
19
+ * Jonatan Lundin (jonatan.lundin a-t gmail dotcom)
20
+ */WYMeditor.WymClassExplorer = function(wym) {
21
+ this._wym = wym;
22
+ this._class = "className";
23
+ this._newLine = "\r\n";
24
+ };
25
+
26
+ WYMeditor.WymClassExplorer.prototype.format_block = function(selected) {
27
+
28
+ //'this' should be the wymeditor instance.
29
+ var wym = this;
30
+ var container = selected || wym.selected() || $(wym._iframe).contents().find('body').get(0);
31
+ var name = container.tagName.toLowerCase();
32
+
33
+ //fix forbidden main containers
34
+ if($.inArray(name, ['strong', 'b', 'em', 'i', 'sub', 'sup', 'a']) > -1) {
35
+ name = container.parentNode.tagName.toLowerCase();
36
+ }
37
+
38
+ if(name == WYMeditor.BODY) {
39
+ wym._selected_image = null;
40
+ $(wym._iframe).contents().find('.selected_by_wym').removeClass('selected_by_wym');
41
+ wym._exec(WYMeditor.FORMAT_BLOCK, "<" + WYMeditor.P + ">");
42
+ }
43
+ };
44
+
45
+ WYMeditor.WymClassExplorer.prototype.initIframe = function(iframe) {
46
+
47
+ //This function is executed twice, though it is called once!
48
+ //But MSIE needs that, otherwise designMode won't work.
49
+ //Weird.
50
+
51
+ this._iframe = iframe;
52
+ this._doc = iframe.contentWindow.document;
53
+
54
+ //add css rules from options
55
+ var styles = this._doc.styleSheets[0];
56
+ var aCss = eval(this._options.editorStyles);
57
+
58
+ this.addCssRules(this._doc, aCss);
59
+
60
+ this._doc.title = this._wym._index;
61
+
62
+ //set the text direction
63
+ $('html', this._doc).attr('dir', this._options.direction);
64
+
65
+ // Add class to say this is Internet Explorer
66
+ $('html', this._doc).addClass('ie');
67
+
68
+ //init html value
69
+ $(this._doc.body).html(this._wym._html);
70
+
71
+ //handle events
72
+ var wym = this;
73
+
74
+ this._doc.body.onfocus = function()
75
+ {wym._doc.designMode = "on"; wym._doc = iframe.contentWindow.document;};
76
+ this._doc.onbeforedeactivate = function() {wym.saveCaret();};
77
+ this._doc.onkeyup = function() {
78
+ wym.saveCaret();
79
+ wym.keyup();
80
+ };
81
+ this._doc.onclick = function() {wym.saveCaret();};
82
+
83
+ this._doc.body.onbeforepaste = function() {
84
+ wym._iframe.contentWindow.event.returnValue = false;
85
+ };
86
+
87
+ this._doc.body.onpaste = function() {
88
+ wym._iframe.contentWindow.event.returnValue = false;
89
+ // Trident doesn't need to intercept the paste as it can access the clipboard easily.
90
+ wym.paste(window.clipboardData.getData("Text"));
91
+ };
92
+
93
+ //callback can't be executed twice, so we check
94
+ if(this._initialized) {
95
+
96
+ //pre-bind functions
97
+ if($.isFunction(this._options.preBind)) this._options.preBind(this);
98
+
99
+ //bind external events
100
+ this._wym.bindEvents();
101
+
102
+ //post-init functions
103
+ if($.isFunction(this._options.postInit)) this._options.postInit(this);
104
+
105
+ //add event listeners to doc elements, e.g. images
106
+ this.listen();
107
+ }
108
+
109
+ this._initialized = true;
110
+
111
+ //init designMode
112
+ this._doc.designMode="on";
113
+ try{
114
+ // (bermi's note) noticed when running unit tests on IE6
115
+ // Is this really needed, it trigger an unexisting property on IE6
116
+ this._doc = iframe.contentWindow.document;
117
+ }catch(e){}
118
+ };
119
+
120
+ WYMeditor.WymClassExplorer.prototype._exec = function(cmd,param) {
121
+
122
+ var wym = this;
123
+
124
+ switch(cmd) {
125
+ case WYMeditor.INDENT: case WYMeditor.OUTDENT:
126
+ var container = wym.findUp(wym.container(), WYMeditor.LI);
127
+ if(container) {
128
+ var ancestor = container.parentNode.parentNode;
129
+ if(container.parentNode.childNodes.length > 1 || $.inArray(ancestor.tagName.toLowerCase(), [WYMeditor.OL, WYMeditor.UL]) > -1) {
130
+ wym._doc.execCommand(cmd);
131
+ }
132
+ }
133
+ break;
134
+ default:
135
+ if(param) {
136
+ wym._doc.execCommand(cmd,false,param);
137
+ }
138
+ else {
139
+ wym._doc.execCommand(cmd);
140
+ }
141
+ break;
142
+ }
143
+
144
+ };
145
+
146
+ WYMeditor.WymClassExplorer.prototype.selected = function() {
147
+ var caretPos = this._iframe.contentWindow.document.caretPos;
148
+ if(caretPos != null && caretPos.parentElement != undefined) {
149
+ return(caretPos.parentElement());
150
+ }
151
+ };
152
+
153
+ WYMeditor.WymClassExplorer.prototype.saveCaret = function() {
154
+ this._doc.caretPos = this._doc.selection.createRange();
155
+ };
156
+
157
+ WYMeditor.WymClassExplorer.prototype.addCssRule = function(styles, oCss) {
158
+ styles.addRule(oCss.name, oCss.css);
159
+ };
160
+
161
+ WYMeditor.WymClassExplorer.prototype.insert = function(html) {
162
+ // Get the current selection
163
+ var range = this._doc.selection.createRange();
164
+
165
+ // Check if the current selection is inside the editor
166
+ if ( $(range.parentElement()).parents( this._options.iframeBodySelector ).is('*') ) {
167
+ try {
168
+ // Overwrite selection with provided html
169
+ range.pasteHTML(html);
170
+ } catch (e) { }
171
+ } else {
172
+ // Fall back to the internal paste function if there's no selection
173
+ this.paste(html);
174
+ }
175
+ };
176
+
177
+ WYMeditor.WymClassExplorer.prototype.wrap = function(left, right) {
178
+
179
+ // Get the current selection
180
+ var range = this._doc.selection.createRange();
181
+
182
+ // Check if the current selection is inside the editor
183
+ if ( $(range.parentElement()).parents( this._options.iframeBodySelector ).is('*') ) {
184
+ try {
185
+ // Overwrite selection with provided html
186
+ range.pasteHTML(left + range.text + right);
187
+ } catch (e) { }
188
+ }
189
+ };
190
+
191
+ WYMeditor.WymClassExplorer.prototype.unwrap = function() {
192
+
193
+ // Get the current selection
194
+ var range = this._doc.selection.createRange();
195
+
196
+ // Check if the current selection is inside the editor
197
+ if ( $(range.parentElement()).parents( this._options.iframeBodySelector ).is('*') ) {
198
+ try {
199
+ // Unwrap selection
200
+ var text = range.text;
201
+ this._exec( 'Cut' );
202
+ range.pasteHTML( text );
203
+ } catch (e) { }
204
+ }
205
+ };
206
+
207
+ //keyup handler
208
+ WYMeditor.WymClassExplorer.prototype.keyup = function(e) {
209
+
210
+ (wym = this)._selected_image = null;
211
+ $(wym._iframe).contents().find('.selected_by_wym').removeClass('selected_by_wym');
212
+ wym.format_block();
213
+ };
214
+
215
+ WYMeditor.WymClassExplorer.prototype.setFocusToNode = function(node, toStart) {
216
+ (wym = this)._iframe.contentWindow.focus();
217
+ var range = wym._doc.selection.createRange();
218
+ toStart = toStart ? true : false;
219
+
220
+ range.moveToElementText(node);
221
+ range.collapse(toStart);
222
+ range.select();
223
+ node.focus();
224
+ };
@@ -0,0 +1,293 @@
1
+ /*
2
+ * WYMeditor : what you see is What You Mean web-based editor
3
+ * Copyright (c) 2005 - 2009 Jean-Francois Hovinne, http://www.wymeditor.org/
4
+ * Dual licensed under the MIT (MIT-license.txt)
5
+ * and GPL (GPL-license.txt) licenses.
6
+ *
7
+ * For further information visit:
8
+ * http://www.wymeditor.org/
9
+ *
10
+ * File Name:
11
+ * jquery.wymeditor.mozilla.js
12
+ * Gecko specific class and functions.
13
+ * See the documentation for more info.
14
+ *
15
+ * File Authors:
16
+ * Jean-Francois Hovinne (jf.hovinne a-t wymeditor dotorg)
17
+ * Volker Mische (vmx a-t gmx dotde)
18
+ * Bermi Ferrer (wymeditor a-t bermi dotorg)
19
+ * Frédéric Palluel-Lafleur (fpalluel a-t gmail dotcom)
20
+ */
21
+
22
+ WYMeditor.WymClassMozilla = function(wym) {
23
+
24
+ this._wym = wym;
25
+ this._class = "class";
26
+ this._newLine = "\n";
27
+ };
28
+
29
+ WYMeditor.WymClassMozilla.prototype.initIframe = function(iframe) {
30
+
31
+ var wym = this;
32
+
33
+ this._iframe = iframe;
34
+ this._doc = iframe.contentDocument;
35
+
36
+ //add css rules from options
37
+
38
+ var styles = this._doc.styleSheets[0];
39
+ var aCss = eval(this._options.editorStyles);
40
+
41
+ this.addCssRules(this._doc, aCss);
42
+
43
+ this._doc.title = this._wym._index;
44
+
45
+ //set the text direction
46
+ $('html', this._doc).attr('dir', this._options.direction);
47
+
48
+ //add error class to body if the containing iframe has an error class
49
+ $('.fieldWithErrors iframe').contents().find('body').addClass('fieldWithErrors');
50
+
51
+ //init html value
52
+ this.html(this._wym._html);
53
+
54
+ //init designMode
55
+ this.enableDesignMode();
56
+
57
+ //pre-bind functions
58
+ if($.isFunction(this._options.preBind)) this._options.preBind(this);
59
+
60
+ //bind external events
61
+ this._wym.bindEvents();
62
+
63
+ //bind editor keydown events
64
+ $(this._doc).bind("keydown", this.keydown);
65
+
66
+ //bind editor keyup events
67
+ $(this._doc).bind("keyup", this.keyup);
68
+
69
+ //bind editor paste events
70
+ $(this._doc).bind("paste", this.intercept_paste);
71
+
72
+ //bind editor focus events (used to reset designmode - Gecko bug)
73
+ $(this._doc).bind("focus", function (){
74
+ // Fix scope
75
+ wym.enableDesignMode.call(wym);
76
+ });
77
+
78
+ //post-init functions
79
+ if($.isFunction(this._options.postInit)) this._options.postInit(this);
80
+
81
+ //add event listeners to doc elements, e.g. images
82
+ this.listen();
83
+ };
84
+
85
+ /* @name html
86
+ * @description Get/Set the html value
87
+ */
88
+ WYMeditor.WymClassMozilla.prototype.html = function(html) {
89
+
90
+ if(typeof html === 'string') {
91
+
92
+ //disable designMode
93
+ try { this._doc.designMode = "off"; } catch(e) { };
94
+
95
+ //replace em by i and strong by bold
96
+ //(designMode issue)
97
+ html = html.replace(/<em(\b[^>]*)>/gi, "<i$1>")
98
+ .replace(/<\/em>/gi, "</i>")
99
+ .replace(/<strong(\b[^>]*)>/gi, "<b$1>")
100
+ .replace(/<\/strong>/gi, "</b>");
101
+
102
+ //update the html body
103
+ $(this._doc.body).html(html);
104
+
105
+ //re-init designMode
106
+ this.enableDesignMode();
107
+ }
108
+ else {
109
+ return($(this._doc.body).html());
110
+ }
111
+ };
112
+
113
+ WYMeditor.WymClassMozilla.prototype._exec = function(cmd,param) {
114
+
115
+ if(!this.selected()) return(false);
116
+
117
+ switch(cmd) {
118
+
119
+ case WYMeditor.INDENT: case WYMeditor.OUTDENT:
120
+ var focusNode = this.selected();
121
+ var sel = this._iframe.contentWindow.getSelection();
122
+ var anchorNode = sel.anchorNode;
123
+ if(anchorNode.nodeName == "#text") {
124
+ anchorNode = anchorNode.parentNode;
125
+ }
126
+
127
+ focusNode = this.findUp(focusNode, WYMeditor.BLOCKS);
128
+ anchorNode = this.findUp(anchorNode, WYMeditor.BLOCKS);
129
+
130
+ if(focusNode && focusNode == anchorNode && focusNode.tagName.toLowerCase() == WYMeditor.LI) {
131
+ var ancestor = focusNode.parentNode.parentNode;
132
+
133
+ if(focusNode.parentNode.childNodes.length > 1 || $.inArray(ancestor.tagName.toLowerCase(), [WYMeditor.OL, WYMeditor.UL]) > -1) {
134
+ this._doc.execCommand(cmd,'',null);
135
+ }
136
+ }
137
+ break;
138
+
139
+ default:
140
+ if(param) this._doc.execCommand(cmd,'',param);
141
+ else this._doc.execCommand(cmd,'',null);
142
+ }
143
+
144
+ //set to P if parent = BODY
145
+ var container = this.selected();
146
+ if(container.tagName.toLowerCase() == WYMeditor.BODY) {
147
+ this._exec(WYMeditor.FORMAT_BLOCK, WYMeditor.P);
148
+ }
149
+ };
150
+
151
+
152
+
153
+ /* @name selected
154
+ * @description Returns the selected container
155
+ */
156
+ WYMeditor.WymClassMozilla.prototype.selected = function(upgrade_text_nodes) {
157
+
158
+ if (upgrade_text_nodes == null || upgrade_text_nodes.toString() != "true") { upgrade_text_nodes = false; }
159
+ var sel = this._iframe.contentWindow.getSelection();
160
+ var node = sel.focusNode;
161
+ if(node) {
162
+ if(node.nodeName == "#text"){
163
+ if (upgrade_text_nodes && sel.toString().length > 0) {
164
+ actual_node = null;
165
+ parent_node = sel.focusNode.parentNode;
166
+ if (parent_node != null) {
167
+ for (i=0;i<parent_node.childNodes.length;i++){
168
+ child_node = parent_node.childNodes[i];
169
+ if (child_node.nodeName != "#text" && child_node.innerHTML == sel.toString()){
170
+ actual_node = child_node;
171
+ }
172
+ }
173
+ }
174
+
175
+ if (actual_node == null) {
176
+ return this.switchTo(sel, 'span');
177
+ } else {
178
+ return actual_node;
179
+ }
180
+ }
181
+ else {
182
+ return node.parentNode;
183
+ }
184
+ }
185
+ else {
186
+ return(node);
187
+ }
188
+ }
189
+ else {
190
+ return(null);
191
+ }
192
+ };
193
+
194
+ WYMeditor.WymClassMozilla.prototype.addCssRule = function(styles, oCss) {
195
+ styles.insertRule(oCss.name + " {" + oCss.css + "}", styles.cssRules.length);
196
+ };
197
+
198
+
199
+ //keydown handler, mainly used for keyboard shortcuts
200
+ WYMeditor.WymClassMozilla.prototype.keydown = function(e) {
201
+
202
+ //'this' is the doc
203
+ var wym = WYMeditor.INSTANCES[this.title];
204
+
205
+ if(e.ctrlKey){
206
+ if(e.keyCode == 66){
207
+ //CTRL+b => STRONG
208
+ wym._exec(WYMeditor.BOLD);
209
+ return false;
210
+ }
211
+ if(e.keyCode == 73){
212
+ //CTRL+i => EMPHASIS
213
+ wym._exec(WYMeditor.ITALIC);
214
+ return false;
215
+ }
216
+ }
217
+ else if(e.keyCode == 13) {
218
+ if(!e.shiftKey){
219
+ //fix PRE bug #73
220
+ container = wym.selected();
221
+ if(container && container.tagName.toLowerCase() == WYMeditor.PRE) {
222
+ e.preventDefault();
223
+ wym.insert('<p></p>');
224
+ }
225
+ }
226
+ }
227
+ };
228
+
229
+ //keyup handler, mainly used for cleanups
230
+ WYMeditor.WymClassMozilla.prototype.keyup = function(e) {
231
+
232
+ //'this' is the doc
233
+ if ((wym = WYMeditor.INSTANCES[this.title]) != null)
234
+ {
235
+ wym._selected_image = null;
236
+ $(wym._iframe).contents().find('.selected_by_wym').removeClass('selected_by_wym');
237
+ var container = null;
238
+
239
+ if(e.keyCode == 13 && !e.shiftKey) {
240
+ //RETURN key - cleanup <br><br> between paragraphs
241
+ $(wym._doc.body).children(WYMeditor.BR).remove();
242
+
243
+ //fix PRE bug #73
244
+ if((container = wym.selected()) && container.tagName.toLowerCase() == WYMeditor.PRE) {
245
+ wym._exec(WYMeditor.FORMAT_BLOCK, WYMeditor.P); //create P after PRE
246
+ }
247
+ }
248
+ else if(($.inArray(e.keyCode, [8, 17, 46, 224]) == -1) && !e.metaKey && !e.ctrlKey) {
249
+ //NOT BACKSPACE, NOT DELETE, NOT CTRL, NOT COMMAND
250
+ //text nodes replaced by P
251
+ wym.format_block();
252
+ }
253
+ }
254
+ };
255
+
256
+ WYMeditor.WymClassMozilla.prototype.enableDesignMode = function() {
257
+ if(this._doc.designMode == "off") {
258
+ try {
259
+ this._doc.designMode = "on";
260
+ this._doc.execCommand("styleWithCSS", '', false);
261
+ }
262
+ catch(e) { }
263
+ }
264
+ };
265
+
266
+ WYMeditor.WymClassMozilla.prototype.openBlockTag = function(tag, attributes)
267
+ {
268
+ var attributes = this.validator.getValidTagAttributes(tag, attributes);
269
+
270
+ // Handle Mozilla styled spans
271
+ if(tag == 'span' && attributes.style) {
272
+ var new_tag = this.getTagForStyle(attributes.style);
273
+ if(new_tag){
274
+ this._tag_stack.pop();
275
+ var tag = new_tag;
276
+ this._tag_stack.push(new_tag);
277
+ attributes.style = '';
278
+ } else {
279
+ return;
280
+ }
281
+ }
282
+
283
+ this.output += this.helper.tag(tag, attributes, true);
284
+ };
285
+
286
+ WYMeditor.WymClassMozilla.prototype.getTagForStyle = function(style) {
287
+
288
+ if(/bold/.test(style)) return 'strong';
289
+ if(/italic/.test(style)) return 'em';
290
+ if(/sub/.test(style)) return 'sub';
291
+ if(/super/.test(style)) return 'super';
292
+ return false;
293
+ };
@@ -0,0 +1,123 @@
1
+ /*
2
+ * WYMeditor : what you see is What You Mean web-based editor
3
+ * Copyright (c) 2005 - 2009 Jean-Francois Hovinne, http://www.wymeditor.org/
4
+ * Dual licensed under the MIT (MIT-license.txt)
5
+ * and GPL (GPL-license.txt) licenses.
6
+ *
7
+ * For further information visit:
8
+ * http://www.wymeditor.org/
9
+ *
10
+ * File Name:
11
+ * jquery.wymeditor.opera.js
12
+ * Opera specific class and functions.
13
+ * See the documentation for more info.
14
+ *
15
+ * File Authors:
16
+ * Jean-Francois Hovinne (jf.hovinne a-t wymeditor dotorg)
17
+ */
18
+
19
+ WYMeditor.WymClassOpera = function(wym) {
20
+
21
+ this._wym = wym;
22
+ this._class = "class";
23
+ this._newLine = "\r\n";
24
+ };
25
+
26
+ WYMeditor.WymClassOpera.prototype.initIframe = function(iframe) {
27
+
28
+ this._iframe = iframe;
29
+ this._doc = iframe.contentWindow.document;
30
+
31
+ //add css rules from options
32
+ var styles = this._doc.styleSheets[0];
33
+ var aCss = eval(this._options.editorStyles);
34
+
35
+ this.addCssRules(this._doc, aCss);
36
+
37
+ this._doc.title = this._wym._index;
38
+
39
+ //set the text direction
40
+ $('html', this._doc).attr('dir', this._options.direction);
41
+
42
+ //init designMode
43
+ this._doc.designMode = "on";
44
+
45
+ //init html value
46
+ this.html(this._wym._html);
47
+
48
+ //pre-bind functions
49
+ if($.isFunction(this._options.preBind)) this._options.preBind(this);
50
+
51
+ //bind external events
52
+ this._wym.bindEvents();
53
+
54
+ //bind editor keydown events
55
+ $(this._doc).bind("keydown", this.keydown);
56
+
57
+ //bind editor events
58
+ $(this._doc).bind("keyup", this.keyup);
59
+
60
+ // bind paste events for when this is supported.
61
+ $(this._doc).bind("paste", this.intercept_paste);
62
+
63
+ //post-init functions
64
+ if($.isFunction(this._options.postInit)) this._options.postInit(this);
65
+
66
+ //add event listeners to doc elements, e.g. images
67
+ this.listen();
68
+ };
69
+
70
+ WYMeditor.WymClassOpera.prototype._exec = function(cmd,param) {
71
+ if(param) this._doc.execCommand(cmd,false,param);
72
+ else this._doc.execCommand(cmd);
73
+ };
74
+
75
+ WYMeditor.WymClassOpera.prototype.selected = function() {
76
+ var sel=this._iframe.contentWindow.getSelection();
77
+ var node=sel.focusNode;
78
+ if(node) {
79
+ if(node.nodeName=="#text") {
80
+ return(node.parentNode);
81
+ }
82
+ else {
83
+ return(node);
84
+ }
85
+ } else {
86
+ return(null);
87
+ }
88
+ };
89
+
90
+ WYMeditor.WymClassOpera.prototype.addCssRule = function(styles, oCss) {
91
+ styles.insertRule(oCss.name + " {" + oCss.css + "}", styles.cssRules.length);
92
+ };
93
+
94
+ //keydown handler
95
+ WYMeditor.WymClassOpera.prototype.keydown = function(e) {
96
+
97
+ //'this' is the doc
98
+ var wym = WYMeditor.INSTANCES[this.title];
99
+ var sel = wym._iframe.contentWindow.getSelection();
100
+ startNode = sel.getRangeAt(0).startContainer;
101
+
102
+ //Get a P instead of no container
103
+ if(!$(startNode).parentsOrSelf(WYMeditor.MAIN_CONTAINERS.join(","))[0]
104
+ && !$(startNode).parentsOrSelf('li')
105
+ && e.keyCode != WYMeditor.KEY.ENTER
106
+ && e.keyCode != WYMeditor.KEY.LEFT
107
+ && e.keyCode != WYMeditor.KEY.UP
108
+ && e.keyCode != WYMeditor.KEY.RIGHT
109
+ && e.keyCode != WYMeditor.KEY.DOWN
110
+ && e.keyCode != WYMeditor.KEY.BACKSPACE
111
+ && e.keyCode != WYMeditor.KEY.DELETE)
112
+ wym._exec(WYMeditor.FORMAT_BLOCK, WYMeditor.P);
113
+
114
+ };
115
+
116
+ //keyup handler
117
+ WYMeditor.WymClassOpera.prototype.keyup = function(e) {
118
+
119
+ //'this' is the doc
120
+ var wym = WYMeditor.INSTANCES[this.title];
121
+ wym._selected_image = null;
122
+ $(wym._iframe).contents().find('.selected_by_wym').removeClass('selected_by_wym');
123
+ };