Ticket #3004: 3004.patch

File 3004.patch, 2.7 KB (added by Artur Formella, 12 years ago)
  • _source/plugins/link/dialogs/link.js

     
    289289                                                                                items :
    290290                                                                                [
    291291                                                                                        [ 'http://' ],
    292                                                                                         [ 'https//' ],
     292                                                                                        [ 'https://' ],
    293293                                                                                        [ 'ftp://' ],
    294294                                                                                        [ 'news://' ],
    295295                                                                                        [ '<other>', '' ]
     
    311311                                                                                type : 'text',
    312312                                                                                id : 'url',
    313313                                                                                label : editor.lang.common.url,
     314                                                                                onLoad : function ()
     315                                                                                {
     316                                                                                        this.allowOnChange = true;
     317                                                                                },
     318                                                                                onKeyUp : function()
     319                                                                                {
     320                                                                                        this.allowOnChange = false;
     321                                                                                        var     protocolCmb = this.getDialog().getContentElement( 'info', 'protocol' ),
     322                                                                                                url = this.getValue(),
     323                                                                                                urlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi,
     324                                                                                                urlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi;
     325
     326                                                                                        var protocol = urlOnChangeProtocol.exec( url );
     327                                                                                        if ( protocol )
     328                                                                                        {
     329                                                                                                this.setValue( url.substr( protocol[ 0 ].length ) );
     330                                                                                                protocolCmb.setValue( protocol[ 0 ].toLowerCase() );
     331                                                                                        }
     332                                                                                        else if ( urlOnChangeTestOther.test( url ) )
     333                                                                                                protocolCmb.setValue( '' );
     334
     335                                                                                        this.allowOnChange = true;
     336                                                                                },
     337                                                                                onChange : function()
     338                                                                                {
     339                                                                                        if ( this.allowOnChange )               // Dont't call on dialog load.
     340                                                                                                this.onKeyUp();
     341                                                                                },
    314342                                                                                validate : function()
    315343                                                                                {
    316344                                                                                        var dialog = this.getDialog();
     
    327355                                                                                },
    328356                                                                                setup : function( data )
    329357                                                                                {
     358                                                                                        this.allowOnChange = false;
    330359                                                                                        if ( data.url )
    331360                                                                                                this.setValue( data.url.url );
     361                                                                                        this.allowOnChange = true;
    332362
    333363                                                                                        var linkType = this.getDialog().getContentElement( 'info', 'linkType' );
    334364                                                                                        if ( linkType && linkType.getValue() == 'url' )
    335365                                                                                                this.select();
     366
    336367                                                                                },
    337368                                                                                commit : function( data )
    338369                                                                                {
     
    340371                                                                                                data.url = {};
    341372
    342373                                                                                        data.url.url = this.getValue();
     374                                                                                        this.allowOnChange = false;
    343375                                                                                }
    344376                                                                        }
    345377                                                                ],
     
    10061038                        switch ( data.type || 'url' )
    10071039                        {
    10081040                                case 'url':
    1009                                         var protocol = ( data.url && data.url.protocol ) || 'http://',
     1041                                        var protocol = ( data.url && data.url.protocol != undefined ) ? data.url.protocol : 'http://',
    10101042                                                url = ( data.url && data.url.url ) || '';
    10111043                                        attributes._cke_saved_href = protocol + url;
    10121044                                        break;
© 2003 – 2020 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy