summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/UploadWizard/resources/mw.UploadWizardPage.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/UploadWizard/resources/mw.UploadWizardPage.js')
-rw-r--r--www/wiki/extensions/UploadWizard/resources/mw.UploadWizardPage.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/www/wiki/extensions/UploadWizard/resources/mw.UploadWizardPage.js b/www/wiki/extensions/UploadWizard/resources/mw.UploadWizardPage.js
new file mode 100644
index 00000000..09ccc5a9
--- /dev/null
+++ b/www/wiki/extensions/UploadWizard/resources/mw.UploadWizardPage.js
@@ -0,0 +1,59 @@
+/*
+ * This script is run on [[Special:UploadWizard]].
+ * Configures and creates an interface for uploading files in multiple steps, hence "wizard".
+ *
+ * Tries to transform Javascript globals dumped on us by the SpecialUploadWizard.php into a more
+ * compact configuration, owned by the UploadWizard created.
+ */
+
+// Create UploadWizard
+( function ( mw, $ ) {
+
+ function isCompatible() {
+ var
+ profile = $.client.profile(),
+ // Firefox < 7.0 sends an empty string as filename for Blobs in FormData.
+ // requests. https://bugzilla.mozilla.org/show_bug.cgi?id=649150
+ badFormDataBlobs = profile.name === 'firefox' && profile.versionNumber < 7;
+
+ return !!(
+ window.FileReader &&
+ window.FormData &&
+ window.File &&
+ window.File.prototype.slice &&
+ !badFormDataBlobs
+ );
+ }
+
+ mw.UploadWizardPage = function () {
+
+ var uploadWizard,
+ config = mw.config.get( 'UploadWizardConfig' );
+
+ // Default configuration value that cannot be removed
+ config.maxUploads = config.maxUploads || 10;
+
+ // Remove the initial spinner
+ $( '#mwe-first-spinner' ).remove();
+
+ if ( $( '#upload-wizard' ).length === 0 ) {
+ mw.log( 'UploadWizard is disabled, nothing to do.' );
+ return;
+ }
+
+ if ( !isCompatible() ) {
+ // Display the same error message as for grade-C browsers
+ $( '.mwe-upwiz-unavailable' ).show();
+ return;
+ }
+
+ uploadWizard = new mw.UploadWizard( config );
+ uploadWizard.createInterface( '#upload-wizard' );
+ };
+
+ $( function () {
+ // show page.
+ mw.UploadWizardPage();
+ } );
+
+}( mediaWiki, jQuery ) );