Ticket #5460: 5460.patch
File 5460.patch, 2.4 KB (added by , 15 years ago) |
---|
-
_source/plugins/list/plugin.js
38 38 if ( listItem.$.nodeName.toLowerCase() != 'li' ) 39 39 continue; 40 40 41 var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem };41 var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem, contents : [] }; 42 42 if ( !grandparentNode ) 43 43 { 44 44 itemObj.grandparent = listNode.getParent(); … … 54 54 55 55 for ( var j = 0, itemChildCount = listItem.getChildCount(), child; j < itemChildCount ; j++ ) 56 56 { 57 child = listItem.getChild( j ); 58 // Push inner list items with +1 indentation in the correct order. 57 var child = listItem.getChild( j ); 59 58 if ( child.type == CKEDITOR.NODE_ELEMENT && listNodeNames[ child.getName() ] ) 59 // Note the recursion here, it pushes inner list items with 60 // +1 indentation in the correct order. 60 61 CKEDITOR.plugins.list.listToArray( child, database, baseArray, baseIndentLevel + 1, itemObj.grandparent ); 62 else 63 itemObj.contents.push( child ); 61 64 } 62 65 } 63 66 return baseArray; … … 87 90 rootNode = listArray[ currentIndex ].parent.clone( false, true ); 88 91 retval.append( rootNode ); 89 92 } 90 currentListItem = rootNode.append( item.element ); 93 currentListItem = rootNode.append( item.element.clone( false, true ) ); 94 for ( var i = 0 ; i < item.contents.length ; i++ ) 95 currentListItem.append( item.contents[i].clone( true, true ) ); 91 96 currentIndex++; 92 97 } 93 98 else if ( item.indent == Math.max( indentLevel, 0 ) + 1 ) … … 100 105 { 101 106 currentListItem; 102 107 if ( listNodeNames[ item.grandparent.getName() ] ) 103 currentListItem = item.element ;108 currentListItem = item.element.clone( false, true ); 104 109 else 105 110 { 106 111 // Create completely new blocks here, attributes are dropped. … … 110 115 currentListItem = new CKEDITOR.dom.documentFragment( doc ); 111 116 } 112 117 113 item.element.moveChildren( currentListItem ); 118 for ( i = 0 ; i < item.contents.length ; i++ ) 119 currentListItem.append( item.contents[i].clone( true, true ) ); 114 120 115 121 if ( currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT 116 122 && currentIndex != listArray.length - 1 )