﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
9764	Widgets feature	Frederico Caldeira Knabben	Piotrek Koszuliński	"Widgets are represented by a group of elements that act as a single entity inside the editable content. The widget elements are many times protected from direct editing and can be configured to have different behavior, features or layout.

A good example for a widgets is a ""captioned image"", which contains an image element and text for the caption.  Both parts will always live together and should be selected as a whole. Once deleted, both should be removed.

== Status ==

=== API ===

 * Ready: >95%
 * TODO:
  * `widgetsRepository#del` - deleting existing widget (with selection handling);
  * ability to change widget's internal structure during runtime;
  * `widget#focused` property;
  * cleanup in `sel#fake` method - key listener doesn't need to be configurable any more and perhaps should reuse `editor#key`;
  * `widget#getOutput` -> ?;
  * review -> enhancements;
  * `editor#doubleclick` should be moved from dialog plugin to core (important for Drupal, because they don't use our dialog plugin);
  * publicizing `isWidget*` methods?;

=== General UI ===

 * Ready: >90%
 * TODO:
  * better styling;

=== Data processing, ACF, filtering ===

 * Ready: >90%
 * TODO:
  * filtering nested editables;
  * bug: pasting widget into editor which does not support them;
  * general issue: cross-editor pasting/d&d when widgets configuration differ;
  * more precise attributes prefixing: `data-widget*` -> `data-cke-widget*`;
  * block inserting/pasting widget in nested editable;

=== Selection and focus ===

 * Ready: >90%
 * TODO:
  * bug: broken selection after loading data with no correct place for caret (especially when widget has nested editable);
  * `checkSelection` should be fired after `execCommand` and perhaps `saveSnapshot` too, or better - on new `change` event;
  * better hiding hidden selection container;
  * ~~bug: uncool scroll after focusing widget for the first time;~~
  * automatic cross-editables selection fixing (when selection starts in one editable and ends in another one);
  * ~~bug: IE - failing focus test in nested editables;~~
  * bug: FF - fill empty nested editables with bogus br after removing all characters;
  * bug: IE - selection can't be moved from nested editable to widget - editor is blurred;

=== Drag & drop ===

 * Ready: >90%
 * TODO:
  * ~~bug: clicking drag handler (without dragging) should focus widget~~;
  * handler should be invisible when dragging it;
  * bug: FF - caret is not visible after drop, though content is editable and selection can be moved around (dialog open&close helps);
  * bug: IE - widget is not focused after D&D;
  
=== Copy & paste ===

 * Ready: >95%
 * TODO:
  * hiding copybin;

=== Keyboard navigation ===

 * Ready: >90%
 * TODO:
  * moving between nested editables and out of nested editable using arrow keys;
  * bug: issues related to bogus br on Firefox (tests failures);

=== Mouse navigation ===

 * Ready: >90%
 * TODO:
  * context menu;
  * ~~click events (e.g. doubleclick) in nested editables should not be forwarded to widgets~~;

=== Undo manager ===

 * Blocked by undo manager's bugs. Impossible to work on now.

=== Contextualized toolbar ===

 * Ready: >95% core, <25% plugins coverage
 * TODO:
  * updating other plugins;

=== A11y ===

 * Ready: ?

=== Other ===

 * TODO:
  * displaying widget in elements path & focusing on click;
  * enter key - integration with ACF, enhancements for nested editables;
  * autoparagraphing in nested editables?;
  * docs;
  * error: `Uncaught TypeError: Cannot read property 'startContainer' of undefined` when focusing nested editables;
  * IE8;
  * updates for magicline (tests for blacklisting feature created by Olek);
  * linting;"	New Feature	assigned	Normal	CKEditor 4.3	General			Drupal	wim.leers@… matti.jarvinen@…
