Wiki2GoEditor 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/Wiki2Go_install_editor.rb +13 -0
- data/fckeditor/editor/_source/classes/fckcontextmenu.js +134 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +46 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
- data/fckeditor/editor/_source/classes/fckdomrange.js +452 -0
- data/fckeditor/editor/_source/classes/fckdomrange_gecko.js +71 -0
- data/fckeditor/editor/_source/classes/fckdomrange_ie.js +149 -0
- data/fckeditor/editor/_source/classes/fckeditingarea.js +253 -0
- data/fckeditor/editor/_source/classes/fckelementpath.js +66 -0
- data/fckeditor/editor/_source/classes/fckenterkey.js +556 -0
- data/fckeditor/editor/_source/classes/fckevents.js +53 -0
- data/fckeditor/editor/_source/classes/fckicon.js +98 -0
- data/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
- data/fckeditor/editor/_source/classes/fckimagepreloader.js +68 -0
- data/fckeditor/editor/_source/classes/fckkeystrokehandler.js +136 -0
- data/fckeditor/editor/_source/classes/fckmenublock.js +143 -0
- data/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
- data/fckeditor/editor/_source/classes/fckmenuitem.js +160 -0
- data/fckeditor/editor/_source/classes/fckpanel.js +303 -0
- data/fckeditor/editor/_source/classes/fckplugin.js +56 -0
- data/fckeditor/editor/_source/classes/fckspecialcombo.js +363 -0
- data/fckeditor/editor/_source/classes/fckstyledef.js +59 -0
- data/fckeditor/editor/_source/classes/fckstyledef_gecko.js +119 -0
- data/fckeditor/editor/_source/classes/fckstyledef_ie.js +142 -0
- data/fckeditor/editor/_source/classes/fckstylesloader.js +88 -0
- data/fckeditor/editor/_source/classes/fcktoolbar.js +120 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbutton.js +74 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +222 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +114 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +47 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +52 -0
- data/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +91 -0
- data/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +134 -0
- data/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +111 -0
- data/fckeditor/editor/_source/classes/fckw3crange.js +448 -0
- data/fckeditor/editor/_source/classes/fckxml_gecko.js +87 -0
- data/fckeditor/editor/_source/classes/fckxml_ie.js +90 -0
- data/fckeditor/editor/_source/commandclasses/fck_othercommands.js +380 -0
- data/fckeditor/editor/_source/commandclasses/fckfitwindow.js +169 -0
- data/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +37 -0
- data/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +38 -0
- data/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +39 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +67 -0
- data/fckeditor/editor/_source/commandclasses/fckstylecommand.js +99 -0
- data/fckeditor/editor/_source/commandclasses/fcktablecommand.js +71 -0
- data/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +175 -0
- data/fckeditor/editor/_source/fckconstants.js +52 -0
- data/fckeditor/editor/_source/fckeditorapi.js +161 -0
- data/fckeditor/editor/_source/fckjscoreextensions.js +152 -0
- data/fckeditor/editor/_source/fckscriptloader.js +108 -0
- data/fckeditor/editor/_source/internals/fck.js +859 -0
- data/fckeditor/editor/_source/internals/fck_contextmenu.js +307 -0
- data/fckeditor/editor/_source/internals/fck_gecko.js +254 -0
- data/fckeditor/editor/_source/internals/fck_ie.js +383 -0
- data/fckeditor/editor/_source/internals/fckbrowserinfo.js +48 -0
- data/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
- data/fckeditor/editor/_source/internals/fckcommands.js +132 -0
- data/fckeditor/editor/_source/internals/fckconfig.js +199 -0
- data/fckeditor/editor/_source/internals/fckdebug.js +56 -0
- data/fckeditor/editor/_source/internals/fckdialog.js +38 -0
- data/fckeditor/editor/_source/internals/fckdialog_gecko.js +103 -0
- data/fckeditor/editor/_source/internals/fckdialog_ie.js +48 -0
- data/fckeditor/editor/_source/internals/fckdocumentprocessor.js +243 -0
- data/fckeditor/editor/_source/internals/fckdomtools.js +294 -0
- data/fckeditor/editor/_source/internals/fcklanguagemanager.js +161 -0
- data/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
- data/fckeditor/editor/_source/internals/fcklistslib.js +60 -0
- data/fckeditor/editor/_source/internals/fckplugins.js +46 -0
- data/fckeditor/editor/_source/internals/fckregexlib.js +95 -0
- data/fckeditor/editor/_source/internals/fckselection.js +24 -0
- data/fckeditor/editor/_source/internals/fckselection_gecko.js +151 -0
- data/fckeditor/editor/_source/internals/fckselection_ie.js +158 -0
- data/fckeditor/editor/_source/internals/fcktablehandler.js +385 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +57 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_ie.js +58 -0
- data/fckeditor/editor/_source/internals/fcktoolbaritems.js +121 -0
- data/fckeditor/editor/_source/internals/fcktoolbarset.js +357 -0
- data/fckeditor/editor/_source/internals/fcktools.js +225 -0
- data/fckeditor/editor/_source/internals/fcktools_gecko.js +235 -0
- data/fckeditor/editor/_source/internals/fcktools_ie.js +214 -0
- data/fckeditor/editor/_source/internals/fckundo_gecko.js +27 -0
- data/fckeditor/editor/_source/internals/fckundo_ie.js +123 -0
- data/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
- data/fckeditor/editor/_source/internals/fckxhtml.js +466 -0
- data/fckeditor/editor/_source/internals/fckxhtml_gecko.js +66 -0
- data/fckeditor/editor/_source/internals/fckxhtml_ie.js +194 -0
- data/fckeditor/editor/_source/internals/fckxhtmlentities.js +345 -0
- data/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
- data/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
- data/fckeditor/editor/css/fck_editorarea.css +91 -0
- data/fckeditor/editor/css/fck_internal.css +111 -0
- data/fckeditor/editor/css/fck_showtableborders_gecko.css +42 -0
- data/fckeditor/editor/css/images/fck_anchor.gif +0 -0
- data/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
- data/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
- data/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.css +83 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.js +154 -0
- data/fckeditor/editor/dialog/common/fcknumericfield.htc +24 -0
- data/fckeditor/editor/dialog/common/images/locked.gif +0 -0
- data/fckeditor/editor/dialog/common/images/reset.gif +0 -0
- data/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
- data/fckeditor/editor/dialog/common/moz-bindings.xml +30 -0
- data/fckeditor/editor/dialog/fck_about.html +155 -0
- data/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
- data/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
- data/fckeditor/editor/dialog/fck_anchor.html +227 -0
- data/fckeditor/editor/dialog/fck_button.html +107 -0
- data/fckeditor/editor/dialog/fck_checkbox.html +107 -0
- data/fckeditor/editor/dialog/fck_colorselector.html +171 -0
- data/fckeditor/editor/dialog/fck_docprops.html +600 -0
- data/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
- data/fckeditor/editor/dialog/fck_find.html +173 -0
- data/fckeditor/editor/dialog/fck_flash.html +146 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash.js +288 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +46 -0
- data/fckeditor/editor/dialog/fck_form.html +105 -0
- data/fckeditor/editor/dialog/fck_hiddenfield.html +116 -0
- data/fckeditor/editor/dialog/fck_image.html +252 -0
- data/fckeditor/editor/dialog/fck_image/fck_image.js +486 -0
- data/fckeditor/editor/dialog/fck_image/fck_image_preview.html +66 -0
- data/fckeditor/editor/dialog/fck_link.html +293 -0
- data/fckeditor/editor/dialog/fck_link/fck_link.js +664 -0
- data/fckeditor/editor/dialog/fck_listprop.html +116 -0
- data/fckeditor/editor/dialog/fck_paste.html +285 -0
- data/fckeditor/editor/dialog/fck_radiobutton.html +107 -0
- data/fckeditor/editor/dialog/fck_replace.html +156 -0
- data/fckeditor/editor/dialog/fck_select.html +176 -0
- data/fckeditor/editor/dialog/fck_select/fck_select.js +169 -0
- data/fckeditor/editor/dialog/fck_smiley.html +105 -0
- data/fckeditor/editor/dialog/fck_source.html +65 -0
- data/fckeditor/editor/dialog/fck_specialchar.html +113 -0
- data/fckeditor/editor/dialog/fck_spellerpages.html +64 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +174 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +196 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +180 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +462 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
- data/fckeditor/editor/dialog/fck_table.html +286 -0
- data/fckeditor/editor/dialog/fck_tablecell.html +255 -0
- data/fckeditor/editor/dialog/fck_template.html +242 -0
- data/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
- data/fckeditor/editor/dialog/fck_textarea.html +94 -0
- data/fckeditor/editor/dialog/fck_textfield.html +139 -0
- data/fckeditor/editor/fckdebug.html +153 -0
- data/fckeditor/editor/fckdialog.html +324 -0
- data/fckeditor/editor/fckeditor.html +227 -0
- data/fckeditor/editor/fckeditor.original.html +319 -0
- data/fckeditor/editor/filemanager/browser/default/browser.css +88 -0
- data/fckeditor/editor/filemanager/browser/default/browser.html +154 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp +62 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp +183 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp +49 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp +124 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp +89 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp +55 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx +30 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm +99 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm +363 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso +249 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl +63 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl +158 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi +137 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl +131 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl +667 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl +60 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php +75 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php +222 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/config.php +56 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php +113 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/io.php +101 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/util.php +41 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py +785 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/test.html +180 -0
- data/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +67 -0
- data/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/frmfolders.html +196 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +160 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +65 -0
- data/fckeditor/editor/filemanager/browser/default/frmupload.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/js/common.js +55 -0
- data/fckeditor/editor/filemanager/browser/default/js/fckxml.js +130 -0
- data/fckeditor/editor/filemanager/upload/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/upload/asp/config.asp +52 -0
- data/fckeditor/editor/filemanager/upload/asp/io.asp +29 -0
- data/fckeditor/editor/filemanager/upload/asp/upload.asp +121 -0
- data/fckeditor/editor/filemanager/upload/aspx/upload.aspx +30 -0
- data/fckeditor/editor/filemanager/upload/cfm/config.cfm +98 -0
- data/fckeditor/editor/filemanager/upload/cfm/upload.cfm +168 -0
- data/fckeditor/editor/filemanager/upload/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/upload/lasso/upload.lasso +157 -0
- data/fckeditor/editor/filemanager/upload/php/config.php +56 -0
- data/fckeditor/editor/filemanager/upload/php/upload.php +124 -0
- data/fckeditor/editor/filemanager/upload/php/util.php +40 -0
- data/fckeditor/editor/filemanager/upload/test.html +133 -0
- data/fckeditor/editor/images/anchor.gif +0 -0
- data/fckeditor/editor/images/arrow_ltr.gif +0 -0
- data/fckeditor/editor/images/arrow_rtl.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
- data/fckeditor/editor/images/spacer.gif +0 -0
- data/fckeditor/editor/js/fckeditorcode_gecko.js +98 -0
- data/fckeditor/editor/js/fckeditorcode_ie.js +99 -0
- data/fckeditor/editor/lang/_getfontformat.html +85 -0
- data/fckeditor/editor/lang/_translationstatus.txt +76 -0
- data/fckeditor/editor/lang/af.js +504 -0
- data/fckeditor/editor/lang/ar.js +504 -0
- data/fckeditor/editor/lang/bg.js +504 -0
- data/fckeditor/editor/lang/bn.js +504 -0
- data/fckeditor/editor/lang/bs.js +504 -0
- data/fckeditor/editor/lang/ca.js +504 -0
- data/fckeditor/editor/lang/cs.js +504 -0
- data/fckeditor/editor/lang/da.js +504 -0
- data/fckeditor/editor/lang/de.js +504 -0
- data/fckeditor/editor/lang/el.js +504 -0
- data/fckeditor/editor/lang/en-au.js +504 -0
- data/fckeditor/editor/lang/en-ca.js +504 -0
- data/fckeditor/editor/lang/en-uk.js +504 -0
- data/fckeditor/editor/lang/en.js +504 -0
- data/fckeditor/editor/lang/eo.js +504 -0
- data/fckeditor/editor/lang/es.js +504 -0
- data/fckeditor/editor/lang/et.js +504 -0
- data/fckeditor/editor/lang/eu.js +505 -0
- data/fckeditor/editor/lang/fa.js +504 -0
- data/fckeditor/editor/lang/fi.js +504 -0
- data/fckeditor/editor/lang/fo.js +504 -0
- data/fckeditor/editor/lang/fr.js +504 -0
- data/fckeditor/editor/lang/gl.js +504 -0
- data/fckeditor/editor/lang/he.js +504 -0
- data/fckeditor/editor/lang/hi.js +504 -0
- data/fckeditor/editor/lang/hr.js +504 -0
- data/fckeditor/editor/lang/hu.js +504 -0
- data/fckeditor/editor/lang/it.js +504 -0
- data/fckeditor/editor/lang/ja.js +504 -0
- data/fckeditor/editor/lang/km.js +504 -0
- data/fckeditor/editor/lang/ko.js +504 -0
- data/fckeditor/editor/lang/lt.js +504 -0
- data/fckeditor/editor/lang/lv.js +504 -0
- data/fckeditor/editor/lang/mn.js +504 -0
- data/fckeditor/editor/lang/ms.js +504 -0
- data/fckeditor/editor/lang/nb.js +504 -0
- data/fckeditor/editor/lang/nl.js +504 -0
- data/fckeditor/editor/lang/no.js +504 -0
- data/fckeditor/editor/lang/pl.js +504 -0
- data/fckeditor/editor/lang/pt-br.js +504 -0
- data/fckeditor/editor/lang/pt.js +504 -0
- data/fckeditor/editor/lang/ro.js +504 -0
- data/fckeditor/editor/lang/ru.js +504 -0
- data/fckeditor/editor/lang/sk.js +504 -0
- data/fckeditor/editor/lang/sl.js +504 -0
- data/fckeditor/editor/lang/sr-latn.js +504 -0
- data/fckeditor/editor/lang/sr.js +504 -0
- data/fckeditor/editor/lang/sv.js +504 -0
- data/fckeditor/editor/lang/th.js +504 -0
- data/fckeditor/editor/lang/tr.js +504 -0
- data/fckeditor/editor/lang/uk.js +504 -0
- data/fckeditor/editor/lang/vi.js +504 -0
- data/fckeditor/editor/lang/zh-cn.js +504 -0
- data/fckeditor/editor/lang/zh.js +504 -0
- data/fckeditor/editor/plugins/autogrow/fckplugin.js +92 -0
- data/fckeditor/editor/plugins/placeholder/fck_placeholder.html +100 -0
- data/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
- data/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
- data/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
- data/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
- data/fckeditor/editor/plugins/tablecommands/fckplugin.js +32 -0
- data/fckeditor/editor/skins/_fckviewstrips.html +121 -0
- data/fckeditor/editor/skins/default/fck_dialog.css +137 -0
- data/fckeditor/editor/skins/default/fck_editor.css +464 -0
- data/fckeditor/editor/skins/default/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/office2003/fck_dialog.css +138 -0
- data/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
- data/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/silver/fck_dialog.css +141 -0
- data/fckeditor/editor/skins/silver/fck_editor.css +473 -0
- data/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
- data/fckeditor/fckconfig.js +224 -0
- data/fckeditor/fckeditor.js +214 -0
- data/fckeditor/fckstyles.xml +53 -0
- data/fckeditor/fcktemplates.xml +103 -0
- data/lib/Wiki2GoEditor/Install/editor.rb +39 -0
- data/test/test_install.rb +40 -0
- metadata +517 -0
|
@@ -0,0 +1,66 @@
|
|
|
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
|
+
* Manages the DOM anscensors element list of a specific DOM node
|
|
22
|
+
* (limited to body, inclusive).
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
// TODO: Implement IE cleanup.
|
|
26
|
+
|
|
27
|
+
var FCKElementPath = function( lastNode )
|
|
28
|
+
{
|
|
29
|
+
var eBlock = null ;
|
|
30
|
+
var eBlockLimit = null ;
|
|
31
|
+
|
|
32
|
+
var aElements = new Array() ;
|
|
33
|
+
|
|
34
|
+
var e = lastNode ;
|
|
35
|
+
while ( e )
|
|
36
|
+
{
|
|
37
|
+
if ( e.nodeType == 1 )
|
|
38
|
+
{
|
|
39
|
+
if ( !this.LastElement )
|
|
40
|
+
this.LastElement = e ;
|
|
41
|
+
|
|
42
|
+
var sElementName = e.nodeName.toLowerCase() ;
|
|
43
|
+
|
|
44
|
+
if ( !eBlockLimit )
|
|
45
|
+
{
|
|
46
|
+
if ( !eBlock && FCKListsLib.PathBlockElements[ sElementName ] != null )
|
|
47
|
+
eBlock = e ;
|
|
48
|
+
|
|
49
|
+
if ( FCKListsLib.PathBlockLimitElements[ sElementName ] != null )
|
|
50
|
+
eBlockLimit = e ;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
aElements.push( e ) ;
|
|
54
|
+
|
|
55
|
+
if ( sElementName == 'body' )
|
|
56
|
+
break ;
|
|
57
|
+
}
|
|
58
|
+
e = e.parentNode ;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
this.Block = eBlock ;
|
|
62
|
+
this.BlockLimit = eBlockLimit ;
|
|
63
|
+
this.Elements = aElements ;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
|
|
@@ -0,0 +1,556 @@
|
|
|
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
|
+
* Controls the [Enter] keystroke behavior in a document.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* Constructor.
|
|
26
|
+
* @targetDocument : the target document.
|
|
27
|
+
* @enterMode : the behavior for the <Enter> keystroke.
|
|
28
|
+
* May be "p", "div", "br". Default is "p".
|
|
29
|
+
* @shiftEnterMode : the behavior for the <Shift>+<Enter> keystroke.
|
|
30
|
+
* May be "p", "div", "br". Defaults to "br".
|
|
31
|
+
*/
|
|
32
|
+
var FCKEnterKey = function( targetWindow, enterMode, shiftEnterMode )
|
|
33
|
+
{
|
|
34
|
+
this.Window = targetWindow ;
|
|
35
|
+
this.EnterMode = enterMode || 'p' ;
|
|
36
|
+
this.ShiftEnterMode = shiftEnterMode || 'br' ;
|
|
37
|
+
|
|
38
|
+
// Setup the Keystroke Handler.
|
|
39
|
+
var oKeystrokeHandler = new FCKKeystrokeHandler( false ) ;
|
|
40
|
+
oKeystrokeHandler._EnterKey = this ;
|
|
41
|
+
oKeystrokeHandler.OnKeystroke = FCKEnterKey_OnKeystroke ;
|
|
42
|
+
|
|
43
|
+
oKeystrokeHandler.SetKeystrokes( [
|
|
44
|
+
[ 13 , 'Enter' ],
|
|
45
|
+
[ SHIFT + 13, 'ShiftEnter' ],
|
|
46
|
+
[ 8 , 'Backspace' ],
|
|
47
|
+
[ 46 , 'Delete' ]
|
|
48
|
+
] ) ;
|
|
49
|
+
|
|
50
|
+
oKeystrokeHandler.AttachToElement( targetWindow.document ) ;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
function FCKEnterKey_OnKeystroke( keyCombination, keystrokeValue )
|
|
55
|
+
{
|
|
56
|
+
var oEnterKey = this._EnterKey ;
|
|
57
|
+
|
|
58
|
+
try
|
|
59
|
+
{
|
|
60
|
+
switch ( keystrokeValue )
|
|
61
|
+
{
|
|
62
|
+
case 'Enter' :
|
|
63
|
+
return oEnterKey.DoEnter() ;
|
|
64
|
+
break ;
|
|
65
|
+
|
|
66
|
+
case 'ShiftEnter' :
|
|
67
|
+
return oEnterKey.DoShiftEnter() ;
|
|
68
|
+
break ;
|
|
69
|
+
|
|
70
|
+
case 'Backspace' :
|
|
71
|
+
return oEnterKey.DoBackspace() ;
|
|
72
|
+
break ;
|
|
73
|
+
|
|
74
|
+
case 'Delete' :
|
|
75
|
+
return oEnterKey.DoDelete() ;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (e)
|
|
79
|
+
{
|
|
80
|
+
// If for any reason we are not able to handle it, go
|
|
81
|
+
// ahead with the browser default behavior.
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return false ;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* Executes the <Enter> key behavior.
|
|
89
|
+
*/
|
|
90
|
+
FCKEnterKey.prototype.DoEnter = function( mode, hasShift )
|
|
91
|
+
{
|
|
92
|
+
this._HasShift = ( hasShift === true ) ;
|
|
93
|
+
|
|
94
|
+
var sMode = mode || this.EnterMode ;
|
|
95
|
+
|
|
96
|
+
if ( sMode == 'br' )
|
|
97
|
+
return this._ExecuteEnterBr() ;
|
|
98
|
+
else
|
|
99
|
+
return this._ExecuteEnterBlock( sMode ) ;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/*
|
|
103
|
+
* Executes the <Shift>+<Enter> key behavior.
|
|
104
|
+
*/
|
|
105
|
+
FCKEnterKey.prototype.DoShiftEnter = function()
|
|
106
|
+
{
|
|
107
|
+
return this.DoEnter( this.ShiftEnterMode, true ) ;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/*
|
|
111
|
+
* Executes the <Backspace> key behavior.
|
|
112
|
+
*/
|
|
113
|
+
FCKEnterKey.prototype.DoBackspace = function()
|
|
114
|
+
{
|
|
115
|
+
var bCustom = false ;
|
|
116
|
+
|
|
117
|
+
// Get the current selection.
|
|
118
|
+
var oRange = new FCKDomRange( this.Window ) ;
|
|
119
|
+
oRange.MoveToSelection() ;
|
|
120
|
+
|
|
121
|
+
if ( !oRange.CheckIsCollapsed() )
|
|
122
|
+
return false ;
|
|
123
|
+
|
|
124
|
+
var oStartBlock = oRange.StartBlock ;
|
|
125
|
+
var oEndBlock = oRange.EndBlock ;
|
|
126
|
+
|
|
127
|
+
// The selection boundaries must be in the same "block limit" element
|
|
128
|
+
if ( oRange.StartBlockLimit == oRange.EndBlockLimit && oStartBlock && oEndBlock )
|
|
129
|
+
{
|
|
130
|
+
if ( !oRange.CheckIsCollapsed() )
|
|
131
|
+
{
|
|
132
|
+
var bEndOfBlock = oRange.CheckEndOfBlock() ;
|
|
133
|
+
|
|
134
|
+
oRange.DeleteContents() ;
|
|
135
|
+
|
|
136
|
+
if ( oStartBlock != oEndBlock )
|
|
137
|
+
{
|
|
138
|
+
oRange.SetStart(oEndBlock,1) ;
|
|
139
|
+
oRange.SetEnd(oEndBlock,1) ;
|
|
140
|
+
|
|
141
|
+
// if ( bEndOfBlock )
|
|
142
|
+
// oEndBlock.parentNode.removeChild( oEndBlock ) ;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
oRange.Select() ;
|
|
146
|
+
|
|
147
|
+
bCustom = ( oStartBlock == oEndBlock ) ;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if ( oRange.CheckStartOfBlock() )
|
|
151
|
+
{
|
|
152
|
+
var oCurrentBlock = oRange.StartBlock ;
|
|
153
|
+
|
|
154
|
+
var ePrevious = FCKDomTools.GetPreviousSourceElement( oCurrentBlock, true, [ 'BODY', oRange.StartBlockLimit.nodeName ], ['UL','OL'] ) ;
|
|
155
|
+
|
|
156
|
+
bCustom = this._ExecuteBackspace( oRange, ePrevious, oCurrentBlock ) ;
|
|
157
|
+
}
|
|
158
|
+
else if ( FCKBrowserInfo.IsGecko )
|
|
159
|
+
{
|
|
160
|
+
// Firefox looses the selection when executing CheckStartOfBlock, so we must reselect.
|
|
161
|
+
oRange.Select() ;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
oRange.Release() ;
|
|
166
|
+
return bCustom ;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
FCKEnterKey.prototype._ExecuteBackspace = function( range, previous, currentBlock )
|
|
170
|
+
{
|
|
171
|
+
var bCustom = false ;
|
|
172
|
+
|
|
173
|
+
// We could be in a nested LI.
|
|
174
|
+
if ( !previous && currentBlock.nodeName.IEquals( 'LI' ) && currentBlock.parentNode.parentNode.nodeName.IEquals( 'LI' ) )
|
|
175
|
+
{
|
|
176
|
+
this._OutdentWithSelection( currentBlock, range ) ;
|
|
177
|
+
return true ;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if ( previous && previous.nodeName.IEquals( 'LI' ) )
|
|
181
|
+
{
|
|
182
|
+
var oNestedList = FCKDomTools.GetLastChild( previous, ['UL','OL'] ) ;
|
|
183
|
+
|
|
184
|
+
while ( oNestedList )
|
|
185
|
+
{
|
|
186
|
+
previous = FCKDomTools.GetLastChild( oNestedList, 'LI' ) ;
|
|
187
|
+
oNestedList = FCKDomTools.GetLastChild( previous, ['UL','OL'] ) ;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if ( previous && currentBlock )
|
|
192
|
+
{
|
|
193
|
+
// If we are in a LI, and the previous block is not an LI, we must outdent it.
|
|
194
|
+
if ( currentBlock.nodeName.IEquals( 'LI' ) && !previous.nodeName.IEquals( 'LI' ) )
|
|
195
|
+
{
|
|
196
|
+
this._OutdentWithSelection( currentBlock, range ) ;
|
|
197
|
+
return true ;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Take a reference to the parent for post processing cleanup.
|
|
201
|
+
var oCurrentParent = currentBlock.parentNode ;
|
|
202
|
+
|
|
203
|
+
var sPreviousName = previous.nodeName.toLowerCase() ;
|
|
204
|
+
if ( FCKListsLib.EmptyElements[ sPreviousName ] != null || sPreviousName == 'table' )
|
|
205
|
+
{
|
|
206
|
+
FCKDomTools.RemoveNode( previous ) ;
|
|
207
|
+
bCustom = true ;
|
|
208
|
+
}
|
|
209
|
+
else
|
|
210
|
+
{
|
|
211
|
+
// Remove the current block.
|
|
212
|
+
FCKDomTools.RemoveNode( currentBlock ) ;
|
|
213
|
+
|
|
214
|
+
// Remove any empty tag left by the block removal.
|
|
215
|
+
while ( oCurrentParent.innerHTML.Trim().length == 0 )
|
|
216
|
+
{
|
|
217
|
+
var oParent = oCurrentParent.parentNode ;
|
|
218
|
+
oParent.removeChild( oCurrentParent ) ;
|
|
219
|
+
oCurrentParent = oParent ;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// Cleanup the previous and the current elements.
|
|
223
|
+
FCKDomTools.TrimNode( currentBlock ) ;
|
|
224
|
+
FCKDomTools.TrimNode( previous ) ;
|
|
225
|
+
|
|
226
|
+
// Append a space to the previous.
|
|
227
|
+
// Maybe it is not always desirable...
|
|
228
|
+
// previous.appendChild( this.Window.document.createTextNode( ' ' ) ) ;
|
|
229
|
+
|
|
230
|
+
// Set the range to the end of the previous element and bookmark it.
|
|
231
|
+
range.SetStart( previous, 2 ) ;
|
|
232
|
+
range.Collapse( true ) ;
|
|
233
|
+
var oBookmark = range.CreateBookmark() ;
|
|
234
|
+
|
|
235
|
+
// Move the contents of the block to the previous element and delete it.
|
|
236
|
+
FCKDomTools.MoveChildren( currentBlock, previous ) ;
|
|
237
|
+
|
|
238
|
+
// Place the selection at the bookmark.
|
|
239
|
+
range.MoveToBookmark( oBookmark ) ;
|
|
240
|
+
range.Select() ;
|
|
241
|
+
|
|
242
|
+
bCustom = true ;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return bCustom ;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/*
|
|
250
|
+
* Executes the <Delete> key behavior.
|
|
251
|
+
*/
|
|
252
|
+
FCKEnterKey.prototype.DoDelete = function()
|
|
253
|
+
{
|
|
254
|
+
// The <Delete> has the same effect as the <Backspace>, so we have the same
|
|
255
|
+
// results if we just move to the next block and apply the same <Backspace> logic.
|
|
256
|
+
|
|
257
|
+
var bCustom = false ;
|
|
258
|
+
|
|
259
|
+
// Get the current selection.
|
|
260
|
+
var oRange = new FCKDomRange( this.Window ) ;
|
|
261
|
+
oRange.MoveToSelection() ;
|
|
262
|
+
|
|
263
|
+
// There is just one special case for collapsed selections at the end of a block.
|
|
264
|
+
if ( oRange.CheckIsCollapsed() && oRange.CheckEndOfBlock( FCKBrowserInfo.IsGecko ) )
|
|
265
|
+
{
|
|
266
|
+
var oCurrentBlock = oRange.StartBlock ;
|
|
267
|
+
|
|
268
|
+
var eNext = FCKDomTools.GetNextSourceElement( oCurrentBlock, true, [ oRange.StartBlockLimit.nodeName ], ['UL','OL'] ) ;
|
|
269
|
+
|
|
270
|
+
bCustom = this._ExecuteBackspace( oRange, oCurrentBlock, eNext ) ;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
oRange.Release() ;
|
|
274
|
+
return bCustom ;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
FCKEnterKey.prototype._ExecuteEnterBlock = function( blockTag, range )
|
|
278
|
+
{
|
|
279
|
+
// Get the current selection.
|
|
280
|
+
var oRange = range || new FCKDomRange( this.Window ) ;
|
|
281
|
+
|
|
282
|
+
// If we don't have a range, move it to the selection.
|
|
283
|
+
if ( !range )
|
|
284
|
+
oRange.MoveToSelection() ;
|
|
285
|
+
|
|
286
|
+
// The selection boundaries must be in the same "block limit" element.
|
|
287
|
+
if ( oRange.StartBlockLimit == oRange.EndBlockLimit )
|
|
288
|
+
{
|
|
289
|
+
// If the StartBlock or EndBlock are not available (for text without a
|
|
290
|
+
// block tag), we must fix them, by moving the text to a block.
|
|
291
|
+
if ( !oRange.StartBlock )
|
|
292
|
+
this._FixBlock( oRange, true, blockTag ) ;
|
|
293
|
+
|
|
294
|
+
if ( !oRange.EndBlock )
|
|
295
|
+
this._FixBlock( oRange, false, blockTag ) ;
|
|
296
|
+
|
|
297
|
+
// Get the current blocks.
|
|
298
|
+
var eStartBlock = oRange.StartBlock ;
|
|
299
|
+
var eEndBlock = oRange.EndBlock ;
|
|
300
|
+
|
|
301
|
+
// Delete the current selection.
|
|
302
|
+
if ( !oRange.CheckIsEmpty() )
|
|
303
|
+
oRange.DeleteContents() ;
|
|
304
|
+
|
|
305
|
+
// If the selection boundaries are in the same block element
|
|
306
|
+
if ( eStartBlock == eEndBlock )
|
|
307
|
+
{
|
|
308
|
+
var eNewBlock ;
|
|
309
|
+
|
|
310
|
+
var bIsStartOfBlock = oRange.CheckStartOfBlock() ;
|
|
311
|
+
var bIsEndOfBlock = oRange.CheckEndOfBlock() ;
|
|
312
|
+
|
|
313
|
+
if ( bIsStartOfBlock && !bIsEndOfBlock )
|
|
314
|
+
{
|
|
315
|
+
eNewBlock = eStartBlock.cloneNode(false) ;
|
|
316
|
+
|
|
317
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
|
318
|
+
eNewBlock.innerHTML = GECKO_BOGUS ;
|
|
319
|
+
|
|
320
|
+
// Place the new block before the current block element.
|
|
321
|
+
eStartBlock.parentNode.insertBefore( eNewBlock, eStartBlock ) ;
|
|
322
|
+
|
|
323
|
+
// This is tricky, but to make the new block visible correctly
|
|
324
|
+
// we must select it.
|
|
325
|
+
if ( FCKBrowserInfo.IsIE )
|
|
326
|
+
{
|
|
327
|
+
// Move the selection to the new block.
|
|
328
|
+
oRange.MoveToNodeContents( eNewBlock ) ;
|
|
329
|
+
|
|
330
|
+
oRange.Select() ;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// Move the selection to the new block.
|
|
334
|
+
oRange.MoveToElementEditStart( eStartBlock ) ;
|
|
335
|
+
}
|
|
336
|
+
else
|
|
337
|
+
{
|
|
338
|
+
// Check if the selection is at the end of the block.
|
|
339
|
+
if ( bIsEndOfBlock )
|
|
340
|
+
{
|
|
341
|
+
var sStartBlockTag = eStartBlock.tagName.toUpperCase() ;
|
|
342
|
+
|
|
343
|
+
// If the entire block is selected, and we are in a LI, let's decrease its indentation.
|
|
344
|
+
if ( bIsStartOfBlock && sStartBlockTag == 'LI' )
|
|
345
|
+
{
|
|
346
|
+
this._OutdentWithSelection( eStartBlock, oRange ) ;
|
|
347
|
+
oRange.Release() ;
|
|
348
|
+
return true ;
|
|
349
|
+
}
|
|
350
|
+
else
|
|
351
|
+
{
|
|
352
|
+
// If is a header tag, or we are in a Shift+Enter (#77),
|
|
353
|
+
// create a new block element.
|
|
354
|
+
if ( (/^H[1-6]$/).test( sStartBlockTag ) || this._HasShift )
|
|
355
|
+
eNewBlock = this.Window.document.createElement( blockTag ) ;
|
|
356
|
+
// Otherwise, duplicate the current block.
|
|
357
|
+
else
|
|
358
|
+
{
|
|
359
|
+
eNewBlock = eStartBlock.cloneNode(false) ;
|
|
360
|
+
this._RecreateEndingTree( eStartBlock, eNewBlock ) ;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
|
364
|
+
{
|
|
365
|
+
eNewBlock.innerHTML = GECKO_BOGUS ;
|
|
366
|
+
|
|
367
|
+
// If the entire block is selected, let's add a bogus in the start block.
|
|
368
|
+
if ( bIsStartOfBlock )
|
|
369
|
+
eStartBlock.innerHTML = GECKO_BOGUS ;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
else
|
|
374
|
+
{
|
|
375
|
+
// Extract the contents of the block from the selection point to the end of its contents.
|
|
376
|
+
oRange.SetEnd( eStartBlock, 2 ) ;
|
|
377
|
+
var eDocFrag = oRange.ExtractContents() ;
|
|
378
|
+
|
|
379
|
+
// Duplicate the block element after it.
|
|
380
|
+
eNewBlock = eStartBlock.cloneNode(false) ;
|
|
381
|
+
|
|
382
|
+
// It could be that we are in a LI with a child UL/OL. Insert a bogus to give us space to type.
|
|
383
|
+
FCKDomTools.TrimNode( eDocFrag.RootNode ) ;
|
|
384
|
+
if ( eDocFrag.RootNode.firstChild.nodeType == 1 && eDocFrag.RootNode.firstChild.tagName.toUpperCase().Equals( 'UL', 'OL' ) )
|
|
385
|
+
eNewBlock.innerHTML = GECKO_BOGUS ;
|
|
386
|
+
|
|
387
|
+
// Place the extracted contents in the duplicated block.
|
|
388
|
+
eDocFrag.AppendTo( eNewBlock ) ;
|
|
389
|
+
|
|
390
|
+
if ( FCKBrowserInfo.IsGecko )
|
|
391
|
+
{
|
|
392
|
+
// In Gecko, the last child node must be a bogus <br>.
|
|
393
|
+
this._AppendBogusBr( eStartBlock ) ;
|
|
394
|
+
this._AppendBogusBr( eNewBlock ) ;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
if ( eNewBlock )
|
|
399
|
+
{
|
|
400
|
+
FCKDomTools.InsertAfterNode( eStartBlock, eNewBlock ) ;
|
|
401
|
+
|
|
402
|
+
// Move the selection to the new block.
|
|
403
|
+
oRange.MoveToElementEditStart( eNewBlock ) ;
|
|
404
|
+
|
|
405
|
+
if ( FCKBrowserInfo.IsGecko )
|
|
406
|
+
eNewBlock.scrollIntoView( false ) ;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
else
|
|
411
|
+
{
|
|
412
|
+
// Move the selection to the end block.
|
|
413
|
+
oRange.MoveToElementEditStart( eEndBlock ) ;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
oRange.Select() ;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// Release the resources used by the range.
|
|
420
|
+
oRange.Release() ;
|
|
421
|
+
|
|
422
|
+
return true ;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
FCKEnterKey.prototype._ExecuteEnterBr = function( blockTag )
|
|
426
|
+
{
|
|
427
|
+
// Get the current selection.
|
|
428
|
+
var oRange = new FCKDomRange( this.Window ) ;
|
|
429
|
+
oRange.MoveToSelection() ;
|
|
430
|
+
|
|
431
|
+
// The selection boundaries must be in the same "block limit" element.
|
|
432
|
+
if ( oRange.StartBlockLimit == oRange.EndBlockLimit )
|
|
433
|
+
{
|
|
434
|
+
oRange.DeleteContents() ;
|
|
435
|
+
|
|
436
|
+
// Get the new selection (it is collapsed at this point).
|
|
437
|
+
oRange.MoveToSelection() ;
|
|
438
|
+
|
|
439
|
+
var bIsStartOfBlock = oRange.CheckStartOfBlock() ;
|
|
440
|
+
var bIsEndOfBlock = oRange.CheckEndOfBlock() ;
|
|
441
|
+
|
|
442
|
+
var sStartBlockTag = oRange.StartBlock ? oRange.StartBlock.tagName.toUpperCase() : '' ;
|
|
443
|
+
|
|
444
|
+
var bHasShift = this._HasShift ;
|
|
445
|
+
|
|
446
|
+
if ( !bHasShift && sStartBlockTag == 'LI' )
|
|
447
|
+
return this._ExecuteEnterBlock( null, oRange ) ;
|
|
448
|
+
|
|
449
|
+
// If we are at the end of a header block.
|
|
450
|
+
if ( !bHasShift && bIsEndOfBlock && (/^H[1-6]$/).test( sStartBlockTag ) )
|
|
451
|
+
{
|
|
452
|
+
FCKDebug.Output( 'BR - Header' ) ;
|
|
453
|
+
|
|
454
|
+
// Insert a BR after the current paragraph.
|
|
455
|
+
FCKDomTools.InsertAfterNode( oRange.StartBlock, this.Window.document.createElement( 'br' ) ) ;
|
|
456
|
+
|
|
457
|
+
// The space is required by Gecko only to make the cursor blink.
|
|
458
|
+
if ( FCKBrowserInfo.IsGecko )
|
|
459
|
+
FCKDomTools.InsertAfterNode( oRange.StartBlock, this.Window.document.createTextNode( '' ) ) ;
|
|
460
|
+
|
|
461
|
+
// IE and Gecko have different behaviors regarding the position.
|
|
462
|
+
oRange.SetStart( oRange.StartBlock.nextSibling, FCKBrowserInfo.IsIE ? 3 : 1 ) ;
|
|
463
|
+
}
|
|
464
|
+
else
|
|
465
|
+
{
|
|
466
|
+
FCKDebug.Output( 'BR - No Header' ) ;
|
|
467
|
+
|
|
468
|
+
var eBr = this.Window.document.createElement( 'br' ) ;
|
|
469
|
+
|
|
470
|
+
oRange.InsertNode( eBr ) ;
|
|
471
|
+
|
|
472
|
+
// The space is required by Gecko only to make the cursor blink.
|
|
473
|
+
if ( FCKBrowserInfo.IsGecko )
|
|
474
|
+
FCKDomTools.InsertAfterNode( eBr, this.Window.document.createTextNode( '' ) ) ;
|
|
475
|
+
|
|
476
|
+
// If we are at the end of a block, we must be sure the bogus node is available in that block.
|
|
477
|
+
if ( bIsEndOfBlock && FCKBrowserInfo.IsGecko )
|
|
478
|
+
this._AppendBogusBr( eBr.parentNode ) ;
|
|
479
|
+
|
|
480
|
+
if ( FCKBrowserInfo.IsIE )
|
|
481
|
+
oRange.SetStart( eBr, 4 ) ;
|
|
482
|
+
else
|
|
483
|
+
oRange.SetStart( eBr.nextSibling, 1 ) ;
|
|
484
|
+
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// This collapse guarantees the cursor will be blinking.
|
|
488
|
+
oRange.Collapse( true ) ;
|
|
489
|
+
|
|
490
|
+
oRange.Select() ;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
// Release the resources used by the range.
|
|
494
|
+
oRange.Release() ;
|
|
495
|
+
|
|
496
|
+
return true ;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
// Transform a block without a block tag in a valid block (orphan text in the body or td, usually).
|
|
500
|
+
FCKEnterKey.prototype._FixBlock = function( range, isStart, blockTag )
|
|
501
|
+
{
|
|
502
|
+
// Bookmark the range so we can restore it later.
|
|
503
|
+
var oBookmark = range.CreateBookmark() ;
|
|
504
|
+
|
|
505
|
+
// Collapse the range to the requested ending boundary.
|
|
506
|
+
range.Collapse( isStart ) ;
|
|
507
|
+
|
|
508
|
+
// Expands it to the block contents.
|
|
509
|
+
range.Expand( 'block_contents' ) ;
|
|
510
|
+
|
|
511
|
+
// Create the fixed block.
|
|
512
|
+
var oFixedBlock = this.Window.document.createElement( blockTag ) ;
|
|
513
|
+
|
|
514
|
+
// Move the contents of the temporary range to the fixed block.
|
|
515
|
+
range.ExtractContents().AppendTo( oFixedBlock ) ;
|
|
516
|
+
FCKDomTools.TrimNode( oFixedBlock ) ;
|
|
517
|
+
|
|
518
|
+
// Insert the fixed block into the DOM.
|
|
519
|
+
range.InsertNode( oFixedBlock ) ;
|
|
520
|
+
|
|
521
|
+
// Move the range back to the bookmarked place.
|
|
522
|
+
range.MoveToBookmark( oBookmark ) ;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
// Appends a bogus <br> at the end of the element, if not yet available.
|
|
526
|
+
FCKEnterKey.prototype._AppendBogusBr = function( element )
|
|
527
|
+
{
|
|
528
|
+
var eLastChild = element.getElementsByTagName('br') ;
|
|
529
|
+
|
|
530
|
+
if ( eLastChild )
|
|
531
|
+
eLastChild = eLastChild[ eLastChild.legth - 1 ] ;
|
|
532
|
+
|
|
533
|
+
if ( !eLastChild || eLastChild.getAttribute( 'type', 2 ) != '_moz' )
|
|
534
|
+
element.appendChild( FCKTools.CreateBogusBR( this.Window.document ) ) ;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
// Recreate the elements tree at the end of the source block, at the beginning
|
|
538
|
+
// of the target block. Eg.:
|
|
539
|
+
// If source = <p><u>Some</u> sample <b><i>text</i></b></p> then target = <p><b><i></i></b></p>
|
|
540
|
+
// If source = <p><u>Some</u> sample text</p> then target = <p></p>
|
|
541
|
+
FCKEnterKey.prototype._RecreateEndingTree = function( source, target )
|
|
542
|
+
{
|
|
543
|
+
while ( ( source = source.lastChild ) && source.nodeType == 1 && FCKListsLib.InlineChildReqElements[ source.nodeName.toLowerCase() ] != null )
|
|
544
|
+
target = target.insertBefore( source.cloneNode( false ), target.firstChild ) ;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
// Outdents a LI, maintaining the seletion defined on a range.
|
|
548
|
+
FCKEnterKey.prototype._OutdentWithSelection = function( li, range )
|
|
549
|
+
{
|
|
550
|
+
var oBookmark = range.CreateBookmark() ;
|
|
551
|
+
|
|
552
|
+
FCKListHandler.OutdentListItem( li ) ;
|
|
553
|
+
|
|
554
|
+
range.MoveToBookmark( oBookmark ) ;
|
|
555
|
+
range.Select() ;
|
|
556
|
+
}
|