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,934 +0,0 @@
1
- /**
2
- * $Id: EditorCommands.js 1070 2009-04-01 18:03:06Z spocke $
3
- *
4
- * @author Moxiecode
5
- * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
6
- */
7
-
8
- (function(tinymce) {
9
- var each = tinymce.each, isIE = tinymce.isIE, isGecko = tinymce.isGecko, isOpera = tinymce.isOpera, isWebKit = tinymce.isWebKit;
10
-
11
- /**
12
- * This is a internal class and no method in this class should be called directly form the out side.
13
- */
14
- tinymce.create('tinymce.EditorCommands', {
15
- EditorCommands : function(ed) {
16
- this.editor = ed;
17
- },
18
-
19
- execCommand : function(cmd, ui, val) {
20
- var t = this, ed = t.editor, f;
21
-
22
- switch (cmd) {
23
- // Ignore these
24
- case 'mceResetDesignMode':
25
- case 'mceBeginUndoLevel':
26
- return true;
27
-
28
- // Ignore these
29
- case 'unlink':
30
- t.UnLink();
31
- return true;
32
-
33
- // Bundle these together
34
- case 'JustifyLeft':
35
- case 'JustifyCenter':
36
- case 'JustifyRight':
37
- case 'JustifyFull':
38
- t.mceJustify(cmd, cmd.substring(7).toLowerCase());
39
- return true;
40
-
41
- default:
42
- f = this[cmd];
43
-
44
- if (f) {
45
- f.call(this, ui, val);
46
- return true;
47
- }
48
- }
49
-
50
- return false;
51
- },
52
-
53
- Indent : function() {
54
- var ed = this.editor, d = ed.dom, s = ed.selection, e, iv, iu;
55
-
56
- // Setup indent level
57
- iv = ed.settings.indentation;
58
- iu = /[a-z%]+$/i.exec(iv);
59
- iv = parseInt(iv);
60
-
61
- if (ed.settings.inline_styles && (!this.queryStateInsertUnorderedList() && !this.queryStateInsertOrderedList())) {
62
- each(s.getSelectedBlocks(), function(e) {
63
- d.setStyle(e, 'paddingLeft', (parseInt(e.style.paddingLeft || 0) + iv) + iu);
64
- });
65
-
66
- return;
67
- }
68
-
69
- ed.getDoc().execCommand('Indent', false, null);
70
-
71
- if (isIE) {
72
- d.getParent(s.getNode(), function(n) {
73
- if (n.nodeName == 'BLOCKQUOTE') {
74
- n.dir = n.style.cssText = '';
75
- }
76
- });
77
- }
78
- },
79
-
80
- Outdent : function() {
81
- var ed = this.editor, d = ed.dom, s = ed.selection, e, v, iv, iu;
82
-
83
- // Setup indent level
84
- iv = ed.settings.indentation;
85
- iu = /[a-z%]+$/i.exec(iv);
86
- iv = parseInt(iv);
87
-
88
- if (ed.settings.inline_styles && (!this.queryStateInsertUnorderedList() && !this.queryStateInsertOrderedList())) {
89
- each(s.getSelectedBlocks(), function(e) {
90
- v = Math.max(0, parseInt(e.style.paddingLeft || 0) - iv);
91
- d.setStyle(e, 'paddingLeft', v ? v + iu : '');
92
- });
93
-
94
- return;
95
- }
96
-
97
- ed.getDoc().execCommand('Outdent', false, null);
98
- },
99
-
100
- /*
101
- mceSetAttribute : function(u, v) {
102
- var ed = this.editor, d = ed.dom, e;
103
-
104
- if (e = d.getParent(ed.selection.getNode(), d.isBlock))
105
- d.setAttrib(e, v.name, v.value);
106
- },
107
- */
108
- mceSetContent : function(u, v) {
109
- this.editor.setContent(v);
110
- },
111
-
112
- mceToggleVisualAid : function() {
113
- var ed = this.editor;
114
-
115
- ed.hasVisual = !ed.hasVisual;
116
- ed.addVisual();
117
- },
118
-
119
- mceReplaceContent : function(u, v) {
120
- var s = this.editor.selection;
121
-
122
- s.setContent(v.replace(/\{\$selection\}/g, s.getContent({format : 'text'})));
123
- },
124
-
125
- mceInsertLink : function(u, v) {
126
- var ed = this.editor, s = ed.selection, e = ed.dom.getParent(s.getNode(), 'a');
127
-
128
- if (tinymce.is(v, 'string'))
129
- v = {href : v};
130
-
131
- function set(e) {
132
- each(v, function(v, k) {
133
- ed.dom.setAttrib(e, k, v);
134
- });
135
- };
136
-
137
- if (!e) {
138
- ed.execCommand('CreateLink', false, 'javascript:mctmp(0);');
139
- each(ed.dom.select('a[href=javascript:mctmp(0);]'), function(e) {
140
- set(e);
141
- });
142
- } else {
143
- if (v.href)
144
- set(e);
145
- else
146
- ed.dom.remove(e, 1);
147
- }
148
- },
149
-
150
- UnLink : function() {
151
- var ed = this.editor, s = ed.selection;
152
-
153
- if (s.isCollapsed())
154
- s.select(s.getNode());
155
-
156
- ed.getDoc().execCommand('unlink', false, null);
157
- s.collapse(0);
158
- },
159
-
160
- FontName : function(u, v) {
161
- var t = this, ed = t.editor, s = ed.selection, e;
162
-
163
- if (!v) {
164
- if (s.isCollapsed())
165
- s.select(s.getNode());
166
- } else {
167
- if (ed.settings.convert_fonts_to_spans)
168
- t._applyInlineStyle('span', {style : {fontFamily : v}});
169
- else
170
- ed.getDoc().execCommand('FontName', false, v);
171
- }
172
- },
173
-
174
- FontSize : function(u, v) {
175
- var ed = this.editor, s = ed.settings, fc, fs;
176
-
177
- // Use style options instead
178
- if (s.convert_fonts_to_spans && v >= 1 && v <= 7) {
179
- fs = tinymce.explode(s.font_size_style_values);
180
- fc = tinymce.explode(s.font_size_classes);
181
-
182
- if (fc)
183
- v = fc[v - 1] || v;
184
- else
185
- v = fs[v - 1] || v;
186
- }
187
-
188
- if (v >= 1 && v <= 7)
189
- ed.getDoc().execCommand('FontSize', false, v);
190
- else
191
- this._applyInlineStyle('span', {style : {fontSize : v}});
192
- },
193
-
194
- queryCommandValue : function(c) {
195
- var f = this['queryValue' + c];
196
-
197
- if (f)
198
- return f.call(this, c);
199
-
200
- return false;
201
- },
202
-
203
- queryCommandState : function(cmd) {
204
- var f;
205
-
206
- switch (cmd) {
207
- // Bundle these together
208
- case 'JustifyLeft':
209
- case 'JustifyCenter':
210
- case 'JustifyRight':
211
- case 'JustifyFull':
212
- return this.queryStateJustify(cmd, cmd.substring(7).toLowerCase());
213
-
214
- default:
215
- if (f = this['queryState' + cmd])
216
- return f.call(this, cmd);
217
- }
218
-
219
- return -1;
220
- },
221
-
222
- _queryState : function(c) {
223
- try {
224
- return this.editor.getDoc().queryCommandState(c);
225
- } catch (ex) {
226
- // Ignore exception
227
- }
228
- },
229
-
230
- _queryVal : function(c) {
231
- try {
232
- return this.editor.getDoc().queryCommandValue(c);
233
- } catch (ex) {
234
- // Ignore exception
235
- }
236
- },
237
-
238
- queryValueFontSize : function() {
239
- var ed = this.editor, v = 0, p;
240
-
241
- if (p = ed.dom.getParent(ed.selection.getNode(), 'span'))
242
- v = p.style.fontSize;
243
-
244
- if (!v && (isOpera || isWebKit)) {
245
- if (p = ed.dom.getParent(ed.selection.getNode(), 'font'))
246
- v = p.size;
247
-
248
- return v;
249
- }
250
-
251
- return v || this._queryVal('FontSize');
252
- },
253
-
254
- queryValueFontName : function() {
255
- var ed = this.editor, v = 0, p;
256
-
257
- if (p = ed.dom.getParent(ed.selection.getNode(), 'font'))
258
- v = p.face;
259
-
260
- if (p = ed.dom.getParent(ed.selection.getNode(), 'span'))
261
- v = p.style.fontFamily.replace(/, /g, ',').replace(/[\'\"]/g, '').toLowerCase();
262
-
263
- if (!v)
264
- v = this._queryVal('FontName');
265
-
266
- return v;
267
- },
268
-
269
- mceJustify : function(c, v) {
270
- var ed = this.editor, se = ed.selection, n = se.getNode(), nn = n.nodeName, bl, nb, dom = ed.dom, rm;
271
-
272
- if (ed.settings.inline_styles && this.queryStateJustify(c, v))
273
- rm = 1;
274
-
275
- bl = dom.getParent(n, ed.dom.isBlock);
276
-
277
- if (nn == 'IMG') {
278
- if (v == 'full')
279
- return;
280
-
281
- if (rm) {
282
- if (v == 'center')
283
- dom.setStyle(bl || n.parentNode, 'textAlign', '');
284
-
285
- dom.setStyle(n, 'float', '');
286
- this.mceRepaint();
287
- return;
288
- }
289
-
290
- if (v == 'center') {
291
- // Do not change table elements
292
- if (bl && /^(TD|TH)$/.test(bl.nodeName))
293
- bl = 0;
294
-
295
- if (!bl || bl.childNodes.length > 1) {
296
- nb = dom.create('p');
297
- nb.appendChild(n.cloneNode(false));
298
-
299
- if (bl)
300
- dom.insertAfter(nb, bl);
301
- else
302
- dom.insertAfter(nb, n);
303
-
304
- dom.remove(n);
305
- n = nb.firstChild;
306
- bl = nb;
307
- }
308
-
309
- dom.setStyle(bl, 'textAlign', v);
310
- dom.setStyle(n, 'float', '');
311
- } else {
312
- dom.setStyle(n, 'float', v);
313
- dom.setStyle(bl || n.parentNode, 'textAlign', '');
314
- }
315
-
316
- this.mceRepaint();
317
- return;
318
- }
319
-
320
- // Handle the alignment outselfs, less quirks in all browsers
321
- if (ed.settings.inline_styles && ed.settings.forced_root_block) {
322
- if (rm)
323
- v = '';
324
-
325
- each(se.getSelectedBlocks(dom.getParent(se.getStart(), dom.isBlock), dom.getParent(se.getEnd(), dom.isBlock)), function(e) {
326
- dom.setAttrib(e, 'align', '');
327
- dom.setStyle(e, 'textAlign', v == 'full' ? 'justify' : v);
328
- });
329
-
330
- return;
331
- } else if (!rm)
332
- ed.getDoc().execCommand(c, false, null);
333
-
334
- if (ed.settings.inline_styles) {
335
- if (rm) {
336
- dom.getParent(ed.selection.getNode(), function(n) {
337
- if (n.style && n.style.textAlign)
338
- dom.setStyle(n, 'textAlign', '');
339
- });
340
-
341
- return;
342
- }
343
-
344
- each(dom.select('*'), function(n) {
345
- var v = n.align;
346
-
347
- if (v) {
348
- if (v == 'full')
349
- v = 'justify';
350
-
351
- dom.setStyle(n, 'textAlign', v);
352
- dom.setAttrib(n, 'align', '');
353
- }
354
- });
355
- }
356
- },
357
-
358
- mceSetCSSClass : function(u, v) {
359
- this.mceSetStyleInfo(0, {command : 'setattrib', name : 'class', value : v});
360
- },
361
-
362
- getSelectedElement : function() {
363
- var t = this, ed = t.editor, dom = ed.dom, se = ed.selection, r = se.getRng(), r1, r2, sc, ec, so, eo, e, sp, ep, re;
364
-
365
- if (se.isCollapsed() || r.item)
366
- return se.getNode();
367
-
368
- // Setup regexp
369
- re = ed.settings.merge_styles_invalid_parents;
370
- if (tinymce.is(re, 'string'))
371
- re = new RegExp(re, 'i');
372
-
373
- if (isIE) {
374
- r1 = r.duplicate();
375
- r1.collapse(true);
376
- sc = r1.parentElement();
377
-
378
- r2 = r.duplicate();
379
- r2.collapse(false);
380
- ec = r2.parentElement();
381
-
382
- if (sc != ec) {
383
- r1.move('character', 1);
384
- sc = r1.parentElement();
385
- }
386
-
387
- if (sc == ec) {
388
- r1 = r.duplicate();
389
- r1.moveToElementText(sc);
390
-
391
- if (r1.compareEndPoints('StartToStart', r) == 0 && r1.compareEndPoints('EndToEnd', r) == 0)
392
- return re && re.test(sc.nodeName) ? null : sc;
393
- }
394
- } else {
395
- function getParent(n) {
396
- return dom.getParent(n, '*');
397
- };
398
-
399
- sc = r.startContainer;
400
- ec = r.endContainer;
401
- so = r.startOffset;
402
- eo = r.endOffset;
403
-
404
- if (!r.collapsed) {
405
- if (sc == ec) {
406
- if (so - eo < 2) {
407
- if (sc.hasChildNodes()) {
408
- sp = sc.childNodes[so];
409
- return re && re.test(sp.nodeName) ? null : sp;
410
- }
411
- }
412
- }
413
- }
414
-
415
- if (sc.nodeType != 3 || ec.nodeType != 3)
416
- return null;
417
-
418
- if (so == 0) {
419
- sp = getParent(sc);
420
-
421
- if (sp && sp.firstChild != sc)
422
- sp = null;
423
- }
424
-
425
- if (so == sc.nodeValue.length) {
426
- e = sc.nextSibling;
427
-
428
- if (e && e.nodeType == 1)
429
- sp = sc.nextSibling;
430
- }
431
-
432
- if (eo == 0) {
433
- e = ec.previousSibling;
434
-
435
- if (e && e.nodeType == 1)
436
- ep = e;
437
- }
438
-
439
- if (eo == ec.nodeValue.length) {
440
- ep = getParent(ec);
441
-
442
- if (ep && ep.lastChild != ec)
443
- ep = null;
444
- }
445
-
446
- // Same element
447
- if (sp == ep)
448
- return re && sp && re.test(sp.nodeName) ? null : sp;
449
- }
450
-
451
- return null;
452
- },
453
-
454
- mceSetStyleInfo : function(u, v) {
455
- var t = this, ed = t.editor, d = ed.getDoc(), dom = ed.dom, e, b, s = ed.selection, nn = v.wrapper || 'span', b = s.getBookmark(), re;
456
-
457
- function set(n, e) {
458
- if (n.nodeType == 1) {
459
- switch (v.command) {
460
- case 'setattrib':
461
- return dom.setAttrib(n, v.name, v.value);
462
-
463
- case 'setstyle':
464
- return dom.setStyle(n, v.name, v.value);
465
-
466
- case 'removeformat':
467
- return dom.setAttrib(n, 'class', '');
468
- }
469
- }
470
- };
471
-
472
- // Setup regexp
473
- re = ed.settings.merge_styles_invalid_parents;
474
- if (tinymce.is(re, 'string'))
475
- re = new RegExp(re, 'i');
476
-
477
- // Set style info on selected element
478
- if ((e = t.getSelectedElement()) && !ed.settings.force_span_wrappers)
479
- set(e, 1);
480
- else {
481
- // Generate wrappers and set styles on them
482
- d.execCommand('FontName', false, '__');
483
- each(dom.select('span,font'), function(n) {
484
- var sp, e;
485
-
486
- if (dom.getAttrib(n, 'face') == '__' || n.style.fontFamily === '__') {
487
- sp = dom.create(nn, {mce_new : '1'});
488
-
489
- set(sp);
490
-
491
- each (n.childNodes, function(n) {
492
- sp.appendChild(n.cloneNode(true));
493
- });
494
-
495
- dom.replace(sp, n);
496
- }
497
- });
498
- }
499
-
500
- // Remove wrappers inside new ones
501
- each(dom.select(nn).reverse(), function(n) {
502
- var p = n.parentNode;
503
-
504
- // Check if it's an old span in a new wrapper
505
- if (!dom.getAttrib(n, 'mce_new')) {
506
- // Find new wrapper
507
- p = dom.getParent(n, '*[mce_new]');
508
-
509
- if (p)
510
- dom.remove(n, 1);
511
- }
512
- });
513
-
514
- // Merge wrappers with parent wrappers
515
- each(dom.select(nn).reverse(), function(n) {
516
- var p = n.parentNode;
517
-
518
- if (!p || !dom.getAttrib(n, 'mce_new'))
519
- return;
520
-
521
- if (ed.settings.force_span_wrappers && p.nodeName != 'SPAN')
522
- return;
523
-
524
- // Has parent of the same type and only child
525
- if (p.nodeName == nn.toUpperCase() && p.childNodes.length == 1)
526
- return dom.remove(p, 1);
527
-
528
- // Has parent that is more suitable to have the class and only child
529
- if (n.nodeType == 1 && (!re || !re.test(p.nodeName)) && p.childNodes.length == 1) {
530
- set(p); // Set style info on parent instead
531
- dom.setAttrib(n, 'class', '');
532
- }
533
- });
534
-
535
- // Remove empty wrappers
536
- each(dom.select(nn).reverse(), function(n) {
537
- if (dom.getAttrib(n, 'mce_new') || (dom.getAttribs(n).length <= 1 && n.className === '')) {
538
- if (!dom.getAttrib(n, 'class') && !dom.getAttrib(n, 'style'))
539
- return dom.remove(n, 1);
540
-
541
- dom.setAttrib(n, 'mce_new', ''); // Remove mce_new marker
542
- }
543
- });
544
-
545
- s.moveToBookmark(b);
546
- },
547
-
548
- queryStateJustify : function(c, v) {
549
- var ed = this.editor, n = ed.selection.getNode(), dom = ed.dom;
550
-
551
- if (n && n.nodeName == 'IMG') {
552
- if (dom.getStyle(n, 'float') == v)
553
- return 1;
554
-
555
- return n.parentNode.style.textAlign == v;
556
- }
557
-
558
- n = dom.getParent(ed.selection.getStart(), function(n) {
559
- return n.nodeType == 1 && n.style.textAlign;
560
- });
561
-
562
- if (v == 'full')
563
- v = 'justify';
564
-
565
- if (ed.settings.inline_styles)
566
- return (n && n.style.textAlign == v);
567
-
568
- return this._queryState(c);
569
- },
570
-
571
- ForeColor : function(ui, v) {
572
- var ed = this.editor;
573
-
574
- if (ed.settings.convert_fonts_to_spans) {
575
- this._applyInlineStyle('span', {style : {color : v}});
576
- return;
577
- } else
578
- ed.getDoc().execCommand('ForeColor', false, v);
579
- },
580
-
581
- HiliteColor : function(ui, val) {
582
- var t = this, ed = t.editor, d = ed.getDoc();
583
-
584
- if (ed.settings.convert_fonts_to_spans) {
585
- this._applyInlineStyle('span', {style : {backgroundColor : val}});
586
- return;
587
- }
588
-
589
- function set(s) {
590
- if (!isGecko)
591
- return;
592
-
593
- try {
594
- // Try new Gecko method
595
- d.execCommand("styleWithCSS", 0, s);
596
- } catch (ex) {
597
- // Use old
598
- d.execCommand("useCSS", 0, !s);
599
- }
600
- };
601
-
602
- if (isGecko || isOpera) {
603
- set(true);
604
- d.execCommand('hilitecolor', false, val);
605
- set(false);
606
- } else
607
- d.execCommand('BackColor', false, val);
608
- },
609
-
610
- FormatBlock : function(ui, val) {
611
- var t = this, ed = t.editor, s = ed.selection, dom = ed.dom, bl, nb, b;
612
-
613
- function isBlock(n) {
614
- return /^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);
615
- };
616
-
617
- bl = dom.getParent(s.getNode(), function(n) {
618
- return isBlock(n);
619
- });
620
-
621
- // IE has an issue where it removes the parent div if you change format on the paragrah in <div><p>Content</p></div>
622
- // FF and Opera doesn't change parent DIV elements if you switch format
623
- if (bl) {
624
- if ((isIE && isBlock(bl.parentNode)) || bl.nodeName == 'DIV') {
625
- // Rename block element
626
- nb = ed.dom.create(val);
627
-
628
- each(dom.getAttribs(bl), function(v) {
629
- dom.setAttrib(nb, v.nodeName, dom.getAttrib(bl, v.nodeName));
630
- });
631
-
632
- b = s.getBookmark();
633
- dom.replace(nb, bl, 1);
634
- s.moveToBookmark(b);
635
- ed.nodeChanged();
636
- return;
637
- }
638
- }
639
-
640
- val = ed.settings.forced_root_block ? (val || '<p>') : val;
641
-
642
- if (val.indexOf('<') == -1)
643
- val = '<' + val + '>';
644
-
645
- if (tinymce.isGecko)
646
- val = val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi, '$1');
647
-
648
- ed.getDoc().execCommand('FormatBlock', false, val);
649
- },
650
-
651
- mceCleanup : function() {
652
- var ed = this.editor, s = ed.selection, b = s.getBookmark();
653
- ed.setContent(ed.getContent());
654
- s.moveToBookmark(b);
655
- },
656
-
657
- mceRemoveNode : function(ui, val) {
658
- var ed = this.editor, s = ed.selection, b, n = val || s.getNode();
659
-
660
- // Make sure that the body node isn't removed
661
- if (n == ed.getBody())
662
- return;
663
-
664
- b = s.getBookmark();
665
- ed.dom.remove(n, 1);
666
- s.moveToBookmark(b);
667
- ed.nodeChanged();
668
- },
669
-
670
- mceSelectNodeDepth : function(ui, val) {
671
- var ed = this.editor, s = ed.selection, c = 0;
672
-
673
- ed.dom.getParent(s.getNode(), function(n) {
674
- if (n.nodeType == 1 && c++ == val) {
675
- s.select(n);
676
- ed.nodeChanged();
677
- return false;
678
- }
679
- }, ed.getBody());
680
- },
681
-
682
- mceSelectNode : function(u, v) {
683
- this.editor.selection.select(v);
684
- },
685
-
686
- mceInsertContent : function(ui, val) {
687
- this.editor.selection.setContent(val);
688
- },
689
-
690
- mceInsertRawHTML : function(ui, val) {
691
- var ed = this.editor;
692
-
693
- ed.selection.setContent('tiny_mce_marker');
694
- ed.setContent(ed.getContent().replace(/tiny_mce_marker/g, val));
695
- },
696
-
697
- mceRepaint : function() {
698
- var s, b, e = this.editor;
699
-
700
- if (tinymce.isGecko) {
701
- try {
702
- s = e.selection;
703
- b = s.getBookmark(true);
704
-
705
- if (s.getSel())
706
- s.getSel().selectAllChildren(e.getBody());
707
-
708
- s.collapse(true);
709
- s.moveToBookmark(b);
710
- } catch (ex) {
711
- // Ignore
712
- }
713
- }
714
- },
715
-
716
- queryStateUnderline : function() {
717
- var ed = this.editor, n = ed.selection.getNode();
718
-
719
- if (n && n.nodeName == 'A')
720
- return false;
721
-
722
- return this._queryState('Underline');
723
- },
724
-
725
- queryStateOutdent : function() {
726
- var ed = this.editor, n;
727
-
728
- if (ed.settings.inline_styles) {
729
- if ((n = ed.dom.getParent(ed.selection.getStart(), ed.dom.isBlock)) && parseInt(n.style.paddingLeft) > 0)
730
- return true;
731
-
732
- if ((n = ed.dom.getParent(ed.selection.getEnd(), ed.dom.isBlock)) && parseInt(n.style.paddingLeft) > 0)
733
- return true;
734
- }
735
-
736
- return this.queryStateInsertUnorderedList() || this.queryStateInsertOrderedList() || (!ed.settings.inline_styles && !!ed.dom.getParent(ed.selection.getNode(), 'BLOCKQUOTE'));
737
- },
738
-
739
- queryStateInsertUnorderedList : function() {
740
- return this.editor.dom.getParent(this.editor.selection.getNode(), 'UL');
741
- },
742
-
743
- queryStateInsertOrderedList : function() {
744
- return this.editor.dom.getParent(this.editor.selection.getNode(), 'OL');
745
- },
746
-
747
- queryStatemceBlockQuote : function() {
748
- return !!this.editor.dom.getParent(this.editor.selection.getStart(), function(n) {return n.nodeName === 'BLOCKQUOTE';});
749
- },
750
-
751
- _applyInlineStyle : function(na, at, op) {
752
- var t = this, ed = t.editor, dom = ed.dom, bm, lo = {}, kh, found;
753
-
754
- na = na.toUpperCase();
755
-
756
- if (op && op.check_classes && at['class'])
757
- op.check_classes.push(at['class']);
758
-
759
- function removeEmpty() {
760
- each(dom.select(na).reverse(), function(n) {
761
- var c = 0;
762
-
763
- // Check if there is any attributes
764
- each(dom.getAttribs(n), function(an) {
765
- if (an.nodeName.substring(0, 1) != '_' && dom.getAttrib(n, an.nodeName) != '') {
766
- //console.log(dom.getOuterHTML(n), dom.getAttrib(n, an.nodeName));
767
- c++;
768
- }
769
- });
770
-
771
- // No attributes then remove the element and keep the children
772
- if (c == 0)
773
- dom.remove(n, 1);
774
- });
775
- };
776
-
777
- function replaceFonts() {
778
- var bm;
779
-
780
- each(dom.select('span,font'), function(n) {
781
- if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline') {
782
- if (!bm)
783
- bm = ed.selection.getBookmark();
784
-
785
- at._mce_new = '1';
786
- dom.replace(dom.create(na, at), n, 1);
787
- }
788
- });
789
-
790
- // Remove redundant elements
791
- each(dom.select(na + '[_mce_new]'), function(n) {
792
- function removeStyle(n) {
793
- if (n.nodeType == 1) {
794
- each(at.style, function(v, k) {
795
- dom.setStyle(n, k, '');
796
- });
797
-
798
- // Remove spans with the same class or marked classes
799
- if (at['class'] && n.className && op) {
800
- each(op.check_classes, function(c) {
801
- if (dom.hasClass(n, c))
802
- dom.removeClass(n, c);
803
- });
804
- }
805
- }
806
- };
807
-
808
- // Remove specified style information from child elements
809
- each(dom.select(na, n), removeStyle);
810
-
811
- // Remove the specified style information on parent if current node is only child (IE)
812
- if (n.parentNode && n.parentNode.nodeType == 1 && n.parentNode.childNodes.length == 1)
813
- removeStyle(n.parentNode);
814
-
815
- // Remove the child elements style info if a parent already has it
816
- dom.getParent(n.parentNode, function(pn) {
817
- if (pn.nodeType == 1) {
818
- if (at.style) {
819
- each(at.style, function(v, k) {
820
- var sv;
821
-
822
- if (!lo[k] && (sv = dom.getStyle(pn, k))) {
823
- if (sv === v)
824
- dom.setStyle(n, k, '');
825
-
826
- lo[k] = 1;
827
- }
828
- });
829
- }
830
-
831
- // Remove spans with the same class or marked classes
832
- if (at['class'] && pn.className && op) {
833
- each(op.check_classes, function(c) {
834
- if (dom.hasClass(pn, c))
835
- dom.removeClass(n, c);
836
- });
837
- }
838
- }
839
-
840
- return false;
841
- });
842
-
843
- n.removeAttribute('_mce_new');
844
- });
845
-
846
- removeEmpty();
847
- ed.selection.moveToBookmark(bm);
848
-
849
- return !!bm;
850
- };
851
-
852
- // Create inline elements
853
- ed.focus();
854
- ed.getDoc().execCommand('FontName', false, 'mceinline');
855
- replaceFonts();
856
-
857
- if (kh = t._applyInlineStyle.keyhandler) {
858
- ed.onKeyUp.remove(kh);
859
- ed.onKeyPress.remove(kh);
860
- ed.onKeyDown.remove(kh);
861
- ed.onSetContent.remove(t._applyInlineStyle.chandler);
862
- }
863
-
864
- if (ed.selection.isCollapsed()) {
865
- // IE will format the current word so this code can't be executed on that browser
866
- if (!isIE) {
867
- each(dom.getParents(ed.selection.getNode(), 'span'), function(n) {
868
- each(at.style, function(v, k) {
869
- var kv;
870
-
871
- if (kv = dom.getStyle(n, k)) {
872
- if (kv == v) {
873
- dom.setStyle(n, k, '');
874
- found = 2;
875
- return false;
876
- }
877
-
878
- found = 1;
879
- return false;
880
- }
881
- });
882
-
883
- if (found)
884
- return false;
885
- });
886
-
887
- if (found == 2) {
888
- bm = ed.selection.getBookmark();
889
-
890
- removeEmpty();
891
-
892
- ed.selection.moveToBookmark(bm);
893
-
894
- // Node change needs to be detached since the onselect event
895
- // for the select box will run the onclick handler after onselect call. Todo: Add a nicer fix!
896
- window.setTimeout(function() {
897
- ed.nodeChanged();
898
- }, 1);
899
-
900
- return;
901
- }
902
- }
903
-
904
- // Start collecting styles
905
- t._pendingStyles = tinymce.extend(t._pendingStyles || {}, at.style);
906
-
907
- t._applyInlineStyle.chandler = ed.onSetContent.add(function() {
908
- delete t._pendingStyles;
909
- });
910
-
911
- t._applyInlineStyle.keyhandler = kh = function(e) {
912
- // Use pending styles
913
- if (t._pendingStyles) {
914
- at.style = t._pendingStyles;
915
- delete t._pendingStyles;
916
- }
917
-
918
- if (replaceFonts()) {
919
- ed.onKeyDown.remove(t._applyInlineStyle.keyhandler);
920
- ed.onKeyPress.remove(t._applyInlineStyle.keyhandler);
921
- }
922
-
923
- if (e.type == 'keyup')
924
- ed.onKeyUp.remove(t._applyInlineStyle.keyhandler);
925
- };
926
-
927
- ed.onKeyDown.add(kh);
928
- ed.onKeyPress.add(kh);
929
- ed.onKeyUp.add(kh);
930
- } else
931
- t._pendingStyles = 0;
932
- }
933
- });
934
- })(tinymce);