browsercms 3.3.4 → 3.4.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1153) hide show
  1. data/.gitignore +24 -0
  2. data/.rvmrc +2 -0
  3. data/COPYRIGHT.txt +26 -0
  4. data/GPL.txt +674 -0
  5. data/Gemfile +29 -0
  6. data/Gemfile.lock +192 -0
  7. data/README.markdown +4 -14
  8. data/Rakefile +97 -0
  9. data/app/assets/images/browsercms/.gitkeep +0 -0
  10. data/{public → app/assets}/images/cms/administration/user_browser_bg.gif +0 -0
  11. data/{public → app/assets}/images/cms/bg.png +0 -0
  12. data/{public → app/assets}/images/cms/bl_curve.png +0 -0
  13. data/{public → app/assets}/images/cms/bottom_cap.png +0 -0
  14. data/{public → app/assets}/images/cms/bottom_cap_content.png +0 -0
  15. data/{public → app/assets}/images/cms/browse.gif +0 -0
  16. data/{public → app/assets}/images/cms/browser_media_logo.png +0 -0
  17. data/{public → app/assets}/images/cms/browsercms_logo.png +0 -0
  18. data/{public → app/assets}/images/cms/buttons/button.png +0 -0
  19. data/{public → app/assets}/images/cms/buttons/button_bg.png +0 -0
  20. data/{public → app/assets}/images/cms/buttons/button_cap.png +0 -0
  21. data/{public → app/assets}/images/cms/buttons/button_cap_h.png +0 -0
  22. data/{public → app/assets}/images/cms/buttons/button_cap_off.gif +0 -0
  23. data/{public → app/assets}/images/cms/buttons/button_cap_off_middle.gif +0 -0
  24. data/{public → app/assets}/images/cms/buttons/button_h.png +0 -0
  25. data/{public → app/assets}/images/cms/buttons/button_left_bg.png +0 -0
  26. data/{public → app/assets}/images/cms/buttons/button_off.png +0 -0
  27. data/{public → app/assets}/images/cms/buttons/button_off_middle.png +0 -0
  28. data/{public → app/assets}/images/cms/buttons/delete_x.png +0 -0
  29. data/{public → app/assets}/images/cms/buttons/delete_x_disabled.png +0 -0
  30. data/{public → app/assets}/images/cms/buttons/delete_x_h.png +0 -0
  31. data/{public → app/assets}/images/cms/buttons/sm_button.gif +0 -0
  32. data/{public → app/assets}/images/cms/buttons/sm_button_2.gif +0 -0
  33. data/{public → app/assets}/images/cms/buttons/sm_button_2_h.gif +0 -0
  34. data/{public → app/assets}/images/cms/buttons/sm_button_h.gif +0 -0
  35. data/{public → app/assets}/images/cms/containers/add.gif +0 -0
  36. data/{public → app/assets}/images/cms/containers/alpha.png +0 -0
  37. data/{public → app/assets}/images/cms/containers/beta.png +0 -0
  38. data/{public → app/assets}/images/cms/containers/delete.gif +0 -0
  39. data/{public → app/assets}/images/cms/containers/down.gif +0 -0
  40. data/{public → app/assets}/images/cms/containers/edit.gif +0 -0
  41. data/{public → app/assets}/images/cms/containers/up.gif +0 -0
  42. data/{public → app/assets}/images/cms/containers/view.gif +0 -0
  43. data/{public → app/assets}/images/cms/content_bg.gif +0 -0
  44. data/{public → app/assets}/images/cms/dashboard/bottom_cap.png +0 -0
  45. data/{public → app/assets}/images/cms/dashboard/bottom_cap_content.png +0 -0
  46. data/{public → app/assets}/images/cms/dashboard/header_bg.gif +0 -0
  47. data/{public → app/assets}/images/cms/dashboard/header_left_bg.gif +0 -0
  48. data/{public → app/assets}/images/cms/dashboard/table_header_bg.gif +0 -0
  49. data/{public → app/assets}/images/cms/dashboard/top_cap.png +0 -0
  50. data/{public → app/assets}/images/cms/dashed.gif +0 -0
  51. data/{public → app/assets}/images/cms/datepicker/clear.gif +0 -0
  52. data/{public → app/assets}/images/cms/datepicker/close.gif +0 -0
  53. data/{public → app/assets}/images/cms/dk_button_l.gif +0 -0
  54. data/{public → app/assets}/images/cms/dk_button_r.gif +0 -0
  55. data/{public → app/assets}/images/cms/dot.png +0 -0
  56. data/{public → app/assets}/images/cms/draft_status.gif +0 -0
  57. data/{public → app/assets}/images/cms/gray_long_bg.gif +0 -0
  58. data/{public → app/assets}/images/cms/icons/actions/add.png +0 -0
  59. data/{public → app/assets}/images/cms/icons/actions/config.png +0 -0
  60. data/{public → app/assets}/images/cms/icons/actions/connect.png +0 -0
  61. data/{public → app/assets}/images/cms/icons/actions/delete.png +0 -0
  62. data/{public → app/assets}/images/cms/icons/actions/down.png +0 -0
  63. data/{public → app/assets}/images/cms/icons/actions/edit.png +0 -0
  64. data/{public → app/assets}/images/cms/icons/actions/folder.png +0 -0
  65. data/{public → app/assets}/images/cms/icons/actions/folder_add.png +0 -0
  66. data/{public → app/assets}/images/cms/icons/actions/folder_delete.png +0 -0
  67. data/{public → app/assets}/images/cms/icons/actions/folder_edit.png +0 -0
  68. data/{public → app/assets}/images/cms/icons/actions/folder_move.png +0 -0
  69. data/{public → app/assets}/images/cms/icons/actions/folder_open.png +0 -0
  70. data/{public → app/assets}/images/cms/icons/actions/history.png +0 -0
  71. data/{public → app/assets}/images/cms/icons/actions/home.png +0 -0
  72. data/{public → app/assets}/images/cms/icons/actions/left.png +0 -0
  73. data/{public → app/assets}/images/cms/icons/actions/link.png +0 -0
  74. data/{public → app/assets}/images/cms/icons/actions/page.png +0 -0
  75. data/{public → app/assets}/images/cms/icons/actions/page_add.png +0 -0
  76. data/{public → app/assets}/images/cms/icons/actions/page_edit.png +0 -0
  77. data/{public → app/assets}/images/cms/icons/actions/page_move.png +0 -0
  78. data/{public → app/assets}/images/cms/icons/actions/redo.png +0 -0
  79. data/{public → app/assets}/images/cms/icons/actions/refresh.png +0 -0
  80. data/{public → app/assets}/images/cms/icons/actions/right.png +0 -0
  81. data/{public → app/assets}/images/cms/icons/actions/root_folder.png +0 -0
  82. data/{public → app/assets}/images/cms/icons/actions/root_link.png +0 -0
  83. data/{public → app/assets}/images/cms/icons/actions/root_page.png +0 -0
  84. data/{public → app/assets}/images/cms/icons/actions/undo.png +0 -0
  85. data/{public → app/assets}/images/cms/icons/actions/up.png +0 -0
  86. data/{public → app/assets}/images/cms/icons/actions/view.png +0 -0
  87. data/{public → app/assets}/images/cms/icons/file_types/doc.png +0 -0
  88. data/{public → app/assets}/images/cms/icons/file_types/file.png +0 -0
  89. data/{public → app/assets}/images/cms/icons/file_types/gif.png +0 -0
  90. data/{public → app/assets}/images/cms/icons/file_types/htm.png +0 -0
  91. data/{public → app/assets}/images/cms/icons/file_types/pdf.png +0 -0
  92. data/{public → app/assets}/images/cms/icons/file_types/ppt.png +0 -0
  93. data/{public → app/assets}/images/cms/icons/file_types/swf.png +0 -0
  94. data/{public → app/assets}/images/cms/icons/file_types/txt.png +0 -0
  95. data/{public → app/assets}/images/cms/icons/file_types/xls.png +0 -0
  96. data/{public → app/assets}/images/cms/icons/file_types/xml.png +0 -0
  97. data/{public → app/assets}/images/cms/icons/file_types/zip.png +0 -0
  98. data/{public → app/assets}/images/cms/icons/status/archived.gif +0 -0
  99. data/{public → app/assets}/images/cms/icons/status/draft.gif +0 -0
  100. data/{public → app/assets}/images/cms/icons/status/hidden.gif +0 -0
  101. data/{public → app/assets}/images/cms/icons/status/locked.gif +0 -0
  102. data/{public → app/assets}/images/cms/icons/status/published.gif +0 -0
  103. data/{public → app/assets}/images/cms/icons/status/unlocked.gif +0 -0
  104. data/{public → app/assets}/images/cms/icons/user.png +0 -0
  105. data/{public → app/assets}/images/cms/login_bg.jpg +0 -0
  106. data/{public → app/assets}/images/cms/login_bottom.jpg +0 -0
  107. data/{public → app/assets}/images/cms/login_top.gif +0 -0
  108. data/{public → app/assets}/images/cms/lt_button_bg.gif +0 -0
  109. data/{public → app/assets}/images/cms/lt_button_l.gif +0 -0
  110. data/{public → app/assets}/images/cms/lt_button_r.gif +0 -0
  111. data/{public → app/assets}/images/cms/menu.png +0 -0
  112. data/{public → app/assets}/images/cms/menu/block_cap_h.gif +0 -0
  113. data/{public → app/assets}/images/cms/menu/bottom_cap.png +0 -0
  114. data/{public → app/assets}/images/cms/menu/bottom_cap_menu.png +0 -0
  115. data/{public → app/assets}/images/cms/menu/bottom_cap_menu_first.png +0 -0
  116. data/{public → app/assets}/images/cms/menu/menu_header_first_bg.gif +0 -0
  117. data/{public → app/assets}/images/cms/menu/selected_block_cap.gif +0 -0
  118. data/{public → app/assets}/images/cms/menu/top_cap.png +0 -0
  119. data/{public → app/assets}/images/cms/menu/top_cap_menu_header.png +0 -0
  120. data/{public → app/assets}/images/cms/menu_h.gif +0 -0
  121. data/{public → app/assets}/images/cms/menu_header.png +0 -0
  122. data/{public → app/assets}/images/cms/menu_open.png +0 -0
  123. data/{public → app/assets}/images/cms/menu_open_bg.gif +0 -0
  124. data/{public → app/assets}/images/cms/nav.png +0 -0
  125. data/{public → app/assets}/images/cms/nav/on_bg.gif +0 -0
  126. data/{public → app/assets}/images/cms/nav_admin.gif +0 -0
  127. data/{public → app/assets}/images/cms/nav_admin_h.gif +0 -0
  128. data/{public → app/assets}/images/cms/nav_admin_on.gif +0 -0
  129. data/{public → app/assets}/images/cms/nav_cap.png +0 -0
  130. data/{public → app/assets}/images/cms/nav_cap_h.gif +0 -0
  131. data/{public → app/assets}/images/cms/nav_content_library.gif +0 -0
  132. data/{public → app/assets}/images/cms/nav_content_library_h.gif +0 -0
  133. data/{public → app/assets}/images/cms/nav_content_library_on.gif +0 -0
  134. data/{public → app/assets}/images/cms/nav_dash.gif +0 -0
  135. data/{public → app/assets}/images/cms/nav_dash_h.gif +0 -0
  136. data/{public → app/assets}/images/cms/nav_dash_on.gif +0 -0
  137. data/{public → app/assets}/images/cms/nav_h.gif +0 -0
  138. data/{public → app/assets}/images/cms/nav_sitemap.gif +0 -0
  139. data/{public → app/assets}/images/cms/nav_sitemap_h.gif +0 -0
  140. data/{public → app/assets}/images/cms/nav_sitemap_on.gif +0 -0
  141. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_bg.gif +0 -0
  142. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_bg.gif +0 -0
  143. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_draft_bg.gif +0 -0
  144. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_draft_l.gif +0 -0
  145. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_draft_r.gif +0 -0
  146. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_l.gif +0 -0
  147. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_published_bg.gif +0 -0
  148. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_published_l.gif +0 -0
  149. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_published_r.gif +0 -0
  150. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_inset_r.gif +0 -0
  151. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_l.gif +0 -0
  152. data/{public → app/assets}/images/cms/page_toolbar/page_toolbar_r.gif +0 -0
  153. data/{public → app/assets}/images/cms/page_toolbar/status_draft_bg.gif +0 -0
  154. data/{public → app/assets}/images/cms/page_toolbar/status_draft_l.gif +0 -0
  155. data/{public → app/assets}/images/cms/page_toolbar/status_l.gif +0 -0
  156. data/{public → app/assets}/images/cms/page_toolbar/status_published_bg.gif +0 -0
  157. data/{public → app/assets}/images/cms/page_toolbar/status_published_l.gif +0 -0
  158. data/{public → app/assets}/images/cms/page_toolbar/visual_editor_bg.gif +0 -0
  159. data/{public → app/assets}/images/cms/page_toolbar/visual_editor_end.gif +0 -0
  160. data/{public → app/assets}/images/cms/page_toolbar/visual_editor_r.gif +0 -0
  161. data/{public → app/assets}/images/cms/page_toolbar/visual_editor_state_bg.gif +0 -0
  162. data/{public → app/assets}/images/cms/pages/add_connectable.gif +0 -0
  163. data/{public → app/assets}/images/cms/pages/connect_connectable.gif +0 -0
  164. data/{public → app/assets}/images/cms/pages/container_border.gif +0 -0
  165. data/{public → app/assets}/images/cms/pages/container_border_l.gif +0 -0
  166. data/{public → app/assets}/images/cms/pages/container_border_r.gif +0 -0
  167. data/{public → app/assets}/images/cms/pages/delete_connectable.gif +0 -0
  168. data/{public → app/assets}/images/cms/pages/down_connectable.gif +0 -0
  169. data/{public → app/assets}/images/cms/pages/down_connectable_disabled.gif +0 -0
  170. data/{public → app/assets}/images/cms/pages/edit_connectable.gif +0 -0
  171. data/{public → app/assets}/images/cms/pages/edit_connectable_2.gif +0 -0
  172. data/{public → app/assets}/images/cms/pages/show_connectable.gif +0 -0
  173. data/{public → app/assets}/images/cms/pages/up_connectable.gif +0 -0
  174. data/{public → app/assets}/images/cms/pages/up_connectable_disabled.gif +0 -0
  175. data/{public → app/assets}/images/cms/pagination/first.gif +0 -0
  176. data/{public → app/assets}/images/cms/pagination/first_h.gif +0 -0
  177. data/{public → app/assets}/images/cms/pagination/input.gif +0 -0
  178. data/{public → app/assets}/images/cms/pagination/last.gif +0 -0
  179. data/{public → app/assets}/images/cms/pagination/last_h.gif +0 -0
  180. data/{public → app/assets}/images/cms/pagination/next.gif +0 -0
  181. data/{public → app/assets}/images/cms/pagination/next_h.gif +0 -0
  182. data/{public → app/assets}/images/cms/pagination/previous.gif +0 -0
  183. data/{public → app/assets}/images/cms/pagination/previous_h.gif +0 -0
  184. data/{public → app/assets}/images/cms/published_status.gif +0 -0
  185. data/{public → app/assets}/images/cms/search.png +0 -0
  186. data/{public → app/assets}/images/cms/search_submit.gif +0 -0
  187. data/{public → app/assets}/images/cms/search_submit_h.gif +0 -0
  188. data/{public → app/assets}/images/cms/searchbox_gradient.gif +0 -0
  189. data/{public → app/assets}/images/cms/select_bg.gif +0 -0
  190. data/{public → app/assets}/images/cms/select_bg_2.gif +0 -0
  191. data/{public → app/assets}/images/cms/sitemap/bottom_cap.png +0 -0
  192. data/{public → app/assets}/images/cms/sitemap/buffer_caps.png +0 -0
  193. data/{public → app/assets}/images/cms/sitemap/contract.png +0 -0
  194. data/{public → app/assets}/images/cms/sitemap/corners.gif +0 -0
  195. data/{public → app/assets}/images/cms/sitemap/corners_hover.gif +0 -0
  196. data/{public → app/assets}/images/cms/sitemap/divider.gif +0 -0
  197. data/{public → app/assets}/images/cms/sitemap/expand.png +0 -0
  198. data/{public → app/assets}/images/cms/sitemap/gradient.gif +0 -0
  199. data/{public → app/assets}/images/cms/sitemap/gray_contract.png +0 -0
  200. data/{public → app/assets}/images/cms/sitemap/gray_expand.png +0 -0
  201. data/{public → app/assets}/images/cms/sitemap/no_contents.png +0 -0
  202. data/{public → app/assets}/images/cms/sitemap/site_root_cap.png +0 -0
  203. data/{public → app/assets}/images/cms/sitemap/tooltip.gif +0 -0
  204. data/{public → app/assets}/images/cms/sitemap/top_cap_content.png +0 -0
  205. data/{public → app/assets}/images/cms/solid.gif +0 -0
  206. data/{public → app/assets}/images/cms/table/bl.gif +0 -0
  207. data/{public → app/assets}/images/cms/table/br.gif +0 -0
  208. data/{public → app/assets}/images/cms/table/divider.gif +0 -0
  209. data/{public → app/assets}/images/cms/table/td_cap_first_h.gif +0 -0
  210. data/{public → app/assets}/images/cms/table/td_cap_first_s.gif +0 -0
  211. data/{public → app/assets}/images/cms/table/td_cap_last_h.gif +0 -0
  212. data/{public → app/assets}/images/cms/table/td_cap_last_s.gif +0 -0
  213. data/{public → app/assets}/images/cms/table/td_last_bg.gif +0 -0
  214. data/{public → app/assets}/images/cms/table/th_bg.gif +0 -0
  215. data/{public → app/assets}/images/cms/table/th_divider.gif +0 -0
  216. data/{public → app/assets}/images/cms/table/th_last_bg.gif +0 -0
  217. data/{public → app/assets}/images/cms/table/tl.gif +0 -0
  218. data/{public → app/assets}/images/cms/table/tr.gif +0 -0
  219. data/{public → app/assets}/images/cms/table/tr_bg.gif +0 -0
  220. data/{public → app/assets}/images/cms/toolbar_bg.png +0 -0
  221. data/{public → app/assets}/images/cms/top_cap.png +0 -0
  222. data/{public → app/assets}/images/cms/top_cap_content.png +0 -0
  223. data/{public → app/assets}/images/cms/top_cap_menu_header.png +0 -0
  224. data/{public → app/assets}/images/cms/user_search_submit.gif +0 -0
  225. data/{public → app/assets}/images/cms/usercontrols_bg.png +0 -0
  226. data/{public → app/assets}/images/cms/usercontrols_bg_cap.png +0 -0
  227. data/app/assets/javascripts/browsercms/application.js +9 -0
  228. data/app/assets/javascripts/cms/application.js +11 -0
  229. data/app/assets/javascripts/cms/content_library.js +102 -0
  230. data/app/assets/javascripts/cms/core_library.js +158 -0
  231. data/app/assets/javascripts/cms/sitemap.js.erb +464 -0
  232. data/app/assets/javascripts/cms/toolbar.js +5 -0
  233. data/app/assets/javascripts/jquery.taglist.js +143 -0
  234. data/app/assets/stylesheets/browsercms/application.css +7 -0
  235. data/app/assets/stylesheets/cms/administration.css.erb +91 -0
  236. data/app/assets/stylesheets/cms/application.css.erb +170 -0
  237. data/{public → app/assets}/stylesheets/cms/block.css +0 -0
  238. data/app/assets/stylesheets/cms/buttons.css.erb +120 -0
  239. data/app/assets/stylesheets/cms/content_library.css.erb +139 -0
  240. data/{public → app/assets}/stylesheets/cms/content_types.css +0 -0
  241. data/app/assets/stylesheets/cms/dashboard.css.erb +118 -0
  242. data/app/assets/stylesheets/cms/data_table.css.erb.erb +156 -0
  243. data/app/assets/stylesheets/cms/date_picker.css.erb +82 -0
  244. data/app/assets/stylesheets/cms/form_layout.css.erb +281 -0
  245. data/app/assets/stylesheets/cms/login.css.erb +78 -0
  246. data/app/assets/stylesheets/cms/menu.css.erb +116 -0
  247. data/app/assets/stylesheets/cms/nav.css.erb +99 -0
  248. data/app/assets/stylesheets/cms/page_toolbar.css.erb +135 -0
  249. data/{public → app/assets}/stylesheets/cms/reset.css +0 -0
  250. data/app/assets/stylesheets/cms/selectbox.css.erb +56 -0
  251. data/app/assets/stylesheets/cms/sitemap.css.erb +390 -0
  252. data/{public → app/assets}/stylesheets/cms/taglist.css +0 -0
  253. data/app/controllers/browsercms/application_controller.rb +4 -0
  254. data/app/controllers/cms/application_controller.rb +5 -2
  255. data/app/controllers/cms/attachments_controller.rb +3 -1
  256. data/app/controllers/cms/base_controller.rb +3 -1
  257. data/app/controllers/cms/cache_controller.rb +3 -1
  258. data/app/controllers/cms/categories_controller.rb +6 -4
  259. data/app/controllers/cms/category_types_controller.rb +5 -3
  260. data/app/controllers/cms/connectors_controller.rb +3 -1
  261. data/app/controllers/cms/content_block_controller.rb +26 -21
  262. data/app/controllers/cms/content_controller.rb +14 -7
  263. data/app/controllers/cms/content_types_controller.rb +3 -1
  264. data/app/controllers/cms/dashboard_controller.rb +5 -3
  265. data/app/controllers/cms/dynamic_views_controller.rb +58 -51
  266. data/app/controllers/cms/email_messages_controller.rb +3 -1
  267. data/app/controllers/cms/file_blocks_controller.rb +3 -1
  268. data/app/controllers/cms/groups_controller.rb +4 -2
  269. data/app/controllers/cms/home_controller.rb +5 -3
  270. data/app/controllers/cms/html_blocks_controller.rb +4 -2
  271. data/app/controllers/cms/image_blocks_controller.rb +3 -1
  272. data/app/controllers/cms/links_controller.rb +9 -7
  273. data/app/controllers/cms/page_route_conditions_controller.rb +3 -1
  274. data/app/controllers/cms/page_route_options_controller.rb +3 -1
  275. data/app/controllers/cms/page_route_requirements_controller.rb +3 -1
  276. data/app/controllers/cms/page_routes_controller.rb +6 -4
  277. data/app/controllers/cms/pages_controller.rb +8 -6
  278. data/app/controllers/cms/portlet_controller.rb +18 -15
  279. data/app/controllers/cms/portlets_controller.rb +8 -6
  280. data/app/controllers/cms/redirects_controller.rb +3 -1
  281. data/app/controllers/cms/resource_controller.rb +10 -4
  282. data/app/controllers/cms/routes_controller.rb +4 -2
  283. data/app/controllers/cms/section_nodes_controller.rb +3 -1
  284. data/app/controllers/cms/sections_controller.rb +12 -12
  285. data/app/controllers/cms/sessions_controller.rb +4 -2
  286. data/app/controllers/cms/tags_controller.rb +5 -1
  287. data/app/controllers/cms/tasks_controller.rb +6 -4
  288. data/app/controllers/cms/toolbar_controller.rb +4 -2
  289. data/app/controllers/cms/users_controller.rb +8 -6
  290. data/app/helpers/cms/application_helper.rb +17 -25
  291. data/app/helpers/cms/content_block_helper.rb +27 -0
  292. data/app/helpers/cms/menu_helper.rb +1 -1
  293. data/app/helpers/cms/page_helper.rb +13 -12
  294. data/app/helpers/cms/path_helper.rb +59 -24
  295. data/app/helpers/cms/rendering_helper.rb +1 -0
  296. data/app/helpers/cms/template_support.rb +4 -1
  297. data/app/helpers/cms/ui_elements_helper.rb +21 -0
  298. data/app/models/cms/abstract_file_block.rb +41 -0
  299. data/app/models/cms/attachment.rb +184 -0
  300. data/app/models/cms/category.rb +41 -0
  301. data/app/models/cms/category_type.rb +37 -0
  302. data/app/models/cms/connector.rb +83 -0
  303. data/app/models/cms/content_type.rb +130 -0
  304. data/app/models/cms/content_type_group.rb +13 -0
  305. data/app/models/cms/dynamic_view.rb +102 -0
  306. data/app/models/cms/email_message.rb +31 -0
  307. data/app/models/cms/email_message_mailer.rb +12 -0
  308. data/app/models/cms/file_block.rb +11 -0
  309. data/app/models/cms/forgot_password_mailer.rb +14 -0
  310. data/app/models/cms/group.rb +49 -0
  311. data/app/models/cms/group_permission.rb +10 -0
  312. data/app/models/cms/group_section.rb +6 -0
  313. data/app/models/cms/group_type.rb +14 -0
  314. data/app/models/cms/group_type_permission.rb +6 -0
  315. data/app/models/cms/guest_user.rb +57 -0
  316. data/app/models/cms/html_block.rb +42 -0
  317. data/app/models/cms/image_block.rb +11 -0
  318. data/app/models/cms/link.rb +18 -0
  319. data/app/models/cms/page.rb +321 -0
  320. data/app/models/cms/page_partial.rb +32 -0
  321. data/app/models/cms/page_route.rb +136 -0
  322. data/app/models/cms/page_route_condition.rb +4 -0
  323. data/app/models/cms/page_route_option.rb +5 -0
  324. data/app/models/cms/page_route_requirement.rb +4 -0
  325. data/app/models/cms/page_template.rb +40 -0
  326. data/app/models/cms/permission.rb +12 -0
  327. data/app/models/cms/portlet.rb +182 -0
  328. data/app/models/cms/redirect.rb +6 -0
  329. data/app/models/cms/section.rb +199 -0
  330. data/app/models/cms/section_node.rb +108 -0
  331. data/app/models/cms/site.rb +42 -0
  332. data/app/models/cms/tag.rb +65 -0
  333. data/app/models/cms/tagging.rb +11 -0
  334. data/app/models/cms/task.rb +78 -0
  335. data/app/models/cms/templates.rb +32 -0
  336. data/app/models/cms/user.rb +173 -0
  337. data/app/models/cms/user_group_membership.rb +6 -0
  338. data/app/models/cms/view_context.rb +1 -1
  339. data/app/portlets/dynamic_portlet.rb +2 -2
  340. data/app/portlets/email_page_portlet.rb +8 -7
  341. data/app/portlets/forgot_password_portlet.rb +4 -3
  342. data/app/portlets/login_portlet.rb +2 -2
  343. data/app/portlets/reset_password_portlet.rb +2 -2
  344. data/app/portlets/tag_cloud_portlet.rb +3 -3
  345. data/app/views/cms/blocks/_toolbar_for_member.html.erb +6 -6
  346. data/app/views/cms/blocks/edit.html.erb +2 -4
  347. data/app/views/cms/blocks/index.html.erb +14 -54
  348. data/app/views/cms/blocks/new.html.erb +1 -3
  349. data/app/views/cms/blocks/show.html.erb +1 -1
  350. data/app/views/cms/blocks/versions.html.erb +2 -2
  351. data/app/views/cms/cache/show.html.erb +1 -1
  352. data/app/views/cms/categories/_form.html.erb +8 -8
  353. data/app/views/cms/connectors/new.html.erb +4 -4
  354. data/app/views/cms/content_types/index.html.erb +3 -3
  355. data/app/views/cms/dashboard/_page_drafts.html.erb +1 -1
  356. data/app/views/cms/dashboard/_tasks.html.erb +1 -1
  357. data/app/views/cms/dashboard/index.html.erb +2 -2
  358. data/app/views/cms/dynamic_views/_form.html.erb +2 -2
  359. data/app/views/cms/dynamic_views/index.html.erb +7 -7
  360. data/app/views/cms/dynamic_views/new.html.erb +1 -1
  361. data/app/views/cms/email_messages/index.html.erb +2 -2
  362. data/app/views/cms/file_blocks/_form.html.erb +4 -3
  363. data/app/views/cms/file_blocks/render.html.erb +1 -1
  364. data/app/views/cms/form_builder/_cms_template_editor.html.erb +1 -0
  365. data/app/views/cms/groups/_form.html.erb +4 -5
  366. data/app/views/cms/groups/_permissions.html.erb +2 -2
  367. data/app/views/cms/groups/_sections.html.erb +1 -1
  368. data/app/views/cms/groups/index.html.erb +5 -5
  369. data/app/views/cms/image_blocks/_form.html.erb +1 -1
  370. data/app/views/cms/links/edit.html.erb +3 -4
  371. data/app/views/cms/links/new.html.erb +3 -4
  372. data/app/views/cms/page_routes/_form.html.erb +3 -3
  373. data/app/views/cms/page_routes/edit.html.erb +1 -1
  374. data/app/views/cms/page_routes/index.html.erb +2 -2
  375. data/app/views/cms/page_routes/new.html.erb +1 -1
  376. data/app/views/cms/page_routes/show.html.erb +5 -6
  377. data/app/views/cms/pages/_edit_connector.html.erb +5 -5
  378. data/app/views/cms/pages/_edit_container.html.erb +3 -3
  379. data/app/views/cms/pages/_form.html.erb +1 -1
  380. data/app/views/cms/pages/edit.html.erb +2 -2
  381. data/app/views/cms/pages/new.html.erb +3 -3
  382. data/app/views/cms/redirects/_form.html.erb +1 -1
  383. data/app/views/cms/redirects/index.html.erb +1 -1
  384. data/app/views/cms/redirects/new.html.erb +1 -1
  385. data/app/views/cms/routes/index.html.erb +1 -1
  386. data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
  387. data/app/views/cms/sections/edit.html.erb +2 -3
  388. data/app/views/cms/sections/new.html.erb +2 -2
  389. data/app/views/cms/sessions/new.html.erb +1 -1
  390. data/app/views/cms/shared/_admin_sidebar.html.erb +8 -8
  391. data/app/views/cms/tags/render.html.erb +2 -2
  392. data/app/views/cms/tasks/new.html.erb +2 -2
  393. data/app/views/cms/users/_form.html.erb +1 -1
  394. data/app/views/cms/users/_groups.html.erb +1 -1
  395. data/app/views/cms/users/_toolbar.html.erb +4 -2
  396. data/app/views/cms/users/change_password.html.erb +3 -3
  397. data/app/views/cms/users/edit.html.erb +2 -2
  398. data/app/views/cms/users/index.html.erb +5 -5
  399. data/app/views/cms/users/new.html.erb +1 -1
  400. data/app/views/cms/users/show.html.erb +2 -2
  401. data/app/views/layouts/_cms_toolbar.html.erb +14 -14
  402. data/app/views/layouts/_page_toolbar.html.erb +8 -8
  403. data/app/views/layouts/browsercms/application.html.erb +14 -0
  404. data/app/views/layouts/cms/_head.html.erb +1 -1
  405. data/app/views/layouts/cms/content_library.html.erb +10 -8
  406. data/app/views/layouts/cms/toolbar.html.erb +1 -2
  407. data/app/views/portlets/email_page/_form.html.erb +1 -2
  408. data/app/views/portlets/email_page/render.html.erb +2 -2
  409. data/app/views/portlets/login/render.html.erb +2 -2
  410. data/app/views/portlets/portlets/_form.html.erb +4 -4
  411. data/app/views/portlets/reset_password/_form.html.erb +2 -2
  412. data/bin/bcms +212 -47
  413. data/bin/bcms-upgrade +118 -17
  414. data/browsercms.gemspec +7 -20
  415. data/config/cucumber.yml +8 -0
  416. data/config/database.jdbcmysql.yml +30 -0
  417. data/config/database.mysql.yml +27 -0
  418. data/config/database.postgres.yml +25 -0
  419. data/config/database.sqlite3.yml +11 -0
  420. data/config/environment.rb +6 -0
  421. data/config/initializers/query_reviewer_patch.rb +12 -0
  422. data/config/initializers/rack_1_2_1_patch.rb +12 -0
  423. data/config/locales/en.yml +5 -0
  424. data/config/routes.rb +101 -0
  425. data/db/browsercms.seeds.rb +64 -0
  426. data/db/migrate/20080815014337_browsercms_3_0_0.rb +68 -76
  427. data/db/migrate/20091109175123_browsercms_3_0_5.rb +2 -2
  428. data/db/migrate/20100117144039_browsercms315.rb +22 -21
  429. data/db/migrate/20100705083859_browsercms_3_3_0.rb +5 -5
  430. data/db/migrate/20111130221145_browsercms340.rb +59 -0
  431. data/db/seeds.rb +1 -58
  432. data/doc/README_FOR_APP +6 -0
  433. data/doc/design/blue_button.psd +0 -0
  434. data/doc/design/gray_box.psd +0 -0
  435. data/doc/design/main_nav.psd +0 -0
  436. data/doc/installing_browsercms_in_project.md +7 -0
  437. data/doc/release_notes.md +390 -0
  438. data/doc/test_procedure.txt +141 -0
  439. data/doc/upgrading_to_3_3.txt +90 -0
  440. data/doc/upgrading_to_3_4.md +19 -0
  441. data/features/acts_as_content_page.feature +48 -0
  442. data/features/add_content_to_pages.feature +46 -0
  443. data/features/caching.feature +13 -0
  444. data/features/ckeditor.feature +11 -0
  445. data/features/commands/confirm_aruba_works.feature +24 -0
  446. data/features/commands/generate_module.feature +54 -0
  447. data/features/commands/install_browsercms.feature +21 -0
  448. data/features/commands/new_demo_project.feature +30 -0
  449. data/features/commands/new_projects.feature +43 -0
  450. data/features/commands/upgrade_modules_from_3_1_to_3_4.feature +19 -0
  451. data/features/commands/upgrading_modules.feature +66 -0
  452. data/features/content_blocks/manage_custom_blocks.feature +48 -0
  453. data/features/content_blocks/manage_html_blocks.feature +42 -0
  454. data/features/content_blocks/manage_image_blocks.feature +41 -0
  455. data/features/content_files.feature +37 -0
  456. data/features/content_pages.feature +21 -0
  457. data/features/create_pages.feature +15 -0
  458. data/features/generators/content_blocks_for_modules.feature +58 -0
  459. data/features/generators/content_blocks_for_projects.feature +109 -0
  460. data/features/install_content.feature +25 -0
  461. data/features/jquery-testplan.txt +12 -0
  462. data/features/manage_groups.feature +33 -0
  463. data/features/manage_page_routes.feature +72 -0
  464. data/features/manage_redirects.feature +20 -0
  465. data/features/manage_sections.feature +12 -0
  466. data/features/page_templates.feature +25 -0
  467. data/features/portlets/email_friend_portlet.feature +29 -0
  468. data/features/portlets/portlets.feature +93 -0
  469. data/features/portlets/tag_cloud_portlet.feature +28 -0
  470. data/features/sitemap.feature +18 -0
  471. data/features/step_definitions/acts_as_content_page_steps.rb.rb +3 -0
  472. data/features/step_definitions/ckeditor_steps.rb +13 -0
  473. data/features/step_definitions/command_line_steps.rb +115 -0
  474. data/features/step_definitions/content_pages_steps.rb +149 -0
  475. data/features/step_definitions/data_steps.rb +48 -0
  476. data/features/step_definitions/html_blocks_steps.rb +9 -0
  477. data/features/step_definitions/install_content_steps.rb +4 -0
  478. data/features/step_definitions/manage_content_blocks_steps.rb +26 -0
  479. data/features/step_definitions/manage_image_blocks_steps.rb +31 -0
  480. data/features/step_definitions/manage_sections_steps.rb +18 -0
  481. data/features/step_definitions/page_route_steps.rb +65 -0
  482. data/features/step_definitions/page_template_steps.rb +5 -0
  483. data/features/step_definitions/permissions_steps.rb +13 -0
  484. data/features/step_definitions/portlets_steps.rb +64 -0
  485. data/features/step_definitions/redirect_steps.rb +12 -0
  486. data/features/step_definitions/sitemap_steps.rb +18 -0
  487. data/features/step_definitions/tag_cloud_steps.rb +11 -0
  488. data/features/step_definitions/taxonomy_steps.rb +16 -0
  489. data/features/step_definitions/upgrade_module_steps.rb +74 -0
  490. data/features/step_definitions/web_steps.rb +211 -0
  491. data/features/support/command_line_helpers.rb +45 -0
  492. data/features/support/debug_formatter.rb +7 -0
  493. data/features/support/debugging.rb +28 -0
  494. data/features/support/env.rb +73 -0
  495. data/features/support/git_api.rb +9 -0
  496. data/features/support/open_on_first_failure.rb +25 -0
  497. data/features/support/paths.rb +32 -0
  498. data/features/support/rails_api.rb +8 -0
  499. data/features/support/selectors.rb +39 -0
  500. data/features/support/transforms.rb +7 -0
  501. data/features/taxonomy/add_content_with_category.feature +30 -0
  502. data/features/taxonomy/manage_categories.feature +20 -0
  503. data/features/taxonomy/manage_category_types.feature +16 -0
  504. data/lib/browsercms.rb +9 -2
  505. data/lib/cms/acts/cms_user.rb +118 -0
  506. data/lib/cms/acts/content_block.rb +15 -3
  507. data/lib/cms/addressable.rb +62 -60
  508. data/lib/cms/authentication/controller.rb +20 -20
  509. data/lib/cms/authoring.rb +9 -0
  510. data/lib/cms/behaviors/attaching.rb +5 -4
  511. data/lib/cms/behaviors/categorizing.rb +1 -1
  512. data/lib/cms/behaviors/connecting.rb +9 -4
  513. data/lib/cms/behaviors/dynamic_attributes.rb +77 -66
  514. data/lib/cms/behaviors/namespacing.rb +45 -0
  515. data/lib/cms/behaviors/publishing.rb +1 -1
  516. data/lib/cms/behaviors/rendering.rb +38 -52
  517. data/lib/cms/behaviors/searching.rb +8 -3
  518. data/lib/cms/behaviors/taggable.rb +7 -7
  519. data/lib/cms/behaviors/userstamping.rb +4 -3
  520. data/lib/cms/behaviors/versioning.rb +9 -6
  521. data/lib/cms/commands/actions.rb +37 -0
  522. data/lib/cms/content_rendering_support.rb +2 -2
  523. data/lib/cms/data_loader.rb +12 -5
  524. data/lib/cms/engine.rb +13 -9
  525. data/lib/cms/engine_helper.rb +59 -0
  526. data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +37 -9
  527. data/lib/cms/extensions/active_support/dependencies.rb +21 -0
  528. data/lib/cms/init.rb +11 -36
  529. data/lib/cms/installation_actions.rb +8 -0
  530. data/lib/cms/module.rb +20 -1
  531. data/lib/cms/module_installation.rb +11 -18
  532. data/lib/cms/route_extensions.rb +60 -0
  533. data/lib/cms/version.rb +1 -1
  534. data/lib/generators/browser_cms/cms/cms_generator.rb +5 -18
  535. data/lib/generators/browser_cms/demo_site/USAGE +3 -1
  536. data/lib/generators/browser_cms/demo_site/templates/demo.seeds.rb +251 -0
  537. data/{public/themes/blue_steel/images → lib/generators/browser_cms/demo_site/templates}/logo.jpg +0 -0
  538. data/{public/themes/blue_steel/images → lib/generators/browser_cms/demo_site/templates}/splash.jpg +0 -0
  539. data/{public/themes/blue_steel/stylesheets → lib/generators/browser_cms/demo_site/templates}/style.css +0 -0
  540. data/lib/generators/cms/content_block/content_block_generator.rb +73 -24
  541. data/lib/generators/cms/install/install_generator.rb +0 -2
  542. data/lib/generators/cms/portlet/templates/portlet.rb +1 -1
  543. data/lib/generators/cms/project/USAGE +1 -0
  544. data/lib/generators/cms/{upgrade_module → project}/templates/COPYRIGHT.txt +0 -0
  545. data/lib/generators/cms/{upgrade_module → project}/templates/GPL.txt +0 -0
  546. data/lib/generators/cms/{upgrade_module → project}/templates/LICENSE.txt +0 -0
  547. data/lib/generators/cms/{upgrade_module → project}/templates/README +0 -0
  548. data/lib/generators/cms/project/templates/USAGE +3 -0
  549. data/lib/generators/cms/{upgrade_module → project}/templates/gitignore.erb +0 -0
  550. data/lib/generators/cms/project/templates/install_generator.erb +21 -0
  551. data/lib/generators/cms/project/templates/module_tasks.rake +10 -0
  552. data/lib/generators/cms/template/template_generator.rb +3 -1
  553. data/lib/generators/cms/template/templates/template.erb +2 -2
  554. data/lib/tasks/db.rake +1 -1
  555. data/lib/templates/active_record/model/model.rb +11 -0
  556. data/log/.gitignore +0 -0
  557. data/performance_tuning_notes.md +12 -0
  558. data/public/styled_file_field/index.html +72 -0
  559. data/script/cucumber +10 -0
  560. data/script/rails +6 -0
  561. data/test/console_helper.rb +5 -0
  562. data/test/custom_assertions.rb +84 -0
  563. data/test/dummy/Rakefile +7 -0
  564. data/test/dummy/app/assets/javascripts/application.js +9 -0
  565. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  566. data/test/dummy/app/controllers/application_controller.rb +3 -0
  567. data/test/dummy/app/controllers/cms/products_controller.rb +2 -0
  568. data/test/dummy/app/controllers/cms/sample_blocks_controller.rb +3 -0
  569. data/test/dummy/app/helpers/application_helper.rb +2 -0
  570. data/test/dummy/app/mailers/.gitkeep +0 -0
  571. data/test/dummy/app/models/.gitkeep +0 -0
  572. data/test/dummy/app/models/cms/sample_block.rb +22 -0
  573. data/test/dummy/app/models/product.rb +5 -0
  574. data/test/dummy/app/views/cms/products/_form.html.erb +7 -0
  575. data/test/dummy/app/views/cms/products/render.html.erb +3 -0
  576. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  577. data/test/dummy/app/views/test_route/index.html.erb +14 -0
  578. data/test/dummy/config.ru +4 -0
  579. data/test/dummy/config/application.rb +45 -0
  580. data/test/dummy/config/boot.rb +10 -0
  581. data/test/dummy/config/database.yml +27 -0
  582. data/test/dummy/config/environment.rb +5 -0
  583. data/test/dummy/config/environments/development.rb +32 -0
  584. data/test/dummy/config/environments/production.rb +60 -0
  585. data/test/dummy/config/environments/test.rb +46 -0
  586. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  587. data/test/dummy/config/initializers/browsercms.rb +7 -0
  588. data/test/dummy/config/initializers/inflections.rb +10 -0
  589. data/test/dummy/config/initializers/mime_types.rb +5 -0
  590. data/test/dummy/config/initializers/quiet_sprocket_assets.rb +8 -0
  591. data/test/dummy/config/initializers/secret_token.rb +7 -0
  592. data/test/dummy/config/initializers/session_store.rb +8 -0
  593. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  594. data/test/dummy/config/locales/en.yml +5 -0
  595. data/test/dummy/config/routes.rb +20 -0
  596. data/test/dummy/db/migrate/20111228141250_create_products.rb +16 -0
  597. data/test/dummy/db/schema.rb +524 -0
  598. data/test/dummy/db/seeds.rb +1 -0
  599. data/test/dummy/lib/assets/.gitkeep +0 -0
  600. data/test/dummy/public/404.html +26 -0
  601. data/test/dummy/public/422.html +26 -0
  602. data/test/dummy/public/500.html +26 -0
  603. data/test/dummy/public/favicon.ico +0 -0
  604. data/test/dummy/script/rails +6 -0
  605. data/test/factories.rb +234 -0
  606. data/test/fixtures/multipart/foo.jpg +0 -0
  607. data/test/fixtures/multipart/sample_upload.txt +1 -0
  608. data/test/fixtures/multipart/second_upload.txt +1 -0
  609. data/test/fixtures/multipart/test.jpg +0 -0
  610. data/test/fixtures/multipart/version1.txt +1 -0
  611. data/test/fixtures/multipart/version2.txt +1 -0
  612. data/test/functional/cms/cache_controller_test.rb +16 -0
  613. data/test/functional/cms/categories_controller_test.rb +28 -0
  614. data/test/functional/cms/connectors_controller_test.rb +64 -0
  615. data/test/functional/cms/content_block_controller_test.rb +127 -0
  616. data/test/functional/cms/content_controller_test.rb +351 -0
  617. data/test/functional/cms/dashboard_controller_test.rb +20 -0
  618. data/test/functional/cms/file_blocks_controller_test.rb +55 -0
  619. data/test/functional/cms/home_controller_test.rb +160 -0
  620. data/test/functional/cms/html_blocks_controller_test.rb +159 -0
  621. data/test/functional/cms/image_blocks_controller_test.rb +78 -0
  622. data/test/functional/cms/links_controller_test.rb +151 -0
  623. data/test/functional/cms/log/test.log +0 -0
  624. data/test/functional/cms/pages_controller_test.rb +233 -0
  625. data/test/functional/cms/portlets_controller_test.rb +57 -0
  626. data/test/functional/cms/sections_controller_test.rb +234 -0
  627. data/test/functional/cms/sessions_controller_test.rb +80 -0
  628. data/test/functional/cms/tasks_controller_test.rb +64 -0
  629. data/test/functional/cms/toolbar_controller_test.rb +76 -0
  630. data/test/functional/cms/users_controller_test.rb +242 -0
  631. data/test/integration/cms/password_management_test.rb +66 -0
  632. data/test/integration/sitemap_performance_test.rb +26 -0
  633. data/test/mock_file.rb +33 -0
  634. data/test/performance/browsing_test.rb +9 -0
  635. data/test/support/engine_controller_hacks.rb +34 -0
  636. data/test/support/factory_helpers.rb +57 -0
  637. data/test/support/rails_3_1_routes_hack.rb +70 -0
  638. data/test/test_helper.rb +199 -0
  639. data/test/test_logging.rb +67 -0
  640. data/test/unit/active_record_callbacks.rb +50 -0
  641. data/test/unit/behaviors/attaching_test.rb +370 -0
  642. data/test/unit/behaviors/cms_user_test.rb +67 -0
  643. data/test/unit/behaviors/connectable_test.rb +32 -0
  644. data/test/unit/behaviors/connecting_test.rb +56 -0
  645. data/test/unit/behaviors/dynamic_attributes_test.rb +74 -0
  646. data/test/unit/behaviors/namespacing_test.rb +76 -0
  647. data/test/unit/behaviors/publishable_test.rb +83 -0
  648. data/test/unit/behaviors/rendering_test.rb +68 -0
  649. data/test/unit/behaviors/searching_test.rb +102 -0
  650. data/test/unit/behaviors/taggable_test.rb +110 -0
  651. data/test/unit/behaviors/userstamping_test.rb +27 -0
  652. data/test/unit/behaviors/versioning_test.rb +102 -0
  653. data/test/unit/extensions/active_record/base_test.rb +25 -0
  654. data/test/unit/extensions/hash_test.rb +26 -0
  655. data/test/unit/extensions/integer_test.rb +10 -0
  656. data/test/unit/extensions/string_test.rb +14 -0
  657. data/test/unit/factories_test.rb +50 -0
  658. data/test/unit/generators/cms_generator_test.rb +44 -0
  659. data/test/unit/generators/install_generator_test.rb +15 -0
  660. data/test/unit/helpers/application_helper_test.rb +104 -0
  661. data/test/unit/helpers/date_picker_test.rb +17 -0
  662. data/test/unit/helpers/menu_helper_test.rb +240 -0
  663. data/test/unit/helpers/page_helper_test.rb +69 -0
  664. data/test/unit/helpers/path_helper_test.rb +58 -0
  665. data/test/unit/helpers/rendering_helper_test.rb +8 -0
  666. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  667. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  668. data/test/unit/lib/cms/engine_helper_test.rb +119 -0
  669. data/test/unit/lib/cms/sitemap_test.rb +210 -0
  670. data/test/unit/lib/cms_domain_support_test.rb +44 -0
  671. data/test/unit/lib/command_line_test.rb +70 -0
  672. data/test/unit/lib/content_block_test.rb +304 -0
  673. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  674. data/test/unit/lib/generators_test.rb +40 -0
  675. data/test/unit/lib/routes_test.rb +98 -0
  676. data/test/unit/mock_file_test.rb +19 -0
  677. data/test/unit/models/attachment_test.rb +160 -0
  678. data/test/unit/models/category_test.rb +40 -0
  679. data/test/unit/models/category_type_test.rb +8 -0
  680. data/test/unit/models/connector_test.rb +152 -0
  681. data/test/unit/models/content_type_group_test.rb +26 -0
  682. data/test/unit/models/content_type_test.rb +150 -0
  683. data/test/unit/models/dynamic_views_test.rb +36 -0
  684. data/test/unit/models/email_page_portlet_test.rb +20 -0
  685. data/test/unit/models/file_block_test.rb +246 -0
  686. data/test/unit/models/group_test.rb +29 -0
  687. data/test/unit/models/html_block_test.rb +121 -0
  688. data/test/unit/models/image_block_test.rb +35 -0
  689. data/test/unit/models/link_test.rb +52 -0
  690. data/test/unit/models/namespaces_test.rb +57 -0
  691. data/test/unit/models/page_partial_test.rb +37 -0
  692. data/test/unit/models/page_route_test.rb +113 -0
  693. data/test/unit/models/page_template_test.rb +50 -0
  694. data/test/unit/models/page_test.rb +879 -0
  695. data/test/unit/models/permission_test.rb +10 -0
  696. data/test/unit/models/portlet_test.rb +99 -0
  697. data/test/unit/models/sections_test.rb +278 -0
  698. data/test/unit/models/site_test.rb +50 -0
  699. data/test/unit/models/task_test.rb +150 -0
  700. data/test/unit/models/user_test.rb +358 -0
  701. data/test/unit/schema_statements_test.rb +137 -0
  702. data/todo_list.markdown +68 -0
  703. data/vendor/assets/javascripts/bcms/ckeditor.js +6 -0
  704. data/{public → vendor/assets/javascripts}/bcms/ckeditor/ckeditor.js +0 -0
  705. data/{public → vendor/assets/javascripts}/bcms/ckeditor/config.js +0 -0
  706. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/_bootstrap.js +0 -0
  707. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/ajax.js +0 -0
  708. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/ckeditor.js +0 -0
  709. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/ckeditor_base.js +0 -0
  710. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/ckeditor_basic.js +0 -0
  711. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/command.js +0 -0
  712. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/commanddefinition.js +0 -0
  713. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/config.js +0 -0
  714. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom.js +0 -0
  715. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/document.js +0 -0
  716. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/documentfragment.js +0 -0
  717. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/domobject.js +0 -0
  718. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/element.js +0 -0
  719. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/elementpath.js +0 -0
  720. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/event.js +0 -0
  721. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/node.js +0 -0
  722. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/nodelist.js +0 -0
  723. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/range.js +0 -0
  724. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/text.js +0 -0
  725. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/walker.js +0 -0
  726. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dom/window.js +0 -0
  727. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/dtd.js +0 -0
  728. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/editor.js +0 -0
  729. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/editor_basic.js +0 -0
  730. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/env.js +0 -0
  731. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/event.js +0 -0
  732. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/eventInfo.js +0 -0
  733. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/focusmanager.js +0 -0
  734. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser.js +0 -0
  735. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser/basicwriter.js +0 -0
  736. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser/cdata.js +0 -0
  737. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser/comment.js +0 -0
  738. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser/element.js +0 -0
  739. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser/filter.js +0 -0
  740. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser/fragment.js +0 -0
  741. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/htmlparser/text.js +0 -0
  742. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/imagecacher.js +0 -0
  743. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/lang.js +0 -0
  744. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/loader.js +0 -0
  745. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/plugindefinition.js +0 -0
  746. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/plugins.js +0 -0
  747. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/resourcemanager.js +0 -0
  748. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/scriptloader.js +0 -0
  749. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/skins.js +0 -0
  750. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/test.js +0 -0
  751. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/themes.js +0 -0
  752. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/tools.js +0 -0
  753. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/ui.js +0 -0
  754. data/{public → vendor/assets/javascripts}/bcms/ckeditor/core/xml.js +0 -0
  755. data/vendor/assets/javascripts/bcms/ckeditor/editor.js +54 -0
  756. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/_languages.js +0 -0
  757. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/_translationstatus.txt +0 -0
  758. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/af.js +0 -0
  759. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/ar.js +0 -0
  760. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/bg.js +0 -0
  761. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/bn.js +0 -0
  762. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/bs.js +0 -0
  763. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/ca.js +0 -0
  764. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/cs.js +0 -0
  765. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/da.js +0 -0
  766. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/de.js +0 -0
  767. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/el.js +0 -0
  768. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/en-au.js +0 -0
  769. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/en-ca.js +0 -0
  770. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/en-uk.js +0 -0
  771. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/en.js +0 -0
  772. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/eo.js +0 -0
  773. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/es.js +0 -0
  774. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/et.js +0 -0
  775. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/eu.js +0 -0
  776. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/fa.js +0 -0
  777. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/fi.js +0 -0
  778. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/fo.js +0 -0
  779. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/fr-ca.js +0 -0
  780. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/fr.js +0 -0
  781. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/gl.js +0 -0
  782. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/gu.js +0 -0
  783. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/he.js +0 -0
  784. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/hi.js +0 -0
  785. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/hr.js +0 -0
  786. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/hu.js +0 -0
  787. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/is.js +0 -0
  788. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/it.js +0 -0
  789. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/ja.js +0 -0
  790. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/km.js +0 -0
  791. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/ko.js +0 -0
  792. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/lt.js +0 -0
  793. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/lv.js +0 -0
  794. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/mn.js +0 -0
  795. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/ms.js +0 -0
  796. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/nb.js +0 -0
  797. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/nl.js +0 -0
  798. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/no.js +0 -0
  799. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/pl.js +0 -0
  800. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/pt-br.js +0 -0
  801. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/pt.js +0 -0
  802. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/ro.js +0 -0
  803. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/ru.js +0 -0
  804. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/sk.js +0 -0
  805. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/sl.js +0 -0
  806. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/sr-latn.js +0 -0
  807. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/sr.js +0 -0
  808. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/sv.js +0 -0
  809. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/th.js +0 -0
  810. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/tr.js +0 -0
  811. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/uk.js +0 -0
  812. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/vi.js +0 -0
  813. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/zh-cn.js +0 -0
  814. data/{public → vendor/assets/javascripts}/bcms/ckeditor/lang/zh.js +0 -0
  815. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/about/dialogs/about.js +0 -0
  816. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  817. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/about/plugin.js +0 -0
  818. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/basicstyles/plugin.js +0 -0
  819. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/blockquote/plugin.js +0 -0
  820. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/button/plugin.js +0 -0
  821. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +0 -0
  822. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/clipboard/plugin.js +0 -0
  823. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/colorbutton/plugin.js +0 -0
  824. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/contextmenu/plugin.js +0 -0
  825. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/dialog/dialogDefinition.js +0 -0
  826. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/dialog/plugin.js +0 -0
  827. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/dialogui/plugin.js +0 -0
  828. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/domiterator/plugin.js +0 -0
  829. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/editingblock/plugin.js +0 -0
  830. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/elementspath/plugin.js +0 -0
  831. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/enterkey/plugin.js +0 -0
  832. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/entities/plugin.js +0 -0
  833. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/fakeobjects/plugin.js +0 -0
  834. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/filebrowser/plugin.js +0 -0
  835. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/find/dialogs/find.js +0 -0
  836. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/find/plugin.js +0 -0
  837. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/flash/dialogs/flash.js +0 -0
  838. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  839. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/flash/plugin.js +0 -0
  840. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/floatpanel/plugin.js +0 -0
  841. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/font/plugin.js +0 -0
  842. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/format/plugin.js +0 -0
  843. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/button.js +0 -0
  844. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +0 -0
  845. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/form.js +0 -0
  846. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +0 -0
  847. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/radio.js +0 -0
  848. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/select.js +0 -0
  849. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/textarea.js +0 -0
  850. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/dialogs/textfield.js +0 -0
  851. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/forms/plugin.js +0 -0
  852. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/horizontalrule/plugin.js +0 -0
  853. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +0 -0
  854. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/htmlwriter/plugin.js +0 -0
  855. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/iframedialog/plugin.js +0 -0
  856. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/image/dialogs/image.js +0 -0
  857. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/image/plugin.js +0 -0
  858. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/indent/plugin.js +0 -0
  859. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/justify/plugin.js +0 -0
  860. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/keystrokes/plugin.js +0 -0
  861. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/link/dialogs/anchor.js +0 -0
  862. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/link/dialogs/link.js +0 -0
  863. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/link/images/anchor.gif +0 -0
  864. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/link/plugin.js +0 -0
  865. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/list/plugin.js +0 -0
  866. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/listblock/plugin.js +0 -0
  867. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/maximize/plugin.js +0 -0
  868. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/menu/plugin.js +0 -0
  869. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/menubutton/plugin.js +0 -0
  870. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/newpage/plugin.js +0 -0
  871. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  872. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/pagebreak/plugin.js +0 -0
  873. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/panel/plugin.js +0 -0
  874. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/panelbutton/plugin.js +0 -0
  875. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +0 -0
  876. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/pastefromword/plugin.js +0 -0
  877. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +0 -0
  878. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/pastetext/plugin.js +0 -0
  879. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/popup/plugin.js +0 -0
  880. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/preview/plugin.js +0 -0
  881. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/print/plugin.js +0 -0
  882. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/removeformat/plugin.js +0 -0
  883. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/resize/plugin.js +0 -0
  884. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/richcombo/plugin.js +0 -0
  885. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/save/plugin.js +0 -0
  886. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/scayt/dialogs/options.js +0 -0
  887. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +0 -0
  888. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/scayt/plugin.js +0 -0
  889. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/selection/plugin.js +0 -0
  890. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  891. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  892. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  893. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  894. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  895. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  896. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  897. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  898. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  899. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  900. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  901. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/showblocks/plugin.js +0 -0
  902. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +0 -0
  903. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  904. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  905. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  906. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  907. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  908. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  909. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  910. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  911. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  912. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  913. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  914. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  915. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  916. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  917. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  918. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  919. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  920. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  921. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  922. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  923. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  924. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/smiley/plugin.js +0 -0
  925. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/sourcearea/plugin.js +0 -0
  926. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +0 -0
  927. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/specialchar/plugin.js +0 -0
  928. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/styles/plugin.js +0 -0
  929. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/stylescombo/plugin.js +0 -0
  930. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/stylescombo/styles/default.js +0 -0
  931. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/tab/plugin.js +0 -0
  932. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/table/dialogs/table.js +0 -0
  933. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/table/plugin.js +0 -0
  934. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +0 -0
  935. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/tabletools/plugin.js +0 -0
  936. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/templates/dialogs/templates.js +0 -0
  937. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/templates/plugin.js +0 -0
  938. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/templates/templates/default.js +0 -0
  939. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  940. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  941. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  942. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/toolbar/plugin.js +0 -0
  943. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +0 -0
  944. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/lang/en.js +0 -0
  945. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/plugin.js +0 -0
  946. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  947. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  948. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  949. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  950. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  951. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +0 -0
  952. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/uicolor/yui/yui.js +0 -0
  953. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/undo/plugin.js +0 -0
  954. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +0 -0
  955. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +0 -0
  956. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +0 -0
  957. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +0 -0
  958. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/wsc/plugin.js +0 -0
  959. data/{public → vendor/assets/javascripts}/bcms/ckeditor/plugins/wysiwygarea/plugin.js +0 -0
  960. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/dialog.css +0 -0
  961. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/editor.css +0 -0
  962. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/elementspath.css +0 -0
  963. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/icons.css +0 -0
  964. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/icons.png +0 -0
  965. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  966. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  967. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  968. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  969. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  970. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  971. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  972. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  973. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/mainui.css +0 -0
  974. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/menu.css +0 -0
  975. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/panel.css +0 -0
  976. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/presets.css +0 -0
  977. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/reset.css +0 -0
  978. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/richcombo.css +0 -0
  979. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/skin.js +0 -0
  980. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/templates.css +0 -0
  981. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/kama/toolbar.css +0 -0
  982. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/dialog.css +0 -0
  983. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/editor.css +0 -0
  984. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/elementspath.css +0 -0
  985. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/icons.css +0 -0
  986. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/icons.png +0 -0
  987. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  988. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  989. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  990. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  991. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  992. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  993. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  994. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/mainui.css +0 -0
  995. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/menu.css +0 -0
  996. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/panel.css +0 -0
  997. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/presets.css +0 -0
  998. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/reset.css +0 -0
  999. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/richcombo.css +0 -0
  1000. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/skin.js +0 -0
  1001. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/templates.css +0 -0
  1002. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/office2003/toolbar.css +0 -0
  1003. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/dialog.css +0 -0
  1004. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/editor.css +0 -0
  1005. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/elementspath.css +0 -0
  1006. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/icons.css +0 -0
  1007. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/icons.png +0 -0
  1008. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  1009. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  1010. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  1011. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  1012. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  1013. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  1014. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  1015. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  1016. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/mainui.css +0 -0
  1017. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/menu.css +0 -0
  1018. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/panel.css +0 -0
  1019. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/presets.css +0 -0
  1020. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/reset.css +0 -0
  1021. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/richcombo.css +0 -0
  1022. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/skin.js +0 -0
  1023. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/templates.css +0 -0
  1024. data/{public → vendor/assets/javascripts}/bcms/ckeditor/skins/v2/toolbar.css +0 -0
  1025. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/_assets/sample.css +0 -0
  1026. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/_assets/sample.js +0 -0
  1027. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/_assets/sample.txt +0 -0
  1028. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/_assets/sample.xml +0 -0
  1029. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/_assets/sample_xml.txt +0 -0
  1030. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/_editor/custom_config_1.js +0 -0
  1031. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/_editor/custom_config_2.js +0 -0
  1032. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/ajax.html +0 -0
  1033. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/bootstrap.html +0 -0
  1034. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/ckeditor.html +0 -0
  1035. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/document.html +0 -0
  1036. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/documentfragment.html +0 -0
  1037. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/element.html +0 -0
  1038. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/node.html +0 -0
  1039. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/range.html +0 -0
  1040. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/text.html +0 -0
  1041. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/walker.html +0 -0
  1042. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/dom/window.html +0 -0
  1043. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/editor.html +0 -0
  1044. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/env.html +0 -0
  1045. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/event.html +0 -0
  1046. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/htmlparser/fragment.html +0 -0
  1047. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +0 -0
  1048. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/plugins.html +0 -0
  1049. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +0 -0
  1050. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/scriptloader.html +0 -0
  1051. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/tools.html +0 -0
  1052. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/core/xml.html +0 -0
  1053. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +0 -0
  1054. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +0 -0
  1055. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/plugins/link/link.html +0 -0
  1056. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/plugins/list/list.html +0 -0
  1057. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/plugins/selection/selection.html +0 -0
  1058. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/plugins/styles/styles.html +0 -0
  1059. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/test.css +0 -0
  1060. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/test.js +0 -0
  1061. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/testall.html +0 -0
  1062. data/{public → vendor/assets/javascripts}/bcms/ckeditor/tests/yuitest.js +0 -0
  1063. data/{public → vendor/assets/javascripts}/bcms/ckeditor/themes/default/theme.js +0 -0
  1064. data/{public → vendor/assets}/javascripts/jquery.cookie.js +0 -0
  1065. data/{public/javascripts/jquery.selectbox-0.5.js → vendor/assets/javascripts/jquery.selectbox.js} +0 -0
  1066. data/vendor/plugins/.gitkeep +0 -0
  1067. metadata +1386 -939
  1068. data/app/models/abstract_file_block.rb +0 -32
  1069. data/app/models/attachment.rb +0 -192
  1070. data/app/models/category.rb +0 -40
  1071. data/app/models/category_type.rb +0 -34
  1072. data/app/models/connector.rb +0 -81
  1073. data/app/models/content_type.rb +0 -95
  1074. data/app/models/content_type_group.rb +0 -3
  1075. data/app/models/dynamic_view.rb +0 -80
  1076. data/app/models/email_message.rb +0 -31
  1077. data/app/models/email_message_mailer.rb +0 -11
  1078. data/app/models/file_block.rb +0 -9
  1079. data/app/models/forgot_password_mailer.rb +0 -12
  1080. data/app/models/group.rb +0 -41
  1081. data/app/models/group_permission.rb +0 -7
  1082. data/app/models/group_section.rb +0 -4
  1083. data/app/models/group_type.rb +0 -12
  1084. data/app/models/group_type_permission.rb +0 -4
  1085. data/app/models/guest_user.rb +0 -53
  1086. data/app/models/html_block.rb +0 -40
  1087. data/app/models/image_block.rb +0 -10
  1088. data/app/models/link.rb +0 -18
  1089. data/app/models/page.rb +0 -319
  1090. data/app/models/page_partial.rb +0 -22
  1091. data/app/models/page_route.rb +0 -122
  1092. data/app/models/page_route_condition.rb +0 -2
  1093. data/app/models/page_route_option.rb +0 -3
  1094. data/app/models/page_route_requirement.rb +0 -2
  1095. data/app/models/page_template.rb +0 -31
  1096. data/app/models/permission.rb +0 -10
  1097. data/app/models/portlet.rb +0 -177
  1098. data/app/models/redirect.rb +0 -4
  1099. data/app/models/section.rb +0 -195
  1100. data/app/models/section_node.rb +0 -110
  1101. data/app/models/site.rb +0 -41
  1102. data/app/models/tag.rb +0 -62
  1103. data/app/models/tagging.rb +0 -9
  1104. data/app/models/task.rb +0 -74
  1105. data/app/models/templates.rb +0 -31
  1106. data/app/models/user.rb +0 -169
  1107. data/app/models/user_group_membership.rb +0 -4
  1108. data/db/demo/data.rb +0 -97
  1109. data/db/demo/page_partials/_footer.html.erb +0 -6
  1110. data/db/demo/page_partials/_header.html.erb +0 -24
  1111. data/db/demo/page_templates/home_page.html.erb +0 -49
  1112. data/db/demo/page_templates/sub_page.html.erb +0 -37
  1113. data/lib/cms/routes.rb +0 -145
  1114. data/lib/generators/browser_cms/demo_site/demo_site_generator.rb +0 -138
  1115. data/lib/generators/browser_cms/demo_site/templates/migration.erb +0 -15
  1116. data/lib/generators/cms/content_block/templates/content_block.rb +0 -27
  1117. data/lib/generators/cms/content_block/templates/controller.rb +0 -2
  1118. data/lib/generators/cms/content_block/templates/functional_test.erb +0 -11
  1119. data/lib/generators/cms/content_block/templates/migration.erb +0 -38
  1120. data/lib/generators/cms/content_block/templates/unit_test.erb +0 -9
  1121. data/lib/generators/cms/upgrade_module/README.txt +0 -3
  1122. data/lib/generators/cms/upgrade_module/templates/20100705083859_browsercms_3_3_0.rb +0 -56
  1123. data/lib/generators/cms/upgrade_module/templates/USAGE.erb +0 -10
  1124. data/lib/generators/cms/upgrade_module/templates/build_gem.rake +0 -5
  1125. data/lib/generators/cms/upgrade_module/templates/engine.erb +0 -7
  1126. data/lib/generators/cms/upgrade_module/templates/gemspec.erb +0 -25
  1127. data/lib/generators/cms/upgrade_module/templates/install.erb +0 -9
  1128. data/lib/generators/cms/upgrade_module/templates/module_file.erb +0 -3
  1129. data/lib/generators/cms/upgrade_module/templates/routes.erb +0 -7
  1130. data/lib/generators/cms/upgrade_module/upgrade_module_generator.rb +0 -61
  1131. data/public/bcms/ckeditor/editor.js +0 -51
  1132. data/public/javascripts/cms/application.js +0 -157
  1133. data/public/javascripts/cms/content_library.js +0 -36
  1134. data/public/javascripts/cms/sitemap.js +0 -464
  1135. data/public/javascripts/jquery-ui.js +0 -782
  1136. data/public/javascripts/jquery.js +0 -16
  1137. data/public/javascripts/jquery.taglist.js +0 -143
  1138. data/public/site/customconfig.js +0 -1
  1139. data/public/stylesheets/cms/administration.css +0 -91
  1140. data/public/stylesheets/cms/application.css +0 -166
  1141. data/public/stylesheets/cms/buttons.css +0 -120
  1142. data/public/stylesheets/cms/content_library.css +0 -139
  1143. data/public/stylesheets/cms/dashboard.css +0 -118
  1144. data/public/stylesheets/cms/data_table.css +0 -156
  1145. data/public/stylesheets/cms/date_picker.css +0 -82
  1146. data/public/stylesheets/cms/form_layout.css +0 -279
  1147. data/public/stylesheets/cms/login.css +0 -78
  1148. data/public/stylesheets/cms/menu.css +0 -116
  1149. data/public/stylesheets/cms/nav.css +0 -99
  1150. data/public/stylesheets/cms/page_toolbar.css +0 -135
  1151. data/public/stylesheets/cms/selectbox.css +0 -56
  1152. data/public/stylesheets/cms/sitemap.css +0 -390
  1153. data/rails/init.rb +0 -2
@@ -5,8 +5,7 @@
5
5
  <title><%= @page_title %></title>
6
6
  <%= stylesheet_link_tag 'cms/application' %>
7
7
  <%= stylesheet_link_tag 'cms/page_toolbar' %>
8
- <%= javascript_include_tag 'jquery', 'jquery.selectbox-0.5.js' %>
9
- <%= javascript_include_tag 'cms/application' %>
8
+ <%= javascript_include_tag 'cms/toolbar' %>
10
9
  <% if protect_against_forgery? %><script type="text/javascript">
11
10
  jQuery(function($){
12
11
  $.cms.authenticity_token = '<%= form_authenticity_token %>'
@@ -3,5 +3,4 @@
3
3
  :default_value => "A link you might be interested in" %>
4
4
  <%= f.cms_text_field :success_url,
5
5
  :instructions => "Leave blank to return the same page" %>
6
- <%= f.cms_text_area :template,
7
- :default_value => EmailPagePortlet.default_template %>
6
+ <%= f.cms_text_area :template, :default_value => EmailPagePortlet.default_template %>
@@ -1,6 +1,6 @@
1
1
  <div class="email-page-portlet">
2
- <%= form_for @email_message, :url => cms_handler_path(@portlet, "deliver") do |f| %>
3
- <%= hidden_field_tag :email_page_portlet_url, @email_page_portlet_url %>
2
+ <%= form_for @email_message, :url => handler_path(@portlet, "deliver") do |f| %>
3
+ <%= hidden_field_tag :email_page_portlet_url, @email_page_portlet_url %>
4
4
  <%= f.cms_error_messages %>
5
5
  <p>
6
6
  <%= f.label :recipients %>
@@ -2,11 +2,11 @@
2
2
  <% if logged_in? %>
3
3
  <p>Welcome, <%= current_user.login %></p>
4
4
  <p><%= link_to "Logout", '' %></p>
5
- <p><%#= link_to "Logout", cms_logout_path %></p>
5
+ <p><%#= link_to "Logout", cms.logout_path %></p>
6
6
  <% else %>
7
7
  <div class="error"><%= flash[:login_error] %></div>
8
8
  <%= form_tag '' do %>
9
- <%#= form_tag cms_login_path do %>
9
+ <%#= form_tag cms.login_path do %>
10
10
  <%= hidden_field_tag :success_url, @success_url %>
11
11
  <%= hidden_field_tag :failure_url, @failure_url %>
12
12
  <p>
@@ -1,6 +1,6 @@
1
- <% if @block.class == Portlet %>
1
+ <% if @block.class == Cms::Portlet %>
2
2
  <% page_title "Content Library / Select Portlet Type" %>
3
- <% Portlet.types.each do |portlet_type| %>
3
+ <% Cms::Portlet.types.each do |portlet_type| %>
4
4
  <div style="margin-bottom: 20px;">
5
5
  <%
6
6
  link_params = {:type => portlet_type.underscore}
@@ -9,11 +9,11 @@
9
9
  link_params["#{portlet_type.underscore}[connect_to_container]"] = params[:portlet][:connect_to_container]
10
10
  end
11
11
  %>
12
- <%= link_to h(portlet_type.titleize), new_cms_portlet_path(link_params) %>
12
+ <%= link_to h(portlet_type.titleize), new_portlet_path(link_params) %>
13
13
  </div>
14
14
  <% end %>
15
15
  <% @hide_buttons = true %>
16
16
  <% else %>
17
17
  <%= hidden_field_tag :type, @block.class.name.underscore, :id => "portlet_type_field" %>
18
18
  <%= render :partial => @block.class.form, :locals => {:f => f} %>
19
- <% end %>
19
+ <% end %>
@@ -1,3 +1,3 @@
1
1
  <%= f.cms_text_field :name %>
2
- <%= f.cms_drop_down :handler, ActionView::Template.template_handler_extensions, :default => "erb" %>
3
- <%= f.cms_text_area :template, :default_value => @block.class.default_template %>
2
+ <%= f.cms_template_editor :template %>
3
+
data/bin/bcms CHANGED
@@ -6,64 +6,106 @@ require 'term/ansicolor'
6
6
  require 'rails/generators/actions'
7
7
  require 'active_support/core_ext/string/inflections'
8
8
  require 'cms/version'
9
+ require 'cms/commands/actions'
10
+ # This seems to be required only due to a bug in Thor documented here:
11
+ # https://rails.lighthouseapp.com/projects/8994/tickets/4692-error-when-creating-app-from-template-undefined-method-wrap-for-arrayclass
12
+ # If this bug is fixed the following line can probably be removed.
13
+ require 'active_support/core_ext/array/wrap'
14
+
9
15
 
10
16
  class String
11
17
  include Term::ANSIColor
12
18
  end
13
19
 
14
20
 
15
- class App < Thor
21
+ class Cms::Install < Thor
16
22
  include Thor::Actions
17
23
  include Rails::Generators::Actions
18
- source_root File.expand_path('../../lib/generators/cms/upgrade_module/templates', __FILE__)
24
+ include Cms::Commands::Actions
25
+
19
26
 
20
27
  def self.common_options
21
28
  method_option :database, :aliases => "-d", :desc => "Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite3/frontbase/ibm_db) [Default: sqlite3]"
22
29
  method_option :template, :aliases => "-m", :desc => "Path to an application template (can be a filesystem path or URL)"
30
+ method_option :skip_bundle, :aliases => "--skip-bundle", :desc => "Don't run bundle install", :default => false, :type => :boolean
23
31
  end
24
32
 
25
- desc "new", "Creates a blank BrowserCMS project with a single default template. Suitable for starting a new website project."
33
+ desc "new [NAME]", "Creates a blank BrowserCMS project with a single default template. Suitable for starting a new website project."
26
34
  common_options
35
+
27
36
  def new(name)
28
37
  create_blank_cms_project(name)
29
- echo_next_steps(name)
38
+ display_instructions(name)
30
39
  end
31
40
 
32
41
 
33
- desc 'demo', "Generates a BrowserCMS application with a sample demo website. Suitable for learning BrowserCMS."
42
+ desc 'demo [NAME]', "Generates a BrowserCMS application with a sample demo website. Suitable for learning BrowserCMS."
34
43
  common_options
44
+
35
45
  def demo(name)
36
46
  create_blank_cms_project(name)
37
- generate "browser_cms:demo_site"
38
- echo_next_steps(name)
47
+ generate_demo_project
48
+ display_instructions(name)
39
49
  end
40
50
 
41
-
42
- desc 'module', "Generates a BrowserCMS module for sharing code between BrowserCMS projects. (Name must start with bcms_)"
51
+ desc 'module [NAME]', "Generates a BrowserCMS module for sharing code between BrowserCMS projects. (Name must start with bcms_)"
43
52
  common_options
53
+
44
54
  def module(name)
45
- create_blank_cms_project(name)
46
- generate 'cms:upgrade_module', name
47
- template 'COPYRIGHT.txt'
48
- template 'LICENSE.txt'
49
- template 'GPL.txt'
50
- echo_next_steps(name)
55
+ @project_name = name
56
+ create_mountable_app
57
+ create_license_files
58
+
59
+ inside rails_app do
60
+ generate_seeds_rb
61
+ end
62
+
63
+ add_rake_tasks_for_module
64
+ generate_browsercms_project
65
+ generate_installation_script
66
+ generate_default_template
67
+
68
+ display_instructions(name)
51
69
  end
52
70
 
53
71
  desc 'version', 'Show BrowserCMS version'
54
72
  map "-v" => :version, "--version" => :version
73
+
55
74
  def version
56
75
  puts "BrowserCMS #{Cms::VERSION}"
57
76
  end
58
77
 
78
+ desc 'install', "Adds BrowserCMS to an existing rails application."
79
+
80
+ def install
81
+ common_setup('.')
82
+ prefix_cms_tables
83
+ generate_default_template
84
+ puts "BrowserCMS has been installed. Run rake db:install to add the tables then restart your server."
85
+ end
86
+
59
87
  private
60
88
 
61
- def start_working_in_rails_directory(name)
89
+ def prefix_cms_tables
90
+ append_to_file "config/initializers/browsercms.rb", <<-CODE
91
+ Cms.table_prefix = "cms_"
92
+ CODE
93
+ end
94
+
95
+ def create_license_files
96
+ template 'COPYRIGHT.txt'
97
+ template 'LICENSE.txt'
98
+ template 'GPL.txt'
99
+ remove_file "MIT-LICENSE"
100
+ end
101
+
102
+ # i.e. cd project_name
103
+ def work_in_project_root_directory(name=@project_name)
62
104
  self.destination_root = (File.join(destination_root, name))
63
105
  end
64
106
 
65
107
  def create_rails_app(name)
66
- rails_cmd = "rails new #{name}"
108
+ rails_cmd = "rails new #{name} --skip-bundle"
67
109
  if options[:template]
68
110
  rails_cmd += " -m #{options[:template]}"
69
111
  end
@@ -73,52 +115,41 @@ class App < Thor
73
115
  run(rails_cmd)
74
116
  end
75
117
 
76
-
77
- def echo_next_steps(name)
118
+ def display_instructions(name)
78
119
  puts "\nCreated new BrowserCMS project '#{name}'."
79
120
  puts " To get started, type 'cd #{name}'"
80
121
  puts " then type 'rake db:install'"
81
122
  puts " then type 'rails server' and open your browser to 'http://localhost:3000'."
82
123
  end
83
124
 
84
- def create_blank_cms_project(name)
85
- create_rails_app(name)
86
- start_working_in_rails_directory(name)
87
-
88
- # Unsure if this handles windows specific removal of files
89
- remove_file("public/index.html")
90
- remove_file("db/seeds.rb")
91
-
92
- gem 'browsercms', :version=>::Cms::VERSION
93
-
94
- generate :jdbc if defined?(JRUBY_VERSION)
95
- route "routes_for_browser_cms"
96
-
97
- generate "browser_cms:cms"
98
-
99
- %w{development test production}.each do |env|
100
- prepend_to_file "config/environments/#{env}.rb" do
101
- <<-CODE
102
- SITE_DOMAIN="localhost:3000"
103
- CODE
104
- end
105
- end
106
-
125
+ def configure_default_cache_directory
107
126
  insert_into_file "config/environments/production.rb", :after => "Application.configure do\n" do
108
127
  <<-CODE
109
- config.action_controller.page_cache_directory = File.join(Rails.root, 'public', 'cache')
128
+ config.action_controller.page_cache_directory = File.join(Rails.root,'public','cache')
110
129
  CODE
111
130
  end
131
+ end
112
132
 
133
+ # In Rails 3.0, we needed to disable xsendfile, since it was by default on in production.
134
+ # In 3.1, this should be unnecessary because the default seems to have this commented out.
135
+ #
136
+ # Leaving here as unused for now in case later versions of Rails change this configuration.
137
+ def disable_xsendfile
113
138
  insert_into_file "config/environments/production.rb", :before => 'config.action_dispatch.x_sendfile_header = "X-Sendfile"' do
114
139
  <<-CODE
115
140
  # If you want to enable webservers to send binary files, you will need to uncomment X-Sendfile line below and configure Apache mod_sendfile
116
- # See http://codequest.eu/articles/rails3-apache-passenger-and-empty-file-using-send-file for details
141
+ # See http://codequest.eu/articles/rails3-apache-passenger-and-empty-file-using-send-file for details
117
142
  CODE
118
143
  end
119
144
 
120
145
  gsub_file "config/environments/production.rb", /(config\.action_dispatch\.x_sendfile_header = "X-Sendfile")/, ' # \1'
146
+ end
121
147
 
148
+ # For Rails 3.0, we needed to turn on static asset serving in production, to allow assets to be served.
149
+ # In 3.1, this should be unnecessary because of the asset pipeline.
150
+ #
151
+ # Leaving here as unused for now.
152
+ def enable_static_asset_serving
122
153
  insert_into_file "config/environments/production.rb", :before => 'config.serve_static_assets = false' do
123
154
  <<-COMMENT
124
155
  # This allows bcms to serve static assets (like admin css files) from the gem
@@ -126,20 +157,154 @@ SITE_DOMAIN="localhost:3000"
126
157
  end
127
158
 
128
159
  gsub_file "config/environments/production.rb", /(config\.serve_static_assets =) false/, ' \1 true'
160
+ end
129
161
 
162
+ def configure_mail_server
130
163
  insert_into_file "config/environments/production.rb", :after => "config.active_support.deprecation = :notify" do
131
164
  %q{
132
165
 
133
166
  # Configure your mail server's address below
134
167
  config.action_mailer.smtp_settings = {:address => 'mail.yourmailserver.com', :domain => "#{SITE_DOMAIN}"}}
135
168
  end
169
+ end
136
170
 
171
+ def add_sitedomain_constant_to_environment_files
172
+ %w{development test production}.each do |env|
173
+ prepend_to_file "config/environments/#{env}.rb" do
174
+ <<-CODE
175
+ SITE_DOMAIN="localhost:3000"
176
+ CODE
177
+ end
178
+ end
179
+ end
180
+
181
+ def generate_browsercms_project
182
+ rake 'cms:install:migrations'
183
+ generate "browser_cms:cms"
184
+
185
+ inside rails_app do
186
+ add_route_to_end("mount_browsercms")
187
+ add_sitedomain_constant_to_environment_files
188
+ configure_default_cache_directory
189
+ configure_mail_server
190
+ create_browsercms_initializer
191
+ end
192
+ end
193
+
194
+ def generate_demo_project
195
+ self.class.source_root(File.expand_path(File.join(__FILE__, '../../lib/generators/browser_cms/demo_site/templates')))
196
+ inside rails_app do
197
+ copy_file 'logo.jpg', "public/themes/blue_steel/images/logo.jpg"
198
+ copy_file 'splash.jpg', "public/themes/blue_steel/images/splash.jpg"
199
+ copy_file 'style.css', "public/themes/blue_steel/stylesheets/style.css"
200
+
201
+ copy_file 'demo_site.rake', 'lib/tasks/demo_site.rake'
202
+ copy_file 'demo.seeds.rb', 'db/demo_site_seeds.rb'
203
+ end
204
+ end
205
+
206
+ def add_rake_tasks_for_module
207
+ copy_file 'module_tasks.rake', 'lib/tasks/module_tasks.rake'
208
+ append_to_file 'Rakefile', "\nload 'lib/tasks/module_tasks.rake'"
209
+ insert_into_file "#{current_project}.gemspec", " s.files -= Dir['lib/tasks/module_tasks.rake']\n ", :before => "s.test_files"
210
+ end
211
+
212
+ # When working with modules, the 'root' is the dummy application
213
+ def in_root
214
+ inside(rails_app) { yield }
215
+ end
216
+
217
+ def rails_app
218
+ if @project_name
219
+ "test/dummy"
220
+ else
221
+ @destination_stack.first
222
+ end
223
+ end
224
+
225
+ def project_root
226
+ if @project_name
227
+ @project_name
228
+ else
229
+ @destination_stack.first
230
+ end
231
+ end
232
+
233
+ # For both creating new bcms project and adding bcms to existing rails projects.
234
+ def common_setup(name)
235
+ gem 'browsercms', :version => ::Cms::VERSION
236
+ run_bundle_install
237
+ generate :jdbc if defined?(JRUBY_VERSION)
238
+ generate_browsercms_project
239
+ end
240
+
241
+ def run_bundle_install
242
+ inside project_root do
243
+ run "bundle install" unless options[:skip_bundle]
244
+ end
245
+ end
246
+
247
+ def generate_default_template
248
+ generate 'cms:template', "default"
249
+ end
250
+
251
+ def standard_file_permissions
252
+ "Cms.attachment_file_permission = 0640"
253
+ end
254
+
255
+ def create_mountable_app(name = @project_name)
256
+ run("rails plugin new #{name} --mountable --skip-bundle")
257
+ work_in_project_root_directory(name)
258
+
259
+ gemspec "browsercms", :version => "~> #{::Cms::VERSION}"
260
+ add_browsercms_dependency
261
+ include_cms_module
262
+ remove_rails_dependency
263
+ run_bundle_install
264
+ end
265
+
266
+ def generate_seeds_rb
267
+ create_file "db/seeds.rb", "# Load BrowserCMS seed data\n"
268
+ end
269
+
270
+ def add_browsercms_dependency
271
+ prepend_file "lib/#{@project_name}/engine.rb", "require 'browsercms'\n"
272
+ end
273
+
274
+ def create_blank_cms_project(name)
275
+ create_rails_app(name)
276
+ work_in_project_root_directory(name)
277
+
278
+ # Unsure if this handles windows specific removal of files
279
+ remove_file("public/index.html")
280
+
281
+ common_setup name
282
+ create_browsercms_initializer
283
+ generate_default_template
284
+
285
+ end
286
+
287
+ def create_browsercms_initializer
137
288
  initializer 'browsercms.rb', <<-CODE
138
- Cms.attachment_file_permission = 0640
289
+ #{standard_file_permissions}
139
290
  CODE
291
+ end
292
+
293
+ def gemspec_file
294
+ "#{@project_name}.gemspec"
295
+ end
296
+
297
+ # Add a dependency to the project gemspec file.
298
+ def gemspec(name, options={})
299
+ text = <<-RUBY
300
+ s.add_dependency "#{name}", "#{options[:version]}"\n
301
+ RUBY
302
+ insert_into_file(gemspec_file(), text, :after => "Gem::Specification.new do |s|\n")
303
+ end
140
304
 
141
- generate "cms:template", "default"
305
+ def remove_rails_dependency
306
+ insert_into_file gemspec_file, "# Depend on BrowserCMS,rather than Rails \n # ", :before => "s.add_dependency \"rails\""
142
307
  end
143
308
  end
144
309
 
145
- App.start
310
+ Cms::Install.start
data/bin/bcms-upgrade CHANGED
@@ -5,6 +5,7 @@ require 'thor'
5
5
  require 'term/ansicolor'
6
6
  require 'rails/generators/actions'
7
7
  require 'active_support/core_ext/string/inflections'
8
+ require 'cms/commands/actions'
8
9
 
9
10
  class String
10
11
  include Term::ANSIColor
@@ -13,8 +14,8 @@ end
13
14
  class App < Thor
14
15
  include Thor::Actions
15
16
  include Rails::Generators::Actions
17
+ include Cms::Commands::Actions
16
18
 
17
- source_root(File.join(__FILE__, '../../lib/generators/cms/upgrade_module/templates'))
18
19
 
19
20
  desc "check", "Checks the existing module to determine what needs to done."
20
21
 
@@ -52,22 +53,23 @@ TEXT
52
53
  end
53
54
 
54
55
  desc 'v3_3_0', "Upgrades BrowserCMS files from 3.1.x to 3.3.0 (Back up first)"
56
+
55
57
  def v3_3_0
56
58
  upgrade_to_3_3_0
57
59
  end
58
60
 
59
- desc 'module', "Upgrade a module from Rails 2 to Rails 3. (Backup before running this)"
61
+ desc 'module', "Upgrades a module. "
60
62
  def module
61
- new_rails
62
- cleanup_rails2_files
63
- cleanup_rails_3
64
- cleanup_module
65
- upgrade_to_3_3_0
66
- generate_bcms_module
67
- next_steps
63
+ unless project_is_module?
64
+ say "This does not appear to be a BrowserCMS module. Skipping update."
65
+ exit 0
66
+ end
67
+ upgrade_module_from_3_1_x_to_3_3_x if project_is_3_1_x?
68
+ upgrade_from_3_3_x_to_3_4_x
68
69
  end
69
70
 
70
71
  desc 'next_steps', "Reprints instructions on final steps (Use after 'upgrade')"
72
+
71
73
  def next_steps
72
74
  header = <<TEXT
73
75
  Next Steps:
@@ -103,6 +105,17 @@ TEXT
103
105
  run "rails new . -f"
104
106
  end
105
107
 
108
+ def upgrade_module_from_3_1_x_to_3_3_x
109
+ puts "Upgrading to BrowserCMS 3.3.x..."
110
+ new_rails
111
+ cleanup_rails2_files
112
+ cleanup_rails_3
113
+ cleanup_module
114
+ upgrade_to_3_3_0
115
+ generate_bcms_module_for_3_3_x
116
+ next_steps
117
+ end
118
+
106
119
  # Removes any files which are Rails 2 specific
107
120
  def cleanup_rails2_files
108
121
  %w{about console dbconsole destroy generate performance plugin runner server}.each do |script_name|
@@ -132,6 +145,86 @@ TEXT
132
145
  git :checkout => 'config/database.yml'
133
146
  end
134
147
 
148
+
149
+ def upgrade_from_3_3_x_to_3_4_x
150
+ remove_dir "script" # Wipe out any old scripts, using new Rails 3.1 mountable script.
151
+ remove_file 'config.ru'
152
+ run "rails plugin new . --mountable --force"
153
+ revert "lib/#{name_of_module}/engine.rb"
154
+ revert "lib/#{name_of_module}/version.rb"
155
+ revert "#{name_of_module}.gemspec"
156
+
157
+ remove_file "MIT-LICENSE"
158
+ remove_file "README.rdoc"
159
+ move_file "config/database.yml", "test/dummy/config/database.yml"
160
+
161
+ move_file "config/routes.rb", "tmp/routes.rb" # Backup to avoid getting overwritten by plugin
162
+ remove_dir "config"
163
+ empty_directory "config"
164
+ move_file "tmp/routes.rb", "config/routes.rb"
165
+
166
+ prepend_to_file "lib/#{name_of_module}/engine.rb", "require 'browsercms'\n"
167
+ include_cms_module
168
+
169
+ remove_dir "app/views/layouts"
170
+ remove_file "app/controllers/application_controller.rb"
171
+ remove_file "app/helpers/application_helper.rb"
172
+
173
+ move_dir "public/bcms/#{name_of_module.gsub("bcms_", "")}", "app/assets"
174
+ remove_dir "public"
175
+
176
+ append_to_file "test/dummy/config/routes.rb", "\tmount_browsercms\n", :after=>"/#{name_of_module}\"\n"
177
+
178
+ # Clean up db/ folder
179
+ remove_file "db/schema.rb"
180
+ remove_file "db/seeds.rb"
181
+ remove_files "db/migrate/*_browsercms*.rb"
182
+ remove_files "db/*.sqlite3"
183
+
184
+ # Create a seed data file
185
+ create_file "test/dummy/db/seeds.rb", "# Add seed data here"
186
+
187
+ end
188
+
189
+ # Does a git revert of a file.
190
+ def revert(file)
191
+ git :checkout => file
192
+ end
193
+
194
+ # Move all the contents of a given directory into the specified directory
195
+ # @param [String] src Relative name of src directory (with project)
196
+ # @param [String] dest Relative name of dest directory (with project)
197
+ # @param [Hash] config
198
+ def move_dir(src, dest, config={})
199
+ src_path = File.expand_path(src, destination_root)
200
+
201
+ Dir.glob(File.join(src_path, '*')).each do |file|
202
+ to = File.join(destination_root, dest, File.basename(file))
203
+ FileUtils.mv file, to
204
+ say_status :mv, "#{relative_to_original_destination_root(file)} -> #{relative_to_original_destination_root(to)}", config.fetch(:verbose, true)
205
+
206
+ end
207
+ end
208
+
209
+ # Remove a set of files matching a glob pattern.
210
+ # @param [String] pattern i.e. db/migrate/*_browsercms_*.rb
211
+ def remove_files(pattern)
212
+ Dir.glob(File.join(destination_root, pattern)).each do |file|
213
+ remove_file file
214
+ end
215
+ end
216
+
217
+ # Move a file within the destination directory
218
+ # @param [String] src
219
+ # @param [String] dest
220
+ # @param [Hash] config
221
+ def move_file(src, dest, config={})
222
+ src_path = File.expand_path(src, destination_root)
223
+ dest_path = File.expand_path(dest, destination_root)
224
+ say_status :mv, "#{relative_to_original_destination_root(src_path)} -> #{relative_to_original_destination_root(dest_path)}", config.fetch(:verbose, true)
225
+ FileUtils.mv(src_path, dest_path)
226
+ end
227
+
135
228
  def upgrade_to_3_3_0
136
229
  # Remove public files where are now served from CMS core.
137
230
  remove_file 'public/bcms/ckeditor'
@@ -142,10 +235,9 @@ TEXT
142
235
  remove_file "public/javascripts/#{js}.js"
143
236
  end
144
237
 
145
- copy_file '20100705083859_browsercms_3_3_0.rb', 'db/migrate/20100705083859_browsercms_3_3_0.rb'
146
238
  end
147
239
 
148
- def generate_bcms_module
240
+ def generate_bcms_module_for_3_3_x
149
241
  gem 'browsercms'
150
242
  gem 'mysql'
151
243
  gem 'jeweler', :group=>:development
@@ -153,17 +245,14 @@ TEXT
153
245
  # Allows gem to be loaded as a engine for testing.
154
246
  append_to_file 'Gemfile', 'gemspec'
155
247
 
156
-
157
- template 'engine.erb', "lib/#{name_of_module}/engine.rb"
248
+ create_file "lib/#{name_of_module}/engine.rb", "# Engine goes here"
158
249
  prepend_to_file "lib/#{name_of_module}.rb" do
159
250
  "require '#{name_of_module}/engine'\n"
160
251
  end
161
- route "routes_for_browser_cms"
252
+ route "mount_browsercms"
162
253
  route "routes_for_#{name_of_module}"
163
254
 
164
- template 'install.erb', "lib/generators/#{name_of_module}/install/install_generator.rb"
165
- template 'USAGE.erb', "lib/generators/#{name_of_module}/install/USAGE"
166
- empty_directory "lib/generators/#{name_of_module}/install/templates"
255
+ generate_installation_script
167
256
 
168
257
 
169
258
  run "rails g browser_cms:cms -f"
@@ -227,6 +316,18 @@ TEXT
227
316
  ensure
228
317
  puts "".reset
229
318
  end
319
+
320
+ # Determines if the current projects is a BrowserCMS module or not.
321
+ def project_is_module?
322
+ module_file = File.expand_path(File.join(destination_root, "lib", "#{name_of_module}.rb"))
323
+ File.exists?(module_file)
324
+ end
325
+
326
+ def project_is_3_1_x?
327
+ rails_console = File.expand_path(File.join(destination_root, "script", "console"))
328
+ File.exists?(rails_console)
329
+ end
230
330
  end
231
331
 
332
+
232
333
  App.start