Custom Query

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (701 - 800 of 1835)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Ticket Summary Keywords Owner Type Status Priority
#2426 IE: Switching between two editors with shared toolbar does not work properly Confirmed IE Review+ Martin Kou Bug closed Normal
Description

When using two FCKeditor instances with a shared toolbar, it is not possible to directly switch from one instance to another. One has to click either outside the editors, then on the second instance, or twice on the second instance.

To recreate:

  1. Open sample10.html or sample11.html in IE
  2. Select the first instance of FCKeditor
  3. Select the second instance

When you select the second instance, the toolbar is deactivated, and the cursor remains in the first instance. You have to click twice on the second instance to properly activate it.

The fix of #2376 is the cause of the regression. In my view, it would be best to revert that change, since it makes the use of shared toolbar practically impossible.

#2437 V3: Environment and browser information Confirmed V3ProtoBase Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

We should have an object in API that could be used to identify the current browser and special OSs, like Mac. It should be compatible with our Browser Compatibility Specifications.

#2439 PasteFromWord inserts into current <p> (FireFox3) Confirmed FireFox Bug closed Normal
Description

When using PasteFromWord dialog, the content is inserted into the current paragraph, i.e. <p> <h1>Heading from Word</h1> <p>Normal text from Word.</p> <p>&nbsp;</p> </p>

This was using FireFox 3.0.1 on Windows XP (5.1 SP2). It worked fine in IE7 (i.e. the content goes after the current paragraph)

Note if you click [Source] four times the HTML is correctly formatted.

#2441 V3: Samples Confirmed V3ProtoStruct Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

We must have clear samples that show most of the editor features. These samples are often used as references when integrating the editor in the real world.

#2442 V3: trunk folders/files structure Confirmed V3ProtoStruct Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The CKEditor prototype presents the following folder structure:

  • _dev: development tools. We should not have files in this folder directly. Each tool should have its own folder.
    • _dev/_thirdparty: contains all third party code used by our tools. We should not have then in other folders.
  • _docs: destined to hold the documentation. Currently the JavaScript API is rendered in the "api" folder under it.
  • _samples: contains all samples. All JavaScript samples are placed in this folder directly. Server side sample will have their own folder, like "php" or "asp".
  • _source: contains the source code.
    • _source/adapters: destined to contain all adapters to JavaScript libraries, like jQuery.
    • _source/core: the core code.
    • _source/lang: destined to hold all language files.
    • _source/plugins: the core plugins code.
    • _source/skins: the skins.
    • _source/tests: the automated tests for the core code.
    • _source/themes: the themes.

Other than the above directories, other basic files are placed in the root:

  • ckeditor_source.js: the main file to be included in the pages when using the editor. This is the source code version, which runs using the _source files.
  • ckeditor_basic_source.js: the file to be included in the pages when using the editor, which contains the basic code for editor integration (this will be explained in another ticket). This is the source code version, which runs using the _source files.
  • .htaccess: specific htaccess entries for the distribution folder. This files has been copied from FCKeditor.
  • config.js: custom configurations file.
  • contents.css: the css file for the editor contents.
  • CHANGES.html: the changelog file.
  • INSTALL.html: basic installation instructions.
  • LICENSE.html: licensing information.
  • README.html: some text giving an overall presentation about the code and the project.

Also, in the root folder, we'll find all integration files, named "ckeditor.ext".

When "building" the development code, several transformations will happen to this structure. The "adapters", "lang", "plugins", "skins" and "themes" folders from _source will have their relative "compiled" versions in the root. The "ckeditor.js" and "ckeditor_basic.js" files will be also created at that point.

#2444 V3: Utility functions Confirmed V3ProtoBase Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The CKEditor prototype defines the CKEDITOR.tools object, which holds several utility functions using all around our code.

Function under this object must be totally generic, independent of other objects and classes.

#2445 V3: Private variable and functions in the code Confirmed V3ProtoStruct Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

Whenever possible, the CKEditor prototype code defines private stuff inside closures, so the CKEDITOR object and the window scope remain clean.

In some cases, specially on classes, there are private things that we to be defined "per instance". There is no way to define those privates on closures, so those kinds of things must be defined as properties in the objects itself.

To have a clean code, making also the DOM inspection clearer, a standard has been used in the prototype. All private things are defined under a single property called "_" (underscore).

To have an overview of the effect we have with it, just open any of the samples and select the DOM tab in FireBug. Then, navigate through the CKEDITOR object tree. You will find things like CKEDITOR._ and CKEDITOR.plugins._.

#2446 V3: Event System Confirmed V3ProtoBase Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The new event system must be coded, as defined in the Event Driven page in the ODE docs.

#2447 V3: DOM abstraction Confirmed V3ProtoBase Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

We have talked about DOM abstraction in the ODE docs. We should have a clear implementation of this layer in our code.

#2448 V3: XML handling object Confirmed V3ProtoBase Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The CKEditor prototype defines the CKEDITOR.xml class in the "core/xml.js" file, which can be used to handle XML data.

This class is not used by the core code right now, only by the template system for the samples.

#2449 V3: Ajax like data requests handling object Confirmed V3ProtoBase Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The CKEditor prototype defines the CKEDITOR.ajax class in the "core/ajax.js" file, which can be used to handle loading of data in the Ajax style.

This class is not used by the core code right now, only by the template system for the samples.

#2451 Basque language file update Confirmed Review+ Frederico Caldeira Knabben Bug closed Normal
Description

... Basque language file update

#2453 V3: Code loading Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The code loading must be implemented as described at Loading and Startup in the V3 documentation

#2454 V3: Instances creation Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The CKEditor prototype implements a few ways to create editor instances. All methods are defined under the CKEDITOR object, and are available in the "basic" code version.

  • CKEDITOR.replace(): replaces a textarea or a div with an editor instance. See the replacebycode.html and divreplace.html samples.
  • CKEDITOR.replaceAll(): replace all testareas in the page. It is possible to pass a class name to be used to filter selected textareas, or even a function that asserts the replacement.
  • CKEDITOR.appendTo(): creates and editor instance inside a DOM element. There is no field associated to the editor in this case. See the ajax.html sample.
  • CKEDITOR.replaceClass: if CKEDITOR.replaceByClassEnabled is enabled, all textareas with class name that match CKEDITOR.replaceClass will be automaticaly replaced. This is enabled by default, for the class name "ckeditor". See the replacebyclass.html sample.

All function return the created editor instance, which can be used to manipulate it, like adding event listeners.

#2456 V3: Editor instances Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

In the CKEditor prototype, an editor instance is represented by the CKEDITOR.editor class, which is defined in two files, "core/editor_basic.js" and "core/editor.js".

To create and editor instance, the following information can be passed to the editor class constructor:

  • Instance configurations: an object containing configurations specific for this instance.
  • The linked element: the element which will be used to create the instance.
  • The linked element mode: the way the element is linked to the editor. It indicates if the editor will replace the element, or be appended inside of it.

In any case, the editor class constructor is not to be called directly by end users. They will be using the functions available at CKEDITOR for that, as explained in #2454.

When an instance is create in the page, the following things happen, in this order:

  • If the "basic" code has been loaded, the editor is not created immediately. It is placed in a queue, and the full code is loaded. As soon as it is available, all queued editors are initialized (the _init() function definition in editor_basic.js and editor.js).
  • The instance configuration is them loaded (initConfig).
  • The instance plugins are loaded and initialized (loadPlugins).
  • The instance skin and theme are loaded (loadSkinTheme).
  • The theme builds the instance interface. At this point, the editor is ready to be used.

All the above points will be explained in detail in other tickets.

#2457 V3: Configurations Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

In the CKEditor prototype, the CKEDITOR.config object holds all configurations (core/config.js). It means that the default settings will be included in the core code, not anymore in an external file. It will also mean that we'll be able to fully document each setting in the code.

Also, not all settings are defined in that file. Each plugin that has custom configurations can extend this object to its needs. See "plugins/toolbar" for an example.

When creating an editor instance, the <instance>.config property is created. It is an empty object, which prototype is CKEDITOR.config. It means that additions to CKEDITOR.config will be automatically propagated to all editor instances, still making it possible to override them with custom settings for each instance.

Then, for each instance, the <instance>.config.customConfig setting is checked. If defined, the external file is downloaded. That file must define the CKEDITOR.editorConfig function, which overrides configurations in the editor instance. By default, the editor is configured to download the config.js, from the root of the distribution.

