Changeset 5300
- Timestamp:
- 10/17/09 16:24:40 (2 years ago)
- Location:
- trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce
- Files:
-
- 48 added
- 124 edited
-
build.xml (modified) (5 diffs)
-
changelog.txt (modified) (1 diff)
-
examples/full.html (modified) (2 diffs)
-
examples/full_jquery.html (added)
-
examples/simple.html (modified) (1 diff)
-
examples/skins.html (modified) (4 diffs)
-
examples/translate.html (modified) (1 diff)
-
jscripts/tiny_mce/classes/AddOnManager.js (modified) (7 diffs)
-
jscripts/tiny_mce/classes/ControlManager.js (modified) (23 diffs)
-
jscripts/tiny_mce/classes/Editor.js (modified) (74 diffs)
-
jscripts/tiny_mce/classes/EditorCommands.js (modified) (4 diffs)
-
jscripts/tiny_mce/classes/EditorManager.js (modified) (17 diffs)
-
jscripts/tiny_mce/classes/ForceBlocks.js (modified) (12 diffs)
-
jscripts/tiny_mce/classes/Popup.js (modified) (19 diffs)
-
jscripts/tiny_mce/classes/UndoManager.js (modified) (9 diffs)
-
jscripts/tiny_mce/classes/WindowManager.js (modified) (9 diffs)
-
jscripts/tiny_mce/classes/adapter/jquery/adapter.js (modified) (9 diffs)
-
jscripts/tiny_mce/classes/adapter/jquery/jquery.tinymce.js (added)
-
jscripts/tiny_mce/classes/commands/CutCopyPaste.js (modified) (1 diff)
-
jscripts/tiny_mce/classes/commands/RemoveFormat.js (modified) (2 diffs)
-
jscripts/tiny_mce/classes/commands/UndoRedo.js (modified) (2 diffs)
-
jscripts/tiny_mce/classes/dom/DOMUtils.js (modified) (66 diffs)
-
jscripts/tiny_mce/classes/dom/Element.js (modified) (12 diffs)
-
jscripts/tiny_mce/classes/dom/EventUtils.js (added)
-
jscripts/tiny_mce/classes/dom/Range.js (modified) (2 diffs)
-
jscripts/tiny_mce/classes/dom/ScriptLoader.js (modified) (12 diffs)
-
jscripts/tiny_mce/classes/dom/Selection.js (modified) (24 diffs)
-
jscripts/tiny_mce/classes/dom/Serializer.js (modified) (26 diffs)
-
jscripts/tiny_mce/classes/dom/Sizzle.js (modified) (35 diffs)
-
jscripts/tiny_mce/classes/dom/StringWriter.js (modified) (16 diffs)
-
jscripts/tiny_mce/classes/dom/TridentSelection.js (modified) (4 diffs)
-
jscripts/tiny_mce/classes/dom/XMLWriter.js (modified) (13 diffs)
-
jscripts/tiny_mce/classes/firebug/firebug-lite.js (modified) (2 diffs)
-
jscripts/tiny_mce/classes/tinymce.js (modified) (25 diffs)
-
jscripts/tiny_mce/classes/ui/Button.js (modified) (6 diffs)
-
jscripts/tiny_mce/classes/ui/ColorSplitButton.js (modified) (13 diffs)
-
jscripts/tiny_mce/classes/ui/Container.js (modified) (6 diffs)
-
jscripts/tiny_mce/classes/ui/Control.js (modified) (14 diffs)
-
jscripts/tiny_mce/classes/ui/DropMenu.js (modified) (15 diffs)
-
jscripts/tiny_mce/classes/ui/ListBox.js (modified) (14 diffs)
-
jscripts/tiny_mce/classes/ui/Menu.js (modified) (14 diffs)
-
jscripts/tiny_mce/classes/ui/MenuButton.js (modified) (7 diffs)
-
jscripts/tiny_mce/classes/ui/MenuItem.js (modified) (7 diffs)
-
jscripts/tiny_mce/classes/ui/NativeListBox.js (modified) (12 diffs)
-
jscripts/tiny_mce/classes/ui/Separator.js (modified) (4 diffs)
-
jscripts/tiny_mce/classes/ui/SplitButton.js (modified) (6 diffs)
-
jscripts/tiny_mce/classes/ui/Toolbar.js (modified) (3 diffs)
-
jscripts/tiny_mce/classes/util/Cookie.js (modified) (7 diffs)
-
jscripts/tiny_mce/classes/util/Dispatcher.js (modified) (7 diffs)
-
jscripts/tiny_mce/classes/util/JSON.js (modified) (3 diffs)
-
jscripts/tiny_mce/classes/util/JSONRequest.js (modified) (6 diffs)
-
jscripts/tiny_mce/classes/util/URI.js (modified) (14 diffs)
-
jscripts/tiny_mce/classes/util/XHR.js (modified) (4 diffs)
-
jscripts/tiny_mce/jquery.tinymce.js (added)
-
jscripts/tiny_mce/plugins/advhr/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/advimage/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/advlink/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/advlink/js/advlink.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/autoresize (added)
-
jscripts/tiny_mce/plugins/autoresize/editor_plugin.js (added)
-
jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js (added)
-
jscripts/tiny_mce/plugins/autosave/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/bbcode/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/directionality/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/emotions/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/example/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/fullpage/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/fullpage/js/fullpage.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/iespell/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js (modified) (2 diffs)
-
jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/layer/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/media/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/media/editor_plugin_src.js (modified) (4 diffs)
-
jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/noneditable/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/paste/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/paste/editor_plugin_src.js (modified) (3 diffs)
-
jscripts/tiny_mce/plugins/paste/js/pastetext.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/paste/js/pasteword.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/paste/pastetext.htm (modified) (1 diff)
-
jscripts/tiny_mce/plugins/paste/pasteword.htm (modified) (2 diffs)
-
jscripts/tiny_mce/plugins/preview/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/preview/editor_plugin_src.js (modified) (2 diffs)
-
jscripts/tiny_mce/plugins/print/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/safari/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/safari/editor_plugin_src.js (modified) (3 diffs)
-
jscripts/tiny_mce/plugins/save/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/style/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/style/js/props.js (modified) (3 diffs)
-
jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/table/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/table/editor_plugin_src.js (modified) (3 diffs)
-
jscripts/tiny_mce/plugins/table/js/table.js (modified) (3 diffs)
-
jscripts/tiny_mce/plugins/table/table.htm (modified) (1 diff)
-
jscripts/tiny_mce/plugins/template/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/template/editor_plugin_src.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/visualchars/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/plugins/wordcount (added)
-
jscripts/tiny_mce/plugins/wordcount/editor_plugin.js (added)
-
jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js (added)
-
jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js (modified) (1 diff)
-
jscripts/tiny_mce/themes/advanced/color_picker.htm (modified) (1 diff)
-
jscripts/tiny_mce/themes/advanced/editor_template.js (modified) (1 diff)
-
jscripts/tiny_mce/themes/advanced/js/link.js (modified) (3 diffs)
-
jscripts/tiny_mce/themes/simple/editor_template.js (modified) (1 diff)
-
jscripts/tiny_mce/tiny_mce.js (modified) (1 diff)
-
jscripts/tiny_mce/tiny_mce_dev.js (modified) (3 diffs)
-
jscripts/tiny_mce/tiny_mce_jquery.js (modified) (1 diff)
-
jscripts/tiny_mce/tiny_mce_jquery_src.js (modified) (169 diffs)
-
jscripts/tiny_mce/tiny_mce_popup.js (modified) (1 diff)
-
jscripts/tiny_mce/tiny_mce_prototype.js (modified) (1 diff)
-
jscripts/tiny_mce/tiny_mce_prototype_src.js (modified) (204 diffs)
-
jscripts/tiny_mce/tiny_mce_src.js (modified) (204 diffs)
-
jscripts/tiny_mce/utils/form_utils.js (modified) (2 diffs)
-
tests/api.html (modified) (1 diff)
-
tests/api_jquery.html (modified) (1 diff)
-
tests/api_prototype.html (modified) (1 diff)
-
tests/basic.html (modified) (3 diffs)
-
tests/crossdomain.html (modified) (1 diff)
-
tests/jquery_plugin.html (added)
-
tests/js/api.js (modified) (13 diffs)
-
tests/media.html (modified) (4 diffs)
-
tests/menu.html (modified) (1 diff)
-
tests/parts.html (modified) (1 diff)
-
tests/paste.html (added)
-
tests/performance.html (modified) (7 diffs)
-
tests/range.html (modified) (1 diff)
-
tests/selection.html (added)
-
tools/ant/js_build_tools.jar (modified) (previous)
-
tools/templates (added)
-
tools/templates/class.xsl (added)
-
tools/templates/css (added)
-
tools/templates/css/general.css (added)
-
tools/templates/css/grids.css (added)
-
tools/templates/css/jquery.treeview.css (added)
-
tools/templates/css/reset.css (added)
-
tools/templates/css/shCore.css (added)
-
tools/templates/css/shThemeMoxieDoc.css (added)
-
tools/templates/img (added)
-
tools/templates/img/class.gif (added)
-
tools/templates/img/event.gif (added)
-
tools/templates/img/help.png (added)
-
tools/templates/img/inherit-arrow.gif (added)
-
tools/templates/img/inherited.gif (added)
-
tools/templates/img/loader.gif (added)
-
tools/templates/img/magnifier.png (added)
-
tools/templates/img/method.gif (added)
-
tools/templates/img/namespace.gif (added)
-
tools/templates/img/page_white_code.png (added)
-
tools/templates/img/page_white_copy.png (added)
-
tools/templates/img/printer.png (added)
-
tools/templates/img/property.gif (added)
-
tools/templates/img/root.gif (added)
-
tools/templates/img/static.gif (added)
-
tools/templates/img/treeview-famfamfam.gif (added)
-
tools/templates/img/wrapping.png (added)
-
tools/templates/index.xsl (added)
-
tools/templates/js (added)
-
tools/templates/js/clipboard.swf (added)
-
tools/templates/js/general.js (added)
-
tools/templates/js/jquery.treeview.min.js (added)
-
tools/templates/js/shBrushJScript.js (added)
-
tools/templates/js/shCore.js (added)
-
tools/templates/member.xsl (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/build.xml
r3104 r5300 22 22 <taskdef name="preprocess" classname="com.moxiecode.ant.tasks.PreProcessTask" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 23 23 <taskdef name="yuicompress" classname="com.moxiecode.ant.tasks.YuiCompressTask" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 24 <taskdef name="moxiedoc" classname="com.moxiecode.ant.tasks.MoxieDocTask" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 24 25 <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 25 26 <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 26 27 27 28 <!-- Generate JS documentation --> 28 <target name="yuidoc" depends="" description="Generates HTML documentation out of java source"> 29 29 <target name="moxiedoc" depends="" description="Generates HTML documentation out of js source"> 30 <delete quiet="true"> 31 <fileset dir="docs\api" includes="**/*"/> 32 </delete> 33 34 <moxiedoc outdir="docs\api" templatedir="tools\templates" msintellisense="docs\api\tinymce.vsdoc.js" eventclass="tinymce.util.Dispatcher" title="TinyMCE API"> 35 <fileset dir="jscripts\tiny_mce\classes"> 36 <include name="**/*.js" /> 37 </fileset> 38 </moxiedoc> 30 39 </target> 31 40 … … 52 61 <fileset dir="${classes_dir}" includes="dom/TridentSelection.js" /> 53 62 <fileset dir="${classes_dir}" includes="dom/Sizzle.js" /> 54 <fileset dir="${classes_dir}" includes="dom/Event .js" />63 <fileset dir="${classes_dir}" includes="dom/EventUtils.js" /> 55 64 <fileset dir="${classes_dir}" includes="dom/Element.js" /> 56 65 <fileset dir="${classes_dir}" includes="dom/Selection.js" /> … … 147 156 <yuicompress infile="${build_dir}/plugins/bbcode/editor_plugin_src.js" outfile="${build_dir}/plugins/bbcode/editor_plugin.js" /> 148 157 <yuicompress infile="${build_dir}/plugins/safari/editor_plugin_src.js" outfile="${build_dir}/plugins/safari/editor_plugin.js" /> 149 <yuicompress infile="${build_dir}/plugins/compat2x/editor_plugin_src.js" outfile="${build_dir}/plugins/compat2x/editor_plugin.js" />150 158 <yuicompress infile="${build_dir}/plugins/pagebreak/editor_plugin_src.js" outfile="${build_dir}/plugins/pagebreak/editor_plugin.js" /> 151 159 <yuicompress infile="${build_dir}/plugins/spellchecker/editor_plugin_src.js" outfile="${build_dir}/plugins/spellchecker/editor_plugin.js" /> 152 160 <yuicompress infile="${build_dir}/plugins/tabfocus/editor_plugin_src.js" outfile="${build_dir}/plugins/tabfocus/editor_plugin.js" /> 161 <yuicompress infile="${build_dir}/plugins/autoresize/editor_plugin_src.js" outfile="${build_dir}/plugins/autoresize/editor_plugin.js" /> 162 <yuicompress infile="${build_dir}/plugins/wordcount/editor_plugin_src.js" outfile="${build_dir}/plugins/wordcount/editor_plugin.js" /> 163 164 <!-- Compress jQuery plugin --> 165 <yuicompress infile="${classes_dir}/adapter/jquery/jquery.tinymce.js" outfile="${build_dir}/jquery.tinymce.js" /> 153 166 154 167 <!-- Process dialogs --> … … 287 300 <delete file="${package_dir}/tinymce_${file_version}.zip" quiet="true" /> 288 301 <zip destfile="${package_dir}/tinymce_${file_version}.zip" excludes="**/classes"> 289 <fileset dir="${export_dir}/tinymce"> 290 <include name="jscripts/**" /> 291 <include name="examples/**" /> 292 <include name="changelog.txt" /> 293 <exclude name="jscripts/tiny_mce/classes/**" /> 294 <exclude name="jscripts/tiny_mce/tiny_mce_dev.js" /> 295 <exclude name="jscripts/tiny_mce/tiny_mce_jquery.js" /> 296 <exclude name="jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 297 <exclude name="jscripts/tiny_mce/tiny_mce_prototype.js" /> 298 <exclude name="jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 302 <fileset dir="${export_dir}"> 303 <include name="tinymce/jscripts/**" /> 304 <include name="tinymce/examples/**" /> 305 <include name="tinymce/changelog.txt" /> 306 <exclude name="tinymce/examples/full_jquery.html" /> 307 <exclude name="tinymce/jscripts/tiny_mce/classes/**" /> 308 <exclude name="tinymce/jscripts/tiny_mce/jquery.tinymce.js" /> 309 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_dev.js" /> 310 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery.js" /> 311 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 312 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype.js" /> 313 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 299 314 </fileset> 300 315 </zip> … … 303 318 <delete file="${package_dir}/tinymce_${file_version}_jquery.zip" quiet="true" /> 304 319 <zip destfile="${package_dir}/tinymce_${file_version}_jquery.zip" excludes="**/classes"> 320 <fileset dir="${export_dir}"> 321 <include name="tinymce/jscripts/**" /> 322 <include name="tinymce/examples/**" /> 323 <include name="tinymce/changelog.txt" /> 324 <exclude name="tinymce/examples/**" /> 325 <exclude name="tinymce/jscripts/tiny_mce/classes/**" /> 326 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce.js" /> 327 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_src.js" /> 328 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_dev.js" /> 329 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery.js" /> 330 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 331 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype.js" /> 332 <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 333 </fileset> 334 335 <zipfileset dir="${export_dir}" includes="tinymce/examples/full_jquery.html" fullpath="tinymce/examples/index.html"/> 336 <zipfileset dir="${export_dir}" includes="tinymce/jscripts/tiny_mce/tiny_mce_jquery.js" fullpath="tinymce/jscripts/tiny_mce/tiny_mce.js"/> 337 <zipfileset dir="${export_dir}" includes="tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js" fullpath="tinymce/jscripts/tiny_mce/tiny_mce_src.js"/> 338 </zip> 339 340 <!-- Remove copyright headers for commerical version --> 341 <replaceregexp match="^/\*(.*?)\*\/\s*" replace="" flags="gs" byline="false"> 305 342 <fileset dir="${export_dir}/tinymce"> 306 <include name="jscripts/**" /> 307 <include name="examples/**" /> 308 <include name="changelog.txt" /> 309 <exclude name="jscripts/tiny_mce/classes/**" /> 310 <exclude name="jscripts/tiny_mce/tiny_mce.js" /> 311 <exclude name="jscripts/tiny_mce/tiny_mce_src.js" /> 312 <exclude name="jscripts/tiny_mce/tiny_mce_dev.js" /> 313 <exclude name="jscripts/tiny_mce/tiny_mce_jquery.js" /> 314 <exclude name="jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 315 <exclude name="jscripts/tiny_mce/tiny_mce_prototype.js" /> 316 <exclude name="jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 317 </fileset> 318 319 <zipfileset dir="${export_dir}/tinymce" includes="jscripts/tiny_mce/tiny_mce_jquery.js" fullpath="jscripts/tiny_mce/tiny_mce.js"/> 320 <zipfileset dir="${export_dir}/tinymce" includes="jscripts/tiny_mce/tiny_mce_jquery_src.js" fullpath="jscripts/tiny_mce/tiny_mce_src.js"/> 343 <include name="**/*.js" /> 344 </fileset> 345 </replaceregexp> 346 347 <echo file="${export_dir}/tinymce/license_info.txt" append="false"> 348 TinyMCE Commercial Application License 349 -------------------------------------- 350 This copy of TinyMCE is under a commercial license, the LGPL headers are removed. 351 352 A signed agreement from Moxiecode Systems AB is required in order to use this specific copy of TinyMCE. 353 354 If you have any questions regarding your license, contact Moxiecode Systems AB (www.moxiecode.com). 355 </echo> 356 357 <!-- Compress development package (commercial) --> 358 <delete file="${package_dir}/tinymce_${file_version}_dev_commercial.zip" quiet="true" /> 359 <zip destfile="${package_dir}/tinymce_${file_version}_dev_commercial.zip" excludes="**/license.txt"> 360 <fileset dir="${export_dir}"> 361 <include name="tinymce/**" /> 362 <exclude name="tinymce/**/license.txt" /> 363 <exclude name="tinymce/**/advanced/about.htm" /> 364 </fileset> 321 365 </zip> 322 366 </target> -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/changelog.txt
r3104 r5300 1 Version 3.2.7 (2009-09-22) 2 Fixed bug where uppercase paragraphs could still produce an invalid DOM tree on IE. 3 Fixed bug where split command didn't work on WebKit since the node serializer needs a real document to work with. 4 Fixed bug where it was impossible in Gecko to place the caret before a table if it was the first one. 5 Fixed bug where linking to urls like ../../ would produce an extra traling slash ../..//. 6 Fixed bug where the template cdate functionality was using an old 2.x API call. Patch contributed by vectorjohn. 7 Fixed bug where urls to the same site but different protocol would be converted when relative_urls where set to false. Patch contributed by Ted Rust. 8 Fixed bug where the paste plugin would remove mceItem prefixed classes. 9 Fixed bug where the paste plugin would sometimes add items in a reverse order on WebKit. 10 Fixed bug where the paste buttons would present an error message on Gecko even if you changed user.js. Patch contributed by Todd (teeaykay). 11 Fixed bug where Opera would crash if you had tables incorrectly placed inside paragraphs. 12 Fixed bug where styles elements wasn't properly processed if you had bad input HTML. 13 Fixed bug where style attributes wasn't properly forced into a specific format. 14 Fixed bug and issues with boolean attributes like checked, nowrap etc. 15 Fixed bug where input elements could override attributes on form elements. 16 Fixed bug where script or style elements could get modified by the DOMUtils processHTML method. 17 Fixed bug where the selected attribute could get lost when force root blocks logic got executed on IE. Patch contributed by Attila Mezei-Horvati. 18 Fixed bug where getAttribs method didn't handle boolean attributes correctly on IE. 19 Fixed so the paste from word dialog is presented if you paste content on an IE with to restrictive security settings. 20 Fixed so the paste_strip_class_attributes option is set to none by default in the paste plugin. 21 Removed default border=0 on tables for the default value of valid_elements. 22 Version 3.2.6 (2009-08-19) 23 Added new wordcount plugin, this will display the number of typed words as you write. Contributed by Andrew Ozz. 24 Added new getNext and getPrev methods to DOM utils. These will return the first matching sibling. 25 Fixed bug where it was impossible to place the caret after a table on Gecko. It will now add a paragraph after tables. 26 Fixed bug where inline dialogs would fail if used in a window opened using a showModalDialog. Patch contributed by Derek Britt. 27 Fixed bug where IE could sometimes render a unknown runtime error on invalid input HTML. 28 Fixed bug where some incorrectly placed tables wouldn't be moved outside the paragraphs on IE. 29 Fixed bug where uppercase script/style element wouldn't be handled correctly and converted to valid lowercase. 30 Fixed bug where some WebKit versions on Mac OS X would produce issues with hidden select fields. 31 Fixed bug where the media plugin would fail on WebKit since the node wasn't properly imported to the right document. 32 Fixed bug where absolute URLs for the TinyMCE script using a base href element would cause loading problems in IE 6/7. 33 Fixed bug where pasting using the paste plugin wasn't possible on IE with to restrictive security settings. 34 Fixed bug where pasting of whitespace was impossible using the new custom paste method. 35 Fixed bug where pasting on some WebKit browsers would not work if you pasted specific contents due to a WebKit bug. 36 Fixed bug where doctypes with multiple lines would not be parsed correctly by the fullpage plugin. Patch contributed by Colin. 37 Fixed bug where the autoresize plugin would break the fullscreen functionality. 38 Fixed bug where tables would be chopped up running on IE using invalid contents and pasting paragraphs into a cell. 39 Fixed bug where the each method of jQuery build didn't iterate styleSheets. We now use the TinyMCE API one instead. 40 Fixed bug where auto switching to paragraphs after headers some times failed in Gecko. 41 Fixed so all editor options gets passed to the Serializer class. Patch contributed by Jasper Mattsson. 42 Fixed so script/style blocks isn't wrapped in paragraphs as other inline elements. 43 Fixed so the XHR requests sends the X-Requested-With HTTP header. 44 Fixed so the data url scheme is handled in the tinymce.util.URI class. 45 Changed inline documentation to use moxiedoc style comments. 46 Removed the compat2x plugin people should have upgraded to the 3.x API by now. 3.0 was released more then a year ago. 47 Re-added Gecko specific message for users who doesn't understand the security concept regarding paste. 48 Version 3.2.5 (2009-06-29) 49 Added new jQuery plugin for the jQuery specific package. This enables you to more easily load and use TinyMCE. 50 Added new autoresize plugin contributed by Peter Dekkers. This plugin will auto resize the editor to the size of the contents. 51 Fixed so all packages have the same directory structure. Previous releases had a different structure for the production package. 52 Fixed so the paste from word dialog forces the contents to be processed as word contents even if it's not. 53 Fixed so the jQuery build adapter build works. It's currently only excluding Sizzle. 54 Fixed so noscript element contents is retained during the editing process. 55 Fixed bug where the getBookmark method would need a "simple" string input when the documented way is a boolean. 56 Fixed bug where invalid contents could break the fix_table_elements logic. 57 Fixed bug where Sizzle specific attributes would be serialized if the valid_elements was set to *[*]. 58 Fixed bug where IE would produce an error if you specified a relative content_css and opened the paste dialog. 59 Fixed bug where pasting images on IE would produce broken images if they came from an external site. 60 Fixed bug where memory was leaked if you add/remove controls dynamically. Some event handlers wasn't removed properly. 61 Fixed bug where domain relaxing wasn't treated correctly if you added it after the TinyMCE script element. 62 Fixed bug where the activeEditor wasn't set to null if the last editor instance was removed. 63 Fixed bug where IE was leaking memory on the onbeforeunload event due to some recently introduced logic. Patch contributed by Options. 64 Fixed bug where inserting tables in Safari 4 didn't work due to a new WebKit bug where some element names are reserved. 65 Fixed bug where URLs having a :// value in the query string would make it absolute regardless of URL settings. 66 Fixed the WebKit specific bug where DOM Ranges would fail if the node wasn't attached to something in a different way. 67 Removed the auto_resize option and the resizeToContent method from the tinymce.Editor class. Use the new autoresize plugin instead. 68 Version 3.2.4.1 (2009-05-25) 69 Fixed bug where Gecko browsers would produce an extra space after for example strong when loaded from sub domains. 70 Fixed bug where script elements would be removed if they where placed inside a paragraph element. 71 Fixed bug where IE 8 would produce 1 item remaining when loading CSS files dynamically with an empty cache. 72 Fixed bug where bound events would be removed from other editor instances if a specific one was removed. 73 Fixed various bugs and issues with script and style elements inside the editor. 74 Fixed so all script contents gets wrapped in CDATA sections so that they can be parsed using a XML parser. 75 Fixed so it's impossible for elements marked as closed to have child nodes rendered in output. 76 Version 3.2.4 (2009-05-21) 77 Added new paste_remove_styles/paste_remove_styles_if_webkit option to paste plugin concept contributed by Hadrien Gardeur. 78 Added new functionality to paste plugin contributed by Scott Eade aka monkeybrain. 79 Added new paste_block_drop option to the paste plugin this is disabled by default and will block any drag/drop event. 80 Added new bind/unbind methods to DOMUtils these works like Event.add/Event.remove but is easier to access. 81 Added new paste_dialog_width/paste_dialog_height options to paste pluign. Enables you to change the dialog sizes. 82 Fixed bug on IE 8 where it would sometimes produce a "1 item remaining" status message that would never finish. 83 Fixed bug on Safari 4 beta that would produce DOM Range exceptions on the DOMUtils split method since the browser has a bug. 84 Fixed bug where the paste plugin could accidentally think that some word sentences was supposed to be list elements. 85 Fixed bug where paste plugin would produce one extra empty undo level on some browsers. 86 Fixed bug where spans wasn't produced correctly on new line when the keep_styles option was enabled. 87 Fixed bug where the caret would be placed at the beginning of contents in IE 8 if you selected colors from the color pickers. 88 Fixed so the Event class is a normal class instead of a static one. The tinymce.dom.Event is now a global instance of that class. 89 Fixed so internal events for instances gets removed when the DOMUtils instance is removed. 90 Fixed so preventDefault and stopPropagation methods can be used on the event object in all browsers. 91 Version 3.2.3.1 (2009-05-05) 92 Fixed bug where paragraphs containing form elements such as input or textarea would be removed. 93 Fixed bug where some IE versions would produce a wrapper function for events attributes. 94 Fixed bug where table cell contents could be removed if you pressed return/enter at the end of the cell contents. 95 Fixed bug where the paste plugin would remove a extra character if the selection range was collapsed. 96 Fixed bug where creating tables with % width wouldn't be handled correctly on WebKit browsers. 97 Version 3.2.3 (2009-04-23) 98 Added new paste plugin logic. This new version will autodetect Word contents and clean it up. 99 Added a optional root element argument to getPos so you can tell it where to stop the calculation. 100 Added new DOM ready logic to remove the usage of document.write. We now use basically the same method as jQuery. 101 Fixed bug where WebKit browsers would fail when selecting all contents in the area using Ctrl+A. 102 Fixed bug where IE would produce paragraphs with empty inline style elements. 103 Fixed bug where WebKit browsers would fail when inserting tables with a non pixel width. 104 Fixed bug where block elements could get a redundant br element at the end of the element. 105 Fixed bug where the tabfocus plugin only worked with a single editor instance on page. 106 Fixed bug where IE 8 was loosing caret position if the selection was collapsed and a menu was clicked. 107 Fixed bug with application/xhtml+xml mode where menus wasn't working properly. 108 Fixed bug where the onstop workaround fix for IE would produce errors in an ASP update panel. 109 Fixed bug where the submit function override could produce errors if executed in the wrong scope. 110 Fixed bug where the area element wasn't closed by a short ending. 111 Fixed various number issues in the style plugins properties dialog. Contributed by datpaulchen. 112 Fixed issues with size suffix values in the style plugin dialog. 113 Fixed issue where hasDuplicate variable would leak out to the global space due to a bug in the Sizzle engine. 114 Fixed issue where the paste event would fire a dialog warning on IE since we extracted the text contents. 115 Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported. 116 Version 3.2.2.3 (2009-03-26) 117 Fixed regression bug with the getPos method, it would return invalid if the view port was to small. 118 Version 3.2.2.2 (2009-03-25) 119 Fixed so the DOMUtils getPos method can be used cross documents if needed. 120 Fixed bug where undo/redo wasn't working correctly in Gecko browsers. 121 Version 3.2.2.1 (2009-03-19) 122 Added support for tel: URL prefixes. Even though this doesn't match any official RFC. 123 Fixed so the select method of the Selection class selects the first best suitable contents. 124 Fixed bug where the regexps for www. prefixes for link and advlink dialogs would match wwwX. 125 Fixed bug where the preview dialog would fail to open if the content_css wasn't defined. Patch contributed by David Bildström (ChronoZ). 126 Fixed bug where editors wasn't converted in application/xhtml+xml mode due to an issue with Sizzle. 127 Fixed bug where alignment would fail if multiple lines where selected. 128 Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported. 1 129 Version 3.2.2 (2009-03-05) 2 130 Added new CSS selector engine. Sizzle the same one that jQuery and other libraries are using. -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/full.html
r3104 r5300 11 11 mode : "textareas", 12 12 theme : "advanced", 13 plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template ",13 plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount", 14 14 15 15 // Theme options … … 57 57 <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 58 58 <p> 59 <img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /> TinyMCE is a platform independent web based Javascript HTML <strong>WYSIWYG</strong> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.59 This is some example text that you can edit inside the <strong>TinyMCE editor</strong>. 60 60 </p> 61 61 <p> 62 We recommend <a href="http://www.getfirefox.com" target="_blank">Firefox</a> and <a href="http://www.google.com" target="_blank">Google</a> <br />62 Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 63 63 </p> 64 64 </textarea> -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/simple.html
r3104 r5300 28 28 <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 29 29 <p> 30 <img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /> TinyMCE is a platform independent web based Javascript HTML <strong>WYSIWYG</strong> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.30 This is some example text that you can edit inside the <strong>TinyMCE editor</strong>. 31 31 </p> 32 32 <p> 33 We recommend <a href="http://www.getfirefox.com" target="_blank">Firefox</a> and <a href="http://www.google.com" target="_blank">Google</a> <br />33 Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 34 34 </p> 35 35 </textarea> -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/skins.html
r3104 r5300 164 164 <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 165 165 <p> 166 <img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /> TinyMCE is a platform independent web based Javascript HTML <strong>WYSIWYG</strong> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.167 </p> 168 <p> 169 We recommend <a href="http://www.getfirefox.com" target="_blank">Firefox</a> and <a href="http://www.google.com" target="_blank">Google</a> <br />166 This is some example text that you can edit inside the <strong>TinyMCE editor</strong>. 167 </p> 168 <p> 169 Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 170 170 </p> 171 171 </textarea> … … 175 175 <textarea id="elm2" name="elm2" rows="15" cols="80" style="width: 80%"> 176 176 <p> 177 <img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /> TinyMCE is a platform independent web based Javascript HTML <strong>WYSIWYG</strong> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.178 </p> 179 <p> 180 We recommend <a href="http://www.getfirefox.com" target="_blank">Firefox</a> and <a href="http://www.google.com" target="_blank">Google</a> <br />177 This is some example text that you can edit inside the <strong>TinyMCE editor</strong>. 178 </p> 179 <p> 180 Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 181 181 </p> 182 182 </textarea> … … 186 186 <textarea id="elm3" name="elm3" rows="15" cols="80" style="width: 80%"> 187 187 <p> 188 <img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /> TinyMCE is a platform independent web based Javascript HTML <strong>WYSIWYG</strong> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.189 </p> 190 <p> 191 We recommend <a href="http://www.getfirefox.com" target="_blank">Firefox</a> and <a href="http://www.google.com" target="_blank">Google</a> <br />188 This is some example text that you can edit inside the <strong>TinyMCE editor</strong>. 189 </p> 190 <p> 191 Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 192 192 </p> 193 193 </textarea> … … 197 197 <textarea id="elm4" name="elm4" rows="15" cols="80" style="width: 80%"> 198 198 <p> 199 <img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /> TinyMCE is a platform independent web based Javascript HTML <strong>WYSIWYG</strong> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.200 </p> 201 <p> 202 We recommend <a href="http://www.getfirefox.com" target="_blank">Firefox</a> and <a href="http://www.google.com" target="_blank">Google</a> <br />199 This is some example text that you can edit inside the <strong>TinyMCE editor</strong>. 200 </p> 201 <p> 202 Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 203 203 </p> 204 204 </textarea> -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/translate.html
r3104 r5300 69 69 <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 70 70 <p> 71 <img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /> TinyMCE is a platform independent web based Javascript HTML <strong>WYSIWYG</strong> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.71 This is some example text that you can edit inside the <strong>TinyMCE editor</strong>. 72 72 </p> 73 73 <p> 74 We recommend <a href="http://www.getfirefox.com" target="_blank">Firefox</a> and <a href="http://www.google.com" target="_blank">Google</a> <br />74 Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 75 75 </p> 76 76 </textarea> -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/jscripts/tiny_mce/classes/AddOnManager.js
r3104 r5300 9 9 var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each; 10 10 11 /**#@+ 12 * @class This class handles the loading of themes/plugins or other add-ons and their language packs. 13 * @member tinymce.AddOnManager 11 /** 12 * This class handles the loading of themes/plugins or other add-ons and their language packs. 13 * 14 * @class tinymce.AddOnManager 14 15 */ 15 16 tinymce.create('tinymce.AddOnManager', { … … 17 18 urls : {}, 18 19 lookup : {}, 20 21 /** 22 * Fires when a item is added. 23 * 24 * @event onAdd 25 */ 19 26 onAdd : new Dispatcher(this), 20 21 /**#@+22 * @method23 */24 27 25 28 /** 26 29 * Returns the specified add on by the short name. 27 30 * 31 * @method get 28 32 * @param {String} n Add-on to look for. 29 33 * @return {tinymce.Theme/tinymce.Plugin} Theme or plugin add-on instance or undefined. … … 36 40 * Loads a language pack for the specified add-on. 37 41 * 42 * @method requireLangPack 38 43 * @param {String} n Short name of the add-on. 39 44 */ … … 54 59 * Adds a instance of the add-on by it's short name. 55 60 * 61 * @method add 56 62 * @param {String} id Short name/id for the add-on. 57 63 * @param {tinymce.Theme/tinymce.Plugin} o Theme or plugin to add. … … 69 75 * Loads an add-on from a specific url. 70 76 * 77 * @method load 71 78 * @param {String} n Short name of the add-on that gets loaded. 72 79 * @param {String} u URL to the add-on that will get loaded. … … 86 93 tinymce.ScriptLoader.add(u, cb, s); 87 94 } 88 89 /**#@-*/90 95 }); 91 96 … … 94 99 tinymce.ThemeManager = new tinymce.AddOnManager(); 95 100 }(tinymce)); 101 102 /** 103 * TinyMCE theme class. 104 * 105 * @class tinymce.Theme 106 */ 107 108 /** 109 * TinyMCE plugin class. 110 * 111 * @class tinymce.Plugin 112 */ -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/jscripts/tiny_mce/classes/ControlManager.js
r3104 r5300 1 1 /** 2 * $Id: ControlManager.js 1 045 2009-03-04 20:03:18Z spocke $2 * $Id: ControlManager.js 1190 2009-08-12 17:59:29Z spocke $ 3 3 * 4 4 * @author Moxiecode … … 10 10 var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, extend = tinymce.extend; 11 11 12 /** #@+13 * @classThis class is responsible for managing UI control instances. It's both a factory and a collection for the controls.14 * @ membertinymce.ControlManager12 /** 13 * This class is responsible for managing UI control instances. It's both a factory and a collection for the controls. 14 * @class tinymce.ControlManager 15 15 */ 16 16 tinymce.create('tinymce.ControlManager', { … … 20 20 * 21 21 * @constructor 22 * @method ControlManager 22 23 * @param {tinymce.Editor} ed TinyMCE editor instance to add the control to. 23 24 * @param {Object} s Optional settings object for the control manager. … … 41 42 }, 42 43 43 /**#@+44 * @method45 */46 47 44 /** 48 45 * Returns a control by id or undefined it it wasn't found. 49 46 * 47 * @method get 50 48 * @param {String} id Control instance name. 51 49 * @return {tinymce.ui.Control} Control instance or undefined. … … 58 56 * Sets the active state of a control by id. 59 57 * 58 * @method setActive 60 59 * @param {String} id Control id to set state on. 61 * @param { bool} s Active state true/false.60 * @param {Boolean} s Active state true/false. 62 61 * @return {tinymce.ui.Control} Control instance that got activated or null if it wasn't found. 63 62 */ … … 74 73 * Sets the dsiabled state of a control by id. 75 74 * 75 * @method setDisabled 76 76 * @param {String} id Control id to set state on. 77 * @param { bool} s Active state true/false.77 * @param {Boolean} s Active state true/false. 78 78 * @return {tinymce.ui.Control} Control instance that got disabled or null if it wasn't found. 79 79 */ … … 90 90 * Adds a control to the control collection inside the manager. 91 91 * 92 * @method add 92 93 * @param {tinymce.ui.Control} Control instance to add to collection. 93 94 * @return {tinymce.ui.Control} Control instance that got passed in. … … 109 110 * will be used. 110 111 * 112 * @method createControl 111 113 * @param {String} n Control name to create for example "separator". 112 114 * @return {tinymce.ui.Control} Control instance that got created and added. … … 139 141 * Creates a drop menu control instance by id. 140 142 * 143 * @method createDropMenu 141 144 * @param {String} id Unique id for the new dropdown instance. For example "some menu". 142 145 * @param {Object} s Optional settings object for the control. … … 178 181 if (tinymce.isIE) { 179 182 c.onShowMenu.add(function() { 183 // IE 8 needs focus in order to store away a range with the current collapsed caret location 184 ed.focus(); 185 180 186 bm = ed.selection.getBookmark(1); 181 187 }); … … 196 202 * depends on the use_native_selects settings state. 197 203 * 204 * @method createListBox 198 205 * @param {String} id Unique id for the new listbox instance. For example "styles". 199 206 * @param {Object} s Optional settings object for the control. … … 239 246 // Store bookmark on mousedown 240 247 Event.add(n, 'mousedown', function() { 241 ed.bookmark = ed.selection.getBookmark( 'simple');248 ed.bookmark = ed.selection.getBookmark(1); 242 249 }); 243 250 … … 259 266 * Creates a button control instance by id. 260 267 * 268 * @method createButton 261 269 * @param {String} id Unique id for the new button instance. For example "bold". 262 270 * @param {Object} s Optional settings object for the control. … … 305 313 * Creates a menu button control instance by id. 306 314 * 315 * @method createMenuButton 307 316 * @param {String} id Unique id for the new menu button instance. For example "menu1". 308 317 * @param {Object} s Optional settings object for the control. … … 320 329 * Creates a split button control instance by id. 321 330 * 331 * @method createSplitButton 322 332 * @param {String} id Unique id for the new split button instance. For example "spellchecker". 323 333 * @param {Object} s Optional settings object for the control. … … 364 374 * Creates a color split button control instance by id. 365 375 * 376 * @method createColorSplitButton 366 377 * @param {String} id Unique id for the new color split button instance. For example "forecolor". 367 378 * @param {Object} s Optional settings object for the control. … … 382 393 if (tinymce.isIE) 383 394 bm = ed.selection.getBookmark(1); 384 395 385 396 ed.execCommand(s.cmd, s.ui || false, v || s.value); 386 397 }; … … 413 424 // Fix for bug #1897785, #1898007 414 425 if (tinymce.isIE) { 426 c.onShowMenu.add(function() { 427 // IE 8 needs focus in order to store away a range with the current collapsed caret location 428 ed.focus(); 429 bm = ed.selection.getBookmark(1); 430 }); 431 415 432 c.onHideMenu.add(function() { 416 433 if (bm) { … … 427 444 * Creates a toolbar container control instance by id. 428 445 * 446 * @method createToolbar 429 447 * @param {String} id Unique id for the new toolbar container control instance. For example "toolbar1". 430 448 * @param {Object} s Optional settings object for the control. … … 448 466 * Creates a separator control instance. 449 467 * 468 * @method createSeparator 450 469 * @param {Object} cc Optional control class to use instead of the default one. 451 470 * @return {tinymce.ui.Control} Control instance that got created and added. … … 460 479 * Overrides a specific control type with a custom class. 461 480 * 481 * @method setControlType 462 482 * @param {string} n Name of the control to override for example button or dropmenu. 463 483 * @param {function} c Class reference to use instead of the default one. … … 467 487 return this._cls[n.toLowerCase()] = c; 468 488 }, 469 489 490 /** 491 * Destroy. 492 * 493 * @method destroy 494 */ 470 495 destroy : function() { 471 496 each(this.controls, function(c) { … … 475 500 this.controls = null; 476 501 } 477 478 /**#@-*/479 502 }); 480 503 })(tinymce); -
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/jscripts/tiny_mce/classes/Editor.js
r3104 r5300 1 1 /** 2 * $Id: Editor.js 1 045 2009-03-04 20:03:18Z spocke $2 * $Id: Editor.js 1228 2009-09-17 15:58:45Z spocke $ 3 3 * 4 4 * @author Moxiecode … … 12 12 var inArray = tinymce.inArray, grep = tinymce.grep, explode = tinymce.explode; 13 13 14 /**#@+ 15 * @class This class contains the core logic for a TinyMCE editor. 16 * @member tinymce.Editor 14 /** 15 * This class contains the core logic for a TinyMCE editor. 16 * 17 * @class tinymce.Editor 18 * @author Moxiecode 19 * @example 20 * // Add a class to all paragraphs in the editor. 21 * tinyMCE.activeEditor.dom.addClass(tinyMCE.activeEditor.dom.select('p'), 'someclass'); 22 * 23 * // Gets the current editors selection as text 24 * tinyMCE.activeEditor.selection.getContent({format : 'text'}); 25 * 26 * // Creates a new editor instance 27 * var ed = new tinymce.Editor('textareaid', { 28 * some_setting : 1 29 * }); 30 * 31 * // Select each item the user clicks on 32 * ed.onClick.add(function(ed, e) { 33 * ed.selection.select(e.target); 34 * }); 35 * 36 * ed.render(); 17 37 */ 18 38 tinymce.create('tinymce.Editor', { … … 21 41 * 22 42 * @constructor 23 * @me mber tinymce.Editor43 * @method Editor 24 44 * @param {String} id Unique id for the editor. 25 45 * @param {Object} s Optional settings string for the editor. 46 * @author Moxiecode 26 47 */ 27 48 Editor : function(id, s) { 28 49 var t = this; 29 50 51 /** 52 * Editor instance id, normally the same as the div/textarea that was replaced. 53 * 54 * @property id 55 * @type String 56 */ 30 57 t.id = t.editorId = id; 58 31 59 t.execCommands = {}; 32 60 t.queryStateCommands = {}; 33 61 t.queryValueCommands = {}; 62 63 /** 64 * State to force the editor to return false on a isDirty call. 65 * 66 * @property isNotDirty 67 * @type Boolean 68 */ 69 t.isNotDirty = false; 70 71 /** 72 * Name/Value object containting plugin instances. 73 * 74 * @property plugins 75 * @type Object 76 */ 34 77 t.plugins = {}; 35 78 36 79 // Add events to the editor 37 80 each([ 81 /** 82 * Fires before the initialization of the editor. 83 * 84 * @event onPreInit 85 * @param {tinymce.Editor} sender Editor instance. 86 * @see #onInit 87 */ 38 88 'onPreInit', 89 90 /** 91 * Fires before the initialization of the editor. 92 * 93 * @event onBeforeRenderUI 94 * @param {tinymce.Editor} sender Editor instance. 95 */ 39 96 'onBeforeRenderUI', 97 98 /** 99 * Fires after the rendering has completed. 100 * 101 * @event onPostRender 102 * @param {tinymce.Editor} sender Editor instance. 103 */ 40 104 'onPostRender', 105 106 /** 107 * Fires after the initialization of the editor is done. 108 * 109 * @event onInit 110 * @param {tinymce.Editor} sender Editor instance. 111 * @see #onPreInit 112 */ 41 113 'onInit', 114 115 /** 116 * Fires when the editor instance is removed from page. 117 * 118 * @event onRemove 119 * @param {tinymce.Editor} sender Editor instance. 120 */ 42 121 'onRemove', 122 123 /** 124 * Fires when the editor is activated. 125 * 126 * @event onActivate 127 * @param {tinymce.Editor} sender Editor instance. 128 */ 43 129 'onActivate', 130 131 /** 132 * Fires when the editor is deactivated. 133 * 134 * @event onDeactivate 135 * @param {tinymce.Editor} sender Editor instance. 136 */ 44 137 'onDeactivate', 138 139 /** 140 * Fires when something in the body of the editor is clicked. 141 * 142 * @event onClick 143 * @param {tinymce.Editor} sender Editor instance. 144 * @param {Event} evt W3C DOM Event instance. 145 */ 45 146 'onClick', 147 148 /** 149 * Fires when a registered event is intercepted. 150 * 151 * @event onEvent 152 * @param {tinymce.Editor} sender Editor instance. 153 * @param {Event} evt W3C DOM Event instance. 154 */ 46 155 'onEvent', 156 157 /** 158 * Fires when a mouseup event is intercepted inside the editor. 159 * 160 * @event onMouseUp 161 * @param {tinymce.Editor} sender Editor instance. 162 * @param {Event} evt W3C DOM Event instance. 163 */ 47 164 'onMouseUp', 165 166 /** 167 * Fires when a mousedown event is intercepted inside the editor. 168 * 169 * @event onMouseDown 170 * @param {tinymce.Editor} sender Editor instance. 171 * @param {Event} evt W3C DOM Event instance. 172 */ 48 173 'onMouseDown', 174 175 /** 176 * Fires when a dblclick event is intercepted inside the editor. 177 * 178 * @event onDblClick 179 * @param {tinymce.Editor} sender Editor instance. 180 * @param {Event} evt W3C DOM Event instance. 181 */ 49 182 'onDblClick', 183 184 /** 185 * Fires when a keydown event is intercepted inside the editor. 186 * 187 * @event onKeyDown 188 * @param {tinymce.Editor} sender Editor instance. 189 * @param {Event} evt W3C DOM Event instance. 190 */ 50 191 'onKeyDown', 192 193 /** 194 * Fires when a keydown event is intercepted inside the editor. 195 * 196 * @event onKeyUp 197 * @param {tinymce.Editor} sender Editor instance. 198 * @param {Event} evt W3C DOM Event instance. 199 */ 51 200 'onKeyUp', 201 202 /** 203 * Fires when a keypress event is intercepted inside the editor. 204 * 205 * @event onKeyPress 206 * @param {tinymce.Editor} sender Editor instance. 207 * @param {Event} evt W3C DOM Event instance. 208 */ 52 209 'onKeyPress', 210 211 /** 212 * Fires when a contextmenu event is intercepted inside the editor. 213 * 214 * @event onContextMenu 215 * @param {tinymce.Editor} sender Editor instance. 216 * @param {Event} evt W3C DOM Event instance. 217 */ 53 218 'onContextMenu', 219 220 /** 221 * Fires when a form submit event is intercepted. 222 * 223 * @event onSubmit 224 * @param {tinymce.Editor} sender Editor instance. 225 * @param {Event} evt W3C DOM Event instance. 226 */ 54 227 'onSubmit', 228 229 /** 230 * Fires when a form reset event is intercepted. 231 * 232 * @event onReset 233 * @param {tinymce.Editor} sender Editor instance. 234 * @param {Event} evt W3C DOM Event instance. 235 */ 55 236 'onReset', 237 238 /** 239 * Fires when a paste event is intercepted inside the editor. 240 * 241 * @event onPaste 242 * @param {tinymce.Editor} sender Editor instance. 243 * @param {Event} evt W3C DOM Event instance. 244 */ 56 245 'onPaste', 246 247 /** 248 * Fires when the Serializer does a preProcess on the contents. 249 * 250 * @event onPreProcess 251 * @param {tinymce.Editor} sender Editor instance. 252 * @param {Object} obj PreProcess object. 253 */ 57 254 'onPreProcess', 255 256 /** 257 * Fires when the Serializer does a postProcess on the contents. 258 * 259 * @event onPostProcess 260 * @param {tinymce.Editor} sender Editor instance. 261 * @param {Object} obj PreProcess object. 262 */ 58 263 'onPostProcess', 264 265 /** 266 * Fires before new contents is added to the editor. Using for example setContent. 267 * 268 * @event onBeforeSetContent 269 * @param {tinymce.Editor} sender Editor instance. 270 */ 59 271 'onBeforeSetContent', 272 273 /** 274 * Fires before contents is extracted from the editor using for example getContent. 275 * 276 * @event onBeforeGetContent 277 * @param {tinymce.Editor} sender Editor instance. 278 * @param {Event} evt W3C DOM Event instance. 279 */ 60 280 'onBeforeGetContent', 281 282 /** 283 * Fires after the contents has been added to the editor using for example onSetContent. 284 * 285 * @event onSetContent 286 * @param {tinymce.Editor} sender Editor instance. 287 */ 61 288 'onSetContent', 289 290 /** 291 * Fires after the contents has been extracted from the editor using for example getContent. 292 * 293 * @event onGetContent 294 * @param {tinymce.Editor} sender Editor instance. 295 */ 62 296 'onGetContent', 297 298 /** 299 * Fires when the editor gets loaded with contents for example when the load method is executed. 300 * 301 * @event onLoadContent 302 * @param {tinymce.Editor} sender Editor instance. 303 */ 63 304 'onLoadContent', 305 306 /** 307 * Fires when the editor contents gets saved for example when the save method is executed. 308 * 309 * @event onSaveContent 310 * @param {tinymce.Editor} sender Editor instance. 311 */ 64 312 'onSaveContent', 313 314 /** 315 * Fires when the user changes node location using the mouse or keyboard. 316 * 317 * @event onNodeChange 318 * @param {tinymce.Editor} sender Editor instance. 319 */ 65 320 'onNodeChange', 321 322 /** 323 * Fires when a new undo level is added to the editor. 324 * 325 * @event onChange 326 * @param {tinymce.Editor} sender Editor instance. 327 */ 66 328 'onChange', 329 330 /** 331 * Fires before a command gets executed for example "Bold". 332 * 333 * @event onBeforeExecCommand 334 * @param {tinymce.Editor} sender Editor instance. 335 */ 67 336 'onBeforeExecCommand', 337 338 /** 339 * Fires after a command is executed for example "Bold". 340 * 341 * @event onExecCommand 342 * @param {tinymce.Editor} sender Editor instance. 343 */ 68 344 'onExecCommand', 345 346 /** 347 * Fires when the contents is undo:ed. 348 * 349 * @event onUndo 350 * @param {tinymce.Editor} sender Editor instance. 351 * @param {Event} evt W3C DOM Event instance. 352 */ 69 353 'onUndo', 354 355 /** 356 * Fires when the contents is redo:ed. 357 * 358 * @event onRedo 359 * @param {tinymce.Editor} sender Editor instance. 360 * @param {Event} evt W3C DOM Event instance. 361 */ 70 362 'onRedo', 363 364 /** 365 * Fires when visual aids is enabled/disabled. 366 * 367 * @event onVisualAid 368 * @param {tinymce.Editor} sender Editor instance. 369 */ 71 370 'onVisualAid', 371 372 /** 373 * Fires when the progress throbber is shown above the editor. 374 * 375 * @event onSetProgressState 376 * @param {tinymce.Editor} sender Editor instance. 377 */ 72 378 'onSetProgressState' 73 379 ], function(e) { … … 75 381 }); 76 382 77 // Default editor config 383 /** 384 * Name/value collection with editor settings. 385 * 386 * @property settings 387 * @type Object 388 */ 78 389 t.settings = s = extend({ 79 390 id : id, … … 110 421 directionality : 'ltr', 111 422 forced_root_block : 'p', 112 valid_elements : '@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p [align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',423 valid_elements : '@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big', 113 424 hidden_input : 1, 114 425 padd_empty_editor : 1, … … 122 433 }, s); 123 434 124 // Setup URIs 435 /** 436 * URI object to document configured for the TinyMCE instance. 437 * 438 * @property documentBaseURI 439 * @type tinymce.util.URI 440 */ 125 441 t.documentBaseURI = new tinymce.util.URI(s.document_base_url || tinymce.documentBaseURL, { 126 442 base_uri : tinyMCE.baseURI 127 443 }); 444 445 /** 446 * URI object to current document that holds the TinyMCE editor instance. 447 * 448 * @property baseURI 449 * @type tinymce.util.URI 450 */ 128 451 t.baseURI = EditorManager.baseURI; 129 452 … … 132 455 }, 133 456 134 /**#@+135 * @method136 */137 138 457 /** 139 458 * Renderes the editor/adds it to the page. 459 * 460 * @method render 140 461 */ 141 462 render : function(nst) { … … 169 490 DOM.insertAfter(DOM.create('input', {type : 'hidden', name : id}), id); 170 491 492 /** 493 * Window manager reference, use this to open new windows and dialogs. 494 * 495 * @property windowManager 496 * @type tinymce.WindowManager 497 */ 171 498 if (tinymce.WindowManager) 172 499 t.windowManager = new tinymce.WindowManager(t); … … 217 544 t.isNotDirty = 1; 218 545 219 return t his._mceOldSubmit(this);546 return t.formElement._mceOldSubmit(t.formElement); 220 547 }; 221 548 } … … 250 577 }; 251 578 252 // Load compat2x first 253 if (s.plugins.indexOf('compat2x') != -1) { 254 PluginManager.load('compat2x', 'plugins/compat2x/editor_plugin' + tinymce.suffix + '.js'); 255 sl.loadQueue(loadScripts); 256 } else 257 loadScripts(); 579 loadScripts(); 258 580 }, 259 581 … … 262 584 * all plugins/themes and language packs are loaded by the rendered method. 263 585 * This method will setup the iframe and create the theme and plugin instances. 586 * 587 * @method init 264 588 */ 265 589 init : function() { … … 268 592 EditorManager.add(t); 269 593 270 // Create theme 594 /** 595 * Reference to the theme instance that was used to generate the UI. 596 * 597 * @property theme 598 * @type tinymce.Theme 599 */ 271 600 if (s.theme) { 272 601 s.theme = s.theme.replace(/-/, ''); … … 303 632 s.popup_css += ',' + t.documentBaseURI.toAbsolute(s.popup_css_add); 304 633 305 // Setup control factory 634 /** 635 * Control manager instance for the editor. Will enables you to create new UI elements and change their states etc. 636 * 637 * @property controlManager 638 * @type tinymce.ControlManager 639 */ 306 640 t.controlManager = new tinymce.ControlManager(t); 641 642 /** 643 * Undo manager instance, responsible for handling undo levels. 644 * 645 * @property undoManager 646 * @type tinymce.UndoManager 647 */ 307 648 t.undoManager = new tinymce.UndoManager(t); 308 649 … … 384 725 // #endif 385 726 727 // User specified a document.domain value 728 if (document.domain && location.hostname != document.domain) 729 tinymce.relaxedDomain = document.domain; 730 386 731 // Resize editor 387 732 DOM.setStyles(o.sizeContainer || o.editorContainer, { … … 394 739 h = 100; 395 740 396 t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="' + t.documentBaseURI.getURI() + '" />'; 741 t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml">'; 742 743 // We only need to override paths if we have to 744 // IE has a bug where it remove site absolute urls to relative ones if this is specified 745 if (s.document_base_url != tinymce.documentBaseURL) 746 t.iframeHTML += '<base href="' + t.documentBaseURI.getURI() + '" />'; 747 397 748 t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; 398 749 … … 448 799 * It will fill the iframe with contents, setups DOM and selection objects for the iframe. 449 800 * This method should not be called directly. 801 * 802 * @method setupIframe 450 803 */ 451 804 setupIframe : function() { … … 482 835 } 483 836 484 // Setup objects 485 t.dom = new tinymce.DOM.DOMUtils(t.getDoc(), { 837 /** 838 * DOM instance for the editor. 839 * 840 * @property dom 841 * @type tinymce.dom.DOMUtils 842 */ 843 t.dom = new tinymce.dom.DOMUtils(t.getDoc(), { 486 844 keep_values : true, 487 845 url_converter : t.convertURL, … … 493 851 }); 494 852 495 t.serializer = new tinymce.dom.Serializer({ 496 entity_encoding : s.entity_encoding, 497 entities : s.entities, 853 /** 854 * DOM serializer for the editor. 855 * 856 * @property serializer 857 * @type tinymce.dom.Serializer 858 */ 859 t.serializer = new tinymce.dom.Serializer(extend(s, { 498 860 valid_elements : s.verify_html === false ? '*[*]' : s.valid_elements, 499 extended_valid_elements : s.extended_valid_elements,500 valid_child_elements : s.valid_child_elements,501 invalid_elements : s.invalid_elements,502 fix_table_elements : s.fix_table_elements,503 fix_list_elements : s.fix_list_elements,504 fix_content_duplication : s.fix_content_duplication,505 convert_fonts_to_spans : s.convert_fonts_to_spans,506 font_size_classes : s.font_size_classes,507 font_size_style_values : s.font_size_style_values,508 apply_source_formatting : s.apply_source_formatting,509 remove_linebreaks : s.remove_linebreaks,510 element_format : s.element_format,511 861 dom : t.dom 512 }); 513 862 })); 863 864 /** 865 * Selection instance for the editor. 866 * 867 * @property selection 868 * @type tinymce.dom.Selection 869 */ 514 870 t.selection = new tinymce.dom.Selection(t.dom, t.getWin(), t.serializer); 871 515 872 t.forceBlocks = new tinymce.ForceBlocks(t, { 516 873 forced_root_block : s.forced_root_block … … 543 900 if (s.nowrap) 544 901 t.getBody().style.whiteSpace = "nowrap"; 545 546 if (s.auto_resize)547 t.onNodeChange.add(t.resizeToContent, t);548 902 549 903 if (s.custom_elements) { … … 566 920 t.onPostProcess.add(function(ed, o) { 567 921 if (o.set) 568 handleCustom(ed, o) 922 handleCustom(ed, o); 569 923 }); 570 924 } … … 695 1049 } 696 1050 697 // Fix gecko link bug, when a link is placed at the end of block elements there is698 // no way to move the caret behind the link. This fix adds a bogus br element after the link699 1051 if (isGecko) { 1052 // Fix gecko link bug, when a link is placed at the end of block elements there is 1053 // no way to move the caret behind the link. This fix adds a bogus br element after the link 700 1054 function fixLinks(ed, o) { 701 1055 each(ed.dom.select('a'), function(n) { … … 713 1067 714 1068 t.onSetContent.add(t.selection.onSetContent.add(fixLinks)); 715 } 716 717 if (isGecko && !s.readonly){718 try {719 // Design mode must be set here once again to fix a bug where720 // Ctrl+A/Delete/Backspace didn't work if the editor was added using mceAddControl then removed then added again721 d.designMode = 'Off';722 d.designMode = 'On';723 } catch (ex) {724 // Will fail on Gecko if the editor is placed in an hidden container element725 // The design mode will be set ones the editor is focused1069 1070 if (!s.readonly) { 1071 try { 1072 // Design mode must be set here once again to fix a bug where 1073 // Ctrl+A/Delete/Backspace didn't work if the editor was added using mceAddControl then removed then added again 1074 d.designMode = 'Off'; 1075 d.designMode = 'On'; 1076 } catch (ex) { 1077 // Will fail on Gecko if the editor is placed in an hidden container element 1078 // The design mode will be set ones the editor is focused 1079 } 726 1080 } 727 1081 } … … 769 1123 /** 770 1124 * Sets up the contentEditable mode. 1125 * 1126 * @method setupContentEditable 771 1127 */ 772 1128 setupContentEditable : function() { … … 781 1137 782 1138 DOM.hide(e); 783 e.contentEditable = t rue;1139 e.contentEditable = t.getParam('content_editable_state', true); 784 1140 DOM.show(e); 785 1141 … … 788 1144 789 1145 // Setup objects 790 t.dom = new tinymce. DOM.DOMUtils(t.getDoc(), {1146 t.dom = new tinymce.dom.DOMUtils(t.getDoc(), { 791 1147 keep_values : true, 792 1148 url_converter : t.convertURL, … … 848 1204 }); 849 1205 850 t.load({initial : true, format : (s.cleanup_on_startup ? 'html' : 'raw')});1206 //t.load({initial : true, format : (s.cleanup_on_startup ? 'html' : 'raw')}); 851 1207 t.startContent = t.getContent({format : 'raw'}); 852 1208 t.undoManager.add({initial : true}); … … 866 1222 if (isIE) { 867 1223 // Store away selection 868 Event.add(t.getElement(), 'beforedeactivate', function() {1224 t.dom.bind(t.getElement(), 'beforedeactivate', function() { 869 1225 t.lastSelectionBookmark = t.selection.getBookmark(1); 870 1226 }); … … 888 1244 * it will also place DOM focus inside the editor. 889 1245 * 890 * @param {bool} sf Skip DOM focus. Just set is as the active editor. 1246 * @method focus 1247 * @param {Boolean} sf Skip DOM focus. Just set is as the active editor. 891 1248 */ 892 1249 focus : function(sf) { … … 906 1263 if (tinymce.isWebKit) 907 1264 t.getWin().focus(); 908 else 909 t.getElement().focus(); 1265 else { 1266 if (tinymce.isIE) 1267 t.getElement().setActive(); 1268 else 1269 t.getElement().focus(); 1270 } 910 1271 } 911 1272 … … 927 1288 * There new event model is a better way to add callback so this method might be removed in the future. 928 1289 * 1290 * @method execCallback 929 1291 * @param {String} n Name of the callback to execute. 930 1292 * @return {Object} Return value passed from callback function. … … 957 1319 * a key mathcin the input. 958 1320 * 1321 * @method translate 959 1322 * @param {String} s String to translate by the language pack data. 960 1323 * @return {String} Translated string. … … 974 1337 * Returns a language pack item by name/key. 975 1338 * 1339 * @method getLang 976 1340 * @param {String} n Name/key to get from the language pack. 977 1341 * @param {String} dv Optional default value to retrive. … … 984 1348 * Returns a configuration parameter by name. 985 1349 * 1350 * @method getParam 986 1351 * @param {String} n Configruation parameter to retrive. 987 1352 * @param {String} dv Optional default value to return. … … 1017 1382 * need to update the UI states or element path etc. 1018 1383 * 1384 * @method nodeChanged 1019 1385 * @param {Object} o Optional object to pass along for the node changed event. 1020 1386 */ … … 1039 1405 * powerfull if you need more control use the ControlManagers factory methods instead. 1040 1406 * 1407 * @method addButton 1041 1408 * @param {String} n Button name to add. 1042 1409 * @param {Object} s Settings object with title, cmd etc. … … 1053 1420 * The command that you add can be executed with execCommand. 1054 1421 * 1422 * @method addCommand 1055 1423 * @param {String} n Command name to add/override. 1056 1424 * @param {function} f Function to execute when the command occurs. … … 1065 1433 * The command that you add can be executed with queryCommandState function. 1066 1434 * 1435 * @method addQueryStateHandler 1067 1436 * @param {String} n Command name to add/override. 1068 1437 * @param {function} f Function to execute when the command state retrival occurs. … … 1077 1446 * The command that you add can be executed with queryCommandValue function. 1078 1447 * 1448 * @method addQueryValueHandler 1079 1449 * @param {String} n Command name to add/override. 1080 1450 * @param {function} f Function to execute when the command value retrival occurs. … … 1088 1458 * Adds a keyboard shortcut for some command or function. 1089 1459 * 1460 * @method addShortcut 1090 1461 * @param {String} pa Shortcut pattern. Like for example: ctrl+alt+o. 1091 1462 * @param {String} desc Text description for the command. 1092 1463 * @param {String/Function} cmd_func Command name string or function to execute when the key is pressed. 1093 1464 * @param {Object} sc Optional scope to execute the function in. 1094 * @return { bool} true/false state if the shortcut was added or not.1465 * @return {Boolean} true/false state if the shortcut was added or not. 1095 1466 */ 1096 1467 addShortcut : function(pa, desc, cmd_func, sc) { … … 1154 1525 * return true it will handle the command as a internal browser command. 1155 1526 * 1527 * @method execCommand 1156 1528 * @param {String} cmd Command name to execute, for example mceLink or Bold. 1157 * @param { bool} ui True/false state if a UI (dialog) should be presented or not.1529 * @param {Boolean} ui True/false state if a UI (dialog) should be presented or not. 1158 1530 * @param {mixed} val Optional command value, this can be anything. 1159 1531 * @param {Object} a Optional arguments object. 1160 * @return { bool} True/false if the command was executed or not.1532 * @return {Boolean} True/false if the command was executed or not. 1161 1533 */ 1162 1534 execCommand : function(cmd, ui, val, a) { … … 1226 1598 * Returns a command specific state, for example if bold is enabled or not. 1227 1599 * 1600 * @method queryCommandState 1228 1601 * @param {string} c Command to query state from. 1229 * @return { bool} Command specific state, for example if bold is enabled or not.1602 * @return {Boolean} Command specific state, for example if bold is enabled or not. 1230 1603 */ 1231 1604 queryCommandState : function(c) { … … 1261 1634 * Returns a command specific value, for example the current font size. 1262 1635 * 1636 * @method queryCommandValue 1263 1637 * @param {string} c Command to query value from. 1264 1638 * @return {Object} Command specific value, for example the current font size. … … 1295 1669 /** 1296 1670 * Shows the editor and hides any textarea/div that the editor is supposed to replace. 1671 * 1672 * @method show 1297 1673 */ 1298 1674 show : function() { … … 1306 1682 /** 1307 1683 * Hides the editor and shows any textarea/div that the editor is supposed to replace. 1684 * 1685 * @method hide 1308 1686 */ 1309 1687 hide : function() { … … 1323 1701 * Returns true/false if the editor is hidden or not. 1324 1702 * 1325 * @return {bool} True/false if the editor is hidden or not. 1703 * @method isHidden 1704 * @return {Boolean} True/false if the editor is hidden or not. 1326 1705 */ 1327 1706 isHidden : function() { … … 1333 1712 * This is ideal for asycronous operations like an AJAX save call. 1334 1713 * 1335 * @param {bool} b Boolean state if the progress should be shown or hidden. 1714 * @method setProgressState 1715 * @param {Boolean} b Boolean state if the progress should be shown or hidden. 1336 1716 * @param {Number} ti Optional time to wait before the progress gets shown. 1337 1717 * @param {Object} o Optional object to pass to the progress observers. 1338 * @return { bool} Same as the input state.1718 * @return {Boolean} Same as the input state. 1339 1719 */ 1340 1720 setProgressState : function(b, ti, o) { … … 1342 1722 1343 1723 return b; 1344 },1345 1346 /**1347 * Resizes the editor to the current contents width and height.1348 */1349 resizeToContent : function() {1350 var t = this;1351 1352 DOM.setStyle(t.id + "_ifr", 'height', t.getBody().scrollHeight);1353 1724 }, 1354 1725 … … 1358 1729 * so all events etc that method has will get dispatched as well. 1359 1730 * 1731 * @method load 1360 1732 * @param {Object} o Optional content object, this gets passed around through the whole load process. 1361 1733 * @return {String} HTML string that got set into the editor. … … 1386 1758 * so all events etc that method has will get dispatched as well. 1387 1759 * 1760 * @method save 1388 1761 * @param {Object} o Optional content object, this gets passed around through the whole save process. 1389 1762 * @return {String} HTML string that got set into the textarea/div. … … 1436 1809 * the different cleanup rules options. 1437 1810 * 1811 * @method setContent 1438 1812 * @param {String} h Content to set to editor, normally HTML contents but can be other formats as well. 1439 1813 * @param {Object} o Optional content object, this gets passed around through the whole set process. … … 1475 1849 * the different cleanup rules options. 1476 1850 * 1851 * @method getContent 1477 1852 * @param {Object} o Optional content object, this gets passed around through the whole get process. 1478 1853 * @return {String} Cleaned content string, normally HTML contents. … … 1506 1881 * Returns true/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. 1507 1882 * 1508 * @return {bool} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. 1883 * @method isDirty 1884 * @return {Boolean} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. 1509 1885 */ 1510 1886 isDirty : function() { … … 1518 1894 * all the elements added to the page for the editor. Such as UI, iframe etc. 1519 1895 * 1896 * @method getContainer 1520 1897 * @return {Element} HTML DOM element for the editor container. 1521 1898 */ … … 1533 1910 * holds the iframe or the editable element. 1534 1911 * 1912 * @method getContentAreaContainer 1535 1913 * @return {Element} HTML DOM element for the editor area container. 1536 1914 */ … … 1542 1920 * Returns the target element/textarea that got replaced with a TinyMCE editor instance. 1543 1921 * 1922 * @method getElement 1544 1923 * @return {Element} HTML DOM element for the replaced element. 1545 1924 */ … … 1551 1930 * Returns the iframes window object. 1552 1931 * 1932 * @method getWin 1553 1933 * @return {Window} Iframe DOM window object. 1554 1934 */ … … 1569 1949 * Returns the iframes document object. 1570 1950 * 1951 * @method getDoc 1571 1952 * @return {Document} Iframe DOM document object. 1572 1953 */ … … 1587 1968 * Returns the iframes body element. 1588 1969 * 1970 * @method getBody 1589 1971 * @return {Element} Iframe body element. 1590 1972 */ … … 1598 1980 * manipulation functions. 1599 1981 * 1982 * @method convertURL 1600 1983 * @param {string} u URL to convert. 1601 1984 * @param {string} n Attribute name src, href etc. … … 1627 2010 * Adds visual aid for tables, anchors etc so they can be more easily edited inside the editor. 1628 2011 * 2012 * @method addVisual 1629 2013 * @param {Element} e Optional root element to loop though to find tables etc that needs the visual aid. 1630 2014 */ … … 1672 2056 /** 1673 2057 * Removes the editor from the dom and EditorManager collection. 2058 * 2059 * @method remove 1674 2060 */ 1675 2061 remove : function() { … … 1694 2080 * but you can also call it directly if you know what you are doing. 1695 2081 * 1696 * @param {bool} s Optional state if the destroy is an automatic destroy or user called one. 2082 * @method destroy 2083 * @param {Boolean} s Optional state if the destroy is an automatic destroy or user called one. 1697 2084 */ 1698 2085 destroy : function(s) { … … 1780 2167 if (tinymce.isOpera) { 1781 2168 // Fake contextmenu on Opera 1782 Event.add(t.getBody(), 'mousedown', function(e) {2169 t.dom.bind(t.getBody(), 'mousedown', function(e) { 1783 2170 if (e.ctrlKey) { 1784 2171 e.fakeType = 'contextmenu'; … … 1787 2174 }); 1788 2175 } else 1789 Event.add(t.getBody(), k, eventHandler);2176 t.dom.bind(t.getBody(), k, eventHandler); 1790 2177 break; 1791 2178 1792 2179 case 'paste': 1793 Event.add(t.getBody(), k, function(e) { 1794 var tx, h, el, r; 1795 1796 // Get plain text data 1797 if (e.clipboardData) 1798 tx = e.clipboardData.getData('text/plain'); 1799 else if (tinymce.isIE) 1800 tx = t.getWin().clipboardData.getData('Text'); 1801 1802 // Get HTML data 1803 /*if (tinymce.isIE) { 1804 el = DOM.add(DOM.doc.body, 'div', {style : 'visibility:hidden;overflow:hidden;position:absolute;width:1px;height:1px'}); 1805 r = DOM.doc.body.createTextRange(); 1806 r.moveToElementText(el); 1807 r.execCommand('Paste'); 1808 h = el.innerHTML; 1809 DOM.remove(el); 1810 }*/ 1811 1812 eventHandler(e, {text : tx, html : h}); 2180 t.dom.bind(t.getBody(), k, function(e) { 2181 eventHandler(e); 1813 2182 }); 1814 2183 break; … … 1816 2185 case 'submit': 1817 2186 case 'reset': 1818 Event.add(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler);2187 t.dom.bind(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler); 1819 2188 break; 1820 2189 1821 2190 default: 1822 Event.add(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler);2191 t.dom.bind(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler); 1823 2192 } 1824 2193 }); 1825 2194 1826 Event.add(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) {2195 t.dom.bind(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) { 1827 2196 t.focus(true); 1828 2197 }); … … 1836 2205 }; 1837 2206 1838 Event.add(t.getBody(), 'click', doFocus);1839 Event.add(t.getBody(), 'keydown', doFocus);2207 t.dom.bind(t.getBody(), 'click', doFocus); 2208 t.dom.bind(t.getBody(), 'keydown', doFocus); 1840 2209 } 1841 2210 … … 1855 2224 });*/ 1856 2225 1857 Event.add(t.getDoc(), 'DOMNodeInserted', function(e) {2226 t.dom.bind(t.getDoc(), 'DOMNodeInserted', function(e) { 1858 2227 var v; 1859 2228 … … 1992 2361 // Fix so resize will only update the width and height attributes not the styles of an image 1993 2362 // It will also block mceItemNoResize items 1994 Event.add(t.getDoc(), 'controlselect', function(e) {2363 t.dom.bind(t.getDoc(), 'controlselect', function(e) { 1995 2364 var re = t.resizeInfo, cb; 1996 2365 … … 2002 2371 2003 2372 if (re) 2004 Event.remove(re.node, re.ev, re.cb);2373 t.dom.unbind(re.node, re.ev, re.cb); 2005 2374 2006 2375 if (!t.dom.hasClass(e, 'mceItemNoResize')) { 2007 2376 ev = 'resizeend'; 2008 cb = Event.add(e, ev, function(e) {2377 cb = t.dom.bind(e, ev, function(e) { 2009 2378 var v; 2010 2379 … … 2023 2392 } else { 2024 2393 ev = 'resizestart'; 2025 cb = Event.add(e, 'resizestart', Event.cancel, Event);2394 cb = t.dom.bind(e, 'resizestart', Event.cancel, Event); 2026 2395 } 2027 2396 … … 2043 2412 } 2044 2413 }); 2414
