browsercms 3.1.5 → 3.3.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (425) hide show
  1. data/app/controllers/cms/base_controller.rb +3 -3
  2. data/app/controllers/cms/content_block_controller.rb +2 -2
  3. data/app/controllers/cms/content_controller.rb +5 -4
  4. data/app/controllers/cms/error_handling.rb +1 -1
  5. data/app/controllers/cms/routes_controller.rb +4 -5
  6. data/app/controllers/cms/section_nodes_controller.rb +1 -6
  7. data/app/controllers/cms/sections_controller.rb +2 -3
  8. data/app/controllers/cms/tasks_controller.rb +3 -0
  9. data/app/controllers/cms/users_controller.rb +1 -1
  10. data/app/helpers/cms/application_helper.rb +137 -34
  11. data/app/helpers/cms/form_builder.rb +33 -21
  12. data/app/helpers/cms/page_helper.rb +43 -10
  13. data/app/helpers/cms/path_helper.rb +1 -1
  14. data/app/helpers/cms/rendering_helper.rb +3 -4
  15. data/app/helpers/cms/section_nodes_helper.rb +5 -43
  16. data/app/models/abstract_file_block.rb +1 -16
  17. data/app/models/attachment.rb +57 -22
  18. data/app/models/category.rb +4 -4
  19. data/app/models/category_type.rb +2 -2
  20. data/app/models/cms/view_context.rb +46 -0
  21. data/app/models/connector.rb +7 -6
  22. data/app/models/content_type.rb +3 -3
  23. data/app/models/dynamic_view.rb +1 -1
  24. data/app/models/email_message.rb +2 -2
  25. data/app/models/file_block.rb +12 -0
  26. data/app/models/group.rb +4 -4
  27. data/app/models/group_type.rb +4 -4
  28. data/app/models/html_block.rb +1 -1
  29. data/app/models/image_block.rb +12 -0
  30. data/app/models/link.rb +22 -5
  31. data/app/models/page.rb +87 -46
  32. data/app/models/page_route.rb +61 -6
  33. data/app/models/permission.rb +1 -1
  34. data/app/models/portlet.rb +14 -4
  35. data/app/models/section.rb +48 -86
  36. data/app/models/section_node.rb +25 -40
  37. data/app/models/site.rb +1 -1
  38. data/app/models/tag.rb +1 -1
  39. data/app/models/task.rb +8 -7
  40. data/app/models/user.rb +2 -7
  41. data/app/portlets/forgot_password_portlet.rb +6 -2
  42. data/app/portlets/reset_password_portlet.rb +1 -1
  43. data/app/views/cms/blocks/_toolbar.html.erb +1 -1
  44. data/app/views/cms/blocks/_toolbar_for_collection.html.erb +3 -6
  45. data/app/views/cms/blocks/_toolbar_for_member.html.erb +3 -5
  46. data/app/views/cms/blocks/edit.html.erb +4 -4
  47. data/app/views/cms/blocks/index.html.erb +7 -7
  48. data/app/views/cms/blocks/new.html.erb +4 -4
  49. data/app/views/cms/blocks/show.html.erb +2 -2
  50. data/app/views/cms/blocks/usages.html.erb +2 -2
  51. data/app/views/cms/blocks/versions.html.erb +4 -4
  52. data/app/views/cms/cache/show.html.erb +2 -2
  53. data/app/views/cms/categories/_form.html.erb +2 -2
  54. data/app/views/cms/connectors/new.html.erb +6 -8
  55. data/app/views/cms/content/no_page.html.erb +1 -1
  56. data/app/views/cms/content/show.html.erb +2 -7
  57. data/app/views/cms/dashboard/_page_drafts.html.erb +1 -1
  58. data/app/views/cms/dashboard/_tasks.html.erb +1 -1
  59. data/app/views/cms/dashboard/index.html.erb +1 -1
  60. data/app/views/cms/dynamic_views/_form.html.erb +2 -2
  61. data/app/views/cms/dynamic_views/index.html.erb +7 -10
  62. data/app/views/cms/email_messages/show.html.erb +2 -2
  63. data/app/views/cms/file_blocks/_form.html.erb +4 -4
  64. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +2 -2
  65. data/app/views/cms/form_builder/_cms_file_field.html.erb +2 -2
  66. data/app/views/cms/form_builder/_cms_tag_list.html.erb +2 -2
  67. data/app/views/cms/form_builder/_cms_text_editor.html.erb +2 -2
  68. data/app/views/cms/groups/_form.html.erb +5 -5
  69. data/app/views/cms/groups/_permissions.html.erb +4 -4
  70. data/app/views/cms/groups/_sections.html.erb +1 -2
  71. data/app/views/cms/groups/index.html.erb +1 -1
  72. data/app/views/cms/html_blocks/render.html.erb +1 -1
  73. data/app/views/cms/image_blocks/_form.html.erb +4 -5
  74. data/app/views/cms/links/_form.html.erb +1 -1
  75. data/app/views/cms/links/edit.html.erb +2 -2
  76. data/app/views/cms/links/new.html.erb +2 -2
  77. data/app/views/cms/page_routes/_form.html.erb +2 -2
  78. data/app/views/cms/page_routes/index.html.erb +6 -9
  79. data/app/views/cms/page_routes/show.html.erb +5 -8
  80. data/app/views/cms/pages/_edit_connector.html.erb +1 -1
  81. data/app/views/cms/pages/_form.html.erb +3 -3
  82. data/app/views/cms/pages/edit.html.erb +2 -2
  83. data/app/views/cms/pages/new.html.erb +7 -7
  84. data/app/views/cms/pages/versions.html.erb +4 -4
  85. data/app/views/cms/redirects/_form.html.erb +2 -2
  86. data/app/views/cms/redirects/index.html.erb +8 -7
  87. data/app/views/cms/routes/index.html.erb +2 -2
  88. data/app/views/cms/section_nodes/_link.html.erb +3 -6
  89. data/app/views/cms/section_nodes/_node.html.erb +4 -13
  90. data/app/views/cms/section_nodes/_page.html.erb +7 -13
  91. data/app/views/cms/section_nodes/_section.html.erb +8 -24
  92. data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
  93. data/app/views/cms/section_nodes/index.html.erb +18 -30
  94. data/app/views/cms/sections/_form.html.erb +4 -6
  95. data/app/views/cms/sections/edit.html.erb +2 -2
  96. data/app/views/cms/sections/index.html.erb +3 -3
  97. data/app/views/cms/sections/new.html.erb +3 -3
  98. data/app/views/cms/sessions/new.html.erb +3 -3
  99. data/app/views/cms/shared/_pagination.html.erb +1 -1
  100. data/app/views/cms/shared/error.html.erb +1 -1
  101. data/app/views/cms/tags/render.html.erb +2 -2
  102. data/app/views/cms/tasks/new.html.erb +4 -4
  103. data/app/views/cms/users/_form.html.erb +3 -3
  104. data/app/views/cms/users/_toolbar.html.erb +3 -3
  105. data/app/views/cms/users/change_password.html.erb +5 -5
  106. data/app/views/cms/users/edit.html.erb +2 -2
  107. data/app/views/cms/users/index.html.erb +4 -4
  108. data/app/views/cms/users/new.html.erb +2 -2
  109. data/app/views/cms/users/show.html.erb +16 -16
  110. data/app/views/layouts/_cms_toolbar.html.erb +5 -5
  111. data/app/views/layouts/_page_toolbar.html.erb +11 -11
  112. data/app/views/layouts/cms/_footer.erb +1 -1
  113. data/app/views/layouts/cms/_head.html.erb +2 -6
  114. data/app/views/layouts/cms/administration.html.erb +32 -32
  115. data/app/views/layouts/cms/content_library.html.erb +5 -5
  116. data/app/views/layouts/cms/toolbar.html.erb +1 -1
  117. data/app/views/portlets/email_page/render.html.erb +2 -2
  118. data/app/views/portlets/forgot_password/render.html.erb +1 -1
  119. data/app/views/portlets/login/render.html.erb +4 -2
  120. data/app/views/portlets/reset_password/render.html.erb +1 -1
  121. data/app/views/tests/pretend/open_with_layout.html.erb +1 -1
  122. data/bin/bcms +0 -0
  123. data/bin/bcms-upgrade +232 -0
  124. data/bin/browsercms +2 -2
  125. data/browsercms.gemspec +16 -14
  126. data/db/migrate/20100705083859_browsercms_3_3_0.rb +56 -0
  127. data/db/seeds.rb +58 -0
  128. data/doc/guides/html/authentication.html +448 -192
  129. data/doc/guides/html/build_it_yourself.html +454 -175
  130. data/doc/guides/html/building_modules.html +451 -220
  131. data/doc/guides/html/building_templates.html +448 -498
  132. data/doc/guides/html/content_blocks.html +450 -470
  133. data/doc/guides/html/customizing_browsercms.html +453 -169
  134. data/doc/guides/html/deployment_guide.html +443 -82
  135. data/doc/guides/html/files/bcmsorg.js +28 -0
  136. data/doc/guides/html/files/clearfix.css +8 -0
  137. data/doc/guides/html/files/cufon.js +7 -0
  138. data/doc/guides/html/files/global.css +190 -0
  139. data/doc/guides/html/files/helvetica.js +91 -0
  140. data/doc/guides/html/files/jquery.js +11 -0
  141. data/doc/guides/html/getting_started.html +454 -213
  142. data/doc/guides/html/index.html +454 -174
  143. data/doc/guides/html/installing_modules.html +454 -186
  144. data/doc/guides/html/portlets.html +451 -232
  145. data/doc/guides/html/user_guide.html +452 -270
  146. data/doc/guides/html/writing_guides.html +454 -161
  147. data/lib/acts_as_list.rb +1 -1
  148. data/lib/browsercms.rb +10 -6
  149. data/lib/cms/acts.rb +7 -0
  150. data/lib/cms/authentication.rb +4 -0
  151. data/lib/cms/authentication/controller.rb +1 -1
  152. data/lib/cms/behaviors.rb +1 -1
  153. data/lib/cms/behaviors/archiving.rb +2 -2
  154. data/lib/cms/behaviors/attaching.rb +28 -43
  155. data/lib/cms/behaviors/categorizing.rb +1 -1
  156. data/lib/cms/behaviors/connecting.rb +27 -12
  157. data/lib/cms/behaviors/dynamic_attributes.rb +8 -5
  158. data/lib/cms/behaviors/hiding.rb +2 -2
  159. data/lib/cms/behaviors/publishing.rb +32 -22
  160. data/lib/cms/behaviors/rendering.rb +41 -18
  161. data/lib/cms/behaviors/searching.rb +1 -1
  162. data/lib/cms/behaviors/soft_deleting.rb +58 -29
  163. data/lib/cms/behaviors/taggable.rb +1 -1
  164. data/lib/cms/behaviors/userstamping.rb +5 -4
  165. data/lib/cms/behaviors/versioning.rb +192 -111
  166. data/lib/cms/content_rendering_support.rb +3 -3
  167. data/lib/cms/date_picker.rb +23 -0
  168. data/lib/cms/engine.rb +46 -0
  169. data/lib/cms/extensions.rb +1 -1
  170. data/lib/cms/extensions/active_record/errors.rb +2 -2
  171. data/lib/cms/extensions/hash.rb +4 -2
  172. data/lib/cms/extensions/string.rb +7 -2
  173. data/lib/cms/init.rb +32 -21
  174. data/lib/cms/module.rb +22 -0
  175. data/lib/cms/module_installation.rb +38 -0
  176. data/lib/cms/routes.rb +127 -115
  177. data/lib/cms/version.rb +2 -2
  178. data/lib/generators/browser_cms.rb +12 -0
  179. data/lib/generators/browser_cms/cms/USAGE +2 -0
  180. data/lib/generators/browser_cms/cms/cms_generator.rb +36 -0
  181. data/{rails_generators/browser_cms → lib/generators/browser_cms/cms}/templates/README +0 -0
  182. data/{rails_generators/browser_cms_demo_site → lib/generators/browser_cms/demo_site}/USAGE +0 -0
  183. data/lib/generators/browser_cms/demo_site/demo_site_generator.rb +138 -0
  184. data/lib/generators/browser_cms/demo_site/templates/demo_site.rake +11 -0
  185. data/{rails_generators/browser_cms_demo_site/templates/migration.rb → lib/generators/browser_cms/demo_site/templates/migration.erb} +2 -8
  186. data/lib/generators/cms/content_block/USAGE +22 -0
  187. data/lib/generators/cms/content_block/content_block_generator.rb +55 -0
  188. data/{rails_generators → lib/generators/cms}/content_block/templates/_form.html.erb +0 -0
  189. data/{rails_generators → lib/generators/cms}/content_block/templates/content_block.rb +0 -0
  190. data/{rails_generators → lib/generators/cms}/content_block/templates/controller.rb +0 -0
  191. data/{rails_generators → lib/generators/cms}/content_block/templates/functional_test.erb +0 -0
  192. data/{rails_generators/content_block/templates/migration.rb → lib/generators/cms/content_block/templates/migration.erb} +1 -1
  193. data/{rails_generators → lib/generators/cms}/content_block/templates/render.html.erb +0 -0
  194. data/{rails_generators → lib/generators/cms}/content_block/templates/unit_test.erb +0 -0
  195. data/lib/generators/cms/install/USAGE +8 -0
  196. data/lib/generators/cms/install/install_generator.rb +20 -0
  197. data/{rails_generators → lib/generators/cms}/portlet/USAGE +3 -16
  198. data/lib/generators/cms/portlet/portlet_generator.rb +38 -0
  199. data/{rails_generators → lib/generators/cms}/portlet/templates/_form.html.erb +0 -0
  200. data/{rails_generators → lib/generators/cms}/portlet/templates/portlet.rb +0 -0
  201. data/{rails_generators → lib/generators/cms}/portlet/templates/portlet_helper.rb +0 -0
  202. data/{rails_generators → lib/generators/cms}/portlet/templates/render.html.erb +0 -0
  203. data/{rails_generators → lib/generators/cms}/portlet/templates/unit_test.erb +0 -0
  204. data/{rails_generators → lib/generators/cms}/template/USAGE +1 -1
  205. data/lib/generators/cms/template/template_generator.rb +18 -0
  206. data/lib/generators/cms/template/templates/template.erb +2 -0
  207. data/lib/generators/cms/upgrade_module/README.txt +3 -0
  208. data/lib/generators/cms/upgrade_module/templates/20100705083859_browsercms_3_3_0.rb +56 -0
  209. data/lib/generators/cms/upgrade_module/templates/README +1 -0
  210. data/lib/generators/cms/upgrade_module/templates/USAGE.erb +10 -0
  211. data/lib/generators/cms/upgrade_module/templates/build_gem.rake +5 -0
  212. data/lib/generators/cms/upgrade_module/templates/engine.erb +7 -0
  213. data/lib/generators/cms/upgrade_module/templates/gemspec.erb +25 -0
  214. data/lib/generators/cms/upgrade_module/templates/gitignore.erb +11 -0
  215. data/lib/generators/cms/upgrade_module/templates/install.erb +9 -0
  216. data/lib/generators/cms/upgrade_module/templates/module_file.erb +3 -0
  217. data/lib/generators/cms/upgrade_module/templates/routes.erb +7 -0
  218. data/lib/generators/cms/upgrade_module/upgrade_module_generator.rb +61 -0
  219. data/lib/tasks/build_gem.rake +1 -0
  220. data/lib/tasks/cms.rake +34 -6
  221. data/lib/tasks/cucumber.rake +53 -0
  222. data/lib/tasks/db.rake +2 -2
  223. data/public/javascripts/cms/application.js +144 -135
  224. data/public/javascripts/cms/sitemap.js +383 -357
  225. data/public/javascripts/jquery-ui.js +782 -591
  226. data/public/javascripts/jquery.cookie.js +38 -43
  227. data/public/javascripts/jquery.js +13 -8
  228. data/public/javascripts/jquery.taglist.js +7 -0
  229. data/public/stylesheets/cms/date_picker.css +49 -40
  230. data/rails/init.rb +2 -3
  231. data/templates/blank.rb +13 -7
  232. data/templates/demo.rb +15 -7
  233. data/templates/module.rb +12 -75
  234. metadata +87 -407
  235. data/app/helpers/cms/content_block_helper.rb +0 -27
  236. data/app/views/layouts/cms/thickbox.html.erb +0 -24
  237. data/db/migrate/20120117144039_browsercms315.rb +0 -94
  238. data/db/migrate/20121114172307_load_seeds.rb +0 -70
  239. data/lib/cms/addressable.rb +0 -83
  240. data/lib/cms/error_pages.rb +0 -8
  241. data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
  242. data/public/images/cms/thickbox/macFFBgHack.png +0 -0
  243. data/public/javascripts/jquery.contextMenu.js +0 -211
  244. data/public/javascripts/jquery.dimensions.js +0 -119
  245. data/public/javascripts/jquery.thickbox.js +0 -10
  246. data/public/stylesheets/cms/jquery.contextMenu.css +0 -61
  247. data/public/stylesheets/cms/thickbox.css +0 -163
  248. data/rails_generators/browser_cms/USAGE +0 -2
  249. data/rails_generators/browser_cms/browser_cms_generator.rb +0 -35
  250. data/rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb +0 -63
  251. data/rails_generators/content_block/USAGE +0 -32
  252. data/rails_generators/content_block/content_block_generator.rb +0 -69
  253. data/rails_generators/portlet/portlet_generator.rb +0 -35
  254. data/rails_generators/template/template_generator.rb +0 -18
  255. data/rails_generators/template/templates/template.erb +0 -3
  256. data/test/custom_assertions.rb +0 -74
  257. data/test/factories.rb +0 -111
  258. data/test/factories/sitemap_factories.rb +0 -28
  259. data/test/fixtures/connectors.yml +0 -97
  260. data/test/fixtures/content_type_groups.yml +0 -13
  261. data/test/fixtures/content_types.yml +0 -50
  262. data/test/fixtures/dynamic_view_versions.yml +0 -26
  263. data/test/fixtures/dynamic_views.yml +0 -26
  264. data/test/fixtures/group_permissions.yml +0 -16
  265. data/test/fixtures/group_sections.yml +0 -31
  266. data/test/fixtures/group_type_permissions.yml +0 -11
  267. data/test/fixtures/group_types.yml +0 -25
  268. data/test/fixtures/groups.yml +0 -25
  269. data/test/fixtures/html_block_versions.yml +0 -67
  270. data/test/fixtures/html_blocks.yml +0 -63
  271. data/test/fixtures/page_versions.yml +0 -265
  272. data/test/fixtures/pages.yml +0 -85
  273. data/test/fixtures/permissions.yml +0 -28
  274. data/test/fixtures/section_nodes.yml +0 -46
  275. data/test/fixtures/sections.yml +0 -19
  276. data/test/fixtures/sites.yml +0 -9
  277. data/test/fixtures/user_group_memberships.yml +0 -11
  278. data/test/fixtures/users.yml +0 -15
  279. data/test/functional/cms/cache_controller_test.rb +0 -14
  280. data/test/functional/cms/categories_controller_test.rb +0 -25
  281. data/test/functional/cms/connectors_controller_test.rb +0 -60
  282. data/test/functional/cms/content_block_controller_test.rb +0 -120
  283. data/test/functional/cms/content_controller_test.rb +0 -439
  284. data/test/functional/cms/content_types_controller_test.rb +0 -18
  285. data/test/functional/cms/dashboard_controller_test.rb +0 -16
  286. data/test/functional/cms/dynamic_views_controller_test.rb +0 -52
  287. data/test/functional/cms/file_blocks_controller_test.rb +0 -52
  288. data/test/functional/cms/groups_controller_test.rb +0 -50
  289. data/test/functional/cms/home_controller_test.rb +0 -156
  290. data/test/functional/cms/html_blocks_controller_test.rb +0 -164
  291. data/test/functional/cms/image_blocks_controller_test.rb +0 -82
  292. data/test/functional/cms/links_controller_test.rb +0 -148
  293. data/test/functional/cms/pages_controller_test.rb +0 -227
  294. data/test/functional/cms/portlets_controller_test.rb +0 -67
  295. data/test/functional/cms/section_nodes_controller_test.rb +0 -112
  296. data/test/functional/cms/sections_controller_test.rb +0 -227
  297. data/test/functional/cms/sessions_controller_test.rb +0 -76
  298. data/test/functional/cms/toolbar_controller_test.rb +0 -64
  299. data/test/functional/cms/users_controller_test.rb +0 -231
  300. data/test/functional/tests/pretend_controller_test.rb +0 -57
  301. data/test/integration/cms/ckeditor_test.rb +0 -30
  302. data/test/integration/cms/password_management_test.rb +0 -56
  303. data/test/integration/login_test.rb +0 -14
  304. data/test/integration/sitemap_performance_test.rb +0 -26
  305. data/test/selenium-core/Blank.html +0 -7
  306. data/test/selenium-core/InjectedRemoteRunner.html +0 -8
  307. data/test/selenium-core/RemoteRunner.html +0 -110
  308. data/test/selenium-core/SeleniumLog.html +0 -109
  309. data/test/selenium-core/TestPrompt.html +0 -145
  310. data/test/selenium-core/TestRunner-splash.html +0 -55
  311. data/test/selenium-core/TestRunner.hta +0 -176
  312. data/test/selenium-core/TestRunner.html +0 -176
  313. data/test/selenium-core/domviewer/butmin.gif +0 -0
  314. data/test/selenium-core/domviewer/butplus.gif +0 -0
  315. data/test/selenium-core/domviewer/domviewer.css +0 -298
  316. data/test/selenium-core/domviewer/domviewer.html +0 -16
  317. data/test/selenium-core/domviewer/selenium-domviewer.js +0 -205
  318. data/test/selenium-core/icons/all.png +0 -0
  319. data/test/selenium-core/icons/continue.png +0 -0
  320. data/test/selenium-core/icons/continue_disabled.png +0 -0
  321. data/test/selenium-core/icons/pause.png +0 -0
  322. data/test/selenium-core/icons/pause_disabled.png +0 -0
  323. data/test/selenium-core/icons/selected.png +0 -0
  324. data/test/selenium-core/icons/step.png +0 -0
  325. data/test/selenium-core/icons/step_disabled.png +0 -0
  326. data/test/selenium-core/iedoc-core.xml +0 -1515
  327. data/test/selenium-core/iedoc.xml +0 -1469
  328. data/test/selenium-core/lib/cssQuery/cssQuery-p.js +0 -6
  329. data/test/selenium-core/lib/cssQuery/src/cssQuery-level2.js +0 -142
  330. data/test/selenium-core/lib/cssQuery/src/cssQuery-level3.js +0 -150
  331. data/test/selenium-core/lib/cssQuery/src/cssQuery-standard.js +0 -53
  332. data/test/selenium-core/lib/cssQuery/src/cssQuery.js +0 -356
  333. data/test/selenium-core/lib/prototype.js +0 -2006
  334. data/test/selenium-core/lib/scriptaculous/builder.js +0 -101
  335. data/test/selenium-core/lib/scriptaculous/controls.js +0 -815
  336. data/test/selenium-core/lib/scriptaculous/dragdrop.js +0 -915
  337. data/test/selenium-core/lib/scriptaculous/effects.js +0 -958
  338. data/test/selenium-core/lib/scriptaculous/scriptaculous.js +0 -47
  339. data/test/selenium-core/lib/scriptaculous/slider.js +0 -283
  340. data/test/selenium-core/lib/scriptaculous/unittest.js +0 -383
  341. data/test/selenium-core/scripts/find_matching_child.js +0 -69
  342. data/test/selenium-core/scripts/htmlutils.js +0 -894
  343. data/test/selenium-core/scripts/injection.html +0 -72
  344. data/test/selenium-core/scripts/js2html.js +0 -70
  345. data/test/selenium-core/scripts/narcissus-defs.js +0 -175
  346. data/test/selenium-core/scripts/narcissus-exec.js +0 -1054
  347. data/test/selenium-core/scripts/narcissus-parse.js +0 -1003
  348. data/test/selenium-core/scripts/se2html.js +0 -63
  349. data/test/selenium-core/scripts/selenium-api.js +0 -2409
  350. data/test/selenium-core/scripts/selenium-browserbot.js +0 -2203
  351. data/test/selenium-core/scripts/selenium-browserdetect.js +0 -150
  352. data/test/selenium-core/scripts/selenium-commandhandlers.js +0 -377
  353. data/test/selenium-core/scripts/selenium-executionloop.js +0 -175
  354. data/test/selenium-core/scripts/selenium-logging.js +0 -147
  355. data/test/selenium-core/scripts/selenium-remoterunner.js +0 -571
  356. data/test/selenium-core/scripts/selenium-testrunner.js +0 -1333
  357. data/test/selenium-core/scripts/selenium-version.js +0 -5
  358. data/test/selenium-core/scripts/user-extensions.js +0 -3
  359. data/test/selenium-core/scripts/user-extensions.js.sample +0 -75
  360. data/test/selenium-core/scripts/xmlextras.js +0 -153
  361. data/test/selenium-core/selenium-logo.png +0 -0
  362. data/test/selenium-core/selenium-test.css +0 -43
  363. data/test/selenium-core/selenium.css +0 -299
  364. data/test/selenium-core/xpath/dom.js +0 -428
  365. data/test/selenium-core/xpath/misc.js +0 -252
  366. data/test/selenium-core/xpath/xpath.js +0 -2223
  367. data/test/selenium/_login_as_cmsadmin.rsel +0 -4
  368. data/test/selenium/dashboard.rsel +0 -5
  369. data/test/selenium/html_blocks.rsel +0 -4
  370. data/test/selenium/login/failed_login.rsel +0 -8
  371. data/test/selenium/login/successful_login.rsel +0 -9
  372. data/test/selenium/page_templates.rsel +0 -12
  373. data/test/selenium/pages/edit_properties.rsel +0 -5
  374. data/test/selenium/site/view_home_page.rsel +0 -4
  375. data/test/selenium/sitemap/move_page.rsel +0 -9
  376. data/test/selenium/sitemap/open_section.rsel +0 -6
  377. data/test/selenium/sitemap/select_page.rsel +0 -12
  378. data/test/selenium/sitemap/select_section.rsel +0 -17
  379. data/test/test_helper.rb +0 -193
  380. data/test/test_logging.rb +0 -67
  381. data/test/unit/behaviors/attaching_test.rb +0 -357
  382. data/test/unit/behaviors/connectable_test.rb +0 -29
  383. data/test/unit/behaviors/dynamic_attributes_test.rb +0 -38
  384. data/test/unit/behaviors/publishable_test.rb +0 -84
  385. data/test/unit/behaviors/searching_test.rb +0 -102
  386. data/test/unit/behaviors/taggable_test.rb +0 -109
  387. data/test/unit/behaviors/versioning_test.rb +0 -36
  388. data/test/unit/extensions/active_record/base_test.rb +0 -10
  389. data/test/unit/extensions/hash_test.rb +0 -17
  390. data/test/unit/extensions/integer_test.rb +0 -10
  391. data/test/unit/helpers/application_helper_test.rb +0 -77
  392. data/test/unit/helpers/form_builder_test.rb +0 -36
  393. data/test/unit/helpers/menu_helper_test.rb +0 -242
  394. data/test/unit/helpers/page_helper_test.rb +0 -67
  395. data/test/unit/helpers/path_helper_test.rb +0 -57
  396. data/test/unit/lib/acts_as_content_page_test.rb +0 -72
  397. data/test/unit/lib/cms/authentication/controller_test.rb +0 -20
  398. data/test/unit/lib/cms/sitemap_test.rb +0 -206
  399. data/test/unit/lib/cms_domain_support_test.rb +0 -43
  400. data/test/unit/lib/command_line_test.rb +0 -70
  401. data/test/unit/lib/content_block_test.rb +0 -203
  402. data/test/unit/lib/content_rendering_support_test.rb +0 -40
  403. data/test/unit/lib/generators_test.rb +0 -40
  404. data/test/unit/lib/routes_test.rb +0 -57
  405. data/test/unit/models/attachment_test.rb +0 -116
  406. data/test/unit/models/category_test.rb +0 -40
  407. data/test/unit/models/category_type_test.rb +0 -8
  408. data/test/unit/models/connector_test.rb +0 -152
  409. data/test/unit/models/content_type_test.rb +0 -56
  410. data/test/unit/models/email_page_portlet_test.rb +0 -14
  411. data/test/unit/models/file_block_test.rb +0 -230
  412. data/test/unit/models/group_test.rb +0 -13
  413. data/test/unit/models/html_block_test.rb +0 -102
  414. data/test/unit/models/link_test.rb +0 -52
  415. data/test/unit/models/page_partial_test.rb +0 -29
  416. data/test/unit/models/page_route_test.rb +0 -29
  417. data/test/unit/models/page_template_test.rb +0 -40
  418. data/test/unit/models/page_test.rb +0 -792
  419. data/test/unit/models/permission_test.rb +0 -10
  420. data/test/unit/models/portlet_test.rb +0 -69
  421. data/test/unit/models/sections_test.rb +0 -264
  422. data/test/unit/models/site_test.rb +0 -50
  423. data/test/unit/models/task_test.rb +0 -141
  424. data/test/unit/models/user_test.rb +0 -352
  425. data/test/unit/schema_statements_test.rb +0 -41
data/lib/cms/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  ##
2
- # Allows the precise version of BrowserCMS to be determined programmatically.
2
+ # Allows the precise version of BrowserCMS to be determined problematically.
3
3
  #
4
4
  module Cms
5
- VERSION = "3.1.5"
5
+ VERSION = "3.3.0.beta"
6
6
  end
@@ -0,0 +1,12 @@
1
+ require 'rails/generators/base'
2
+
3
+ module BrowserCms
4
+ module Generators
5
+ # Base class for generators that work on copying files out of the Gem into projects.
6
+ class Base < Rails::Generators::Base
7
+ def self.source_root
8
+ @_browsercms_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), '../../'))
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,2 @@
1
+ Description:
2
+ Copies migrations from the browsercms gem into the application.
@@ -0,0 +1,36 @@
1
+ require 'generators/browser_cms'
2
+ module BrowserCms
3
+ module Generators
4
+
5
+ # For creating a new BrowserCMS project (Used in conjunction with the blank, demo and module templates.
6
+ class CmsGenerator < Base
7
+
8
+
9
+ def enable_static_asset_serving
10
+ application do
11
+ code = "# BrowserCMS should serve static CMS assets (js, css, images) from the Gem\n"
12
+ code = code + "config.serve_static_assets = true"
13
+ end
14
+ end
15
+
16
+ def copy_migrations_and_custom_js_files
17
+
18
+ files_to_copy = [
19
+ # For FCKEditor customization. Not sure this is even necessary anymore
20
+ 'public/site/customconfig.js',
21
+
22
+ # Migrations/seed data
23
+ 'db/migrate/20080815014337_browsercms_3_0_0.rb',
24
+ 'db/migrate/20091109175123_browsercms_3_0_5.rb',
25
+ 'db/seeds.rb'
26
+ ]
27
+
28
+ files_to_copy.each do |file|
29
+ copy_file file, file
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,138 @@
1
+ require 'generators/browser_cms'
2
+ require 'rails/generators/migration'
3
+ module BrowserCms
4
+ module Generators
5
+ class DemoSiteGenerator < Base
6
+ include Rails::Generators::Migration
7
+
8
+ def create_demo_site
9
+ # Copy all public files
10
+ Dir["#{Cms.root}/public/themes/blue_steel/**/*"].each do |f|
11
+ if File.file?(f)
12
+ file_name = f.sub("#{Cms.root}/", '')
13
+ directory File.dirname(file_name)
14
+ copy_file Cms.scrub_path(f), file_name
15
+ end
16
+ end
17
+
18
+ copy_file 'lib/generators/browser_cms/demo_site/templates/demo_site.rake', 'db/migrate/demo_site.rake'
19
+
20
+ template templates_dir('migration.erb'), 'db/demo_site_seeds.rb', :assigns => {
21
+ :data => data,
22
+ :page_templates => page_templates,
23
+ :page_partials => page_partials
24
+ }
25
+
26
+ end
27
+
28
+ private
29
+ def templates_dir(file=nil)
30
+ f = File.expand_path(File.join(File.dirname(__FILE__), "templates", file))
31
+ Cms.scrub_path(f)
32
+ end
33
+ def data
34
+ open(File.join(Cms.root, "db", "demo", "data.rb")){|f| f.read}
35
+ end
36
+
37
+ # Returns an array of strings that are ruby code.
38
+ # Each string is a hash that should be passed to the create_page_template method
39
+ # in the migration
40
+ def page_templates
41
+ Dir["#{Cms.root}/db/demo/page_templates/*.erb"].map do |f|
42
+ name, format, handler = File.basename(f).split('.')
43
+ %Q{create_page_template(:#{name},
44
+ :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
45
+ :body => <<-HTML
46
+ #{open(f){|f| f.read}}
47
+ HTML
48
+ )}
49
+ end
50
+ end
51
+
52
+ def page_partials
53
+ Dir["#{Cms.root}/db/demo/page_partials/*.erb"].map do |f|
54
+ name, format, handler = File.basename(f).split('.')
55
+ %Q{create_page_partial(:#{name},
56
+ :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
57
+ :body => <<-HTML
58
+ #{open(f){|f| f.read}}
59
+ HTML
60
+ )}
61
+ end
62
+ end
63
+
64
+ # FIXME: Should be proxied to ActiveRecord::Generators::Base
65
+ # Implement the required interface for Rails::Generators::Migration.
66
+ def self.next_migration_number(dirname) #:nodoc:
67
+ if ActiveRecord::Base.timestamped_migrations
68
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
69
+ else
70
+ "%.3d" % (current_migration_number(dirname) + 1)
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ # class BrowserCmsDemoSiteGenerator < Rails::Generator::Base
77
+ #
78
+ # def source_root
79
+ # "/"
80
+ # end
81
+ #
82
+ # def templates_dir(file=nil)
83
+ # f = File.expand_path(File.join(File.dirname(__FILE__), "templates", file))
84
+ # Cms.scrub_path(f)
85
+ # end
86
+ #
87
+ # def manifest
88
+ # record do |m|
89
+ # # Copy all public files
90
+ # Dir["#{Cms.root}/public/themes/blue_steel/**/*"].each do |f|
91
+ # if File.file?(f)
92
+ # file_name = f.sub("#{Cms.root}/", '')
93
+ # m.directory File.dirname(file_name)
94
+ # m.file Cms.scrub_path(f), file_name
95
+ # end
96
+ # end
97
+ #
98
+ # m.migration_template templates_dir('migration.rb'), 'db/migrate', :assigns => {
99
+ # :data => data,
100
+ # :page_templates => page_templates,
101
+ # :page_partials => page_partials
102
+ # }, :migration_file_name => "load_demo_site_data"
103
+ #
104
+ # end
105
+ # end
106
+ #
107
+ # def data
108
+ # open(File.join(Cms.root, "db", "demo", "data.rb")){|f| f.read}
109
+ # end
110
+ #
111
+ # # Returns an array of strings that are ruby code.
112
+ # # Each string is a hash that should be passed to the create_page_template method
113
+ # # in the migration
114
+ # def page_templates
115
+ # Dir["#{Cms.root}/db/demo/page_templates/*.erb"].map do |f|
116
+ # name, format, handler = File.basename(f).split('.')
117
+ # %Q{create_page_template(:#{name},
118
+ # :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
119
+ # :body => <<-HTML
120
+ # #{open(f){|f| f.read}}
121
+ # HTML
122
+ # )}
123
+ # end
124
+ # end
125
+ #
126
+ # def page_partials
127
+ # Dir["#{Cms.root}/db/demo/page_partials/*.erb"].map do |f|
128
+ # name, format, handler = File.basename(f).split('.')
129
+ # %Q{create_page_partial(:#{name},
130
+ # :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
131
+ # :body => <<-HTML
132
+ # #{open(f){|f| f.read}}
133
+ # HTML
134
+ # )}
135
+ # end
136
+ # end
137
+ #
138
+ # end
@@ -0,0 +1,11 @@
1
+ require 'find'
2
+
3
+ namespace :db do
4
+
5
+ desc 'Load the demo site seed data from db/seeds.rb'
6
+ task :seed_demo_site => 'db:abort_if_pending_migrations' do
7
+ demo_seed_file = File.join(Rails.root, 'db', 'demo_site_seeds.rb')
8
+ load(demo_seed_file) if File.exist?(demo_seed_file)
9
+ end
10
+
11
+ end
@@ -1,7 +1,6 @@
1
- class LoadDemoSiteData < ActiveRecord::Migration
2
- extend Cms::DataLoader
1
+ require 'cms/data_loader'
2
+ include Cms::DataLoader
3
3
 
4
- def self.up
5
4
  <%= data %>
6
5
 
7
6
  # Create templates
@@ -13,9 +12,4 @@ class LoadDemoSiteData < ActiveRecord::Migration
13
12
  <% page_partials.each do |pp| %>
14
13
  <%= pp %>
15
14
  <% end %>
16
- end
17
15
 
18
- def self.down
19
- end
20
-
21
- end
@@ -0,0 +1,22 @@
1
+ Description:
2
+ Create a new content block, along with controller, tests and migrations.
3
+
4
+ Examples:
5
+ `rails generate cms:content article`
6
+
7
+ Creates an Article model, controller, views, tests, and migration:
8
+ Model: app/models/article.rb
9
+ Unit Test: test/unit/models/article_test.rb
10
+ Migration: db/migrate/XXX_create_article.rb
11
+ Controller: app/controllers/cms/article_controller.rb
12
+ Functional Test: test/functional/cms/article_controler_test.rb
13
+ Form Partials: app/views/cms/articles/_form.html.erb
14
+ app/views/cms/articles/render.html.erb
15
+
16
+ This block will have a single attribute, name:string and a form with text_field
17
+ to edit the name.
18
+
19
+ `rails generate content Article name:string body:text published:boolean`
20
+
21
+ Creates an Article model with a string name, text body, and published flag.
22
+ It will create form fields for these attributes in _form.html.erb.
@@ -0,0 +1,55 @@
1
+ require 'rails/generators/active_record/migration'
2
+
3
+ module Cms
4
+ module Generators
5
+ # Allows developers to create new Content Blocks for their projects.
6
+ #
7
+ class ContentBlockGenerator < Rails::Generators::NamedBase
8
+
9
+ source_root File.expand_path('../templates', __FILE__)
10
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
11
+ class_option :migration, :type => :boolean, :default=>true
12
+
13
+ include Rails::Generators::Migration
14
+ extend ActiveRecord::Generators::Migration
15
+
16
+ # Don't check for class collision as overwriting content blocks is fine.
17
+ # check_class_collision
18
+
19
+ def create_content_block
20
+ template 'content_block.rb', File.join('app/models', "#{file_name}.rb")
21
+ end
22
+
23
+ def create_model_test
24
+ template 'unit_test.erb', File.join('test', 'unit', 'models', "#{file_name}_test.rb")
25
+ end
26
+
27
+ def create_controller_and_views
28
+ template 'controller.rb', File.join('app/controllers/cms', "#{file_name.pluralize}_controller.rb")
29
+ template '_form.html.erb', File.join('app/views/cms/', file_name.pluralize, "_form.html.erb")
30
+ template 'render.html.erb', File.join('app/views/cms/', file_name.pluralize, "render.html.erb")
31
+ end
32
+
33
+ def create_functional_test
34
+ template 'functional_test.erb', File.join('test/functional/cms/', "#{file_name.pluralize}_controller_test.rb")
35
+ end
36
+
37
+ def create_routes
38
+ route "namespace :cms do content_blocks :#{file_name.pluralize} end\n"
39
+ end
40
+
41
+ def create_migration_file
42
+ return unless options[:migration]
43
+ migration_template "migration.erb", "db/migrate/create_#{table_name}.rb"
44
+ end
45
+
46
+ private
47
+
48
+ # Used by migration.rb to fill in class name.
49
+ def migration_name
50
+ "Create#{class_name.pluralize.gsub(/::/, '')}"
51
+ end
52
+
53
+ end
54
+ end
55
+ end
@@ -23,7 +23,7 @@ class <%= migration_name %> < ActiveRecord::Migration
23
23
  CategoryType.create!(:name => "<%= @category_type %>")
