Changeset 3048


Ignore:
Timestamp:
02/11/09 14:41:52 (5 years ago)
Author:
martinkou
Message:

Fixed #2852 : Added link, unlink and anchor buttons.

Location:
CKEditor/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/_samples/api_dialog.html

    r3020 r3048  
    5757                        // Remove the "Link Type" combo and the "Browser 
    5858                        // Server" button from the "info" tab. 
    59                         infoTab.remove( 'protocol' ); 
     59                        infoTab.remove( 'linkType' ); 
    6060                        infoTab.remove( 'browse' ); 
    6161 
  • CKEditor/trunk/_source/core/config.js

    r3047 r3048  
    147147         * config.plugins = 'basicstyles,button,htmldataprocessor,toolbar,wysiwygarea'; 
    148148         */ 
    149         plugins : 'basicstyles,button,elementspath,horizontalrule,htmldataprocessor,keystrokes,newpage,pagebreak,removeformat,smiley,sourcearea,table,specialchar,tab,toolbar,wysiwygarea', 
     149        plugins : 'basicstyles,button,elementspath,horizontalrule,htmldataprocessor,keystrokes,newpage,pagebreak,removeformat,smiley,link,sourcearea,table,specialchar,tab,toolbar,wysiwygarea', 
    150150 
    151151        /** 
  • CKEditor/trunk/_source/core/dom/element.js

    r3047 r3048  
    686686                }, 
    687687 
     688                copyAttributes : function( target, skip ) 
     689                { 
     690                        skip || ( skip = {} ); 
     691                        var attributes = this.$.attributes ; 
     692 
     693                        for ( var n = 0 ; n < attributes.length ; n++ ) 
     694                        { 
     695                                var attr = attributes[n] ; 
     696 
     697                                if ( attr.specified ) 
     698                                { 
     699                                        var attrName = attr.nodeName ; 
     700                                        if ( attrName in skip ) 
     701                                                continue ; 
     702 
     703                                        var attrValue = this.getAttribute( attrName ); 
     704                                        if ( !attrValue ) 
     705                                                attrValue = attr.nodeValue ; 
     706 
     707                                        target.setAttribute( attrName, attrValue ); 
     708                                } 
     709                        } 
     710 
     711                        if ( this.$.style.cssText !== '' ) 
     712                                target.$.style.cssText = this.$.style.cssText ; 
     713                }, 
     714 
    688715                /** 
    689716                 * Shows this element (display it). 
  • CKEditor/trunk/_source/core/htmlparser/element.js

    r3043 r3048  
    6767        }; 
    6868 
     69        var ckeAttrRegex = /^_cke/, 
     70                ckeClassRegex = /(^|\s+)cke_[^\s]*/g; 
     71 
    6972        CKEDITOR.htmlParser.element.prototype = 
    7073        { 
     
    131134                        { 
    132135                                // Ignore all attributes starting with "_cke". 
    133                                 if ( !/^_cke/.test( a ) ) 
    134                                         attribsArray.push( [ a, this.attributes[ a ] ] ); 
     136                                if ( ckeAttrRegex.test( a ) ) 
     137                                        continue; 
     138 
     139                                // Ignore all cke_* CSS classes. 
     140                                if ( a.toLowerCase() == 'class' ) 
     141                                { 
     142                                        this.attributes[ a ] = CKEDITOR.tools.ltrim( this.attributes[ a ].replace( ckeClassRegex, '' ) ); 
     143                                        if ( this.attributes[ a ] == '' ) 
     144                                                continue; 
     145                                } 
     146 
     147                                attribsArray.push( [ a, this.attributes[ a ] ] ); 
    135148                        } 
    136149 
  • CKEditor/trunk/_source/plugins/dialogui/plugin.js

    r3044 r3048  
    884884                                { 
    885885                                        this.select(); 
     886                                }, 
     887 
     888                                /** 
     889                                 * Sets the value of this text input object. 
     890                                 * @param {Object} value The new value. 
     891                                 * @returns {CKEDITOR.ui.dialog.textInput} The current UI element. 
     892                                 * @example 
     893                                 * uiElement.setValue( 'Blamo' ); 
     894                                 */ 
     895                                setValue : function( value ) 
     896                                { 
     897                                        value = value || ''; 
     898                                        return CKEDITOR.ui.dialog.uiElement.prototype.setValue.call( this, value ); 
    886899                                } 
    887900                        }, commonPrototype, true ); 
  • CKEditor/trunk/_source/plugins/fakeobjects/plugin.js

    r3043 r3048  
    66CKEDITOR.plugins.add( 'fakeobjects' ); 
    77 
    8 CKEDITOR.editor.prototype.createFakeElement = function( realElement, className ) 
     8CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType ) 
    99{ 
    10         return this.document.createElement( 'img', 
    11                 { 
    12                         attributes : 
    13                                 { 
    14                                         'class' : className, 
    15                                         src : CKEDITOR.getUrl( 'images/spacer.gif' ), 
    16                                         _cke_realelement : encodeURIComponent( realElement.getOuterHtml() ) 
    17                                 } 
    18                 }); 
     10        var attributes =  
     11        { 
     12                'class' : className, 
     13                src : CKEDITOR.getUrl( 'images/spacer.gif' ), 
     14                _cke_realelement : encodeURIComponent( realElement.getOuterHtml() ) 
     15        }; 
     16        if ( realElementType ) 
     17                attributes._cke_real_element_type = realElementType; 
     18 
     19        return this.document.createElement( 'img', { attributes : attributes } ); 
    1920}; 
     21 
     22CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement ) 
     23{ 
     24        var html = decodeURIComponent( fakeElement.getAttribute( '_cke_realelement' ) ), 
     25                realElement = CKEDITOR.dom.element.createFromHtml( html, this.document ); 
     26 
     27        if ( fakeElement.$.style.width ) 
     28                realElement.setStyle( 'width', fakeElement.$.style.width ); 
     29        if ( fakeElement.$.style.height ) 
     30                realElement.setStyle( 'height', fakeElement.$.style.height ); 
     31 
     32        return realElement; 
     33}; 
  • CKEditor/trunk/_source/plugins/pagebreak/plugin.js

    r3043 r3048  
    5050                                        if ( div.getStyle( 'page-break-after' ) == 'always' && !/[^\s\u00A0]/.test( div.getText() ) ) 
    5151                                        { 
    52                                                 editor.createFakeElement( div, 'cke_pagebreak' ).replace( div ); 
     52                                                editor.createFakeElement( div, 'cke_pagebreak', 'div' ).replace( div ); 
    5353                                        } 
    5454                                } 
     
    6666                 
    6767                // Creates the fake image used for this element. 
    68                 breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak' ); 
     68                breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' ); 
    6969                 
    7070                var ranges = editor.getSelection().getRanges(); 
  • CKEditor/trunk/_source/plugins/toolbar/plugin.js

    r3047 r3048  
    212212                'Subscript', 'Superscript', '-', 
    213213                'SelectAll', 'RemoveFormat', '-', 
     214                'Link', 'Unlink', 'Anchor', '-', 
    214215                'Table', 'Smiley', 'HorizontalRule', 'SpecialChar', 'PageBreak' 
    215216        ] 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy