we5-browsercms 3.0.5.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1025) hide show
  1. data/app/controllers/cms/application_controller.rb +2 -12
  2. data/app/controllers/cms/categories_controller.rb +4 -1
  3. data/app/controllers/cms/content_block_controller.rb +1 -1
  4. data/app/controllers/cms/content_controller.rb +3 -83
  5. data/app/controllers/cms/dashboard_controller.rb +1 -1
  6. data/app/controllers/cms/links_controller.rb +2 -2
  7. data/app/controllers/cms/pages_controller.rb +2 -0
  8. data/app/controllers/cms/portlets_controller.rb +2 -2
  9. data/app/controllers/cms/tags_controller.rb +4 -1
  10. data/app/controllers/tests/pretend_controller.rb +32 -0
  11. data/app/helpers/application_helper.rb +3 -1
  12. data/app/helpers/cms/application_helper.rb +18 -32
  13. data/app/helpers/cms/form_builder.rb +129 -54
  14. data/app/helpers/cms/menu_helper.rb +13 -2
  15. data/app/helpers/cms/page_helper.rb +26 -2
  16. data/app/helpers/cms/rendering_helper.rb +42 -0
  17. data/app/models/guest_user.rb +11 -3
  18. data/app/models/page.rb +1 -1
  19. data/app/models/page_template.rb +1 -18
  20. data/app/models/portlet.rb +12 -2
  21. data/app/models/section.rb +41 -33
  22. data/app/models/tag.rb +1 -1
  23. data/app/models/task.rb +32 -26
  24. data/app/models/templates.rb +31 -0
  25. data/app/models/user.rb +35 -9
  26. data/app/portlets/forgot_password_portlet.rb +1 -0
  27. data/app/views/cms/blocks/_toolbar_for_member.html.erb +1 -1
  28. data/app/views/cms/blocks/edit.html.erb +5 -0
  29. data/app/views/cms/blocks/index.html.erb +26 -39
  30. data/app/views/cms/blocks/show.html.erb +3 -0
  31. data/app/views/cms/blocks/usages.html.erb +17 -22
  32. data/app/views/cms/blocks/versions.html.erb +25 -53
  33. data/app/views/cms/connectors/new.html.erb +6 -6
  34. data/app/views/cms/dashboard/_page_drafts.html.erb +27 -38
  35. data/app/views/cms/dashboard/_tasks.html.erb +31 -43
  36. data/app/views/cms/dynamic_views/index.html.erb +17 -26
  37. data/app/views/cms/email_messages/index.html.erb +10 -19
  38. data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
  39. data/app/views/cms/form_builder/_cms_drop_down.html.erb +0 -7
  40. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
  41. data/app/views/cms/form_builder/_cms_file_field.html.erb +11 -7
  42. data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
  43. data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
  44. data/app/views/cms/groups/_permissions.html.erb +1 -1
  45. data/app/views/cms/groups/index.html.erb +34 -49
  46. data/app/views/cms/page_routes/index.html.erb +19 -28
  47. data/app/views/cms/page_routes/show.html.erb +2 -2
  48. data/app/views/cms/pages/_edit_connector.html.erb +9 -1
  49. data/app/views/cms/pages/versions.html.erb +31 -44
  50. data/app/views/cms/redirects/index.html.erb +14 -22
  51. data/app/views/cms/routes/index.html.erb +19 -21
  52. data/app/views/cms/tags/render.html.erb +19 -38
  53. data/app/views/cms/toolbar/index.html.erb +0 -11
  54. data/app/views/cms/users/index.html.erb +25 -33
  55. data/app/views/layouts/cms/_head.html.erb +1 -1
  56. data/app/views/layouts/cms/content_library.html.erb +7 -7
  57. data/app/views/layouts/cms/thickbox.html.erb +2 -2
  58. data/app/views/portlets/forgot_password/_form.html.erb +4 -3
  59. data/app/views/tests/pretend/open_with_layout.html.erb +2 -0
  60. data/bin/bcms +6 -0
  61. data/bin/browsercms +73 -0
  62. data/browsercms.gemspec +444 -369
  63. data/db/demo/page_templates/sub_page.html.erb +1 -1
  64. data/db/migrate/20081114172307_load_seed_data.rb +0 -29
  65. data/doc/app/classes/AbstractFileBlock.html +32 -6
  66. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +136 -85
  67. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +6 -6
  68. data/doc/app/classes/ActsAsList.html +6 -6
  69. data/doc/app/classes/ActsAsList/ClassMethods.html +8 -8
  70. data/doc/app/classes/ActsAsList/InstanceMethods.html +143 -119
  71. data/doc/app/classes/ApplicationHelper.html +4 -0
  72. data/doc/app/classes/Attachment.html +134 -134
  73. data/doc/app/classes/Category.html +24 -24
  74. data/doc/app/classes/CategoryType.html +18 -18
  75. data/doc/app/classes/Cms.html +227 -94
  76. data/doc/app/classes/Cms/Acts.html +5 -0
  77. data/doc/app/classes/Cms/Acts/ContentBlock.html +6 -6
  78. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +6 -6
  79. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +6 -6
  80. data/doc/app/classes/Cms/Acts/ContentPage.html +187 -0
  81. data/doc/app/classes/Cms/Acts/ContentPage/ClassMethods.html +188 -0
  82. data/doc/app/classes/Cms/ApplicationController.html +69 -118
  83. data/doc/app/classes/Cms/ApplicationHelper.html +277 -393
  84. data/doc/app/classes/Cms/AttachmentsController.html +6 -6
  85. data/doc/app/classes/Cms/Authentication/Controller.html +226 -228
  86. data/doc/app/classes/Cms/Authentication/Model.html +6 -6
  87. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +30 -30
  88. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +66 -66
  89. data/doc/app/classes/Cms/Behaviors/Archiving.html +6 -6
  90. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +24 -24
  91. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +12 -12
  92. data/doc/app/classes/Cms/Behaviors/Attaching.html +6 -6
  93. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +123 -123
  94. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +12 -12
  95. data/doc/app/classes/Cms/Behaviors/Categorizing.html +6 -6
  96. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +6 -6
  97. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +12 -12
  98. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +60 -60
  99. data/doc/app/classes/Cms/Behaviors/Connecting.html +6 -6
  100. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +18 -18
  101. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +42 -42
  102. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +12 -12
  103. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +6 -6
  104. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +14 -14
  105. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +12 -12
  106. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +12 -12
  107. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +6 -6
  108. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +12 -12
  109. data/doc/app/classes/Cms/Behaviors/Hiding.html +6 -6
  110. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +24 -24
  111. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +12 -12
  112. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +127 -74
  113. data/doc/app/classes/Cms/Behaviors/Pagination.html +6 -6
  114. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +12 -12
  115. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +55 -55
  116. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +6 -6
  117. data/doc/app/classes/Cms/Behaviors/Publishing.html +12 -12
  118. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +119 -119
  119. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +25 -14
  120. data/doc/app/classes/Cms/Behaviors/Rendering.html +10 -13
  121. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +33 -33
  122. data/doc/app/classes/Cms/Behaviors/Searching.html +6 -6
  123. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +12 -12
  124. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +12 -12
  125. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +6 -6
  126. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +24 -24
  127. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +30 -30
  128. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +12 -12
  129. data/doc/app/classes/Cms/Behaviors/Taggable.html +6 -6
  130. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +12 -12
  131. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +34 -33
  132. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +12 -12
  133. data/doc/app/classes/Cms/Behaviors/Userstamping.html +6 -6
  134. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +6 -6
  135. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +12 -12
  136. data/doc/app/classes/Cms/Behaviors/Versioning.html +6 -6
  137. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +30 -30
  138. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +322 -294
  139. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +31 -31
  140. data/doc/app/classes/Cms/CacheController.html +12 -12
  141. data/doc/app/classes/Cms/Caching.html +12 -12
  142. data/doc/app/classes/Cms/CategoriesController.html +35 -0
  143. data/doc/app/classes/Cms/CategoryTypesController.html +6 -6
  144. data/doc/app/classes/Cms/ConnectorsController.html +19 -19
  145. data/doc/app/classes/Cms/ContentBlockController.html +486 -440
  146. data/doc/app/classes/Cms/ContentController.html +48 -121
  147. data/doc/app/classes/Cms/ContentRenderingSupport.html +222 -0
  148. data/doc/app/classes/Cms/ContentTypesController.html +6 -6
  149. data/doc/app/classes/Cms/DashboardController.html +12 -11
  150. data/doc/app/classes/Cms/DataLoader.html +12 -12
  151. data/doc/app/classes/Cms/DomainSupport.html +166 -0
  152. data/doc/app/classes/Cms/DynamicViewsController.html +54 -54
  153. data/doc/app/classes/Cms/EmailMessagesController.html +12 -12
  154. data/doc/app/classes/Cms/ErrorHandling.html +50 -23
  155. data/doc/app/classes/Cms/Errors/AccessDenied.html +10 -10
  156. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +6 -6
  157. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +6 -6
  158. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +6 -6
  159. data/doc/app/classes/Cms/Extensions/Hash.html +12 -12
  160. data/doc/app/classes/Cms/Extensions/Integer.html +6 -6
  161. data/doc/app/classes/Cms/Extensions/NilClass.html +24 -24
  162. data/doc/app/classes/Cms/Extensions/String.html +24 -24
  163. data/doc/app/classes/Cms/FormBuilder.html +258 -90
  164. data/doc/app/classes/Cms/FormTagHelper.html +30 -30
  165. data/doc/app/classes/Cms/GroupsController.html +24 -24
  166. data/doc/app/classes/Cms/HomeController.html +6 -6
  167. data/doc/app/classes/Cms/LinksController.html +64 -62
  168. data/doc/app/classes/Cms/MenuHelper.html +210 -165
  169. data/doc/app/classes/Cms/PageHelper.html +178 -91
  170. data/doc/app/classes/Cms/PageRouteOptionsController.html +54 -54
  171. data/doc/app/classes/Cms/PageRoutesController.html +36 -36
  172. data/doc/app/classes/Cms/PagesController.html +111 -109
  173. data/doc/app/classes/Cms/PathHelper.html +36 -36
  174. data/doc/app/classes/Cms/PortletController.html +6 -6
  175. data/doc/app/classes/Cms/PortletsController.html +43 -43
  176. data/doc/app/classes/Cms/RedirectsController.html +12 -12
  177. data/doc/app/classes/Cms/RenderingHelper.html +214 -0
  178. data/doc/app/classes/Cms/ResourceController.html +114 -114
  179. data/doc/app/classes/Cms/Routes.html +151 -143
  180. data/doc/app/classes/Cms/RoutesController.html +6 -6
  181. data/doc/app/classes/Cms/SectionNodesController.html +36 -36
  182. data/doc/app/classes/Cms/SectionNodesHelper.html +6 -6
  183. data/doc/app/classes/Cms/SectionsController.html +212 -188
  184. data/doc/app/classes/Cms/SessionsController.html +68 -39
  185. data/doc/app/classes/Cms/TagsController.html +30 -6
  186. data/doc/app/classes/Cms/TasksController.html +18 -18
  187. data/doc/app/classes/Cms/TemplateSupport.html +185 -0
  188. data/doc/app/classes/Cms/ToolbarController.html +6 -6
  189. data/doc/app/classes/Cms/UsersController.html +129 -153
  190. data/doc/app/classes/CommandLine.html +226 -0
  191. data/doc/app/classes/Connector.html +75 -71
  192. data/doc/app/classes/ContentType.html +72 -72
  193. data/doc/app/classes/DynamicPortlet.html +6 -6
  194. data/doc/app/classes/DynamicView.html +130 -133
  195. data/doc/app/classes/EmailMessage.html +24 -24
  196. data/doc/app/classes/EmailMessageMailer.html +6 -6
  197. data/doc/app/classes/EmailPagePortlet.html +12 -12
  198. data/doc/app/classes/FileBlock.html +18 -18
  199. data/doc/app/classes/ForgotPasswordMailer.html +151 -0
  200. data/doc/app/classes/ForgotPasswordPortlet.html +162 -0
  201. data/doc/app/classes/Group.html +72 -20
  202. data/doc/app/classes/GuestUser.html +138 -93
  203. data/doc/app/classes/HtmlBlock.html +12 -12
  204. data/doc/app/classes/ImageBlock.html +18 -18
  205. data/doc/app/classes/InitialData.html +6 -6
  206. data/doc/app/classes/Link.html +30 -30
  207. data/doc/app/classes/LoginPortlet.html +6 -6
  208. data/doc/app/classes/Page.html +185 -185
  209. data/doc/app/classes/PagePartial.html +18 -18
  210. data/doc/app/classes/PageRoute.html +48 -48
  211. data/doc/app/classes/PageTemplate.html +60 -78
  212. data/doc/app/classes/Portlet.html +339 -267
  213. data/doc/app/classes/ResetPasswordPortlet.html +169 -0
  214. data/doc/app/classes/Section.html +257 -200
  215. data/doc/app/classes/SectionNode.html +60 -60
  216. data/doc/app/classes/Sequence.html +6 -6
  217. data/doc/app/classes/Site.html +30 -30
  218. data/doc/app/classes/Tag.html +31 -31
  219. data/doc/app/classes/TagCloudPortlet.html +12 -12
  220. data/doc/app/classes/Tagging.html +6 -6
  221. data/doc/app/classes/Task.html +37 -37
  222. data/doc/app/classes/Templates.html +151 -0
  223. data/doc/app/classes/Tests.html +107 -0
  224. data/doc/app/classes/Tests/PretendController.html +275 -0
  225. data/doc/app/classes/User.html +344 -205
  226. data/doc/app/created.rid +1 -1
  227. data/doc/app/files/app/controllers/cms/application_controller_rb.html +1 -1
  228. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +1 -1
  229. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +1 -1
  230. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +1 -1
  231. data/doc/app/files/app/controllers/cms/content_controller_rb.html +1 -1
  232. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +1 -1
  233. data/doc/app/files/app/controllers/cms/error_handling_rb.html +1 -1
  234. data/doc/app/files/app/controllers/cms/links_controller_rb.html +1 -1
  235. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +1 -1
  236. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +1 -1
  237. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +1 -1
  238. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +1 -1
  239. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +1 -1
  240. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +1 -1
  241. data/doc/app/files/app/controllers/cms/users_controller_rb.html +1 -1
  242. data/doc/app/files/app/controllers/tests/pretend_controller_rb.html +112 -0
  243. data/doc/app/files/app/helpers/application_helper_rb.html +5 -1
  244. data/doc/app/files/app/helpers/cms/application_helper_rb.html +1 -1
  245. data/doc/app/files/app/helpers/cms/form_builder_rb.html +8 -1
  246. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +1 -1
  247. data/doc/app/files/app/helpers/cms/page_helper_rb.html +1 -1
  248. data/doc/app/files/app/helpers/cms/rendering_helper_rb.html +111 -0
  249. data/doc/app/files/app/helpers/cms/template_support_rb.html +108 -0
  250. data/doc/app/files/app/models/abstract_file_block_rb.html +1 -1
  251. data/doc/app/files/app/models/attachment_rb.html +2 -2
  252. data/doc/app/files/app/models/connector_rb.html +1 -1
  253. data/doc/app/files/app/models/content_type_rb.html +1 -1
  254. data/doc/app/files/app/models/dynamic_view_rb.html +1 -1
  255. data/doc/app/files/app/models/forgot_password_mailer_rb.html +101 -0
  256. data/doc/app/files/app/models/group_rb.html +10 -1
  257. data/doc/app/files/app/models/guest_user_rb.html +14 -1
  258. data/doc/app/files/app/models/link_rb.html +1 -1
  259. data/doc/app/files/app/models/page_rb.html +1 -1
  260. data/doc/app/files/app/models/page_template_rb.html +1 -1
  261. data/doc/app/files/app/models/portlet_rb.html +1 -1
  262. data/doc/app/files/app/models/section_rb.html +1 -1
  263. data/doc/app/files/app/models/tag_rb.html +1 -1
  264. data/doc/app/files/app/models/task_rb.html +1 -1
  265. data/doc/app/files/app/models/templates_rb.html +108 -0
  266. data/doc/app/files/app/models/user_rb.html +1 -1
  267. data/doc/app/files/app/portlets/forgot_password_portlet_rb.html +108 -0
  268. data/doc/app/files/app/portlets/reset_password_portlet_rb.html +101 -0
  269. data/doc/app/files/doc/README_FOR_APP.html +7 -6
  270. data/doc/app/files/lib/acts_as_list_rb.html +1 -1
  271. data/doc/app/files/lib/browsercms_rb.html +1 -1
  272. data/doc/app/files/lib/cms/acts/content_block_rb.html +1 -1
  273. data/doc/app/files/lib/cms/acts/content_page_rb.html +125 -0
  274. data/doc/app/files/lib/cms/authentication/controller_rb.html +61 -1
  275. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +1 -1
  276. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +1 -1
  277. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +1 -1
  278. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +1 -1
  279. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +1 -1
  280. data/doc/app/files/lib/cms/content_rendering_support_rb.html +108 -0
  281. data/doc/app/files/lib/cms/domain_support_rb.html +108 -0
  282. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +1 -1
  283. data/doc/app/files/lib/cms/init_rb.html +8 -1
  284. data/doc/app/files/lib/cms/routes_rb.html +1 -1
  285. data/doc/app/files/lib/cms/version_rb.html +107 -0
  286. data/doc/app/files/lib/command_line_rb.html +101 -0
  287. data/doc/app/fr_class_index.html +13 -0
  288. data/doc/app/fr_file_index.html +12 -0
  289. data/doc/app/fr_method_index.html +761 -712
  290. data/doc/guides/html/authentication.html +201 -0
  291. data/doc/guides/html/build_it_yourself.html +9 -1
  292. data/doc/guides/html/building_modules.html +90 -48
  293. data/doc/guides/html/building_templates.html +506 -0
  294. data/doc/guides/html/content_blocks.html +476 -0
  295. data/doc/guides/html/customizing_browsercms.html +173 -0
  296. data/doc/guides/html/deployment_guide.html +30 -5
  297. data/doc/guides/html/getting_started.html +61 -27
  298. data/doc/guides/html/images/content_blocks/add_field_to_form.png +0 -0
  299. data/doc/guides/html/images/content_blocks/add_second_block.png +0 -0
  300. data/doc/guides/html/images/nfl_sitemap.png +0 -0
  301. data/doc/guides/html/index.html +33 -22
  302. data/doc/guides/html/installing_modules.html +9 -1
  303. data/doc/guides/html/portlets.html +237 -0
  304. data/doc/guides/html/user_guide.html +9 -1
  305. data/doc/guides/html/{designer_guide.html → writing_guides.html} +21 -20
  306. data/lib/cms/acts/content_page.rb +69 -0
  307. data/lib/cms/authentication/controller.rb +1 -1
  308. data/lib/cms/behaviors/rendering.rb +9 -2
  309. data/lib/cms/behaviors/versioning.rb +43 -35
  310. data/lib/cms/content_rendering_support.rb +96 -0
  311. data/lib/cms/domain_support.rb +20 -0
  312. data/lib/cms/init.rb +21 -2
  313. data/lib/cms/version.rb +5 -0
  314. data/lib/command_line.rb +39 -0
  315. data/lib/tasks/cms.rake +12 -1
  316. data/public/bcms/ckeditor/ckeditor.js +108 -0
  317. data/public/bcms/ckeditor/config.js +18 -0
  318. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  319. data/public/bcms/ckeditor/core/ajax.js +143 -0
  320. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  321. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  322. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  323. data/public/bcms/ckeditor/core/command.js +70 -0
  324. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  325. data/public/bcms/ckeditor/core/config.js +287 -0
  326. data/public/bcms/ckeditor/core/dom.js +21 -0
  327. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  328. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  329. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  330. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  331. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  332. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  333. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  334. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  335. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  336. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  337. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  338. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  339. data/public/bcms/ckeditor/core/dtd.js +200 -0
  340. data/public/bcms/ckeditor/core/editor.js +650 -0
  341. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  342. data/public/bcms/ckeditor/core/env.js +219 -0
  343. data/public/bcms/ckeditor/core/event.js +335 -0
  344. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  345. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  346. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  347. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  348. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  349. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  350. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  351. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  352. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  353. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  354. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  355. data/public/bcms/ckeditor/core/lang.js +147 -0
  356. data/public/bcms/ckeditor/core/loader.js +238 -0
  357. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  358. data/public/bcms/ckeditor/core/plugins.js +82 -0
  359. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  360. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  361. data/public/bcms/ckeditor/core/skins.js +185 -0
  362. data/public/bcms/ckeditor/core/test.js +184 -0
  363. data/public/bcms/ckeditor/core/themes.js +18 -0
  364. data/public/bcms/ckeditor/core/tools.js +531 -0
  365. data/public/bcms/ckeditor/core/ui.js +106 -0
  366. data/public/bcms/ckeditor/core/xml.js +165 -0
  367. data/public/bcms/ckeditor/editor.js +51 -0
  368. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  369. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  370. data/public/bcms/ckeditor/lang/af.js +674 -0
  371. data/public/bcms/ckeditor/lang/ar.js +674 -0
  372. data/public/bcms/ckeditor/lang/bg.js +674 -0
  373. data/public/bcms/ckeditor/lang/bn.js +674 -0
  374. data/public/bcms/ckeditor/lang/bs.js +674 -0
  375. data/public/bcms/ckeditor/lang/ca.js +674 -0
  376. data/public/bcms/ckeditor/lang/cs.js +674 -0
  377. data/public/bcms/ckeditor/lang/da.js +674 -0
  378. data/public/bcms/ckeditor/lang/de.js +674 -0
  379. data/public/bcms/ckeditor/lang/el.js +674 -0
  380. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  381. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  382. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  383. data/public/bcms/ckeditor/lang/en.js +674 -0
  384. data/public/bcms/ckeditor/lang/eo.js +674 -0
  385. data/public/bcms/ckeditor/lang/es.js +674 -0
  386. data/public/bcms/ckeditor/lang/et.js +674 -0
  387. data/public/bcms/ckeditor/lang/eu.js +674 -0
  388. data/public/bcms/ckeditor/lang/fa.js +674 -0
  389. data/public/bcms/ckeditor/lang/fi.js +674 -0
  390. data/public/bcms/ckeditor/lang/fo.js +674 -0
  391. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  392. data/public/bcms/ckeditor/lang/fr.js +674 -0
  393. data/public/bcms/ckeditor/lang/gl.js +674 -0
  394. data/public/bcms/ckeditor/lang/gu.js +674 -0
  395. data/public/bcms/ckeditor/lang/he.js +674 -0
  396. data/public/bcms/ckeditor/lang/hi.js +674 -0
  397. data/public/bcms/ckeditor/lang/hr.js +674 -0
  398. data/public/bcms/ckeditor/lang/hu.js +674 -0
  399. data/public/bcms/ckeditor/lang/is.js +674 -0
  400. data/public/bcms/ckeditor/lang/it.js +674 -0
  401. data/public/bcms/ckeditor/lang/ja.js +674 -0
  402. data/public/bcms/ckeditor/lang/km.js +674 -0
  403. data/public/bcms/ckeditor/lang/ko.js +674 -0
  404. data/public/bcms/ckeditor/lang/lt.js +674 -0
  405. data/public/bcms/ckeditor/lang/lv.js +674 -0
  406. data/public/bcms/ckeditor/lang/mn.js +674 -0
  407. data/public/bcms/ckeditor/lang/ms.js +674 -0
  408. data/public/bcms/ckeditor/lang/nb.js +674 -0
  409. data/public/bcms/ckeditor/lang/nl.js +674 -0
  410. data/public/bcms/ckeditor/lang/no.js +674 -0
  411. data/public/bcms/ckeditor/lang/pl.js +674 -0
  412. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  413. data/public/bcms/ckeditor/lang/pt.js +674 -0
  414. data/public/bcms/ckeditor/lang/ro.js +674 -0
  415. data/public/bcms/ckeditor/lang/ru.js +674 -0
  416. data/public/bcms/ckeditor/lang/sk.js +674 -0
  417. data/public/bcms/ckeditor/lang/sl.js +674 -0
  418. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  419. data/public/bcms/ckeditor/lang/sr.js +674 -0
  420. data/public/bcms/ckeditor/lang/sv.js +674 -0
  421. data/public/bcms/ckeditor/lang/th.js +674 -0
  422. data/public/bcms/ckeditor/lang/tr.js +674 -0
  423. data/public/bcms/ckeditor/lang/uk.js +674 -0
  424. data/public/bcms/ckeditor/lang/vi.js +674 -0
  425. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  426. data/public/bcms/ckeditor/lang/zh.js +674 -0
  427. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  428. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  429. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  430. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  431. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  432. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  433. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  434. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  435. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  436. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  437. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  438. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  439. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  440. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  441. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  442. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  443. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  444. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  445. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  446. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  447. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  448. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  449. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  450. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  451. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  452. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  453. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  454. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  455. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  456. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  457. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  458. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  459. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  460. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  461. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  462. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  463. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  464. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  465. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  466. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  467. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  468. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  469. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  470. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  471. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  472. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  473. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  474. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  475. data/public/{fckeditor/editor → bcms/ckeditor/plugins/link}/images/anchor.gif +0 -0
  476. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  477. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  478. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  479. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  480. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  481. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  482. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  483. data/public/{fckeditor/editor/css/images/fck_pagebreak.gif → bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif} +0 -0
  484. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  485. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  486. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  487. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  488. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  489. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  490. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  491. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  492. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  493. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  494. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  495. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  496. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  497. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  498. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  499. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  500. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  501. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  502. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_address.png +0 -0
  503. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_blockquote.png +0 -0
  504. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_div.png +0 -0
  505. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h1.png +0 -0
  506. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h2.png +0 -0
  507. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h3.png +0 -0
  508. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h4.png +0 -0
  509. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h5.png +0 -0
  510. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h6.png +0 -0
  511. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_p.png +0 -0
  512. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_pre.png +0 -0
  513. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  514. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  515. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  516. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  517. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  518. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  519. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  520. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  521. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  522. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  523. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  524. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  525. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  526. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  527. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  528. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  529. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  530. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  531. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  532. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  533. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  534. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  535. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  536. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  537. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  538. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  539. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  540. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  541. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  542. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  543. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  544. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  545. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  546. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  547. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  548. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  549. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  550. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  551. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template1.gif +0 -0
  552. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template2.gif +0 -0
  553. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template3.gif +0 -0
  554. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  555. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  556. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  557. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  558. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  559. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  560. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  561. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  562. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  563. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  564. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  565. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  566. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  567. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  568. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  569. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  570. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  571. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  572. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  573. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  574. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  575. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  576. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  577. data/public/{fckeditor/editor/skins/default/images/dialog.sides.gif → bcms/ckeditor/skins/kama/images/dialog_sides.gif} +0 -0
  578. data/public/{fckeditor/editor/skins/default/images/dialog.sides.png → bcms/ckeditor/skins/kama/images/dialog_sides.png} +0 -0
  579. data/public/{fckeditor/editor/skins/default/images/dialog.sides.rtl.png → bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png} +0 -0
  580. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  581. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  582. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  583. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  584. data/public/{fckeditor/editor/skins/default/images/toolbar.start.gif → bcms/ckeditor/skins/kama/images/toolbar_start.gif} +0 -0
  585. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  586. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  587. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  588. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  589. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  590. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  591. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  592. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  593. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  594. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  595. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  596. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  597. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  598. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  599. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  600. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  601. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  602. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  603. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  604. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  605. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  606. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  607. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  608. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  609. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  610. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  611. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  612. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  613. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  614. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  615. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  616. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  617. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  618. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  619. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  620. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  621. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  622. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  623. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  624. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  625. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  626. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  627. data/public/{fckeditor/editor/skins/silver/images/toolbar.start.gif → bcms/ckeditor/skins/v2/images/toolbar_start.gif} +0 -0
  628. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  629. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  630. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  631. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  632. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  633. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  634. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  635. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  636. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  637. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  638. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  639. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  640. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  641. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  642. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  643. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  644. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  645. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  646. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  647. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  648. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  649. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  650. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  651. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  652. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  653. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  654. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  655. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  656. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  657. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  658. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  659. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  660. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  661. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  662. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  663. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  664. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  665. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  666. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  667. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  668. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  669. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  670. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  671. data/public/bcms/ckeditor/tests/test.css +81 -0
  672. data/public/bcms/ckeditor/tests/test.js +93 -0
  673. data/public/bcms/ckeditor/tests/testall.html +114 -0
  674. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  675. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  676. data/public/stylesheets/cms/administration.css +52 -51
  677. data/public/stylesheets/cms/application.css +55 -51
  678. data/public/stylesheets/cms/block.css +13 -13
  679. data/public/stylesheets/cms/buttons.css +91 -91
  680. data/public/stylesheets/cms/content_library.css +49 -57
  681. data/public/stylesheets/cms/content_types.css +3 -3
  682. data/public/stylesheets/cms/dashboard.css +25 -43
  683. data/public/stylesheets/cms/data_table.css +57 -81
  684. data/public/stylesheets/cms/date_picker.css +13 -14
  685. data/public/stylesheets/cms/form_layout.css +133 -140
  686. data/public/stylesheets/cms/jquery.contextMenu.css +43 -35
  687. data/public/stylesheets/cms/login.css +50 -51
  688. data/public/stylesheets/cms/menu.css +61 -63
  689. data/public/stylesheets/cms/nav.css +53 -53
  690. data/public/stylesheets/cms/page_toolbar.css +80 -82
  691. data/public/stylesheets/cms/reset.css +21 -21
  692. data/public/stylesheets/cms/selectbox.css +16 -18
  693. data/public/stylesheets/cms/sitemap.css +138 -134
  694. data/public/stylesheets/cms/thickbox.css +120 -105
  695. data/rails_generators/content_block/templates/migration.rb +1 -1
  696. data/rails_generators/portlet/USAGE +3 -1
  697. data/rails_generators/portlet/portlet_generator.rb +4 -0
  698. data/rails_generators/portlet/templates/_form.html.erb +1 -2
  699. data/rails_generators/portlet/templates/portlet.rb +4 -1
  700. data/rails_generators/portlet/templates/portlet_helper.rb +5 -0
  701. data/rails_generators/template/USAGE +10 -0
  702. data/rails_generators/template/template_generator.rb +18 -0
  703. data/rails_generators/template/templates/template.erb +3 -0
  704. data/templates/blank.rb +11 -1
  705. data/templates/demo.rb +11 -1
  706. data/templates/module.rb +15 -4
  707. data/test/functional/cms/dashboard_controller_test.rb +19 -2
  708. data/test/functional/tests/pretend_controller_test.rb +54 -0
  709. data/test/integration/cms/ckeditor_test.rb +27 -0
  710. data/test/integration/cms/password_management_test.rb +1 -2
  711. data/test/test_helper.rb +14 -0
  712. data/test/unit/helpers/application_helper_test.rb +48 -0
  713. data/test/unit/helpers/form_builder_test.rb +21 -2
  714. data/test/unit/helpers/menu_helper_test.rb +164 -142
  715. data/test/unit/helpers/page_helper_test.rb +11 -3
  716. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  717. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  718. data/test/unit/lib/cms_domain_support_test.rb +43 -0
  719. data/test/unit/lib/command_line_test.rb +70 -0
  720. data/test/unit/lib/content_block_test.rb +41 -4
  721. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  722. data/test/unit/models/attachment_test.rb +2 -2
  723. data/test/unit/models/content_type_test.rb +19 -7
  724. data/test/unit/models/page_template_test.rb +4 -1
  725. data/test/unit/models/portlet_test.rb +49 -1
  726. data/test/unit/models/sections_test.rb +41 -2
  727. data/test/unit/models/task_test.rb +37 -22
  728. data/test/unit/models/user_test.rb +165 -51
  729. metadata +424 -323
  730. data/doc/guides/html/developer_guide.html +0 -308
  731. data/public/fckeditor/editor/css/behaviors/disablehandles.htc +0 -15
  732. data/public/fckeditor/editor/css/behaviors/showtableborders.htc +0 -36
  733. data/public/fckeditor/editor/css/fck_editorarea.css +0 -110
  734. data/public/fckeditor/editor/css/fck_internal.css +0 -199
  735. data/public/fckeditor/editor/css/fck_showtableborders_gecko.css +0 -49
  736. data/public/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  737. data/public/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  738. data/public/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  739. data/public/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  740. data/public/fckeditor/editor/dialog/common/fck_dialog_common.css +0 -85
  741. data/public/fckeditor/editor/dialog/common/fck_dialog_common.js +0 -311
  742. data/public/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  743. data/public/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  744. data/public/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  745. data/public/fckeditor/editor/dialog/fck_about.html +0 -161
  746. data/public/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  747. data/public/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  748. data/public/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  749. data/public/fckeditor/editor/dialog/fck_anchor.html +0 -220
  750. data/public/fckeditor/editor/dialog/fck_button.html +0 -104
  751. data/public/fckeditor/editor/dialog/fck_checkbox.html +0 -104
  752. data/public/fckeditor/editor/dialog/fck_colorselector.html +0 -172
  753. data/public/fckeditor/editor/dialog/fck_div.html +0 -364
  754. data/public/fckeditor/editor/dialog/fck_docprops.html +0 -600
  755. data/public/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +0 -113
  756. data/public/fckeditor/editor/dialog/fck_flash.html +0 -152
  757. data/public/fckeditor/editor/dialog/fck_flash/fck_flash.js +0 -300
  758. data/public/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +0 -50
  759. data/public/fckeditor/editor/dialog/fck_form.html +0 -109
  760. data/public/fckeditor/editor/dialog/fck_hiddenfield.html +0 -115
  761. data/public/fckeditor/editor/dialog/fck_image.html +0 -258
  762. data/public/fckeditor/editor/dialog/fck_image/fck_image.js +0 -512
  763. data/public/fckeditor/editor/dialog/fck_image/fck_image_preview.html +0 -72
  764. data/public/fckeditor/editor/dialog/fck_link.html +0 -295
  765. data/public/fckeditor/editor/dialog/fck_link/fck_link.js +0 -893
  766. data/public/fckeditor/editor/dialog/fck_listprop.html +0 -120
  767. data/public/fckeditor/editor/dialog/fck_paste.html +0 -346
  768. data/public/fckeditor/editor/dialog/fck_radiobutton.html +0 -104
  769. data/public/fckeditor/editor/dialog/fck_replace.html +0 -648
  770. data/public/fckeditor/editor/dialog/fck_select.html +0 -180
  771. data/public/fckeditor/editor/dialog/fck_select/fck_select.js +0 -194
  772. data/public/fckeditor/editor/dialog/fck_smiley.html +0 -111
  773. data/public/fckeditor/editor/dialog/fck_source.html +0 -68
  774. data/public/fckeditor/editor/dialog/fck_specialchar.html +0 -121
  775. data/public/fckeditor/editor/dialog/fck_spellerpages.html +0 -70
  776. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  777. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +0 -87
  778. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +0 -153
  779. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +0 -148
  780. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +0 -199
  781. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +0 -181
  782. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +0 -461
  783. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +0 -71
  784. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +0 -49
  785. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +0 -272
  786. data/public/fckeditor/editor/dialog/fck_table.html +0 -298
  787. data/public/fckeditor/editor/dialog/fck_tablecell.html +0 -257
  788. data/public/fckeditor/editor/dialog/fck_template.html +0 -242
  789. data/public/fckeditor/editor/dialog/fck_textarea.html +0 -94
  790. data/public/fckeditor/editor/dialog/fck_textfield.html +0 -136
  791. data/public/fckeditor/editor/dtd/fck_dtd_test.html +0 -41
  792. data/public/fckeditor/editor/dtd/fck_xhtml10strict.js +0 -116
  793. data/public/fckeditor/editor/dtd/fck_xhtml10transitional.js +0 -140
  794. data/public/fckeditor/editor/fckdebug.html +0 -153
  795. data/public/fckeditor/editor/fckdialog.html +0 -812
  796. data/public/fckeditor/editor/fckeditor.html +0 -317
  797. data/public/fckeditor/editor/fckeditor.original.html +0 -424
  798. data/public/fckeditor/editor/filemanager/browser/default/browser.css +0 -87
  799. data/public/fckeditor/editor/filemanager/browser/default/browser.html +0 -200
  800. data/public/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +0 -95
  801. data/public/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +0 -114
  802. data/public/fckeditor/editor/filemanager/browser/default/frmfolders.html +0 -198
  803. data/public/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +0 -169
  804. data/public/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +0 -68
  805. data/public/fckeditor/editor/filemanager/browser/default/frmupload.html +0 -115
  806. data/public/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  807. data/public/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  808. data/public/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  809. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  810. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  811. data/public/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  812. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  813. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  814. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  815. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  816. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  817. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  818. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  819. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  820. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  821. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  822. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  823. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  824. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  825. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  826. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  827. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  828. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  829. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  830. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  831. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  832. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  833. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  834. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  835. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  836. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  837. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  838. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  839. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  840. data/public/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  841. data/public/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  842. data/public/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  843. data/public/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  844. data/public/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  845. data/public/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  846. data/public/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  847. data/public/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  848. data/public/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  849. data/public/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  850. data/public/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  851. data/public/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  852. data/public/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  853. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  854. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  855. data/public/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  856. data/public/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  857. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  858. data/public/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  859. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  860. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  861. data/public/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  862. data/public/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  863. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  864. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  865. data/public/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  866. data/public/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  867. data/public/fckeditor/editor/filemanager/browser/default/js/common.js +0 -88
  868. data/public/fckeditor/editor/filemanager/browser/default/js/fckxml.js +0 -147
  869. data/public/fckeditor/editor/images/arrow_ltr.gif +0 -0
  870. data/public/fckeditor/editor/images/arrow_rtl.gif +0 -0
  871. data/public/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  872. data/public/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  873. data/public/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  874. data/public/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  875. data/public/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  876. data/public/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  877. data/public/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  878. data/public/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  879. data/public/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  880. data/public/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  881. data/public/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  882. data/public/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  883. data/public/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  884. data/public/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  885. data/public/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  886. data/public/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  887. data/public/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  888. data/public/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  889. data/public/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  890. data/public/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  891. data/public/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  892. data/public/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  893. data/public/fckeditor/editor/images/spacer.gif +0 -0
  894. data/public/fckeditor/editor/js/fckadobeair.js +0 -176
  895. data/public/fckeditor/editor/js/fckeditorcode_gecko.js +0 -108
  896. data/public/fckeditor/editor/js/fckeditorcode_ie.js +0 -109
  897. data/public/fckeditor/editor/lang/_translationstatus.txt +0 -78
  898. data/public/fckeditor/editor/lang/af.js +0 -526
  899. data/public/fckeditor/editor/lang/ar.js +0 -526
  900. data/public/fckeditor/editor/lang/bg.js +0 -526
  901. data/public/fckeditor/editor/lang/bn.js +0 -526
  902. data/public/fckeditor/editor/lang/bs.js +0 -526
  903. data/public/fckeditor/editor/lang/ca.js +0 -526
  904. data/public/fckeditor/editor/lang/cs.js +0 -526
  905. data/public/fckeditor/editor/lang/da.js +0 -526
  906. data/public/fckeditor/editor/lang/de.js +0 -526
  907. data/public/fckeditor/editor/lang/el.js +0 -526
  908. data/public/fckeditor/editor/lang/en-au.js +0 -526
  909. data/public/fckeditor/editor/lang/en-ca.js +0 -526
  910. data/public/fckeditor/editor/lang/en-uk.js +0 -526
  911. data/public/fckeditor/editor/lang/en.js +0 -526
  912. data/public/fckeditor/editor/lang/eo.js +0 -526
  913. data/public/fckeditor/editor/lang/es.js +0 -526
  914. data/public/fckeditor/editor/lang/et.js +0 -526
  915. data/public/fckeditor/editor/lang/eu.js +0 -527
  916. data/public/fckeditor/editor/lang/fa.js +0 -526
  917. data/public/fckeditor/editor/lang/fi.js +0 -526
  918. data/public/fckeditor/editor/lang/fo.js +0 -526
  919. data/public/fckeditor/editor/lang/fr-ca.js +0 -526
  920. data/public/fckeditor/editor/lang/fr.js +0 -526
  921. data/public/fckeditor/editor/lang/gl.js +0 -526
  922. data/public/fckeditor/editor/lang/gu.js +0 -526
  923. data/public/fckeditor/editor/lang/he.js +0 -526
  924. data/public/fckeditor/editor/lang/hi.js +0 -526
  925. data/public/fckeditor/editor/lang/hr.js +0 -526
  926. data/public/fckeditor/editor/lang/hu.js +0 -526
  927. data/public/fckeditor/editor/lang/it.js +0 -526
  928. data/public/fckeditor/editor/lang/ja.js +0 -526
  929. data/public/fckeditor/editor/lang/km.js +0 -526
  930. data/public/fckeditor/editor/lang/ko.js +0 -526
  931. data/public/fckeditor/editor/lang/lt.js +0 -526
  932. data/public/fckeditor/editor/lang/lv.js +0 -526
  933. data/public/fckeditor/editor/lang/mn.js +0 -526
  934. data/public/fckeditor/editor/lang/ms.js +0 -526
  935. data/public/fckeditor/editor/lang/nb.js +0 -526
  936. data/public/fckeditor/editor/lang/nl.js +0 -526
  937. data/public/fckeditor/editor/lang/no.js +0 -526
  938. data/public/fckeditor/editor/lang/pl.js +0 -526
  939. data/public/fckeditor/editor/lang/pt-br.js +0 -526
  940. data/public/fckeditor/editor/lang/pt.js +0 -526
  941. data/public/fckeditor/editor/lang/ro.js +0 -526
  942. data/public/fckeditor/editor/lang/ru.js +0 -526
  943. data/public/fckeditor/editor/lang/sk.js +0 -526
  944. data/public/fckeditor/editor/lang/sl.js +0 -526
  945. data/public/fckeditor/editor/lang/sr-latn.js +0 -526
  946. data/public/fckeditor/editor/lang/sr.js +0 -526
  947. data/public/fckeditor/editor/lang/sv.js +0 -526
  948. data/public/fckeditor/editor/lang/th.js +0 -526
  949. data/public/fckeditor/editor/lang/tr.js +0 -526
  950. data/public/fckeditor/editor/lang/uk.js +0 -526
  951. data/public/fckeditor/editor/lang/vi.js +0 -526
  952. data/public/fckeditor/editor/lang/zh-cn.js +0 -526
  953. data/public/fckeditor/editor/lang/zh.js +0 -526
  954. data/public/fckeditor/editor/plugins/autogrow/fckplugin.js +0 -99
  955. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +0 -26
  956. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.html +0 -67
  957. data/public/fckeditor/editor/plugins/bbcode/fckplugin.js +0 -123
  958. data/public/fckeditor/editor/plugins/dragresizetable/fckplugin.js +0 -524
  959. data/public/fckeditor/editor/plugins/placeholder/fck_placeholder.html +0 -105
  960. data/public/fckeditor/editor/plugins/placeholder/fckplugin.js +0 -187
  961. data/public/fckeditor/editor/plugins/placeholder/lang/de.js +0 -27
  962. data/public/fckeditor/editor/plugins/placeholder/lang/en.js +0 -27
  963. data/public/fckeditor/editor/plugins/placeholder/lang/es.js +0 -27
  964. data/public/fckeditor/editor/plugins/placeholder/lang/fr.js +0 -27
  965. data/public/fckeditor/editor/plugins/placeholder/lang/it.js +0 -27
  966. data/public/fckeditor/editor/plugins/placeholder/lang/pl.js +0 -27
  967. data/public/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  968. data/public/fckeditor/editor/plugins/simplecommands/fckplugin.js +0 -29
  969. data/public/fckeditor/editor/plugins/tablecommands/fckplugin.js +0 -33
  970. data/public/fckeditor/editor/skins/_fckviewstrips.html +0 -121
  971. data/public/fckeditor/editor/skins/default/fck_dialog.css +0 -402
  972. data/public/fckeditor/editor/skins/default/fck_dialog_ie6.js +0 -110
  973. data/public/fckeditor/editor/skins/default/fck_editor.css +0 -464
  974. data/public/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  975. data/public/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  976. data/public/fckeditor/editor/skins/default/images/sprites.png +0 -0
  977. data/public/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  978. data/public/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  979. data/public/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  980. data/public/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  981. data/public/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  982. data/public/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  983. data/public/fckeditor/editor/skins/office2003/fck_dialog.css +0 -402
  984. data/public/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +0 -110
  985. data/public/fckeditor/editor/skins/office2003/fck_editor.css +0 -476
  986. data/public/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  987. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  988. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  989. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  990. data/public/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  991. data/public/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  992. data/public/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  993. data/public/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  994. data/public/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  995. data/public/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  996. data/public/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  997. data/public/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  998. data/public/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  999. data/public/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  1000. data/public/fckeditor/editor/skins/silver/fck_dialog.css +0 -402
  1001. data/public/fckeditor/editor/skins/silver/fck_dialog_ie6.js +0 -110
  1002. data/public/fckeditor/editor/skins/silver/fck_editor.css +0 -473
  1003. data/public/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  1004. data/public/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  1005. data/public/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  1006. data/public/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  1007. data/public/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  1008. data/public/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  1009. data/public/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  1010. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  1011. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  1012. data/public/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  1013. data/public/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  1014. data/public/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  1015. data/public/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  1016. data/public/fckeditor/fckconfig.js +0 -364
  1017. data/public/fckeditor/fckdebug.html +0 -153
  1018. data/public/fckeditor/fckdialog.html +0 -812
  1019. data/public/fckeditor/fckeditor.html +0 -317
  1020. data/public/fckeditor/fckeditor.js +0 -328
  1021. data/public/fckeditor/fckeditor.original.html +0 -424
  1022. data/public/fckeditor/fckpackager.xml +0 -262
  1023. data/public/fckeditor/fckstyles.xml +0 -111
  1024. data/public/fckeditor/fcktemplates.xml +0 -103
  1025. data/public/javascripts/cms/editor.js +0 -56
@@ -0,0 +1,237 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ <title>Portlets Guide</title>
6
+ <link rel="stylesheet" type="text/css" href="files/stylesheets/syntax.css" />
7
+ <script type="text/javascript" src="files/javascripts/code_highlighter.js"></script>
8
+ <script type="text/javascript" src="files/javascripts/highlighters.js"></script>
9
+ <style type="text/css">
10
+ body {
11
+ background: #FFFFFF url(images/bg.png) repeat-x scroll 0 0;
12
+ font-family: "Trebuchet MS", Helvetica, Verdana, Arial, sans-serif;
13
+ margin: 0;
14
+ padding: 0;
15
+ }
16
+
17
+ #page {
18
+ margin: 0 auto;
19
+ text-align: left;
20
+ width: 1000px;
21
+ }
22
+
23
+ #header {
24
+ height: 110px;
25
+ }
26
+
27
+ div.top_cap {
28
+ background: transparent url(images/top_cap.png) no-repeat scroll 0 0;
29
+ height: 10px;
30
+ }
31
+
32
+ #contentwrap {
33
+ background: transparent url(images/dot.png) repeat scroll 0 0;
34
+ float: left;
35
+ width: 1000px;
36
+ }
37
+
38
+ div.bottom_cap {
39
+ background: transparent url(images/bottom_cap.png) no-repeat scroll 0 0;
40
+ height: 9px;
41
+ }
42
+
43
+ div.top_cap_content {
44
+ background: transparent url(images/top_cap_content.png) no-repeat scroll 0 0;
45
+ height: 5px;
46
+ }
47
+
48
+ #content {
49
+ background-color: #FFFFFF;
50
+ margin: 0 5px;
51
+ padding: 0 10px;
52
+ }
53
+
54
+ div.title {
55
+ padding: 20px;
56
+ }
57
+
58
+ div.title h1 {
59
+ border-bottom: 3px solid #505358;
60
+ color: #FFFFFF;
61
+ font-size: 24pt;
62
+ font-weight: normal;
63
+ line-height: 1;
64
+ margin: 0 0 10px;
65
+ padding-bottom: 10px;
66
+ }
67
+
68
+ td.sidebar {
69
+ font-size: 8pt;
70
+ width: 165px;
71
+ padding: 5px;
72
+ }
73
+
74
+ td.sidebar ol {
75
+ margin-left: 20px;
76
+ padding: 0;
77
+ line-height: 1.5;
78
+ }
79
+
80
+ td.sidebar ol li {
81
+ margin: 0;
82
+ padding: 0;
83
+ }
84
+
85
+ td.sidebar ol li ul {
86
+ list-style-type: none;
87
+ padding-left: 10px;
88
+ }
89
+
90
+ td.guides {
91
+ font-size: 10pt;
92
+ width: 800px;
93
+ padding: 10px;
94
+ }
95
+
96
+ .code_container {
97
+ padding: 10px;
98
+ background: #eee;
99
+ border: 1px solid #ccc;
100
+ overflow: auto;
101
+ width: 760px;
102
+ }
103
+
104
+ pre, code {
105
+ overflow: auto;
106
+ white-space:pre;
107
+ }
108
+ .note {
109
+ -moz-background-clip:border;
110
+ -moz-background-inline-policy:continuous;
111
+ -moz-background-origin:padding;
112
+ background:#FFF9D8 url(../images/tab_note.gif) no-repeat scroll left top;
113
+ border:medium none;
114
+ margin:0.25em 0 1.5em;
115
+ padding:1em 1em 0.25em 48px;
116
+ }
117
+ </style>
118
+ </head>
119
+ <body>
120
+ <div id="page">
121
+ <div id="header">
122
+ <a href="index.html"><img style="border:0px" src="images/browsercms_logo.png" alt="BrowserCMS"/></a>
123
+ </div>
124
+ <div id="main">
125
+ <div class="top_cap"></div>
126
+ <div id="contentwrap">
127
+ <div class="title">
128
+ <h1>Portlets Guide</h1>
129
+ </div>
130
+ <div class="top_cap_content"></div>
131
+ <div id="content">
132
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
133
+ <tr>
134
+ <td class="sidebar" valign="top">
135
+ <div id="subCol">
136
+ <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
137
+ <ol class="chapters">
138
+ <li><a href="#creating-a-portlet">Creating A Portlet</a><ul><li><a href="#allowing-template-editing-via-the-ui">Allowing template editing via the UI</a></li><li><a href="#default-template-handlers">Default Template Handlers</a></li><li><a href="#alternative-handlers-for-non-editable-templates">Alternative handlers for non-editable templates</a></li><li><a href="#using-haml-templates">Using <span class="caps">HAML</span> templates</a></li></ul></li></ol></div>
139
+ </td>
140
+ <td class="guides">
141
+ <h2>Portlets Guide</h2>
142
+ <p>This guide covers how to use the Portlets extend the functionality of your BrowserCMS site. The target audience for this guide is developers who are familiar with Rails. You should also read the <a href="user_guide.html">Building a Site with BrowserCMS</a> guide first as well, so you know how to create pages and put content on pages. This guide will cover:</p>
143
+ <ul>
144
+ <li>What portlets are and how they work</li>
145
+ <li>How to create custom portlets</li>
146
+ </ul>
147
+ <h3 id="creating-a-portlet">1 Creating A Portlet</h3>
148
+ <p>Once you have created the product content block and created a few products in the content library, you need a way to
149
+ display them on a page. To do that, you will want to create a portlet.</p>
150
+ <p>A portlet is a type of content block used to display dynamic data on a page (usually other content blocks). A portlet will typically perform
151
+ some kind of database query in the render method and then render it&#8217;s view. One difference between a portlet and
152
+ typical content block is that each instance of a portlet can have a view template that is editable via the <span class="caps">CMS</span> admin interface.
153
+ Let&#8217;s generate a portlet to display the most recently created products:</p>
154
+ <div class="code_container"><code class="html">$ script/generate portlet recent_products limit:integer</code></div>
155
+ <p>What you will see created is:</p>
156
+ <ul>
157
+ <li>A portlet at <tt>app/portlets/recent_products_portlet.rb</tt></li>
158
+ <li>A form partial at <tt>app/views/portlets/recent_products/_form.html.erb</tt></li>
159
+ <li>A render template at <tt>app/views/portlets/recent_products/render.html.erb</tt></li>
160
+ </ul>
161
+ <p>What you don&#8217;t see created is a migration. Portlets use the <a href="/doc/app/classes/Cms/Behaviors/DynamicAttributes.html">DynamicAttributes</a>
162
+ behavior in order to store associated values in the database without having to create custom database tables. What
163
+ this means is that you can set and then store a value for any attribute for a portlet.</p>
164
+ <p>So if you look at the form partial that was generate for this portlet, you will see this:</p>
165
+ <div class="code_container"><code class="html">&lt;%= f.cms_text_field :name %&gt;
166
+ &lt;%= f.cms_text_field :limit %&gt;
167
+ &lt;%= f.cms_template_editor :template %&gt;</code></div>
168
+ <p>Every portlet instance has to have a name and that is stored in the main <tt>portlets</tt> table, but <tt>limit</tt> is stored in the <tt>portlet_attributes</tt> table.
169
+ You could add anything to this form, such as <tt>&lt;%= f.cms_text_field :foobar %&gt;</tt>, and whatever the user enters for <tt>foobar</tt> would get saved with the portlet.</p>
170
+ <p>If you look at the code for the portlet, you will see:</p>
171
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
172
+
173
+ enable_template_editor false
174
+
175
+ def render
176
+ # Your Code Goes Here
177
+ end
178
+
179
+ end</code></div>
180
+ <p>As the comment says, you will want to fill in your application logic here. We&#8217;re going to get the most recent products
181
+ and use the value the user entered for limit when they filled out the form. So edit the render method to look like:</p>
182
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
183
+
184
+ def render
185
+ @products = Product.all(:order =&gt; &quot;created_at desc&quot;, :limit =&gt; self.limit)
186
+ end
187
+
188
+ end</code></div>
189
+ <p><code>self</code> in this case is the portlet instance, which is also available in the instance variable
190
+ <code>@portlet</code>.
191
+ We are setting the <code>@products</code> instance variable so that will be available in the view. If you look at the render template, you will see this:</p>
192
+ <div class="code_container"><code class="html">&lt;%=h @portlet.name %&gt;</code></div>
193
+ <p>This is simply a place holder, you should override this code with how you want the portlet to display. In this case, let&#8217;s go with:</p>
194
+ <div class="code_container"><code class="html">&lt;ul&gt;
195
+ &lt;% @products.each do |product| %&gt;
196
+ &lt;li&gt;&lt;%=h product.name %&gt;&lt;/li&gt;
197
+ &lt;% end %&gt;
198
+ &lt;/ul&gt;</code></div>
199
+ <h4 id="allowing-template-editing-via-the-ui">1.1 Allowing template editing via the UI</h4>
200
+ <p>By default, each instance of a Portlet will render itself using the contents of it&#8217;s &#8216;render.html.erb&#8217; file, because &#8216;enable_template_editor&#8217; was marked false.
201
+ If you look back at the form partial that was generated, you&#8217;ll see:</p>
202
+ <div class="code_container"><code class="html">&lt;%= f.cms_template_editor :template %&gt;</code></div>
203
+ <p>This is the editing control for the Portlet&#8217;s template, which will not appear on <span class="caps">CMS</span> UI by default. This allows you to quickly
204
+ refine how you want the default view to look. Once you like the layout for a portlet, you can enable the editor like so:</p>
205
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
206
+ enable_template_editor true
207
+ end</code></div>
208
+ <p>Now each instance of the RecentProducts can have its own unique template. Each time a new portlet is created, the contents of
209
+ the &#8216;render.html.erb&#8217; will be copied into the template attribute of the portlet and used to display the portlet. Users can
210
+ update these views as they see fit.</p>
211
+ <p><strong>Gotcha:</strong> It&#8217;s important to remember that once a portlet has a saved template, it will ignore what&#8217;s in the render.html.erb. So changes made there won&#8217;t
212
+ be reflected until the portlet&#8217;s template has been updated again.</p>
213
+ <h4 id="default-template-handlers">1.2 Default Template Handlers</h4>
214
+ <p>By default, templates are treated as erb views. The template editor has a drop down that allows users to choose other types like &#8216;builder&#8217; or &#8216;rhtml&#8217;. To set the default handler
215
+ to something other than erb, modify the _form.html.erb to the following:</p>
216
+ <div class="code_container"><code class="html">&lt;%= f.template_editor :template, :default_handler=&gt;&quot;builder&quot; %&gt;</code></div>
217
+ <h4 id="alternative-handlers-for-non-editable-templates">1.3 Alternative handlers for non-editable templates</h4>
218
+ <p>If the template_editor is disabled, you can also set the handler directly on the portlet like so:</p>
219
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
220
+ enable_template_editor false
221
+ handler &quot;builder&quot;
222
+ end</code></div>
223
+ <h4 id="using-haml-templates">1.4 Using <span class="caps">HAML</span> templates</h4>
224
+ <p>The default list of handlers does not include Haml. To do that, install the <span class="caps">HAML</span> gem and set the default_value to &#8216;haml&#8217; like so:</p>
225
+ <div class="code_container"><code class="html">&lt;%= f.template_editor :template, :default_handler=&gt;&quot;haml&quot; %&gt;</code></div>
226
+ </td>
227
+ </tr>
228
+ </table>
229
+ </div>
230
+ </div>
231
+ <br clear="all"/>
232
+ <div class="bottom_cap"></div>
233
+ </div>
234
+ </div>
235
+ </body>
236
+ </html>
237
+
@@ -105,7 +105,15 @@
105
105
  overflow: auto;