24
24
  end<% end %>
25
25
  <% if @attachment_section %>unless Section.with_path('/<%= file_name.pluralize %>').exists?
26
- Section.create!(:name => "<%= @attachment_section %>", :parent => Section.system.first, :path => '/<%= file_name.pluralize %>', :allow_groups=>:all)
26
+ Section.create!(:name => "<%= @attachment_section %>", :parent => Section.system_section.first, :path => '/<%= file_name.pluralize %>', :allow_groups=>:all)
27
27
  end<% end %>
28
28
  ContentType.create!(:name => "<%= class_name %>", :group_name => "<%= class_name %>")
29
29
  end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Installs the given module into your current browsercms project.
3
+
4
+ Example:
5
+ rails generate cms:install_module bcms_name_of_module
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -0,0 +1,20 @@
1
+ require 'generators/browser_cms/cms/cms_generator'
2
+
3
+ module Cms
4
+
5
+ # A generic generator for installing BrowserCMS modules into a project. This will do the following:
6
+ #
7
+ # 1. Add the Gem to your Gemfile
8
+ # 2. Call the name_of_module:install generator for that gem.
9
+ # 3. Add the routes to the project
10
+ class InstallGenerator < Rails::Generators::NamedBase
11
+ source_root File.expand_path('../templates', __FILE__)
12
+
13
+ def add_and_install_module
14
+ gem name
15
+ generate("#{name}:install")
16
+ route "routes_for_#{name}"
17
+ end
18
+
19
+ end
20
+ end
@@ -3,7 +3,7 @@ Description:
3
3
  under_scored, and an optional list of attribute pairs as arguments.