Once the custom configuration file is downloaded, its CKEDITOR.editorConfig function is "cached". If other editor instances use the same file, it will not be downloaded anymore, and the cached function will be used.

Then, the <instance>.config.customConfig is checked again. The above process repeats until no more configuration files are to be downloaded.

There are two ways to avoid loading external configuration files. The "core/config.js" file can be edited, setting customConfig to '' (empty). The core code must be packed again at this point. Or, when creating the editor instance, the customConfig configuration can be set to '' (empty) for the instance. This is the only inline setting that is considered beforehand.

Finally, once all external files are downloaded, overriding the global settings, the inline settings are merged into the <instance>.config object, overriding any of the previous settings.

To summarize:

  1. <instance>.config is created from CKEDITOR.config.
  2. If the inline setting for customConfig is defined, it overrides <instance>.config.customConfig.
  3. The external configuration files are loaded, overriding settings in <instance>.config.
  4. The inline settings override settings in <instance>.config.
#2458 V3: Plugins Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The CKEditor prototype is strongly based on plugins. The intention is reducing the core code to the minimum, leaving all other features isolated on plugins. It makes it possible to create customized distributions containing only specific sets of features.

When the instance is created, all plugins listed in the <instance>.config.plugins setting are downloaded. Each plugin should call the CKEDITOR.plugins.add() function to register its "plugin definition". This definition is an object containing properties, as documented in the "core/plugindefinition.js" file.

As soon as all plugins are downloaded, the "beforeInit" and "init" function in their definitions are called, passing the editor instance to them. In this way, each plugin can make instance manipulations.

Each plugin is downloaded once, and shared among all instances. But, the "beforeInit" and "init" functions are only called for those instances which have the plugin defined in the settings. The plugins download and caching is managed by the CKEDITOR.resourceManager class (core/resourcemanager.js), which is used also by the theme system, and in the future by the adapters.

All plugins are downloaded from the "plugins" folder. The plugin name in the settings must match the plugin folder name. Each plugin must have the plugin.js file defined.

It is possible to configure the editor to download plugins from other folders. This can be done inpage, or in the custom configuration file, by calling the CKEDITOR.plugins.addExternal function. For example:

CKEDITOR.plugins.addExternal( 'myplugin', '/customplugin/' );

In the above case, if an instance uses the "myplugin" plugin, the "/customplugin/plugin.js" file will be downloaded.

Plugins may have dependencies which can be expressed by the "requires" property in their definitions. All required plugins are downloaded and executed. Check the "htmldataprocessor" for an example.

#2459 V3: Skins Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

In the CKEditor prototype, an editor skin is simply a set of CSS files which are loaded in the executing page. The "_source/skins/default" folder contains an example.

The main skin file is named "editor.css". This file contains the CSS definitions for the editor interface. We may also have "dialog.css", containing dialog specific definitions.

In the trunk/development version, editor.css contains a series of @import declarations. This makes the development code better organized. The release instead will have just one file, containing the minified version of all files.

Class names

Considering that all CSS definitions will be now loaded in the main page where the editor runs, we need ways to isolate them from other styles used in the page. Because of this, all classes used in the editor interface must be prefixed with "cke_".

We must also consider that we may have two editor instances using different skins in the same page. For that, the entire editor interface is defined inside a container element which has the "cke_skin_<skinName>" class. Therefore, all CSS definitions for a skin must go under ".cke_skin_<skinName>".

Reset

To be safe with the styles defined in the page, all skins must define a "CSS reset" set of styles, which clears those CSS properties that could interfere in the editor interface. For an example, see "skins/default/reset.css".

Instance configuration

The <instance>.config.skin setting contains the name of the skin to be used for a specific editor instance. The skin name must match the folder name in the "skins" folder. The skin files are downloaded only once, and shared among all instances using that same skin.

#2460 V3: Themes Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The CKEditor prototype introduces the concept of "theme".

The theme is the object responsible for building the editor interface structure. Each editor instance has its theme name in the <instance>.config.theme setting. It must match a folder name in the "themes" folder.

A theme is defined in a file named "theme.js". The theme code must call the CKEDITOR.themes.add() function to register the "theme definition". The definition must define the "build" and "destroy" functions. See "_source/themes/default/theme.js" for an example.

The "build" function injects the editor interface in the page. It defines the HTML structure to be used by the interface, and one or more "theme spaces" to be filled by other plugins.

For example, the default theme defines a table with three rows. Each row contains a "theme space", named "top", "contents" and "bottom". The theme fires the "themeSpace" event in the editor instance, which can be listened by other plugins to fill the space with HTML.

Finally, the theme inserts the interface HTML in the proper place in the page, according to the <instance>.elementMode property (replace or append to element).

The theme code is also responsible to destroy the interface elements, with the "destroy" function.

#2467 Switching fullscreen in source mode fails after #2322 Confirmed Review+ Martin Kou Bug closed Normal
Description

Reported in http://www.fckeditor.net/forums/viewtopic.php?f=6&t=10877

#2469 FCK.SetData() causes editor to become temporarily non-focusable in IE7. Confirmed IE7 Review+ Martin Kou Bug closed Normal
Description

This bug was originally reported by Mathias-S in our IRC channel. To reproduce the bug:

  1. Add the following HTML code to sample11_frame.html right after the submit button's HTML code.
    <script type="text/javascript"><!--
    function SetContents()
    {
    	// Get the editor instance that we want to interact with.
    	var oEditor = FCKeditorAPI.GetInstance('FCKeditor_1') ;
    
    	// Set the editor contents (replace the actual one).
    	oEditor.SetData( 'This is the <b>new content<\/b> I want in the editor.' ) ;
    }
    //-->
    </script>
    <input type="button" value="Set Editor Contents" onclick="SetContents();" />
    
  2. Open sample11.html in IE7.
  3. Type some random characters into FCKeditor 1.
  4. Select the just added characters with some of the previously existing text in FCKeditor 1.
  5. Click on the empty space between FCKeditor 1 and FCKeditor 2.
  6. Click "Set Editor Contents".
  7. Try to put the focus back on FCKeditor 1 by clicking it - it doesn't work. If it does, refresh the page and try again.

According to Mathias-S's original report, the bug can be reproduced in IE6 as well. But I wasn't able to do that in IE6.

#2475 V3: Globalization Confirmed V3ProtoCore Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

The Globalization support has been introduced into the CKEditor prototype with [2365].

Just like FCKeditor, we try to guess the user language here, with a much simpler code though. The language file will be then loaded just one for all editor instances that share that same language.

For RTL languages, the theme sets the "dir" attribute of the outer element that holds the editor to "rtl", and adds a class named "cke_rtl" to it. In this way, it is possible to properly skin the editor for RTL.

Full language support has been added for plugins also. The "sourcearea" plugin contains an example of it. Just for this review, I've not added "en" support on the plugin, so you will note that the "Source" button will be localized to "Codice Sorgente", its Italian version for it (which is the default language of the plugin). Core plugins will have the language entries into the core language file, so the sourcearea language entries will be moved to the right place after this ticket review.

The list of languages supported by the plugin is available in the plugin definition, so the end user is not required anymore to provide it. For the plugins, the language file is also cached and reused by other editor instances.

It is possible to pack the core and the plugins language files with the packager, avoiding them to be downloaded from a different file. If the user language is not present in the packaged version, it will be downloaded from the lang folder, as usual.

#2477 V3: Packager Confirmed V3ProtoOther Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

I've worked a few days to come out with a new packager. I've started it as just a research thing, but the coded evolved into a real solution. For now, the code has been committed into the "_dev/packager/ckpackager" folder in the CKEditor prototype.

The basic idea is stop doing string manipulations to the source code with miraculous regular expressions and use a real JavaScript parser. I've chosen Rhino for it, because it also made it possible to code all that stuff in our preferred language: JavaScript.

Rhino is a full JavaScript parser, interpreter and compiler. I was more interested on the first part of it, the parser.

The results are pretty nice. Rhino gives us a "token tree". We then walk over this three and re-write the source, token by token. So, for example, if we find a VAR token, we just write "var" to the output. Under it, we have the NAME token, which contains the variable name, so we rename and write it to the source too. The results is "var a;", for example.

