Ticket #5692: 5692.patch

File 5692.patch, 3.4 KB (added by garry.yao, 4 years ago)
  • _source/plugins/dropfile/plugin.js

     
     1/* 
     2Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 
     3For licensing, see LICENSE.html or http://ckeditor.com/license 
     4*/ 
     5 
     6CKEDITOR.plugins.add( 'dropfile', 
     7{ 
     8        init : function( editor ) 
     9        { 
     10                // Only works for browers that support dropping desktop file into RTE. 
     11                if ( !( CKEDITOR.env.gecko || CKEDITOR.env.webkit ) ) 
     12                        return; 
     13 
     14                var localImageFileRegexp = /^file:\/\/.*?\.(jpg|jpeg|png|gif)$/; 
     15                function handleDrop( evt ) 
     16                { 
     17                        var target = evt.data.getTarget(), 
     18                                        candidateUrl, 
     19                                        imageFileUrl; 
     20 
     21                        candidateUrl = target.type == CKEDITOR.NODE_ELEMENT ? 
     22                                ( target.is( 'img' ) ? target.getAttribute( 'src' ) 
     23                                        : target.is( 'a' )? target.getAttribute( 'href' ) : null ) : null; 
     24 
     25                        if ( candidateUrl && candidateUrl.match( localImageFileRegexp ) ) 
     26                                imageFileUrl = candidateUrl; 
     27 
     28                        imageFileUrl && setTimeout( function () 
     29                                { 
     30                                        editor.fire( 'dropDesktopImage', { url : imageFileUrl, node : target } ); 
     31                                }, 0 ); 
     32                } 
     33 
     34                editor.on( 'contentDom', function ( evt ) 
     35                { 
     36                        var isDragging; 
     37                        function removeDropListener() 
     38                        { 
     39                                if ( isDragging ) 
     40                                { 
     41                                        isDragging = 0; 
     42                                        doc.removeListener( 'DOMNodeInserted', handleDrop ); 
     43                                } 
     44                        } 
     45                 
     46                        function addDropListener() 
     47                        { 
     48                                if ( !isDragging ) 
     49                                { 
     50                                        isDragging = 1; 
     51                                        doc.on( 'DOMNodeInserted', handleDrop ); 
     52                                } 
     53                        } 
     54 
     55                        var doc =  editor.document, 
     56                                        outerDoc = CKEDITOR.document; 
     57                        doc.on( 'dragenter', addDropListener ); 
     58                        outerDoc.on( 'mousemove', removeDropListener ); 
     59                        outerDoc.on( 'dragenter', removeDropListener ); 
     60                }); 
     61        } 
     62}); 
  • _source/plugins/image/plugin.js

     
    5151                                        return { image : CKEDITOR.TRISTATE_OFF }; 
    5252                                }); 
    5353                } 
     54 
     55                // Open dialog with the dropped image file path as url from desktop. 
     56                editor.on( 'dropDesktopImage', function( evt ) 
     57                { 
     58                        var url = evt.data.url, 
     59                                        node = evt.data.node; 
     60 
     61                        // Remove the default node created by browser on drop. 
     62                        var range = new CKEDITOR.dom.range( editor.document ); 
     63                        range.setStartBefore( node ); 
     64                        range.setEndAfter( node ); 
     65                        range.extractContents(); 
     66                        range.select(); 
     67 
     68                        editor.openDialog( 'image', function() 
     69                        { 
     70                                var dialog = this; 
     71                                // Defer until dialog is shown. 
     72                                setTimeout( function () 
     73                                { 
     74                                        dialog.selectPage( 'Upload' ); 
     75                                        window.prompt( editor.lang.image.copyUploadUrlPrompt, url ); 
     76                                }, 1000 ); 
     77                        }); 
     78                }) 
     79 
    5480        } 
    5581} ); 
    5682 
  • _source/lang/en.js

     
    425425                validateHeight  : 'Height must be a whole number.', 
    426426                validateBorder  : 'Border must be a whole number.', 
    427427                validateHSpace  : 'HSpace must be a whole number.', 
    428                 validateVSpace  : 'VSpace must be a whole number.' 
     428                validateVSpace  : 'VSpace must be a whole number.', 
     429                copyUploadUrlPrompt: 'You may want to copy the URL of image to upload.' 
    429430        }, 
    430431 
    431432        // Flash Dialog 
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy