browsercms 3.1.5 → 3.3.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -1,436 +1,462 @@
1
- jQuery(function($){
2
-
1
+ jQuery(function($) {
2
+
3
3
  //----- Helper Functions -----------------------------------------------------
4
4
  //In all of this code, we are defining functions that we use later
5
5
  //None of this actually manipulates the DOM in any way
6
-
6
+
7
7
  //This is used to get the id part of an elementId
8
8
  //For example, if you have section_node_5,
9
9
  //you pass this 'section_node_5', 'section_node'
10
10
  //and this returns 5
11
11
  var getId = function(elementId, s) {
12
- return elementId.replace(s,'')
12
+ return elementId.replace(s, '')
13
13
  }
14
-
14
+
15
15
  var addHoverToSectionNodes = function() {
16
- $('#sitemap div.roundedcorners').hover(
17
- function() { $(this).find('table.section_node').addClass('hover'); $(this).addClass('over')},
18
- function() { $(this).find('table.section_node').removeClass('hover'); $(this).removeClass('over')}
19
- )
16
+ $('#sitemap div.roundedcorners').hover(
17
+ function() {
18
+ $(this).find('table.section_node').addClass('hover');
19
+ $(this).addClass('over')
20
+ },
21
+ function() {
22
+ $(this).find('table.section_node').removeClass('hover');
23
+ $(this).removeClass('over')
24
+ }
25
+ )
20
26
  }
21
-
27
+
22
28
  var disableButtons = function() {
23
- $('a.button').addClass('disabled').click(function(){return false})
29
+ $('a.button').addClass('disabled').click(function() {
30
+ return false
31
+ })
24
32
  }
25
-
33
+
26
34
  var makeMovableRowsDraggable = function() {
27
- $('#sitemap table.movable').draggable({
28
- revert: 'invalid',
29
- revertDuration: 200,
30
- helper: 'clone',
31
- delay: 200,
32
- start: function(event, ui) {
33
- ui.helper.removeClass('hover').removeClass('selected')
34
- }
35
- })
35
+ $('#sitemap table.movable').draggable({
36
+ revert: 'invalid',
37
+ revertDuration: 200,
38
+ helper: 'clone',
39
+ delay: 200,
40
+ start: function(event, ui) {
41
+ ui.helper.removeClass('hover').removeClass('selected')
42
+ }
43
+ })
36
44
  }
37
-
45
+
38
46
  var jsonPost = function(url, params) {
39
- if($.cms.authenticity_token && $.cms.authenticity_token != '') {
40
- params['authenticity_token'] = $.cms.authenticity_token
41
- }
42
- $.post(url, params,
43
- function(data){
44
- if(data.success) {
45
- $.cms.showNotice(data.message)
46
- } else {
47
- $.cms.showError(data.message)
48
- }
49
- }, "json"
50
- );
47
+ if ($.cms.authenticity_token && $.cms.authenticity_token != '') {
48
+ params['authenticity_token'] = $.cms.authenticity_token
49
+ }
50
+ $.post(url, params,
51
+ function(data) {
52
+ if (data.success) {
53
+ $.cms.showNotice(data.message)
54
+ } else {
55
+ $.cms.showError(data.message)
56
+ }
57
+ }, "json"
58
+ );
51
59
  }
52
-
60
+
53
61
  var moveSectionNode = function(sectionNodeId, move, otherSectionNodeId) {
54
- var url = '/cms/section_nodes/'+sectionNodeId+'/move_'+move
55
- var params = { _method: "PUT", section_node_id: otherSectionNodeId }
56
- jsonPost(url, params)
62
+ var url = '/cms/section_nodes/' + sectionNodeId + '/move_' + move
63
+ var params = { _method: "PUT", section_node_id: otherSectionNodeId }
64
+ jsonPost(url, params)
57
65
  }
58
-
66
+
59
67
  var moveSectionNodeToRoot = function(sectionNodeId, rootSectionId) {
60
- var url = '/cms/section_nodes/'+sectionNodeId+'/move_to_root'
61
- var params = { _method: "PUT", section_id: rootSectionId }
62
- jsonPost(url, params)
63
- }
64
-
65
- var nodeOnDrop = function(e, ui) {
66
- //Remove any drop zone highlights still hanging out
67
- $('#sitemap td.drop-before, #sitemap td.node, #sitemap td.drop-after').removeClass('drop-over')
68
-
69
- //Get the object and the id for the src (what we are droping)
70
- //and the dest (where we are dropping)
71
- var src = ui.draggable.parents('ul:first') //The UL the TD is in
72
- var sid = getId(src[0].id, 'section_node_')
73
- var dest = $(this).parents('ul:first') //The UL the drop zone is in
74
- var did = getId(dest[0].id, 'section_node_')
75
-
76
- //If the src is a descendant of the dest, then forget it
77
- if(src == dest || $.inArray(src[0], dest.parents()) > -1) {
78
- return true;
79
- }
80
-
81
- if(dest.hasClass('root')) {
82
- src.insertAfter(dest)
83
- makeRootlet(src);
84
- var rid = getId(dest[0].id, 'root_')
85
- moveSectionNodeToRoot(sid, rid)
86
- //Move to a section if the drop zone is the section
87
- } else {
88
- unMakeRootlet(src);
89
- if($(this).hasClass('node') && $(this).hasClass('section')) {
90
- makeExpandable(dest);
91
- var move = 'to_end'
92
- dest.find('li:first').append(src)
93
- openSection(dest[0])
94
- //If the drop zone is directly after an open section,
95
- //move this to the beginning of the section
96
- } else if($(this).hasClass('drop-after') && dest.find('table:first img.folder-open').length > 0) {
97
- var move = 'to_beginning'
98
- src.insertAfter(dest.find('table:first'))
99
- } else {
100
- //insert before or after, based on the class of the drop zone
101
- if (dest.hasClass('rootlet')) {
102
- makeRootlet(src);
103
- }
104
-
105
- if($(this).hasClass('drop-before')) {
106
- var move = 'before'
107
- src.insertBefore(dest)
108
- } else {
109
- var move = 'after'
110
- src.insertAfter(dest)
111
- }
112
-
113
- }
114
- //Make the ajax call
115
- moveSectionNode(sid, move, did)
116
-
117
- }
118
-
119
- //Make the thing we are dropping be selected
120
- selectSectionNode(src)
68
+ var url = '/cms/section_nodes/' + sectionNodeId + '/move_to_root'
69
+ var params = { _method: "PUT", section_id: rootSectionId }
70
+ jsonPost(url, params)
71
+ }
72
+
73
+ var nodeOnDrop = function(e, ui) {
74
+ //Remove any drop zone highlights still hanging out
75
+ $('#sitemap td.drop-before, #sitemap td.node, #sitemap td.drop-after').removeClass('drop-over')
76
+
77
+ //Get the object and the id for the src (what we are droping)
78
+ //and the dest (where we are dropping)
79
+ var src = ui.draggable.parents('ul:first') //The UL the TD is in
80
+ var sid = getId(src[0].id, 'section_node_')
81
+ var dest = $(this).parents('ul:first') //The UL the drop zone is in
82
+ var did = getId(dest[0].id, 'section_node_')
83
+
84
+ //If the src is a descendant of the dest, then forget it
85
+ if (src == dest || $.inArray(src[0], dest.parents()) > -1) {
86
+ return true;
87
+ }
88
+
89
+ if (dest.hasClass('root')) {
90
+ src.insertAfter(dest)
91
+ makeRootlet(src);
92
+ var rid = getId(dest[0].id, 'root_')
93
+ moveSectionNodeToRoot(sid, rid)
94
+ //Move to a section if the drop zone is the section
95
+ } else {
96
+ unMakeRootlet(src);
97
+ if ($(this).hasClass('node') && $(this).hasClass('section')) {
98
+ makeExpandable(dest);
99
+ var move = 'to_end'
100
+ dest.find('li:first').append(src)
101
+ openSection(dest[0])
102
+ //If the drop zone is directly after an open section,
103
+ //move this to the beginning of the section
104
+ } else if ($(this).hasClass('drop-after') && dest.find('table:first img.folder-open').length > 0) {
105
+ var move = 'to_beginning'
106
+ src.insertAfter(dest.find('table:first'))
107
+ } else {
108
+ //insert before or after, based on the class of the drop zone
109
+ if (dest.hasClass('rootlet')) {
110
+ makeRootlet(src);
111
+ }
112
+
113
+ if ($(this).hasClass('drop-before')) {
114
+ var move = 'before'
115
+ src.insertBefore(dest)
116
+ } else {
117
+ var move = 'after'
118
+ src.insertAfter(dest)
119
+ }
120
+
121
+ }
122
+ //Make the ajax call
123
+ moveSectionNode(sid, move, did)
124
+
125
+ }
126
+
127
+ //Make the thing we are dropping be selected
128
+ selectSectionNode(src)
121
129
 
122
130
  }
123
131
 
124
132
  var makeExpandable = function(dest) {
125
- var dest_toggle = dest.find('td.node:first img:first');
126
- dest_toggle.removeClass('no_folder_toggle');
127
- dest_toggle.addClass('folder_toggle');
128
- dest_toggle.click(toggleSectionOnClick);
129
- if (dest_toggle.hasClass('large')){
130
- dest_toggle.attr('src','/images/cms/sitemap/gray_contract.png');
131
- } else {
132
- dest_toggle.attr('src','/images/cms/sitemap/contract.png');
133
- }
133
+ var dest_toggle = dest.find('td.node:first img:first');
134
+ dest_toggle.removeClass('no_folder_toggle');
135
+ dest_toggle.addClass('folder_toggle');
136
+ dest_toggle.click(toggleSectionOnClick);
137
+ if (dest_toggle.hasClass('large')) {
138
+ dest_toggle.attr('src', '/images/cms/sitemap/gray_contract.png');
139
+ } else {
140
+ dest_toggle.attr('src', '/images/cms/sitemap/contract.png');
141
+ }
134
142
  }
135
143
 
136
144
  var makeRootlet = function(src) {
137
- src.addClass('rootlet')
138
- var src_icon = src.find('td.node:first img:last')
139
- var src_icon_src = src_icon.attr('src')
140
- if(src_icon_src.indexOf('/root_') == -1) {
141
- src_icon.attr('src',src_icon_src.replace(/\/([^/]+\.png).*/, '/root_$1'))
142
- }
145
+ src.addClass('rootlet')
146
+ var src_icon = src.find('td.node:first img:last')
147
+ var src_icon_src = src_icon.attr('src')
148
+ if (src_icon_src.indexOf('/root_') == -1) {
149
+ src_icon.attr('src', src_icon_src.replace(/\/([^/]+\.png).*/, '/root_$1'))
150
+ }
143
151
  }
144
-
152
+
145
153
  var unMakeRootlet = function (src) {
146
- src.removeClass('rootlet')
147
- var src_icon = src.find('td.node:first img:last')
148
- var src_icon_src = src_icon.attr('src')
149
- if (src_icon_src.indexOf('/root_') > -1) {
150
- src_icon.attr('src',src_icon_src.replace(/\/root_([^/]+\.png).*/, '/$1'))
151
- }
154
+ src.removeClass('rootlet')
155
+ var src_icon = src.find('td.node:first img:last')
156
+ var src_icon_src = src_icon.attr('src')
157
+ if (src_icon_src.indexOf('/root_') > -1) {
158
+ src_icon.attr('src', src_icon_src.replace(/\/root_([^/]+\.png).*/, '/$1'))
159
+ }
152
160
  }
153
-
161
+
154
162
  var enableDropZones = function() {
155
- $('#sitemap td.drop-before, #sitemap td.node, #sitemap td.drop-after').droppable({
156
- accept: 'table',
157
- tolerance: 'pointer',
158
- over: function(e, ui) {
159
- $(this).addClass('drop-over')
160
- },
161
- out: function(e, ui) {
162
- $(this).removeClass('drop-over')
163
- },
164
- drop: nodeOnDrop
165
- });
163
+ $('#sitemap td.drop-before, #sitemap td.node, #sitemap td.drop-after').droppable({
164
+ accept: 'table',
165
+ tolerance: 'pointer',
166
+ over: function(e, ui) {
167
+ $(this).addClass('drop-over')
168
+ },
169
+ out: function(e, ui) {
170
+ $(this).removeClass('drop-over')
171
+ },
172
+ drop: nodeOnDrop
173
+ });
166
174
  }
167
-
175
+
168
176
  var clearSelectedSectionNode = function() {
169
- disableButtons()
170
- $('#sitemap table.section_node').removeClass('selected');
171
- $('.roundedcorners').removeClass('on')
177
+ disableButtons()
178
+ $('#sitemap table.section_node').removeClass('selected');
179
+ $('.roundedcorners').removeClass('on')
172
180
  }
173
-
181
+
174
182
  var selectSectionNode = function(sectionNode) {
175
- clearSelectedSectionNode(sectionNode)
176
- enableButtonsForSectionNode(sectionNode)
177
- $(sectionNode).find('table:first').addClass('selected');
178
- $(sectionNode).find('div.roundedcorners:first').addClass('on')
183
+ clearSelectedSectionNode(sectionNode)
184
+ enableButtonsForSectionNode(sectionNode)
185
+ $(sectionNode).find('table:first').addClass('selected');
186
+ $(sectionNode).find('div.roundedcorners:first').addClass('on')
179
187
  }
180
-
188
+
181
189
  var isSectionEmpty = function(id) {
182
- return $('#section_'+id).parents('li:first').find('ul').length == 0
190
+ return $('#section_' + id).parents('li:first').find('ul').length == 0
183
191
  }
184
-
192
+
185
193
  var enableButtonsForSectionNode = function(sectionNode) {
186
- enableButtonsForNode($(sectionNode).find('td.node')[0])
194
+ enableButtonsForNode($(sectionNode).find('td.node')[0])
187
195
  }
188
-
196
+
189
197
  var enableButtonsForNode = function(node) {
190
- var id = getId(node.id, /(section|page|link)_/);
191
- if(!$(node).is(".non-editable")) {
192
- if($(node).hasClass('section')) {
193
- enableButtonsForSection(id);
194
- } else if($(node).hasClass('page')) {
195
- enableButtonsForPage(id);
196
- } else if($(node).hasClass('link')) {
197
- enableButtonsForLink(id);
198
- }
199
- }else if($(node).hasClass('page')) {
200
- $('#edit-button')
201
- .html('<span>View Page</span>')
202
- .removeClass('disabled')
203
- .attr('href','/cms/pages/'+id)
204
- .unbind('click')
205
- .click(function(){return true});
206
- } else {
207
- $('#properties-button').attr('href','/cms/sitemap');
208
- }
198
+ var id = getId(node.id, /(section|page|link)_/);
199
+ if (!$(node).is(".non-editable")) {
200
+ if ($(node).hasClass('section')) {
201
+ enableButtonsForSection(id);
202
+ } else if ($(node).hasClass('page')) {
203
+ enableButtonsForPage(id);
204
+ } else if ($(node).hasClass('link')) {
205
+ enableButtonsForLink(id);
206
+ }
207
+ } else if ($(node).hasClass('page')) {
208
+ $('#edit-button')
209
+ .html('<span>View Page</span>')
210
+ .removeClass('disabled')
211
+ .attr('href', '/cms/pages/' + id)
212
+ .unbind('click')
213
+ .click(function() {
214
+ return true
215
+ });
216
+ } else {
217
+ $('#properties-button').attr('href', '/cms/sitemap');
218
+ }
209
219
  };
210
-
220
+
211
221
  var enableButtonsForSection = function(id) {
212
- $('#properties-button')
213
- .removeClass('disabled')
214
- .attr('href','/cms/sections/'+id+'/edit')
215
- .unbind('click')
216
- .click(function(){return true})
217
-
218
- $('#add-page-button')
219
- .removeClass('disabled')
220
- .attr('href','/cms/sections/'+id+'/pages/new')
221
- .unbind('click')
222
- .click(function(){return true})
223
-
224
- $('#add-section-button')
225
- .removeClass('disabled')
226
- .attr('href','/cms/sections/new?section_id='+id)
227
- .unbind('click')
228
- .click(function(){return true})
229
-
230
- $('#add-link-button')
231
- .removeClass('disabled')
232
- .attr('href','/cms/sections/'+id+'/links/new')
233
- .unbind('click')
234
- .click(function(){return true})
235
-
236
- if(isSectionEmpty(id)) {
237
- $('#delete-button')
238
- .removeClass('disabled')
239
- .attr('href','/cms/sections/'+id+'.json')
240
- .unbind('click')
241
- .click(function(){
242
- if(confirm('Are you sure you want to delete this section?')) {
243
- var params = { _method: "DELETE" }
244
- if($.cms.authenticity_token && $.cms.authenticity_token != '') {
245
- params['authenticity_token'] = $.cms.authenticity_token
246
- }
247
- $.post($(this).attr('href'), params,
248
- function(data){
249
- if(data.success) {
250
- $.cms.showNotice(data.message)
251
- } else {
252
- $.cms.showError(data.message)
253
- }
254
- }, "json");
255
- $('#section_'+id).parents('ul.section_node:first').remove()
256
- }
257
- return false;
258
- })
259
- } else {
260
- $('#delete-button').addClass('disabled').unbind('click').click(function(){ return false})
261
- }
262
-
222
+ $('#properties-button')
223
+ .removeClass('disabled')
224
+ .attr('href', '/cms/sections/' + id + '/edit')
225
+ .unbind('click')
226
+ .click(function() {
227
+ return true
228
+ })
229
+
230
+ $('#add-page-button')
231
+ .removeClass('disabled')
232
+ .attr('href', '/cms/sections/' + id + '/pages/new')
233
+ .unbind('click')
234
+ .click(function() {
235
+ return true
236
+ })
237
+
238
+ $('#add-section-button')
239
+ .removeClass('disabled')
240
+ .attr('href', '/cms/sections/new?section_id=' + id)
241
+ .unbind('click')
242
+ .click(function() {
243
+ return true
244
+ })
245
+
246
+ $('#add-link-button')
247
+ .removeClass('disabled')
248
+ .attr('href', '/cms/sections/' + id + '/links/new')
249
+ .unbind('click')
250
+ .click(function() {
251
+ return true
252
+ })
253
+
254
+ if (isSectionEmpty(id)) {
255
+ $('#delete_button')
256
+ .removeClass('disabled')
257
+ .attr('href', '/cms/sections/' + id + '.json')
258
+ .unbind('click')
259
+ .click(function() {
260
+ if (confirm('Are you sure you want to delete this section?')) {
261
+ var params = { _method: "DELETE" }
262
+ if ($.cms.authenticity_token && $.cms.authenticity_token != '') {
263
+ params['authenticity_token'] = $.cms.authenticity_token
264
+ }
265
+ $.post($(this).attr('href'), params,
266
+ function(data) {
267
+ if (data.success) {
268
+ $.cms.showNotice(data.message)
269
+ } else {
270
+ $.cms.showError(data.message)
271
+ }
272
+ }, "json");
273
+ $('#section_' + id).parents('ul.section_node:first').remove()
274
+ }
275
+ return false;
276
+ })
277
+ } else {
278
+ $('#delete_button').addClass('disabled').unbind('click').click(function() {
279
+ return false
280
+ })
281
+ }
282
+
263
283
  }
264
-
284
+
265
285
  var enableButtonsForPage = function(id) {
266
- $('#edit-button')
267
- .html('<span>Edit Page</span>')
268
- .removeClass('disabled')
269
- .attr('href','/cms/pages/'+id)
270
- .unbind('click')
271
- .click(function(){return true})
272
-
273
- $('#properties-button')
274
- .removeClass('disabled')
275
- .attr('href','/cms/pages/'+id+'/edit')
276
- .unbind('click')
277
- .click(function(){return true})
278
-
279
- $('#delete-button')
280
- .removeClass('disabled')
281
- .attr('href','/cms/pages/'+id+'.json')
282
- .unbind('click')
283
- .click(function(){
284
- if(confirm('Are you sure you want to delete this page?')) {
285
- var params = { _method: "DELETE" }
286
- if($.cms.authenticity_token && $.cms.authenticity_token != '') {
287
- params['authenticity_token'] = $.cms.authenticity_token
288
- }
289
- $.post($(this).attr('href'), params,
290
- function(data){
291
- if(data.success) {
292
- $.cms.showNotice(data.message)
293
- } else {
294
- $.cms.showError(data.message)
295
- }
296
- }, "json");
297
- $('#page_'+id).parents('ul.section_node:first').remove()
286
+ $('#edit-button')
287
+ .html('<span>Edit Page</span>')
288
+ .removeClass('disabled')
289
+ .attr('href', '/cms/pages/' + id)
290
+ .unbind('click')
291
+ .click(function() {
292
+ return true
293
+ })
294
+
295
+ $('#properties-button')
296
+ .removeClass('disabled')
297
+ .attr('href', '/cms/pages/' + id + '/edit')
298
+ .unbind('click')
299
+ .click(function() {
300
+ return true
301
+ })
302
+
303
+ $('#delete_button')
304
+ .removeClass('disabled')
305
+ .attr('href', '/cms/pages/' + id + '.json')
306
+ .unbind('click')
307
+ .click(function() {
308
+ if (confirm('Are you sure you want to delete this page?')) {
309
+ var params = { _method: "DELETE" }
310
+ if ($.cms.authenticity_token && $.cms.authenticity_token != '') {
311
+ params['authenticity_token'] = $.cms.authenticity_token
312
+ }
313
+ $.post($(this).attr('href'), params,
314
+ function(data) {
315
+ if (data.success) {
316
+ $.cms.showNotice(data.message)
317
+ } else {
318
+ $.cms.showError(data.message)
319
+ }
320
+ }, "json");
321
+ $('#page_' + id).parents('ul.section_node:first').remove()
298
322
  }
299
323
  return false;
300
- })
324
+ })
301
325
  }
302
-
326
+
303
327
  var enableButtonsForLink = function(id) {
304
- $('#properties-button')
305
- .removeClass('disabled')
306
- .attr('href','/cms/links/'+id+'/edit')
307
- .unbind('click')
308
- .click(function(){return true})
309
-
310
- $('#delete-button')
311
- .removeClass('disabled')
312
- .attr('href','/cms/links/'+id+'.json')
313
- .unbind('click')
314
- .click(function(){
315
- if(confirm('Are you sure you want to delete this link?')) {
316
- var params = { _method: "DELETE" }
317
- if($.cms.authenticity_token && $.cms.authenticity_token != '') {
318
- params['authenticity_token'] = $.cms.authenticity_token
319
- }
320
- $.post($(this).attr('href'), params,
321
- function(data){
322
- if(data.success) {
323
- $.cms.showNotice(data.message)
324
- } else {
325
- $.cms.showError(data.message)
326
- }
327
- }, "json");
328
- $('#link_'+id).parents('ul.section_node:first').remove()
328
+ $('#properties-button')
329
+ .removeClass('disabled')
330
+ .attr('href', '/cms/links/' + id + '/edit')
331
+ .unbind('click')
332
+ .click(function() {
333
+ return true
334
+ })
335
+
336
+ $('#delete_button')
337
+ .removeClass('disabled')
338
+ .attr('href', '/cms/links/' + id + '.json')
339
+ .unbind('click')
340
+ .click(function() {
341
+ if (confirm('Are you sure you want to delete this link?')) {
342
+ var params = { _method: "DELETE" }
343
+ if ($.cms.authenticity_token && $.cms.authenticity_token != '') {
344
+ params['authenticity_token'] = $.cms.authenticity_token
345
+ }
346
+ $.post($(this).attr('href'), params,
347
+ function(data) {
348
+ if (data.success) {
349
+ $.cms.showNotice(data.message)
350
+ } else {
351
+ $.cms.showError(data.message)
352
+ }
353
+ }, "json");
354
+ $('#link_' + id).parents('ul.section_node:first').remove()
329
355
  }
330
356
  return false;
331
- })
332
-
357
+ })
358
+
333
359
  }
334
360
 
335
361
  var openSection = function(sectionNode) {
336
- var id = getId(sectionNode.id, 'section_node_')
337
-
338
- //Remember to re-open this section
339
- $.cookieSet.add('openSectionNodes', id, {path: '/'})
340
-
341
- $(sectionNode).addClass('open')
342
- $(sectionNode).find('li:first > ul').show();
343
- var img = $(sectionNode).find('li:first table:first img.folder_toggle');
344
- if (img.hasClass('large')){
345
- img.attr('src','/images/cms/sitemap/gray_contract.png').addClass("folder-open")
346
- } else {
347
- img.attr('src','/images/cms/sitemap/contract.png').addClass("folder-open")
348
- }
362
+ var id = getId(sectionNode.id, 'section_node_')
363
+
364
+ //Remember to re-open this section
365
+ $.cookieSet.add('openSectionNodes', id, {path: '/'})
366
+
367
+ $(sectionNode).addClass('open')
368
+ $(sectionNode).find('li:first > ul').show();
369
+ var img = $(sectionNode).find('li:first table:first img.folder_toggle');
370
+ if (img.hasClass('large')) {
371
+ img.attr('src', '/images/cms/sitemap/gray_contract.png').addClass("folder-open")
372
+ } else {
373
+ img.attr('src', '/images/cms/sitemap/contract.png').addClass("folder-open")
374
+ }
349
375
  }
350
-
376
+
351
377
  var closeSection = function(sectionNode) {
352
- var id = getId(sectionNode.id, 'section_node_')
353
-
354
- //Remove this section from the set of open nodes
355
- $.cookieSet.remove('openSectionNodes', id, {path: '/'})
356
-
357
- //close this
358
- $(sectionNode).removeClass('open')
359
- $(sectionNode).find('li:first > ul').hide()
360
- var img = $(sectionNode).find('li:first table:first img.folder_toggle');
361
- if (img.hasClass('large')){
362
- img.attr('src','/images/cms/sitemap/gray_expand.png').removeClass("folder-open")
363
- } else {
364
- img.attr('src','/images/cms/sitemap/expand.png').removeClass("folder-open")
365
- }
378
+ var id = getId(sectionNode.id, 'section_node_')
379
+
380
+ //Remove this section from the set of open nodes
381
+ $.cookieSet.remove('openSectionNodes', id, {path: '/'})
382
+
383
+ //close this
384
+ $(sectionNode).removeClass('open')
385
+ $(sectionNode).find('li:first > ul').hide()
386
+ var img = $(sectionNode).find('li:first table:first img.folder_toggle');
387
+ if (img.hasClass('large')) {
388
+ img.attr('src', '/images/cms/sitemap/gray_expand.png').removeClass("folder-open")
389
+ } else {
390
+ img.attr('src', '/images/cms/sitemap/expand.png').removeClass("folder-open")
391
+ }
366
392
  }
367
-
393
+
368
394
  var sectionNodeIsOpen = function(sectionNode) {
369
- return $(sectionNode).find('li:first table:first img.folder-open').length
395
+ return $(sectionNode).find('li:first table:first img.folder-open').length
370
396
  }
371
-
397
+
372
398
  var nodeOnClick = function() {
373
-
374
- var selected = $(this).hasClass('selected')
375
- clearSelectedSectionNode()
376
- $(this).addClass('selected')
377
-
378
- var node = $(this).find('td.node')[0]
379
- var id = getId(node.id, /(section|page|link)_/)
380
- var sectionNode = $(this).parents('ul:first')[0]
381
-
382
- selectSectionNode(sectionNode)
383
- }
399
+
400
+ var selected = $(this).hasClass('selected')
401
+ clearSelectedSectionNode()
402
+ $(this).addClass('selected')
403
+
404
+ var node = $(this).find('td.node')[0]
405
+ var id = getId(node.id, /(section|page|link)_/)
406
+ var sectionNode = $(this).parents('ul:first')[0]
407
+
408
+ selectSectionNode(sectionNode)
409
+ }
384
410
 
385
411
  var toggleSectionOnClick = function() {
386
- var sectionNode = $(this).parents('ul:first')[0]
387
- if(sectionNodeIsOpen(sectionNode)) {
388
- closeSection(sectionNode)
389
- } else {
390
- openSection(sectionNode)
391
- }
412
+ var sectionNode = $(this).parents('ul:first')[0]
413
+ if (sectionNodeIsOpen(sectionNode)) {
414
+ closeSection(sectionNode)
415
+ } else {
416
+ openSection(sectionNode)
417
+ }
392
418
  }
393
-
419
+
394
420
  var nodeOnDoubleClick = function() {
395
- if($('#edit-button').hasClass('disabled')) {
396
- //$('#properties-button').click()
397
- location.href = $('#properties-button')[0].href
398
- } else {
399
- //$('#edit-button').click()
400
- location.href = $('#edit-button')[0].href
401
- }
421
+ if ($('#edit-button').hasClass('disabled')) {
422
+ //$('#properties-button').click()
423
+ location.href = $('#properties-button')[0].href
424
+ } else {
425
+ //$('#edit-button').click()
426
+ location.href = $('#edit-button')[0].href
427
+ }
402
428
  }
403
-
429
+
404
430
  var addNodeOnClick = function() {
405
- $('#sitemap table.section_node').click(nodeOnClick).dblclick(nodeOnDoubleClick)
431
+ $('#sitemap table.section_node').click(nodeOnClick).dblclick(nodeOnDoubleClick)
406
432
  }
407
-
408
- var addToggleSectionOnClick = function(){
409
- $('#sitemap img.folder_toggle').click(toggleSectionOnClick);
433
+
434
+ var addToggleSectionOnClick = function() {
435
+ $('#sitemap img.folder_toggle').click(toggleSectionOnClick);
410
436
  }
411
-
437
+
412
438
  //Whenever you open a section, a cookie is updated so that next time you view the sitemap
413
439
  //that section will start in open state
414
440
  var fireOnClickForOpenSectionNodes = function() {
415
- var openSectionNodeIds = $.cookieSet.get('openSectionNodes')
416
- var selectedSectionSelector = '.root table:first'
417
- if(openSectionNodeIds) {
418
- $.each(openSectionNodeIds, function(i, e) {
419
- $('#section_node_'+e+' table:first img.folder_toggle').click()
420
- })
421
- selectedSectionSelector = '#section_node_'+openSectionNodeIds[openSectionNodeIds.length-1]+' table:first'
422
- }
423
- $(selectedSectionSelector).click()
424
- }
425
-
441
+ var openSectionNodeIds = $.cookieSet.get('openSectionNodes')
442
+ var selectedSectionSelector = '.root table:first'
443
+ if (openSectionNodeIds) {
444
+ $.each(openSectionNodeIds, function(i, e) {
445
+ $('#section_node_' + e + ' table:first img.folder_toggle').click()
446
+ })
447
+ selectedSectionSelector = '#section_node_' + openSectionNodeIds[openSectionNodeIds.length - 1] + ' table:first'
448
+ }
449
+ $(selectedSectionSelector).click()
450
+ }
451
+
426
452
  //----- Init -----------------------------------------------------------------
427
453
  //In other words, stuff that happens when the page loads
428
454
  //This is where we actually manipulate the DOM, fire events, etc.
429
-
430
- addHoverToSectionNodes()
455
+
456
+ addHoverToSectionNodes()
431
457
  disableButtons()
432
458
  makeMovableRowsDraggable()
433
- enableDropZones()
459
+ enableDropZones()
434
460
  addNodeOnClick()
435
461
  addToggleSectionOnClick()
436
462
  fireOnClickForOpenSectionNodes()