Another interesting fact is that the parser gives us the "interpreted" token three. We don't have the exact same thing we had in the original code. A simple example; if we have "var a = 1 + 2;" in the source, the final result will be "var a=3;", because Rhino automatically summed the numbers for us. Another example, "while(true){}" and "for(;;){}" give us the same token three with Rhino, so we just output it in our preferred way, as we really don't know how exactly the source was.

There are also several code enhancements that are done by this new packager. Things we would never be able to achieve with the previous packager. Check out the "test/test.js" file for a long list of examples.

Btw, this implementation contains a basic automated test system, so we can be sure we are not breaking things on changes.

In the "ckpackager/_dev" folder, you will find two batch files. Both of them are configured to act over the code available in the script.js file, present in that folder also. Just run dump.bat to have a visual presentation of the token three representation of that script. The compress.bat file will instead print the compressed result.

There are several positive things with this packager. One of them is that all pending tickets for FCKpackager have been solved with it, and no ticket regressions have been found. Also, there are no special requirements when coding. No problems with missing semicolons, or even special ways to write things, like regular expressions and division signs.

There are though a few negative things that need attention. The first is the performance. It is twice as slow as the previous packager. This is not a critical thing, and there is certainly room for enhancements here.

The other problem is that, this packager has been written based on coding patterns. I think I have handled all syntax situations in the current implementation, but, for example, I've written things like "(success ? completed : failed).push( 'thing' )" yesterday, and this pattern was not been handled. The code got broken. Fortunately I had some intuition that it may happen, so I've just added a test case for that coding line and coded the packager to make it work with it. So, to summarize, we may find that the packager is breaking our code in the future, and we'll be working to add all necessary cases to it.

For the configuration file, it is not using anymore an XML file. It uses instead a JavaScript object literal like syntax. For CKEditor, the "ckeditor.pack" file has been added to the root of the project. It exemplifies the package file syntax.

Also, the _dev/packager/packagefilegen.html file has been updated to generate both the old and the new package file contents automatically. Just run _dev/packager/package_2.bat to execute the new packager over the CKEditor code.

Regarding the deployment... Right now, the entire ckpackager folder is needed to run it. Java is required. This is another negative thing, as we just have a single file to be used with the previous packager to make it work.

I haven't investigated it well, but I'm sure we are able to compile all that stuff in a single .jar file for the deployment, and possibly even generate an exe for it. But, this is something to understand yet.

To conclude, here are the numbers I have, by running both packagers over the current CKEditor prototype (second run):

  • FCKpackager:
    • ckeditor_basic.js: 6,449 bytes (18.72% of original)
    • ckeditor.js......: 45,821 bytes (21.38% of original)
    • total time.......: 1.55 seconds.
  • CKPackager 2.0:
    • ckeditor_basic.js: 5,813 bytes (17% of original)
    • ckeditor.js......: 44,199 bytes (21% of original)
    • total time.......: 2.97 seconds.

If we think this new packager is the way to go for us, I'll move it to its dedicated SVN three as a separated project and put an SVN external in the prototype three pointing to it. I'll wait the ticket review for it.

#2488 Encode email "mailto:" links (Fix #2220) Confirmed IE Review+ Martin Kou Bug closed Normal
Description

This regards Fix #2220, adding the javascript based encryption of mailto links.

This fix causes problems in Internet Explorer. When you click on an encoded (by FCK) mailto link on the frontend of a website, it causes IE6 and IE7 to do two things:

  1. Open a new email window (what we want)
  1. Take the browser to a new page with "mailto:..." in the content (what we don't want)

This problem exists in IE, but not in Firefox or Safari (what else is new). It's possible this has been resolved in 2.6.3 (we're running 2.6.3 beta) but there is no mention of it.

Can someone kindly look into this? Thanks much for all your hard work!

#2495 Can't get properties of an image inside a div with some styles Confirmed IE Review+ Alfonso Martínez de Lizarrondo Bug closed Normal
Description

Some bugs have been marked as dups of #798, because the final situation is the same (and are due to the same internal IE problem), but the fact is that they are different issues.

This problem started after fixing #1990, and it does include a call to set the focus in the editor

