browsercms 3.0.6 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (995) hide show
  1. data/app/controllers/cms/application_controller.rb +2 -12
  2. data/app/controllers/cms/content_block_controller.rb +1 -1
  3. data/app/controllers/cms/content_controller.rb +3 -83
  4. data/app/controllers/cms/dashboard_controller.rb +1 -1
  5. data/app/controllers/cms/pages_controller.rb +2 -0
  6. data/app/controllers/tests/pretend_controller.rb +32 -0
  7. data/app/helpers/application_helper.rb +2 -0
  8. data/app/helpers/cms/application_helper.rb +0 -32
  9. data/app/helpers/cms/form_builder.rb +131 -54
  10. data/app/helpers/cms/menu_helper.rb +13 -2
  11. data/app/helpers/cms/page_helper.rb +26 -2
  12. data/app/helpers/cms/rendering_helper.rb +42 -0
  13. data/app/models/forgot_password_mailer.rb +12 -0
  14. data/app/models/guest_user.rb +11 -3
  15. data/app/models/page.rb +1 -1
  16. data/app/models/page_template.rb +1 -18
  17. data/app/models/portlet.rb +10 -1
  18. data/app/models/section.rb +41 -33
  19. data/app/models/task.rb +32 -26
  20. data/app/models/templates.rb +31 -0
  21. data/app/models/user.rb +27 -9
  22. data/app/portlets/forgot_password_portlet.rb +29 -0
  23. data/app/portlets/reset_password_portlet.rb +28 -0
  24. data/app/views/cms/blocks/_toolbar_for_member.html.erb +1 -1
  25. data/app/views/cms/blocks/edit.html.erb +5 -0
  26. data/app/views/cms/blocks/show.html.erb +3 -0
  27. data/app/views/cms/dynamic_views/index.html.erb +3 -2
  28. data/app/views/cms/forgot_password_mailer/reset_password.text.html.erb +3 -0
  29. data/app/views/cms/forgot_password_mailer/reset_password.text.plain.erb +3 -0
  30. data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
  31. data/app/views/cms/form_builder/_cms_drop_down.html.erb +0 -7
  32. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
  33. data/app/views/cms/form_builder/_cms_file_field.html.erb +11 -7
  34. data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
  35. data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
  36. data/app/views/cms/groups/_permissions.html.erb +1 -1
  37. data/app/views/cms/page_routes/index.html.erb +2 -2
  38. data/app/views/cms/page_routes/show.html.erb +2 -2
  39. data/app/views/cms/redirects/index.html.erb +1 -1
  40. data/app/views/layouts/cms/_footer.erb +1 -1
  41. data/app/views/layouts/cms/_head.html.erb +1 -1
  42. data/app/views/layouts/cms/content_library.html.erb +7 -7
  43. data/app/views/layouts/cms/thickbox.html.erb +2 -2
  44. data/app/views/portlets/forgot_password/_form.html.erb +6 -0
  45. data/app/views/portlets/forgot_password/render.html.erb +14 -0
  46. data/app/views/portlets/reset_password/_form.html.erb +3 -0
  47. data/app/views/portlets/reset_password/render.html.erb +24 -0
  48. data/app/views/tests/pretend/open_with_layout.html.erb +5 -0
  49. data/bin/bcms +6 -0
  50. data/bin/browsercms +73 -0
  51. data/browsercms.gemspec +493 -379
  52. data/db/demo/page_templates/sub_page.html.erb +1 -1
  53. data/db/migrate/20081114172307_load_seed_data.rb +0 -29
  54. data/db/migrate/20091109175123_browsercms_3_0_5.rb +9 -0
  55. data/doc/app/classes/AbstractFileBlock.html +32 -6
  56. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +136 -85
  57. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +6 -6
  58. data/doc/app/classes/ActsAsList.html +6 -6
  59. data/doc/app/classes/ActsAsList/ClassMethods.html +8 -8
  60. data/doc/app/classes/ActsAsList/InstanceMethods.html +143 -119
  61. data/doc/app/classes/ApplicationHelper.html +4 -0
  62. data/doc/app/classes/Attachment.html +134 -134
  63. data/doc/app/classes/Category.html +24 -24
  64. data/doc/app/classes/CategoryType.html +18 -18
  65. data/doc/app/classes/Cms.html +227 -94
  66. data/doc/app/classes/Cms/Acts.html +5 -0
  67. data/doc/app/classes/Cms/Acts/ContentBlock.html +6 -6
  68. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +6 -6
  69. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +6 -6
  70. data/doc/app/classes/Cms/Acts/ContentPage.html +187 -0
  71. data/doc/app/classes/Cms/Acts/ContentPage/ClassMethods.html +188 -0
  72. data/doc/app/classes/Cms/ApplicationController.html +69 -118
  73. data/doc/app/classes/Cms/ApplicationHelper.html +277 -393
  74. data/doc/app/classes/Cms/AttachmentsController.html +6 -6
  75. data/doc/app/classes/Cms/Authentication/Controller.html +226 -228
  76. data/doc/app/classes/Cms/Authentication/Model.html +6 -6
  77. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +30 -30
  78. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +66 -66
  79. data/doc/app/classes/Cms/Behaviors/Archiving.html +6 -6
  80. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +24 -24
  81. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +12 -12
  82. data/doc/app/classes/Cms/Behaviors/Attaching.html +6 -6
  83. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +123 -123
  84. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +12 -12
  85. data/doc/app/classes/Cms/Behaviors/Categorizing.html +6 -6
  86. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +6 -6
  87. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +12 -12
  88. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +60 -60
  89. data/doc/app/classes/Cms/Behaviors/Connecting.html +6 -6
  90. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +18 -18
  91. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +42 -42
  92. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +12 -12
  93. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +6 -6
  94. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +14 -14
  95. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +12 -12
  96. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +12 -12
  97. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +6 -6
  98. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +12 -12
  99. data/doc/app/classes/Cms/Behaviors/Hiding.html +6 -6
  100. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +24 -24
  101. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +12 -12
  102. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +127 -74
  103. data/doc/app/classes/Cms/Behaviors/Pagination.html +6 -6
  104. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +12 -12
  105. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +55 -55
  106. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +6 -6
  107. data/doc/app/classes/Cms/Behaviors/Publishing.html +12 -12
  108. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +119 -119
  109. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +25 -14
  110. data/doc/app/classes/Cms/Behaviors/Rendering.html +10 -13
  111. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +33 -33
  112. data/doc/app/classes/Cms/Behaviors/Searching.html +6 -6
  113. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +12 -12
  114. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +12 -12
  115. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +6 -6
  116. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +24 -24
  117. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +30 -30
  118. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +12 -12
  119. data/doc/app/classes/Cms/Behaviors/Taggable.html +6 -6
  120. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +12 -12
  121. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +34 -33
  122. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +12 -12
  123. data/doc/app/classes/Cms/Behaviors/Userstamping.html +6 -6
  124. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +6 -6
  125. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +12 -12
  126. data/doc/app/classes/Cms/Behaviors/Versioning.html +6 -6
  127. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +30 -30
  128. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +322 -294
  129. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +31 -31
  130. data/doc/app/classes/Cms/CacheController.html +12 -12
  131. data/doc/app/classes/Cms/Caching.html +12 -12
  132. data/doc/app/classes/Cms/CategoriesController.html +35 -0
  133. data/doc/app/classes/Cms/CategoryTypesController.html +6 -6
  134. data/doc/app/classes/Cms/ConnectorsController.html +19 -19
  135. data/doc/app/classes/Cms/ContentBlockController.html +486 -440
  136. data/doc/app/classes/Cms/ContentController.html +48 -121
  137. data/doc/app/classes/Cms/ContentRenderingSupport.html +222 -0
  138. data/doc/app/classes/Cms/ContentTypesController.html +6 -6
  139. data/doc/app/classes/Cms/DashboardController.html +12 -11
  140. data/doc/app/classes/Cms/DataLoader.html +12 -12
  141. data/doc/app/classes/Cms/DomainSupport.html +166 -0
  142. data/doc/app/classes/Cms/DynamicViewsController.html +54 -54
  143. data/doc/app/classes/Cms/EmailMessagesController.html +12 -12
  144. data/doc/app/classes/Cms/ErrorHandling.html +50 -23
  145. data/doc/app/classes/Cms/Errors/AccessDenied.html +10 -10
  146. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +6 -6
  147. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +6 -6
  148. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +6 -6
  149. data/doc/app/classes/Cms/Extensions/Hash.html +12 -12
  150. data/doc/app/classes/Cms/Extensions/Integer.html +6 -6
  151. data/doc/app/classes/Cms/Extensions/NilClass.html +24 -24
  152. data/doc/app/classes/Cms/Extensions/String.html +24 -24
  153. data/doc/app/classes/Cms/FormBuilder.html +258 -90
  154. data/doc/app/classes/Cms/FormTagHelper.html +30 -30
  155. data/doc/app/classes/Cms/GroupsController.html +24 -24
  156. data/doc/app/classes/Cms/HomeController.html +6 -6
  157. data/doc/app/classes/Cms/LinksController.html +64 -62
  158. data/doc/app/classes/Cms/MenuHelper.html +210 -165
  159. data/doc/app/classes/Cms/PageHelper.html +178 -91
  160. data/doc/app/classes/Cms/PageRouteOptionsController.html +54 -54
  161. data/doc/app/classes/Cms/PageRoutesController.html +36 -36
  162. data/doc/app/classes/Cms/PagesController.html +111 -109
  163. data/doc/app/classes/Cms/PathHelper.html +36 -36
  164. data/doc/app/classes/Cms/PortletController.html +6 -6
  165. data/doc/app/classes/Cms/PortletsController.html +43 -43
  166. data/doc/app/classes/Cms/RedirectsController.html +12 -12
  167. data/doc/app/classes/Cms/RenderingHelper.html +214 -0
  168. data/doc/app/classes/Cms/ResourceController.html +114 -114
  169. data/doc/app/classes/Cms/Routes.html +151 -143
  170. data/doc/app/classes/Cms/RoutesController.html +6 -6
  171. data/doc/app/classes/Cms/SectionNodesController.html +36 -36
  172. data/doc/app/classes/Cms/SectionNodesHelper.html +6 -6
  173. data/doc/app/classes/Cms/SectionsController.html +212 -188
  174. data/doc/app/classes/Cms/SessionsController.html +68 -39
  175. data/doc/app/classes/Cms/TagsController.html +30 -6
  176. data/doc/app/classes/Cms/TasksController.html +18 -18
  177. data/doc/app/classes/Cms/TemplateSupport.html +185 -0
  178. data/doc/app/classes/Cms/ToolbarController.html +6 -6
  179. data/doc/app/classes/Cms/UsersController.html +129 -153
  180. data/doc/app/classes/CommandLine.html +226 -0
  181. data/doc/app/classes/Connector.html +75 -71
  182. data/doc/app/classes/ContentType.html +72 -72
  183. data/doc/app/classes/DynamicPortlet.html +6 -6
  184. data/doc/app/classes/DynamicView.html +130 -133
  185. data/doc/app/classes/EmailMessage.html +24 -24
  186. data/doc/app/classes/EmailMessageMailer.html +6 -6
  187. data/doc/app/classes/EmailPagePortlet.html +12 -12
  188. data/doc/app/classes/FileBlock.html +18 -18
  189. data/doc/app/classes/ForgotPasswordMailer.html +151 -0
  190. data/doc/app/classes/ForgotPasswordPortlet.html +162 -0
  191. data/doc/app/classes/Group.html +72 -20
  192. data/doc/app/classes/GuestUser.html +138 -93
  193. data/doc/app/classes/HtmlBlock.html +12 -12
  194. data/doc/app/classes/ImageBlock.html +18 -18
  195. data/doc/app/classes/InitialData.html +6 -6
  196. data/doc/app/classes/Link.html +30 -30
  197. data/doc/app/classes/LoginPortlet.html +6 -6
  198. data/doc/app/classes/Page.html +185 -185
  199. data/doc/app/classes/PagePartial.html +18 -18
  200. data/doc/app/classes/PageRoute.html +48 -48
  201. data/doc/app/classes/PageTemplate.html +60 -78
  202. data/doc/app/classes/Portlet.html +339 -267
  203. data/doc/app/classes/ResetPasswordPortlet.html +169 -0
  204. data/doc/app/classes/Section.html +257 -200
  205. data/doc/app/classes/SectionNode.html +60 -60
  206. data/doc/app/classes/Sequence.html +6 -6
  207. data/doc/app/classes/Site.html +30 -30
  208. data/doc/app/classes/Tag.html +31 -31
  209. data/doc/app/classes/TagCloudPortlet.html +12 -12
  210. data/doc/app/classes/Tagging.html +6 -6
  211. data/doc/app/classes/Task.html +37 -37
  212. data/doc/app/classes/Templates.html +151 -0
  213. data/doc/app/classes/Tests.html +107 -0
  214. data/doc/app/classes/Tests/PretendController.html +275 -0
  215. data/doc/app/classes/User.html +344 -205
  216. data/doc/app/created.rid +1 -1
  217. data/doc/app/files/app/controllers/cms/application_controller_rb.html +1 -1
  218. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +1 -1
  219. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +1 -1
  220. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +1 -1
  221. data/doc/app/files/app/controllers/cms/content_controller_rb.html +1 -1
  222. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +1 -1
  223. data/doc/app/files/app/controllers/cms/error_handling_rb.html +1 -1
  224. data/doc/app/files/app/controllers/cms/links_controller_rb.html +1 -1
  225. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +1 -1
  226. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +1 -1
  227. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +1 -1
  228. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +1 -1
  229. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +1 -1
  230. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +1 -1
  231. data/doc/app/files/app/controllers/cms/users_controller_rb.html +1 -1
  232. data/doc/app/files/app/controllers/tests/pretend_controller_rb.html +112 -0
  233. data/doc/app/files/app/helpers/application_helper_rb.html +5 -1
  234. data/doc/app/files/app/helpers/cms/application_helper_rb.html +1 -1
  235. data/doc/app/files/app/helpers/cms/form_builder_rb.html +8 -1
  236. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +1 -1
  237. data/doc/app/files/app/helpers/cms/page_helper_rb.html +1 -1
  238. data/doc/app/files/app/helpers/cms/rendering_helper_rb.html +111 -0
  239. data/doc/app/files/app/helpers/cms/template_support_rb.html +108 -0
  240. data/doc/app/files/app/models/abstract_file_block_rb.html +1 -1
  241. data/doc/app/files/app/models/attachment_rb.html +2 -2
  242. data/doc/app/files/app/models/connector_rb.html +1 -1
  243. data/doc/app/files/app/models/content_type_rb.html +1 -1
  244. data/doc/app/files/app/models/dynamic_view_rb.html +1 -1
  245. data/doc/app/files/app/models/forgot_password_mailer_rb.html +101 -0
  246. data/doc/app/files/app/models/group_rb.html +10 -1
  247. data/doc/app/files/app/models/guest_user_rb.html +14 -1
  248. data/doc/app/files/app/models/link_rb.html +1 -1
  249. data/doc/app/files/app/models/page_rb.html +1 -1
  250. data/doc/app/files/app/models/page_template_rb.html +1 -1
  251. data/doc/app/files/app/models/portlet_rb.html +1 -1
  252. data/doc/app/files/app/models/section_rb.html +1 -1
  253. data/doc/app/files/app/models/tag_rb.html +1 -1
  254. data/doc/app/files/app/models/task_rb.html +1 -1
  255. data/doc/app/files/app/models/templates_rb.html +108 -0
  256. data/doc/app/files/app/models/user_rb.html +1 -1
  257. data/doc/app/files/app/portlets/forgot_password_portlet_rb.html +108 -0
  258. data/doc/app/files/app/portlets/reset_password_portlet_rb.html +101 -0
  259. data/doc/app/files/doc/README_FOR_APP.html +7 -6
  260. data/doc/app/files/lib/acts_as_list_rb.html +1 -1
  261. data/doc/app/files/lib/browsercms_rb.html +1 -1
  262. data/doc/app/files/lib/cms/acts/content_block_rb.html +1 -1
  263. data/doc/app/files/lib/cms/acts/content_page_rb.html +125 -0
  264. data/doc/app/files/lib/cms/authentication/controller_rb.html +61 -1
  265. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +1 -1
  266. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +1 -1
  267. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +1 -1
  268. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +1 -1
  269. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +1 -1
  270. data/doc/app/files/lib/cms/content_rendering_support_rb.html +108 -0
  271. data/doc/app/files/lib/cms/domain_support_rb.html +108 -0
  272. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +1 -1
  273. data/doc/app/files/lib/cms/init_rb.html +8 -1
  274. data/doc/app/files/lib/cms/routes_rb.html +1 -1
  275. data/doc/app/files/lib/cms/version_rb.html +107 -0
  276. data/doc/app/files/lib/command_line_rb.html +101 -0
  277. data/doc/app/fr_class_index.html +13 -0
  278. data/doc/app/fr_file_index.html +12 -0
  279. data/doc/app/fr_method_index.html +761 -712
  280. data/doc/guides/html/authentication.html +201 -0
  281. data/doc/guides/html/build_it_yourself.html +21 -18
  282. data/doc/guides/html/building_modules.html +107 -51
  283. data/doc/guides/html/building_templates.html +507 -0
  284. data/doc/guides/html/content_blocks.html +477 -0
  285. data/doc/guides/html/customizing_browsercms.html +173 -0
  286. data/doc/guides/html/deployment_guide.html +31 -5
  287. data/doc/guides/html/getting_started.html +62 -27
  288. data/doc/guides/html/images/content_blocks/add_field_to_form.png +0 -0
  289. data/doc/guides/html/images/content_blocks/add_second_block.png +0 -0
  290. data/doc/guides/html/images/nfl_sitemap.png +0 -0
  291. data/doc/guides/html/index.html +31 -22
  292. data/doc/guides/html/installing_modules.html +25 -17
  293. data/doc/guides/html/portlets.html +238 -0
  294. data/doc/guides/html/user_guide.html +11 -2
  295. data/doc/guides/html/{designer_guide.html → writing_guides.html} +21 -20
  296. data/lib/cms/acts/content_page.rb +69 -0
  297. data/lib/cms/authentication/controller.rb +1 -1
  298. data/lib/cms/behaviors/rendering.rb +9 -2
  299. data/lib/cms/behaviors/versioning.rb +1 -1
  300. data/lib/cms/content_rendering_support.rb +96 -0
  301. data/lib/cms/domain_support.rb +20 -0
  302. data/lib/cms/init.rb +22 -5
  303. data/lib/cms/version.rb +6 -0
  304. data/lib/command_line.rb +39 -0
  305. data/lib/tasks/cms.rake +4 -2
  306. data/public/bcms/ckeditor/ckeditor.js +108 -0
  307. data/public/bcms/ckeditor/config.js +18 -0
  308. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  309. data/public/bcms/ckeditor/core/ajax.js +143 -0
  310. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  311. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  312. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  313. data/public/bcms/ckeditor/core/command.js +70 -0
  314. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  315. data/public/bcms/ckeditor/core/config.js +287 -0
  316. data/public/bcms/ckeditor/core/dom.js +21 -0
  317. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  318. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  319. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  320. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  321. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  322. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  323. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  324. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  325. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  326. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  327. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  328. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  329. data/public/bcms/ckeditor/core/dtd.js +200 -0
  330. data/public/bcms/ckeditor/core/editor.js +650 -0
  331. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  332. data/public/bcms/ckeditor/core/env.js +219 -0
  333. data/public/bcms/ckeditor/core/event.js +335 -0
  334. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  335. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  336. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  337. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  338. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  339. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  340. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  341. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  342. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  343. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  344. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  345. data/public/bcms/ckeditor/core/lang.js +147 -0
  346. data/public/bcms/ckeditor/core/loader.js +238 -0
  347. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  348. data/public/bcms/ckeditor/core/plugins.js +82 -0
  349. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  350. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  351. data/public/bcms/ckeditor/core/skins.js +185 -0
  352. data/public/bcms/ckeditor/core/test.js +184 -0
  353. data/public/bcms/ckeditor/core/themes.js +18 -0
  354. data/public/bcms/ckeditor/core/tools.js +531 -0
  355. data/public/bcms/ckeditor/core/ui.js +106 -0
  356. data/public/bcms/ckeditor/core/xml.js +165 -0
  357. data/public/bcms/ckeditor/editor.js +51 -0
  358. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  359. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  360. data/public/bcms/ckeditor/lang/af.js +674 -0
  361. data/public/bcms/ckeditor/lang/ar.js +674 -0
  362. data/public/bcms/ckeditor/lang/bg.js +674 -0
  363. data/public/bcms/ckeditor/lang/bn.js +674 -0
  364. data/public/bcms/ckeditor/lang/bs.js +674 -0
  365. data/public/bcms/ckeditor/lang/ca.js +674 -0
  366. data/public/bcms/ckeditor/lang/cs.js +674 -0
  367. data/public/bcms/ckeditor/lang/da.js +674 -0
  368. data/public/bcms/ckeditor/lang/de.js +674 -0
  369. data/public/bcms/ckeditor/lang/el.js +674 -0
  370. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  371. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  372. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  373. data/public/bcms/ckeditor/lang/en.js +674 -0
  374. data/public/bcms/ckeditor/lang/eo.js +674 -0
  375. data/public/bcms/ckeditor/lang/es.js +674 -0
  376. data/public/bcms/ckeditor/lang/et.js +674 -0
  377. data/public/bcms/ckeditor/lang/eu.js +674 -0
  378. data/public/bcms/ckeditor/lang/fa.js +674 -0
  379. data/public/bcms/ckeditor/lang/fi.js +674 -0
  380. data/public/bcms/ckeditor/lang/fo.js +674 -0
  381. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  382. data/public/bcms/ckeditor/lang/fr.js +674 -0
  383. data/public/bcms/ckeditor/lang/gl.js +674 -0
  384. data/public/bcms/ckeditor/lang/gu.js +674 -0
  385. data/public/bcms/ckeditor/lang/he.js +674 -0
  386. data/public/bcms/ckeditor/lang/hi.js +674 -0
  387. data/public/bcms/ckeditor/lang/hr.js +674 -0
  388. data/public/bcms/ckeditor/lang/hu.js +674 -0
  389. data/public/bcms/ckeditor/lang/is.js +674 -0
  390. data/public/bcms/ckeditor/lang/it.js +674 -0
  391. data/public/bcms/ckeditor/lang/ja.js +674 -0
  392. data/public/bcms/ckeditor/lang/km.js +674 -0
  393. data/public/bcms/ckeditor/lang/ko.js +674 -0
  394. data/public/bcms/ckeditor/lang/lt.js +674 -0
  395. data/public/bcms/ckeditor/lang/lv.js +674 -0
  396. data/public/bcms/ckeditor/lang/mn.js +674 -0
  397. data/public/bcms/ckeditor/lang/ms.js +674 -0
  398. data/public/bcms/ckeditor/lang/nb.js +674 -0
  399. data/public/bcms/ckeditor/lang/nl.js +674 -0
  400. data/public/bcms/ckeditor/lang/no.js +674 -0
  401. data/public/bcms/ckeditor/lang/pl.js +674 -0
  402. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  403. data/public/bcms/ckeditor/lang/pt.js +674 -0
  404. data/public/bcms/ckeditor/lang/ro.js +674 -0
  405. data/public/bcms/ckeditor/lang/ru.js +674 -0
  406. data/public/bcms/ckeditor/lang/sk.js +674 -0
  407. data/public/bcms/ckeditor/lang/sl.js +674 -0
  408. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  409. data/public/bcms/ckeditor/lang/sr.js +674 -0
  410. data/public/bcms/ckeditor/lang/sv.js +674 -0
  411. data/public/bcms/ckeditor/lang/th.js +674 -0
  412. data/public/bcms/ckeditor/lang/tr.js +674 -0
  413. data/public/bcms/ckeditor/lang/uk.js +674 -0
  414. data/public/bcms/ckeditor/lang/vi.js +674 -0
  415. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  416. data/public/bcms/ckeditor/lang/zh.js +674 -0
  417. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  418. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  419. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  420. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  421. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  422. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  423. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  424. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  425. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  426. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  427. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  428. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  429. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  430. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  431. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  432. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  433. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  434. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  435. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  436. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  437. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  438. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  439. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  440. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  441. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  442. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  443. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  444. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  445. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  446. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  447. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  448. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  449. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  450. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  451. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  452. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  453. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  454. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  455. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  456. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  457. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  458. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  459. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  460. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  461. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  462. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  463. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  464. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  465. data/public/{fckeditor/editor → bcms/ckeditor/plugins/link}/images/anchor.gif +0 -0
  466. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  467. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  468. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  469. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  470. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  471. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  472. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  473. data/public/{fckeditor/editor/css/images/fck_pagebreak.gif → bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif} +0 -0
  474. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  475. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  476. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  477. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  478. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  479. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  480. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  481. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  482. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  483. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  484. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  485. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  486. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  487. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  488. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  489. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  490. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  491. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  492. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_address.png +0 -0
  493. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_blockquote.png +0 -0
  494. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_div.png +0 -0
  495. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h1.png +0 -0
  496. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h2.png +0 -0
  497. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h3.png +0 -0
  498. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h4.png +0 -0
  499. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h5.png +0 -0
  500. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h6.png +0 -0
  501. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_p.png +0 -0
  502. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_pre.png +0 -0
  503. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  504. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  505. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  506. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  507. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  508. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  509. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  510. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  511. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  512. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  513. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  514. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  515. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  516. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  517. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  518. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  519. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  520. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  521. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  522. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  523. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  524. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  525. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  526. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  527. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  528. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  529. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  530. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  531. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  532. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  533. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  534. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  535. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  536. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  537. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  538. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  539. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  540. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  541. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template1.gif +0 -0
  542. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template2.gif +0 -0
  543. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template3.gif +0 -0
  544. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  545. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  546. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  547. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  548. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  549. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  550. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  551. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  552. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  553. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  554. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  555. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  556. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  557. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  558. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  559. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  560. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  561. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  562. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  563. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  564. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  565. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  566. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  567. data/public/{fckeditor/editor/skins/default/images/dialog.sides.gif → bcms/ckeditor/skins/kama/images/dialog_sides.gif} +0 -0
  568. data/public/{fckeditor/editor/skins/default/images/dialog.sides.png → bcms/ckeditor/skins/kama/images/dialog_sides.png} +0 -0
  569. data/public/{fckeditor/editor/skins/default/images/dialog.sides.rtl.png → bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png} +0 -0
  570. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  571. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  572. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  573. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  574. data/public/{fckeditor/editor/skins/default/images/toolbar.start.gif → bcms/ckeditor/skins/kama/images/toolbar_start.gif} +0 -0
  575. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  576. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  577. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  578. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  579. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  580. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  581. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  582. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  583. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  584. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  585. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  586. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  587. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  588. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  589. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  590. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  591. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  592. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  593. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  594. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  595. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  596. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  597. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  598. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  599. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  600. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  601. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  602. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  603. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  604. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  605. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  606. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  607. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  608. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  609. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  610. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  611. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  612. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  613. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  614. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  615. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  616. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  617. data/public/{fckeditor/editor/skins/silver/images/toolbar.start.gif → bcms/ckeditor/skins/v2/images/toolbar_start.gif} +0 -0
  618. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  619. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  620. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  621. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  622. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  623. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  624. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  625. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  626. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  627. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  628. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  629. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  630. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  631. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  632. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  633. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  634. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  635. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  636. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  637. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  638. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  639. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  640. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  641. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  642. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  643. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  644. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  645. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  646. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  647. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  648. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  649. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  650. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  651. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  652. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  653. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  654. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  655. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  656. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  657. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  658. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  659. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  660. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  661. data/public/bcms/ckeditor/tests/test.css +81 -0
  662. data/public/bcms/ckeditor/tests/test.js +93 -0
  663. data/public/bcms/ckeditor/tests/testall.html +114 -0
  664. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  665. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  666. data/public/stylesheets/cms/application.css +2 -2
  667. data/public/stylesheets/cms/form_layout.css +2 -6
  668. data/rails_generators/content_block/templates/migration.rb +1 -1
  669. data/rails_generators/portlet/USAGE +3 -1
  670. data/rails_generators/portlet/portlet_generator.rb +4 -0
  671. data/rails_generators/portlet/templates/_form.html.erb +1 -2
  672. data/rails_generators/portlet/templates/portlet.rb +4 -1
  673. data/rails_generators/portlet/templates/portlet_helper.rb +5 -0
  674. data/rails_generators/template/USAGE +10 -0
  675. data/rails_generators/template/template_generator.rb +18 -0
  676. data/rails_generators/template/templates/template.erb +3 -0
  677. data/templates/blank.rb +11 -1
  678. data/templates/demo.rb +11 -1
  679. data/templates/module.rb +15 -4
  680. data/test/functional/cms/dashboard_controller_test.rb +1 -2
  681. data/test/functional/tests/pretend_controller_test.rb +54 -0
  682. data/test/integration/cms/ckeditor_test.rb +27 -0
  683. data/test/integration/cms/password_management_test.rb +56 -0
  684. data/test/test_helper.rb +14 -0
  685. data/test/unit/helpers/form_builder_test.rb +21 -2
  686. data/test/unit/helpers/menu_helper_test.rb +164 -142
  687. data/test/unit/helpers/page_helper_test.rb +11 -3
  688. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  689. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  690. data/test/unit/lib/cms_domain_support_test.rb +43 -0
  691. data/test/unit/lib/command_line_test.rb +70 -0
  692. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  693. data/test/unit/models/content_type_test.rb +19 -7
  694. data/test/unit/models/page_template_test.rb +4 -1
  695. data/test/unit/models/portlet_test.rb +49 -1
  696. data/test/unit/models/sections_test.rb +41 -2
  697. data/test/unit/models/task_test.rb +37 -22
  698. data/test/unit/models/user_test.rb +158 -55
  699. metadata +490 -378
  700. data/doc/guides/html/developer_guide.html +0 -308
  701. data/public/fckeditor/editor/css/behaviors/disablehandles.htc +0 -15
  702. data/public/fckeditor/editor/css/behaviors/showtableborders.htc +0 -36
  703. data/public/fckeditor/editor/css/fck_editorarea.css +0 -110
  704. data/public/fckeditor/editor/css/fck_internal.css +0 -199
  705. data/public/fckeditor/editor/css/fck_showtableborders_gecko.css +0 -49
  706. data/public/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  707. data/public/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  708. data/public/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  709. data/public/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  710. data/public/fckeditor/editor/dialog/common/fck_dialog_common.css +0 -85
  711. data/public/fckeditor/editor/dialog/common/fck_dialog_common.js +0 -311
  712. data/public/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  713. data/public/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  714. data/public/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  715. data/public/fckeditor/editor/dialog/fck_about.html +0 -161
  716. data/public/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  717. data/public/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  718. data/public/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  719. data/public/fckeditor/editor/dialog/fck_anchor.html +0 -220
  720. data/public/fckeditor/editor/dialog/fck_button.html +0 -104
  721. data/public/fckeditor/editor/dialog/fck_checkbox.html +0 -104
  722. data/public/fckeditor/editor/dialog/fck_colorselector.html +0 -172
  723. data/public/fckeditor/editor/dialog/fck_div.html +0 -364
  724. data/public/fckeditor/editor/dialog/fck_docprops.html +0 -600
  725. data/public/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +0 -113
  726. data/public/fckeditor/editor/dialog/fck_flash.html +0 -152
  727. data/public/fckeditor/editor/dialog/fck_flash/fck_flash.js +0 -300
  728. data/public/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +0 -50
  729. data/public/fckeditor/editor/dialog/fck_form.html +0 -109
  730. data/public/fckeditor/editor/dialog/fck_hiddenfield.html +0 -115
  731. data/public/fckeditor/editor/dialog/fck_image.html +0 -258
  732. data/public/fckeditor/editor/dialog/fck_image/fck_image.js +0 -512
  733. data/public/fckeditor/editor/dialog/fck_image/fck_image_preview.html +0 -72
  734. data/public/fckeditor/editor/dialog/fck_link.html +0 -295
  735. data/public/fckeditor/editor/dialog/fck_link/fck_link.js +0 -893
  736. data/public/fckeditor/editor/dialog/fck_listprop.html +0 -120
  737. data/public/fckeditor/editor/dialog/fck_paste.html +0 -346
  738. data/public/fckeditor/editor/dialog/fck_radiobutton.html +0 -104
  739. data/public/fckeditor/editor/dialog/fck_replace.html +0 -648
  740. data/public/fckeditor/editor/dialog/fck_select.html +0 -180
  741. data/public/fckeditor/editor/dialog/fck_select/fck_select.js +0 -194
  742. data/public/fckeditor/editor/dialog/fck_smiley.html +0 -111
  743. data/public/fckeditor/editor/dialog/fck_source.html +0 -68
  744. data/public/fckeditor/editor/dialog/fck_specialchar.html +0 -121
  745. data/public/fckeditor/editor/dialog/fck_spellerpages.html +0 -70
  746. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  747. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +0 -87
  748. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +0 -153
  749. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +0 -148
  750. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +0 -199
  751. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +0 -181
  752. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +0 -461
  753. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +0 -71
  754. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +0 -49
  755. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +0 -272
  756. data/public/fckeditor/editor/dialog/fck_table.html +0 -298
  757. data/public/fckeditor/editor/dialog/fck_tablecell.html +0 -257
  758. data/public/fckeditor/editor/dialog/fck_template.html +0 -242
  759. data/public/fckeditor/editor/dialog/fck_textarea.html +0 -94
  760. data/public/fckeditor/editor/dialog/fck_textfield.html +0 -136
  761. data/public/fckeditor/editor/dtd/fck_dtd_test.html +0 -41
  762. data/public/fckeditor/editor/dtd/fck_xhtml10strict.js +0 -116
  763. data/public/fckeditor/editor/dtd/fck_xhtml10transitional.js +0 -140
  764. data/public/fckeditor/editor/fckdebug.html +0 -153
  765. data/public/fckeditor/editor/fckdialog.html +0 -812
  766. data/public/fckeditor/editor/fckeditor.html +0 -317
  767. data/public/fckeditor/editor/fckeditor.original.html +0 -424
  768. data/public/fckeditor/editor/filemanager/browser/default/browser.css +0 -87
  769. data/public/fckeditor/editor/filemanager/browser/default/browser.html +0 -200
  770. data/public/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +0 -95
  771. data/public/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +0 -114
  772. data/public/fckeditor/editor/filemanager/browser/default/frmfolders.html +0 -198
  773. data/public/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +0 -169
  774. data/public/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +0 -68
  775. data/public/fckeditor/editor/filemanager/browser/default/frmupload.html +0 -115
  776. data/public/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  777. data/public/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  778. data/public/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  779. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  780. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  781. data/public/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  782. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  783. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  784. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  785. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  786. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  787. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  788. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  789. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  790. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  791. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  792. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  793. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  794. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  795. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  796. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  797. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  798. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  799. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  800. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  801. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  802. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  803. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  804. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  805. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  806. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  807. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  808. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  809. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  810. data/public/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  811. data/public/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  812. data/public/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  813. data/public/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  814. data/public/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  815. data/public/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  816. data/public/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  817. data/public/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  818. data/public/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  819. data/public/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  820. data/public/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  821. data/public/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  822. data/public/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  823. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  824. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  825. data/public/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  826. data/public/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  827. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  828. data/public/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  829. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  830. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  831. data/public/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  832. data/public/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  833. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  834. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  835. data/public/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  836. data/public/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  837. data/public/fckeditor/editor/filemanager/browser/default/js/common.js +0 -88
  838. data/public/fckeditor/editor/filemanager/browser/default/js/fckxml.js +0 -147
  839. data/public/fckeditor/editor/images/arrow_ltr.gif +0 -0
  840. data/public/fckeditor/editor/images/arrow_rtl.gif +0 -0
  841. data/public/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  842. data/public/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  843. data/public/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  844. data/public/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  845. data/public/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  846. data/public/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  847. data/public/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  848. data/public/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  849. data/public/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  850. data/public/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  851. data/public/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  852. data/public/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  853. data/public/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  854. data/public/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  855. data/public/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  856. data/public/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  857. data/public/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  858. data/public/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  859. data/public/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  860. data/public/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  861. data/public/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  862. data/public/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  863. data/public/fckeditor/editor/images/spacer.gif +0 -0
  864. data/public/fckeditor/editor/js/fckadobeair.js +0 -176
  865. data/public/fckeditor/editor/js/fckeditorcode_gecko.js +0 -108
  866. data/public/fckeditor/editor/js/fckeditorcode_ie.js +0 -109
  867. data/public/fckeditor/editor/lang/_translationstatus.txt +0 -78
  868. data/public/fckeditor/editor/lang/af.js +0 -526
  869. data/public/fckeditor/editor/lang/ar.js +0 -526
  870. data/public/fckeditor/editor/lang/bg.js +0 -526
  871. data/public/fckeditor/editor/lang/bn.js +0 -526
  872. data/public/fckeditor/editor/lang/bs.js +0 -526
  873. data/public/fckeditor/editor/lang/ca.js +0 -526
  874. data/public/fckeditor/editor/lang/cs.js +0 -526
  875. data/public/fckeditor/editor/lang/da.js +0 -526
  876. data/public/fckeditor/editor/lang/de.js +0 -526
  877. data/public/fckeditor/editor/lang/el.js +0 -526
  878. data/public/fckeditor/editor/lang/en-au.js +0 -526
  879. data/public/fckeditor/editor/lang/en-ca.js +0 -526
  880. data/public/fckeditor/editor/lang/en-uk.js +0 -526
  881. data/public/fckeditor/editor/lang/en.js +0 -526
  882. data/public/fckeditor/editor/lang/eo.js +0 -526
  883. data/public/fckeditor/editor/lang/es.js +0 -526
  884. data/public/fckeditor/editor/lang/et.js +0 -526
  885. data/public/fckeditor/editor/lang/eu.js +0 -527
  886. data/public/fckeditor/editor/lang/fa.js +0 -526
  887. data/public/fckeditor/editor/lang/fi.js +0 -526
  888. data/public/fckeditor/editor/lang/fo.js +0 -526
  889. data/public/fckeditor/editor/lang/fr-ca.js +0 -526
  890. data/public/fckeditor/editor/lang/fr.js +0 -526
  891. data/public/fckeditor/editor/lang/gl.js +0 -526
  892. data/public/fckeditor/editor/lang/gu.js +0 -526
  893. data/public/fckeditor/editor/lang/he.js +0 -526
  894. data/public/fckeditor/editor/lang/hi.js +0 -526
  895. data/public/fckeditor/editor/lang/hr.js +0 -526
  896. data/public/fckeditor/editor/lang/hu.js +0 -526
  897. data/public/fckeditor/editor/lang/it.js +0 -526
  898. data/public/fckeditor/editor/lang/ja.js +0 -526
  899. data/public/fckeditor/editor/lang/km.js +0 -526
  900. data/public/fckeditor/editor/lang/ko.js +0 -526
  901. data/public/fckeditor/editor/lang/lt.js +0 -526
  902. data/public/fckeditor/editor/lang/lv.js +0 -526
  903. data/public/fckeditor/editor/lang/mn.js +0 -526
  904. data/public/fckeditor/editor/lang/ms.js +0 -526
  905. data/public/fckeditor/editor/lang/nb.js +0 -526
  906. data/public/fckeditor/editor/lang/nl.js +0 -526
  907. data/public/fckeditor/editor/lang/no.js +0 -526
  908. data/public/fckeditor/editor/lang/pl.js +0 -526
  909. data/public/fckeditor/editor/lang/pt-br.js +0 -526
  910. data/public/fckeditor/editor/lang/pt.js +0 -526
  911. data/public/fckeditor/editor/lang/ro.js +0 -526
  912. data/public/fckeditor/editor/lang/ru.js +0 -526
  913. data/public/fckeditor/editor/lang/sk.js +0 -526
  914. data/public/fckeditor/editor/lang/sl.js +0 -526
  915. data/public/fckeditor/editor/lang/sr-latn.js +0 -526
  916. data/public/fckeditor/editor/lang/sr.js +0 -526
  917. data/public/fckeditor/editor/lang/sv.js +0 -526
  918. data/public/fckeditor/editor/lang/th.js +0 -526
  919. data/public/fckeditor/editor/lang/tr.js +0 -526
  920. data/public/fckeditor/editor/lang/uk.js +0 -526
  921. data/public/fckeditor/editor/lang/vi.js +0 -526
  922. data/public/fckeditor/editor/lang/zh-cn.js +0 -526
  923. data/public/fckeditor/editor/lang/zh.js +0 -526
  924. data/public/fckeditor/editor/plugins/autogrow/fckplugin.js +0 -99
  925. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +0 -26
  926. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.html +0 -67
  927. data/public/fckeditor/editor/plugins/bbcode/fckplugin.js +0 -123
  928. data/public/fckeditor/editor/plugins/dragresizetable/fckplugin.js +0 -524
  929. data/public/fckeditor/editor/plugins/placeholder/fck_placeholder.html +0 -105
  930. data/public/fckeditor/editor/plugins/placeholder/fckplugin.js +0 -187
  931. data/public/fckeditor/editor/plugins/placeholder/lang/de.js +0 -27
  932. data/public/fckeditor/editor/plugins/placeholder/lang/en.js +0 -27
  933. data/public/fckeditor/editor/plugins/placeholder/lang/es.js +0 -27
  934. data/public/fckeditor/editor/plugins/placeholder/lang/fr.js +0 -27
  935. data/public/fckeditor/editor/plugins/placeholder/lang/it.js +0 -27
  936. data/public/fckeditor/editor/plugins/placeholder/lang/pl.js +0 -27
  937. data/public/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  938. data/public/fckeditor/editor/plugins/simplecommands/fckplugin.js +0 -29
  939. data/public/fckeditor/editor/plugins/tablecommands/fckplugin.js +0 -33
  940. data/public/fckeditor/editor/skins/_fckviewstrips.html +0 -121
  941. data/public/fckeditor/editor/skins/default/fck_dialog.css +0 -402
  942. data/public/fckeditor/editor/skins/default/fck_dialog_ie6.js +0 -110
  943. data/public/fckeditor/editor/skins/default/fck_editor.css +0 -464
  944. data/public/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  945. data/public/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  946. data/public/fckeditor/editor/skins/default/images/sprites.png +0 -0
  947. data/public/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  948. data/public/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  949. data/public/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  950. data/public/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  951. data/public/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  952. data/public/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  953. data/public/fckeditor/editor/skins/office2003/fck_dialog.css +0 -402
  954. data/public/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +0 -110
  955. data/public/fckeditor/editor/skins/office2003/fck_editor.css +0 -476
  956. data/public/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  957. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  958. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  959. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  960. data/public/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  961. data/public/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  962. data/public/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  963. data/public/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  964. data/public/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  965. data/public/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  966. data/public/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  967. data/public/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  968. data/public/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  969. data/public/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  970. data/public/fckeditor/editor/skins/silver/fck_dialog.css +0 -402
  971. data/public/fckeditor/editor/skins/silver/fck_dialog_ie6.js +0 -110
  972. data/public/fckeditor/editor/skins/silver/fck_editor.css +0 -473
  973. data/public/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  974. data/public/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  975. data/public/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  976. data/public/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  977. data/public/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  978. data/public/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  979. data/public/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  980. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  981. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  982. data/public/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  983. data/public/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  984. data/public/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  985. data/public/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  986. data/public/fckeditor/fckconfig.js +0 -364
  987. data/public/fckeditor/fckdebug.html +0 -153
  988. data/public/fckeditor/fckdialog.html +0 -812
  989. data/public/fckeditor/fckeditor.html +0 -317
  990. data/public/fckeditor/fckeditor.js +0 -328
  991. data/public/fckeditor/fckeditor.original.html +0 -424
  992. data/public/fckeditor/fckpackager.xml +0 -262
  993. data/public/fckeditor/fckstyles.xml +0 -111
  994. data/public/fckeditor/fcktemplates.xml +0 -103
  995. data/public/javascripts/cms/editor.js +0 -56