4
4
 
5
5
  Attribute pairs are column_name:sql_type arguments specifying the
6
- model's attributes. By default, portlets include name:string and template:text
6
+ model's attributes. By default, portlets includes a Name (String) and template (Template Editor)
7
7
  attributes, so do not specify them.
8
8
 
9
9
  This generates a portlet class in app/portlets, a form in app/view/portlets and
@@ -13,20 +13,7 @@ Description:
13
13
  The name you supply will have "portlet" added to it, much the same way controllers work.
14
14
 
15
15
  Example:
16
- `./script/generate portlet ListRecentArticles`
17
-
18
- A portlet to find and display a list of recent Article blocks.
19
- Portlet: app/portlets/list_recent_articles_portlet.rb
20
- Helper: app/portlets/helpers/list_recent_articles_portlet_helper.rb
21
- Form View: app/views/portlets/list_recent_articles/_form.html.erb
22
- Default Template: app/views/portlets/list_recent_articles/render.html.erb
23
- Unit Test: test/unit/portlets/list_recent_articles_portlet_test.rb
24
-
25
- The _form.html.erb will have two fields, a text_field for name, and text_area for
26
- the default template, which will plug in whatever is in render.html.erb.
27
-
28
- Example with attributes:
29
- `./script/generate portlet find_top_x_articles number_to_show:integer description:string`
16
+ `rails generate cms:portlet find_top_x_articles number_to_show:integer description:string`
30
17
 