FCKSelection.Save = function()
{
	// Ensures the editor has the selection focus. (#1801)
	FCK.Focus() ;

if that call is removed, then this problem goes away, but the context menu still fails, so this is not a dup of #798 as it could be possible to fix it.

#2496 InsertHtml() ignores current selection in IE. Again. IE Confirmed Review+ Alfonso Martínez de Lizarrondo Bug closed Normal
Description

It seems that this bug #2125 has come back again in Version 2.6.3 as I have having troubles with it. You can test this on the demo page with IE. It will insert the text at the start of the box instead of where the cursor is at when you open up the paste dialog.

#2506 sort the tags in the pull-down menu of the "Special Tag Properties" popup (MediaWiki) Confirmed New Feature closed Normal
Description

Currently the tags are not sorted, which makes it difficult to insert a specific tag when there are many to choose from.

#2508 <ref> and <references /> tags break on edit Confirmed Review+ Artur Formella Bug closed Normal
Description

On editing a page with a <references /> tag at the end, the tag is replaced by wikicode:

&lt;references /&gt;
#2512 IE8 beta2, contents of dialogs don't fill the width of the container Confirmed IE8 HasPatch Alfonso Martínez de Lizarrondo Bug closed Normal
Description

Sometimes works, and sometimes fails. And sometimes suddenly changes from one situation to the other while the dialog is open.

Check screenshot.

#2513 IE8 beta2, insertion of tables is always done at the start of the document Confirmed IE8 Bug closed Normal
Description

Sometimes I've seen also the img dialog fail, but the table always fails for me.

#2514 the code should try to use Array.indexOf if it does exist Confirmed Review+ Artur Formella Bug closed Normal
Description

see http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference:Objects:Array:indexOf and http://www.prototypejs.org/api/array/indexof

The function in CKEDITOR.tools should be adjusted to call the native implementation if it is detected.

#2525 Chrome: error if FCKConfig.StartupShowBlocks = true Confirmed Chrome Firefox Review+ Martin Kou Bug closed Normal
Description

Hello, If you execute FCKEditor on Google Chrome on the latest trunk (seem appear in the 2.6.3), I have an error if FCKConfig.StartupShowBlocks is set to true.

Uncaught TypeError: Cannot read property 'nodeType' of null http://127.0.0.1/www.lib/fckeditor/edit ... wblocks.js (line 59)
[...]
if ( FCKBrowserInfo.IsIE )
{
try
{
FCK.EditorDocument.selection.createRange().select() ;
}
catch ( e )
{}
}
else
{
var focus = FCK.EditorWindow.getSelection().focusNode ;
if ( focus.nodeType != 1 )
Uncaught TypeError: Cannot read property 'nodeType' of null
focus = focus.parentNode ;
FCKDomTools.ScrollIntoView( focus, false ) ;
}
[...]

To fix the problem I have just added "try catch" in the "else" branch.

regards Frederic

#2531 Scroll Into View Bug When Breaking Large Content (FF) Confirmed Firefox Review+ Frederico Caldeira Knabben Bug closed Normal
Description

If you paste a large amount into the editor, where you end up with:

<p> some large text <br /> paragraphs aren't there anymore </p>

And you wish to put the paragraphs in to make it look like:

<p> some large text </p> <p> paragraphs aren't there anymore </p>

It will scroll the end of the second paragraph into view, which when the end is far enough away, will push the cursor off-screen, which can be confusing (why did I jump to the bottom?).

If you continue to type, it'll start typing where the cursor is, not where the eye is, scrolling that back into view.

The lines that cause the issue are fckenterkey.js lines 538/539:

source:FCKeditor/trunk/editor/_source/classes/fckenterkey.js@2136#L538

I initially just commented this out, but then when you want to put in a new paragraph at the end, it will not scroll that into view.

It seems to me that it should scroll when the paragraph is empty, but not otherwise, adding a FCKDomTools.CheckIsEmptyElement() will not work however, as we actually have:

<p> <br _moz_dirty=""> <br type="moz"> </p>

Some changes to the CheckIsEmptyElement() however will solve this (see patch).

This does not completely solve the issue. When pressing enter with an "empty" paragraph being add, it will work fine. When pressing enter with a non-empty paragraph following, it works fine so long as it's not at the bottom of the view area, because then it doesn't scroll and should.

This is a little better, but not complete. The best solution would be to move to the top of the paragraph, not the bottom. Is this possible?

  • Davey
#2532 Add syntax highlighting in HTML (source) mode Confirmed New Feature closed Normal
Description

Hi, It would be great if you could add HTML syntax highlighting in the editor when you are in HTML mode.

Perhaps you could use codemirror to do that? http://marijn.haverbeke.nl/codemirror/

Example : http://marijn.haverbeke.nl/codemirror/mixedtest.html

#2533 PageBreak code is different in Gecko and IE Confirmed Bug closed Normal
Description

I use PageBreak when edit my topics to divide text on topic summary and topic body. Due to the differencies in Gecko and IE realisation, code like

obj.style.pageBreakAfter="always";

generates different HTML. In Gecko CSS style inserts without ";" but in IE symbol ";" afetr CSS rule exists. So HTML code of bageBreak in Gecko is

<div style="page-break-after: always"><span style="display:none">&nbsp;</span></div>

and in IE is

<div style="page-break-after: always;"><span style="display:none;">&nbsp;</span></div>

So i can't use it to split HTML into two parts in my PHP code.

#2535 translation in germany language Confirmed Review+ Task closed Normal
Description

Hi Folkz,

I have translated the language file to the end. Also the standard skin button was changed to german word style. If you would like to use it, it is posted in your forum: http://www.fckeditor.net/forums/viewtopic.php?f=5&t=11175

greetings Erde

#2543 Namespaces excluded from using the FCKeditor Confirmed Review+ New Feature closed Normal
Description

Old version (version by Mafs?) of the MW extension to integrate the FCKeditor included the ability to define certain namespaces that would be excluded from using the FCKeditor. This was handy for complex, densely tagged pages like in the Template and Help namespaces.

The feature was called like this:

$wgFCKexcludedNamespaces = array(8,1,-1); eg. "8" for disabling the editor within the MediaWiki namespace.

We use Semantic MW and Semantic Forms, so I need to turn off FCKeditor to all users in the Forms, Property, and Concept namespaces in addition to Special, Template, Image, and Help. Allowing users to to control whether or not to use the FCKeditor in their preferences is not a good option; does not address custom namespaces.

#2547 Mediawiki and <pre> tags with FCKeditor Confirmed Bug closed Normal
Description

Hi

It seems that there is again a bug with <pre> tag in mediawiki Test

At http://mediawiki.fckeditor.net/index.php/Sandbox

enter the following text, then switch several times between wikitext

<pre> 
Hello Wiki User 
Hello Wiki User 
Hello Wiki User 
</pre> 
<pre>
Bonjour Utilisateur Wiki
Bonjour Utilisateur Wiki
Bonjour Utilisateur Wiki 
Bonjour Utilisateur Wiki 
</pre>
#2553 Safari: Text Format Buttons not Selectable Confirmed Bug closed Normal
Description

In Safari the text formatting buttons Bold, Underline, Italic, Color etc. do not work unless some text is selected. I tested on http://www.fckeditor.net/demo place your cursor at the end of the line and try clicking on B for bold, it will not switch to bold mode.

Tested with Safari 3.1.1 on Vista.

I couldn't find a ticket or report for this, apologies if this has already been reported.

#2562 IsDirty() is incorrectly set when there is content but no paragraphs on the page Confirmed Bug closed Normal
Description

It seems that IsDirty is always set if there is no paragraph tags in your content, such as when the content is a table and nothing else.

#2566 multiple editor instances, FCKeditorAPI.GetInstance error Confirmed Bug closed Normal
Description

Summary: when i set multiple editor instances, then get the instances use FCKeditorAPI.GetInstance, it will return undefined (sometime)

vista + firefox 3.01

Steps to replicate: 1.open fckeditor/_samples/html/sample02.html

2.edit the javascript to :

	var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
	oFCKeditor.BasePath	= sBasePath ;
	oFCKeditor.ReplaceTextarea() ;

	var oFCKeditor2 = new FCKeditor( 'FCKeditor2' ) ;
	oFCKeditor2.BasePath	= sBasePath ;
	oFCKeditor2.ReplaceTextarea() ;

3.edit the form code to :

	<form action="../php/sampleposteddata.php" method="post" target="_blank">
		<div>
			<textarea name="FCKeditor1" rows="5" cols="80" style="width: 100%; height: 200px">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://www.fckeditor.net/"&gt;FCKeditor&lt;/a&gt;.&lt;/p&gt;</textarea>

			<textarea name="FCKeditor2" rows="10" cols="80" style="width: 100%; height: 300px">test</textarea>
		</div>
		<br />
		<input type="submit" value="Submit" />
		<br />
		<input type="button" value="Get" onclick="alert('FCKeditor1' +'=>'+ FCKeditorAPI.GetInstance('FCKeditor1'));alert('FCKeditor2' +'=>'+ FCKeditorAPI.GetInstance('FCKeditor2'));" />
	</form>

4.run the sample in firefox 3.01 , click the "Get" button, sometime it will return undefined.

#2567 Slovak Translation Update Confirmed Review+ Artur Formella Task closed Normal
Description

Update to Slovak translation (localization) file - updated missing translations and mistakes correction.

#2570 "align" attribute on Images breaks image dialog and context menu Confirmed Safari? Alfonso Martínez de Lizarrondo Bug closed Normal
Description

I have verified on the nightly build that this is still broken.

  1. Add an Image to html using the Image dialog
  2. Re-open the image dialog and set the Image's "Align" to "left" using the drop down in the image dialog.
  3. Close the dialog and right click on the image
  4. Image properties will be missing from the menu and you can't click the image dialog button to pre-populate the dialog with the selected image's info

This problem shows itself in Safari 3 on Windows and Mac and also Google Chrome, I'm not sure if it happens in Safari 2, but I'd imagine so.

#2571 Impossible to modify a select list in FF3 Confirmed Bug closed Normal
Description

Use case :

  • Open an fckeditor instance in FireFox 3
  • click on add a menu list (form elements buttons)
  • enter your params, click 'OK'
  • Then try to click on the new created list with right button or to select the list with left button, it's impossible;

With MSIE7, there's no problem.

This bug happens with FCKEditor 2.6.3 (i also tried the last nightly build with the same result)

#2573 ASP: In the connector, IsAllowedType must be case sensitive Confirmed Review+ Frederico Caldeira Knabben Bug closed Normal
Description

The current implementation of IsAllowedType is case insensitive, but all "per type" configuration options are case sensitive. So, the connector will accept types with just case differences, but will break later, when trying to retrieve settings for them. We should be always case sensitive for the type instead.

#2579 Fckeditor 2.6.2 automatically insert <br /> when loading Confirmed Firefox Bug closed Normal
Description

Currently, i am using myfaces-fckeditor in jsf enrionment. Brower :Firefox 3.X Version: fckeditor 2.6.2 When at the begining of loading fckeditor on the page, i didn't typing anything in the fckeditor textarea(i was in br mode,FCKconfig.EnterMode= br), and i switch to the "source view" mode, it automatically appear one "<br />" for me. This seems it automatically to add this <br /> at the beginning to load fckeditor or when i switch to "source view",it add this <br />. I try to see the source code of fckeditor, but i didn't get any solution for this. How can i remove this <br /> automatically insert at the beginning of fckeditor loading.Anyone has solution for this? I also try the version 2.6.3, it seems the same result.

Thanks millon.

blade

#2581 Rename UserPathBuilder interface to something more appropriate Confirmed Task closed Normal
Description

The chosen name differs from the common convention and can lead to confusion. Create a new interface and declare the old one as @deprecated.

#2590 FCKEditor changes the position of REL and ALT attributes on every edit Confirmed Bug closed Normal
Description

The FCKEditor changes the positioning of REL, ALT attributes everytime I edit the content. Following is an example:

FIRST

<a href="/blakish/sites/files/shared/gallery/g-PIC00002.jpg" rel="lightbox[gallery-1][Caption Here]"><img height="57" width="75" class="thumbnail" src="/blakish/sites/files/shared/gallery/tn1-PIC00002.jpg" alt="" /></a>

SECOND

<p><a rel="lightbox[gallery-1][Caption Here]" href="/blakish/sites/files/shared/gallery/g-PIC00002.jpg"><img height="57" width="75" alt="" src="/blakish/sites/files/shared/gallery/tn1-PIC00002.jpg" class="thumbnail" /></a>

Notice the position of "rel" attribute. It is coming after the href attribute in the first version and it is coming before the href attribute in second version. The FCKEditor just flip flop between the two versions every time I click on edit. This makes it impossible for us to keep a version history of changes.

I tried setting both FCKConfig.FormatSource, FCKConfig.FormatOutput to true and false but it did not make any difference.

Rajiv

#2597 Safari: drop from outside the editor is disabled Confirmed Safari Review+ Martin Kou Bug closed Normal
Description

Since the introduction of [589] the external drop of elements in FCKeditor is disabled in Safari.

That's meant to respect the ForcePasteAsPlainText setting, but every drop is always disabled in this code:

 var cancelHandler = function( evt ){ evt.returnValue = false ; } 
 this.EditorDocument.addEventListener( 'dragenter', cancelHandler, true ) ; 
 this.EditorDocument.addEventListener( 'dragover', cancelHandler, true ) ; 
 this.EditorDocument.addEventListener( 'drop', this._ExecDrop, true ) ;
#2599 Allow an arbitrary query string, and propagate it to dialog boxes Confirmed New Feature closed Normal
Description

Hey guys,

Thanks so much for FCKEditor - it really is a superb piece of work and you deserve all your success. I have a small feature request:

In FCKeditor._GetIFrameHtml, you do...

if (this.ToolbarSet) sLink += '&amp;Toolbar=' + this.ToolbarSet;

...I would like to see this capability extended so that I can attach arbitrary things to the query string. For example...

new FCKEditor( 'x' ).extraParameters = 'foo=bar';

...which, in turn, get passed to every dialog box...

FCKDialogCommand.prototype.Execute = function() {

FCKDialog.OpenDialog( 'FCKDialog_' + this.Name, this.Title, this.Url + '?' + this.extraParameters

Why do such a thing? One of the best features (for me) about FCK is being able to tweak the dialog boxes to suit my needs. For example, I tweak fck_image.html and insert some server-side script to turn the image box into a dropdown SELECT of available images.

To do this at the moment, I have to override FCK in a number of places to feed a query parameter from my top-level page (the one that includes the TEXTAREA) into the image dialog box.

Native support for passing parameters along would be neat.

#2602 Lithuanian letter "š" appers bad in HTML code Confirmed Bug closed Normal
Description

When typing letter "š" in Lithuanian language, it appears as "&scaron;" in HTML code. Althought all other letters apper as they are.

Firefox 3.0.3, Ubuntu

#2603 Set EMailProtection to none by default. Confirmed Review+ Alfonso Martínez de Lizarrondo New Feature closed Normal
Description

Ok, I have noticed that this is a problem too late, but I guess we can still turn it off.

Reasons why I think it should be disabled:

  • it is not documented well (that can be fixed)
  • links are not usable if javascript is disabled (can't be fixed)
  • there are sites that filter posted content and strip code that looks like a potential XSS attack (via HTML Purifier for example), thus it doesn't work there even if javascript is enabled
  • it is a major change between last stable release and when upgrading from previous minor release most people expect no suprises

I think we have made a mistake by enabling it by default, but it may bee too late to change this. Anyway I'm posting this here for consideration.

#2604 Response.CodePage Confirmed Review+ Alfonso Martínez de Lizarrondo Bug closed Normal
Description

The addition of the Response.CodePage variable in the basexml.asp file is causing Browser failures when browsing for files.

The OS is Windows Server 2000 with SP4 using IIS.

Commenting out this line does remove the error, but the repercussion is that larger data imported into the editor will be truncated at 64.5k characters.

#2606 Deleting a button (Safari) adds text-align: center to remaining contents Confirmed HasPatch Safari Dmiry Polyakov Bug closed Normal
Description

To reproduce (in Safari):

All the remaining content in the Fckeditor box is now center aligned thanks to "text-align: center" being added to the <P> tag. We've found this to be incredibly confusing to explain to the end users, even though clicking the "Left Justify" button restores the proper left alignment. Our application relies on a lot of buttons, so this becomes an issue for us more than normal.

#2607 FileUplad and QuickUpload code are not in sync Confirmed Bug closed Normal
Description

If you compare the error codes of the FileUpload commmand to the QuickUpload command they do not comply. Both commands serve same purpose so error codes should be the same.

More over if one compares the source of the JavaScript callback there are even undocumented error codes: QuickUpload <=> FileUpload

This should be easy to address.

#2608 Removing carriage return invalidates JavaScript Confirmed Michael Osipov Bug closed Normal
Description

The following line in FCKEditor.java

String encodedValue = escapeXml(value.replaceAll("((\r?\n)+|\t*)", ""));

remove carriage return, but this can destroy Javascript code entered in FCK if the Javascript use line comments.

For example

a comment here

var i = 2;

  • becomes -

a comment var i = 2;

so no more variable declaration.

I don't know what can be done for fix that. Leaving the carriage return in the value attribute of the hidden field seems to be working in IE7 and FF3, but I don't think this is valid XHTML.

#2612 Chrome: "Paste as a plain text" option not working Confirmed Chrome Safari Review+ Alfonso Martínez de Lizarrondo Bug closed Normal
Description

Windows XP sp3 FCKeditor 2.6.3 Drupal 6.6 Drupal module: fckeditor-6.x-1.3-rc3.tar Google Chrome

fckconfig.js: FCKConfig.ForcePasteAsPlainText = true ;

Using Google Chrome, "Paste as a plain text" popup not appear. Always appear "Paste" popup, regardless of fckconfig.js configuration.

#2613 Colors for markup in source Confirmed New Feature closed Normal
Description

Hi ! We would love to see colors when we switch to source code.

For example the syntax coloring editPlus has. Every code type has different colors..

Hope this is not too hard.

Webspacedesign

#2618 Extract ImageInfo from java-core.jar Confirmed Michael Osipov Task closed Normal
Description

ImageInfo should be retrieved from maven central repo.

#2621 Replace hard-coded messages with lookup to localized versions Confirmed Bug closed Normal
Description

Some messages in FCKEditor are still hard-coded to English versions.

For example, the result messages for the image upload dialog:

source:/FCKeditor/tags/2.6.3/editor/dialog/fck_image/fck_image.js#L454

These should use the message resource bundles.

#2625 fck_dialog_ie6.js should not be needed for each and every skin Confirmed Task closed Normal
Description

Despite the fact that there is comment in skin/*/fck_dialog_ie6.js says "this is skin specific", the 3 copies in the fck distribution are identical. It's loaded by fckdialog.html from the skin directory. It would be nice if there was some kind of inheritance or fallback mechanism to avoid that each and every skin needs to copy this file around.

#2649 IE: Error on Find dialog with "match whole word" Confirmed IE Review+ Martin Kou Bug closed Normal
Description

Steps to Reproduce

  1. In the editing area, type "hello you hello".
  2. Open the "Find" dialog.
  3. Check the "Match whole word" option.
  4. Type "hello" in the find field.
  5. Click on "Find".

A JavaScript error is thrown.

It looks like an IE only issue. Works well with Firefox.

#2650 Danish language file updates Confirmed Review+ Artur Formella Bug closed Normal
Description

Danish language file updates

#2652 EnterMode = br interferes with IE's auto-linking feature Confirmed IE Bug closed Normal
Description

When entering a URL into FCKEditor using IE, IE automatically turns the URL into a link. This happens immediately upon pressing space or enter to finish the URL.

When EnterMode is set to "br", this feature does not work anymore on pressing enter (still works on pressing space).

#2653 Changing table properties cannot be undone (undoes the previous action instead) Confirmed Review+ Alfonso Martínez de Lizarrondo Bug closed Normal
Description

changing table properties does not insert an undo step. The result of this is that the change in properties cannot be undone. The previous action is undone instead.

The attached patch (fck_table.html) will always insert an undo step, which currently only happens when the table is initially created. This seems to fix the problem (the jury is still out on potential negative implications, but it looks safe).

#2660 alt & title for smileys Confirmed New Feature closed Normal
Description

On my site I use FCKeditor for a user-commentbox, the users can also insert smileys. FCKeditor works just fine with inserting the smileys but some of the smileys look the same or aren't really clear on what they represent. The smiley popup doesn't give any information about the smiley, so I modified the script a bit to include the attributes alt and title to the img tag. It's just a small adjustment but (at least in my case) very helpful.

I changed the javascript function InsertSmiley in fck_smiley.html (fckeditor/editor/dialog) to this:

function InsertSmiley( url, alt )
{
	oEditor.FCKUndo.SaveUndoStep() ;

	var oImg = oEditor.FCK.InsertElement( 'img' ) ;
	oImg.src = url ;
	oImg.alt = alt ;
	oImg.title = alt ;
	oImg.setAttribute( '_fcksavedurl', url ) ;

	// For long smileys list, it seams that IE continues loading the images in
	// the background when you quickly select one image. so, let's clear
	// everything before closing.
	document.body.innerHTML = '' ;

	dialog.Cancel() ;
}

changes:
1 added argument alt to the function
2 added alt and title to oImg object.

In the same file I changed the javascript that displays the emoticons to this:

<script type="text/javascript">
	var FCKConfig = oEditor.FCKConfig ;

	var sBasePath  = FCKConfig.SmileyPath ;
	var aImages    = FCKConfig.SmileyImages ;
	var aAlts      = FCKConfig.SmileyAlts ;
	var iCols      = FCKConfig.SmileyColumns ;
	var iColWidth  = parseInt( 100 / iCols, 10 ) ;

	var i = 0 ;
	while (i < aImages.length)
	{
		document.write( '<tr>' ) ;
		for(var j = 0 ; j < iCols ; j++)
		{
			if (aImages[i])
			{
				var sUrl = sBasePath + aImages[i] ;
				document.write( '<td width="' + iColWidth + '%" align="center" class="DarkBackground Hand" onclick="InsertSmiley(\'' + sUrl.replace(/'/g, "\\'" ) + '\', \''+ aAlts[i] +'\')" onmouseover="over(this)" onmouseout="out(this)">' ) ;
				document.write( '<img src="' + sUrl + '" title="'+ aAlts[i] +'" alt="'+ aAlts[i] +'" border="0" />' ) ;
			}
			else
				document.write( '<td width="' + iColWidth + '%" class="DarkBackground">&nbsp;' ) ;
			document.write( '<\/td>' ) ;
			i++ ;
		}
		document.write('<\/tr>') ;
	}
</script>

changes:
1 new var aAlts
2 argument aAlts added in call to InsertSmiley function
3 alt and title attributes added to img tag

In fckconfig.js I have put an array FCKConfig.SmileyAlts which contains the names I want to give the smileys. This array has to be in the same order and contain the same amount of elements as FCKConfig.SmileyImages.
Example:

FCKConfig.SmileyImages = ['big_grin.png','blink.png','blush.png','yawn.png'] ;
FCKConfig.SmileyAlts   = ['big grin','blink','blush','yawn'] ;
#2662 Make dialog layout work in quirks mode. Confirmed IE Martin Kou Task closed Normal
Description

Dialogs in the current SVN code of CKEditor 3 don't work under quirks mode.

#2663 Fix the scrolling bug for CKEditor 3 link dialog. Confirmed Martin Kou Bug closed Normal
Description

To reproduce the bug:

  1. Open the replacebyclass sample in Firefox 3.
  2. Resize the window so that a vertical scrollbar appears.
  3. Open the link dialog.
  4. The scrollbar scrolls to the bottom.
  5. If the bug doesn't happen, refresh and try again.

Strangely, it doesn't happen with the smiley dialog.

#2664 Make a textarea input element and a multiple-choice select box element for v3 dialogs. Confirmed Martin Kou Task closed Normal
Description

The select box dialog that Artur wrote needs a multiple-choice select box element, while the email fields in the link dialog needs a textarea input element.

#2665 Fix layout of v3 dialog buttons in IE. Confirmed Martin Kou Task closed Normal
Description

For some unknown reason the align attribute in the button's <table> element doesn't work in IE, the buttons are all being center aligned.

#2666 Review and refresh the documentation for the dialog system. Confirmed Martin Kou Task closed Normal
Description

As new features, fixes and necessary hacks are being added to the v3 dialog system, its API and its design is gradually deviating from its original specs document. The specifications and JSDoc documentations will need to be updated once the dialog system's structure becomes more stable.

#2671 Upload directly to Picasa Confirmed New Feature closed Normal
Description

There's an uploading function in FCKeditor. The picture will be uploaded to the own FTP space. I want to upload the picture directly to Picasa.

Is this possible to build? And how easy? I don't know the Google API, but maybe someone here has enough knowledge.

#2679 Indent causes infinite loop Confirmed IE Review+ Martin Kou Bug closed Normal
Description

Steps to reproduce

  1. Load following code into source view:
<p><span>
  <table width="100" border="1">
    <tr>
      <td>test</td>
    </tr>
  </table>
</span></p>
  1. Back to WYSIWYG, click Indent button(don't move the caret, let caret pointing at the very begining).

Expected result

No changes happening.

Current behavior

The IE7 will return an unresponsive script alert.

Stop script execution and back to source view, it shows:

<p><span><span id="1227705253552S" style="display: none">&nbsp;</span></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span>
<table width="100" border="1">
    <tbody>
        <tr>
            <td>test</td>
        </tr>
    </tbody>
</table>
</span></p>

Browsers

IE6, IE7.

Additions

This is some how like #1717.

#2685 Integrate the SpellChecker.net "Web Spell Checker" Confirmed Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

We are partnering with SpellChecker.net to bring a nice new feature to the editor. It consists on a powerful spell checker (and not only) that requires no installation neither in the browser nor in the server.

This spell checker is called "Web Spell Checker". It's an online service provided by SpellChecker.net, which is closely integrated with the editor interface. It is free, but the free version displays a banner space while the spell check dialog is open.

Because of the "zero installation" nature of this solution, it is supposed to become the default spell checker in the editor. We'll still support SpellerPages and ieSpell just like before.

This ticket should handle not only the code necessary to introduce this feature in the editor, but also all documentation changes and additions to properly inform our users about the possible settings, and an explanation for the banner thing.

#2689 URLs are encoded incorrectly when connectors pass back URLs for File elements in XML Confirmed Review+ Alfonso Martínez de Lizarrondo Bug closed Normal
Description

When the file browser is used to fetch files and folders, an optional "url" attribute can be passed back with each "File" element. If the "url" attribute is not passed back with each "File" element, then the resulting URLs are displayed correctly after fetching an image or link.

However, if the URL parameter is specified, then problems occur. The "GetFilesAndFoldersCallback" function will store the URL, assuming that it isn't encoded already (which is incorrect - the data is a URL, after all). Then, in the "OpenFile" function, the URL will be "re-encoded". This becomes a problem when the URL already contains encoded characters.

For example, if one of the parts of the URL contains a space, then the "url" attribute will come back with a '%20' (as any correct URL should). The resulting '%20' will then be re-encoded to read "%2520" in the 'OpenFile' function. Obviously, this would be incorrect.

#2702 reset undo history Confirmed New Feature closed Normal
Description

a Simple function to reset the undo history so that you can reuse an editor window with out having to reload in order to clear the current undo/redo history.

The function is very simple .. just resets the undo vars

FCKUndo.resetUndoState = function()
{
   //simple reset of the undo history
   this.SavedData = new Array() ;
   this.CurrentIndex = -1 ;
   this.TypesCount = 0 ;
   this.Changed = false ;
   this.Typing = false ;
   this.SaveLocked = false ;
   FCK.Events.FireEvent( "OnSelectionChange" ) ; // this updates the undo and redo toolbar status
}
#2703 FCKeditor objects rename proposal Confirmed New Feature closed Normal
Description

When scripting around the editor I create a bunch of references to the objects of the FCKeditor, some of which the name differs from its name in the FCKeditor. If find my names more clear and less ambiguous.

editorFrame = document.getElementById(editorInstance.Name + '___Frame');
editorWindow = editorInstance.EditorWindow.parent;
editorDocument = editorWindow.document;
editorBody = editorDocument.body;
editingAreaWindow = editorInstance.EditorWindow;
editingAreaDocument = editorInstance.EditorDocument;
editingAreaBody = editingAreaDocument.body;
editingAreaIFrame = getElement('xEditingArea').getElementsByTagName('iframe')[0];

I hope this also makes sense to you guys and gets adopted.

#2712 Editor crashes when left-aligning centered text Confirmed IE Bug closed Normal
Description

This has been confirmed with FCKEditor 2.6.3.

Steps to reproduce:

  1. Paste the following text in source view:

(Test Data):

&nbsp; <div class="O" v:shape="_x0000_s1026" style="text-align: center"><span style="font-size: 20pt">E-BizL [%] =&nbsp; <div class="O" v:shape="_x0000_s1026" style="text-align: center"><span style="font-size: 16pt">Shipping units with electronic interchange /&nbsp; <div class="O" v:shape="_x0000_s1026" style="text-align: center"><span style="font-size: 16pt">All shipping units (based on actual arrival date)</span></div> </span></div> </span></div>

  1. Switch to usual view
  2. put the cursor at the start of the word "units"
  3. click left-align. the browser is caught in a loop

Browser name and OS : IE 7.0.5730.11 on Windows XP Professional, SP 2

#2733 Changing table cell properties cannot be undone (undoes the previous action instead) Confirmed HasPatch Bug closed Normal
Description

Changing table cell properties does not insert an undo step. The result of this is that the change in properties cannot be undone. The previous action is undone instead (or rather: in addition)

This bug is very similar to #2563

#2741 Mediawiki+FCKeditor wipes out ISBN links. Confirmed Bug closed Normal
Description

FCKeditor, the WYSIWYG text editor on the wiki, is apparently conflicting with the ISBN linking functionality.

How it's supposed to work:

  1. Authenticate on the wiki.
  2. On the right navigation bar, near the bottom, click My Talk. This will bring you to your talk page. (You may be prompted to create your MyTalk page. If so, create it.) We're going to add an ISBN reference to your MyTalk page as if you were referencing a book as on the Maryland Newspapers page.
  3. Click Edit on the right navigation bar.
  4. Type ISBN 1234567890
  5. Save the page.
  6. Click the ISBN 1234567890 link. This will take you to a list of repositories.
  7. Click a repository and the book with the ISBN number in question will be searched in that repository's catalog.

How FCK editor screws this up:

  1. Return to your Talk page.
  2. You should see a working ISBN link.
  3. Click Edit.
  4. FCKeditor will open. Edit nothing. Just click Save.
  5. The ISBN link you successfully added earlier will now be broken. The link will be red. When you click it, you will be prompted to create a new wiki page. What this means is that any time a user edits a page with ISBN links on it, FCKeditor will break all those links.
  6. You can verify the problem by clicking FCKeditor's WikiText button and viewing the code. On the broken links, if you delete all the code from the leading double brackets through the pipe, and then delete the closing brackets, leaving only the text ISBN 1234567890 and then save, the link will work right again. So it's FCKeditor that's breaking the links.
#2747 alignment in div with break creates new div Confirmed Bug closed Normal
Description

When I enter the following html in the nightly build:

<div style="position: absolute; top: 10mm; left: 20mm;" id="testid">this is some text <br />
and some more</div>

and I select (some part of) the first line and align it to the right, I get:

<div id="testid" style="position: absolute; top: 10mm; left: 20mm; text-align: right;">this is some text</div>
<div id="testid" style="position: absolute; top: 10mm; left: 20mm;">and some more</div>

which is unexpected for me. The positioning makes it look as if the text has disappeared.

If no break is present, it will put the alignment in the div (and not create a new one). This is what I expected.

#2753 Removing a table in source mode can lead to errors in IE Confirmed IE Review+ Alfonso Martínez de Lizarrondo Bug closed Normal
Description
  • Enable the DragResizeTable plugin and add a table.
  • Then mouse over it so the plugin is initialized (show the resize bar).
  • Now switch to source mode and remove the table.
  • Then IE gives an error with "permission denied", it's trying to read the data for a node that no longer exists.

Another way to reproduce it: start dragging the resizer and move your cursor up to the toolbar and release it now. Now just switching between source and design is enough to trigger the error.

The proposed patch clears the internal variables of the plugin in the OnAfterSetHTML event and this way the errors goes away.

#2757 Selection is not restored properly from bookmark2 in this case. Confirmed Review+ Martin Kou Bug closed Normal
Description

If you have a non-intrusive bookmark of a text selection that has a previous sibling that is not a text node FCK will not re-select it properly. The problem is that the bookmark creation code assumes the previous sibling will be a text node and it will break the bookmark if it is not.

These changes to the while loops fix it (fckdomrange.js line 477):

Old:

while ( curStart && addrStart.nodeType == 3 )
while ( curEnd && addrEnd.nodeType == 3 )

New:

while ( curStart && curStart.nodeType == 3 && addrStart.nodeType == 3 )
while ( curEnd && curEnd.nodeType == 3 && addrEnd.nodeType == 3 )
#2763 Undo/Redo system porting from v2 Confirmed Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

Undo/Redo system need to be ported from v2, the features could be summed up as below:

  • Undo system restore/retrieve document status from both selection and content
  • All commands that modify the document could support undo/redo feature,but each command has chance to optionaly declare whether would hooked with undo systemwhen they're registed.

Note: Since from v3 all keystroke will pre-bind to command, so keystrokes also hooked with undo system through command interface.

  • Undo feature itself performed as a command, A button plugin is required for interfacing this command to end user and keystroke pair of 'Ctrl-Z' and 'Ctrl-Y' too.
  • Support empty/reset all the undo snapshots for clean up, and A button plugin is required for interfacing this reset
  • snapshot for undo system could be recorded in two forms:
    1. One snapshot for each record action, this apply for almost every functional commands, but a few special keystroke commands that also being recorded in this way including:
      1. 'Enter'
      2. 'ShiftEnter'
      3. 'CtrlBackspace'
      4. 'Delete'
      5. 'Tab'
      6. 'Ctrl-X'
      7. 'Ctrl-V'
    2. One snapshot for a serials of record actions, this apply for most keystroke commands.

Test cases ported from #915 :

  • 1. Select text, change style, undo
      Expected results: 
      - text style restored, 
      - selection restored.
    
    2a. Type one ANSI charater in the editor after it's loaded
      Expected results: 
      - undo button is enabled, 
      - undo can be performed by clicking the toolbar button
      - undo can be performed by Ctrl-Z
    2b. Undo once
      Expected results: 
      - redo button is enabled,
      - redo can be performed by clicking the toolbar button 
      - redo can be performed by Ctrl-Y
      - previous contents restored
      - previous caret position restored
    2c. Redo once
      Expected results:
      - undo button is enabled, 
      - undo can be performed by clicking the toolbar button
      - undo can be performed by Ctrl-Z
      - changed contents restored
      - changed caret position restored
    
    3. Type more than 25 ANSI characters in the editor
      Expected results:
      - One undo level should be generated for every 25 characters typed
    
    4. Pressing Ctrl-Z repeatedly after the undo button greyed out
      Expected results:
      - Nothing visible happens
      - Undo/redo system should still work normally afterwards
    
    5. Pressing Ctrl-Y repeatedly after the redo button greyed out
      Expected results:
      - Nothing visible happens
      - Undo/redo system should still work normally afterwards
    
    6a. Select some text, Ctrl-X, repeat N times
      Expected results:
      - The selected text blocks are cut
    6b. Undo once
      Expected results:
      - The last cut operation was restored
      - The selection or caret position was restored
    6c. Undo N-1 times
      Expected results:
      - The cut operations were restored in a step-by-step manner
      - The selections or caret positions in each step were restored
    
    7. Repeat 6a-6c with Del and Ctrl-V
    
    8a. Toolbar commands that change the document
      Procedure:
      - Select a toolbar command that changes the document (e.g. insert smiley)
      - Carry out the neccessary steps to make the change effective (e.g. choose smiley, ok)
      Expected results:
      - One undo step is generated after the change
      - Ctrl-Z or clicking "Undo" undoes the change
      - Ctrl-Y or clicking "Redo" after the previous point redoes the change
    8b. Repeat the "procedure" part of 8a to repeat the same change to the document N times
      Expected results:
      - N undo steps are generated after the changes
      - Ctrl-Z/Undo button and Ctrl-Y/Redo button would undo/redo the changes in a stepwise manner
    9a. Pressing Ctrl-Z breaks the undo/redo system
    
#2767 plug-in:basicstyle AND elementpath incorrect style range detection Confirmed Garry Yao Bug review_failed Normal
Description

Description

Style and element path detection on certain selection are incorrect.

Procedures

  1. Open an editor instance;
  2. Make selection as follow:
    <p> This is some <strong>sample ^text</strong>. You are using^ <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>
    
    
  3. Check the Bold style status
  • Expected: style status should be off;
  • Actual: style status is on;

Test Cases

Test cases created with :

  1. Test select start partial in a bold style and end in non-style.
    • Original document:
      <p> level1<strong>le^vel2</strong>lev^el1</strong></p>
      
      
    • Reference results
      • FCKEditor2.6.3
        Bold style command status in on.
      • TinyMCE3.2.1
        Bold style command status in off, element path is body -> p.
    • Expected Result
      Bold style command status in off, element path is body -> p.
  2. Test select start partial in a bold style, select through non-style texts and end in bold style.
    • Original document:
      <p> level1<strong>le^vel2</strong>level1<strong>le^vel2</strong></strong></p>
      
      
    • Reference results
      • FCKEditor2.6.3
        Bold style command status in on.
      • TinyMCE3.2.1
        Bold style command status in off, element path is body -> p.
    • Expected Result
      Bold style command status in off, element path is body -> p.
  3. Test select start partial in a bold style which is in a td, selection goes through some other non-style text in cells, and end partial in a bold style in a td again.
    • Original document:
      <p>
      <table>
      	<tbody>
      		<tr>
      			<td><strong>c^ell1</strong></td>
      			<td>cell2</td>
      		</tr>
      		<tr>
      			<td>cell3</td>
      			<td><strong>cell^4</strong></td>
      		</tr>
      	</tbody>
      </table>
      </p>
      
      
  • Reference results
    • FCKEditor2.6.3
      Bold style command status in on.
    • TinyMCE3.2.1
      Bold style command status in off, element path is body -> table -> tbody.
  • Expected Result
    Bold style command status in off, element path is body -> table -> tbody.
#2768 plug-in:basicstyle all basic styles unable to apply reversely Confirmed Review+ Martin Kou Bug closed Normal
Description
  1. Open an editor instance and select some unformatted text;
  2. Apply any basic style;
  3. Cancel any basic style;
  • Expected: Style applied has been canceled
  • Actual: Style applied still there
#2775 Implement Paste from Word dialog Confirmed Review+ Martin Kou Task closed Normal
Description

This bug cause comments tag content being inserted as codes when switch to 'source' mode after pasting MS-WORD(2003) documents which always contents IE-targeted conditional comments.

  1. Open an editor instance with 'source' mode and paste the content of attachment 'msword-comments-doc' into 'wysiwyg' mode.
  2. Switch to 'source' mode
    • Expected: 'source' mode contains correct content markups.
    • Actual: 'source' mode contains comment tag inner content.

Edit (2009-01-16): This is actually a missing feature.

#2777 It should not be possible to merge cells from one table section to another Confirmed Review+ Bug closed Normal
Description

At the moment it is possible for example to merge cells in a thead with cells in a tbody. That should be made impossible, see this topic: http://www.fckeditor.net/forums/viewtopic.php?f=11&t=10726&start=60

Koen Willems

#2786 Make it possible to define CSS to be loaded into the content by API Confirmed Bug closed Normal
Description

We are currently defining plugin specific CSS inside the contents.css file. This is bad, and such kind of definition should be possible to do inside the plugin definition itself.

#2791 UI flashes when loading. Confirmed Firefox Review? Garry Yao Bug closed Normal
Description

In Firefox, it's possible to quickly see the editor and the dialog rendered without skin even before the skin CSS is loaded. Then, once the CSS is ready, it redraws the UI in the right way. Not checked, but the same thing may happen with the contents.

There should be a way to hold the rendering of any UI element until the CSS is loaded.

#2794 V3: Include INSTALL.html with basic installation instruction Confirmed Review+ Frederico Caldeira Knabben New Feature closed Normal
Description

A file named INSTALL.html should be available at the root of our distribution, containing basic installation instructions, pointing to our documentation more information.

#2808 | changed to &#124; in a table Confirmed Bug closed Normal
Description

Good evening!

I was typing the following line into the cell of a table:

[[Media:test.pdf|test]]

When saved this should look like this:

test

However, it stays [[Media:test.pdf|test]] because FCKeditor changed the line to [[Media:test.pdf&#124;test]] (only in a table).

Thanks! az

#2811 Turkish Language File for v2.6.4b Confirmed Review+ New Feature closed Normal
Description

added missing lines

#2814 Format text across multiple table cells doesn't work right Confirmed Firefox Bug closed Normal
Description

The bug I describe here seems to be new since version ~2.6.3. I don't think I've seen this behavior in earlier versions.

Please fix this for the final 2.6.4 since it drives our web authors crazy. Thanks!


Browsers & OS:

  • Firefox 3.0 on Windows XP and on Mac OS X => 10.4
  • Camino 1.6 on Mac OS X >= 10.4

Browser Exception: With Safari 3.2.1 on OS X it works perfect!


Steps to reproduce:

  1. create a table withe some rows and columns
  2. fill all the cells with some text
  3. make a selection across multiple cells (click and drag, or by using the Shift- or Command-keys)
  4. Now try to format the text by using the Bold-Icon or try to assign a text color.

The result: Only the text of just one of the marked cells will be formatted while the rest remains untouched.

Below you'll find the generated HTML code. As you can see, just cell in Row 1, Column 2 (R1C2) has received the text color even though I marked more then just one cell.

<table width="200" cellspacing="1" cellpadding="1" border="1">
    <tbody>
        <tr>
            <td>R1C1</td>
            <td><span style="color: rgb(255, 0, 0);">R1C2</span></td>
        </tr>
        <tr>
            <td>R2C1</td>
            <td>R2C2</td>
        </tr>
        <tr>
            <td>R3C1</td>
            <td>R3C1</td>
        </tr>
    </tbody>
</table>
#2831 Link dialog ignores id field in Advanced Tab. Confirmed Martin Kou Bug closed Normal
Description

To reproduce:

  1. Open replacebyclass.html
  2. Place cursor on the FCKeditor link.
  3. Open link dialog.
  4. Fill in an id in the Advanced page.
  5. OK.
  6. Go to Source mode.
  7. There is no id.

This bug depends on the refactoring patch of the link dialog I just submitted to Fred.

#2832 Filling in the name field in Link dialog converts link to anchor. Confirmed Martin Kou Bug closed Normal
Description

To reproduce:

  1. Open replacebyclass.html.
  2. Place caret on the FCKeditor link.
  3. Open Link dialog.
  4. Fill in a name in Advanced page.
  5. OK.
  6. Switch to Source mode and back.
  7. The link now appears as an anchor.
#2833 Link dialog does not clear popup target attributes in links. Confirmed Martin Kou Bug closed Normal
Description

To reproduce:

  1. Open replacebyclass.html.
  2. Place caret on the FCKeditor link.
  3. Open Link dialog.
  4. Make the target of the link a popup in the Target page.
  5. OK.
  6. Open Link dialog again.
  7. Make the target of the link "Not Set" in the Target page.
  8. OK.
  9. Switch to Source mode.
  10. The popup attributes on the link are still there.
#2835 plugin:newpage failed to refresh elementpath Confirmed Review+ Frederico Caldeira Knabben Bug closed Normal
Description

Steps to reproduce:

  • Open sample.html?sample=replacebyclass
  • Out cursor in "sample text". [B] is selected. Path: body-p-strong.
  • Click NewPage button
  • Editor is empty but [B] is still active and path is the same.
#2837 Basicstyle plugin bug IE Confirmed Review+ Garry Yao Bug closed Normal
Description

Steps to reproduce:

-Open trunk/_samples/sample.html?sample=replacebyclass in IE

-Select "some" and click Bold.

-Click Source.

-Back to WYSIWYG.

-Select "using" and click Bold.

Result: JS error. Source code:

<p _cke_expando="65">
	This is <strong _cke_expando="70">some sample text</strong>. You are <span _cke_expando="78" _fck_bookmark="1" style="DISPLAY: none">&nbsp;</span>using <span _cke_expando="78" _fck_bookmark="1" style="DISPLAY: none">&nbsp;</span><a _cke_expando="79" href="http://www.fckeditor.net/">FCKeditor</a>.</p>

In FF works fine.

#2841 Live demo would come in handy Confirmed Wiktor Walc New Feature closed Normal
Description

A live demo of the editor would be welcome to quickly track progress and assess loading speed, shortening the download - upload to extranet cycle

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Note: See TracQuery for help on using queries.
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy