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