31
18
  A portlet to display a specific number of articles, as specified in the admin UI.
32
19
  Portlet: app/portlets/find_top_x_articles_portlet.rb
@@ -36,4 +23,4 @@ Example with attributes:
36
23
  Unit Test: test/unit/portlets/find_top_x_articles_portlet_test.rb
37
24
 
38
25
  The _form.html.erb will have text_fields for name, number_to_show and description, as
39
- well as a text_area for template.
26
+ well as a template_editor for template.
@@ -0,0 +1,38 @@
1
+ module Cms
2
+ module Generators
3
+ class PortletGenerator < Rails::Generators::NamedBase
4
+
5
+ source_root File.expand_path('../templates', __FILE__)
6
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
7
+ check_class_collision
8
+
9
+ def create_portlet
10
+ template 'portlet.rb', File.join('app/portlets', class_path, "#{portlet_file_name}.rb")
11
+ end
12
+
13
+ def create_helper
14
+ template 'portlet_helper.rb', File.join('app/portlets/helpers', class_path, "#{portlet_file_name}_helper.rb")
15
+ end
16
+
17
+ def create_views
18
+ template '_form.html.erb', File.join('app/views/portlets/', file_name, "_form.html.erb")
19
+ template 'render.html.erb', File.join('app/views/portlets/', file_name, "render.html.erb")
20
+ end
21
+
22
+ def create_tests
23
+ template 'unit_test.erb', File.join('test/unit/portlets', "#{portlet_file_name}_test.rb")
24
+ end
25
+
26
+ private
27
+
28
+ def portlet_class_name
29
+ "#{class_name}Portlet"
30
+ end
31
+
32
+ def portlet_file_name
33
+ "#{file_name}_portlet"
34
+ end
35
+ end
36
+ end
37
+ end
38
+