skylinecms 3.0.8 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,791 +0,0 @@
1
- /*
2
- * QUnit - jQuery unit testrunner
3
- *
4
- * http://docs.jquery.com/QUnit
5
- *
6
- * Copyright (c) 2008 John Resig, Jörn Zaefferer
7
- * Dual licensed under the MIT (MIT-LICENSE.txt)
8
- * and GPL (GPL-LICENSE.txt) licenses.
9
- *
10
- * $Id: testrunner.js 6071 2009-01-09 08:42:39Z joern.zaefferer $
11
- */
12
-
13
- (function($) {
14
-
15
- // Tests for equality any JavaScript type and structure without unexpected results.
16
- // Discussions and reference: http://philrathe.com/articles/equiv
17
- // Test suites: http://philrathe.com/tests/equiv
18
- // Author: Philippe Rathé <prathe@gmail.com>
19
- var equiv = function () {
20
-
21
- var innerEquiv; // the real equiv function
22
- var callers = []; // stack to decide between skip/abort functions
23
-
24
- // Determine what is o.
25
- function hoozit(o) {
26
- if (typeof o === "string") {
27
- return "string";
28
-
29
- } else if (typeof o === "boolean") {
30
- return "boolean";
31
-
32
- } else if (typeof o === "number") {
33
-
34
- if (isNaN(o)) {
35
- return "nan";
36
- } else {
37
- return "number";
38
- }
39
-
40
- } else if (typeof o === "undefined") {
41
- return "undefined";
42
-
43
- // consider: typeof null === object
44
- } else if (o === null) {
45
- return "null";
46
-
47
- // consider: typeof [] === object
48
- } else if (o instanceof Array) {
49
- return "array";
50
-
51
- // consider: typeof new Date() === object
52
- } else if (o instanceof Date) {
53
- return "date";
54
-
55
- // consider: /./ instanceof Object;
56
- // /./ instanceof RegExp;
57
- // typeof /./ === "function"; // => false in IE and Opera,
58
- // true in FF and Safari
59
- } else if (o instanceof RegExp) {
60
- return "regexp";
61
-
62
- } else if (typeof o === "object") {
63
- return "object";
64
-
65
- } else if (o instanceof Function) {
66
- return "function";
67
- }
68
- }
69
-
70
- // Call the o related callback with the given arguments.
71
- function bindCallbacks(o, callbacks, args) {
72
- var prop = hoozit(o);
73
- if (prop) {
74
- if (hoozit(callbacks[prop]) === "function") {
75
- return callbacks[prop].apply(callbacks, args);
76
- } else {
77
- return callbacks[prop]; // or undefined
78
- }
79
- }
80
- }
81
-
82
- var callbacks = function () {
83
-
84
- // for string, boolean, number and null
85
- function useStrictEquality(b, a) {
86
- return a === b;
87
- }
88
-
89
- return {
90
- "string": useStrictEquality,
91
- "boolean": useStrictEquality,
92
- "number": useStrictEquality,
93
- "null": useStrictEquality,
94
- "undefined": useStrictEquality,
95
-
96
- "nan": function (b) {
97
- return isNaN(b);
98
- },
99
-
100
- "date": function (b, a) {
101
- return hoozit(b) === "date" && a.valueOf() === b.valueOf();
102
- },
103
-
104
- "regexp": function (b, a) {
105
- return hoozit(b) === "regexp" &&
106
- a.source === b.source && // the regex itself
107
- a.global === b.global && // and its modifers (gmi) ...
108
- a.ignoreCase === b.ignoreCase &&
109
- a.multiline === b.multiline;
110
- },
111
-
112
- // - skip when the property is a method of an instance (OOP)
113
- // - abort otherwise,
114
- // initial === would have catch identical references anyway
115
- "function": function () {
116
- var caller = callers[callers.length - 1];
117
- return caller !== Object &&
118
- typeof caller !== "undefined";
119
- },
120
-
121
- "array": function (b, a) {
122
- var i;
123
- var len;
124
-
125
- // b could be an object literal here
126
- if ( ! (hoozit(b) === "array")) {
127
- return false;
128
- }
129
-
130
- len = a.length;
131
- if (len !== b.length) { // safe and faster
132
- return false;
133
- }
134
- for (i = 0; i < len; i++) {
135
- if( ! innerEquiv(a[i], b[i])) {
136
- return false;
137
- }
138
- }
139
- return true;
140
- },
141
-
142
- "object": function (b, a) {
143
- var i;
144
- var eq = true; // unless we can proove it
145
- var aProperties = [], bProperties = []; // collection of strings
146
-
147
- // comparing constructors is more strict than using instanceof
148
- if ( a.constructor !== b.constructor) {
149
- return false;
150
- }
151
-
152
- // stack constructor before traversing properties
153
- callers.push(a.constructor);
154
-
155
- for (i in a) { // be strict: don't ensures hasOwnProperty and go deep
156
-
157
- aProperties.push(i); // collect a's properties
158
-
159
- if ( ! innerEquiv(a[i], b[i])) {
160
- eq = false;
161
- }
162
- }
163
-
164
- callers.pop(); // unstack, we are done
165
-
166
- for (i in b) {
167
- bProperties.push(i); // collect b's properties
168
- }
169
-
170
- // Ensures identical properties name
171
- return eq && innerEquiv(aProperties.sort(), bProperties.sort());
172
- }
173
- };
174
- }();
175
-
176
- innerEquiv = function () { // can take multiple arguments
177
- var args = Array.prototype.slice.apply(arguments);
178
- if (args.length < 2) {
179
- return true; // end transition
180
- }
181
-
182
- return (function (a, b) {
183
- if (a === b) {
184
- return true; // catch the most you can
185
-
186
- } else if (typeof a !== typeof b || a === null || b === null || typeof a === "undefined" || typeof b === "undefined") {
187
- return false; // don't lose time with error prone cases
188
-
189
- } else {
190
- return bindCallbacks(a, callbacks, [b, a]);
191
- }
192
-
193
- // apply transition with (1..n) arguments
194
- })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1));
195
- };
196
-
197
- return innerEquiv;
198
- }(); // equiv
199
-
200
- var GETParams = $.map( location.search.slice(1).split('&'), decodeURIComponent ),
201
- ngindex = $.inArray("noglobals", GETParams),
202
- noglobals = ngindex !== -1;
203
-
204
- if( noglobals )
205
- GETParams.splice( ngindex, 1 );
206
-
207
- var config = {
208
- stats: {
209
- all: 0,
210
- bad: 0
211
- },
212
- queue: [],
213
- // block until document ready
214
- blocking: true,
215
- //restrict modules/tests by get parameters
216
- filters: GETParams,
217
- isLocal: !!(window.location.protocol == 'file:')
218
- };
219
-
220
- // public API as global methods
221
- $.extend(window, {
222
- test: test,
223
- module: module,
224
- expect: expect,
225
- ok: ok,
226
- equals: equals,
227
- start: start,
228
- stop: stop,
229
- reset: reset,
230
- run : run,
231
- isLocal: config.isLocal,
232
- same: function(a, b, message) {
233
- push(equiv(a, b), a, b, message);
234
- },
235
- QUnit: {
236
- equiv: equiv
237
- },
238
- // legacy methods below
239
- isSet: isSet,
240
- isObj: isObj,
241
- compare: function() {
242
- throw "compare is deprecated - use same() instead";
243
- },
244
- compare2: function() {
245
- throw "compare2 is deprecated - use same() instead";
246
- },
247
- serialArray: function() {
248
- throw "serialArray is deprecated - use jsDump.parse() instead";
249
- },
250
- q: q,
251
- t: t,
252
- url: url,
253
- triggerEvent: triggerEvent
254
- });
255
-
256
- function run() {
257
- $('#userAgent').html(navigator.userAgent);
258
- var head = $('<div class="testrunner-toolbar"><label for="filter">Hide passed tests</label></div>').insertAfter("#userAgent");
259
- $('<input type="checkbox" id="filter" />').attr("disabled", true).prependTo(head).click(function() {
260
- $('li.pass')[this.checked ? 'hide' : 'show']();
261
- });
262
- runTest();
263
- };
264
-
265
- function synchronize(callback) {
266
- config.queue.push(callback);
267
- if(!config.blocking) {
268
- process();
269
- }
270
- }
271
-
272
- function process() {
273
- while(config.queue.length && !config.blocking) {
274
- config.queue.shift()();
275
- }
276
- }
277
-
278
- function stop(timeout) {
279
- config.blocking = true;
280
- if (timeout)
281
- config.timeout = setTimeout(function() {
282
- ok( false, "Test timed out" );
283
- start();
284
- }, timeout);
285
- }
286
- function start() {
287
- // A slight delay, to avoid any current callbacks
288
- setTimeout(function() {
289
- if(config.timeout)
290
- clearTimeout(config.timeout);
291
- config.blocking = false;
292
- process();
293
- }, 13);
294
- }
295
-
296
- function validTest( name ) {
297
- var i = config.filters.length,
298
- run = false;
299
-
300
- if( !i )
301
- return true;
302
-
303
- while( i-- ){
304
- var filter = config.filters[i],
305
- not = filter.charAt(0) == '!';
306
- if( not )
307
- filter = filter.slice(1);
308
- if( name.indexOf(filter) != -1 )
309
- return !not;
310
- if( not )
311
- run = true;
312
- }
313
- return run;
314
- }
315
-
316
- function runTest() {
317
- config.blocking = false;
318
- var started = +new Date;
319
- config.fixture = document.getElementById('main').innerHTML;
320
- config.ajaxSettings = $.ajaxSettings;
321
- synchronize(function() {
322
- $('<p id="testresult" class="result">').html(['Tests completed in ',
323
- +new Date - started, ' milliseconds.<br/>',
324
- '<span class="bad">', config.stats.bad, '</span> tests of <span class="all">', config.stats.all, '</span> failed.</p>']
325
- .join(''))
326
- .appendTo("body");
327
- $("#banner").addClass(config.stats.bad ? "fail" : "pass");
328
- });
329
- }
330
-
331
- var pollution;
332
-
333
- function saveGlobal(){
334
- pollution = [ ];
335
-
336
- if( noglobals )
337
- for( var key in window )
338
- pollution.push(key);
339
- }
340
- function checkPollution( name ){
341
- var old = pollution;
342
- saveGlobal();
343
-
344
- if( pollution.length > old.length ){
345
- ok( false, "Introduced global variable(s): " + diff(old, pollution).join(", ") );
346
- config.expected++;
347
- }
348
- }
349
-
350
- function diff( clean, dirty ){
351
- return $.grep( dirty, function(name){
352
- return $.inArray( name, clean ) == -1;
353
- });
354
- }
355
-
356
- function test(name, callback) {
357
- if(config.currentModule)
358
- name = config.currentModule + " module: " + name;
359
- var lifecycle = $.extend({
360
- setup: function() {},
361
- teardown: function() {}
362
- }, config.moduleLifecycle);
363
-
364
- if ( !validTest(name) )
365
- return;
366
-
367
- synchronize(function() {
368
- config.assertions = [];
369
- config.expected = null;
370
- try {
371
- if( !pollution )
372
- saveGlobal();
373
- lifecycle.setup();
374
- } catch(e) {
375
- config.assertions.push( {
376
- result: false,
377
- message: "Setup failed on " + name + ": " + e.message
378
- });
379
- }
380
- })
381
- synchronize(function() {
382
- try {
383
- callback();
384
- } catch(e) {
385
- if( typeof console != "undefined" && console.error && console.warn ) {
386
- console.error("Test " + name + " died, exception and test follows");
387
- console.error(e);
388
- console.warn(callback.toString());
389
- }
390
- config.assertions.push( {
391
- result: false,
392
- message: "Died on test #" + (config.assertions.length + 1) + ": " + e.message
393
- });
394
- // else next test will carry the responsibility
395
- saveGlobal();
396
- }
397
- });
398
- synchronize(function() {
399
- try {
400
- checkPollution();
401
- lifecycle.teardown();
402
- } catch(e) {
403
- config.assertions.push( {
404
- result: false,
405
- message: "Teardown failed on " + name + ": " + e.message
406
- });
407
- }
408
- })
409
- synchronize(function() {
410
- try {
411
- reset();
412
- } catch(e) {
413
- if( typeof console != "undefined" && console.error && console.warn ) {
414
- console.error("reset() failed, following Test " + name + ", exception and reset fn follows");
415
- console.error(e);
416
- console.warn(reset.toString());
417
- }
418
- }
419
-
420
- if(config.expected && config.expected != config.assertions.length) {
421
- config.assertions.push({
422
- result: false,
423
- message: "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run"
424
- });
425
- }
426
-
427
- var good = 0, bad = 0;
428
- var ol = $("<ol/>").hide();
429
- config.stats.all += config.assertions.length;
430
- for ( var i = 0; i < config.assertions.length; i++ ) {
431
- var assertion = config.assertions[i];
432
- $("<li/>").addClass(assertion.result ? "pass" : "fail").text(assertion.message || "(no message)").appendTo(ol);
433
- assertion.result ? good++ : bad++;
434
- }
435
- config.stats.bad += bad;
436
-
437
- var b = $("<strong/>").html(name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>")
438
- .click(function(){
439
- $(this).next().toggle();
440
- })
441
- .dblclick(function(event) {
442
- var target = $(event.target).filter("strong").clone();
443
- if ( target.length ) {
444
- target.children().remove();
445
- location.href = location.href.match(/^(.+?)(\?.*)?$/)[1] + "?" + encodeURIComponent($.trim(target.text()));
446
- }
447
- });
448
-
449
- $("<li/>").addClass(bad ? "fail" : "pass").append(b).append(ol).appendTo("#tests");
450
-
451
- if(bad) {
452
- $("#filter").attr("disabled", null);
453
- }
454
- });
455
- }
456
-
457
- // call on start of module test to prepend name to all tests
458
- function module(name, lifecycle) {
459
- config.currentModule = name;
460
- config.moduleLifecycle = lifecycle;
461
- }
462
-
463
- /**
464
- * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
465
- */
466
- function expect(asserts) {
467
- config.expected = asserts;
468
- }
469
-
470
- /**
471
- * Resets the test setup. Useful for tests that modify the DOM.
472
- */
473
- function reset() {
474
- $("#main").html( config.fixture );
475
- $.event.global = {};
476
- $.ajaxSettings = $.extend({}, config.ajaxSettings);
477
- }
478
-
479
- /**
480
- * Asserts true.
481
- * @example ok( $("a").size() > 5, "There must be at least 5 anchors" );
482
- */
483
- function ok(a, msg) {
484
- config.assertions.push({
485
- result: !!a,
486
- message: msg
487
- });
488
- }
489
-
490
- /**
491
- * Asserts that two arrays are the same
492
- */
493
- function isSet(a, b, msg) {
494
- function serialArray( a ) {
495
- var r = [];
496
-
497
- if ( a && a.length )
498
- for ( var i = 0; i < a.length; i++ ) {
499
- var str = a[i].nodeName;
500
- if ( str ) {
501
- str = str.toLowerCase();
502
- if ( a[i].id )
503
- str += "#" + a[i].id;
504
- } else
505
- str = a[i];
506
- r.push( str );
507
- }
508
-
509
- return "[ " + r.join(", ") + " ]";
510
- }
511
- var ret = true;
512
- if ( a && b && a.length != undefined && a.length == b.length ) {
513
- for ( var i = 0; i < a.length; i++ )
514
- if ( a[i] != b[i] )
515
- ret = false;
516
- } else
517
- ret = false;
518
- config.assertions.push({
519
- result: ret,
520
- message: !ret ? (msg + " expected: " + serialArray(b) + " result: " + serialArray(a)) : msg
521
- });
522
- }
523
-
524
- /**
525
- * Asserts that two objects are equivalent
526
- */
527
- function isObj(a, b, msg) {
528
- var ret = true;
529
-
530
- if ( a && b ) {
531
- for ( var i in a )
532
- if ( a[i] != b[i] )
533
- ret = false;
534
-
535
- for ( i in b )
536
- if ( a[i] != b[i] )
537
- ret = false;
538
- } else
539
- ret = false;
540
-
541
- config.assertions.push({
542
- result: ret,
543
- message: msg
544
- });
545
- }
546
-
547
- /**
548
- * Returns an array of elements with the given IDs, eg.
549
- * @example q("main", "foo", "bar")
550
- * @result [<div id="main">, <span id="foo">, <input id="bar">]
551
- */
552
- function q() {
553
- var r = [];
554
- for ( var i = 0; i < arguments.length; i++ )
555
- r.push( document.getElementById( arguments[i] ) );
556
- return r;
557
- }
558
-
559
- /**
560
- * Asserts that a select matches the given IDs
561
- * @example t("Check for something", "//[a]", ["foo", "baar"]);
562
- * @result returns true if "//[a]" return two elements with the IDs 'foo' and 'baar'
563
- */
564
- function t(a,b,c) {
565
- var f = $(b);
566
- var s = "";
567
- for ( var i = 0; i < f.length; i++ )
568
- s += (s && ",") + '"' + f[i].id + '"';
569
- isSet(f, q.apply(q,c), a + " (" + b + ")");
570
- }
571
-
572
- /**
573
- * Add random number to url to stop IE from caching
574
- *
575
- * @example url("data/test.html")
576
- * @result "data/test.html?10538358428943"
577
- *
578
- * @example url("data/test.php?foo=bar")
579
- * @result "data/test.php?foo=bar&10538358345554"
580
- */
581
- function url(value) {
582
- return value + (/\?/.test(value) ? "&" : "?") + new Date().getTime() + "" + parseInt(Math.random()*100000);
583
- }
584
-
585
- /**
586
- * Checks that the first two arguments are equal, with an optional message.
587
- * Prints out both actual and expected values.
588
- *
589
- * Prefered to ok( actual == expected, message )
590
- *
591
- * @example equals( $.format("Received {0} bytes.", 2), "Received 2 bytes." );
592
- *
593
- * @param Object actual
594
- * @param Object expected
595
- * @param String message (optional)
596
- */
597
- function equals(actual, expected, message) {
598
- push(expected == actual, actual, expected, message);
599
- }
600
-
601
- function push(result, actual, expected, message) {
602
- message = message || (result ? "okay" : "failed");
603
- config.assertions.push({
604
- result: result,
605
- message: result ? message + ": " + expected : message + ", expected: " + jsDump.parse(expected) + " result: " + jsDump.parse(actual)
606
- });
607
- }
608
-
609
- /**
610
- * Trigger an event on an element.
611
- *
612
- * @example triggerEvent( document.body, "click" );
613
- *
614
- * @param DOMElement elem
615
- * @param String type
616
- */
617
- function triggerEvent( elem, type, event ) {
618
- if ( $.browser.mozilla || $.browser.opera ) {
619
- event = document.createEvent("MouseEvents");
620
- event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
621
- 0, 0, 0, 0, 0, false, false, false, false, 0, null);
622
- elem.dispatchEvent( event );
623
- } else if ( $.browser.msie ) {
624
- elem.fireEvent("on"+type);
625
- }
626
- }
627
-
628
- })(jQuery);
629
-
630
- /**
631
- * jsDump
632
- * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
633
- * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)
634
- * Date: 5/15/2008
635
- * @projectDescription Advanced and extensible data dumping for Javascript.
636
- * @version 1.0.0
637
- * @author Ariel Flesler
638
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
639
- */
640
- (function(){
641
- function quote( str ){
642
- return '"' + str.toString().replace(/"/g, '\\"') + '"';
643
- };
644
- function literal( o ){
645
- return o + '';
646
- };
647
- function join( pre, arr, post ){
648
- var s = jsDump.separator(),
649
- base = jsDump.indent();
650
- inner = jsDump.indent(1);
651
- if( arr.join )
652
- arr = arr.join( ',' + s + inner );
653
- if( !arr )
654
- return pre + post;
655
- return [ pre, inner + arr, base + post ].join(s);
656
- };
657
- function array( arr ){
658
- var i = arr.length, ret = Array(i);
659
- this.up();
660
- while( i-- )
661
- ret[i] = this.parse( arr[i] );
662
- this.down();
663
- return join( '[', ret, ']' );
664
- };
665
-
666
- var reName = /^function (\w+)/;
667
-
668
- var jsDump = window.jsDump = {
669
- parse:function( obj, type ){//type is used mostly internally, you can fix a (custom)type in advance
670
- var parser = this.parsers[ type || this.typeOf(obj) ];
671
- type = typeof parser;
672
-
673
- return type == 'function' ? parser.call( this, obj ) :
674
- type == 'string' ? parser :
675
- this.parsers.error;
676
- },
677
- typeOf:function( obj ){
678
- var type = typeof obj,
679
- f = 'function';//we'll use it 3 times, save it
680
- return type != 'object' && type != f ? type :
681
- !obj ? 'null' :
682
- obj.exec ? 'regexp' :// some browsers (FF) consider regexps functions
683
- obj.getHours ? 'date' :
684
- obj.scrollBy ? 'window' :
685
- obj.nodeName == '#document' ? 'document' :
686
- obj.nodeName ? 'node' :
687
- obj.item ? 'nodelist' : // Safari reports nodelists as functions
688
- obj.callee ? 'arguments' :
689
- obj.call || obj.constructor != Array && //an array would also fall on this hack
690
- (obj+'').indexOf(f) != -1 ? f : //IE reports functions like alert, as objects
691
- 'length' in obj ? 'array' :
692
- type;
693
- },
694
- separator:function(){
695
- return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
696
- },
697
- indent:function( extra ){// extra can be a number, shortcut for increasing-calling-decreasing
698
- if( !this.multiline )
699
- return '';
700
- var chr = this.indentChar;
701
- if( this.HTML )
702
- chr = chr.replace(/\t/g,' ').replace(/ /g,'&nbsp;');
703
- return Array( this._depth_ + (extra||0) ).join(chr);
704
- },
705
- up:function( a ){
706
- this._depth_ += a || 1;
707
- },
708
- down:function( a ){
709
- this._depth_ -= a || 1;
710
- },
711
- setParser:function( name, parser ){
712
- this.parsers[name] = parser;
713
- },
714
- // The next 3 are exposed so you can use them
715
- quote:quote,
716
- literal:literal,
717
- join:join,
718
- //
719
- _depth_: 1,
720
- // This is the list of parsers, to modify them, use jsDump.setParser
721
- parsers:{
722
- window: '[Window]',
723
- document: '[Document]',
724
- error:'[ERROR]', //when no parser is found, shouldn't happen
725
- unknown: '[Unknown]',
726
- 'null':'null',
727
- undefined:'undefined',
728
- 'function':function( fn ){
729
- var ret = 'function',
730
- name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
731
- if( name )
732
- ret += ' ' + name;
733
- ret += '(';
734
-
735
- ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');
736
- return join( ret, this.parse(fn,'functionCode'), '}' );
737
- },
738
- array: array,
739
- nodelist: array,
740
- arguments: array,
741
- object:function( map ){
742
- var ret = [ ];
743
- this.up();
744
- for( var key in map )
745
- ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );
746
- this.down();
747
- return join( '{', ret, '}' );
748
- },
749
- node:function( node ){
750
- var open = this.HTML ? '&lt;' : '<',
751
- close = this.HTML ? '&gt;' : '>';
752
-
753
- var tag = node.nodeName.toLowerCase(),
754
- ret = open + tag;
755
-
756
- for( var a in this.DOMAttrs ){
757
- var val = node[this.DOMAttrs[a]];
758
- if( val )
759
- ret += ' ' + a + '=' + this.parse( val, 'attribute' );
760
- }
761
- return ret + close + open + '/' + tag + close;
762
- },
763
- functionArgs:function( fn ){//function calls it internally, it's the arguments part of the function
764
- var l = fn.length;
765
- if( !l ) return '';
766
-
767
- var args = Array(l);
768
- while( l-- )
769
- args[l] = String.fromCharCode(97+l);//97 is 'a'
770
- return ' ' + args.join(', ') + ' ';
771
- },
772
- key:quote, //object calls it internally, the key part of an item in a map
773
- functionCode:'[code]', //function calls it internally, it's the content of the function
774
- attribute:quote, //node calls it internally, it's an html attribute value
775
- string:quote,
776
- date:quote,
777
- regexp:literal, //regex
778
- number:literal,
779
- 'boolean':literal
780
- },
781
- DOMAttrs:{//attributes to dump from nodes, name=>realName
782
- id:'id',
783
- name:'name',
784
- 'class':'className'
785
- },
786
- HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
787
- indentChar:' ',//indentation unit
788
- multiline:true //if true, items in a collection, are separated by a \n, else just a space.
789
- };
790
-
791
- })();