MarkTraceur has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/178210

Change subject: Replace Firefogg callbacks with OOJS events
......................................................................

Replace Firefogg callbacks with OOJS events

Cleaner, yay!

Bug: T77124
Change-Id: I7f8bf7f628862f7462e2599bf9e70d78bd97441e
---
M UploadWizard.php
M UploadWizardHooks.php
M resources/mw.FirefoggHandler.js
M resources/mw.FirefoggTransport.js
4 files changed, 52 insertions(+), 33 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UploadWizard 
refs/changes/10/178210/1

diff --git a/UploadWizard.php b/UploadWizard.php
index 1f5dc63..65b63bf 100644
--- a/UploadWizard.php
+++ b/UploadWizard.php
@@ -105,6 +105,13 @@
        'scripts' => 'mw.IframeTransport.js',
 ) + $uploadWizardModuleInfo;
 
+$wgResourceModules['ext.uploadWizard.FirefoggTransport'] = array(
+       'scripts' => 'mw.FirefoggTransport.js',
+       'dependencies' => array(
+               'oojs',
+       ),
+) + $uploadWizardModuleInfo;
+
 $wgResourceModules['ext.uploadWizard.apiUploadHandler'] = array(
        'scripts' => 'mw.ApiUploadHandler.js',
        'dependencies' => 'ext.uploadWizard.iFrameTransport',
@@ -123,6 +130,21 @@
        'messages' => 'mwe-upwiz-transport-started',
 ) + $uploadWizardModuleInfo;
 
+$wgResourceModules['ext.uploadWizard.FirefoggHandler'] = array(
+       'scripts' => 'mw.FirefoggHandler.js',
+       'messages' => 'mwe-upwiz-transport-started',
+       'dependencies' => array(
+               'ext.uploadWizard.FirefoggTransport',
+       ),
+) + $uploadWizardModuleInfo;
+
+$wgResourceModules['ext.uploadWizard.Firefogg'] = array(
+       'scripts' => 'mw.Firefogg.js',
+       'dependencies' => array(
+               'jquery.client',
+       ),
+) + $uploadWizardModuleInfo;
+
 $wgResourceModules['ext.uploadWizard.page'] = array(
        'scripts' => 'mw.UploadWizardPage.js',
        'dependencies' => 'ext.uploadWizard'
diff --git a/UploadWizardHooks.php b/UploadWizardHooks.php
index 8ca65ed..dd9711f 100644
--- a/UploadWizardHooks.php
+++ b/UploadWizardHooks.php
@@ -46,6 +46,8 @@
                                'ext.uploadWizard.apiUploadPostHandler',
                                'ext.uploadWizard.apiUploadFormDataHandler',
                                'ext.uploadWizard.events',
+                               'ext.uploadWizard.Firefogg',
+                               'ext.uploadWizard.FirefoggHandler',
 
                                'uw.EventFlowLogger',
                                'uw.ui.Wizard',
@@ -82,11 +84,6 @@
 
                                // workhorse libraries
                                'resources/mw.DestinationChecker.js',
-
-                               // firefogg support libraries
-                               'resources/mw.Firefogg.js',
-                               'resources/mw.FirefoggHandler.js',
-                               'resources/mw.FirefoggTransport.js',
 
                                // flickr libraries
                                'resources/mw.FlickrChecker.js',
diff --git a/resources/mw.FirefoggHandler.js b/resources/mw.FirefoggHandler.js
index 0e33c27..8ef3c49 100644
--- a/resources/mw.FirefoggHandler.js
+++ b/resources/mw.FirefoggHandler.js
@@ -32,19 +32,16 @@
 
                        if ( !this.transport ) {
                                this.transport = new mw.FirefoggTransport(
-                                               this.upload,
-                                               this.api,
-                                               this.getFogg(),
-                                               function ( data ) {
-                                                       
upload.setTransportProgress( data.progress );
-                                                       // also update preview 
video, url is in data.preview
-                                               },
-
-                                               function ( result ) {
-                                                       mw.log( 
'FirefoggTransport::getTransport> Transport done ' + JSON.stringify( result ) );
-                                                       upload.setTransported( 
result );
-                                               }
-                                       );
+                                       this.upload,
+                                       this.api,
+                                       this.getFogg()
+                               ).on( 'progress', function ( data ) {
+                                       upload.setTransportProgress( 
data.progress );
+                                       // also update preview video, url is in 
data.preview
+                               } ).on( 'transported', function ( result ) {
+                                       mw.log( 
'FirefoggTransport::getTransport> Transport done ' + JSON.stringify( result ) );
+                                       upload.setTransported( result );
+                               } );
                        }
                        return this.transport;
                },
diff --git a/resources/mw.FirefoggTransport.js 
b/resources/mw.FirefoggTransport.js
index fa39aa4..bd90dbb 100644
--- a/resources/mw.FirefoggTransport.js
+++ b/resources/mw.FirefoggTransport.js
@@ -1,20 +1,22 @@
-( function ( mw, $ ) {
+( function ( mw, $, oo ) {
        /**
-        * Represents a "transport" for files to upload; in this case an 
firefogg.
-        *
-        * @param upload UploadInterface
-        * @param api
-        * @param fogg Firefogg instance
-        * @param progressCb    callback to execute as the upload progresses
-        * @param transportedCb callback to execute when we've finished the 
upload
+        * @class mw.FirefoggTransport
+        * Represents a "transport" for files to upload; in this case using 
Firefogg.
+        * @extends OO.EventEmitter
+        * @constructor
+        * @param {mw.UploadWizardUpload} upload
+        * @param {mw.Api} api
+        * @param {Firefogg} fogg Firefogg instance
         */
-       mw.FirefoggTransport = function ( upload, api, fogg, progressCb, 
transportedCb ) {
+       mw.FirefoggTransport = function ( upload, api, fogg ) {
+               oo.EventEmitter.call( this );
+
                this.upload = upload;
                this.api = api;
                this.fogg = fogg;
-               this.progressCb = progressCb;
-               this.transportedCb = transportedCb;
        };
+
+       oo.inheritClass( mw.FirefoggTransport, oo.EventEmitter );
 
        mw.FirefoggTransport.prototype = {
 
@@ -54,14 +56,15 @@
                                                                        info: 
'Encoding failed'
                                                                }
                                                        };
-                                                       
transport.transportedCb( response );
+
+                                                       transport.emit( 
'transported', response );
                                                }
-                                       }, function (progress) { //progress
+                                       }, function ( progress ) { //progress
                                                if ( transport.upload.state === 
'aborted' ) {
                                                        transport.fogg.cancel();
                                                } else {
                                                        progress = 
JSON.parse(progress);
-                                                       transport.progressCb( 
progress );
+                                                       transport.emit( 
'progress',  progress );
                                                        
transport.upload.ui.setStatus( 'mwe-upwiz-encoding' );
                                                }
                                        }
@@ -183,4 +186,4 @@
                        return encodeSettings;
                }
        };
-}( mediaWiki, jQuery ) );
+}( mediaWiki, jQuery, OO ) );

-- 
To view, visit https://gerrit.wikimedia.org/r/178210
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7f8bf7f628862f7462e2599bf9e70d78bd97441e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UploadWizard
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>

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

Reply via email to