jquery.textSelection: Remove references to iframe
authorDerk-Jan Hartman <hartman.wiki@gmail.com>
Sun, 15 Jun 2014 16:48:08 +0000 (18:48 +0200)
committerKrinkle <krinklemail@gmail.com>
Fri, 27 Jun 2014 10:41:48 +0000 (10:41 +0000)
Another attempt to solve the references to WikiEditor's 'iframe' code.
Renamed to a more suited name. The implementation still depends on
WikiEditor. Long term, we should probably move part of the WikiEditor
API into core.

Bug: 29328
Change-Id: Ibe011b2b8d045b4dace3106b8ae718a11387501e

resources/src/jquery/jquery.textSelection.js

index 042db91..0573f66 100644 (file)
@@ -25,7 +25,7 @@
        $.fn.textSelection = function ( command, options ) {
                var fn,
                        context,
-                       hasIframe,
+                       hasWikiEditorSurface, // The alt edit surface needs to implement the WikiEditor API
                        needSave,
                        retval;
 
                                        // Position to start selection at
                                        start: undefined,
                                        // Position to end selection at. Defaults to start
-                                       end: undefined,
-                                       // Element to start selection in (iframe only)
-                                       startContainer: undefined,
-                                       // Element to end selection in (iframe only). Defaults to startContainer
-                                       endContainer: undefined
+                                       end: undefined
                                }, options );
 
                                if ( options.end === undefined ) {
                                        options.end = options.start;
                                }
-                               if ( options.endContainer === undefined ) {
-                                       options.endContainer = options.startContainer;
-                               }
                                // FIXME: We may not need character position-based functions if we insert markers in the right places
                                break;
                        case 'scrollToCaretPosition':
                }
 
                context = $( this ).data( 'wikiEditor-context' );
-               hasIframe = context !== undefined && context && context.$iframe !== undefined;
+               hasWikiEditorSurface = ( context !== undefined );
 
                // IE selection restore voodoo
                needSave = false;
-               if ( hasIframe && context.savedSelection !== null ) {
+               if ( hasWikiEditorSurface && context.savedSelection !== null ) {
                        context.fn.restoreSelection();
                        needSave = true;
                }
-               retval = ( hasIframe ? context.fn : fn )[command].call( this, options );
-               if ( hasIframe && needSave ) {
+               retval = ( hasWikiEditorSurface && context.fn[command] !== undefined ? context.fn : fn )[command].call( this, options );
+               if ( hasWikiEditorSurface && needSave ) {
                        context.fn.saveSelection();
                }