skylinecms 3.0.8 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. data/CHANGELOG +131 -10
  2. data/README.md +1 -2
  3. data/Rakefile +3 -3
  4. data/app/controllers/skyline/application_controller.rb +40 -4
  5. data/app/controllers/skyline/articles_controller.rb +4 -4
  6. data/app/controllers/skyline/browser/tabs/media_library/media_files_controller.rb +1 -1
  7. data/app/controllers/skyline/content_controller.rb +4 -3
  8. data/app/controllers/skyline/{media_files_data_controller.rb → media/data_controller.rb} +61 -59
  9. data/app/controllers/skyline/media/dirs_controller.rb +83 -0
  10. data/app/controllers/skyline/media/files_controller.rb +80 -0
  11. data/app/controllers/skyline/sections_controller.rb +10 -3
  12. data/app/controllers/skyline/settings_controller.rb +4 -2
  13. data/app/controllers/skyline/user_preferences_controller.rb +18 -0
  14. data/app/controllers/skyline/users_controller.rb +1 -1
  15. data/app/controllers/skyline/variant_current_editor_controller.rb +2 -0
  16. data/app/helpers/skyline/application_helper.rb +39 -35
  17. data/app/helpers/skyline/dialog_helper.rb +11 -10
  18. data/app/helpers/skyline/editors/boolean.rb +2 -2
  19. data/app/helpers/skyline/editors/page_browser.rb +2 -0
  20. data/app/helpers/skyline/editors/wysiwyg.rb +1 -1
  21. data/app/helpers/skyline/js_layout_helper.rb +19 -0
  22. data/app/helpers/skyline/media/dirs_helper.rb +2 -0
  23. data/app/helpers/skyline/media/files_helper.rb +6 -0
  24. data/app/helpers/skyline/media_files_helper.rb +2 -2
  25. data/app/helpers/skyline/menu_helper.rb +33 -0
  26. data/app/helpers/skyline/message_generator.rb +5 -1
  27. data/app/helpers/skyline/notification_generator.rb +6 -0
  28. data/app/helpers/skyline/plugin_helper.rb +21 -0
  29. data/app/helpers/skyline/presenters/presenter.rb +4 -13
  30. data/app/helpers/skyline/presenters/table.rb +0 -27
  31. data/app/helpers/skyline/ref_object_helper.rb +2 -2
  32. data/app/helpers/skyline/tree_helper.rb +74 -5
  33. data/app/models/skyline/article.rb +18 -6
  34. data/app/models/skyline/article_version.rb +1 -1
  35. data/app/models/skyline/image_ref.rb +9 -5
  36. data/app/models/skyline/inline_ref.rb +3 -2
  37. data/app/models/skyline/link_section_link.rb +2 -2
  38. data/app/models/skyline/media_file.rb +33 -10
  39. data/app/models/skyline/page.rb +10 -9
  40. data/app/models/skyline/section.rb +1 -1
  41. data/app/models/skyline/sections/content_collection_section.rb +1 -1
  42. data/app/models/skyline/sections/content_item_section.rb +1 -1
  43. data/app/models/skyline/sections/heading_section.rb +1 -1
  44. data/app/models/skyline/sections/iframe_section.rb +2 -2
  45. data/app/models/skyline/sections/link_section.rb +1 -1
  46. data/app/models/skyline/sections/media_section.rb +32 -5
  47. data/app/models/skyline/sections/page_fragment_section.rb +1 -1
  48. data/app/models/skyline/sections/raw_section.rb +1 -1
  49. data/app/models/skyline/sections/redirect_section.rb +4 -4
  50. data/app/models/skyline/sections/rss_section.rb +7 -2
  51. data/app/models/skyline/sections/splitter_section.rb +1 -1
  52. data/app/models/skyline/sections/wysiwyg_section.rb +3 -3
  53. data/app/models/skyline/site.rb +1 -1
  54. data/app/models/skyline/user.rb +1 -1
  55. data/app/models/skyline/user_preference.rb +69 -0
  56. data/app/models/skyline/variant.rb +1 -1
  57. data/app/templates/skyline/sections/content_item_section/default/index.html.erb +1 -1
  58. data/app/templates/skyline/sections/media_section/default/index.html.erb +9 -9
  59. data/app/views/skyline/articles/_list.html.erb +34 -0
  60. data/app/views/skyline/articles/edit.html.erb +13 -6
  61. data/app/views/skyline/articles/index.html.erb +12 -43
  62. data/app/views/skyline/articles/page/_index.html.erb +13 -11
  63. data/app/views/skyline/authentications/new.html.erb +2 -2
  64. data/app/views/skyline/browser/links/_index.html.erb +4 -2
  65. data/app/views/skyline/browser/tabs/media_library/_index.html.erb +12 -13
  66. data/app/views/skyline/browser/tabs/media_library/media_files/_index.html.erb +122 -51
  67. data/app/views/skyline/browser/tabs/media_library/media_files/_show.html.erb +7 -7
  68. data/app/views/skyline/content/list.rhtml +1 -3
  69. data/app/views/skyline/content/presenters/_table.html.erb +45 -0
  70. data/app/views/skyline/layouts/content.html.erb +1 -1
  71. data/app/views/skyline/layouts/media.html.erb +2 -1
  72. data/app/views/skyline/layouts/pages.html.erb +10 -0
  73. data/app/views/skyline/link_section_links/_form.html.erb +0 -1
  74. data/app/views/skyline/locales/show.js.erb +2 -2
  75. data/app/views/skyline/media/dirs/_edit.html.erb +42 -0
  76. data/app/views/skyline/media/dirs/_index.html.erb +14 -0
  77. data/app/views/skyline/media/dirs/_show.html.erb +34 -0
  78. data/app/views/skyline/media/dirs/index.html.erb +36 -0
  79. data/app/views/skyline/media/files/_edit.html.erb +101 -0
  80. data/app/views/skyline/media/files/_index.html.erb +68 -0
  81. data/app/views/skyline/media/files/_new.html.erb +45 -0
  82. data/app/views/skyline/publications/_index.html.erb +2 -2
  83. data/app/views/skyline/sections/_media_section.html.erb +12 -2
  84. data/app/views/skyline/sections/_wysiwyg_section.html.erb +2 -3
  85. data/app/views/skyline/settings/index.html +14 -0
  86. data/app/views/skyline/shared/_head.html.erb +2 -0
  87. data/app/views/skyline/shared/_header_area.html.erb +7 -5
  88. data/app/views/skyline/users/index.html.erb +31 -16
  89. data/config/initializers/dependencies.rb +6 -1
  90. data/config/initializers/observers.rb +1 -2
  91. data/config/initializers/rails_defaults.rb +1 -1
  92. data/config/locales/en-US.yml +110 -68
  93. data/config/locales/nl-NL.yml +117 -77
  94. data/config/routes.rb +36 -32
  95. data/db/fixtures/roles_and_rights.rb +65 -40
  96. data/db/migrate/20090302102548_add_media_nodes.rb +2 -2
  97. data/db/migrate/20090309133933_add_description_to_media_nodes.rb +2 -2
  98. data/db/migrate/20090309134731_add_tags.rb +2 -2
  99. data/db/migrate/20090309135746_create_media_files_tags.rb +2 -2
  100. data/db/migrate/20090319091342_create_media_caches.rb +2 -2
  101. data/db/migrate/20090327083240_create_users.rb +2 -2
  102. data/db/migrate/20090327084656_create_roles.rb +2 -2
  103. data/db/migrate/20090327084719_create_rights.rb +2 -2
  104. data/db/migrate/20090327084739_create_grants.rb +2 -2
  105. data/db/migrate/20090327090918_create_rights_roles.rb +2 -2
  106. data/db/migrate/20090408115155_create_ref_objects.rb +2 -2
  107. data/db/migrate/20090504140044_create_test_sections.rb +2 -2
  108. data/db/migrate/20090506083107_add_refering_column_name_to_ref_objects.rb +2 -2
  109. data/db/migrate/20090706124019_add_skyline_media_node_title.rb +1 -1
  110. data/db/migrate/20090904121447_create_skyline_referable_uris.rb +6 -6
  111. data/db/migrate/20091221145204_add_skyline_media_section_link.rb +11 -0
  112. data/db/migrate/20100109145958_add_associated_tags_index.rb +9 -0
  113. data/db/migrate/20100115111440_create_skyline_user_preferences.rb +14 -0
  114. data/db/migrate/20100120113953_remove_unused_articles_index.rb +9 -0
  115. data/db/migrate/20100409073447_change_referable_uri_to_text.rb +9 -0
  116. data/doc/Bundler.md +33 -28
  117. data/doc/MIGRATION.md +48 -0
  118. data/lib/skyline/{content_item.rb → belongs_to_referable.rb} +57 -88
  119. data/lib/skyline/configuration.rb +14 -15
  120. data/lib/skyline/content/content.rb +14 -2
  121. data/lib/skyline/deprecated/version3_0_8.rb +106 -0
  122. data/lib/skyline/{form_builder_with_errors.rb → form_builder.rb} +5 -5
  123. data/lib/skyline/{referable.rb → has_many_referables_in.rb} +22 -12
  124. data/lib/skyline/javascript_generator_methods.rb +1 -1
  125. data/lib/skyline/plugins_manager.rb +135 -14
  126. data/lib/skyline/rendering/helpers/renderer_helper.rb +14 -9
  127. data/lib/skyline/{renderer.rb → rendering/renderer.rb} +3 -4
  128. data/lib/skyline/{renderable_scope_interface.rb → rendering/scopes/interface.rb} +1 -1
  129. data/lib/skyline/{wildcard_renderable_scope.rb → rendering/scopes/wildcard.rb} +3 -3
  130. data/lib/skyline/{section_item.rb → sections/interface.rb} +17 -10
  131. data/lib/skyline/settings.rb +29 -19
  132. data/lib/skyline/taggable.rb +3 -3
  133. data/lib/skyline/version.rb +2 -2
  134. data/{tasks → lib/tasks}/database.rake +14 -2
  135. data/{tasks → lib/tasks}/implementation.rake +0 -0
  136. data/lib/tasks/testing.rake +41 -0
  137. data/public/skyline/images/backgrounds/panel-dt.gif +0 -0
  138. data/public/skyline/javascripts/src/application.js +114 -120
  139. data/public/skyline/javascripts/src/browser.js +22 -4
  140. data/public/skyline/javascripts/src/library_uploader.js +13 -3
  141. data/public/skyline/javascripts/src/sections.js +57 -6
  142. data/public/skyline/javascripts/src/skyline/src/dialog.js +6 -0
  143. data/public/skyline/javascripts/src/skyline/src/drag.js +6 -0
  144. data/public/skyline/javascripts/src/skyline/src/events.js +50 -0
  145. data/public/skyline/javascripts/src/skyline/src/field_replicator.js +12 -11
  146. data/public/skyline/javascripts/src/skyline/src/layout.js +172 -30
  147. data/public/skyline/javascripts/src/skyline/src/menu.js +3 -0
  148. data/public/skyline/javascripts/src/skyline/src/menubutton.js +3 -0
  149. data/public/skyline/javascripts/src/skyline/src/skyline.js +3 -0
  150. data/public/skyline/javascripts/src/skyline/src/table.js +398 -0
  151. data/public/skyline/javascripts/src/skyline/src/tabs.js +2 -2
  152. data/public/skyline/javascripts/src/skyline/src/tag_selector.js +34 -26
  153. data/public/skyline/javascripts/src/skyline/src/tree.js +3 -0
  154. data/public/skyline/javascripts/src/skyline/src/uploader.js +2 -2
  155. data/public/skyline/javascripts/src/skyline/src/utils.js +3 -0
  156. data/public/skyline/javascripts/src/skyline/test/_dynamic_right.html +24 -0
  157. data/public/skyline/javascripts/src/skyline/test/_right_content.html +1 -0
  158. data/public/skyline/javascripts/src/skyline/test/basic_layout.html +190 -0
  159. data/public/skyline/javascripts/src/skyline/test/dialog.html +101 -0
  160. data/public/skyline/javascripts/src/skyline/test/draggablefiles.html +196 -0
  161. data/public/skyline/javascripts/src/skyline/test/dynamic_layout.html +89 -0
  162. data/public/skyline/javascripts/src/skyline/test/field_replicator.html +60 -0
  163. data/public/skyline/javascripts/src/skyline/test/last-closed.gif +0 -0
  164. data/public/skyline/javascripts/src/skyline/test/last-open.gif +0 -0
  165. data/public/skyline/javascripts/src/skyline/test/menubutton.html +81 -0
  166. data/public/skyline/javascripts/src/skyline/test/middle.gif +0 -0
  167. data/public/skyline/javascripts/src/skyline/test/sortable.html +121 -0
  168. data/public/skyline/javascripts/src/skyline/test/table.html +521 -0
  169. data/public/skyline/javascripts/src/skyline/test/tagselector.html +72 -0
  170. data/public/skyline/javascripts/src/skyline/test/toggle.html +95 -0
  171. data/public/skyline/javascripts/src/skyline/test/tree.html +310 -0
  172. data/public/skyline/javascripts/src/skyline/test/tree.png +0 -0
  173. data/public/skyline/javascripts/src/skyline/test/undohtml.css +27 -0
  174. data/public/skyline/javascripts/src/skyline/vendor/fancyupload/Swiff.Uploader.js +2 -2
  175. data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-core.js +1 -354
  176. data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-more.js +64 -52
  177. data/public/skyline/javascripts/src/skyline.editor/assets/content.css +1 -1
  178. data/public/skyline/javascripts/src/skyline.editor/src/script_loader.js +156 -75
  179. data/public/skyline/javascripts/src/skyline.editor/src/skyline.editor.js +14 -4
  180. data/public/skyline/javascripts/src/skyline.editor/src/theme.js +8 -0
  181. data/public/skyline/javascripts/src/skyline.editor/test/dialog.html +28 -0
  182. data/public/skyline/javascripts/src/skyline.editor/test/lorem.html +7 -0
  183. data/public/skyline/javascripts/src/skyline.editor/test/multiple_editors.html +87 -0
  184. data/public/skyline/javascripts/src/skyline.editor/test/undohtml.css +27 -0
  185. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/changelog.txt +205 -0
  186. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/css/content.css +54 -0
  187. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/custom_formats.html +111 -0
  188. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full.html +19 -3
  189. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/menu.html +1 -0
  190. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/simple.html +6 -2
  191. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/skins.html +14 -10
  192. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/translate.html +7 -3
  193. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/word.html +8 -4
  194. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/langs/en.js +18 -2
  195. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js +6 -3
  196. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm +2 -7
  197. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js +6 -3
  198. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm +2 -7
  199. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js +1 -1
  200. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js +6 -3
  201. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js +1 -1
  202. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm +2 -7
  203. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
  204. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js +154 -0
  205. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -1
  206. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +52 -44
  207. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
  208. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js +388 -17
  209. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js +4 -0
  210. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +6 -3
  211. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
  212. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +58 -6
  213. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js +6 -3
  214. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -1
  215. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js +8 -5
  216. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm +2 -7
  217. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js +6 -3
  218. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -1
  219. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +10 -3
  220. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm +2 -7
  221. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js +18 -8
  222. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -1
  223. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +12 -6
  224. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm +0 -1
  225. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js +6 -3
  226. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +6 -3
  227. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +6 -3
  228. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js +6 -3
  229. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
  230. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +136 -0
  231. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js +1 -1
  232. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js +18 -9
  233. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/media.htm +2 -7
  234. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -1
  235. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +7 -4
  236. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +6 -3
  237. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +6 -3
  238. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  239. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js +564 -124
  240. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm +2 -8
  241. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm +2 -8
  242. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js +6 -3
  243. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js +6 -3
  244. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js +6 -3
  245. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -1
  246. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +7 -4
  247. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +4 -0
  248. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm +4 -9
  249. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -1
  250. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +106 -27
  251. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js +6 -3
  252. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/props.htm +4 -11
  253. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -1
  254. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +7 -4
  255. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/cell.htm +2 -7
  256. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js +1 -1
  257. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js +921 -918
  258. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js +41 -24
  259. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js +18 -20
  260. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/row.js +48 -23
  261. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/table.js +24 -15
  262. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm +3 -8
  263. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/row.htm +2 -7
  264. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/table.htm +2 -7
  265. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js +1 -1
  266. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js +10 -7
  267. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/template.htm +2 -9
  268. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -1
  269. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +26 -16
  270. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
  271. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +98 -0
  272. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +3 -10
  273. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +3 -10
  274. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +2 -7
  275. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm +3 -10
  276. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm +3 -11
  277. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -1
  278. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +11 -15
  279. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm +3 -11
  280. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +8 -5
  281. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +7 -4
  282. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +7 -4
  283. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +7 -4
  284. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js +7 -4
  285. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +8 -8
  286. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +7 -4
  287. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/about.htm +1 -3
  288. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm +2 -7
  289. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm +0 -1
  290. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm +2 -4
  291. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js +1 -1
  292. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js +252 -188
  293. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/image.htm +2 -7
  294. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  295. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js +7 -7
  296. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js +10 -0
  297. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js +2 -2
  298. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js +4 -4
  299. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/link.htm +2 -7
  300. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css +7 -3
  301. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css +4 -3
  302. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css +5 -6
  303. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css +7 -3
  304. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +3 -2
  305. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +4 -4
  306. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm +2 -8
  307. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js +5 -5
  308. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js +1 -1
  309. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_popup.js +1 -1
  310. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_src.js +5492 -4341
  311. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/editable_selects.js +5 -4
  312. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/form_utils.js +6 -5
  313. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/mctabs.js +5 -4
  314. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/validate.js +5 -4
  315. data/public/skyline/javascripts/src/skyline.js +3 -1
  316. data/public/skyline/javascripts/src/user_preferences.js +49 -0
  317. data/public/skyline/stylesheets/general.css +149 -47
  318. data/rails/init.rb +3 -3
  319. data/test/factories.rb +28 -0
  320. data/test/integration/media_browser_super_access_test.rb +52 -0
  321. data/test/integration/media_browser_user_access_test.rb +50 -0
  322. data/test/integration/user_preferences_test.rb +73 -0
  323. data/test/mocks/test_content_object.rb +32 -0
  324. data/test/mocks/test_section.rb +22 -0
  325. data/test/test_helper.rb +60 -0
  326. data/test/unit/inline_ref_test.rb +195 -0
  327. data/test/unit/locales_test.rb +82 -0
  328. data/test/unit/page_test.rb +204 -0
  329. data/test/unit/test_content_object_test.rb +69 -0
  330. data/test/unit/test_section_test.rb +247 -0
  331. data/test/unit/user_preference_test.rb +123 -0
  332. data/test/unit/user_test.rb +74 -0
  333. data/test/user_access_helper.rb +36 -0
  334. data/vendor/digitpaint/personify/test/fixtures/multiple_tags.txt +8 -0
  335. data/vendor/digitpaint/personify/test/parse_runner.rb +25 -0
  336. data/vendor/digitpaint/personify/test/parser_test.rb +109 -0
  337. data/vendor/digitpaint/personify/test/test_helper.rb +16 -0
  338. data/vendor/digitpaint/personify/vendor/treetop/.gitignore +5 -0
  339. data/vendor/mootools-on-rails/lib/mootools_on_rails/mootools_helper.rb +13 -4
  340. data/vendor/mootools-on-rails/test/mootools_helper_test.rb +138 -0
  341. data/vendor/mootools-on-rails/test/test_helper.rb +5 -0
  342. data/vendor/weppos/url_validation.rb +76 -0
  343. metadata +384 -189
  344. data/app/controllers/skyline/media_dirs_controller.rb +0 -56
  345. data/app/controllers/skyline/media_files_controller.rb +0 -87
  346. data/app/helpers/skyline/presenters/article_list.rb +0 -139
  347. data/app/observers/skyline/media_file_observer.rb +0 -32
  348. data/app/views/skyline/media_dirs/_edit.html.erb +0 -25
  349. data/app/views/skyline/media_dirs/_index.html.erb +0 -14
  350. data/app/views/skyline/media_dirs/index.html.erb +0 -42
  351. data/app/views/skyline/media_files/_edit.html.erb +0 -75
  352. data/app/views/skyline/media_files/_header.html.erb +0 -3
  353. data/app/views/skyline/media_files/_index.html.erb +0 -51
  354. data/app/views/skyline/media_files/_new.html.erb +0 -50
  355. data/db/migrate/20090603104115_prefix_tables_for_skyline.rb +0 -30
  356. data/lib/skyline/indexer.rb +0 -36
  357. data/lib/skyline/renderable_scope.rb +0 -27
  358. data/lib/skyline/rendering/helpers/settings_helper.rb +0 -26
  359. data/lib/skyline/searchable_item.rb +0 -132
  360. data/lib/skyline/url_validation.rb +0 -66
  361. data/public/skyline/images/backgrounds/splitter.gif +0 -0
  362. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/build.bat +0 -2
  363. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/build.xml +0 -364
  364. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full_jquery.html +0 -94
  365. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/AddOnManager.js +0 -95
  366. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/CommandManager.js +0 -54
  367. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ControlManager.js +0 -489
  368. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Developer.js +0 -91
  369. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Editor.js +0 -2295
  370. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/EditorCommands.js +0 -934
  371. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/EditorManager.js +0 -453
  372. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ForceBlocks.js +0 -644
  373. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Popup.js +0 -412
  374. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/UndoManager.js +0 -183
  375. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/WindowManager.js +0 -169
  376. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/jquery/adapter.js +0 -240
  377. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/jquery/jquery.tinymce.js +0 -179
  378. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/prototype/adapter.js +0 -38
  379. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/BlockQuote.js +0 -135
  380. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/CutCopyPaste.js +0 -24
  381. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/InsertHorizontalRule.js +0 -15
  382. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/RemoveFormat.js +0 -173
  383. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/UndoRedo.js +0 -38
  384. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/DOMUtils.js +0 -1823
  385. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Element.js +0 -199
  386. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/EventUtils.js +0 -349
  387. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Range.js +0 -721
  388. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/ScriptLoader.js +0 -351
  389. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Selection.js +0 -747
  390. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Serializer.js +0 -979
  391. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Sizzle.js +0 -975
  392. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/StringWriter.js +0 -200
  393. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/TridentSelection.js +0 -273
  394. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/XMLWriter.js +0 -155
  395. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/firebug/firebug-lite.js +0 -2518
  396. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/tinymce.js +0 -549
  397. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Button.js +0 -68
  398. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/ColorSplitButton.js +0 -212
  399. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Container.js +0 -56
  400. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Control.js +0 -182
  401. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/DropMenu.js +0 -397
  402. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/ListBox.js +0 -320
  403. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Menu.js +0 -175
  404. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/MenuButton.js +0 -128
  405. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/MenuItem.js +0 -69
  406. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/NativeListBox.js +0 -198
  407. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Separator.js +0 -34
  408. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/SplitButton.js +0 -99
  409. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Toolbar.js +0 -86
  410. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/Cookie.js +0 -126
  411. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/Dispatcher.js +0 -101
  412. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSON.js +0 -81
  413. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSONP.js +0 -25
  414. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSONRequest.js +0 -87
  415. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/URI.js +0 -289
  416. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/XHR.js +0 -80
  417. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/xml/Parser.js +0 -126
  418. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/jquery.tinymce.js +0 -1
  419. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin.js +0 -1
  420. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin_src.js +0 -616
  421. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm +0 -1
  422. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js +0 -1
  423. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js +0 -438
  424. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_dev.js +0 -128
  425. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_jquery.js +0 -1
  426. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js +0 -12198
  427. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_prototype.js +0 -1
  428. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_prototype_src.js +0 -13057
  429. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api.html +0 -18
  430. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api_jquery.html +0 -18
  431. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api_prototype.html +0 -19
  432. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/basic.html +0 -548
  433. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/crossdomain.html +0 -87
  434. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/css/unit.css +0 -120
  435. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/index.html +0 -10
  436. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/jquery_plugin.html +0 -112
  437. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/js/api.js +0 -1438
  438. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/js/testrunner.js +0 -791
  439. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/main.html +0 -8
  440. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/media.html +0 -221
  441. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/menu.html +0 -22
  442. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/parts.html +0 -90
  443. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/paste.html +0 -132
  444. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/performance.html +0 -152
  445. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/range.html +0 -522
  446. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/removeformat.html +0 -88
  447. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/selection.html +0 -235
  448. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/config.ini +0 -27
  449. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/footer.html +0 -3
  450. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/header.html +0 -6
  451. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/index.php +0 -1
  452. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/instructions.txt +0 -4
  453. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/logo.png +0 -0
  454. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/selectors.list +0 -40
  455. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/style.css +0 -181
  456. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/index.php +0 -112
  457. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/slickspeed.js +0 -147
  458. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/template.php +0 -47
  459. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/template.html +0 -2865
  460. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/test.xml +0 -6
  461. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/ant-contrib.jar +0 -0
  462. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/js_build_tools.jar +0 -0
  463. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnClientAdapter.jar +0 -0
  464. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnant.jar +0 -0
  465. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnjavahl.jar +0 -0
  466. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnkit.jar +0 -0
  467. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/yuicompressor.jar +0 -0
