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
@@ -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()