Skip to content
Permalink
Browse files

Merge branch 't/10659' into major

  • Loading branch information...
oleq committed Sep 12, 2013
2 parents 8b22ce8 + 4dd94fa commit 1895ef472522b9696e6ef4b184f98bdd74d51a4f
@@ -237,56 +237,92 @@
/**
* @see CKEDITOR.editor#insertElement
*/
insertElement: function( element ) {
beforeInsert( this );
insertElement: function( element, range ) {
if ( !range )
this.insertElementIntoSelection( element );
else
this.insertElementIntoRange( element, range );
},

/**
* Inserts an element into the position in the editor determined by range.
*
* @param {CKEDITOR.dom.element} element The element to be inserted.
* @param {CKEDITOR.dom.range} range The range as a place of insertion.
* @returns {Boolean} Informs whether insertion was successful.
*/
insertElementIntoRange: function( element, range ) {
var editor = this.editor,
enterMode = editor.config.enterMode,
elementName = element.getName(),
isBlock = CKEDITOR.dtd.$block[ elementName ];

if ( range.checkReadOnly() )
return false;

// Remove the original contents, merge split nodes.
range.deleteContents( 1 );

// If we're inserting a block at dtd-violated position, split
// the parent blocks until we reach blockLimit.
var current, dtd;

if ( isBlock ) {
while ( ( current = range.getCommonAncestor( 0, 1 ) ) &&
( dtd = CKEDITOR.dtd[ current.getName() ] ) &&
!( dtd && dtd[ elementName ] ) ) {

// Split up inline elements.
if ( current.getName() in CKEDITOR.dtd.span )
range.splitElement( current );

// If we're in an empty block which indicate a new paragraph,
// simply replace it with the inserting block.(#3664)
else if ( range.checkStartOfBlock() && range.checkEndOfBlock() ) {
range.setStartBefore( current );
range.collapse( true );
current.remove();
} else
range.splitBlock( enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p', editor.editable() );
}
}

// Insert the new node.
range.insertNode( element );

// Return true if insertion was successful.
return true;
},

/**
* Inserts an element into the currently selected position in the editor.
*
* @param {CKEDITOR.dom.element} element The element to be inserted.
*/
insertElementIntoSelection: function( element ) {
var editor = this.editor,
enterMode = editor.activeEnterMode,
selection = editor.getSelection(),
ranges = selection.getRanges(),
elementName = element.getName(),
isBlock = CKEDITOR.dtd.$block[ elementName ];
isBlock = CKEDITOR.dtd.$block[ elementName ],
clone, lastElement, range;

var range, clone, lastElement;
// Prepare for the insertion.
beforeInsert( this );

for ( var i = ranges.length - 1; i >= 0; i-- ) {
// Insert the element into all ranges by cloning.
for ( var i = ranges.length; i--; ) {
range = ranges[ i ];

if ( !range.checkReadOnly() ) {
// Remove the original contents, merge split nodes.
range.deleteContents( 1 );

clone = !i && element || element.clone( 1 );

// If we're inserting a block at dtd-violated position, split
// the parent blocks until we reach blockLimit.
var current, dtd;
if ( isBlock ) {
while ( ( current = range.getCommonAncestor( 0, 1 ) ) &&
( dtd = CKEDITOR.dtd[ current.getName() ] ) &&
!( dtd && dtd[ elementName ] ) ) {
// Split up inline elements.
if ( current.getName() in CKEDITOR.dtd.span )
range.splitElement( current );
// If we're in an empty block which indicate a new paragraph,
// simply replace it with the inserting block.(#3664)
else if ( range.checkStartOfBlock() && range.checkEndOfBlock() ) {
range.setStartBefore( current );
range.collapse( true );
current.remove();
} else
range.splitBlock( enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p', editor.editable() );
}
}

// Insert the new node.
range.insertNode( clone );
// Clone is an element for the first range.
clone = !i && element || element.clone( 1 );

// Save the last element reference so we can make the
// selection later.
if ( !lastElement )
lastElement = clone;
}
// Put the clone into a particular range.
// Save the last **successfully inserted** element reference
// so we can make the selection later.
if ( this.insertElementIntoRange( clone, range ) && !lastElement );
lastElement = clone;
}

if ( lastElement ) {
@@ -301,8 +337,7 @@
return isNotEmpty( node ) && !isBogus( node );
} );

if ( next && next.type == CKEDITOR.NODE_ELEMENT &&
next.is( CKEDITOR.dtd.$block ) ) {
if ( next && next.type == CKEDITOR.NODE_ELEMENT && next.is( CKEDITOR.dtd.$block ) ) {

// If the next one is a text block, move cursor to the start of it's content.
if ( next.getDtd()[ '#' ] )
@@ -319,6 +354,7 @@
}
}

// Set up the correct selection.
selection.selectRanges( [ range ] );

// Do not scroll after inserting, because Opera may fail on certain element (e.g. iframe/iframe.html).
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,32 @@
/*
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/

figure.caption {
text-align: center;
border: solid 1px #ccc;
border-radius: 2px;
background: rgba(0,0,0,0.05);
padding: 10px;
margin: 10px 20px;
display: block; /* For IE8 */
}

figure.caption figcaption {
text-align: center;
display: block; /* For IE8 */
}

.cke_widget_wrapper:hover:after {
content: "id: " attr(data-widget-id);
position: absolute;
top: 0;
right: 0;
padding: 2px 4px;
background: #EEE;
border: solid 1px #DDD;
border-radius: 2px;
color: #BBB;
font: bold 10px sans-serif;
}
@@ -0,0 +1,199 @@
<!DOCTYPE html>
<!--
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
-->
<html>
<head>
<title>Widget image2 &mdash; CKEditor Sample</title>
<meta charset="utf-8">
<script src="../../../ckeditor.js"></script>
<script src="../../../dev/console/console.js"></script>
<script src="../../../dev/console/focusconsole.js"></script>
<script src="../../widget/dev/console.js"></script>
<script>
if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
CKEDITOR.tools.enableHtml5Elements( document );
</script>
<link href="../../../samples/sample.css" rel="stylesheet">
<meta name="ckeditor-sample-name" content="Widget image2">
<meta name="ckeditor-sample-group" content="Plugins">
<meta name="ckeditor-sample-description" content="Widget img showcase.">
<meta name="ckeditor-sample-isnew" content="1">

<style>
body {
font-size: 13px;
}
.editable {
padding: 20px;
border: 2px solid #dfdfdf;
overflow: auto;
}
body p {
line-height: 1.8em;
}
/* Reset some styles from sample.css */
.cke_editable.cke_editable_inline
{
cursor: auto;
}
.cke_editable.cke_editable_inline.cke_focus
{
box-shadow: none;
background: inherit;
cursor: auto;
}
</style>
<link href="contents.css" rel="stylesheet">
</head>
<body>
<h1 class="samples">
<a href="../../../samples/index.html">CKEditor Samples</a> &raquo; Widget image2
</h1>

<h2>Framed sample</h2>

<textarea id="editor1" cols="10" rows="10">
<h1>Apollo 11</h1>

<figure class="caption" style="float: right">
<img alt="Saturn V" src="assets/image1.jpg" width="200" />
<figcaption>Roll out of Saturn V on launch pad</figcaption>
</figure>

<p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p>

<p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>

<h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>

<p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>

<blockquote>
<p>One small step for [a] man, one giant leap for mankind.</p>
</blockquote>

<p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>

<blockquote>
<p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>
</blockquote>

<figure class="caption" style="float: right">
<img alt="The Eagle" src="assets/image2.jpg" style="width: 200px" />
<figcaption>The Eagle in lunar orbit</figcaption>
</figure>

<h2>Technical details <a id="tech-details" name="tech-details"></a></h2>

<p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p>

<ol>
<li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>
<li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>
<li><strong>Lunar Module</strong> for landing on the Moon.</li>
</ol>

<p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>

<p style="text-align:center">
<img alt="Saturn V" src="assets/image1.jpg" width="200" />
</p>

<hr />
<p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
</textarea>

<h2>Inline sample</h2>

<div id="editor2" contenteditable="true" class="editable">
<h2>Apollo 11</h2>

<figure class="caption" style="float: right">
<img alt="Saturn V" src="assets/image1.jpg" width="200" />
<figcaption>Roll out of Saturn V on launch pad</figcaption>
</figure>

<p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p>

<p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>

<h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>

<p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>

<blockquote>
<p>One small step for [a] man, one giant leap for mankind.</p>
</blockquote>

<p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>

<blockquote>
<p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>
</blockquote>

<figure class="caption" style="float: right">
<img alt="The Eagle" src="assets/image2.jpg" style="width: 200px" />
<figcaption>The Eagle in lunar orbit</figcaption>
</figure>

<h2>Technical details <a id="tech-details" name="tech-details"></a></h2>

<p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p>

<ol>
<li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>
<li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>
<li><strong>Lunar Module</strong> for landing on the Moon.</li>
</ol>

<p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>

<p style="text-align:center">
<img alt="Saturn V" src="assets/image1.jpg" width="200" />
</p>

<hr />
<p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
</div>

<script>
CKEDITOR.disableAutoInline = true;
CKEDITOR.replace( 'editor1', {
extraPlugins: 'image2',
height: 600,
removePlugins: 'image,forms',
contentsCss: [ '../../../contents.css', 'contents.css' ],
} );
CKEDITOR.inline( 'editor2', {
removePlugins: 'image,forms',
extraPlugins: 'image2,sourcedialog'
} );
CKCONSOLE.create( 'widget', { editor: 'editor1' } );
CKCONSOLE.create( 'focus', { editor: 'editor1' } );
CKCONSOLE.create( 'widget', { editor: 'editor2', folded: true } );
CKCONSOLE.create( 'focus', { editor: 'editor2', folded: true } );
</script>

<div id="footer">
<hr>
<p>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
Copyright &copy; 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
</body>
</html>
Oops, something went wrong.

0 comments on commit 1895ef4

Please sign in to comment.
You can’t perform that action at this time.