106
106
  white-space:pre;
107
107
  }
108
-
108
+ .note {
109
+ -moz-background-clip:border;
110
+ -moz-background-inline-policy:continuous;
111
+ -moz-background-origin:padding;
112
+ background:#FFF9D8 url(../images/tab_note.gif) no-repeat scroll left top;
113
+ border:medium none;
114
+ margin:0.25em 0 1.5em;
115
+ padding:1em 1em 0.25em 48px;
116
+ }
109
117
  </style>
110
118
  </head>
111
119
  <body>
@@ -2,7 +2,7 @@
2
2
  <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
3
  <head>
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
- <title>BrowserCMS Designer Guide</title>
5
+ <title></title>
6
6
  <link rel="stylesheet" type="text/css" href="files/stylesheets/syntax.css" />
7
7
  <script type="text/javascript" src="files/javascripts/code_highlighter.js"></script>
8
8
  <script type="text/javascript" src="files/javascripts/highlighters.js"></script>
@@ -105,7 +105,15 @@
105
105
  overflow: auto;
106
106
  white-space:pre;
107
107
  }
108
-
108
+ .note {
109
+ -moz-background-clip:border;
110
+ -moz-background-inline-policy:continuous;
111
+ -moz-background-origin:padding;
112
+ background:#FFF9D8 url(../images/tab_note.gif) no-repeat scroll left top;
113
+ border:medium none;
114
+ margin:0.25em 0 1.5em;
115
+ padding:1em 1em 0.25em 48px;
116
+ }
109
117
  </style>
