http://www.mediawiki.org/wiki/Special:Code/MediaWiki/73648

Revision: 73648
Author:   dale
Date:     2010-09-23 23:44:34 +0000 (Thu, 23 Sep 2010)

Log Message:
-----------
fixes to adding timed text interface

Modified Paths:
--------------
    
branches/MwEmbedStandAlone/libraries/jquery/plugins/jquery.menu/jquery.menu.js
    branches/MwEmbedStandAlone/modules/Sequencer/mw.SequencerServer.js
    branches/MwEmbedStandAlone/modules/SwarmTransport/mw.SwarmTransport.js
    branches/MwEmbedStandAlone/modules/TimedText/mw.TimedTextEdit.js

Modified: 
branches/MwEmbedStandAlone/libraries/jquery/plugins/jquery.menu/jquery.menu.js
===================================================================
--- 
branches/MwEmbedStandAlone/libraries/jquery/plugins/jquery.menu/jquery.menu.js  
    2010-09-23 22:25:22 UTC (rev 73647)
+++ 
branches/MwEmbedStandAlone/libraries/jquery/plugins/jquery.menu/jquery.menu.js  
    2010-09-23 23:44:34 UTC (rev 73648)
@@ -166,8 +166,12 @@
                if (options.flyOutOnState) { container.find('li 
a').removeClass(options.flyOutOnState); };      
                if (options.callerOnState) {    
caller.removeClass(options.callerOnState); };                   
                if (container.is('.fg-menu-ipod')) { menu.resetDrilldownMenu(); 
};
-               if (container.is('.fg-menu-flyout')) { menu.resetFlyoutMenu(); 
};       
-               container.parent().hide();      
+               if (container.is('.fg-menu-flyout')) { menu.resetFlyoutMenu(); 
};
+               if( ! options.keepPosition ){
+                       container.parent().hide();      
+               } else {
+                       container.hide();
+               }
                menu.menuOpen = false;
                $(document).unbind('click', killAllMenus);
                $(document).unbind('keydown');
@@ -283,14 +287,18 @@
        
        this.create = function() {
                mw.log( "jquery.menu.create "); 
+               
                container.css({ 
                        'width' : options.width 
                })
-               .appendTo('body')
                .find( 'ul:first' )
                .not( '.fg-menu-breadcrumb' )
                .addClass('fg-menu');
                
+               if(!options.keepPosition){
+                       container.appendTo('body')
+               }
+                       
                
                container.find('ul, li a').addClass('ui-corner-all');
                
@@ -345,8 +353,9 @@
                                function() { 
$(this).removeClass(options.linkHoverSecondary); }
                        );
                };                                      
-               
-               menu.setPosition(container, caller, options);
+               if( !options.keepPosition ){
+                       menu.setPosition(container, caller, options);
+               }
                menu.menuExists = true;
                                
                if( typeof options.createMenuCallback == 'function' ){

Modified: branches/MwEmbedStandAlone/modules/Sequencer/mw.SequencerServer.js
===================================================================
--- branches/MwEmbedStandAlone/modules/Sequencer/mw.SequencerServer.js  
2010-09-23 22:25:22 UTC (rev 73647)
+++ branches/MwEmbedStandAlone/modules/Sequencer/mw.SequencerServer.js  
2010-09-23 23:44:34 UTC (rev 73648)
@@ -73,7 +73,7 @@
                                
                        }
                        if( this.isConfigured() ){
-                               mw.log("Error: Sequencer server needs a full 
serverConfig to be initialized")
+                               mw.log("Error: Sequencer server needs a full 
serverConfig to be initialized");
                                return false;
                        }
                },
@@ -107,7 +107,7 @@
                        var _this = this;                                       
        
                        mw.getTitleText( this.getApiUrl(), this.getTitleKey(), 
function( smilPage ){                            
                                // Check for remote payload wrapper 
-                               // XXX need to support multipe pages in single 
context          
+                               // XXX need to support multiple pages in single 
context                 
                                _this.currentSequencePage =  
_this.parseSequencerPage( smilPage );
                                // Cache the latest serverSmil ( for local 
change checks ) 
                                // ( save requests automatically respond with 
warnings on other user updates )
@@ -164,7 +164,7 @@
                                'pageEnd' : $j.trim( 
                                        pageText.substring( 
pageText.indexOf(endKey) + endKey.length  )
                                )
-                       }
+                       };
                },
                
                
@@ -185,7 +185,7 @@
                },
                // Check if the sequence was saved in this edit session
                hasSequenceBeenSavedOrPublished: function(){
-                       return this.sequenceSaved || this.sequencePublished
+                       return ( this.sequenceSaved || this.sequencePublished );
                },
                // Get a save token, if unable to do so return false 
                getSaveToken: function( callback ){
@@ -196,7 +196,7 @@
                        }
                        mw.getToken( this.getApiUrl(), this.getTitleKey(), 
function( saveToken ){
                                _this.saveToken = saveToken;
-                               callback ( _this.saveToken )
+                               callback ( _this.saveToken );
                        });
                },
                

