Changeset 2199
- Timestamp:
- 2008-07-09 06:54:25 (6 months ago)
- Location:
- FCKeditor/branches/features/div_container/editor
- Files:
-
- 4 modified
-
dialog/fck_div.html (modified) (1 diff)
-
_source/commandclasses/fck_othercommands.js (modified) (2 diffs)
-
_source/internals/fck_contextmenu.js (modified) (1 diff)
-
_source/internals/fckdomtools.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
FCKeditor/branches/features/div_container/editor/dialog/fck_div.html
r2198 r2199 64 64 { 65 65 dialog.Selection.EnsureSelection() ; 66 var range = new FCKDomRange( FCK.EditorWindow ) ; 67 range.MoveToSelection() ; 68 69 var startNode = range.StartNode ; 70 var endNode = range.EndNode ; 71 var elementMarkers = {} ; 72 73 var startPath = new FCKElementPath( startNode ) ; 74 if ( startPath.BlockLimit && startPath.BlockLimit.nodeName.IEquals( 'div' ) ) 75 startNode = startPath.BlockLimit ; 76 var currentNode = startNode ; 77 78 do 79 { 80 if ( currentNode.nodeName.IEquals( 'div' ) && currentNode.firstChild && 81 FCKListsLib.BlockElements[ currentNode.firstChild.nodeName.toLowerCase() ] ) 82 { 83 CurrentContainers.push( currentNode ) ; 84 if ( currentNode.parentNode.nodeName.IEquals( 'div' ) ) 85 FCKDomTools.SetElementMarker( elementMarkers, currentNode.parentNode, 86 '_fckignorethisnode', true ) ; 87 } 88 } 89 while ( ( currentNode = FCKDomTools.GetNextSourceElement( currentNode ) ) && currentNode != endNode 90 && currentNode != endNode.parentNode ) ; 91 92 for ( var i = CurrentContainers.length - 1 ; i >= 0 ; i-- ) 93 { 94 if ( CurrentContainers[i]['_fckignorethisnode'] ) 95 CurrentContainers.splice( i, 1 ) ; 96 } 97 98 FCKDomTools.ClearAllMarkers( elementMarkers ) ; 66 CurrentContainers = FCKDomTools.GetSelectedDivContainers() ; 99 67 } 100 68 -
FCKeditor/branches/features/div_container/editor/_source/commandclasses/fck_othercommands.js
r2118 r2199 538 538 FCKUndo.SaveUndoStep() ; 539 539 540 // Find out the node to delete. 541 var node = FCKSelection.GetParentElement() ; 542 var path = new FCKElementPath( node ) ; 543 node = path.BlockLimit ; 540 // Find out the nodes to delete. 541 var nodes = FCKDomTools.GetSelectedDivContainers() ; 544 542 545 543 // Remember the current selection position. … … 549 547 550 548 // Delete the container DIV node. 551 FCKDomTools.RemoveNode( node, true ) ; 549 for ( var i = 0 ; i < nodes.length ; i++) 550 FCKDomTools.RemoveNode( nodes[i], true ) ; 552 551 553 552 // Restore selection. -
FCKeditor/branches/features/div_container/editor/_source/internals/fck_contextmenu.js
r2198 r2199 298 298 AddItems : function( menu, tag, tagName ) 299 299 { 300 var currentBlocks = [] ; 301 var range = new FCKDomRange( FCK.EditorWindow ) ; 302 range.MoveToSelection() ; 303 304 var startNode = range.StartNode ; 305 var endNode = range.EndNode ; 306 var elementMarkers = {} ; 307 308 var startPath = new FCKElementPath( startNode ) ; 309 if ( startPath.BlockLimit && startPath.BlockLimit.nodeName.IEquals( 'div' ) ) 310 startNode = startPath.BlockLimit ; 311 var currentNode = startNode ; 312 313 do 314 { 315 if ( currentNode.nodeName.IEquals( 'div' ) && currentNode.firstChild && 316 FCKListsLib.BlockElements[ currentNode.firstChild.nodeName.toLowerCase() ] ) 317 { 318 currentBlocks.push( currentNode ) ; 319 if ( currentNode.parentNode.nodeName.IEquals( 'div' ) ) 320 FCKDomTools.SetElementMarker( elementMarkers, currentNode.parentNode, 321 '_fckignorethisnode', true ) ; 322 } 323 } 324 while ( ( currentNode = FCKDomTools.GetNextSourceElement( currentNode ) ) && currentNode != endNode 325 && currentNode != endNode.parentNode ) ; 326 327 for ( var i = currentBlocks.length - 1 ; i >= 0 ; i-- ) 328 { 329 if ( currentBlocks[i]['_fckignorethisnode'] ) 330 currentBlocks.splice( i, 1 ) ; 331 } 332 333 FCKDomTools.ClearAllMarkers( elementMarkers ) ; 300 var currentBlocks = FCKDomTools.GetSelectedDivContainers() ; 334 301 335 302 if ( currentBlocks.length > 0 ) -
FCKeditor/branches/features/div_container/editor/_source/internals/fckdomtools.js
r2187 r2199 1022 1022 // In the DTD # == text node. 1023 1023 return ( childDTD['#'] && !FCKListsLib.NonEditableElements[ nodeName ] ) ; 1024 }, 1025 1026 GetSelectedDivContainers : function() 1027 { 1028 var currentBlocks = [] ; 1029 var range = new FCKDomRange( FCK.EditorWindow ) ; 1030 range.MoveToSelection() ; 1031 1032 var startNode = range.StartNode ; 1033 var endNode = range.EndNode ; 1034 var elementMarkers = {} ; 1035 1036 var startPath = new FCKElementPath( startNode ) ; 1037 if ( startPath.BlockLimit && startPath.BlockLimit.nodeName.IEquals( 'div' ) ) 1038 startNode = startPath.BlockLimit ; 1039 var currentNode = startNode ; 1040 1041 do 1042 { 1043 if ( currentNode.nodeName.IEquals( 'div' ) && currentNode.firstChild && 1044 FCKListsLib.BlockElements[ currentNode.firstChild.nodeName.toLowerCase() ] ) 1045 { 1046 currentBlocks.push( currentNode ) ; 1047 if ( currentNode.parentNode.nodeName.IEquals( 'div' ) ) 1048 FCKDomTools.SetElementMarker( elementMarkers, currentNode.parentNode, 1049 '_fckignorethisnode', true ) ; 1050 } 1051 } 1052 while ( ( currentNode = FCKDomTools.GetNextSourceElement( currentNode ) ) && currentNode != endNode 1053 && currentNode != endNode.parentNode ) ; 1054 1055 for ( var i = currentBlocks.length - 1 ; i >= 0 ; i-- ) 1056 { 1057 if ( currentBlocks[i]['_fckignorethisnode'] ) 1058 currentBlocks.splice( i, 1 ) ; 1059 } 1060 1061 FCKDomTools.ClearAllMarkers( elementMarkers ) ; 1062 1063 return currentBlocks ; 1024 1064 } 1025 1065 } ;