110
118
  </head>
111
119
  <body>
@@ -117,7 +125,7 @@
117
125
  <div class="top_cap"></div>
118
126
  <div id="contentwrap">
119
127
  <div class="title">
120
- <h1>BrowserCMS Designer Guide</h1>
128
+ <h1></h1>
121
129
  </div>
122
130
  <div class="top_cap_content"></div>
123
131
  <div id="content">
@@ -130,25 +138,18 @@
130
138
  </ol></div>
131
139
  </td>
132
140
  <td class="guides">
133
- <h2>BrowserCMS Designer Guide</h2>
134
- <p>This guide covers how to set up styled templates for BrowserCMS. This guide will cover:</p>
141
+
142
+ <h2>Writing Guides</h2>
143
+ <p>Things to keep in mind:</p>
135
144
  <ul>
136
- <li>How to create custom page templates</li>
137
- <li>How to create custom page partials</li>
138
- <li>How to use helpers to add dynamic content to templates and partials</li>
139
- <li>How to use the <span class="caps">CMS</span>-specific form builder extensions</li>
145
+ <li>Use a text editor that supports word wrapping (like Textmate) to avoid having line breaks in paragraphs.</li>
146
+ <li>We are using the same textile extensions that Rails Guides uses. See http://github.com/lifo/docrails/raw/master/railties/guides/source/ for examples of their documentation.</li>
147
+ <li>From within browsercms, run <tt>rake cms:guides</tt> to generate all the docs.</li>
148
+ <li>To generate only one guide (like <tt>writing_guides.textile</tt>), run <tt>rake cms:guides ONLY=writing_guides</tt></li>
140
149
  </ul>
141
- <h2>Creating a template
142
- Each page in BrowserCMS uses a single template, which is designed to provide overall layout structure of the page. Here&#8217;s the general process
143
- that a design team might follow to create a <span class="caps">CMS</span> template.</h2>
144
- <p>1. Start with a <span class="caps">PSD</span> or <span class="caps">JPG</span> of the design, which represents the end result of what the webpage should look like.
145
- 2. Create a static html file which implements that design.
146
- 3. When creating menus, use the same structural <span class="caps">HTML</span> markup as will be generated by the Menu <span class="caps">API</span>. (See Menu&#8217;s below)
147
- 4. Change the file extension from .htm to .html.erb and add it as a template to the <span class="caps">CMS</span>.</p>
148
- <h2>Menus
149
- BrowserCMS provides an <span class="caps">API</span> to allow menus to be dynamically generated based on the sitemap. The purpose of this is to make
150
- it easy to add new pages, without having to modify templates.</h2>
151
- <div class="code_container"><code class="ruby">render_menu</code></div>
150
+ <h3>Textile Extensions:</h3>
151
+ <div class='info'><p>Adds a tip.</p></div>
152
+ <div class='note'><p>Adds a note.</p></div>
152
153
  </td>
153
154
  </tr>
154
155
  </table>
@@ -0,0 +1,69 @@
1
+ #
2
+ # Can be included into Controllers in your project to allow them to act as though they are CMS pages.
3
+ # This means they can be:
4
+ #
5
+ # 1. Marked as having requiring permission as though they were in a particular section.
6
+ # 2. Handle errors thrown from within the methods in the same way that CMS Pages do.
7
+ # 3. Use CMS page templates as layouts (like TemplateSupport)
8
+ #
9
+ # This is intend to replace and deprecate TemplateSupport (which will be supported for a while for backwards compatibility)
10
+ #
11
+ # Minor Issue:
12
+ # Error handling for Page not found behaves slightly differently than ContentController currently. If the user is logged
13
+ # in as an editor, they will get a 500 page rather than 404. This would require reworking how the error processing
14
+ # works in Cms::ContentRenderingSupport.
15
+ module Cms
16
+ module Acts
17
+
18
+
19
+ module ContentPage
20
+
21
+ def self.included(base)
22
+ base.send :include, Cms::ContentRenderingSupport
23
+ base.send :include, Cms::Authentication::Controller
24
+ base.extend ClassMethods
25
+
26
+ base.helper Cms::PageHelper
27
+ base.helper Cms::RenderingHelper
28
+ base.helper Cms::MenuHelper
29
+ end
30
+
31
+ # Before filter that determines if the current user can access a specific section.
32
+ def check_access_to_section
33
+ user = current_user
34
+ logger.warn "Checking that current_user '#{user.login}' has access to view section with path '#{self.class.in_section}'."
35
+ unless user.able_to_view?(self.class.in_section)
36
+ store_location
37
+ raise Cms::Errors::AccessDenied
38
+ end
39
+ end
40
+
41
+ module ClassMethods
42
+
43
+ # Requires that some or all of the actions on this controller require the same permissions as a specific section of the website.
44
+ # Note that section paths aren't currently unique so the 'first' section found will be looked at.
45
+ #
46
+ # Params:
47
+ # path - Should match the 'path' attribute for a given section.
48
+ # options - Hash of options that will be passed to the before_filter call. See before_filter for valid options.
49
+ #
50
+ # Example:
51
+ # MyController < ApplicationController
52
+ # include Cms::Acts::ContentPage
53
+ # requires_permission_for_section "/somepath", :except=>"action_name"
54
+ # ...
55
+ #
56
+ def requires_permission_for_section(path, options={})
57
+ logger.warn "Setting path #{path}"
58
+ @section_path = path
59
+ before_filter :check_access_to_section, options
60
+ end
61
+
62
+ def in_section
63
+ @section_path
64
+ end
65
+ end
66
+ end
67
+
68
+ end
69
+ end
@@ -46,7 +46,7 @@ module Cms
46
46
  def current_user=(new_user)
47
47
  session[:user_id] = new_user ? new_user.id : nil
48
48
  @current_user = new_user || false
49
- @current_user = User.current
49
+ User.current = @current_user
50
50
  end
51
51
 
52
52
  # Check if the user is authorized
@@ -22,7 +22,6 @@ module Cms
22
22
  # format and template engine options as regular views, to the file name should
23
23
  # be render.html.erb.
24
24
  #
25
- # One gotcha to be aware of with this behavior
26
25
  module Rendering
27
26
  def self.included(model)
28
27
  model.extend(MacroMethods)
@@ -99,12 +98,20 @@ module Cms
99
98
 
100
99
  def perform_render(controller)
101
100
  return "Exception: #{@render_exception}" if @render_exception
101
+
102
+
102
103
  unless @controller
103
104
  # We haven't prepared to render. This should only happen when logged in, as we don't want
104
105
  # errors to bubble up and prevent the page being edited in that case.
105
106
  prepare_to_render(controller)
106
107
  end
107
-
108
+
109
+ if self.respond_to?(:deleted) && self.deleted
110
+ logger.error "Attempting to render deleted object: #{self.inspect}"
111
+ msg = (@mode == 'edit' ? %Q[<div class="error">This #{self.class.name} has been deleted. Please remove this container from the page</div>] : '')
112
+ return msg
113
+ end
114
+
108
115
  # Create, Instantiate and Initialize the view
109
116
  view_class = Class.new(ActionView::Base)
110
117
  action_view = view_class.new(@controller.view_paths, {}, @controller)
@@ -4,7 +4,7 @@ module Cms
4
4
  def self.included(model_class)
5
5
  model_class.extend(MacroMethods)
6
6
  end
7
- module MacroMethods
7
+ module MacroMethods
8
8
  def versioned?
9
9
  !!@is_versioned
10
10
  end
@@ -24,7 +24,7 @@ module Cms
24
24
  attr_accessor :revert_to_version
25
25
 
26
26
  #Define the version class
27
- const_set("Version", Class.new(ActiveRecord::Base)).class_eval do
27
+ const_set("Version", Class.new(ActiveRecord::Base)).class_eval do
28
28
  class << self; attr_accessor :versioned_class end
29
29
 
30
30
  def versioned_class
@@ -35,8 +35,8 @@ module Cms
35
35
  end
36
36
  def versioned_object
37
37
  send(versioned_class.name.underscore.to_sym)
38
- end
39
- end
38
+ end
39
+ end unless self.const_defined?("Version")
40
40
 
41
41
  version_class.versioned_class = self
42
42
 
@@ -46,27 +46,27 @@ module Cms
46
46
 
47
47
  end
48
48
  end
49
- module ClassMethods
49
+ module ClassMethods
50
50
  def version_class
51
51
  const_get "Version"
52
52
  end
53
53
 
54
54
  def version_class_name
55
55
  "::#{name}::Version"
56
- end
56
+ end
57
57
 
58
58
  def version_foreign_key
59
59
  @version_foreign_key
60
60
  end
61
61
 
62
- def version_table_name
62
+ def version_table_name
63
63
  @version_table_name
64
64
  end
65
65
 
66
66
  def versioned_columns
67
- @versioned_columns ||= (version_class.new.attributes.keys -
67
+ @versioned_columns ||= (version_class.new.attributes.keys -
68
68
  (%w[id lock_version position version_comment created_at updated_at created_by_id updated_by_id type] + [version_foreign_key]))
69
- end
69
+ end
70
70
  end
71
71
  module InstanceMethods
72
72
  def initialize_version
@@ -77,15 +77,13 @@ module Cms
77
77
  # First get the values from the draft
78
78
  attrs = draft_attributes
79
79
 
80
- # Now overwrite any changed values
81
- self.class.versioned_columns.each do |col|
82
- if(send("#{col}_changed?"))
83
- attrs[col] = send(col)
84
- end
80
+ # Now overwrite all values
81
+ (self.class.versioned_columns - %w(version)).each do |col|
82
+ attrs[col] = send(col)
85
83
  end
86
84
 
87
85
  attrs[:version_comment] = @version_comment || default_version_comment
88
- @version_comment = nil
86
+ @version_comment = nil
89
87
  new_version = versions.build(attrs)
90
88
  new_version.version = new_record? ? 1 : (draft.version.to_i + 1)
91
89
  after_build_new_version(new_version) if respond_to?(:after_build_new_version)
@@ -97,7 +95,7 @@ module Cms
97
95
  # Otherwise we need to use the draft
98
96
  d = new_record? ? self : draft
99
97
  self.class.versioned_columns.inject({}){|attrs, col| attrs[col] = d.send(col); attrs }
100
- end
98
+ end
101
99
 
102
100
  def default_version_comment
103
101
  if new_record?
@@ -110,22 +108,22 @@ module Cms
110
108
  def save(perform_validations=true)
111
109
  transaction do
112
110
  #logger.info "..... Calling valid?"
113
- return false unless !perform_validations || valid?
114
-
115
- if changed?
111
+ return false unless !perform_validations || valid?
112
+
113
+ if different_from_last_draft?
116
114
  #logger.info "..... Changes => #{changes.inspect}"
117
115
  else
118
116
  #logger.info "..... No Changes"
119
117
  return true
120
118
  end
121
-
119
+
122
120
  #logger.info "..... Calling before_save"
123
121
  return false if callback(:before_save) == false
124
122
 
125
123
  if new_record?
126
124
  #logger.info "..... Calling before_create"
127
125
  return false if callback(:before_create) == false
128
- else
126
+ else
129
127
  #logger.info "..... Calling before_update"
130
128
  return false if callback(:before_update) == false
131
129
  end
@@ -142,12 +140,12 @@ module Cms
142
140
  #logger.info "..... Calling after_save"
143
141
  callback(:after_save)
144
142
  end
145
-
143
+
146
144
  if @publish_on_save
147
145
  publish
148
146
  @publish_on_save = nil
149
- end
150
- changed_attributes.clear
147
+ end
148
+ changed_attributes.clear
151
149
  end
152
150
  result
153
151
  elsif new_version
@@ -158,11 +156,11 @@ module Cms
158
156
  #logger.info "..... Calling after_update"
159
157
  callback(:after_save)
160
158
  end
161
-
159
+
162
160
  if @publish_on_save
163
161
  publish
164
162
  @publish_on_save = nil
165
- end
163
+ end
166
164
  changed_attributes.clear
167
165
  end
168
166
  result
@@ -176,13 +174,13 @@ module Cms
176
174
  end
177
175
 
178
176
  def draft
179
- versions.first(:order => "version desc")
177
+ versions.first(:order => "version desc")
180
178
  end
181
-
179
+
182
180
  def draft_version?
183
181
  version == draft.version
184
182
  end
185
-
183
+
186
184
  def live_version
187
185
  find_version(self.class.find(id).version)
188
186
  end
@@ -194,7 +192,7 @@ module Cms
194
192
  def current_version
195
193
  find_version(self.version)
196
194
  end
197
-
195
+
198
196
  def find_version(number)
199
197
  versions.first(:conditions => { :version => number })
200
198
  end
@@ -225,7 +223,7 @@ module Cms
225
223
  changed_attrs.clear
226
224
  end
227
225
 
228
- obj
226
+ obj
229
227
  end
230
228
 
231
229
  def revert
@@ -239,15 +237,15 @@ module Cms
239
237
  raise "Could not find version #{version}" unless revert_to_version
240
238
  (self.class.versioned_columns - ["version"]).each do |a|
241
239
  send("#{a}=", revert_to_version.send(a))
242
- end
240
+ end
243
241
  self.version_comment = "Reverted to version #{version}"
244
- self
245
- end
242
+ self
243
+ end
246
244
 
247
245
  def revert_to(version)
248
246
  revert_to_without_save(version)
249
247
  save
250
- end
248
+ end
251
249
 
252
250
  def version_comment
253
251
  @version_comment
@@ -258,6 +256,16 @@ module Cms
258
256
  send(:changed_attributes)["version_comment"] = @version_comment
259
257
  end
260
258
 
259
+ def different_from_last_draft?
260
+ return true if self.changed?
261
+ last_draft = self.draft
262
+ return true unless last_draft
263
+ (self.class.versioned_columns - %w(version)).each do |col|
264
+ return true if self.send(col) != last_draft.send(col)
265
+ end
266
+ return false
267
+ end
268
+
261
269
  end
262
270
  end
263
271