@@ -1,979 +0,0 @@
1
- /**
2
- * $Id: Serializer.js 1173 2009-06-29 14:44:25Z spocke $
3
- *
4
- * @author Moxiecode
5
- * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
6
- */
7
-
8
- (function(tinymce) {
9
- // Shorten names
10
- var extend = tinymce.extend, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher, isIE = tinymce.isIE, isGecko = tinymce.isGecko;
11
-
12
- function wildcardToRE(s) {
13
- return s.replace(/([?+*])/g, '.$1');
14
- };
15
-
16
- /**#@+
17
- * @class This class is used to serialize DOM trees into a string.
18
- * Consult the TinyMCE Wiki API for more details and examples on how to use this class.
19
- * @member tinymce.dom.Serializer
20
- */
21
- tinymce.create('tinymce.dom.Serializer', {
22
- /**
23
- * Constucts a new DOM serializer class.
24
- *
25
- * @constructor
26
- * @param {Object} s Optional name/Value collection of settings for the serializer.
27
- */
28
- Serializer : function(s) {
29
- var t = this;
30
-
31
- t.key = 0;
32
- t.onPreProcess = new Dispatcher(t);
33
- t.onPostProcess = new Dispatcher(t);
34
-
35
- try {
36
- t.writer = new tinymce.dom.XMLWriter();
37
- } catch (ex) {
38
- // IE might throw exception if ActiveX is disabled so we then switch to the slightly slower StringWriter
39
- t.writer = new tinymce.dom.StringWriter();
40
- }
41
-
42
- // Default settings
43
- t.settings = s = extend({
44
- dom : tinymce.DOM,
45
- valid_nodes : 0,
46
- node_filter : 0,
47
- attr_filter : 0,
48
- invalid_attrs : /^(mce_|_moz_|sizset|sizcache)/,
49
- closed : /^(br|hr|input|meta|img|link|param|area)$/,
50
- entity_encoding : 'named',
51
- entities : '160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',
52
- bool_attrs : /(checked|disabled|readonly|selected|nowrap)/,
53
- valid_elements : '*[*]',
54
- extended_valid_elements : 0,
55
- valid_child_elements : 0,
56
- invalid_elements : 0,
57
- fix_table_elements : 1,
58
- fix_list_elements : true,
59
- fix_content_duplication : true,
60
- convert_fonts_to_spans : false,
61
- font_size_classes : 0,
62
- font_size_style_values : 0,
63
- apply_source_formatting : 0,
64
- indent_mode : 'simple',
65
- indent_char : '\t',
66
- indent_levels : 1,
67
- remove_linebreaks : 1,
68
- remove_redundant_brs : 1,
69
- element_format : 'xhtml'
70
- }, s);
71
-
72
- t.dom = s.dom;
73
-
74
- if (s.remove_redundant_brs) {
75
- t.onPostProcess.add(function(se, o) {
76
- // Remove single BR at end of block elements since they get rendered
77
- o.content = o.content.replace(/(<br \/>\s*)+<\/(p|h[1-6]|div|li)>/gi, function(a, b, c) {
78
- // Check if it's a single element
79
- if (/^<br \/>\s*<\//.test(a))
80
- return '</' + c + '>';
81
-
82
- return a;
83
- });
84
- });
85
- }
86
-
87
- // Remove XHTML element endings i.e. produce crap :) XHTML is better
88
- if (s.element_format == 'html') {
89
- t.onPostProcess.add(function(se, o) {
90
- o.content = o.content.replace(/<([^>]+) \/>/g, '<$1>');
91
- });
92
- }
93
-
94
- if (s.fix_list_elements) {
95
- t.onPreProcess.add(function(se, o) {
96
- var nl, x, a = ['ol', 'ul'], i, n, p, r = /^(OL|UL)$/, np;
97
-
98
- function prevNode(e, n) {
99
- var a = n.split(','), i;
100
-
101
- while ((e = e.previousSibling) != null) {
102
- for (i=0; i<a.length; i++) {
103
- if (e.nodeName == a[i])
104
- return e;
105
- }
106
- }
107
-
108
- return null;
109
- };
110
-
111
- for (x=0; x<a.length; x++) {
112
- nl = t.dom.select(a[x], o.node);
113
-
114
- for (i=0; i<nl.length; i++) {
115
- n = nl[i];
116
- p = n.parentNode;
117
-
118
- if (r.test(p.nodeName)) {
119
- np = prevNode(n, 'LI');
120
-
121
- if (!np) {
122
- np = t.dom.create('li');
123
- np.innerHTML = '&nbsp;';
124
- np.appendChild(n);
125
- p.insertBefore(np, p.firstChild);
126
- } else
127
- np.appendChild(n);
128
- }
129
- }
130
- }
131
- });
132
- }
133
-
134
- if (s.fix_table_elements) {
135
- t.onPreProcess.add(function(se, o) {
136
- each(t.dom.select('p table', o.node), function(n) {
137
- // IE has a odd bug where tables inside paragraphs sometimes gets wrapped in a BODY and documentFragement element
138
- // This hack seems to resolve that issue. This will normally not happed since your contents should be valid in the first place
139
- if (isIE)
140
- n.outerHTML = n.outerHTML;
141
-
142
- t.dom.split(t.dom.getParent(n, 'p'), n);
143
- });
144
- });
145
- }
146
- },
147
-
148
- /**#@+
149
- * @method
150
- */
151
-
152
- /**
153
- * Sets a list of entities to use for the named entity encoded.
154
- *
155
- * @param {String} s List of entities in the following format: number,name,....
156
- */
157
- setEntities : function(s) {
158
- var t = this, a, i, l = {}, re = '', v;
159
-
160
- // No need to setup more than once
161
- if (t.entityLookup)
162
- return;
163
-
164
- // Build regex and lookup array
165
- a = s.split(',');
166
- for (i = 0; i < a.length; i += 2) {
167
- v = a[i];
168
-
169
- // Don't add default &amp; &quot; etc.
170
- if (v == 34 || v == 38 || v == 60 || v == 62)
171
- continue;
172
-
173
- l[String.fromCharCode(a[i])] = a[i + 1];
174
-
175
- v = parseInt(a[i]).toString(16);
176
- re += '\\u' + '0000'.substring(v.length) + v;
177
- }
178
-
179
- if (!re) {
180
- t.settings.entity_encoding = 'raw';
181
- return;
182
- }
183
-
184
- t.entitiesRE = new RegExp('[' + re + ']', 'g');
185
- t.entityLookup = l;
186
- },
187
-
188
- /**
189
- * Sets the valid child rules. This enables you to specify what elements can be childrens of what parents.
190
- * Consult the Wiki for format description on this input.
191
- *
192
- * @param {String} s String with valid child rules.
193
- */
194
- setValidChildRules : function(s) {
195
- this.childRules = null;
196
- this.addValidChildRules(s);
197
- },
198
-
199
- /**
200
- * Adds valid child rules. This enables you to specify what elements can be childrens of what parents.
201
- * Consult the Wiki for format description on this input.
202
- *
203
- * @param {String} s String with valid child rules to add.
204
- */
205
- addValidChildRules : function(s) {
206
- var t = this, inst, intr, bloc;
207
-
208
- if (!s)
209
- return;
210
-
211
- inst = 'A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';
212
- intr = 'A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';
213
- bloc = 'H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';
214
-
215
- each(s.split(','), function(s) {
216
- var p = s.split(/\[|\]/), re;
217
-
218
- s = '';
219
- each(p[1].split('|'), function(v) {
220
- if (s)
221
- s += '|';
222
-
223
- switch (v) {
224
- case '%itrans':
225
- v = intr;
226
- break;
227
-
228
- case '%itrans_na':
229
- v = intr.substring(2);
230
- break;
231
-
232
- case '%istrict':
233
- v = inst;
234
- break;
235
-
236
- case '%istrict_na':
237
- v = inst.substring(2);
238
- break;
239
-
240
- case '%btrans':
241
- v = bloc;
242
- break;
243
-
244
- case '%bstrict':
245
- v = bloc;
246
- break;
247
- }
248
-
249
- s += v;
250
- });
251
- re = new RegExp('^(' + s.toLowerCase() + ')$', 'i');
252
-
253
- each(p[0].split('/'), function(s) {
254
- t.childRules = t.childRules || {};
255
- t.childRules[s] = re;
256
- });
257
- });
258
-
259
- // Build regex
260
- s = '';
261
- each(t.childRules, function(v, k) {
262
- if (s)
263
- s += '|';
264
-
265
- s += k;
266
- });
267
-
268
- t.parentElementsRE = new RegExp('^(' + s.toLowerCase() + ')$', 'i');
269
-
270
- /*console.debug(t.parentElementsRE.toString());
271
- each(t.childRules, function(v) {
272
- console.debug(v.toString());
273
- });*/
274
- },
275
-
276
- /**
277
- * Sets the valid elements rules of the serializer this enables you to specify things like what elements should be
278
- * outputted and what attributes specific elements might have.
279
- * Consult the Wiki for more details on this format.
280
- *
281
- * @param {String} s Valid elements rules string.
282
- */
283
- setRules : function(s) {
284
- var t = this;
285
-
286
- t._setup();
287
- t.rules = {};
288
- t.wildRules = [];
289
- t.validElements = {};
290
-
291
- return t.addRules(s);
292
- },
293
-
294
- /**
295
- * Adds valid elements rules to the serializer this enables you to specify things like what elements should be
296
- * outputted and what attributes specific elements might have.
297
- * Consult the Wiki for more details on this format.
298
- *
299
- * @param {String} s Valid elements rules string to add.
300
- */
301
- addRules : function(s) {
302
- var t = this, dr;
303
-
304
- if (!s)
305
- return;
306
-
307
- t._setup();
308
-
309
- each(s.split(','), function(s) {
310
- var p = s.split(/\[|\]/), tn = p[0].split('/'), ra, at, wat, va = [];
311
-
312
- // Extend with default rules
313
- if (dr)
314
- at = tinymce.extend([], dr.attribs);
315
-
316
- // Parse attributes
317
- if (p.length > 1) {
318
- each(p[1].split('|'), function(s) {
319
- var ar = {}, i;
320
-
321
- at = at || [];
322
-
323
- // Parse attribute rule
324
- s = s.replace(/::/g, '~');
325
- s = /^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(s);
326
- s[2] = s[2].replace(/~/g, ':');
327
-
328
- // Add required attributes
329
- if (s[1] == '!') {
330
- ra = ra || [];
331
- ra.push(s[2]);
332
- }
333
-
334
- // Remove inherited attributes
335
- if (s[1] == '-') {
336
- for (i = 0; i <at.length; i++) {
337
- if (at[i].name == s[2]) {
338
- at.splice(i, 1);
339
- return;
340
- }
341
- }
342
- }
343
-
344
- switch (s[3]) {
345
- // Add default attrib values
346
- case '=':
347
- ar.defaultVal = s[4] || '';
348
- break;
349
-
350
- // Add forced attrib values
351
- case ':':
352
- ar.forcedVal = s[4];
353
- break;
354
-
355
- // Add validation values
356
- case '<':
357
- ar.validVals = s[4].split('?');
358
- break;
359
- }
360
-
361
- if (/[*.?]/.test(s[2])) {
362
- wat = wat || [];
363
- ar.nameRE = new RegExp('^' + wildcardToRE(s[2]) + '$');
364
- wat.push(ar);
365
- } else {
366
- ar.name = s[2];
367
- at.push(ar);
368
- }
369
-
370
- va.push(s[2]);
371
- });
372
- }
373
-
374
- // Handle element names
375
- each(tn, function(s, i) {
376
- var pr = s.charAt(0), x = 1, ru = {};
377
-
378
- // Extend with default rule data
379
- if (dr) {
380
- if (dr.noEmpty)
381
- ru.noEmpty = dr.noEmpty;
382
-
383
- if (dr.fullEnd)
384
- ru.fullEnd = dr.fullEnd;
385
-
386
- if (dr.padd)
387
- ru.padd = dr.padd;
388
- }
389
-
390
- // Handle prefixes
391
- switch (pr) {
392
- case '-':
393
- ru.noEmpty = true;
394
- break;
395
-
396
- case '+':
397
- ru.fullEnd = true;
398
- break;
399
-
400
- case '#':
401
- ru.padd = true;
402
- break;
403
-
404
- default:
405
- x = 0;
406
- }
407
-
408
- tn[i] = s = s.substring(x);
409
- t.validElements[s] = 1;
410
-
411
- // Add element name or element regex
412
- if (/[*.?]/.test(tn[0])) {
413
- ru.nameRE = new RegExp('^' + wildcardToRE(tn[0]) + '$');
414
- t.wildRules = t.wildRules || {};
415
- t.wildRules.push(ru);
416
- } else {
417
- ru.name = tn[0];
418
-
419
- // Store away default rule
420
- if (tn[0] == '@')
421
- dr = ru;
422
-
423
- t.rules[s] = ru;
424
- }
425
-
426
- ru.attribs = at;
427
-
428
- if (ra)
429
- ru.requiredAttribs = ra;
430
-
431
- if (wat) {
432
- // Build valid attributes regexp
433
- s = '';
434
- each(va, function(v) {
435
- if (s)
436
- s += '|';
437
-
438
- s += '(' + wildcardToRE(v) + ')';
439
- });
440
- ru.validAttribsRE = new RegExp('^' + s.toLowerCase() + '$');
441
- ru.wildAttribs = wat;
442
- }
443
- });
444
- });
445
-
446
- // Build valid elements regexp
447
- s = '';
448
- each(t.validElements, function(v, k) {
449
- if (s)
450
- s += '|';
451
-
452
- if (k != '@')
453
- s += k;
454
- });
455
- t.validElementsRE = new RegExp('^(' + wildcardToRE(s.toLowerCase()) + ')$');
456
-
457
- //console.debug(t.validElementsRE.toString());
458
- //console.dir(t.rules);
459
- //console.dir(t.wildRules);
460
- },
461
-
462
- /**
463
- * Finds a rule object by name.
464
- *
465
- * @param {String} n Name to look for in rules collection.
466
- * @return {Object} Rule object found or null if it wasn't found.
467
- */
468
- findRule : function(n) {
469
- var t = this, rl = t.rules, i, r;
470
-
471
- t._setup();
472
-
473
- // Exact match
474
- r = rl[n];
475
- if (r)
476
- return r;
477
-
478
- // Try wildcards
479
- rl = t.wildRules;
480
- for (i = 0; i < rl.length; i++) {
481
- if (rl[i].nameRE.test(n))
482
- return rl[i];
483
- }
484
-
485
- return null;
486
- },
487
-
488
- /**
489
- * Finds an attribute rule object by name.
490
- *
491
- * @param {Object} ru Rule object to search though.
492
- * @param {String} n Name of the rule to retrive.
493
- * @return {Object} Rule object of the specified attribute.
494
- */
495
- findAttribRule : function(ru, n) {
496
- var i, wa = ru.wildAttribs;
497
-
498
- for (i = 0; i < wa.length; i++) {
499
- if (wa[i].nameRE.test(n))
500
- return wa[i];
501
- }
502
-
503
- return null;
504
- },
505
-
506
- /**
507
- * Serializes the specified node into a HTML string.
508
- *
509
- * @param {Element} n Element/Node to serialize.
510
- * @param {Object} o Object to add serialized contents to, this object will also be passed to the event listeners.
511
- * @return {String} Serialized HTML contents.
512
- */
513
- serialize : function(n, o) {
514
- var h, t = this, doc;
515
-
516
- t._setup();
517
- o = o || {};
518
- o.format = o.format || 'html';
519
- n = n.cloneNode(true);
520
- t.processObj = o;
521
-
522
- // Nodes needs to be attached to something in WebKit due to a bug https://bugs.webkit.org/show_bug.cgi?id=25571
523
- if (tinymce.isWebKit) {
524
- doc = n.ownerDocument.implementation.createHTMLDocument("");
525
- doc.body.appendChild(n);
526
- }
527
-
528
- t.key = '' + (parseInt(t.key) + 1);
529
-
530
- // Pre process
531
- if (!o.no_events) {
532
- o.node = n;
533
- t.onPreProcess.dispatch(t, o);
534
- }
535
-
536
- // Serialize HTML DOM into a string
537
- t.writer.reset();
538
- t._serializeNode(n, o.getInner);
539
-
540
- // Post process
541
- o.content = t.writer.getContent();
542
-
543
- if (!o.no_events)
544
- t.onPostProcess.dispatch(t, o);
545
-
546
- t._postProcess(o);
547
- o.node = null;
548
-
549
- return tinymce.trim(o.content);
550
- },
551
-
552
- // Internal functions
553
-
554
- /**
555
- * Indents the specified content object.
556
- *
557
- * @param {Object} o Content object to indent.
558
- */
559
- _postProcess : function(o) {
560
- var t = this, s = t.settings, h = o.content, sc = [], p;
561
-
562
- if (o.format == 'html') {
563
- // Protect some elements
564
- p = t._protect({
565
- content : h,
566
- patterns : [
567
- {pattern : /(<script[^>]*>)(.*?)(<\/script>)/g},
568
- {pattern : /(<noscript[^>]*>)(.*?)(<\/noscript>)/g},
569
- {pattern : /(<style[^>]*>)(.*?)(<\/style>)/g},
570
- {pattern : /(<pre[^>]*>)(.*?)(<\/pre>)/g, encode : 1},
571
- {pattern : /(<!--\[CDATA\[)(.*?)(\]\]-->)/g}
572
- ]
573
- });
574
-
575
- h = p.content;
576
-
577
- // Entity encode
578
- if (s.entity_encoding !== 'raw')
579
- h = t._encode(h);
580
-
581
- // Use BR instead of &nbsp; padded P elements inside editor and use <p>&nbsp;</p> outside editor
582
- /* if (o.set)
583
- h = h.replace(/<p>\s+(&nbsp;|&#160;|\u00a0|<br \/>)\s+<\/p>/g, '<p><br /></p>');
584
- else
585
- h = h.replace(/<p>\s+(&nbsp;|&#160;|\u00a0|<br \/>)\s+<\/p>/g, '<p>$1</p>');*/
586
-
587
- // Since Gecko and Safari keeps whitespace in the DOM we need to
588
- // remove it inorder to match other browsers. But I think Gecko and Safari is right.
589
- // This process is only done when getting contents out from the editor.
590
- if (!o.set) {
591
- // We need to replace paragraph whitespace with an nbsp before indentation to keep the \u00a0 char
592
- h = h.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g, s.entity_encoding == 'numeric' ? '<p$1>&#160;</p>' : '<p$1>&nbsp;</p>');
593
-
594
- if (s.remove_linebreaks) {
595
- h = h.replace(/\r?\n|\r/g, ' ');
596
- h = h.replace(/(<[^>]+>)\s+/g, '$1 ');
597
- h = h.replace(/\s+(<\/[^>]+>)/g, ' $1');
598
- h = h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g, '<$1 $2>'); // Trim block start
599
- h = h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g, '<$1>'); // Trim block start
600
- h = h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g, '</$1>'); // Trim block end
601
- }
602
-
603
- // Simple indentation
604
- if (s.apply_source_formatting && s.indent_mode == 'simple') {
605
- // Add line breaks before and after block elements
606
- h = h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g, '\n<$1$2$3>\n');
607
- h = h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g, '\n<$1$2>');
608
- h = h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g, '</$1>\n');
609
- h = h.replace(/\n\n/g, '\n');
610
- }
611
- }
612
-
613
- h = t._unprotect(h, p);
614
-
615
- // Restore CDATA sections
616
- h = h.replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g, '<![CDATA[$1]]>');
617
-
618
- // Restore scripts
619
- h = h.replace(/(type|language)=\"mce-/g, '$1="');
620
-
621
- // Restore the \u00a0 character if raw mode is enabled
622
- if (s.entity_encoding == 'raw')
623
- h = h.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g, '<p$1>\u00a0</p>');
624
-
625
- // Restore noscript elements
626
- h = h.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g, function(v, attribs, text) {
627
- return '<noscript' + attribs + '>' + t.dom.decode(text.replace(/<!--|-->/g, '')) + '</noscript>';
628
- });
629
- }
630
-
631
- o.content = h;
632
- },
633
-
634
- _serializeNode : function(n, inn) {
635
- var t = this, s = t.settings, w = t.writer, hc, el, cn, i, l, a, at, no, v, nn, ru, ar, iv, closed;
636
-
637
- if (!s.node_filter || s.node_filter(n)) {
638
- switch (n.nodeType) {
639
- case 1: // Element
640
- if (n.hasAttribute ? n.hasAttribute('mce_bogus') : n.getAttribute('mce_bogus'))
641
- return;
642
-
643
- iv = false;
644
- hc = n.hasChildNodes();
645
- nn = n.getAttribute('mce_name') || n.nodeName.toLowerCase();
646
-
647
- // Add correct prefix on IE
648
- if (isIE) {
649
- if (n.scopeName !== 'HTML' && n.scopeName !== 'html')
650
- nn = n.scopeName + ':' + nn;
651
- }
652
-
653
- // Remove mce prefix on IE needed for the abbr element
654
- if (nn.indexOf('mce:') === 0)
655
- nn = nn.substring(4);
656
-
657
- // Check if valid
658
- if (!t.validElementsRE || !t.validElementsRE.test(nn) || (t.invalidElementsRE && t.invalidElementsRE.test(nn)) || inn) {
659
- iv = true;
660
- break;
661
- }
662
-
663
- if (isIE) {
664
- // Fix IE content duplication (DOM can have multiple copies of the same node)
665
- if (s.fix_content_duplication) {
666
- if (n.mce_serialized == t.key)
667
- return;
668
-
669
- n.mce_serialized = t.key;
670
- }
671
-
672
- // IE sometimes adds a / infront of the node name
673
- if (nn.charAt(0) == '/')
674
- nn = nn.substring(1);
675
- } else if (isGecko) {
676
- // Ignore br elements
677
- if (n.nodeName === 'BR' && n.getAttribute('type') == '_moz')
678
- return;
679
- }
680
-
681
- // Check if valid child
682
- if (t.childRules) {
683
- if (t.parentElementsRE.test(t.elementName)) {
684
- if (!t.childRules[t.elementName].test(nn)) {
685
- iv = true;
686
- break;
687
- }
688
- }
689
-
690
- t.elementName = nn;
691
- }
692
-
693
- ru = t.findRule(nn);
694
- nn = ru.name || nn;
695
- closed = s.closed.test(nn);
696
-
697
- // Skip empty nodes or empty node name in IE
698
- if ((!hc && ru.noEmpty) || (isIE && !nn)) {
699
- iv = true;
700
- break;
701
- }
702
-
703
- // Check required
704
- if (ru.requiredAttribs) {
705
- a = ru.requiredAttribs;
706
-
707
- for (i = a.length - 1; i >= 0; i--) {
708
- if (this.dom.getAttrib(n, a[i]) !== '')
709
- break;
710
- }
711
-
712
- // None of the required was there
713
- if (i == -1) {
714
- iv = true;
715
- break;
716
- }
717
- }
718
-
719
- w.writeStartElement(nn);
720
-
721
- // Add ordered attributes
722
- if (ru.attribs) {
723
- for (i=0, at = ru.attribs, l = at.length; i<l; i++) {
724
- a = at[i];
725
- v = t._getAttrib(n, a);
726
-
727
- if (v !== null)
728
- w.writeAttribute(a.name, v);
729
- }
730
- }
731
-
732
- // Add wild attributes
733
- if (ru.validAttribsRE) {
734
- at = t.dom.getAttribs(n);
735
- for (i=at.length-1; i>-1; i--) {
736
- no = at[i];
737
-
738
- if (no.specified) {
739
- a = no.nodeName.toLowerCase();
740
-
741
- if (s.invalid_attrs.test(a) || !ru.validAttribsRE.test(a))
742
- continue;
743
-
744
- ar = t.findAttribRule(ru, a);
745
- v = t._getAttrib(n, ar, a);
746
-
747
- if (v !== null)
748
- w.writeAttribute(a, v);
749
- }
750
- }
751
- }
752
-
753
- // Write text from script
754
- if (nn === 'script' && tinymce.trim(n.innerHTML)) {
755
- w.writeText('// '); // Padd it with a comment so it will parse on older browsers
756
- w.writeCDATA(n.innerHTML.replace(/<!--|-->|<\[CDATA\[|\]\]>/g, '')); // Remove comments and cdata stuctures
757
- hc = false;
758
- break;
759
- }
760
-
761
- // Padd empty nodes with a &nbsp;
762
- if (ru.padd) {
763
- // If it has only one bogus child, padd it anyway workaround for <td><br /></td> bug
764
- if (hc && (cn = n.firstChild) && cn.nodeType === 1 && n.childNodes.length === 1) {
765
- if (cn.hasAttribute ? cn.hasAttribute('mce_bogus') : cn.getAttribute('mce_bogus'))
766
- w.writeText('\u00a0');
767
- } else if (!hc)
768
- w.writeText('\u00a0'); // No children then padd it
769
- }
770
-
771
- break;
772
-
773
- case 3: // Text
774
- // Check if valid child
775
- if (t.childRules && t.parentElementsRE.test(t.elementName)) {
776
- if (!t.childRules[t.elementName].test(n.nodeName))
777
- return;
778
- }
779
-
780
- return w.writeText(n.nodeValue);
781
-
782
- case 4: // CDATA
783
- return w.writeCDATA(n.nodeValue);
784
-
785
- case 8: // Comment
786
- return w.writeComment(n.nodeValue);
787
- }
788
- } else if (n.nodeType == 1)
789
- hc = n.hasChildNodes();
790
-
791
- if (hc && !closed) {
792
- cn = n.firstChild;
793
-
794
- while (cn) {
795
- t._serializeNode(cn);
796
- t.elementName = nn;
797
- cn = cn.nextSibling;
798
- }
799
- }
800
-
801
- // Write element end
802
- if (!iv) {
803
- if (!closed)
804
- w.writeFullEndElement();
805
- else
806
- w.writeEndElement();
807
- }
808
- },
809
-
810
- _protect : function(o) {
811
- var t = this;
812
-
813
- o.items = o.items || [];
814
-
815
- function enc(s) {
816
- return s.replace(/[\r\n\\]/g, function(c) {
817
- if (c === '\n')
818
- return '\\n';
819
- else if (c === '\\')
820
- return '\\\\';
821
-
822
- return '\\r';
823
- });
824
- };
825
-
826
- function dec(s) {
827
- return s.replace(/\\[\\rn]/g, function(c) {
828
- if (c === '\\n')
829
- return '\n';
830
- else if (c === '\\\\')
831
- return '\\';
832
-
833
- return '\r';
834
- });
835
- };
836
-
837
- each(o.patterns, function(p) {
838
- o.content = dec(enc(o.content).replace(p.pattern, function(x, a, b, c) {
839
- b = dec(b);
840
-
841
- if (p.encode)
842
- b = t._encode(b);
843
-
844
- o.items.push(b);
845
- return a + '<!--mce:' + (o.items.length - 1) + '-->' + c;
846
- }));
847
- });
848
-
849
- return o;
850
- },
851
-
852
- _unprotect : function(h, o) {
853
- h = h.replace(/\<!--mce:([0-9]+)--\>/g, function(a, b) {
854
- return o.items[parseInt(b)];
855
- });
856
-
857
- o.items = [];
858
-
859
- return h;
860
- },
861
-
862
- _encode : function(h) {
863
- var t = this, s = t.settings, l;
864
-
865
- // Entity encode
866
- if (s.entity_encoding !== 'raw') {
867
- if (s.entity_encoding.indexOf('named') != -1) {
868
- t.setEntities(s.entities);
869
- l = t.entityLookup;
870
-
871
- h = h.replace(t.entitiesRE, function(a) {
872
- var v;
873
-
874
- if (v = l[a])
875
- a = '&' + v + ';';
876
-
877
- return a;
878
- });
879
- }
880
-
881
- if (s.entity_encoding.indexOf('numeric') != -1) {
882
- h = h.replace(/[\u007E-\uFFFF]/g, function(a) {
883
- return '&#' + a.charCodeAt(0) + ';';
884
- });
885
- }
886
- }
887
-
888
- return h;
889
- },
890
-
891
- _setup : function() {
892
- var t = this, s = this.settings;
893
-
894
- if (t.done)
895
- return;
896
-
897
- t.done = 1;
898
-
899
- t.setRules(s.valid_elements);
900
- t.addRules(s.extended_valid_elements);
901
- t.addValidChildRules(s.valid_child_elements);
902
-
903
- if (s.invalid_elements)
904
- t.invalidElementsRE = new RegExp('^(' + wildcardToRE(s.invalid_elements.replace(/,/g, '|').toLowerCase()) + ')$');
905
-
906
- if (s.attrib_value_filter)
907
- t.attribValueFilter = s.attribValueFilter;
908
- },
909
-
910
- _getAttrib : function(n, a, na) {
911
- var i, v;
912
-
913
- na = na || a.name;
914
-
915
- if (a.forcedVal && (v = a.forcedVal)) {
916
- if (v === '{$uid}')
917
- return this.dom.uniqueId();
918
-
919
- return v;
920
- }
921
-
922
- v = this.dom.getAttrib(n, na);
923
-
924
- // Bool attr
925
- if (this.settings.bool_attrs.test(na) && v) {
926
- v = ('' + v).toLowerCase();
927
-
928
- if (v === 'false' || v === '0')
929
- return null;
930
-
931
- v = na;
932
- }
933
-
934
- switch (na) {
935
- case 'rowspan':
936
- case 'colspan':
937
- // Whats the point? Remove usless attribute value
938
- if (v == '1')
939
- v = '';
940
-
941
- break;
942
- }
943
-
944
- if (this.attribValueFilter)
945
- v = this.attribValueFilter(na, v, n);
946
-
947
- if (a.validVals) {
948
- for (i = a.validVals.length - 1; i >= 0; i--) {
949
- if (v == a.validVals[i])
950
- break;
951
- }
952
-
953
- if (i == -1)
954
- return null;
955
- }
956
-
957
- if (v === '' && typeof(a.defaultVal) != 'undefined') {
958
- v = a.defaultVal;
959
-
960
- if (v === '{$uid}')
961
- return this.dom.uniqueId();
962
-
963
- return v;
964
- } else {
965
- // Remove internal mceItemXX classes when content is extracted from editor
966
- if (na == 'class' && this.processObj.get)
967
- v = v.replace(/\s?mceItem\w+\s?/g, '');
968
- }
969
-
970
- if (v === '')
971
- return null;
972
-
973
-
974
- return v;
975
- }
976
-
977
- /**#@-*/
978
- });
979
- })(tinymce);