@@ -0,0 +1,185 @@
1
+ /*
2
+ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.skins} object, which is used to
8
+ * manage skins loading.
9
+ */
10
+
11
+ /**
12
+ * Manages skins loading.
13
+ * @namespace
14
+ * @example
15
+ */
16
+ CKEDITOR.skins = (function()
17
+ {
18
+ // Holds the list of loaded skins.
19
+ var loaded = {};
20
+ var preloaded = {};
21
+ var paths = {};
22
+
23
+ var loadedPart = function( skinName, part, callback )
24
+ {
25
+ // Get the skin definition.
26
+ var skinDefinition = loaded[ skinName ];
27
+
28
+ var appendSkinPath = function( fileNames )
29
+ {
30
+ for ( var n = 0 ; n < fileNames.length ; n++ )
31
+ {
32
+ fileNames[ n ] = CKEDITOR.getUrl( paths[ skinName ] + fileNames[ n ] );
33
+ }
34
+ };
35
+
36
+ // Check if we need to preload images from it.
37
+ if ( !preloaded[ skinName ] )
38
+ {
39
+ var preload = skinDefinition.preload;
40
+ if ( preload && preload.length > 0 )
41
+ {
42
+ appendSkinPath( preload );
43
+ CKEDITOR.imageCacher.load( preload, function()
44
+ {
45
+ preloaded[ skinName ] = 1;
46
+ loadedPart( skinName, part, callback );
47
+ } );
48
+ return;
49
+ }
50
+
51
+ // Mark it as preloaded.
52
+ preloaded[ skinName ] = 1;
53
+ }
54
+
55
+ // Get the part definition.
56
+ part = skinDefinition[ part ];
57
+ var partIsLoaded = !part || !!part._isLoaded;
58
+
59
+ // Call the callback immediately if already loaded.
60
+ if ( partIsLoaded )
61
+ callback && callback();
62
+ else
63
+ {
64
+ // Put the callback in a queue.
65
+ var pending = part._pending || ( part._pending = [] );
66
+ pending.push( callback );
67
+
68
+ // We may have more than one skin part load request. Just the first
69
+ // one must do the loading job.
70
+ if ( pending.length > 1 )
71
+ return;
72
+
73
+ // Check whether the "css" and "js" properties have been defined
74
+ // for that part.
75
+ var cssIsLoaded = !part.css || !part.css.length;
76
+ var jsIsLoaded = !part.js || !part.js.length;
77
+
78
+ // This is the function that will trigger the callback calls on
79
+ // load.
80
+ var checkIsLoaded = function()
81
+ {
82
+ if ( cssIsLoaded && jsIsLoaded )
83
+ {
84
+ // Mark the part as loaded.
85
+ part._isLoaded = 1;
86
+
87
+ // Call all pending callbacks.
88
+ for ( var i = 0 ; i < pending.length ; i++ )
89
+ {
90
+ if ( pending[ i ] )
91
+ pending[ i ]();
92
+ }
93
+ }
94
+ };
95
+
96
+ // Load the "css" pieces.
97
+ if ( !cssIsLoaded )
98
+ {
99
+ appendSkinPath( part.css );
100
+
101
+ for ( var c = 0 ; c < part.css.length ; c++ )
102
+ CKEDITOR.document.appendStyleSheet( part.css[ c ] );
103
+
104
+ cssIsLoaded = 1;
105
+ }
106
+
107
+ // Load the "js" pieces.
108
+ if ( !jsIsLoaded )
109
+ {
110
+ appendSkinPath( part.js );
111
+ CKEDITOR.scriptLoader.load( part.js, function()
112
+ {
113
+ jsIsLoaded = 1;
114
+ checkIsLoaded();
115
+ });
116
+ }
117
+
118
+ // We may have nothing to load, so check it immediately.
119
+ checkIsLoaded();
120
+ }
121
+ };
122
+
123
+ return /** @lends CKEDITOR.skins */ {
124
+
125
+ /**
126
+ * Registers a skin definition.
127
+ * @param {String} skinName The skin name.
128
+ * @param {Object} skinDefinition The skin definition.
129
+ * @example
130
+ */
131
+ add : function( skinName, skinDefinition )
132
+ {
133
+ loaded[ skinName ] = skinDefinition;
134
+
135
+ skinDefinition.skinPath = paths[ skinName ]
136
+ || ( paths[ skinName ] =
137
+ CKEDITOR.getUrl(
138
+ 'skins/' + skinName + '/' ) );
139
+ },
140
+
141
+ /**
142
+ * Loads a skin part. Skins are defined in parts, which are basically
143
+ * separated CSS files. This function is mainly used by the core code and
144
+ * should not have much use out of it.
145
+ * @param {String} skinName The name of the skin to be loaded.
146
+ * @param {String} skinPart The skin part to be loaded. Common skin parts
147
+ * are "editor" and "dialog".
148
+ * @param {Function} [callback] A function to be called once the skin
149
+ * part files are loaded.
150
+ * @example
151
+ */
152
+ load : function( editor, skinPart, callback )
153
+ {
154
+ var skinName = editor.skinName,
155
+ skinPath = editor.skinPath;
156
+
157
+ if ( loaded[ skinName ] )
158
+ {
159
+ loadedPart( skinName, skinPart, callback );
160
+
161
+ // Get the skin definition.
162
+ var skinDefinition = loaded[ skinName ];
163
+
164
+ // Trigger init function if any.
165
+ if ( skinDefinition.init )
166
+ skinDefinition.init( editor );
167
+ }
168
+ else
169
+ {
170
+ paths[ skinName ] = skinPath;
171
+ CKEDITOR.scriptLoader.load( skinPath + 'skin.js', function()
172
+ {
173
+ loadedPart( skinName, skinPart, callback );
174
+
175
+ // Get the skin definition.
176
+ var skinDefinition = loaded[ skinName ];
177
+
178
+ // Trigger init function if any.
179
+ if ( skinDefinition.init )
180
+ skinDefinition.init( editor );
181
+ });
182
+ }
183
+ }
184
+ };
185
+ })();
@@ -0,0 +1,184 @@
1
+ /*
2
+ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.test} object, which contains
8
+ * functions used at our testing environment.
9
+ */
10
+
11
+ /*jsl:import ../tests/yuitest.js*/
12
+
13
+ /**
14
+ * Contains functions used at our testing environment. Currently,
15
+ * our testing system is based on the
16
+ * <a href="http://developer.yahoo.com/yui/yuitest/">YUI Test</a>.
17
+ * @namespace
18
+ * @example
19
+ */
20
+ CKEDITOR.test =
21
+ {
22
+ /**
23
+ * The assertion namespace, containing all assertion functions. Currently,
24
+ * this is an alias for
25
+ * <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Assert.html">YAHOO.util.Assert</a>.
26
+ * @example
27
+ * <b>CKEDITOR.test.assert</b>.areEqual( '10', 10 ); // "true"
28
+ * <b>CKEDITOR.test.assert</b>.areSame( '10', 10 ); // "false"
29
+ * <b>CKEDITOR.test.assert</b>.isUndefined( window.test ); // "true"
30
+ */
31
+ assert : YAHOO.util.Assert,
32
+
33
+ runner : YAHOO.tool.TestRunner,
34
+
35
+ /**
36
+ * Adds a test case to the test runner.
37
+ * @param {Object} testCase The test case object. See other tests for
38
+ * examples.
39
+ * @example
40
+ * <b>CKEDITOR.test.addTestCase</b>((function()
41
+ * {
42
+ * // Local reference to the "assert" object.
43
+ * var assert = CKEDITOR.test.assert;
44
+ *
45
+ * return {
46
+ * test_example : function()
47
+ * {
48
+ * assert.areSame( '10', 10 ); // FAIL
49
+ * }
50
+ * };
51
+ * })());
52
+ */
53
+ addTestCase : function( testCase )
54
+ {
55
+ YAHOO.tool.TestRunner.add( new YAHOO.tool.TestCase( testCase ) );
56
+ },
57
+
58
+ /**
59
+ * Gets the inner HTML of an element, for testing purposes.
60
+ * @param {Boolean} stripLineBreaks Assign 'false' to avoid trimming line-breaks.
61
+ */
62
+ getInnerHtml : function( elementOrId , stripLineBreaks )
63
+ {
64
+ var html;
65
+
66
+ if ( typeof elementOrId == 'string' )
67
+ html = document.getElementById( elementOrId ).innerHTML;
68
+ else if ( elementOrId.getHtml )
69
+ html = elementOrId.getHtml();
70
+ else
71
+ html = elementOrId.innerHTML // retrieve from innerHTML
72
+ || elementOrId.value; // retrieve from value
73
+
74
+ return CKEDITOR.test.fixHtml( html, stripLineBreaks );
75
+ },
76
+
77
+ fixHtml : function( html, stripLineBreaks )
78
+ {
79
+ html = html.toLowerCase();
80
+
81
+ if ( stripLineBreaks !== false )
82
+ html = html.replace( /[\n\r]/g, '' );
83
+ else
84
+ html = html.replace( /\r/g, '' ); // Normalize CRLF.
85
+
86
+ function sorter( a, b )
87
+ {
88
+ var nameA = a[ 0 ];
89
+ var nameB = b[ 0 ];
90
+ return nameA < nameB ? -1 : nameA > nameB ? 1 : 0;
91
+ }
92
+
93
+ html = html.replace( /<\w[^>]*/g, function( match )
94
+ {
95
+ var attribs = [];
96
+ var hasClass;
97
+
98
+ match = match.replace( /\s([^\s=]+)=((?:"[^"]*")|(?:'[^']*')|(?:[^\s]+))/g, function( match, attName, attValue )
99
+ {
100
+ if ( attName == 'style' )
101
+ {
102
+ // Reorganize the style rules so they are sorted by name.
103
+
104
+ var rules = [];
105
+
106
+ // Push all rules into an Array.
107
+ attValue.replace( /(?:"| |;|^ )\s*([^ :]+?)\s*:\s*([^;"]+?)\s*(?=;|"|$)/g, function( match, name, value )
108
+ {
109
+ rules.push( [ name, value ] );
110
+ });
111
+
112
+ // Sort the Array.
113
+ rules.sort( sorter );
114
+
115
+ // Transform each rule entry into a string name:value.
116
+ for ( var i = 0 ; i < rules.length ; i++ )
117
+ rules[ i ] = rules[ i ].join( ':' );
118
+
119
+ // Join all rules with commas, removing spaces and adding an extra comma to the end.
120
+ attValue = '"' + rules && ( rules.join( ';' ).replace( /\s+/g, '' ) + ';' );
121
+ }
122
+
123
+ // IE may have 'class' more than once.
124
+ if ( attName == 'class' )
125
+ {
126
+ if ( hasClass )
127
+ return '';
128
+
129
+ hasClass = true;
130
+ }
131
+
132
+ if ( attName != '_cke_expando' )
133
+ attribs.push( [ attName, attValue ] );
134
+
135
+ return '';
136
+ } );
137
+
138
+ attribs.sort( sorter );
139
+
140
+ var ret = match.replace( /\s{2,}/g, ' ' );
141
+
142
+ for ( var i = 0 ; i < attribs.length ; i++ )
143
+ {
144
+ ret += ' ' + attribs[i][0] + '=';
145
+ ret += (/^["']/).test( attribs[i][1] ) ? attribs[i][1] : '"' + attribs[i][1] + '"';
146
+ }
147
+
148
+ return ret;
149
+ } );
150
+
151
+ return html;
152
+ },
153
+
154
+ /**
155
+ * Wrapper of CKEDITOR.dom.element::getAttribute for style text normalization.
156
+ * @param element
157
+ * @param attrName
158
+ */
159
+ getAttribute : function( element, attrName )
160
+ {
161
+ var retval = element.getAttribute( attrName );
162
+ if ( attrName == 'style' )
163
+ {
164
+ // 1. Lower case property name.
165
+ // 2. Add space after colon.
166
+ // 3. Strip whitepsaces around semicolon.
167
+ // 4. Always end with semicolon
168
+ return retval.replace( /(?:^|;)\s*([A-Z-_]+)(:\s*)/ig,
169
+ function( match, property, colon )
170
+ {
171
+ return property.toLowerCase() + ': ';
172
+ } )
173
+ .replace( /\s+(?:;\s*|$)/g, ';' )
174
+ .replace( /([^;])$/g, '$1;' );
175
+ }
176
+
177
+ return retval;
178
+ },
179
+
180
+ /**
181
+ * Whether control the runner manually instead of running on window onload.
182
+ */
183
+ deferRunner : false
184
+ };
@@ -0,0 +1,18 @@
1
+ /*
2
+ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.themes} object, which is used to
8
+ * manage themes registration and loading.
9
+ */
10
+
11
+ /**
12
+ * Manages themes registration and loading.
13
+ * @namespace
14
+ * @augments CKEDITOR.resourceManager
15
+ * @example
16
+ */
17
+ CKEDITOR.themes = new CKEDITOR.resourceManager(
18
+ 'themes/', 'theme' );
@@ -0,0 +1,531 @@
1
+ /*
2
+ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.tools} object, which contains
8
+ * utility functions.
9
+ */
10
+
11
+ (function()
12
+ {
13
+ var functions = [];
14
+
15
+ /**
16
+ * Utility functions.
17
+ * @namespace
18
+ * @example
19
+ */
20
+ CKEDITOR.tools =
21
+ {
22
+ arrayCompare : function( arrayA, arrayB )
23
+ {
24
+ if ( !arrayA && !arrayB )
25
+ return true;
26
+
27
+ if ( !arrayA || !arrayB || arrayA.length != arrayB.length )
28
+ return false;
29
+
30
+ for ( var i = 0 ; i < arrayA.length ; i++ )
31
+ {
32
+ if ( arrayA[ i ] != arrayB[ i ] )
33
+ return false;
34
+ }
35
+
36
+ return true;
37
+ },
38
+
39
+ /**
40
+ * Creates a deep copy of an object.
41
+ * Attention: there is no support for recursive references.
42
+ * @param {Object} object The object to be cloned.
43
+ * @returns {Object} The object clone.
44
+ * @example
45
+ * var obj =
46
+ * {
47
+ * name : 'John',
48
+ * cars :
49
+ * {
50
+ * Mercedes : { color : 'blue' },
51
+ * Porsche : { color : 'red' }
52
+ * }
53
+ * };
54
+ * var clone = CKEDITOR.tools.clone( obj );
55
+ * clone.name = 'Paul';
56
+ * clone.cars.Porsche.color = 'silver';
57
+ * alert( obj.name ); // John
58
+ * alert( clone.name ); // Paul
59
+ * alert( obj.cars.Porsche.color ); // red
60
+ * alert( clone.cars.Porsche.color ); // silver
61
+ */
62
+ clone : function( obj )
63
+ {
64
+ var clone;
65
+
66
+ // Array.
67
+ if ( obj && ( obj instanceof Array ) )
68
+ {
69
+ clone = [];
70
+
71
+ for ( var i = 0 ; i < obj.length ; i++ )
72
+ clone[ i ] = this.clone( obj[ i ] );
73
+
74
+ return clone;
75
+ }
76
+
77
+ // "Static" types.
78
+ if ( obj === null
79
+ || ( typeof( obj ) != 'object' )
80
+ || ( obj instanceof String )
81
+ || ( obj instanceof Number )
82
+ || ( obj instanceof Boolean )
83
+ || ( obj instanceof Date ) )
84
+ {
85
+ return obj;
86
+ }
87
+
88
+ // Objects.
89
+ clone = new obj.constructor();
90
+
91
+ for ( var propertyName in obj )
92
+ {
93
+ var property = obj[ propertyName ];
94
+ clone[ propertyName ] = this.clone( property );
95
+ }
96
+
97
+ return clone;
98
+ },
99
+
100
+ /**
101
+ * Copy the properties from one object to another. By default, properties
102
+ * already present in the target object <strong>are not</strong> overwritten.
103
+ * @param {Object} target The object to be extended.
104
+ * @param {Object} source[,souce(n)] The objects from which copy
105
+ * properties. Any number of objects can be passed to this function.
106
+ * @param {Boolean} [overwrite] If 'true' is specified it indicates that
107
+ * properties already present in the target object could be
108
+ * overwritten by subsequent objects.
109
+ * @param {Object} [properties] Only properties within the specified names
110
+ * list will be received from the source object.
111
+ * @returns {Object} the extended object (target).
112
+ * @example
113
+ * // Create the sample object.
114
+ * var myObject =
115
+ * {
116
+ * prop1 : true
117
+ * };
118
+ *
119
+ * // Extend the above object with two properties.
120
+ * CKEDITOR.tools.extend( myObject,
121
+ * {
122
+ * prop2 : true,
123
+ * prop3 : true
124
+ * } );
125
+ *
126
+ * // Alert "prop1", "prop2" and "prop3".
127
+ * for ( var p in myObject )
128
+ * alert( p );
129
+ */
130
+ extend : function( target )
131
+ {
132
+ var argsLength = arguments.length,
133
+ overwrite, propertiesList;
134
+
135
+ if ( typeof ( overwrite = arguments[ argsLength - 1 ] ) == 'boolean')
136
+ argsLength--;
137
+ else if ( typeof ( overwrite = arguments[ argsLength - 2 ] ) == 'boolean' )
138
+ {
139
+ propertiesList = arguments [ argsLength -1 ];
140
+ argsLength-=2;
141
+ }
142
+ for ( var i = 1 ; i < argsLength ; i++ )
143
+ {
144
+ var source = arguments[ i ];
145
+ for ( var propertyName in source )
146
+ {
147
+ // Only copy existed fields if in overwrite mode.
148
+ if ( overwrite === true || target[ propertyName ] == undefined )
149
+ {
150
+ // Only copy specified fields if list is provided.
151
+ if ( !propertiesList || ( propertyName in propertiesList ) )
152
+ target[ propertyName ] = source[ propertyName ];
153
+
154
+ }
155
+ }
156
+ }
157
+
158
+ return target;
159
+ },
160
+
161
+ /**
162
+ * Creates an object which is an instance of a class which prototype is a
163
+ * predefined object. All properties defined in the source object are
164
+ * automatically inherited by the resulting object, including future
165
+ * changes to it.
166
+ * @param {Object} source The source object to be used as the prototype for
167
+ * the final object.
168
+ * @returns {Object} The resulting copy.
169
+ */
170
+ prototypedCopy : function( source )
171
+ {
172
+ var copy = function()
173
+ {};
174
+ copy.prototype = source;
175
+ return new copy();
176
+ },
177
+
178
+ /**
179
+ * Checks if an object is an Array.
180
+ * @param {Object} object The object to be checked.
181
+ * @type Boolean
182
+ * @returns <i>true</i> if the object is an Array, otherwise <i>false</i>.
183
+ * @example
184
+ * alert( CKEDITOR.tools.isArray( [] ) ); // "true"
185
+ * alert( CKEDITOR.tools.isArray( 'Test' ) ); // "false"
186
+ */
187
+ isArray : function( object )
188
+ {
189
+ return ( !!object && object instanceof Array );
190
+ },
191
+
192
+ /**
193
+ * Transforms a CSS property name to its relative DOM style name.
194
+ * @param {String} cssName The CSS property name.
195
+ * @returns {String} The transformed name.
196
+ * @example
197
+ * alert( CKEDITOR.tools.cssStyleToDomStyle( 'background-color' ) ); // "backgroundColor"
198
+ * alert( CKEDITOR.tools.cssStyleToDomStyle( 'float' ) ); // "cssFloat"
199
+ */
200
+ cssStyleToDomStyle : function( cssName )
201
+ {
202
+ if ( cssName == 'float' )
203
+ return 'cssFloat';
204
+ else
205
+ {
206
+ return cssName.replace( /-./g, function( match )
207
+ {
208
+ return match.substr( 1 ).toUpperCase();
209
+ });
210
+ }
211
+ },
212
+
213
+ /**
214
+ * Replace special HTML characters in a string with their relative HTML
215
+ * entity values.
216
+ * @param {String} text The string to be encoded.
217
+ * @returns {String} The encode string.
218
+ * @example
219
+ * alert( CKEDITOR.tools.htmlEncode( 'A > B & C < D' ) ); // "A &amp;gt; B &amp;amp; C &amp;lt; D"
220
+ */
221
+ htmlEncode : function( text )
222
+ {
223
+ var standard = function( text )
224
+ {
225
+ var span = new CKEDITOR.dom.element( 'span' );
226
+ span.setText( text );
227
+ return span.getHtml();
228
+ };
229
+
230
+ var fix1 = ( standard( '\n' ).toLowerCase() == '<br>' ) ?
231
+ function( text )
232
+ {
233
+ // #3874 IE and Safari encode line-break into <br>
234
+ return standard( text ).replace( /<br>/gi, '\n' );
235
+ } :
236
+ standard;
237
+
238
+ var fix2 = ( standard( '>' ) == '>' ) ?
239
+ function( text )
240
+ {
241
+ // WebKit does't encode the ">" character, which makes sense, but
242
+ // it's different than other browsers.
243
+ return fix1( text ).replace( />/g, '&gt;' );
244
+ } :
245
+ fix1;
246
+
247
+ var fix3 = ( standard( ' ' ) == '&nbsp; ' ) ?
248
+ function( text )
249
+ {
250
+ // #3785 IE8 changes spaces (>= 2) to &nbsp;
251
+ return fix2( text ).replace( /&nbsp;/g, ' ' );
252
+ } :
253
+ fix2;
254
+
255
+ this.htmlEncode = fix3;
256
+
257
+ return this.htmlEncode( text );
258
+ },
259
+
260
+ /**
261
+ * Gets a unique number for this CKEDITOR execution session. It returns
262
+ * progressive numbers starting at 1.
263
+ * @function
264
+ * @returns {Number} A unique number.
265
+ * @example
266
+ * alert( CKEDITOR.tools.<b>getNextNumber()</b> ); // "1" (e.g.)
267
+ * alert( CKEDITOR.tools.<b>getNextNumber()</b> ); // "2"
268
+ */
269
+ getNextNumber : (function()
270
+ {
271
+ var last = 0;
272
+ return function()
273
+ {
274
+ return ++last;
275
+ };
276
+ })(),
277
+
278
+ /**
279
+ * Creates a function override.
280
+ * @param {Function} originalFunction The function to be overridden.
281
+ * @param {Function} functionBuilder A function that returns the new
282
+ * function. The original function reference will be passed to this
283
+ * function.
284
+ * @returns {Function} The new function.
285
+ * @example
286
+ * var example =
287
+ * {
288
+ * myFunction : function( name )
289
+ * {
290
+ * alert( 'Name: ' + name );
291
+ * }
292
+ * };
293
+ *
294
+ * example.myFunction = CKEDITOR.tools.override( example.myFunction, function( myFunctionOriginal )
295
+ * {
296
+ * return function( name )
297
+ * {
298
+ * alert( 'Override Name: ' + name );
299
+ * myFunctionOriginal.call( this, name );
300
+ * };
301
+ * });
302
+ */
303
+ override : function( originalFunction, functionBuilder )
304
+ {
305
+ return functionBuilder( originalFunction );
306
+ },
307
+
308
+ /**
309
+ * Executes a function after specified delay.
310
+ * @param {Function} func The function to be executed.
311
+ * @param {Number} [milliseconds] The amount of time (millisecods) to wait
312
+ * to fire the function execution. Defaults to zero.
313
+ * @param {Object} [scope] The object to hold the function execution scope
314
+ * (the "this" object). By default the "window" object.
315
+ * @param {Object|Array} [args] A single object, or an array of objects, to
316
+ * pass as arguments to the function.
317
+ * @param {Object} [ownerWindow] The window that will be used to set the
318
+ * timeout. By default the current "window".
319
+ * @returns {Object} A value that can be used to cancel the function execution.
320
+ * @example
321
+ * CKEDITOR.tools.<b>setTimeout(
322
+ * function()
323
+ * {
324
+ * alert( 'Executed after 2 seconds' );
325
+ * },
326
+ * 2000 )</b>;
327
+ */
328
+ setTimeout : function( func, milliseconds, scope, args, ownerWindow )
329
+ {
330
+ if ( !ownerWindow )
331
+ ownerWindow = window;
332
+
333
+ if ( !scope )
334
+ scope = ownerWindow;
335
+
336
+ return ownerWindow.setTimeout(
337
+ function()
338
+ {
339
+ if ( args )
340
+ func.apply( scope, [].concat( args ) ) ;
341
+ else
342
+ func.apply( scope ) ;
343
+ },
344
+ milliseconds || 0 );
345
+ },
346
+
347
+ /**
348
+ * Remove spaces from the start and the end of a string. The following
349
+ * characters are removed: space, tab, line break, line feed.
350
+ * @function
351
+ * @param {String} str The text from which remove the spaces.
352
+ * @returns {String} The modified string without the boundary spaces.
353
+ * @example
354
+ * alert( CKEDITOR.tools.trim( ' example ' ); // "example"
355
+ */
356
+ trim : (function()
357
+ {
358
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
359
+ var trimRegex = /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;
360
+ return function( str )
361
+ {
362
+ return str.replace( trimRegex, '' ) ;
363
+ };
364
+ })(),
365
+
366
+ /**
367
+ * Remove spaces from the start (left) of a string. The following
368
+ * characters are removed: space, tab, line break, line feed.
369
+ * @function
370
+ * @param {String} str The text from which remove the spaces.
371
+ * @returns {String} The modified string excluding the removed spaces.
372
+ * @example
373
+ * alert( CKEDITOR.tools.ltrim( ' example ' ); // "example "
374
+ */
375
+ ltrim : (function()
376
+ {
377
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
378
+ var trimRegex = /^[ \t\n\r]+/g;
379
+ return function( str )
380
+ {
381
+ return str.replace( trimRegex, '' ) ;
382
+ };
383
+ })(),
384
+
385
+ /**
386
+ * Remove spaces from the end (right) of a string. The following
387
+ * characters are removed: space, tab, line break, line feed.
388
+ * @function
389
+ * @param {String} str The text from which remove the spaces.
390
+ * @returns {String} The modified string excluding the removed spaces.
391
+ * @example
392
+ * alert( CKEDITOR.tools.ltrim( ' example ' ); // " example"
393
+ */
394
+ rtrim : (function()
395
+ {
396
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
397
+ var trimRegex = /[ \t\n\r]+$/g;
398
+ return function( str )
399
+ {
400
+ return str.replace( trimRegex, '' ) ;
401
+ };
402
+ })(),
403
+
404
+ /**
405
+ * Returns the index of an element in an array.
406
+ * @param {Array} array The array to be searched.
407
+ * @param {Object} entry The element to be found.
408
+ * @returns {Number} The (zero based) index of the first entry that matches
409
+ * the entry, or -1 if not found.
410
+ * @example
411
+ * var letters = [ 'a', 'b', 0, 'c', false ];
412
+ * alert( CKEDITOR.tools.indexOf( letters, '0' ) ); "-1" because 0 !== '0'
413
+ * alert( CKEDITOR.tools.indexOf( letters, false ) ); "4" because 0 !== false
414
+ */
415
+ indexOf :
416
+ // #2514: We should try to use Array.indexOf if it does exist.
417
+ ( Array.prototype.indexOf ) ?
418
+ function( array, entry )
419
+ {
420
+ return array.indexOf( entry );
421
+ }
422
+ :
423
+ function( array, entry )
424
+ {
425
+ for ( var i = 0, len = array.length ; i < len ; i++ )
426
+ {
427
+ if ( array[ i ] === entry )
428
+ return i;
429
+ }
430
+ return -1;
431
+ },
432
+
433
+ bind : function( func, obj )
434
+ {
435
+ return function() { return func.apply( obj, arguments ); };
436
+ },
437
+
438
+ /**
439
+ * Class creation based on prototype inheritance, with supports of the
440
+ * following features:
441
+ * <ul>
442
+ * <li> Static fields </li>
443
+ * <li> Private fields </li>
444
+ * <li> Public(prototype) fields </li>
445
+ * <li> Chainable base class constructor </li>
446
+ * </ul>
447
+ *
448
+ * @param {Object} definiton (Optional)The class definiton object.
449
+ */
450
+ createClass : function( definition )
451
+ {
452
+ var $ = definition.$,
453
+ baseClass = definition.base,
454
+ privates = definition.privates || definition._,
455
+ proto = definition.proto,
456
+ statics = definition.statics;
457
+
458
+ if ( privates )
459
+ {
460
+ var originalConstructor = $;
461
+ $ = function()
462
+ {
463
+ // Create (and get) the private namespace.
464
+ var _ = this._ || ( this._ = {} );
465
+
466
+ // Make some magic so "this" will refer to the main
467
+ // instance when coding private functions.
468
+ for ( var privateName in privates )
469
+ {
470
+ var priv = privates[ privateName ];
471
+
472
+ _[ privateName ] =
473
+ ( typeof priv == 'function' ) ? CKEDITOR.tools.bind( priv, this ) : priv;
474
+ }
475
+
476
+ originalConstructor.apply( this, arguments );
477
+ };
478
+ }
479
+
480
+ if ( baseClass )
481
+ {
482
+ $.prototype = this.prototypedCopy( baseClass.prototype );
483
+ $.prototype.constructor = $;
484
+ $.prototype.base = function()
485
+ {
486
+ this.base = baseClass.prototype.base;
487
+ baseClass.apply( this, arguments );
488
+ this.base = arguments.callee;
489
+ };
490
+ }
491
+
492
+ if ( proto )
493
+ this.extend( $.prototype, proto, true );
494
+
495
+ if ( statics )
496
+ this.extend( $, statics, true );
497
+
498
+ return $;
499
+ },
500
+
501
+ addFunction : function( fn, scope )
502
+ {
503
+ return functions.push( function()
504
+ {
505
+ fn.apply( scope || this, arguments );
506
+ }) - 1;
507
+ },
508
+
509
+ callFunction : function( index )
510
+ {
511
+ var fn = functions[ index ];
512
+ return fn.apply( window, Array.prototype.slice.call( arguments, 1 ) );
513
+ },
514
+
515
+ cssLength : (function()
516
+ {
517
+ var decimalRegex = /^\d+(?:\.\d+)?$/;
518
+ return function( length )
519
+ {
520
+ return length + ( decimalRegex.test( length ) ? 'px' : '' );
521
+ };
522
+ })(),
523
+
524
+ repeat : function( str, times )
525
+ {
526
+ return new Array( times + 1 ).join( str );
527
+ }
528
+ };
529
+ })();
530
+
531
+ // PACKAGER_RENAME( CKEDITOR.tools )