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
@@ -0,0 +1,67 @@
1
+ module TestLogging
2
+ def log(msg)
3
+ Rails.logger.info(msg)
4
+ end
5
+
6
+ def log_array(obj, *columns)
7
+ lengths = columns.map{|m| m.to_s.length }
8
+
9
+ obj.each do |r|
10
+ columns.each_with_index do |m, i|
11
+ v = r.send(m)
12
+ if v.to_s.length > lengths[i]
13
+ lengths[i] = v.to_s.length
14
+ end
15
+ end
16
+ end
17
+
18
+ str = " "
19
+ columns.each_with_index do |m, i|
20
+ str << "%#{lengths[i]}s" % m
21
+ str << " "
22
+ end
23
+ str << "\n "
24
+
25
+ columns.each_with_index do |m, i|
26
+ str << ("-"*lengths[i])
27
+ str << " "
28
+ end
29
+ str << "\n "
30
+
31
+ obj.each do |r|
32
+ columns.each_with_index do |m, i|
33
+ str << "%#{lengths[i]}s" % r.send(m)
34
+ str << " "
35
+ end
36
+ str << "\n "
37
+ end
38
+
39
+ log str
40
+ end
41
+
42
+ def log_table(cls, options={})
43
+ if options[:include_columns]
44
+ columns = options[:include_columns]
45
+ elsif options[:exclude_columns]
46
+ columns = cls.column_names - options[:exclude_columns].map(&:to_s)
47
+ else
48
+ columns = cls.column_names
49
+ end
50
+ log_array (cls.uses_soft_delete? ? cls.find_with_deleted(:all) : cls.all), *columns
51
+ end
52
+
53
+ def log_table_with(cls, *columns)
54
+ log_table(cls, :include_columns => columns)
55
+ end
56
+
57
+ def log_table_without(cls, *columns)
58
+ log_table(cls, :exclude_columns => columns)
59
+ end
60
+
61
+ def log_table_without_stamps(cls, *columns)
62
+ log_table(cls, :exclude_columns => %w[created_at updated_at created_by_id updated_by_id] + columns)
63
+ end
64
+
65
+ extend self
66
+
67
+ end
@@ -0,0 +1,50 @@
1
+ require File.join(File.dirname(__FILE__), '/../test_helper')
2
+
3
+ class ActiveRecordCallbacksTest < ActiveSupport::TestCase
4
+
5
+ # test "When callbacks occur" do
6
+ # b = HtmlBlock.new(:name=>"NAME")
7
+ # assert b.save
8
+ # end
9
+
10
+ def setup
11
+ @page = Factory(:page, :section => root_section)
12
+ @block = Factory(:html_block, :name => "Versioned Content Block")
13
+ @page.create_connector(@block, "main")
14
+ reset(:page, :block)
15
+ end
16
+
17
+ # Copy back to content_block_test if there are any changes.
18
+ # def test_editing_connected_to_an_unpublished_page
19
+ # page_version_count = Page::Version.count
20
+ # assert_equal 2, @page.versions.size, "Should be two versions of the page"
21
+ # assert !@page.published?
22
+ #
23
+ # pages = Page.connected_to(:connectable => @block, :version => @block.version).all
24
+ # assert_equal [@page], pages, "block should be connected to page"
25
+ #
26
+ #
27
+ # assert @block.update_attributes(:name => "something different")
28
+ # assert_equal false, @block.skip_callbacks
29
+ # assert_equal 2, @block.versions.size, "should be two versions of this block"
30
+ # reset(:page)
31
+ #
32
+ #
33
+ # assert !@page.published?
34
+ # assert_equal 3, @page.versions.size, "Should be three versions of the page."
35
+ # assert_equal 3, @page.draft.version, "Draft version of page should be updated to v3 since its connected to the updated block."
36
+ # assert_incremented page_version_count, Page::Version.count
37
+ # assert_match /^HtmlBlock #\d+ was Edited/, @page.draft.version_comment
38
+ #
39
+ # conns = @block.connectors.all(:order => 'id')
40
+ # assert_equal 2, conns.size
41
+ # assert_properties conns[0], :page => @page, :page_version => 2, :connectable => @block, :connectable_version => 1, :container => "main"
42
+ # assert_properties conns[1], :page => @page, :page_version => 3, :connectable => @block, :connectable_version => 2, :container => "main"
43
+ # end
44
+
45
+ test "Creation of connectors" do
46
+ assert_equal 1, @block.connectors.all.size
47
+ assert @block.update_attributes(:name => "something different")
48
+ assert_equal 2, @block.connectors.all.size
49
+ end
50
+ end
@@ -0,0 +1,370 @@
1
+ require 'test_helper'
2
+
3
+
4
+ ActiveRecord::Base.connection.instance_eval do
5
+ drop_table(:default_attachables) rescue nil
6
+ drop_table(:default_attachable_versions) rescue nil
7
+ create_content_table(:default_attachables, :prefix => false) do |t|
8
+ t.string :name
9
+ t.integer :attachment_id
10
+ t.integer :attachment_version
11
+ t.timestamps
12
+ end
13
+
14
+ drop_table(:versioned_attachables) rescue nil
15
+ drop_table(:versioned_attachable_versions) rescue nil
16
+ create_content_table(:versioned_attachables, :prefix => false) do |t|
17
+ t.string :name
18
+ t.integer :attachment_id
19
+ t.integer :attachment_version
20
+ t.timestamps
21
+ end
22
+ end
23
+
24
+ class DefaultAttachable < ActiveRecord::Base
25
+ acts_as_content_block :belongs_to_attachment => true
26
+ end
27
+
28
+ class VersionedAttachable < ActiveRecord::Base
29
+ acts_as_content_block :belongs_to_attachment => true
30
+
31
+ def use_default_attachment_path
32
+ if @attachment_file_path && @attachment_file_path != attachment.file_path
33
+ attachment.file_path = @attachment_file_path
34
+ end
35
+ end
36
+
37
+ def set_attachment_section
38
+ if @attachment_section_id && @attachment_section_id != attachment.section_id
39
+ attachment.section_id = @attachment_section_id
40
+ end
41
+ end
42
+ end
43
+
44
+ module Cms
45
+ class AttachableBehaviorTest < ActiveSupport::TestCase
46
+
47
+ def setup
48
+ @file = mock_file
49
+ @attachable = DefaultAttachable.create!(:name => "File Name", :attachment_section_id => root_section, :attachment_file => @file, :publish_on_save => true)
50
+ end
51
+
52
+ test "Saving a block which an attachment should save both and associate it" do
53
+ content = DefaultAttachable.find(@attachable.id)
54
+ assert_not_nil content.attachment
55
+ end
56
+ end
57
+
58
+ class DefaultAttachableTest < ActiveSupport::TestCase
59
+ def setup
60
+ remove_all_sitemap_fixtures_to_avoid_bugs
61
+
62
+ #file is a mock of the object that Rails wraps file uploads in
63
+ @file = mock_file
64
+ @section = root_section
65
+ end
66
+
67
+ test "Create a block with an attached file" do
68
+ @attachable = DefaultAttachable.create!(:name => "File Name", :attachment_file => @file, :publish_on_save => true)
69
+
70
+ assert_equal @section, @attachable.attachment_section
71
+
72
+ @attachable = DefaultAttachable.find(@attachable.id)
73
+
74
+ assert_not_nil @attachable.attachment, "Should have an attachment"
75
+ assert_equal @section, @attachable.attachment_section
76
+
77
+ end
78
+
79
+ def test_create_with_attachment_file
80
+ @attachable = DefaultAttachable.new(:name => "File Name", :attachment_file => @file, :publish_on_save => true)
81
+ attachable_count = DefaultAttachable.count
82
+
83
+ @attachable.save!
84
+
85
+ assert_incremented attachable_count, DefaultAttachable.count
86
+ assert_equal @section, @attachable.attachment_section
87
+ assert_equal @section.id, @attachable.attachment_section_id
88
+ assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
89
+
90
+ reset(:attachable)
91
+
92
+ assert_equal @section, @attachable.attachment_section
93
+ assert_equal @section.id, @attachable.attachment_section_id
94
+ assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
95
+ assert @attachable.attachment.published?
96
+ end
97
+
98
+ def test_create_without_attachment_and_then_add_attachment_on_edit
99
+ @attachable = DefaultAttachable.new(:name => "File Name",
100
+ :attachment_file => nil, :publish_on_save => true)
101
+
102
+ assert_difference 'DefaultAttachable.count' do
103
+ assert_valid @attachable
104
+ @attachable.save!
105
+ end
106
+
107
+ assert_nil @attachable.attachment_file_path
108
+ assert_nil @attachable.attachment, "There should be no attachment saved."
109
+
110
+ reset(:attachable)
111
+
112
+ @attachable.attachment_file = @file
113
+ assert_equal true, @attachable.save!
114
+ assert_equal true, @attachable.publish!
115
+
116
+ assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
117
+
118
+ assert_not_nil @attachable.attachment, "After attaching a file, the Attachment should exist"
119
+
120
+ reset(:attachable)
121
+
122
+ assert_not_nil @attachable.attachment, "The attachment should have been saved and reloaded."
123
+ assert_equal @section, @attachable.attachment_section
124
+ assert_equal @section.id, @attachable.attachment_section_id
125
+ assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
126
+ assert @attachable.attachment.published?
127
+ end
128
+
129
+ end
130
+
131
+ class AttachingTest < ActiveSupport::TestCase
132
+
133
+ def test_block_without_attaching_behavior
134
+ assert !Cms::HtmlBlock.belongs_to_attachment?
135
+ end
136
+
137
+ def test_file_path_sanitization
138
+ {
139
+ "Draft #1.txt" => "Draft_1.txt",
140
+ "Copy of 100% of Paul's Time(1).txt" => "Copy_of_100_of_Pauls_Time-1-.txt"
141
+ }.each do |example, expected|
142
+ assert_equal expected,
143
+ VersionedAttachable.new.sanitize_file_path(example)
144
+ end
145
+ end
146
+
147
+ end
148
+
149
+ class AttachableTest < ActiveSupport::TestCase
150
+
151
+ def setup
152
+ #file is a mock of the object that Rails wraps file uploads in
153
+ @file = mock_file(:original_filename => "sample_upload.txt")
154
+
155
+ @section = Factory(:section, :name => "attachables", :parent => root_section)
156
+ end
157
+
158
+ def test_create_with_attachment_section_id_attachment_file_and_attachment_file_path
159
+ @attachable = VersionedAttachable.new(:name => "Section ID, File and File Name",
160
+ :attachment_section_id => @section.id,
161
+ :attachment_file => @file,
162
+ :attachment_file_path => "test.jpg")
163
+
164
+ assert_was_saved_properly
165
+ end
166
+
167
+ def test_create_with_attachment_section_attachment_file_and_attachment_file_path
168
+ @attachable = VersionedAttachable.new(:name => "Section, File and File Name",
169
+ :attachment_section => @section,
170
+ :attachment_file => @file,
171
+ :attachment_file_path => "test.jpg")
172
+
173
+ assert_was_saved_properly
174
+ end
175
+
176
+ def test_create_with_an_attachment_section_but_no_attachment_file
177
+ @attachable = VersionedAttachable.new(:name => "Section, No File",
178
+ :attachment_section => @section)
179
+
180
+ attachable_count = VersionedAttachable.count
181
+
182
+ assert !@attachable.save
183
+
184
+ assert_equal attachable_count, VersionedAttachable.count
185
+ assert_equal @section, @attachable.attachment_section
186
+ assert_equal @section.id, @attachable.attachment_section_id
187
+ assert_nil @attachable.attachment_file_path
188
+ end
189
+
190
+ def test_create_with_an_attachment_file_but_no_attachment_section
191
+ @attachable = VersionedAttachable.new(:name => "File Name, No File",
192
+ :attachment_file_path => "whatever.jpg")
193
+
194
+ attachable_count = VersionedAttachable.count
195
+
196
+ assert !@attachable.save
197
+
198
+ assert_equal attachable_count, VersionedAttachable.count
199
+ assert_nil @attachable.attachment_section
200
+ assert_nil @attachable.attachment_section_id
201
+ assert_equal "whatever.jpg", @attachable.attachment_file_path
202
+ end
203
+
204
+ def test_create_screwy_attachment_file_name
205
+ @attachable = VersionedAttachable.new(:name => "Section ID, File and File Name",
206
+ :attachment_section_id => @section.id,
207
+ :attachment_file => @file,
208
+ :attachment_file_path => "Broken? Yes & No!.txt")
209
+
210
+ attachable_count = VersionedAttachable.count
211
+
212
+ assert @attachable.save
213
+
214
+ assert_incremented attachable_count, VersionedAttachable.count
215
+ assert_equal "/Broken_Yes_-_No.txt", @attachable.attachment_file_path
216
+ end
217
+
218
+ def test_updating_the_attachment_file_name
219
+ @attachable = VersionedAttachable.create!(:name => "Foo",
220
+ :attachment_section_id => @section.id,
221
+ :attachment_file => @file,
222
+ :attachment_file_path => "test.jpg")
223
+ reset(:attachable)
224
+
225
+ attachment_count = Cms::Attachment.count
226
+ attachment_version = @attachable.attachment_version
227
+ attachment_version_count = Cms::Attachment::Version.count
228
+
229
+ assert @attachable.update_attributes(:attachment_file_path => "test2.jpg", :publish_on_save => true)
230
+
231
+ assert_equal attachment_count, Cms::Attachment.count
232
+
233
+ assert_incremented attachment_version, @attachable.attachment_version
234
+ assert_incremented attachment_version_count, Cms::Attachment::Version.count
235
+ assert_equal "/test2.jpg", @attachable.attachment_file_path
236
+
237
+ reset(:attachable)
238
+
239
+ assert_equal attachment_count, Cms::Attachment.count
240
+ assert_incremented attachment_version, @attachable.attachment_version
241
+ assert_incremented attachment_version_count, Cms::Attachment::Version.count
242
+ assert_equal "/test2.jpg", @attachable.attachment_file_path
243
+ end
244
+
245
+ def test_updating_the_attachment_file
246
+ @attachable = VersionedAttachable.create!(:name => "Foo",
247
+ :attachment_section_id => @section.id,
248
+ :attachment_file => @file,
249
+ :attachment_file_path => "test.jpg")
250
+
251
+ reset(:attachable)
252
+
253
+ @file2 = mock_file(:original_filename => "second_upload.txt")
254
+
255
+ attachment_count = Cms::Attachment.count
256
+ attachment_version = @attachable.attachment_version
257
+ attachment_version_count = Cms::Attachment::Version.count
258
+
259
+ assert @attachable.update_attributes(:attachment_file => @file2)
260
+
261
+ assert_equal attachment_count, Cms::Attachment.count
262
+ assert_equal attachment_version, @attachable.reload.attachment_version
263
+ assert_incremented attachment_version_count, Cms::Attachment::Version.count
264
+ @file.rewind
265
+ assert_equal @file.read, open(@attachable.attachment.full_file_location) { |f| f.read }
266
+
267
+ reset(:attachable)
268
+ @file.rewind
269
+ @file2.rewind
270
+
271
+ assert_equal @file.read, open(@attachable.attachment.as_of_version(1).full_file_location) { |f| f.read }
272
+ assert_equal @file2.read, open(@attachable.attachment.as_of_version(2).full_file_location) { |f| f.read }
273
+
274
+ end
275
+
276
+ protected
277
+ def assert_was_saved_properly
278
+ attachable_count = VersionedAttachable.count
279
+
280
+ assert @attachable.save
281
+
282
+ assert_incremented attachable_count, VersionedAttachable.count
283
+ assert_equal @section, @attachable.attachment_section
284
+ assert_equal @section.id, @attachable.attachment_section_id
285
+ assert_equal "/test.jpg", @attachable.attachment_file_path
286
+
287
+ reset(:attachable)
288
+
289
+ assert_equal @section, @attachable.attachment_section
290
+ assert_equal @section.id, @attachable.attachment_section_id
291
+ assert_equal "/test.jpg", @attachable.attachment_file_path
292
+ end
293
+
294
+ end
295
+
296
+ class VersionedAttachableTest < ActiveSupport::TestCase
297
+ def setup
298
+ #file is a mock of the object that Rails wraps file uploads in
299
+ @file = mock_file
300
+
301
+ @section = Factory(:section, :name => "attachables", :parent => root_section)
302
+
303
+ @attachable = VersionedAttachable.create!(:name => "Foo v1",
304
+ :attachment_section_id => @section.id,
305
+ :attachment_file => @file,
306
+ :attachment_file_path => "test.jpg")
307
+ reset(:attachable)
308
+ end
309
+
310
+ def test_updating_the_versioned_attachable
311
+ attachment_count = Cms::Attachment.count
312
+ attachment_version = @attachable.attachment_version
313
+ attachment_version_count = Cms::Attachment::Version.count
314
+
315
+ assert @attachable.update_attributes(:name => "Foo v2")
316
+
317
+ assert_equal attachment_count, Cms::Attachment.count
318
+ assert_equal attachment_version, @attachable.attachment_version
319
+ assert_equal attachment_version_count, Cms::Attachment::Version.count
320
+ assert_equal "Foo v2", @attachable.name
321
+ assert_equal @attachable.as_of_version(1).attachment, @attachable.as_of_version(2).attachment
322
+ end
323
+
324
+ def test_updating_the_versioned_attachable_attachment_file_path
325
+ attachable_count = VersionedAttachable.count
326
+ attachment_count = Cms::Attachment.count
327
+ attachment_version = @attachable.attachment_version
328
+ attachment_version_count = Cms::Attachment::Version.count
329
+
330
+ assert @attachable.update_attributes(:attachment_file_path => "test2.jpg")
331
+
332
+ assert_equal attachable_count, VersionedAttachable.count
333
+ assert_equal attachment_count, Cms::Attachment.count
334
+ assert_incremented attachment_version, @attachable.attachment_version
335
+ assert_incremented attachment_version_count, Cms::Attachment::Version.count
336
+ assert_equal "/test2.jpg", @attachable.attachment_file_path
337
+
338
+ assert_equal @attachable.as_of_version(1).attachment, @attachable.as_of_version(2).attachment
339
+ assert_not_equal @attachable.as_of_version(1).attachment_version, @attachable.as_of_version(2).attachment_version
340
+ assert_equal "/test.jpg", @attachable.as_of_version(1).attachment_file_path
341
+ assert_equal "/test2.jpg", @attachable.as_of_version(2).attachment_file_path
342
+ end
343
+
344
+ def test_updating_the_versioned_attachable_attachment_file
345
+ @file2 = mock_file(:original_filename => "second_upload.txt")
346
+
347
+ attachable_count = VersionedAttachable.count
348
+ attachment_count = Cms::Attachment.count
349
+ attachment_version = @attachable.attachment_version
350
+ attachment_version_count = Cms::Attachment::Version.count
351
+
352
+ assert @attachable.update_attributes(:attachment_file => @file2)
353
+
354
+ assert_equal attachable_count, VersionedAttachable.count
355
+ assert_equal attachment_count, Cms::Attachment.count
356
+ assert_incremented attachment_version, @attachable.attachment_version
357
+ assert_incremented attachment_version_count, Cms::Attachment::Version.count
358
+
359
+ @file2.rewind
360
+ assert_equal @file2.read, open(@attachable.attachment.full_file_location) { |f| f.read }
361
+
362
+ @file.rewind
363
+ assert_equal @file.read, open(@attachable.attachment.as_of_version(1).full_file_location) { |f| f.read }
364
+
365
+ @file2.rewind
366
+ assert_equal @file2.read, open(@attachable.attachment.as_of_version(2).full_file_location) { |f| f.read }
367
+ end
368
+
369
+ end
370
+ end