Modified: branches/MwEmbedStandAlone/modules/SwarmTransport/mw.SwarmTransport.js
===================================================================
--- branches/MwEmbedStandAlone/modules/SwarmTransport/mw.SwarmTransport.js      
2010-09-23 22:25:22 UTC (rev 73647)
+++ branches/MwEmbedStandAlone/modules/SwarmTransport/mw.SwarmTransport.js      
2010-09-23 23:44:34 UTC (rev 73648)
@@ -23,15 +23,14 @@
                                        // Add the swarm source
                                        mw.log(" SwarmTransport :: 
checkPlayerSourcesEvent " + swapedPlayerId);
                                        _this.addSwarmSource( embedPlayer, 
callback );
-                               } else {                                        
                        
-                                       // No swarm support just directly issue 
the callback 
-                                       callback();     
-                               }
+                               }                                               
                
+                               // Don't block on swarm request, directly do 
the callback
+                               callback();     
                        } );
                        
                        // Check if we have a "recommend" binding and provide 
an xpi install link                       
                        mw.log('SwarmTransport::bind:addControlBindingsEvent');
-                       $j( embedPlayer ).bind( 'addControlBindingsEvent', 
function(){                          
+                       $j( embedPlayer ).bind( 'addControlBindingsEvent', 
function(){
                                if( mw.getConfig( 'SwarmTransport.Recommend' ) 
&&  
                                        typeof window['swarmTransport'] == 
'undefined' &&
                                        $j.browser.mozilla ) 
@@ -87,14 +86,14 @@
                                        callback();
                                        return ;
                                }                                       
-                               mw.log( 'SwarmTransport: addSwarmSource for: ' 
+ source.getSrc()  + "\n\nGot:" + data.torrent );                               
 
+                               mw.log( 'SwarmTransport: addSwarmSource for: ' 
+ source.getSrc()  + "\n\nGot:" + data.torrent );        
+                               // XXX need to update prefrence
                                embedPlayer.mediaElement.tryAddSource( 
                                        $j('<source />')
                                        .attr( {
                                                'type' : 'video/swarmTransport',
                                                'title': 
gM('mwe-swarmtransport-stream-ogg'), 
-                                               'src': 'tribe://' + 
data.torrent,
-                                               'default' : true // Mark as 
default source
+                                               'src': 'tribe://' + 
data.torrent                                                
                                        } )
                                        .get( 0 )
                                );                              

Modified: branches/MwEmbedStandAlone/modules/TimedText/mw.TimedTextEdit.js
===================================================================
--- branches/MwEmbedStandAlone/modules/TimedText/mw.TimedTextEdit.js    
2010-09-23 22:25:22 UTC (rev 73647)
+++ branches/MwEmbedStandAlone/modules/TimedText/mw.TimedTextEdit.js    
2010-09-23 23:44:34 UTC (rev 73648)
@@ -185,7 +185,7 @@
                $j('#timed-text-file-preview')
                .css({
                        'width':'100%',
-                       'height': ( $target.find( '.rightcolumn' ).height() - 
$j('#timed-text-rightcolum-desc').height() ) + 'px'
+                       'height': '300px'
                });
                
                // Add Select file:
@@ -215,9 +215,9 @@
                        } )
                        .change(function() {
                                var langKey = $j(this).val();
-                               if( mw.languages[ langKey ] ) {
+                               if( mw.Language.names[ langKey ] ) {
                                        $buttonTarget.find('.btnText').text( 
-                                               unescape( mw.languages[ langKey 
] )
+                                               unescape( mw.Language.names[ 
langKey ] )
                                        );
                                }
                        }),
@@ -233,6 +233,7 @@
 
                
                var $buttonTarget = $target.find('.language-select-btn');
+               
                // Add menu container: 
                var loc = $buttonTarget.position();
                $target.append( 
@@ -241,10 +242,8 @@
                        .attr( 'id', 'upload-language-select' )
                        .loadingSpinner()                       
                        .css( {
-                               'position'      : 'absolute',
-                               'z-index'       : 10,
-                               'top'           : ( loc.top + 40 ) + 'px',
-                               'left'          : parseInt( loc.left ) + 'px',
+                               'position'      : 'relative',
+                               'z-index'       : 10,                           
                                'height'        : '180px',
                                'width'         : '180px',
                                'overflow'      : 'auto',       
@@ -254,11 +253,16 @@
                        .hide() 
                );      
                // Add menu binding to button target
-               $buttonTarget.menu( {
-                       'content'       : _this.getLanguageList(),              
-                       'backLinkText' : gM( 'mwe-timedtext-back-btn' ),
-                       'targetMenuContainer': '#upload-language-select'        
                                                
-               } );
+               setTimeout(function(){
+                       $buttonTarget.menu( {
+                               'content'       : _this.getLanguageList(),      
        
+                               'backLinkText' : gM( 'mwe-timedtext-back-btn' ),
+                               'targetMenuContainer': 
'#upload-language-select',
+                               'keepPosition' : true
+                       } );
+                       // force the layout ( menu binding does strange things 
) 
+                       $j('#upload-language-select').css( {'left': '315px', 
'top' : '87px', 'position' : 'absolute'});
+               },10);
                
                
                //Add upload input bindings:
@@ -279,9 +283,9 @@
                                var langKey = $j(this).val().split( '.' );
                                var extension = langKey.pop();
                                langKey = langKey.pop();
-                               if( mw.languages[ langKey ] ) {
+                               if( mw.Language.names[ langKey ] ) {
                                        $buttonTarget.find('.btnText').text( 
-                                               unescape( mw.languages[ langKey 
] )
+                                               unescape( mw.Language.names[ 
langKey ] )
                                        );
                                        // Update the key code
                                        $j('#timed-text-langKey-input').val( 
langKey );
@@ -338,22 +342,29 @@
                                        buttons[ 
gM("mwe-timedtext-upload-text-another")] = function() {
                                                // just close the current 
dialog: 
                                                $j( this ).dialog('close');
-                                       }
+                                       };
                                        buttons[ gM( 
"mwe-timedtext-upload-text-done-uploading" ) ] = function() {
                                                window.location.reload();
-                                       }
+                                       };                                      
                                        //Edit success
-                                       mw.addDialog( {
-                                               'title' : gM( 
"mwe-timedtext-upload-text-done"), 
-                                               'content' : 
gM("mwe-timedtext-upload-text-success"), 
-                                               'buttons' : buttons
-                                       })      
+                                       setTimeout(function(){
+                                               mw.addDialog( {
+                                                       'width' : '400px',
+                                                       'title' : gM( 
"mwe-timedtext-upload-text-done"), 
+                                                       'content' : 
gM("mwe-timedtext-upload-text-success"), 
+                                                       'buttons' : buttons
+                                               });
+                                       },10 );
                                }else{
-                                       mw.addDialog({
-                                               'title' : gM( 
"mwe-timedtext-upload-text-fail-title"),
-                                               'content' :gM( 
"mwe-timedtext-upload-text-fail-desc"),
-                                               'buttons' : gM( 'mwe-ok' )
-                                       })
+                                       //Edit fail
+                                       setTimeout(function(){
+                                               mw.addDialog({
+                                                       'width' : '400px',
+                                                       'title' : gM( 
"mwe-timedtext-upload-text-fail-title"),
+                                                       'content' :gM( 
"mwe-timedtext-upload-text-fail-desc"),
+                                                       'buttons' : gM( 
'mwe-ok' )
+                                               });
+                                       },10 );
                                }
                        });
                })
@@ -374,8 +385,8 @@
                var _this = this;
                var $langMenu = $j( '<ul>' );
                // Loop through all supported languages: 
-               for ( var langKey in mw.languages ) {
-                       var language = mw.languages [ langKey ];
+               for ( var langKey in mw.Language.names ) {
+                       var language = mw.Language.names [ langKey ];
                        var source_icon = 'radio-on';
                        //check if the key is in the _this.parentTimedText 
source array
                        for( var i in _this.parentTimedText.textSources ) {
@@ -393,15 +404,16 @@
        },
        getLangMenuItem: function( langKey , source_icon) { 
                return $j.getLineItem(
-                       langKey + ' - ' + unescape( mw.languages[ langKey ] ),
+                       langKey + ' - ' + unescape( mw.Language.names[ langKey 
] ),
                        source_icon,
-                       function() {
+                       function() {                            
                                mw.log( "Selected: " + langKey );
                                // Update the input box text
                                $j('#timed-text-langKey-input').val( langKey );
-                               // Update the menu item:
-                               $j( '#language-select' ).val( unescape( 
mw.languages[ langKey ] ) )
-               } );
+                               // Update the menu item:                        
        
+                               $j('#language-select').find('.btnText').text( 
unescape( mw.Language.names[ langKey ] ) )                                
+                       } 
+                       );
        },
        /**
         * Creates the interface dialog container
@@ -430,18 +442,23 @@
                $j( _this.target_container ).dialog( {
                        bgiframe: true,
                        autoOpen: true,
+                       width: $j(window).width()-50,
+                       height: $j(window).height()-50,
+                       position : 'center',
                        modal: true,
                        draggable: false,
                        resizable: false,
                        buttons: cancelButton,
                        close: function() {
-                               // if we are 'editing' we should confirm they 
want to exist:
+                               // @@TODO if we are 'editing' we should confirm 
they want to exist:
                                $j( this ).parents( '.ui-dialog' ).fadeOut( 
'slow' );
                        }
                } );
+               // set a non-blocking fit window request
+               setTimeout(function(){
+                       $j( _this.target_container ).dialogFitWindow();
+               },10);
                
-               $j( _this.target_container ).dialogFitWindow();
-               
                // Add the window resize hook to keep dialog layout
                $j( window ).resize( function() {
                        $j( _this.target_container ).dialogFitWindow();



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to