typo 5.0.2 → 5.0.3.98
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES-5.0.4 +33 -0
- data/MAINTAINERS +4 -8
- data/README +10 -8
- data/{README.SIDEBARS → SIDEBARS} +0 -0
- data/app/apis/blogger_service.rb +2 -3
- data/app/apis/meta_weblog_service.rb +6 -7
- data/app/apis/movable_type_service.rb +6 -6
- data/app/controllers/accounts_controller.rb +9 -9
- data/app/controllers/admin/base_controller.rb +3 -22
- data/app/controllers/admin/blacklist_controller.rb +4 -4
- data/app/controllers/admin/cache_controller.rb +0 -9
- data/app/controllers/admin/categories_controller.rb +4 -8
- data/app/controllers/admin/comments_controller.rb +4 -4
- data/app/controllers/admin/content_controller.rb +44 -44
- data/app/controllers/admin/dashboard_controller.rb +8 -0
- data/app/controllers/admin/feedback_controller.rb +1 -2
- data/app/controllers/admin/pages_controller.rb +49 -24
- data/app/controllers/admin/resources_controller.rb +5 -5
- data/app/controllers/admin/settings_controller.rb +7 -0
- data/app/controllers/admin/sidebar_controller.rb +5 -8
- data/app/controllers/admin/tags_controller.rb +43 -0
- data/app/controllers/admin/themes_controller.rb +1 -0
- data/app/controllers/admin/trackbacks_controller.rb +4 -13
- data/app/controllers/admin/users_controller.rb +7 -13
- data/app/controllers/application.rb +2 -24
- data/app/controllers/articles_controller.rb +28 -23
- data/app/controllers/comments_controller.rb +4 -6
- data/app/controllers/content_controller.rb +1 -4
- data/app/controllers/feedback_controller.rb +12 -2
- data/app/controllers/grouping_controller.rb +7 -1
- data/app/controllers/redirect_controller.rb +6 -0
- data/app/controllers/theme_controller.rb +2 -3
- data/app/controllers/trackbacks_controller.rb +4 -6
- data/app/controllers/xml_controller.rb +1 -1
- data/app/helpers/admin/base_helper.rb +58 -9
- data/app/helpers/admin/content_helper.rb +7 -0
- data/app/helpers/admin/pages_helper.rb +21 -0
- data/app/helpers/admin/settings_helper.rb +1 -1
- data/app/helpers/application_helper.rb +11 -9
- data/app/helpers/content_helper.rb +5 -14
- data/app/helpers/sidebar_helper.rb +1 -1
- data/app/models/article.rb +81 -68
- data/app/models/blog.rb +14 -44
- data/app/models/blog_sweeper.rb +30 -10
- data/app/models/category.rb +1 -1
- data/app/models/comment.rb +0 -7
- data/app/models/content.rb +40 -18
- data/app/models/feedback.rb +8 -0
- data/app/models/notification_mailer.rb +8 -1
- data/app/models/page.rb +5 -0
- data/app/models/page_cache.rb +22 -7
- data/app/models/profile.rb +10 -0
- data/app/models/right.rb +4 -0
- data/app/models/sidebar.rb +10 -3
- data/app/models/tag.rb +20 -8
- data/app/models/trackback.rb +1 -1
- data/app/models/url_policy.rb +179 -0
- data/app/models/user.rb +30 -0
- data/app/views/accounts/login.html.erb +1 -1
- data/app/views/accounts/logout.html.erb +1 -1
- data/app/views/accounts/signup.html.erb +1 -1
- data/app/views/admin/blacklist/_blacklist_patterns.html.erb +2 -2
- data/app/views/admin/blacklist/_form.html.erb +13 -14
- data/app/views/admin/blacklist/_quick_post.html.erb +4 -13
- data/app/views/admin/blacklist/edit.html.erb +8 -11
- data/app/views/admin/blacklist/index.html.erb +10 -0
- data/app/views/admin/categories/_categories.html.erb +8 -8
- data/app/views/admin/categories/_form.html.erb +8 -3
- data/app/views/admin/categories/_quick_post.html.erb +1 -1
- data/app/views/admin/categories/edit.html.erb +3 -7
- data/app/views/admin/categories/index.html.erb +15 -0
- data/app/views/admin/comments/_form.html.erb +19 -18
- data/app/views/admin/comments/edit.html.erb +3 -7
- data/app/views/admin/comments/index.html.erb +30 -0
- data/app/views/admin/comments/show.html.erb +24 -8
- data/app/views/admin/content/_articles.html.erb +31 -10
- data/app/views/admin/content/_attachment.html.erb +18 -2
- data/app/views/admin/content/_form.html.erb +76 -86
- data/app/views/admin/content/_pages.html.erb +3 -3
- data/app/views/admin/content/edit.html.erb +2 -9
- data/app/views/admin/content/index.html.erb +17 -0
- data/app/views/admin/content/new.html.erb +1 -4
- data/app/views/admin/content/show.html.erb +2 -23
- data/app/views/admin/dashboard/_comments.html.erb +17 -0
- data/app/views/admin/dashboard/_overview.html.erb +4 -0
- data/app/views/admin/dashboard/_popular.html.erb +12 -0
- data/app/views/admin/dashboard/_posts.html.erb +15 -0
- data/app/views/admin/dashboard/_sysinfo.html.erb +13 -0
- data/app/views/admin/dashboard/_welcome.html.erb +3 -0
- data/app/views/admin/dashboard/index.html.erb +13 -57
- data/app/views/admin/feedback/index.html.erb +41 -0
- data/app/views/admin/pages/_form.html.erb +31 -35
- data/app/views/admin/pages/_pages.html.erb +48 -23
- data/app/views/admin/pages/edit.html.erb +3 -8
- data/app/views/admin/pages/index.html.erb +6 -0
- data/app/views/admin/pages/new.html.erb +2 -5
- data/app/views/admin/pages/show.html.erb +2 -12
- data/app/views/admin/resources/_resources.html.erb +6 -5
- data/app/views/admin/resources/index.html.erb +12 -0
- data/app/views/admin/settings/feedback.html.erb +1 -19
- data/app/views/admin/settings/index.html.erb +3 -23
- data/app/views/admin/settings/podcast.html.erb +1 -10
- data/app/views/admin/settings/read.html.erb +1 -10
- data/app/views/admin/settings/spam.html.erb +1 -10
- data/app/views/admin/settings/write.html.erb +2 -14
- data/app/views/admin/shared/_edit.html.erb +1 -4
- data/app/views/admin/sidebar/index.html.erb +11 -8
- data/app/views/admin/tags/_form.html.erb +4 -0
- data/app/views/admin/tags/_tags.html.erb +19 -0
- data/app/views/admin/tags/destroy.html.erb +11 -0
- data/app/views/admin/tags/edit.html.erb +13 -0
- data/app/views/admin/tags/index.html.erb +12 -0
- data/app/views/admin/textfilters/edit.html.erb +3 -5
- data/app/views/admin/textfilters/index.html.erb +12 -0
- data/app/views/admin/textfilters/macro_help.html.erb +1 -1
- data/app/views/admin/textfilters/new.html.erb +2 -8
- data/app/views/admin/textfilters/show.html.erb +1 -6
- data/app/views/admin/textfilters/show_help.html.erb +1 -5
- data/app/views/admin/themes/index.html.erb +19 -15
- data/app/views/admin/trackbacks/edit.html.erb +1 -4
- data/app/views/admin/trackbacks/index.html.erb +22 -0
- data/app/views/admin/users/_form.html.erb +0 -10
- data/app/views/admin/users/edit.html.erb +3 -6
- data/app/views/admin/users/index.html.erb +29 -0
- data/app/views/admin/users/new.html.erb +1 -4
- data/app/views/articles/_atom_feed.atom.builder +1 -1
- data/app/views/articles/archives.html.erb +2 -2
- data/app/views/articles/groupings.html.erb +1 -1
- data/app/views/layouts/administration.html.erb +44 -51
- data/app/views/notification_mailer/_mail_footer.html.erb +1 -1
- data/app/views/notification_mailer/article.html.erb +1 -1
- data/app/views/notification_mailer/comment.html.erb +1 -1
- data/app/views/notification_mailer/notif_user.html.erb +12 -0
- data/app/views/xml/_googlesitemap_item_category.googlesitemap.builder +1 -1
- data/config/environment.rb +0 -1
- data/config/environments/development.rb +5 -0
- data/config/initializers/access_rules.rb +110 -0
- data/config/initializers/active_record_hacks.rb +17 -0
- data/config/initializers/benchmark_hacks.rb +9 -0
- data/config/routes.rb +36 -15
- data/db/converters/README +2 -2
- data/db/migrate/004_add_sidebars.rb +8 -9
- data/db/migrate/067_remove_blog_ids.rb +22 -0
- data/db/migrate/068_fix_grants.rb +113 -0
- data/db/migrate/069_add_modules_to_profile.rb +18 -0
- data/db/schema.mysql-v3.sql +3 -217
- data/db/schema.mysql.sql +3 -217
- data/db/schema.postgresql.sql +3 -217
- data/db/schema.rb +32 -29
- data/db/schema.sqlite.sql +3 -217
- data/db/schema.sqlserver.sql +3 -231
- data/db/schema_version +1 -1
- data/lang/de_DE.rb +6 -9
- data/lang/en_US.rb +3 -0
- data/lang/es_MX.rb +556 -0
- data/lang/fr_FR.rb +171 -45
- data/lang/it_IT.rb +566 -0
- data/lang/ja_JP.rb +553 -0
- data/lang/pl_PL.rb +553 -0
- data/lang/ro_RO.rb +6 -10
- data/lib/sidebars/plugin.rb +1 -3
- data/lib/stateful.rb +6 -2
- data/lib/tasks/release.rake +3 -8
- data/lib/typo_version.rb +1 -1
- data/public/.DS_Store +0 -0
- data/public/.htaccess +1 -1
- data/public/images/admin/arrow_comment_group.gif +0 -0
- data/public/images/admin/typologo.gif +0 -0
- data/public/javascripts/controls.js +484 -354
- data/public/javascripts/dragdrop.js +88 -58
- data/public/javascripts/effects.js +396 -364
- data/public/javascripts/fckcustom.js +27 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckcontextmenu.js +209 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckdataprocessor.js +119 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +46 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckdomrange.js +808 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckdomrange_gecko.js +103 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckdomrange_ie.js +198 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckdomrangeiterator.js +306 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckeditingarea.js +344 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckelementpath.js +70 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckenterkey.js +629 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckevents.js +66 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckicon.js +103 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckimagepreloader.js +64 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckkeystrokehandler.js +141 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckmenublock.js +150 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckmenuitem.js +160 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckpanel.js +338 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckplugin.js +56 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckspecialcombo.js +377 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckstyle.js +1280 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbar.js +103 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbutton.js +76 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +194 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +139 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +98 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +76 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +92 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +143 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +200 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckw3crange.js +447 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckxml.js +108 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckxml_gecko.js +87 -0
- data/public/javascripts/fckeditor/editor/_source/classes/fckxml_ie.js +88 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fck_othercommands.js +462 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js +194 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js +59 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckfitwindow.js +180 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckindentcommands.js +280 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckjustifycommands.js +173 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fcklistcommands.js +382 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +37 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +38 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js +45 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckshowblocks.js +76 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +39 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +67 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fckstylecommand.js +60 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fcktablecommand.js +106 -0
- data/public/javascripts/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +183 -0
- data/public/javascripts/fckeditor/editor/_source/fckconstants.js +56 -0
- data/public/javascripts/fckeditor/editor/_source/fckeditorapi.js +168 -0
- data/public/javascripts/fckeditor/editor/_source/fckjscoreextensions.js +166 -0
- data/public/javascripts/fckeditor/editor/_source/fckscriptloader.js +122 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fck.js +1065 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fck_contextmenu.js +325 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fck_gecko.js +458 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fck_ie.js +420 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckbrowserinfo.js +59 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckcommands.js +167 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckconfig.js +239 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckdebug.js +56 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckdialog.js +38 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckdialog_gecko.js +103 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckdialog_ie.js +48 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckdocumentprocessor.js +225 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckdomtools.js +884 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcklanguagemanager.js +162 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcklistslib.js +60 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckplugins.js +46 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckregexlib.js +96 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckselection.js +42 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckselection_gecko.js +211 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckselection_ie.js +201 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckstyles.js +372 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktablehandler.js +858 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +56 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktablehandler_ie.js +64 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktoolbaritems.js +123 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktoolbarset.js +373 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktools.js +581 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktools_gecko.js +270 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fcktools_ie.js +227 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckundo.js +220 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckxhtml.js +460 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckxhtml_gecko.js +105 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckxhtml_ie.js +208 -0
- data/public/javascripts/fckeditor/editor/_source/internals/fckxhtmlentities.js +354 -0
- data/public/javascripts/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
- data/public/javascripts/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
- data/public/javascripts/fckeditor/editor/css/fck_editorarea.css +91 -0
- data/public/javascripts/fckeditor/editor/css/fck_internal.css +182 -0
- data/public/javascripts/fckeditor/editor/css/fck_showtableborders_gecko.css +42 -0
- data/public/javascripts/fckeditor/editor/css/images/block_address.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_blockquote.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_div.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_h1.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_h2.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_h3.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_h4.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_h5.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_h6.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_p.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/block_pre.png +0 -0
- data/public/javascripts/fckeditor/editor/css/images/fck_anchor.gif +0 -0
- data/public/javascripts/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
- data/public/javascripts/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
- data/public/javascripts/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/common/fck_dialog_common.css +78 -0
- data/public/javascripts/fckeditor/editor/dialog/common/fck_dialog_common.js +165 -0
- data/public/javascripts/fckeditor/editor/dialog/common/images/locked.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/common/images/reset.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_about.html +155 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_anchor.html +207 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_button.html +109 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_checkbox.html +109 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_colorselector.html +171 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_docprops.html +600 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_find.html +173 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_flash.html +146 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_flash/fck_flash.js +285 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +46 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_form.html +106 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_hiddenfield.html +118 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_image.html +252 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_image/fck_image.js +492 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_image/fck_image_preview.html +66 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_link.html +293 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_link/fck_link.js +715 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_listprop.html +116 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_paste.html +340 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_radiobutton.html +109 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_replace.html +452 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_select.html +177 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_select/fck_select.js +194 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_smiley.html +106 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_source.html +65 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_specialchar.html +118 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages.html +64 -0
- data/{spec/fixtures/notifications.yml → public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html} +0 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +146 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +196 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +180 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +462 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_table.html +293 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_tablecell.html +255 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_template.html +242 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_textarea.html +95 -0
- data/public/javascripts/fckeditor/editor/dialog/fck_textfield.html +140 -0
- data/public/javascripts/fckeditor/editor/dtd/fck_dtd_test.html +43 -0
- data/public/javascripts/fckeditor/editor/dtd/fck_xhtml10strict.js +116 -0
- data/public/javascripts/fckeditor/editor/dtd/fck_xhtml10transitional.js +140 -0
- data/public/javascripts/fckeditor/editor/fckdebug.html +153 -0
- data/public/javascripts/fckeditor/editor/fckdialog.html +336 -0
- data/public/javascripts/fckeditor/editor/fckeditor.html +228 -0
- data/public/javascripts/fckeditor/editor/fckeditor.original.html +331 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/browser.css +89 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/browser.html +163 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +67 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +113 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmfolders.html +196 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +167 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +65 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/frmupload.html +114 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/js/common.js +55 -0
- data/public/javascripts/fckeditor/editor/filemanager/browser/default/js/fckxml.js +129 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/basexml.asp +62 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/class_upload.asp +353 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/commands.asp +198 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/config.asp +128 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/connector.asp +88 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/io.asp +222 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/upload.asp +61 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/asp/util.asp +55 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/aspx/connector.aspx +30 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/aspx/upload.aspx +30 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/ImageObject.cfc +273 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm +315 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm +296 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm +68 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm +225 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm +89 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm +288 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm +68 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm +132 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/config.cfm +183 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/connector.cfm +31 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/image.cfc +1325 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/cfm/upload.cfm +31 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/lasso/config.lasso +65 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/lasso/connector.lasso +257 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/lasso/upload.lasso +157 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/basexml.pl +63 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/commands.pl +168 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/connector.cgi +137 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/io.pl +131 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/upload.cgi +118 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl +667 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/perl/util.pl +68 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/basexml.php +93 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/commands.php +245 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/config.php +140 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/connector.php +87 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/io.php +272 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/phpcompat.php +17 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/upload.php +59 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/php/util.php +185 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/config.py +135 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/connector.py +118 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckcommands.py +181 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckconnector.py +90 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckoutput.py +111 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/fckutil.py +127 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/htaccess.txt +23 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/upload.py +88 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/wsgi.py +58 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/py/zope.py +189 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/test.html +177 -0
- data/public/javascripts/fckeditor/editor/filemanager/connectors/uploadtest.html +149 -0
- data/public/javascripts/fckeditor/editor/images/anchor.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/arrow_ltr.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/arrow_rtl.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
- data/public/javascripts/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
- data/{test/mocks/themes/standard_issue → public/javascripts/fckeditor/editor}/images/spacer.gif +0 -0
- data/public/javascripts/fckeditor/editor/js/fckeditorcode_gecko.js +108 -0
- data/public/javascripts/fckeditor/editor/js/fckeditorcode_ie.js +109 -0
- data/public/javascripts/fckeditor/editor/lang/_translationstatus.txt +76 -0
- data/public/javascripts/fckeditor/editor/lang/af.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/ar.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/bg.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/bn.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/bs.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/ca.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/cs.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/da.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/de.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/el.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/en-au.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/en-ca.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/en-uk.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/en.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/eo.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/es.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/et.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/eu.js +517 -0
- data/public/javascripts/fckeditor/editor/lang/fa.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/fi.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/fo.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/fr.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/gl.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/he.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/hi.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/hr.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/hu.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/it.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/ja.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/km.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/ko.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/lt.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/lv.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/mn.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/ms.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/nb.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/nl.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/no.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/pl.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/pt-br.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/pt.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/ro.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/ru.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/sk.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/sl.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/sr-latn.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/sr.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/sv.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/th.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/tr.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/uk.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/vi.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/zh-cn.js +516 -0
- data/public/javascripts/fckeditor/editor/lang/zh.js +516 -0
- data/public/javascripts/fckeditor/editor/plugins/autogrow/fckplugin.js +92 -0
- data/public/javascripts/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +26 -0
- data/public/javascripts/fckeditor/editor/plugins/bbcode/_sample/sample.html +67 -0
- data/public/javascripts/fckeditor/editor/plugins/bbcode/fckplugin.js +123 -0
- data/public/javascripts/fckeditor/editor/plugins/dragresizetable/fckplugin.js +503 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/fck_placeholder.html +100 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
- data/public/javascripts/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
- data/public/javascripts/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
- data/public/javascripts/fckeditor/editor/plugins/tablecommands/fckplugin.js +33 -0
- data/public/javascripts/fckeditor/editor/skins/_fckviewstrips.html +121 -0
- data/public/javascripts/fckeditor/editor/skins/default/fck_dialog.css +139 -0
- data/public/javascripts/fckeditor/editor/skins/default/fck_editor.css +464 -0
- data/public/javascripts/fckeditor/editor/skins/default/fck_strip.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
- data/{themes/standard_issue/images/spacer.gif → public/javascripts/fckeditor/editor/skins/default/images/toolbar.end.gif} +0 -0
- data/public/javascripts/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/fck_dialog.css +140 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/fck_dialog.css +143 -0
- data/public/javascripts/fckeditor/editor/skins/silver/fck_editor.css +473 -0
- data/public/javascripts/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
- data/public/javascripts/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
- data/public/javascripts/fckeditor/fckconfig.js +306 -0
- data/public/javascripts/fckeditor/fckeditor.afp +161 -0
- data/public/javascripts/fckeditor/fckeditor.asp +235 -0
- data/public/javascripts/fckeditor/fckeditor.cfc +273 -0
- data/public/javascripts/fckeditor/fckeditor.cfm +210 -0
- data/public/javascripts/fckeditor/fckeditor.js +212 -0
- data/public/javascripts/fckeditor/fckeditor.lasso +112 -0
- data/public/javascripts/fckeditor/fckeditor.py +162 -0
- data/public/javascripts/fckeditor/fckpackager.xml +262 -0
- data/public/javascripts/fckeditor/fckstyles.xml +114 -0
- data/public/javascripts/fckeditor/fcktemplates.xml +103 -0
- data/public/javascripts/fckeditor/license.txt +1247 -0
- data/public/javascripts/lang/default.js +21 -0
- data/public/javascripts/lang/fr_FR.js +21 -0
- data/public/javascripts/lightbox.js +169 -315
- data/public/javascripts/prototype.js +2817 -1107
- data/public/javascripts/typo.js +51 -11
- data/public/stylesheets/administration.css +170 -94
- data/public/stylesheets/lightbox.css +59 -19
- data/public/stylesheets/typo_code.css +62 -0
- data/public/stylesheets/user-styles.css +16 -0
- data/spec/controllers/accounts_controller_spec.rb +2 -7
- data/spec/controllers/admin/article_preview_spec.rb +20 -0
- data/spec/controllers/admin/blacklist_controller_spec.rb +59 -0
- data/spec/controllers/admin/categories_controller_spec.rb +97 -0
- data/spec/controllers/admin/comments_controller_spec.rb +74 -0
- data/spec/controllers/admin/content_controller_spec.rb +212 -0
- data/spec/controllers/admin/feedback_controller_spec.rb +45 -0
- data/spec/controllers/admin/pages_controller_spec.rb +83 -0
- data/spec/controllers/admin/profiles_controller_spec.rb +13 -0
- data/spec/controllers/admin/resources_controller_spec.rb +46 -0
- data/spec/controllers/admin/settings_controller_spec.rb +22 -0
- data/spec/controllers/admin/textfilters_controller_spec.rb +24 -0
- data/spec/controllers/admin/themes_controller_spec.rb +30 -0
- data/spec/controllers/admin/trackbacks_controller_spec.rb +57 -0
- data/spec/controllers/admin/users_controller_spec.rb +65 -0
- data/spec/controllers/articles_controller_spec.rb +4 -8
- data/spec/controllers/authors_controller_spec.rb +2 -2
- data/spec/controllers/backend_controller_spec.rb +318 -0
- data/spec/controllers/categories_controller_spec.rb +2 -2
- data/spec/controllers/comments_controller_spec.rb +8 -20
- data/spec/controllers/redirect_controller_spec.rb +35 -0
- data/spec/controllers/tags_controller_spec.rb +2 -2
- data/spec/controllers/textfilter_controller_spec.rb +264 -0
- data/spec/controllers/theme_controller_spec.rb +43 -0
- data/spec/controllers/xml_controller_spec.rb +232 -0
- data/spec/models/article_closing_spec.rb +38 -0
- data/spec/models/article_spec.rb +285 -9
- data/spec/models/blacklist_pattern_spec.rb +12 -0
- data/spec/models/blog_spec.rb +10 -4
- data/spec/models/cache_support_spec.rb +0 -4
- data/spec/models/category_spec.rb +1 -5
- data/spec/models/comment_spec.rb +186 -0
- data/spec/models/configuration_spec.rb +7 -9
- data/spec/models/content_state/feedback_states_spec.rb +64 -0
- data/spec/models/notification_spec.rb +8 -0
- data/spec/models/page_spec.rb +2 -10
- data/spec/models/ping_pinger_spec.rb +33 -0
- data/spec/models/ping_spec.rb +2 -9
- data/spec/models/resource_spec.rb +0 -2
- data/spec/models/route_cache_spec.rb +11 -0
- data/spec/models/sidebar_spec.rb +7 -0
- data/spec/models/tag_spec.rb +19 -8
- data/spec/models/theme_spec.rb +6 -7
- data/spec/models/trackback_spec.rb +1 -1
- data/spec/models/trigger_spec.rb +0 -2
- data/spec/models/typo_deprecated_spec.rb +18 -0
- data/spec/models/url_policy_spec.rb +65 -0
- data/spec/models/user_spec.rb +9 -4
- data/spec/spec.opts +2 -5
- data/spec/spec_helper.rb +5 -2
- data/spec/views/comments/html_sanitization_spec.rb +0 -14
- data/test/fixtures/blacklist_patterns.yml +1 -3
- data/test/fixtures/blogs.yml +2 -44
- data/test/fixtures/categories.yml +0 -6
- data/test/fixtures/categorizations.yml +17 -17
- data/test/fixtures/contents.yml +15 -53
- data/test/fixtures/feedback.yml +11 -31
- data/test/fixtures/profiles.yml +9 -0
- data/test/fixtures/redirects.yml +0 -3
- data/test/fixtures/resources.yml +3 -6
- data/test/fixtures/sidebars.yml +0 -2
- data/test/fixtures/tags.yml +3 -6
- data/test/fixtures/text_filters.yml +1 -6
- data/test/fixtures/users.yml +0 -10
- data/test/mocks/themes/typographic/.DS_Store +0 -0
- data/test/mocks/themes/typographic/about.markdown +7 -0
- data/test/mocks/themes/typographic/images/Thumbs.db +0 -0
- data/test/mocks/themes/typographic/images/accept.png +0 -0
- data/test/mocks/themes/typographic/images/accept50.png +0 -0
- data/test/mocks/themes/typographic/images/bg_body.jpg +0 -0
- data/test/mocks/themes/typographic/images/bg_white.png +0 -0
- data/test/mocks/themes/typographic/images/bg_wrapper.jpg +0 -0
- data/test/mocks/themes/typographic/images/bullet_bottom.png +0 -0
- data/test/mocks/themes/typographic/images/bullet_right.png +0 -0
- data/test/mocks/themes/typographic/images/email_open.png +0 -0
- data/test/mocks/themes/typographic/images/email_open50.png +0 -0
- data/test/mocks/themes/typographic/images/meta.png +0 -0
- data/test/mocks/themes/typographic/images/page_edit.png +0 -0
- data/test/mocks/themes/typographic/images/page_edit50.png +0 -0
- data/test/mocks/themes/typographic/images/tag.png +0 -0
- data/test/mocks/themes/typographic/images/user.png +0 -0
- data/test/mocks/themes/typographic/images/user50.png +0 -0
- data/test/mocks/themes/typographic/images/world_link.png +0 -0
- data/test/mocks/themes/typographic/images/world_link50.png +0 -0
- data/test/mocks/themes/typographic/layouts/default.html.erb +42 -0
- data/test/mocks/themes/typographic/preview.png +0 -0
- data/test/mocks/themes/typographic/stylesheets/colors.css +51 -0
- data/test/mocks/themes/typographic/stylesheets/layout.css +346 -0
- data/test/mocks/themes/typographic/stylesheets/reset.css +5 -0
- data/test/mocks/themes/typographic/stylesheets/style.css +36 -0
- data/test/mocks/themes/typographic/views/articles/_article.html.erb +41 -0
- data/test/mocks/themes/typographic/views/articles/_comment.html.erb +14 -0
- data/test/mocks/themes/typographic/views/articles/_comment_form.html.erb +48 -0
- data/test/mocks/themes/typographic/views/articles/_comment_list.html.erb +7 -0
- data/test/mocks/themes/typographic/views/articles/_trackback.html.erb +9 -0
- data/test/mocks/themes/typographic/views/articles/comment_preview.html.erb +10 -0
- data/test/mocks/themes/typographic/views/articles/index.html.erb +5 -0
- data/test/mocks/themes/typographic/views/articles/read.html.erb +42 -0
- data/test/mocks/themes/typographic/views/shared/_search.html.erb +17 -0
- data/test/mocks/themes/typographic/views/theme/static_view_test.html.erb +1 -0
- data/test/test_helper.rb +4 -0
- data/themes/scribbish/layouts/default.html.erb +4 -2
- data/themes/scribbish/stylesheets/content.css +1 -0
- data/themes/scribbish/views/articles/_article.html.erb +6 -6
- data/themes/scribbish/views/articles/_comment.html.erb +1 -1
- data/themes/scribbish/views/articles/_comment_form.html.erb +10 -10
- data/themes/scribbish/views/articles/_comment_list.html.erb +1 -1
- data/themes/scribbish/views/articles/_trackback.html.erb +1 -1
- data/themes/scribbish/views/articles/comment_preview.html.erb +1 -1
- data/themes/scribbish/views/articles/index.html.erb +1 -1
- data/themes/scribbish/views/articles/read.html.erb +4 -4
- data/themes/scribbish/views/shared/_search.html.erb +1 -1
- data/themes/typographic/.DS_Store +0 -0
- data/themes/typographic/about.markdown +7 -0
- data/themes/typographic/images/accept.png +0 -0
- data/themes/typographic/images/accept50.png +0 -0
- data/themes/typographic/images/bg_body.jpg +0 -0
- data/themes/typographic/images/bg_white.png +0 -0
- data/themes/typographic/images/bg_wrapper.jpg +0 -0
- data/themes/typographic/images/bullet_bottom.png +0 -0
- data/themes/typographic/images/bullet_right.png +0 -0
- data/themes/typographic/images/email_open.png +0 -0
- data/themes/typographic/images/email_open50.png +0 -0
- data/themes/typographic/images/meta.png +0 -0
- data/themes/typographic/images/page_edit.png +0 -0
- data/themes/typographic/images/page_edit50.png +0 -0
- data/themes/typographic/images/tag.png +0 -0
- data/themes/typographic/images/user.png +0 -0
- data/themes/typographic/images/user50.png +0 -0
- data/themes/typographic/images/world_link.png +0 -0
- data/themes/typographic/images/world_link50.png +0 -0
- data/themes/typographic/layouts/default.html.erb +42 -0
- data/themes/typographic/preview.png +0 -0
- data/themes/typographic/stylesheets/colors.css +51 -0
- data/themes/typographic/stylesheets/layout.css +346 -0
- data/themes/typographic/stylesheets/reset.css +5 -0
- data/themes/typographic/stylesheets/style.css +36 -0
- data/themes/typographic/views/articles/_article.html.erb +41 -0
- data/themes/typographic/views/articles/_comment.html.erb +14 -0
- data/themes/typographic/views/articles/_comment_form.html.erb +48 -0
- data/themes/typographic/views/articles/_comment_list.html.erb +7 -0
- data/themes/typographic/views/articles/_trackback.html.erb +9 -0
- data/themes/typographic/views/articles/comment_preview.html.erb +10 -0
- data/themes/typographic/views/articles/index.html.erb +5 -0
- data/themes/typographic/views/articles/read.html.erb +42 -0
- data/themes/typographic/views/shared/_search.html.erb +17 -0
- data/themes/typographic/views/theme/static_view_test.html.erb +1 -0
- data/themes/typographic2/.DS_Store +0 -0
- data/themes/typographic2/about.markdown +7 -0
- data/themes/typographic2/images/Thumbs.db +0 -0
- data/themes/typographic2/images/accept.png +0 -0
- data/themes/typographic2/images/accept50.png +0 -0
- data/themes/typographic2/images/bg_body.jpg +0 -0
- data/themes/typographic2/images/bg_white.png +0 -0
- data/themes/typographic2/images/bg_wrapper.jpg +0 -0
- data/themes/typographic2/images/bullet_bottom.png +0 -0
- data/themes/typographic2/images/bullet_right.png +0 -0
- data/themes/typographic2/images/email_open.png +0 -0
- data/themes/typographic2/images/email_open50.png +0 -0
- data/themes/typographic2/images/meta.png +0 -0
- data/themes/typographic2/images/page_edit.png +0 -0
- data/themes/typographic2/images/page_edit50.png +0 -0
- data/themes/typographic2/images/tag.png +0 -0
- data/themes/typographic2/images/user.png +0 -0
- data/themes/typographic2/images/user50.png +0 -0
- data/themes/typographic2/images/world_link.png +0 -0
- data/themes/typographic2/images/world_link50.png +0 -0
- data/themes/typographic2/layouts/default.html.erb +42 -0
- data/themes/typographic2/preview.png +0 -0
- data/themes/typographic2/stylesheets/colors.css +51 -0
- data/themes/typographic2/stylesheets/layout.css +346 -0
- data/themes/typographic2/stylesheets/reset.css +5 -0
- data/themes/typographic2/stylesheets/style.css +36 -0
- data/themes/typographic2/views/articles/_article.html.erb +41 -0
- data/themes/typographic2/views/articles/_comment.html.erb +14 -0
- data/themes/typographic2/views/articles/_comment_form.html.erb +48 -0
- data/themes/typographic2/views/articles/_comment_list.html.erb +7 -0
- data/themes/typographic2/views/articles/_trackback.html.erb +9 -0
- data/themes/typographic2/views/articles/comment_preview.html.erb +10 -0
- data/themes/typographic2/views/articles/index.html.erb +5 -0
- data/themes/typographic2/views/articles/read.html.erb +42 -0
- data/themes/typographic2/views/shared/_search.html.erb +17 -0
- data/themes/{standard_issue → typographic2}/views/theme/static_view_test.html.erb +0 -0
- data/vendor/plugins/archives_sidebar/lib/archives_sidebar.rb +1 -1
- data/vendor/plugins/auto_complete/README +23 -0
- data/vendor/plugins/auto_complete/Rakefile +22 -0
- data/vendor/plugins/auto_complete/init.rb +2 -0
- data/vendor/plugins/auto_complete/lib/auto_complete.rb +47 -0
- data/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +143 -0
- data/vendor/plugins/auto_complete/test/auto_complete_test.rb +67 -0
- data/vendor/plugins/datestamped_resources/lib/datestamped_resources.rb +2 -1
- data/vendor/plugins/fckeditor/CHANGELOG +3 -0
- data/vendor/plugins/fckeditor/README +125 -0
- data/vendor/plugins/fckeditor/Rakefile +72 -0
- data/vendor/plugins/fckeditor/app/controllers/fckeditor_controller.rb +158 -0
- data/vendor/plugins/fckeditor/app/helpers/fckeditor_helper.rb +4 -0
- data/vendor/plugins/fckeditor/app/views/fckeditor/spell_check.rhtml +52 -0
- data/vendor/plugins/fckeditor/init.rb +35 -0
- data/vendor/plugins/fckeditor/install.rb +12 -0
- data/vendor/plugins/fckeditor/lib/fckeditor.rb +101 -0
- data/vendor/plugins/fckeditor/lib/fckeditor_file_utils.rb +81 -0
- data/vendor/plugins/fckeditor/lib/fckeditor_spell_check.rb +43 -0
- data/vendor/plugins/fckeditor/lib/fckeditor_version.rb +9 -0
- data/vendor/plugins/fckeditor/tasks/fckeditor_tasks.rake +97 -0
- data/vendor/plugins/rspec/.autotest +3 -0
- data/vendor/plugins/rspec/CHANGES +33 -1
- data/vendor/plugins/rspec/README +2 -3
- data/vendor/plugins/rspec/Rakefile +7 -5
- data/vendor/plugins/rspec/bin/spec +1 -0
- data/vendor/plugins/rspec/examples/pure/helper_method_example.rb +9 -6
- data/vendor/plugins/rspec/failing_examples/README.txt +7 -0
- data/vendor/plugins/rspec/failing_examples/failing_autogenerated_docstrings_example.rb +19 -0
- data/vendor/plugins/rspec/lib/autotest/rspec.rb +36 -56
- data/vendor/plugins/rspec/lib/spec.rb +0 -7
- data/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb +10 -4
- data/vendor/plugins/rspec/lib/spec/example/example_methods.rb +13 -8
- data/vendor/plugins/rspec/lib/spec/interop/test.rb +3 -1
- data/vendor/plugins/rspec/lib/spec/interop/test/unit/ui/console/testrunner.rb +1 -0
- data/vendor/plugins/rspec/lib/spec/matchers.rb +1 -7
- data/vendor/plugins/rspec/lib/spec/matchers/be.rb +3 -2
- data/vendor/plugins/rspec/lib/spec/matchers/have.rb +3 -0
- data/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +19 -15
- data/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +10 -3
- data/vendor/plugins/rspec/lib/spec/runner.rb +14 -0
- data/vendor/plugins/rspec/lib/spec/runner/formatter/story/html_formatter.rb +6 -2
- data/vendor/plugins/rspec/lib/spec/runner/formatter/story/plain_text_formatter.rb +15 -7
- data/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +5 -33
- data/vendor/plugins/rspec/lib/spec/runner/options.rb +51 -18
- data/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +49 -31
- data/vendor/plugins/rspec/lib/spec/story/extensions.rb +2 -0
- data/vendor/plugins/rspec/lib/spec/story/extensions/regexp.rb +9 -0
- data/vendor/plugins/rspec/lib/spec/story/extensions/string.rb +9 -0
- data/vendor/plugins/rspec/lib/spec/story/runner.rb +0 -2
- data/vendor/plugins/rspec/lib/spec/story/runner/story_parser.rb +8 -8
- data/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb +2 -1
- data/vendor/plugins/rspec/lib/spec/story/step.rb +18 -8
- data/vendor/plugins/rspec/lib/spec/story/world.rb +1 -0
- data/vendor/plugins/rspec/lib/spec/version.rb +22 -22
- data/vendor/plugins/rspec/pre_commit/lib/pre_commit.rb +4 -0
- data/vendor/plugins/rspec/pre_commit/lib/pre_commit/core.rb +50 -0
- data/vendor/plugins/rspec/pre_commit/lib/pre_commit/pre_commit.rb +54 -0
- data/vendor/plugins/rspec/pre_commit/lib/pre_commit/rspec.rb +111 -0
- data/vendor/plugins/rspec/pre_commit/lib/pre_commit/rspec_on_rails.rb +313 -0
- data/vendor/plugins/rspec/pre_commit/spec/pre_commit/pre_commit_spec.rb +15 -0
- data/vendor/plugins/rspec/pre_commit/spec/pre_commit/rspec_on_rails_spec.rb +36 -0
- data/vendor/plugins/rspec/pre_commit/spec/spec_helper.rb +3 -0
- data/vendor/plugins/rspec/pre_commit/spec/spec_suite.rb +11 -0
- data/vendor/plugins/rspec/report.html +4358 -0
- data/vendor/plugins/rspec/spec/README.jruby +1 -0
- data/vendor/plugins/rspec/spec/autotest/rspec_spec.rb +15 -84
- data/vendor/plugins/rspec/spec/autotest_helper.rb +2 -1
- data/vendor/plugins/rspec/spec/autotest_matchers.rb +47 -0
- data/vendor/plugins/rspec/spec/rspec_suite.rb +1 -1
- data/vendor/plugins/rspec/{spec.opts → spec/spec.opts} +0 -0
- data/vendor/plugins/rspec/spec/spec/example/example_group_methods_spec.rb +11 -2
- data/vendor/plugins/rspec/spec/spec/example/example_methods_spec.rb +70 -41
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/spec_spec.rb +45 -0
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +1 -1
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/testcase_spec.rb +40 -5
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +2 -2
- data/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +19 -0
- data/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +3 -3
- data/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +7 -1
- data/vendor/plugins/rspec/spec/spec/mocks/bug_report_10263.rb +1 -1
- data/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +3 -2
- data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
- data/vendor/plugins/rspec/spec/spec/runner/formatter/story/html_formatter_spec.rb +5 -0
- data/vendor/plugins/rspec/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +97 -51
- data/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +50 -49
- data/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +72 -2
- data/vendor/plugins/rspec/spec/spec/runner/resources/a_bar.rb +0 -0
- data/vendor/plugins/rspec/spec/spec/runner/resources/a_foo.rb +0 -0
- data/vendor/plugins/rspec/spec/spec/runner/resources/a_spec.rb +1 -0
- data/vendor/plugins/rspec/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
- data/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +31 -76
- data/vendor/plugins/rspec/spec/spec/spec_classes.rb +7 -0
- data/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb +37 -0
- data/vendor/plugins/rspec/spec/spec/story/step_spec.rb +53 -0
- data/vendor/plugins/rspec/spec/spec/story/world_spec.rb +7 -0
- data/vendor/plugins/rspec/stories/example_groups/autogenerated_docstrings +27 -8
- data/vendor/plugins/rspec/stories/example_groups/output +5 -0
- data/vendor/plugins/rspec/stories/interop/test_case_with_should_methods +1 -1
- data/vendor/plugins/rspec/stories/resources/stories/failing_story.rb +15 -0
- data/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +0 -1
- data/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +1 -2
- data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +1 -3
- data/vendor/plugins/rspec_on_rails/lib/autotest/discover.rb +1 -0
- data/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +47 -47
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/controller_example_group.rb +14 -4
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/functional_example_group.rb +4 -4
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/helper_example_group.rb +0 -1
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/rails_example_group.rb +8 -0
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/example/view_example_group.rb +4 -5
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +2 -2
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +4 -0
- data/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +23 -23
- data/vendor/plugins/rspec_on_rails/spec/rails/autotest/mappings_spec.rb +14 -17
- data/vendor/plugins/rspec_on_rails/spec/rails/example/controller_spec_spec.rb +13 -0
- data/vendor/plugins/rspec_on_rails/spec/rails/example/view_spec_spec.rb +15 -1
- data/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_view_base_spec.rb +37 -26
- data/vendor/plugins/rspec_on_rails/spec/rails/matchers/have_text_spec.rb +62 -0
- data/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +73 -36
- data/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +9 -1
- data/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +4 -0
- data/vendor/plugins/rspec_on_rails/stories/all.rb +4 -0
- data/vendor/plugins/rspec_on_rails/tasks/rspec.rake +10 -8
- data/vendor/plugins/static_sidebar/lib/static_sidebar.rb +4 -8
- data/vendor/plugins/typo_converter/README +71 -0
- data/vendor/plugins/typo_converter/Rakefile +22 -0
- data/vendor/plugins/typo_converter/init.rb +8 -0
- data/vendor/plugins/typo_converter/lib/converters/base.rb +249 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear.rb +98 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear/category.rb +7 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear/comment.rb +8 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear/post.rb +9 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear/user.rb +8 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear_2.rb +122 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear_2/category.rb +11 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear_2/comment.rb +13 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear_2/post.rb +15 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear_2/tag.rb +13 -0
- data/vendor/plugins/typo_converter/lib/converters/dotclear_2/user.rb +13 -0
- data/vendor/plugins/typo_converter/lib/converters/wp25.rb +128 -0
- data/vendor/plugins/typo_converter/lib/converters/wp25/comment.rb +12 -0
- data/vendor/plugins/typo_converter/lib/converters/wp25/post.rb +37 -0
- data/vendor/plugins/typo_converter/lib/converters/wp25/term.rb +11 -0
- data/vendor/plugins/typo_converter/lib/converters/wp25/term_relationship.rb +13 -0
- data/vendor/plugins/typo_converter/lib/converters/wp25/term_taxonomy.rb +19 -0
- data/vendor/plugins/typo_converter/lib/converters/wp25/user.rb +12 -0
- data/vendor/plugins/typo_converter/tasks/typo_converters_tasks.rake +4 -0
- data/vendor/plugins/typo_login_system/init.rb +2 -0
- data/vendor/plugins/typo_login_system/lib/access_control.rb +159 -0
- data/vendor/plugins/typo_login_system/lib/login_system.rb +90 -0
- data/vendor/plugins/xml_sidebar/lib/xml_sidebar.rb +1 -1
- metadata +823 -527
- data/CHANGES-5.0 +0 -82
- data/TODO.MULTIUSERS +0 -45
- data/app/views/admin/advanced/index.html.erb +0 -20
- data/app/views/admin/blacklist/list.html.erb +0 -13
- data/app/views/admin/cache/list.html.erb +0 -8
- data/app/views/admin/categories/list.html.erb +0 -18
- data/app/views/admin/categories/show.html.erb +0 -37
- data/app/views/admin/comments/comments.html.erb +0 -4
- data/app/views/admin/comments/list.html.erb +0 -37
- data/app/views/admin/comments/new.html.erb +0 -19
- data/app/views/admin/content/_show_categories.html.erb +0 -9
- data/app/views/admin/content/list.html.erb +0 -21
- data/app/views/admin/content/preview.html.erb +0 -10
- data/app/views/admin/feedback/list.html.erb +0 -48
- data/app/views/admin/pages/list.html.erb +0 -12
- data/app/views/admin/pages/preview.html.erb +0 -1
- data/app/views/admin/resources/list.html.erb +0 -17
- data/app/views/admin/textfilters/list.html.erb +0 -16
- data/app/views/admin/trackbacks/list.html.erb +0 -31
- data/app/views/admin/trackbacks/new.html.erb +0 -15
- data/app/views/admin/users/list.html.erb +0 -32
- data/app/views/admin/users/show.html.erb +0 -23
- data/app/views/layouts/minimal.html.erb +0 -145
- data/db/converters/wordpress.rb +0 -187
- data/db/converters/wordpress2.rb +0 -291
- data/lib/jabber_notify.rb +0 -37
- data/lib/login_system.rb +0 -85
- data/lib/tasks/rcov.rake +0 -38
- data/public/images/admin/bgdivider.gif +0 -0
- data/public/images/admin/bgoff2.png +0 -0
- data/public/images/admin/bgon.png +0 -0
- data/public/images/admin/foot.jpg +0 -0
- data/public/images/admin/table-header-last.png +0 -0
- data/public/images/admin/table-header.png +0 -0
- data/public/images/admin/top.gif +0 -0
- data/public/images/admin/typo.gif +0 -0
- data/public/images/admin/typologo.png +0 -0
- data/public/images/bracket.gif +0 -0
- data/public/images/header.jpg +0 -0
- data/public/images/loading.gif +0 -0
- data/public/javascripts/tiny_mce/langs/en.js +0 -154
- data/public/javascripts/tiny_mce/license.txt +0 -504
- data/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css +0 -13
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +0 -49
- data/public/javascripts/tiny_mce/plugins/advimage/image.htm +0 -237
- data/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/advimage/js/image.js +0 -403
- data/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +0 -43
- data/public/javascripts/tiny_mce/plugins/advlink/css/advlink.css +0 -8
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +0 -58
- data/public/javascripts/tiny_mce/plugins/advlink/js/advlink.js +0 -551
- data/public/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +0 -52
- data/public/javascripts/tiny_mce/plugins/advlink/link.htm +0 -339
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +0 -51
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +0 -84
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +0 -40
- data/public/javascripts/tiny_mce/plugins/emotions/emotions.htm +0 -41
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/js/emotions.js +0 -22
- data/public/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +0 -20
- data/public/javascripts/tiny_mce/plugins/media/css/content.css +0 -6
- data/public/javascripts/tiny_mce/plugins/media/css/media.css +0 -68
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +0 -323
- data/public/javascripts/tiny_mce/plugins/media/img/flash.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/realmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/trans.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/js/embed.js +0 -73
- data/public/javascripts/tiny_mce/plugins/media/js/media.js +0 -616
- data/public/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +0 -103
- data/public/javascripts/tiny_mce/plugins/media/media.htm +0 -823
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +0 -50
- data/public/javascripts/tiny_mce/plugins/paste/blank.htm +0 -22
- data/public/javascripts/tiny_mce/plugins/paste/css/blank.css +0 -14
- data/public/javascripts/tiny_mce/plugins/paste/css/pasteword.css +0 -3
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +0 -382
- data/public/javascripts/tiny_mce/plugins/paste/js/pastetext.js +0 -42
- data/public/javascripts/tiny_mce/plugins/paste/js/pasteword.js +0 -56
- data/public/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +0 -5
- data/public/javascripts/tiny_mce/plugins/paste/pastetext.htm +0 -34
- data/public/javascripts/tiny_mce/plugins/paste/pasteword.htm +0 -29
- data/public/javascripts/tiny_mce/plugins/safari/blank.htm +0 -1
- data/public/javascripts/tiny_mce/plugins/safari/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/safari/editor_plugin_src.js +0 -401
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin.js +0 -1
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +0 -103
- data/public/javascripts/tiny_mce/themes/advanced/about.htm +0 -56
- data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +0 -32
- data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +0 -53
- data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +0 -74
- data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +0 -1
- data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +0 -990
- data/public/javascripts/tiny_mce/themes/advanced/image.htm +0 -86
- data/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/about.js +0 -76
- data/public/javascripts/tiny_mce/themes/advanced/js/anchor.js +0 -30
- data/public/javascripts/tiny_mce/themes/advanced/js/charmap.js +0 -327
- data/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js +0 -245
- data/public/javascripts/tiny_mce/themes/advanced/js/image.js +0 -232
- data/public/javascripts/tiny_mce/themes/advanced/js/link.js +0 -110
- data/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js +0 -62
- data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +0 -62
- data/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +0 -51
- data/public/javascripts/tiny_mce/themes/advanced/link.htm +0 -64
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css +0 -18
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +0 -111
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +0 -193
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +0 -18
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +0 -111
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +0 -193
- data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +0 -32
- data/public/javascripts/tiny_mce/themes/simple/editor_template.js +0 -1
- data/public/javascripts/tiny_mce/themes/simple/editor_template_src.js +0 -85
- data/public/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/simple/langs/en.js +0 -11
- data/public/javascripts/tiny_mce/themes/simple/skins/default/content.css +0 -25
- data/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css +0 -32
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +0 -17
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +0 -35
- data/public/javascripts/tiny_mce/tiny_mce.js +0 -1
- data/public/javascripts/tiny_mce/tiny_mce_popup.js +0 -221
- data/public/javascripts/tiny_mce/tiny_mce_src.js +0 -8803
- data/public/javascripts/tiny_mce/utils/editable_selects.js +0 -61
- data/public/javascripts/tiny_mce/utils/form_utils.js +0 -193
- data/public/javascripts/tiny_mce/utils/mclayer.js +0 -210
- data/public/javascripts/tiny_mce/utils/mctabs.js +0 -74
- data/public/javascripts/tiny_mce/utils/validate.js +0 -219
- data/public/stylesheets/minimal.css +0 -143
- data/spec/fixtures/blacklist_patterns.yml +0 -10
- data/spec/fixtures/blogs.yml +0 -77
- data/spec/fixtures/categories.yml +0 -35
- data/spec/fixtures/categorizations.yml +0 -31
- data/spec/fixtures/contents.yml +0 -205
- data/spec/fixtures/feedback.yml +0 -159
- data/spec/fixtures/page_caches.yml +0 -7
- data/spec/fixtures/profiles.yml +0 -11
- data/spec/fixtures/redirects.yml +0 -13
- data/spec/fixtures/resources.yml +0 -24
- data/spec/fixtures/sidebars.yml +0 -12
- data/spec/fixtures/tags.yml +0 -10
- data/spec/fixtures/text_filters.yml +0 -42
- data/spec/fixtures/triggers.yml +0 -1
- data/spec/fixtures/users.yml +0 -56
- data/spec/helpers/comments_helper_spec.rb +0 -11
- data/test/fixtures/articles_tags.yml +0 -19
- data/test/functional/accounts_controller_test.rb +0 -78
- data/test/functional/admin/article_preview_test.rb +0 -82
- data/test/functional/admin/blacklist_controller_test.rb +0 -63
- data/test/functional/admin/categories_controller_test.rb +0 -106
- data/test/functional/admin/comments_controller_test.rb +0 -78
- data/test/functional/admin/content_controller_test.rb +0 -232
- data/test/functional/admin/feedback_controller_test.rb +0 -59
- data/test/functional/admin/pages_controller_test.rb +0 -88
- data/test/functional/admin/profiles_controller_test.rb +0 -18
- data/test/functional/admin/resources_controller_test.rb +0 -49
- data/test/functional/admin/settings_controller_test.rb +0 -26
- data/test/functional/admin/textfilters_controller_test.rb +0 -29
- data/test/functional/admin/themes_controller_test.rb +0 -34
- data/test/functional/admin/trackbacks_controller_test.rb +0 -76
- data/test/functional/admin/users_controller_test.rb +0 -78
- data/test/functional/articles_controller_test.rb +0 -263
- data/test/functional/backend_controller_test.rb +0 -287
- data/test/functional/redirect_controller_test.rb +0 -40
- data/test/functional/textfilter_controller_test.rb +0 -273
- data/test/functional/theme_controller_test.rb +0 -45
- data/test/functional/xml_controller_test.rb +0 -235
- data/test/mocks/themes/standard_issue/about.markdown +0 -5
- data/test/mocks/themes/standard_issue/images/img01.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img02.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img03.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img04.jpg +0 -0
- data/test/mocks/themes/standard_issue/images/img05.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img06.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img07.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img08.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img09.gif +0 -0
- data/test/mocks/themes/standard_issue/images/img10.gif +0 -0
- data/test/mocks/themes/standard_issue/images/spinner.gif +0 -0
- data/test/mocks/themes/standard_issue/layouts/default.html.erb +0 -61
- data/test/mocks/themes/standard_issue/preview.png +0 -0
- data/test/mocks/themes/standard_issue/stylesheets/application.css +0 -461
- data/test/mocks/themes/standard_issue/views/articles/_article.html.erb +0 -32
- data/test/mocks/themes/standard_issue/views/articles/_comment.html.erb +0 -12
- data/test/mocks/themes/standard_issue/views/articles/_comment_form.html.erb +0 -48
- data/test/mocks/themes/standard_issue/views/articles/_comment_list.html.erb +0 -7
- data/test/mocks/themes/standard_issue/views/articles/_trackback.html.erb +0 -9
- data/test/mocks/themes/standard_issue/views/articles/comment_preview.html.erb +0 -10
- data/test/mocks/themes/standard_issue/views/articles/index.html.erb +0 -5
- data/test/mocks/themes/standard_issue/views/articles/read.html.erb +0 -42
- data/test/mocks/themes/standard_issue/views/shared/_search.html.erb +0 -17
- data/test/mocks/themes/standard_issue/views/theme/static_view_test.rhtml +0 -1
- data/test/unit/amazon_sidebar_test.rb +0 -36
- data/test/unit/article_closing_test.rb +0 -40
- data/test/unit/article_test.rb +0 -304
- data/test/unit/assumptions_tests.rb +0 -54
- data/test/unit/blacklist_pattern_test.rb +0 -14
- data/test/unit/blog_test.rb +0 -52
- data/test/unit/cache_support_test.rb +0 -62
- data/test/unit/category_test.rb +0 -42
- data/test/unit/comment_test.rb +0 -188
- data/test/unit/configuration_test.rb +0 -21
- data/test/unit/content_state/feedback_states_test.rb +0 -67
- data/test/unit/metafragment_test.rb +0 -63
- data/test/unit/notification_mailer_test.rb +0 -55
- data/test/unit/notification_test.rb +0 -10
- data/test/unit/page_test.rb +0 -45
- data/test/unit/ping_pinger_test.rb +0 -30
- data/test/unit/ping_test.rb +0 -127
- data/test/unit/redirect_test.rb +0 -19
- data/test/unit/resource_test.rb +0 -71
- data/test/unit/route_cache_test.rb +0 -11
- data/test/unit/sidebar_test.rb +0 -9
- data/test/unit/static_sidebar_test.rb +0 -19
- data/test/unit/tag_test.rb +0 -71
- data/test/unit/text_filter_test.rb +0 -126
- data/test/unit/theme_test.rb +0 -44
- data/test/unit/trackback_test.rb +0 -22
- data/test/unit/trigger_test.rb +0 -40
- data/test/unit/typo_deprecated_test.rb +0 -22
- data/test/unit/user_test.rb +0 -111
- data/themes/dirtylicious/about.markdown +0 -3
- data/themes/dirtylicious/images/body.jpg +0 -0
- data/themes/dirtylicious/images/container.jpg +0 -0
- data/themes/dirtylicious/images/gravatar.gif +0 -0
- data/themes/dirtylicious/images/header.jpg +0 -0
- data/themes/dirtylicious/images/li.gif +0 -0
- data/themes/dirtylicious/images/main.gif +0 -0
- data/themes/dirtylicious/images/nav.gif +0 -0
- data/themes/dirtylicious/images/quote.gif +0 -0
- data/themes/dirtylicious/images/spinner.gif +0 -0
- data/themes/dirtylicious/layouts/default.html.erb +0 -60
- data/themes/dirtylicious/preview.png +0 -0
- data/themes/dirtylicious/stylesheets/application.css +0 -327
- data/themes/dirtylicious/views/articles/_article.html.erb +0 -33
- data/themes/dirtylicious/views/articles/_comment.html.erb +0 -14
- data/themes/dirtylicious/views/articles/_comment_form.html.erb +0 -37
- data/themes/dirtylicious/views/articles/_comment_list.html.erb +0 -7
- data/themes/dirtylicious/views/articles/_trackback.html.erb +0 -9
- data/themes/dirtylicious/views/articles/comment_preview.html.erb +0 -10
- data/themes/dirtylicious/views/articles/index.html.erb +0 -5
- data/themes/dirtylicious/views/articles/read.html.erb +0 -42
- data/themes/dirtylicious/views/shared/_search.html.erb +0 -16
- data/themes/standard_issue/about.markdown +0 -5
- data/themes/standard_issue/images/img01.gif +0 -0
- data/themes/standard_issue/images/img02.gif +0 -0
- data/themes/standard_issue/images/img03.gif +0 -0
- data/themes/standard_issue/images/img04.jpg +0 -0
- data/themes/standard_issue/images/img05.gif +0 -0
- data/themes/standard_issue/images/img06.gif +0 -0
- data/themes/standard_issue/images/img07.gif +0 -0
- data/themes/standard_issue/images/img08.gif +0 -0
- data/themes/standard_issue/images/img09.gif +0 -0
- data/themes/standard_issue/images/img10.gif +0 -0
- data/themes/standard_issue/images/spinner.gif +0 -0
- data/themes/standard_issue/layouts/default.html.erb +0 -59
- data/themes/standard_issue/preview.png +0 -0
- data/themes/standard_issue/stylesheets/application.css +0 -461
- data/themes/standard_issue/views/articles/_article.html.erb +0 -32
- data/themes/standard_issue/views/articles/_comment.html.erb +0 -12
- data/themes/standard_issue/views/articles/_comment_form.html.erb +0 -48
- data/themes/standard_issue/views/articles/_comment_list.html.erb +0 -7
- data/themes/standard_issue/views/articles/_trackback.html.erb +0 -9
- data/themes/standard_issue/views/articles/comment_preview.html.erb +0 -10
- data/themes/standard_issue/views/articles/index.html.erb +0 -5
- data/themes/standard_issue/views/articles/read.html.erb +0 -42
- data/themes/standard_issue/views/shared/_search.html.erb +0 -17
- data/vendor/jabber4r/CHANGES +0 -8
- data/vendor/jabber4r/LICENSE.txt +0 -12
- data/vendor/jabber4r/README +0 -180
- data/vendor/jabber4r/Rakefile.rb +0 -143
- data/vendor/jabber4r/lib/jabber4r/jabber4r.rb +0 -22
- data/vendor/jabber4r/lib/jabber4r/jid.rb +0 -93
- data/vendor/jabber4r/lib/jabber4r/protocol.rb +0 -1384
- data/vendor/jabber4r/lib/jabber4r/rexml_1.8_patch.rb +0 -16
- data/vendor/jabber4r/lib/jabber4r/roster.rb +0 -322
- data/vendor/jabber4r/lib/jabber4r/session.rb +0 -615
- data/vendor/jabber4r/lib/jabber4r/vcard.rb +0 -42
- data/vendor/plugins/haml/MIT-LICENSE +0 -20
- data/vendor/plugins/haml/REFERENCE +0 -662
- data/vendor/plugins/haml/Rakefile +0 -171
- data/vendor/plugins/haml/VERSION +0 -1
- data/vendor/plugins/haml/bin/haml +0 -18
- data/vendor/plugins/haml/init.rb +0 -3
- data/vendor/plugins/haml/lib/haml/buffer.rb +0 -224
- data/vendor/plugins/haml/lib/haml/engine.rb +0 -557
- data/vendor/plugins/haml/lib/haml/helpers.rb +0 -220
- data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +0 -54
- data/vendor/plugins/haml/lib/haml/template.rb +0 -138
- data/vendor/plugins/haml/test/benchmark.rb +0 -62
- data/vendor/plugins/haml/test/engine_test.rb +0 -93
- data/vendor/plugins/haml/test/helper_test.rb +0 -105
- data/vendor/plugins/haml/test/mocks/article.rb +0 -6
- data/vendor/plugins/haml/test/profile.rb +0 -45
- data/vendor/plugins/haml/test/results/content_for_layout.xhtml +0 -16
- data/vendor/plugins/haml/test/results/eval_suppressed.xhtml +0 -2
- data/vendor/plugins/haml/test/results/helpers.xhtml +0 -50
- data/vendor/plugins/haml/test/results/helpful.xhtml +0 -5
- data/vendor/plugins/haml/test/results/just_stuff.xhtml +0 -38
- data/vendor/plugins/haml/test/results/list.xhtml +0 -12
- data/vendor/plugins/haml/test/results/original_engine.xhtml +0 -24
- data/vendor/plugins/haml/test/results/partials.xhtml +0 -20
- data/vendor/plugins/haml/test/results/silent_script.xhtml +0 -74
- data/vendor/plugins/haml/test/results/standard.xhtml +0 -42
- data/vendor/plugins/haml/test/results/tag_parsing.xhtml +0 -28
- data/vendor/plugins/haml/test/results/very_basic.xhtml +0 -7
- data/vendor/plugins/haml/test/results/whitespace_handling.xhtml +0 -51
- data/vendor/plugins/haml/test/rhtml/standard.rhtml +0 -51
- data/vendor/plugins/haml/test/runner.rb +0 -15
- data/vendor/plugins/haml/test/template_test.rb +0 -137
- data/vendor/plugins/haml/test/templates/_partial.haml +0 -7
- data/vendor/plugins/haml/test/templates/_text_area.haml +0 -3
- data/vendor/plugins/haml/test/templates/content_for_layout.haml +0 -10
- data/vendor/plugins/haml/test/templates/eval_suppressed.haml +0 -5
- data/vendor/plugins/haml/test/templates/helpers.haml +0 -39
- data/vendor/plugins/haml/test/templates/helpful.haml +0 -6
- data/vendor/plugins/haml/test/templates/just_stuff.haml +0 -34
- data/vendor/plugins/haml/test/templates/list.haml +0 -12
- data/vendor/plugins/haml/test/templates/original_engine.haml +0 -17
- data/vendor/plugins/haml/test/templates/partialize.haml +0 -1
- data/vendor/plugins/haml/test/templates/partials.haml +0 -12
- data/vendor/plugins/haml/test/templates/silent_script.haml +0 -40
- data/vendor/plugins/haml/test/templates/standard.haml +0 -40
- data/vendor/plugins/haml/test/templates/tag_parsing.haml +0 -24
- data/vendor/plugins/haml/test/templates/very_basic.haml +0 -4
- data/vendor/plugins/haml/test/templates/whitespace_handling.haml +0 -66
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/testcase_spec_with_test_unit.rb +0 -20
- data/vendor/plugins/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec_with_test_unit.rb +0 -34
- data/vendor/plugins/rspec_on_rails/generators/helpers/rails_identifier.rb +0 -16
- data/vendor/plugins/tiny_mce/README +0 -10
- data/vendor/plugins/tiny_mce/Rakefile +0 -22
- data/vendor/plugins/tiny_mce/TODO +0 -2
- data/vendor/plugins/tiny_mce/changelog +0 -1017
- data/vendor/plugins/tiny_mce/init.rb +0 -3
- data/vendor/plugins/tiny_mce/install.rb +0 -1
- data/vendor/plugins/tiny_mce/lib/tiny_mce.rb +0 -36
- data/vendor/plugins/tiny_mce/lib/tiny_mce_helper.rb +0 -48
- data/vendor/plugins/tiny_mce/tasks/tiny_mce.rake +0 -40
- data/vendor/plugins/tiny_mce/test/helper_testcase.rb +0 -38
- data/vendor/plugins/tiny_mce/test/tiny_mce_helper_test.rb +0 -67
- data/vendor/plugins/tiny_mce/test/tiny_mce_test.rb +0 -85
- data/vendor/plugins/tiny_mce/tiny_mce_options.yml +0 -121
@@ -0,0 +1,372 @@
|
|
1
|
+
/*
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
4
|
+
*
|
5
|
+
* == BEGIN LICENSE ==
|
6
|
+
*
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
8
|
+
* choice:
|
9
|
+
*
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
12
|
+
*
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
15
|
+
*
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
18
|
+
*
|
19
|
+
* == END LICENSE ==
|
20
|
+
*
|
21
|
+
* Handles styles in a give document.
|
22
|
+
*/
|
23
|
+
|
24
|
+
var FCKStyles = FCK.Styles =
|
25
|
+
{
|
26
|
+
_Callbacks : {},
|
27
|
+
_ObjectStyles : {},
|
28
|
+
|
29
|
+
ApplyStyle : function( style )
|
30
|
+
{
|
31
|
+
if ( typeof style == 'string' )
|
32
|
+
style = this.GetStyles()[ style ] ;
|
33
|
+
|
34
|
+
if ( style )
|
35
|
+
{
|
36
|
+
if ( style.GetType() == FCK_STYLE_OBJECT )
|
37
|
+
style.ApplyToObject( FCKSelection.GetSelectedElement() ) ;
|
38
|
+
else
|
39
|
+
style.ApplyToSelection( FCK.EditorWindow ) ;
|
40
|
+
|
41
|
+
FCK.Events.FireEvent( 'OnSelectionChange' ) ;
|
42
|
+
}
|
43
|
+
},
|
44
|
+
|
45
|
+
RemoveStyle : function( style )
|
46
|
+
{
|
47
|
+
if ( typeof style == 'string' )
|
48
|
+
style = this.GetStyles()[ style ] ;
|
49
|
+
|
50
|
+
if ( style )
|
51
|
+
{
|
52
|
+
style.RemoveFromSelection( FCK.EditorWindow ) ;
|
53
|
+
FCK.Events.FireEvent( 'OnSelectionChange' ) ;
|
54
|
+
}
|
55
|
+
},
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Defines a callback function to be called when the current state of a
|
59
|
+
* specific style changes.
|
60
|
+
*/
|
61
|
+
AttachStyleStateChange : function( styleName, callback, callbackOwner )
|
62
|
+
{
|
63
|
+
var callbacks = this._Callbacks[ styleName ] ;
|
64
|
+
|
65
|
+
if ( !callbacks )
|
66
|
+
callbacks = this._Callbacks[ styleName ] = [] ;
|
67
|
+
|
68
|
+
callbacks.push( [ callback, callbackOwner ] ) ;
|
69
|
+
},
|
70
|
+
|
71
|
+
CheckSelectionChanges : function()
|
72
|
+
{
|
73
|
+
var startElement = FCKSelection.GetBoundaryParentElement( true ) ;
|
74
|
+
|
75
|
+
if ( !startElement )
|
76
|
+
return ;
|
77
|
+
|
78
|
+
// Walks the start node parents path, checking all styles that are being listened.
|
79
|
+
var path = new FCKElementPath( startElement ) ;
|
80
|
+
var styles = this.GetStyles() ;
|
81
|
+
|
82
|
+
for ( var styleName in styles )
|
83
|
+
{
|
84
|
+
var callbacks = this._Callbacks[ styleName ] ;
|
85
|
+
|
86
|
+
if ( callbacks )
|
87
|
+
{
|
88
|
+
var style = styles[ styleName ] ;
|
89
|
+
var state = style.CheckActive( path ) ;
|
90
|
+
|
91
|
+
if ( style._LastState != state )
|
92
|
+
{
|
93
|
+
style._LastState = state ;
|
94
|
+
|
95
|
+
for ( var i = 0 ; i < callbacks.length ; i++ )
|
96
|
+
{
|
97
|
+
var callback = callbacks[i][0] ;
|
98
|
+
var callbackOwner = callbacks[i][1] ;
|
99
|
+
|
100
|
+
callback.call( callbackOwner || window, styleName, state ) ;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
}
|
104
|
+
}
|
105
|
+
},
|
106
|
+
|
107
|
+
CheckStyleInSelection : function( styleName )
|
108
|
+
{
|
109
|
+
return false ;
|
110
|
+
},
|
111
|
+
|
112
|
+
_GetRemoveFormatTagsRegex : function ()
|
113
|
+
{
|
114
|
+
var regex = new RegExp( '^(?:' + FCKConfig.RemoveFormatTags.replace( /,/g,'|' ) + ')$', 'i' ) ;
|
115
|
+
|
116
|
+
return (this._GetRemoveFormatTagsRegex = function()
|
117
|
+
{
|
118
|
+
return regex ;
|
119
|
+
})
|
120
|
+
&& regex ;
|
121
|
+
},
|
122
|
+
|
123
|
+
/**
|
124
|
+
* Remove all styles from the current selection.
|
125
|
+
* TODO:
|
126
|
+
* - This is almost a duplication of FCKStyle.RemoveFromRange. We should
|
127
|
+
* try to merge things.
|
128
|
+
*/
|
129
|
+
RemoveAll : function()
|
130
|
+
{
|
131
|
+
var range = new FCKDomRange( FCK.EditorWindow ) ;
|
132
|
+
range.MoveToSelection() ;
|
133
|
+
|
134
|
+
if ( range.CheckIsCollapsed() )
|
135
|
+
return ;
|
136
|
+
|
137
|
+
// Expand the range, if inside inline element boundaries.
|
138
|
+
range.Expand( 'inline_elements' ) ;
|
139
|
+
|
140
|
+
// Get the bookmark nodes.
|
141
|
+
// Bookmark the range so we can re-select it after processing.
|
142
|
+
var bookmark = range.CreateBookmark( true ) ;
|
143
|
+
|
144
|
+
// The style will be applied within the bookmark boundaries.
|
145
|
+
var startNode = range.GetBookmarkNode( bookmark, true ) ;
|
146
|
+
var endNode = range.GetBookmarkNode( bookmark, false ) ;
|
147
|
+
|
148
|
+
range.Release( true ) ;
|
149
|
+
|
150
|
+
var tagsRegex = this._GetRemoveFormatTagsRegex() ;
|
151
|
+
|
152
|
+
// We need to check the selection boundaries (bookmark spans) to break
|
153
|
+
// the code in a way that we can properly remove partially selected nodes.
|
154
|
+
// For example, removing a <b> style from
|
155
|
+
// <b>This is [some text</b> to show <b>the] problem</b>
|
156
|
+
// ... where [ and ] represent the selection, must result:
|
157
|
+
// <b>This is </b>[some text to show the]<b> problem</b>
|
158
|
+
// The strategy is simple, we just break the partial nodes before the
|
159
|
+
// removal logic, having something that could be represented this way:
|
160
|
+
// <b>This is </b>[<b>some text</b> to show <b>the</b>]<b> problem</b>
|
161
|
+
|
162
|
+
// Let's start checking the start boundary.
|
163
|
+
var path = new FCKElementPath( startNode ) ;
|
164
|
+
var pathElements = path.Elements ;
|
165
|
+
var pathElement ;
|
166
|
+
|
167
|
+
for ( var i = 1 ; i < pathElements.length ; i++ )
|
168
|
+
{
|
169
|
+
pathElement = pathElements[i] ;
|
170
|
+
|
171
|
+
if ( pathElement == path.Block || pathElement == path.BlockLimit )
|
172
|
+
break ;
|
173
|
+
|
174
|
+
// If this element can be removed (even partially).
|
175
|
+
if ( tagsRegex.test( pathElement.nodeName ) )
|
176
|
+
FCKDomTools.BreakParent( startNode, pathElement, range ) ;
|
177
|
+
}
|
178
|
+
|
179
|
+
// Now the end boundary.
|
180
|
+
path = new FCKElementPath( endNode ) ;
|
181
|
+
pathElements = path.Elements ;
|
182
|
+
|
183
|
+
for ( var i = 1 ; i < pathElements.length ; i++ )
|
184
|
+
{
|
185
|
+
pathElement = pathElements[i] ;
|
186
|
+
|
187
|
+
if ( pathElement == path.Block || pathElement == path.BlockLimit )
|
188
|
+
break ;
|
189
|
+
|
190
|
+
elementName = pathElement.nodeName.toLowerCase() ;
|
191
|
+
|
192
|
+
// If this element can be removed (even partially).
|
193
|
+
if ( tagsRegex.test( pathElement.nodeName ) )
|
194
|
+
FCKDomTools.BreakParent( endNode, pathElement, range ) ;
|
195
|
+
}
|
196
|
+
|
197
|
+
// Navigate through all nodes between the bookmarks.
|
198
|
+
var currentNode = FCKDomTools.GetNextSourceNode( startNode, true, 1 ) ;
|
199
|
+
|
200
|
+
while ( currentNode )
|
201
|
+
{
|
202
|
+
// If we have reached the end of the selection, stop looping.
|
203
|
+
if ( currentNode == endNode )
|
204
|
+
break ;
|
205
|
+
|
206
|
+
// Cache the next node to be processed. Do it now, because
|
207
|
+
// currentNode may be removed.
|
208
|
+
var nextNode = FCKDomTools.GetNextSourceNode( currentNode, false, 1 ) ;
|
209
|
+
|
210
|
+
// Remove elements nodes that match with this style rules.
|
211
|
+
if ( tagsRegex.test( currentNode.nodeName ) )
|
212
|
+
FCKDomTools.RemoveNode( currentNode, true ) ;
|
213
|
+
|
214
|
+
currentNode = nextNode ;
|
215
|
+
}
|
216
|
+
|
217
|
+
range.SelectBookmark( bookmark ) ;
|
218
|
+
|
219
|
+
FCK.Events.FireEvent( 'OnSelectionChange' ) ;
|
220
|
+
},
|
221
|
+
|
222
|
+
GetStyle : function( styleName )
|
223
|
+
{
|
224
|
+
return this.GetStyles()[ styleName ] ;
|
225
|
+
},
|
226
|
+
|
227
|
+
GetStyles : function()
|
228
|
+
{
|
229
|
+
var styles = this._GetStyles ;
|
230
|
+
if ( !styles )
|
231
|
+
{
|
232
|
+
styles = this._GetStyles = FCKTools.Merge(
|
233
|
+
this._LoadStylesCore(),
|
234
|
+
this._LoadStylesCustom(),
|
235
|
+
this._LoadStylesXml() ) ;
|
236
|
+
}
|
237
|
+
return styles ;
|
238
|
+
},
|
239
|
+
|
240
|
+
CheckHasObjectStyle : function( elementName )
|
241
|
+
{
|
242
|
+
return !!this._ObjectStyles[ elementName ] ;
|
243
|
+
},
|
244
|
+
|
245
|
+
_LoadStylesCore : function()
|
246
|
+
{
|
247
|
+
var styles = {};
|
248
|
+
var styleDefs = FCKConfig.CoreStyles ;
|
249
|
+
|
250
|
+
for ( var styleName in styleDefs )
|
251
|
+
{
|
252
|
+
// Core styles are prefixed with _FCK_.
|
253
|
+
var style = styles[ '_FCK_' + styleName ] = new FCKStyle( styleDefs[ styleName ] ) ;
|
254
|
+
style.IsCore = true ;
|
255
|
+
}
|
256
|
+
return styles ;
|
257
|
+
},
|
258
|
+
|
259
|
+
_LoadStylesCustom : function()
|
260
|
+
{
|
261
|
+
var styles = {};
|
262
|
+
var styleDefs = FCKConfig.CustomStyles ;
|
263
|
+
|
264
|
+
if ( styleDefs )
|
265
|
+
{
|
266
|
+
for ( var styleName in styleDefs )
|
267
|
+
styles[ styleName ] = new FCKStyle( styleDefs[ styleName ] ) ;
|
268
|
+
}
|
269
|
+
|
270
|
+
return styles ;
|
271
|
+
},
|
272
|
+
|
273
|
+
_LoadStylesXml : function()
|
274
|
+
{
|
275
|
+
var styles = {};
|
276
|
+
|
277
|
+
var stylesXmlPath = FCKConfig.StylesXmlPath ;
|
278
|
+
|
279
|
+
if ( !stylesXmlPath || stylesXmlPath.length == 0 )
|
280
|
+
return styles ;
|
281
|
+
|
282
|
+
// Load the XML file into a FCKXml object.
|
283
|
+
var xml = new FCKXml() ;
|
284
|
+
xml.LoadUrl( stylesXmlPath ) ;
|
285
|
+
|
286
|
+
var stylesXmlObj = FCKXml.TransformToObject( xml.SelectSingleNode( 'Styles' ) ) ;
|
287
|
+
|
288
|
+
// Get the "Style" nodes defined in the XML file.
|
289
|
+
var styleNodes = stylesXmlObj.$Style ;
|
290
|
+
|
291
|
+
// Add each style to our "Styles" collection.
|
292
|
+
for ( var i = 0 ; i < styleNodes.length ; i++ )
|
293
|
+
{
|
294
|
+
var styleNode = styleNodes[i] ;
|
295
|
+
|
296
|
+
var element = ( styleNode.element || '' ).toLowerCase() ;
|
297
|
+
|
298
|
+
if ( element.length == 0 )
|
299
|
+
throw( 'The element name is required. Error loading "' + stylesXmlPath + '"' ) ;
|
300
|
+
|
301
|
+
var styleDef = {
|
302
|
+
Element : element,
|
303
|
+
Attributes : {},
|
304
|
+
Styles : {},
|
305
|
+
Overrides : []
|
306
|
+
} ;
|
307
|
+
|
308
|
+
// Get the attributes defined for the style (if any).
|
309
|
+
var attNodes = styleNode.$Attribute || [] ;
|
310
|
+
|
311
|
+
// Add the attributes to the style definition object.
|
312
|
+
for ( var j = 0 ; j < attNodes.length ; j++ )
|
313
|
+
{
|
314
|
+
styleDef.Attributes[ attNodes[j].name ] = attNodes[j].value ;
|
315
|
+
}
|
316
|
+
|
317
|
+
// Get the styles defined for the style (if any).
|
318
|
+
var cssStyleNodes = styleNode.$Style || [] ;
|
319
|
+
|
320
|
+
// Add the attributes to the style definition object.
|
321
|
+
for ( j = 0 ; j < cssStyleNodes.length ; j++ )
|
322
|
+
{
|
323
|
+
styleDef.Styles[ cssStyleNodes[j].name ] = cssStyleNodes[j].value ;
|
324
|
+
}
|
325
|
+
|
326
|
+
// Load override definitions.
|
327
|
+
var cssStyleOverrideNodes = styleNode.$Override ;
|
328
|
+
if ( cssStyleOverrideNodes )
|
329
|
+
{
|
330
|
+
for ( j = 0 ; j < cssStyleOverrideNodes.length ; j++ )
|
331
|
+
{
|
332
|
+
var overrideNode = cssStyleOverrideNodes[j] ;
|
333
|
+
var overrideDef =
|
334
|
+
{
|
335
|
+
Element : overrideNode.element
|
336
|
+
} ;
|
337
|
+
|
338
|
+
var overrideAttNode = overrideNode.$Attribute ;
|
339
|
+
if ( overrideAttNode )
|
340
|
+
{
|
341
|
+
overrideDef.Attributes = {} ;
|
342
|
+
for ( var k = 0 ; k < overrideAttNode.length ; k++ )
|
343
|
+
{
|
344
|
+
var overrideAttValue = overrideAttNode[k].value || null ;
|
345
|
+
if ( overrideAttValue )
|
346
|
+
{
|
347
|
+
// Check if the override attribute value is a regular expression.
|
348
|
+
var regexMatch = overrideAttValue && FCKRegexLib.RegExp.exec( overrideAttValue ) ;
|
349
|
+
if ( regexMatch )
|
350
|
+
overrideAttValue = new RegExp( regexMatch[1], regexMatch[2] || '' ) ;
|
351
|
+
}
|
352
|
+
overrideDef.Attributes[ overrideAttNode[k].name ] = overrideAttValue ;
|
353
|
+
}
|
354
|
+
}
|
355
|
+
|
356
|
+
styleDef.Overrides.push( overrideDef ) ;
|
357
|
+
}
|
358
|
+
}
|
359
|
+
|
360
|
+
var style = new FCKStyle( styleDef ) ;
|
361
|
+
style.Name = styleNode.name || element ;
|
362
|
+
|
363
|
+
if ( style.GetType() == FCK_STYLE_OBJECT )
|
364
|
+
this._ObjectStyles[ element ] = true ;
|
365
|
+
|
366
|
+
// Add the style to the "Styles" collection using it's name as the key.
|
367
|
+
styles[ style.Name ] = style ;
|
368
|
+
}
|
369
|
+
|
370
|
+
return styles ;
|
371
|
+
}
|
372
|
+
} ;
|
@@ -0,0 +1,858 @@
|
|
1
|
+
/*
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
4
|
+
*
|
5
|
+
* == BEGIN LICENSE ==
|
6
|
+
*
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
8
|
+
* choice:
|
9
|
+
*
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
12
|
+
*
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
15
|
+
*
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
18
|
+
*
|
19
|
+
* == END LICENSE ==
|
20
|
+
*
|
21
|
+
* Manage table operations.
|
22
|
+
*/
|
23
|
+
|
24
|
+
var FCKTableHandler = new Object() ;
|
25
|
+
|
26
|
+
FCKTableHandler.InsertRow = function( insertBefore )
|
27
|
+
{
|
28
|
+
// Get the row where the selection is placed in.
|
29
|
+
var oRow = FCKSelection.MoveToAncestorNode( 'TR' ) ;
|
30
|
+
if ( !oRow ) return ;
|
31
|
+
|
32
|
+
// Create a clone of the row.
|
33
|
+
var oNewRow = oRow.cloneNode( true ) ;
|
34
|
+
|
35
|
+
// Insert the new row (copy) before of it.
|
36
|
+
oRow.parentNode.insertBefore( oNewRow, oRow ) ;
|
37
|
+
|
38
|
+
// Clean one of the rows to produce the illusion of inserting an empty row before or after.
|
39
|
+
FCKTableHandler.ClearRow( insertBefore ? oNewRow : oRow ) ;
|
40
|
+
}
|
41
|
+
|
42
|
+
FCKTableHandler.DeleteRows = function( row )
|
43
|
+
{
|
44
|
+
// If no row has been passed as a parameter,
|
45
|
+
// then get the row( s ) containing the cells where the selection is placed in.
|
46
|
+
// If user selected multiple rows ( by selecting multiple cells ), walk
|
47
|
+
// the selected cell list and delete the rows containing the selected cells
|
48
|
+
if ( ! row )
|
49
|
+
{
|
50
|
+
var aCells = FCKTableHandler.GetSelectedCells() ;
|
51
|
+
var aRowsToDelete = new Array() ;
|
52
|
+
//queue up the rows -- it's possible ( and likely ) that we may get duplicates
|
53
|
+
for ( var i = 0; i < aCells.length; i++ )
|
54
|
+
{
|
55
|
+
var oRow = FCKTools.GetElementAscensor( aCells[i],'TR' ) ;
|
56
|
+
aRowsToDelete[oRow.rowIndex] = oRow ;
|
57
|
+
}
|
58
|
+
for ( var i = aRowsToDelete.length; i >= 0; i-- )
|
59
|
+
{
|
60
|
+
if ( aRowsToDelete[i] )
|
61
|
+
FCKTableHandler.DeleteRows( aRowsToDelete[i] );
|
62
|
+
}
|
63
|
+
return ;
|
64
|
+
}
|
65
|
+
|
66
|
+
// Get the row's table.
|
67
|
+
var oTable = FCKTools.GetElementAscensor( row, 'TABLE' ) ;
|
68
|
+
|
69
|
+
// If just one row is available then delete the entire table.
|
70
|
+
if ( oTable.rows.length == 1 )
|
71
|
+
{
|
72
|
+
FCKTableHandler.DeleteTable( oTable ) ;
|
73
|
+
return ;
|
74
|
+
}
|
75
|
+
|
76
|
+
// Delete the row.
|
77
|
+
row.parentNode.removeChild( row ) ;
|
78
|
+
}
|
79
|
+
|
80
|
+
FCKTableHandler.DeleteTable = function( table )
|
81
|
+
{
|
82
|
+
// If no table has been passed as a parameter,
|
83
|
+
// then get the table where the selection is placed in.
|
84
|
+
if ( !table )
|
85
|
+
{
|
86
|
+
table = FCKSelection.GetSelectedElement() ;
|
87
|
+
if ( !table || table.tagName != 'TABLE' )
|
88
|
+
table = FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
|
89
|
+
}
|
90
|
+
if ( !table ) return ;
|
91
|
+
|
92
|
+
// Delete the table.
|
93
|
+
FCKSelection.SelectNode( table ) ;
|
94
|
+
FCKSelection.Collapse();
|
95
|
+
|
96
|
+
// if the table is wrapped with a singleton <p> ( or something similar ), remove
|
97
|
+
// the surrounding tag -- which likely won't show after deletion anyway
|
98
|
+
if ( table.parentNode.childNodes.length == 1 )
|
99
|
+
table.parentNode.parentNode.removeChild( table.parentNode );
|
100
|
+
else
|
101
|
+
table.parentNode.removeChild( table ) ;
|
102
|
+
}
|
103
|
+
|
104
|
+
FCKTableHandler.InsertColumn = function( insertBefore )
|
105
|
+
{
|
106
|
+
// Get the cell where the selection is placed in.
|
107
|
+
var oCell = null ;
|
108
|
+
var nodes = this.GetSelectedCells() ;
|
109
|
+
|
110
|
+
if ( nodes && nodes.length )
|
111
|
+
oCell = nodes[ insertBefore ? 0 : ( nodes.length - 1 ) ] ;
|
112
|
+
|
113
|
+
if ( ! oCell )
|
114
|
+
return ;
|
115
|
+
|
116
|
+
// Get the cell's table.
|
117
|
+
var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
|
118
|
+
|
119
|
+
var iIndex = oCell.cellIndex ;
|
120
|
+
|
121
|
+
// Loop throw all rows available in the table.
|
122
|
+
for ( var i = 0 ; i < oTable.rows.length ; i++ )
|
123
|
+
{
|
124
|
+
// Get the row.
|
125
|
+
var oRow = oTable.rows[i] ;
|
126
|
+
|
127
|
+
// If the row doens't have enough cells, ignore it.
|
128
|
+
if ( oRow.cells.length < ( iIndex + 1 ) )
|
129
|
+
continue ;
|
130
|
+
|
131
|
+
oCell = oRow.cells[iIndex].cloneNode(false) ;
|
132
|
+
|
133
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
134
|
+
FCKTools.AppendBogusBr( oCell ) ;
|
135
|
+
|
136
|
+
// Get back the currently selected cell.
|
137
|
+
var oBaseCell = oRow.cells[iIndex] ;
|
138
|
+
|
139
|
+
if ( insertBefore )
|
140
|
+
oRow.insertBefore( oCell, oBaseCell ) ;
|
141
|
+
else if ( oBaseCell.nextSibling )
|
142
|
+
oRow.insertBefore( oCell, oBaseCell.nextSibling ) ;
|
143
|
+
else
|
144
|
+
oRow.appendChild( oCell ) ;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
FCKTableHandler.DeleteColumns = function( oCell )
|
149
|
+
{
|
150
|
+
// if user selected multiple cols ( by selecting multiple cells ), walk
|
151
|
+
// the selected cell list and delete the rows containing the selected cells
|
152
|
+
if ( !oCell )
|
153
|
+
{
|
154
|
+
var aColsToDelete = FCKTableHandler.GetSelectedCells();
|
155
|
+
for ( var i = aColsToDelete.length; i >= 0; i-- )
|
156
|
+
{
|
157
|
+
if ( aColsToDelete[i] )
|
158
|
+
FCKTableHandler.DeleteColumns( aColsToDelete[i] );
|
159
|
+
}
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
|
163
|
+
if ( !oCell ) return ;
|
164
|
+
|
165
|
+
// Get the cell's table.
|
166
|
+
var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
|
167
|
+
|
168
|
+
// Get the cell index.
|
169
|
+
var iIndex = oCell.cellIndex ;
|
170
|
+
|
171
|
+
// Loop throw all rows (from down to up, because it's possible that some
|
172
|
+
// rows will be deleted).
|
173
|
+
for ( var i = oTable.rows.length - 1 ; i >= 0 ; i-- )
|
174
|
+
{
|
175
|
+
// Get the row.
|
176
|
+
var oRow = oTable.rows[i] ;
|
177
|
+
|
178
|
+
// If the cell to be removed is the first one and the row has just one cell.
|
179
|
+
if ( iIndex == 0 && oRow.cells.length == 1 )
|
180
|
+
{
|
181
|
+
// Remove the entire row.
|
182
|
+
FCKTableHandler.DeleteRows( oRow ) ;
|
183
|
+
continue ;
|
184
|
+
}
|
185
|
+
|
186
|
+
// If the cell to be removed exists the delete it.
|
187
|
+
if ( oRow.cells[iIndex] )
|
188
|
+
oRow.removeChild( oRow.cells[iIndex] ) ;
|
189
|
+
}
|
190
|
+
}
|
191
|
+
|
192
|
+
FCKTableHandler.InsertCell = function( cell, insertBefore )
|
193
|
+
{
|
194
|
+
// Get the cell where the selection is placed in.
|
195
|
+
var oCell = null ;
|
196
|
+
var nodes = this.GetSelectedCells() ;
|
197
|
+
if ( nodes && nodes.length )
|
198
|
+
oCell = nodes[ insertBefore ? 0 : ( nodes.length - 1 ) ] ;
|
199
|
+
if ( ! oCell )
|
200
|
+
return null ;
|
201
|
+
|
202
|
+
// Create the new cell element to be added.
|
203
|
+
var oNewCell = FCK.EditorDocument.createElement( 'TD' ) ;
|
204
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
205
|
+
FCKTools.AppendBogusBr( oNewCell ) ;
|
206
|
+
|
207
|
+
if ( !insertBefore && oCell.cellIndex == oCell.parentNode.cells.length - 1 )
|
208
|
+
oCell.parentNode.appendChild( oNewCell ) ;
|
209
|
+
else
|
210
|
+
oCell.parentNode.insertBefore( oNewCell, insertBefore ? oCell : oCell.nextSibling ) ;
|
211
|
+
|
212
|
+
return oNewCell ;
|
213
|
+
}
|
214
|
+
|
215
|
+
FCKTableHandler.DeleteCell = function( cell )
|
216
|
+
{
|
217
|
+
// If this is the last cell in the row.
|
218
|
+
if ( cell.parentNode.cells.length == 1 )
|
219
|
+
{
|
220
|
+
// Delete the entire row.
|
221
|
+
FCKTableHandler.DeleteRows( FCKTools.GetElementAscensor( cell, 'TR' ) ) ;
|
222
|
+
return ;
|
223
|
+
}
|
224
|
+
|
225
|
+
// Delete the cell from the row.
|
226
|
+
cell.parentNode.removeChild( cell ) ;
|
227
|
+
}
|
228
|
+
|
229
|
+
FCKTableHandler.DeleteCells = function()
|
230
|
+
{
|
231
|
+
var aCells = FCKTableHandler.GetSelectedCells() ;
|
232
|
+
|
233
|
+
for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
|
234
|
+
{
|
235
|
+
FCKTableHandler.DeleteCell( aCells[i] ) ;
|
236
|
+
}
|
237
|
+
}
|
238
|
+
|
239
|
+
FCKTableHandler._MarkCells = function( cells, label )
|
240
|
+
{
|
241
|
+
for ( var i = 0 ; i < cells.length ; i++ )
|
242
|
+
cells[i][label] = true ;
|
243
|
+
}
|
244
|
+
|
245
|
+
FCKTableHandler._UnmarkCells = function( cells, label )
|
246
|
+
{
|
247
|
+
for ( var i = 0 ; i < cells.length ; i++ )
|
248
|
+
{
|
249
|
+
if ( FCKBrowserInfo.IsIE )
|
250
|
+
cells[i].removeAttribute( label ) ;
|
251
|
+
else
|
252
|
+
delete cells[i][label] ;
|
253
|
+
}
|
254
|
+
}
|
255
|
+
|
256
|
+
FCKTableHandler._ReplaceCellsByMarker = function( tableMap, marker, substitute )
|
257
|
+
{
|
258
|
+
for ( var i = 0 ; i < tableMap.length ; i++ )
|
259
|
+
{
|
260
|
+
for ( var j = 0 ; j < tableMap[i].length ; j++ )
|
261
|
+
{
|
262
|
+
if ( tableMap[i][j][marker] )
|
263
|
+
tableMap[i][j] = substitute ;
|
264
|
+
}
|
265
|
+
}
|
266
|
+
}
|
267
|
+
|
268
|
+
FCKTableHandler._GetMarkerGeometry = function( tableMap, rowIdx, colIdx, markerName )
|
269
|
+
{
|
270
|
+
var selectionWidth = 0 ;
|
271
|
+
var selectionHeight = 0 ;
|
272
|
+
var cellsLeft = 0 ;
|
273
|
+
var cellsUp = 0 ;
|
274
|
+
for ( var i = colIdx ; tableMap[rowIdx][i] && tableMap[rowIdx][i][markerName] ; i++ )
|
275
|
+
selectionWidth++ ;
|
276
|
+
for ( var i = colIdx - 1 ; tableMap[rowIdx][i] && tableMap[rowIdx][i][markerName] ; i-- )
|
277
|
+
{
|
278
|
+
selectionWidth++ ;
|
279
|
+
cellsLeft++ ;
|
280
|
+
}
|
281
|
+
for ( var i = rowIdx ; tableMap[i] && tableMap[i][colIdx] && tableMap[i][colIdx][markerName] ; i++ )
|
282
|
+
selectionHeight++ ;
|
283
|
+
for ( var i = rowIdx - 1 ; tableMap[i] && tableMap[i][colIdx] && tableMap[i][colIdx][markerName] ; i-- )
|
284
|
+
{
|
285
|
+
selectionHeight++ ;
|
286
|
+
cellsUp++ ;
|
287
|
+
}
|
288
|
+
return { 'width' : selectionWidth, 'height' : selectionHeight, 'x' : cellsLeft, 'y' : cellsUp } ;
|
289
|
+
}
|
290
|
+
|
291
|
+
FCKTableHandler.CheckIsSelectionRectangular = function()
|
292
|
+
{
|
293
|
+
// If every row and column in an area on a plane are of the same width and height,
|
294
|
+
// Then the area is a rectangle.
|
295
|
+
var cells = FCKTableHandler.GetSelectedCells() ;
|
296
|
+
if ( cells.length < 1 )
|
297
|
+
return false ;
|
298
|
+
|
299
|
+
this._MarkCells( cells, '_CellSelected' ) ;
|
300
|
+
|
301
|
+
var tableMap = this._CreateTableMap( cells[0].parentNode.parentNode ) ;
|
302
|
+
var rowIdx = cells[0].parentNode.rowIndex ;
|
303
|
+
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, cells[0] ) ;
|
304
|
+
|
305
|
+
var geometry = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_CellSelected' ) ;
|
306
|
+
var baseColIdx = colIdx - geometry.x ;
|
307
|
+
var baseRowIdx = rowIdx - geometry.y ;
|
308
|
+
|
309
|
+
if ( geometry.width >= geometry.height )
|
310
|
+
{
|
311
|
+
for ( colIdx = baseColIdx ; colIdx < baseColIdx + geometry.width ; colIdx++ )
|
312
|
+
{
|
313
|
+
rowIdx = baseRowIdx + ( colIdx - baseColIdx ) % geometry.height ;
|
314
|
+
if ( ! tableMap[rowIdx] || ! tableMap[rowIdx][colIdx] )
|
315
|
+
{
|
316
|
+
this._UnmarkCells( cells, '_CellSelected' ) ;
|
317
|
+
return false ;
|
318
|
+
}
|
319
|
+
var g = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_CellSelected' ) ;
|
320
|
+
if ( g.width != geometry.width || g.height != geometry.height )
|
321
|
+
{
|
322
|
+
this._UnmarkCells( cells, '_CellSelected' ) ;
|
323
|
+
return false ;
|
324
|
+
}
|
325
|
+
}
|
326
|
+
}
|
327
|
+
else
|
328
|
+
{
|
329
|
+
for ( rowIdx = baseRowIdx ; rowIdx < baseRowIdx + geometry.height ; rowIdx++ )
|
330
|
+
{
|
331
|
+
colIdx = baseColIdx + ( rowIdx - baseRowIdx ) % geometry.width ;
|
332
|
+
if ( ! tableMap[rowIdx] || ! tableMap[rowIdx][colIdx] )
|
333
|
+
{
|
334
|
+
this._UnmarkCells( cells, '_CellSelected' ) ;
|
335
|
+
return false ;
|
336
|
+
}
|
337
|
+
var g = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_CellSelected' ) ;
|
338
|
+
if ( g.width != geometry.width || g.height != geometry.height )
|
339
|
+
{
|
340
|
+
this._UnmarkCells( cells, '_CellSelected' ) ;
|
341
|
+
return false ;
|
342
|
+
}
|
343
|
+
}
|
344
|
+
}
|
345
|
+
|
346
|
+
this._UnmarkCells( cells, '_CellSelected' ) ;
|
347
|
+
return true ;
|
348
|
+
}
|
349
|
+
|
350
|
+
FCKTableHandler.MergeCells = function()
|
351
|
+
{
|
352
|
+
// Get all selected cells.
|
353
|
+
var cells = this.GetSelectedCells() ;
|
354
|
+
if ( cells.length < 2 )
|
355
|
+
return ;
|
356
|
+
|
357
|
+
// Assume the selected cells are already in a rectangular geometry.
|
358
|
+
// Because the checking is already done by FCKTableCommand.
|
359
|
+
var refCell = cells[0] ;
|
360
|
+
var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
|
361
|
+
var rowIdx = refCell.parentNode.rowIndex ;
|
362
|
+
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
|
363
|
+
|
364
|
+
this._MarkCells( cells, '_SelectedCells' ) ;
|
365
|
+
var selectionGeometry = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_SelectedCells' ) ;
|
366
|
+
|
367
|
+
var baseColIdx = colIdx - selectionGeometry.x ;
|
368
|
+
var baseRowIdx = rowIdx - selectionGeometry.y ;
|
369
|
+
var cellContents = refCell.ownerDocument.createDocumentFragment() ;
|
370
|
+
for ( var i = 0 ; i < selectionGeometry.height ; i++ )
|
371
|
+
{
|
372
|
+
var rowChildNodesCount = 0 ;
|
373
|
+
for ( var j = 0 ; j < selectionGeometry.width ; j++ )
|
374
|
+
{
|
375
|
+
var currentCell = tableMap[baseRowIdx + i][baseColIdx + j] ;
|
376
|
+
while ( currentCell.childNodes.length > 0 )
|
377
|
+
{
|
378
|
+
var node = currentCell.removeChild( currentCell.firstChild ) ;
|
379
|
+
if ( node.nodeType != 1
|
380
|
+
|| ( node.getAttribute( 'type', 2 ) != '_moz' && node.getAttribute( '_moz_dirty' ) != null ) )
|
381
|
+
{
|
382
|
+
cellContents.appendChild( node ) ;
|
383
|
+
rowChildNodesCount++ ;
|
384
|
+
}
|
385
|
+
}
|
386
|
+
}
|
387
|
+
if ( rowChildNodesCount > 0 )
|
388
|
+
cellContents.appendChild( refCell.ownerDocument.createElement( 'br' ) ) ;
|
389
|
+
}
|
390
|
+
|
391
|
+
this._ReplaceCellsByMarker( tableMap, '_SelectedCells', refCell ) ;
|
392
|
+
this._UnmarkCells( cells, '_SelectedCells' ) ;
|
393
|
+
this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
|
394
|
+
refCell.appendChild( cellContents ) ;
|
395
|
+
|
396
|
+
if ( FCKBrowserInfo.IsGeckoLike && ( ! refCell.firstChild ) )
|
397
|
+
FCKTools.AppendBogusBr( refCell ) ;
|
398
|
+
|
399
|
+
this._MoveCaretToCell( refCell, false ) ;
|
400
|
+
}
|
401
|
+
|
402
|
+
FCKTableHandler.MergeRight = function()
|
403
|
+
{
|
404
|
+
var target = this.GetMergeRightTarget() ;
|
405
|
+
if ( target == null )
|
406
|
+
return ;
|
407
|
+
var refCell = target.refCell ;
|
408
|
+
var tableMap = target.tableMap ;
|
409
|
+
var nextCell = target.nextCell ;
|
410
|
+
|
411
|
+
var cellContents = FCK.EditorDocument.createDocumentFragment() ;
|
412
|
+
while ( nextCell && nextCell.childNodes && nextCell.childNodes.length > 0 )
|
413
|
+
cellContents.appendChild( nextCell.removeChild( nextCell.firstChild ) ) ;
|
414
|
+
|
415
|
+
nextCell.parentNode.removeChild( nextCell ) ;
|
416
|
+
refCell.appendChild( cellContents ) ;
|
417
|
+
this._MarkCells( [nextCell], '_Replace' ) ;
|
418
|
+
this._ReplaceCellsByMarker( tableMap, '_Replace', refCell ) ;
|
419
|
+
this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
|
420
|
+
|
421
|
+
this._MoveCaretToCell( refCell, false ) ;
|
422
|
+
}
|
423
|
+
|
424
|
+
FCKTableHandler.MergeDown = function()
|
425
|
+
{
|
426
|
+
var target = this.GetMergeDownTarget() ;
|
427
|
+
if ( target == null )
|
428
|
+
return ;
|
429
|
+
var refCell = target.refCell ;
|
430
|
+
var tableMap = target.tableMap ;
|
431
|
+
var nextCell = target.nextCell ;
|
432
|
+
|
433
|
+
var cellContents = refCell.ownerDocument.createDocumentFragment() ;
|
434
|
+
while ( nextCell && nextCell.childNodes && nextCell.childNodes.length > 0 )
|
435
|
+
cellContents.appendChild( nextCell.removeChild( nextCell.firstChild ) ) ;
|
436
|
+
if ( cellContents.firstChild )
|
437
|
+
cellContents.insertBefore( nextCell.ownerDocument.createElement( 'br' ), cellContents.firstChild ) ;
|
438
|
+
refCell.appendChild( cellContents ) ;
|
439
|
+
this._MarkCells( [nextCell], '_Replace' ) ;
|
440
|
+
this._ReplaceCellsByMarker( tableMap, '_Replace', refCell ) ;
|
441
|
+
this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
|
442
|
+
|
443
|
+
this._MoveCaretToCell( refCell, false ) ;
|
444
|
+
}
|
445
|
+
|
446
|
+
FCKTableHandler.HorizontalSplitCell = function()
|
447
|
+
{
|
448
|
+
var cells = FCKTableHandler.GetSelectedCells() ;
|
449
|
+
if ( cells.length != 1 )
|
450
|
+
return ;
|
451
|
+
|
452
|
+
var refCell = cells[0] ;
|
453
|
+
var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
|
454
|
+
var rowIdx = refCell.parentNode.rowIndex ;
|
455
|
+
var colIdx = FCKTableHandler._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
|
456
|
+
var cellSpan = isNaN( refCell.colSpan ) ? 1 : refCell.colSpan ;
|
457
|
+
|
458
|
+
if ( cellSpan > 1 )
|
459
|
+
{
|
460
|
+
// Splittng a multi-column cell - original cell gets ceil(colSpan/2) columns,
|
461
|
+
// new cell gets floor(colSpan/2).
|
462
|
+
var newCellSpan = Math.ceil( cellSpan / 2 ) ;
|
463
|
+
var newCell = refCell.ownerDocument.createElement( 'td' ) ;
|
464
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
465
|
+
FCKTools.AppendBogusBr( newCell ) ;
|
466
|
+
var startIdx = colIdx + newCellSpan ;
|
467
|
+
var endIdx = colIdx + cellSpan ;
|
468
|
+
var rowSpan = isNaN( refCell.rowSpan ) ? 1 : refCell.rowSpan ;
|
469
|
+
for ( var r = rowIdx ; r < rowIdx + rowSpan ; r++ )
|
470
|
+
{
|
471
|
+
for ( var i = startIdx ; i < endIdx ; i++ )
|
472
|
+
tableMap[r][i] = newCell ;
|
473
|
+
}
|
474
|
+
}
|
475
|
+
else
|
476
|
+
{
|
477
|
+
// Splitting a single-column cell - add a new cell, and expand
|
478
|
+
// cells crossing the same column.
|
479
|
+
var newTableMap = [] ;
|
480
|
+
for ( var i = 0 ; i < tableMap.length ; i++ )
|
481
|
+
{
|
482
|
+
var newRow = tableMap[i].slice( 0, colIdx ) ;
|
483
|
+
if ( tableMap[i].length <= colIdx )
|
484
|
+
{
|
485
|
+
newTableMap.push( newRow ) ;
|
486
|
+
continue ;
|
487
|
+
}
|
488
|
+
if ( tableMap[i][colIdx] == refCell )
|
489
|
+
{
|
490
|
+
newRow.push( refCell ) ;
|
491
|
+
newRow.push( refCell.ownerDocument.createElement( 'td' ) ) ;
|
492
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
493
|
+
FCKTools.AppendBogusBr( newRow[newRow.length - 1] ) ;
|
494
|
+
}
|
495
|
+
else
|
496
|
+
{
|
497
|
+
newRow.push( tableMap[i][colIdx] ) ;
|
498
|
+
newRow.push( tableMap[i][colIdx] ) ;
|
499
|
+
}
|
500
|
+
for ( var j = colIdx + 1 ; j < tableMap[i].length ; j++ )
|
501
|
+
newRow.push( tableMap[i][j] ) ;
|
502
|
+
newTableMap.push( newRow ) ;
|
503
|
+
}
|
504
|
+
tableMap = newTableMap ;
|
505
|
+
}
|
506
|
+
|
507
|
+
this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
|
508
|
+
}
|
509
|
+
|
510
|
+
FCKTableHandler.VerticalSplitCell = function()
|
511
|
+
{
|
512
|
+
var cells = FCKTableHandler.GetSelectedCells() ;
|
513
|
+
if ( cells.length != 1 )
|
514
|
+
return ;
|
515
|
+
|
516
|
+
var currentCell = cells[0] ;
|
517
|
+
var tableMap = this._CreateTableMap( currentCell.parentNode.parentNode ) ;
|
518
|
+
var cellIndex = FCKTableHandler._GetCellIndexSpan( tableMap, currentCell.parentNode.rowIndex, currentCell ) ;
|
519
|
+
var currentRowSpan = currentCell.rowSpan ;
|
520
|
+
var currentRowIndex = currentCell.parentNode.rowIndex ;
|
521
|
+
if ( isNaN( currentRowSpan ) )
|
522
|
+
currentRowSpan = 1 ;
|
523
|
+
|
524
|
+
if ( currentRowSpan > 1 )
|
525
|
+
{
|
526
|
+
// 1. Set the current cell's rowSpan to 1.
|
527
|
+
currentCell.rowSpan = Math.ceil( currentRowSpan / 2 ) ;
|
528
|
+
|
529
|
+
// 2. Find the appropriate place to insert a new cell at the next row.
|
530
|
+
var newCellRowIndex = currentRowIndex + Math.ceil( currentRowSpan / 2 ) ;
|
531
|
+
var insertMarker = null ;
|
532
|
+
for ( var i = cellIndex+1 ; i < tableMap[newCellRowIndex].length ; i++ )
|
533
|
+
{
|
534
|
+
if ( tableMap[newCellRowIndex][i].parentNode.rowIndex == newCellRowIndex )
|
535
|
+
{
|
536
|
+
insertMarker = tableMap[newCellRowIndex][i] ;
|
537
|
+
break ;
|
538
|
+
}
|
539
|
+
}
|
540
|
+
|
541
|
+
// 3. Insert the new cell to the indicated place, with the appropriate rowSpan, next row.
|
542
|
+
var newCell = FCK.EditorDocument.createElement( 'td' ) ;
|
543
|
+
newCell.rowSpan = Math.floor( currentRowSpan / 2 ) ;
|
544
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
545
|
+
FCKTools.AppendBogusBr( newCell ) ;
|
546
|
+
currentCell.parentNode.parentNode.rows[newCellRowIndex].insertBefore( newCell, insertMarker ) ;
|
547
|
+
}
|
548
|
+
else
|
549
|
+
{
|
550
|
+
// 1. Insert a new row.
|
551
|
+
var newCellRowIndex = currentRowIndex + 1 ;
|
552
|
+
var newRow = FCK.EditorDocument.createElement( 'tr' ) ;
|
553
|
+
currentCell.parentNode.parentNode.insertBefore( newRow, currentCell.parentNode.parentNode.rows[newCellRowIndex] ) ;
|
554
|
+
|
555
|
+
// 2. +1 to rowSpan for all cells crossing currentCell's row.
|
556
|
+
for ( var i = 0 ; i < tableMap[currentRowIndex].length ; )
|
557
|
+
{
|
558
|
+
var colSpan = tableMap[currentRowIndex][i].colSpan ;
|
559
|
+
if ( isNaN( colSpan ) || colSpan < 1 )
|
560
|
+
colSpan = 1 ;
|
561
|
+
if ( i == cellIndex )
|
562
|
+
{
|
563
|
+
i += colSpan ;
|
564
|
+
continue ;
|
565
|
+
}
|
566
|
+
var rowSpan = tableMap[currentRowIndex][i].rowSpan ;
|
567
|
+
if ( isNaN( rowSpan ) )
|
568
|
+
rowSpan = 1 ;
|
569
|
+
tableMap[currentRowIndex][i].rowSpan = rowSpan + 1 ;
|
570
|
+
i += colSpan ;
|
571
|
+
}
|
572
|
+
|
573
|
+
// 3. Insert a new cell to new row.
|
574
|
+
var newCell = FCK.EditorDocument.createElement( 'td' ) ;
|
575
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
576
|
+
FCKTools.AppendBogusBr( newCell ) ;
|
577
|
+
newRow.appendChild( newCell ) ;
|
578
|
+
}
|
579
|
+
}
|
580
|
+
|
581
|
+
// Get the cell index from a TableMap.
|
582
|
+
FCKTableHandler._GetCellIndexSpan = function( tableMap, rowIndex, cell )
|
583
|
+
{
|
584
|
+
if ( tableMap.length < rowIndex + 1 )
|
585
|
+
return null ;
|
586
|
+
|
587
|
+
var oRow = tableMap[ rowIndex ] ;
|
588
|
+
|
589
|
+
for ( var c = 0 ; c < oRow.length ; c++ )
|
590
|
+
{
|
591
|
+
if ( oRow[c] == cell )
|
592
|
+
return c ;
|
593
|
+
}
|
594
|
+
|
595
|
+
return null ;
|
596
|
+
}
|
597
|
+
|
598
|
+
// Get the cell location from a TableMap. Returns an array with an [x,y] location
|
599
|
+
FCKTableHandler._GetCellLocation = function( tableMap, cell )
|
600
|
+
{
|
601
|
+
for ( var i = 0 ; i < tableMap.length; i++ )
|
602
|
+
{
|
603
|
+
for ( var c = 0 ; c < tableMap[i].length ; c++ )
|
604
|
+
{
|
605
|
+
if ( tableMap[i][c] == cell ) return [i,c];
|
606
|
+
}
|
607
|
+
}
|
608
|
+
return null ;
|
609
|
+
}
|
610
|
+
|
611
|
+
// Get the cells available in a column of a TableMap.
|
612
|
+
FCKTableHandler._GetColumnCells = function( tableMap, columnIndex )
|
613
|
+
{
|
614
|
+
var aCollCells = new Array() ;
|
615
|
+
|
616
|
+
for ( var r = 0 ; r < tableMap.length ; r++ )
|
617
|
+
{
|
618
|
+
var oCell = tableMap[r][columnIndex] ;
|
619
|
+
if ( oCell && ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
|
620
|
+
aCollCells[ aCollCells.length ] = oCell ;
|
621
|
+
}
|
622
|
+
|
623
|
+
return aCollCells ;
|
624
|
+
}
|
625
|
+
|
626
|
+
// This function is quite hard to explain. It creates a matrix representing all cells in a table.
|
627
|
+
// The difference here is that the "spanned" cells (colSpan and rowSpan) are duplicated on the matrix
|
628
|
+
// cells that are "spanned". For example, a row with 3 cells where the second cell has colSpan=2 and rowSpan=3
|
629
|
+
// will produce a bi-dimensional matrix with the following values (representing the cells):
|
630
|
+
// Cell1, Cell2, Cell2, Cell 3
|
631
|
+
// Cell4, Cell2, Cell2, Cell 5
|
632
|
+
FCKTableHandler._CreateTableMap = function( table )
|
633
|
+
{
|
634
|
+
var aRows = table.rows ;
|
635
|
+
|
636
|
+
// Row and Column counters.
|
637
|
+
var r = -1 ;
|
638
|
+
|
639
|
+
var aMap = new Array() ;
|
640
|
+
|
641
|
+
for ( var i = 0 ; i < aRows.length ; i++ )
|
642
|
+
{
|
643
|
+
r++ ;
|
644
|
+
if ( !aMap[r] )
|
645
|
+
aMap[r] = new Array() ;
|
646
|
+
|
647
|
+
var c = -1 ;
|
648
|
+
|
649
|
+
for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
|
650
|
+
{
|
651
|
+
var oCell = aRows[i].cells[j] ;
|
652
|
+
|
653
|
+
c++ ;
|
654
|
+
while ( aMap[r][c] )
|
655
|
+
c++ ;
|
656
|
+
|
657
|
+
var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
|
658
|
+
var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
|
659
|
+
|
660
|
+
for ( var rs = 0 ; rs < iRowSpan ; rs++ )
|
661
|
+
{
|
662
|
+
if ( !aMap[r + rs] )
|
663
|
+
aMap[r + rs] = new Array() ;
|
664
|
+
|
665
|
+
for ( var cs = 0 ; cs < iColSpan ; cs++ )
|
666
|
+
{
|
667
|
+
aMap[r + rs][c + cs] = aRows[i].cells[j] ;
|
668
|
+
}
|
669
|
+
}
|
670
|
+
|
671
|
+
c += iColSpan - 1 ;
|
672
|
+
}
|
673
|
+
}
|
674
|
+
return aMap ;
|
675
|
+
}
|
676
|
+
|
677
|
+
// This function is the inverse of _CreateTableMap - it takes in a table map and converts it to an HTML table.
|
678
|
+
FCKTableHandler._InstallTableMap = function( tableMap, table )
|
679
|
+
{
|
680
|
+
// Clear the table of all rows first.
|
681
|
+
while ( table.rows.length > 0 )
|
682
|
+
{
|
683
|
+
var row = table.rows[0] ;
|
684
|
+
row.parentNode.removeChild( row ) ;
|
685
|
+
}
|
686
|
+
|
687
|
+
// Disconnect all the cells in tableMap from their parents, set all colSpan and rowSpan attributes to 1.
|
688
|
+
for ( var i = 0 ; i < tableMap.length ; i++ )
|
689
|
+
{
|
690
|
+
for ( var j = 0 ; j < tableMap[i].length ; j++ )
|
691
|
+
{
|
692
|
+
var cell = tableMap[i][j] ;
|
693
|
+
if ( cell.parentNode )
|
694
|
+
cell.parentNode.removeChild( cell ) ;
|
695
|
+
cell.colSpan = cell.rowSpan = 1 ;
|
696
|
+
}
|
697
|
+
}
|
698
|
+
|
699
|
+
// Scan by rows and set colSpan.
|
700
|
+
var maxCol = 0 ;
|
701
|
+
for ( var i = 0 ; i < tableMap.length ; i++ )
|
702
|
+
{
|
703
|
+
for ( var j = 0 ; j < tableMap[i].length ; j++ )
|
704
|
+
{
|
705
|
+
var cell = tableMap[i][j] ;
|
706
|
+
if ( ! cell)
|
707
|
+
continue ;
|
708
|
+
if ( j > maxCol )
|
709
|
+
maxCol = j ;
|
710
|
+
if ( cell._colScanned === true )
|
711
|
+
continue ;
|
712
|
+
if ( tableMap[i][j-1] == cell )
|
713
|
+
cell.colSpan++ ;
|
714
|
+
if ( tableMap[i][j+1] != cell )
|
715
|
+
cell._colScanned = true ;
|
716
|
+
}
|
717
|
+
}
|
718
|
+
|
719
|
+
// Scan by columns and set rowSpan.
|
720
|
+
for ( var i = 0 ; i <= maxCol ; i++ )
|
721
|
+
{
|
722
|
+
for ( var j = 0 ; j < tableMap.length ; j++ )
|
723
|
+
{
|
724
|
+
if ( ! tableMap[j] )
|
725
|
+
continue ;
|
726
|
+
var cell = tableMap[j][i] ;
|
727
|
+
if ( ! cell || cell._rowScanned === true )
|
728
|
+
continue ;
|
729
|
+
if ( tableMap[j-1] && tableMap[j-1][i] == cell )
|
730
|
+
cell.rowSpan++ ;
|
731
|
+
if ( ! tableMap[j+1] || tableMap[j+1][i] != cell )
|
732
|
+
cell._rowScanned = true ;
|
733
|
+
}
|
734
|
+
}
|
735
|
+
|
736
|
+
// Clear all temporary flags.
|
737
|
+
for ( var i = 0 ; i < tableMap.length ; i++ )
|
738
|
+
{
|
739
|
+
for ( var j = 0 ; j < tableMap[i].length ; j++)
|
740
|
+
{
|
741
|
+
var cell = tableMap[i][j] ;
|
742
|
+
if ( FCKBrowserInfo.IsIE )
|
743
|
+
{
|
744
|
+
cell.removeAttribute( '_colScanned' ) ;
|
745
|
+
cell.removeAttribute( '_rowScanned' ) ;
|
746
|
+
}
|
747
|
+
else
|
748
|
+
{
|
749
|
+
delete cell._colScanned ;
|
750
|
+
delete cell._rowScanned ;
|
751
|
+
}
|
752
|
+
}
|
753
|
+
}
|
754
|
+
|
755
|
+
// Insert physical rows and columns to the table.
|
756
|
+
for ( var i = 0 ; i < tableMap.length ; i++ )
|
757
|
+
{
|
758
|
+
var rowObj = table.ownerDocument.createElement( 'tr' ) ;
|
759
|
+
for ( var j = 0 ; j < tableMap[i].length ; )
|
760
|
+
{
|
761
|
+
var cell = tableMap[i][j] ;
|
762
|
+
if ( tableMap[i-1] && tableMap[i-1][j] == cell )
|
763
|
+
{
|
764
|
+
j += cell.colSpan ;
|
765
|
+
continue ;
|
766
|
+
}
|
767
|
+
rowObj.appendChild( cell ) ;
|
768
|
+
j += cell.colSpan ;
|
769
|
+
if ( cell.colSpan == 1 )
|
770
|
+
cell.removeAttribute( 'colspan' ) ;
|
771
|
+
if ( cell.rowSpan == 1 )
|
772
|
+
cell.removeAttribute( 'rowspan' ) ;
|
773
|
+
}
|
774
|
+
table.appendChild( rowObj ) ;
|
775
|
+
}
|
776
|
+
}
|
777
|
+
|
778
|
+
FCKTableHandler._MoveCaretToCell = function ( refCell, toStart )
|
779
|
+
{
|
780
|
+
var range = new FCKDomRange( FCK.EditorWindow ) ;
|
781
|
+
range.MoveToNodeContents( refCell ) ;
|
782
|
+
range.Collapse( toStart ) ;
|
783
|
+
range.Select() ;
|
784
|
+
}
|
785
|
+
|
786
|
+
FCKTableHandler.ClearRow = function( tr )
|
787
|
+
{
|
788
|
+
// Get the array of row's cells.
|
789
|
+
var aCells = tr.cells ;
|
790
|
+
|
791
|
+
// Replace the contents of each cell with "nothing".
|
792
|
+
for ( var i = 0 ; i < aCells.length ; i++ )
|
793
|
+
{
|
794
|
+
aCells[i].innerHTML = '' ;
|
795
|
+
|
796
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
797
|
+
FCKTools.AppendBogusBr( aCells[i] ) ;
|
798
|
+
}
|
799
|
+
}
|
800
|
+
|
801
|
+
FCKTableHandler.GetMergeRightTarget = function()
|
802
|
+
{
|
803
|
+
var cells = this.GetSelectedCells() ;
|
804
|
+
if ( cells.length != 1 )
|
805
|
+
return null ;
|
806
|
+
|
807
|
+
var refCell = cells[0] ;
|
808
|
+
var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
|
809
|
+
var rowIdx = refCell.parentNode.rowIndex ;
|
810
|
+
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
|
811
|
+
var nextColIdx = colIdx + ( isNaN( refCell.colSpan ) ? 1 : refCell.colSpan ) ;
|
812
|
+
var nextCell = tableMap[rowIdx][nextColIdx] ;
|
813
|
+
|
814
|
+
if ( ! nextCell )
|
815
|
+
return null ;
|
816
|
+
|
817
|
+
// The two cells must have the same vertical geometry, otherwise merging does not make sense.
|
818
|
+
this._MarkCells( [refCell, nextCell], '_SizeTest' ) ;
|
819
|
+
var refGeometry = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_SizeTest' ) ;
|
820
|
+
var nextGeometry = this._GetMarkerGeometry( tableMap, rowIdx, nextColIdx, '_SizeTest' ) ;
|
821
|
+
this._UnmarkCells( [refCell, nextCell], '_SizeTest' ) ;
|
822
|
+
|
823
|
+
if ( refGeometry.height != nextGeometry.height || refGeometry.y != nextGeometry.y )
|
824
|
+
return null ;
|
825
|
+
|
826
|
+
return { 'refCell' : refCell, 'nextCell' : nextCell, 'tableMap' : tableMap } ;
|
827
|
+
}
|
828
|
+
|
829
|
+
FCKTableHandler.GetMergeDownTarget = function()
|
830
|
+
{
|
831
|
+
var cells = this.GetSelectedCells() ;
|
832
|
+
if ( cells.length != 1 )
|
833
|
+
return null ;
|
834
|
+
|
835
|
+
var refCell = cells[0] ;
|
836
|
+
var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
|
837
|
+
var rowIdx = refCell.parentNode.rowIndex ;
|
838
|
+
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
|
839
|
+
var newRowIdx = rowIdx + ( isNaN( refCell.rowSpan ) ? 1 : refCell.rowSpan ) ;
|
840
|
+
if ( ! tableMap[newRowIdx] )
|
841
|
+
return null ;
|
842
|
+
|
843
|
+
var nextCell = tableMap[newRowIdx][colIdx] ;
|
844
|
+
|
845
|
+
if ( ! nextCell )
|
846
|
+
return null ;
|
847
|
+
|
848
|
+
// The two cells must have the same horizontal geometry, otherwise merging does not makes sense.
|
849
|
+
this._MarkCells( [refCell, nextCell], '_SizeTest' ) ;
|
850
|
+
var refGeometry = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_SizeTest' ) ;
|
851
|
+
var nextGeometry = this._GetMarkerGeometry( tableMap, newRowIdx, colIdx, '_SizeTest' ) ;
|
852
|
+
this._UnmarkCells( [refCell, nextCell], '_SizeTest' ) ;
|
853
|
+
|
854
|
+
if ( refGeometry.width != nextGeometry.width || refGeometry.x != nextGeometry.x )
|
855
|
+
return null ;
|
856
|
+
|
857
|
+
return { 'refCell' : refCell, 'nextCell' : nextCell, 'tableMap' : tableMap } ;
|
858
|
+
}
|