From 9db61c9ab58b11b639a1f95916b37b57530ec674 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Sun, 27 Apr 2014 17:40:18 +0200 Subject: [PATCH] JSDuck-ify /resources/mediawiki.special/* - Adds mw.special.recentchanges to the index. - Adds mw.special.upload to the index. - Register File as valid value type. Relates to the "File" interface (from HTML5 File APIs; http://dev.w3.org/2006/webapi/FileAPI/#dfn-file) - Sort directories in jsduck/config.json alphabetically. Change-Id: I282cbeeec60b9f527879aedd90ba824a833438b7 --- maintenance/jsduck/categories.json | 6 +++ maintenance/jsduck/config.json | 5 ++- .../mediawiki.special.block.css | 2 +- .../mediawiki.special.block.js | 2 +- .../mediawiki.special.changeemail.css | 2 +- .../mediawiki.special.changeemail.js | 3 +- .../mediawiki.special.changeslist.css | 2 +- ...mediawiki.special.changeslist.enhanced.css | 2 +- .../mediawiki.special.changeslist.legend.css | 2 +- .../mediawiki.special.changeslist.legend.js | 2 +- .../mediawiki.special/mediawiki.special.css | 26 ++++++------ .../mediawiki.special.javaScriptTest.js | 2 +- .../mediawiki.special/mediawiki.special.js | 6 ++- .../mediawiki.special.movePage.js | 2 +- .../mediawiki.special.preferences.css | 6 +-- .../mediawiki.special.preferences.js | 11 +++-- .../mediawiki.special.recentchanges.js | 7 +++- .../mediawiki.special.search.css | 2 +- .../mediawiki.special.search.js | 2 +- .../mediawiki.special.undelete.js | 2 +- .../mediawiki.special.upload.js | 42 ++++++++++--------- .../mediawiki.special.userlogin.common.css | 2 +- .../mediawiki.special.userlogin.common.js | 2 +- .../mediawiki.special.userlogin.signup.js | 2 +- .../mediawiki.special.version.css | 6 +-- 25 files changed, 84 insertions(+), 64 deletions(-) diff --git a/maintenance/jsduck/categories.json b/maintenance/jsduck/categories.json index 2d45645113..69b04ce1c7 100644 --- a/maintenance/jsduck/categories.json +++ b/maintenance/jsduck/categories.json @@ -56,6 +56,12 @@ "mw.Feedback" ] }, + { + "name": "Special", + "classes": [ + "mw.special*" + ] + }, { "name": "Development", "classes": [ diff --git a/maintenance/jsduck/config.json b/maintenance/jsduck/config.json index 65ead020b6..eed76b6f1c 100644 --- a/maintenance/jsduck/config.json +++ b/maintenance/jsduck/config.json @@ -6,16 +6,17 @@ "--warnings": ["-nodoc(class,public)"], "--builtin-classes": true, "--warnings-exit-nonzero": true, - "--external": "HTMLElement,HTMLDocument,Window", + "--external": "HTMLElement,HTMLDocument,Window,File", "--footer": "Documentation for MediaWiki core. Generated on {DATE} by {JSDUCK} {VERSION}.", "--output": "../../docs/js", "--": [ "./external.js", "../../resources/src/mediawiki", "../../resources/src/mediawiki.action", - "../../resources/src/mediawiki.page", "../../resources/src/mediawiki.api", "../../resources/src/mediawiki.language", + "../../resources/src/mediawiki.page", + "../../resources/src/mediawiki.special", "../../resources/src/jquery/jquery.accessKeyLabel.js", "../../resources/src/jquery/jquery.arrowSteps.js", "../../resources/src/jquery/jquery.autoEllipsis.js", diff --git a/resources/src/mediawiki.special/mediawiki.special.block.css b/resources/src/mediawiki.special/mediawiki.special.block.css index 899a9f34a1..a805f3ef73 100644 --- a/resources/src/mediawiki.special/mediawiki.special.block.css +++ b/resources/src/mediawiki.special/mediawiki.special.block.css @@ -1,4 +1,4 @@ -/** +/*! * Styling for Special:Block */ diff --git a/resources/src/mediawiki.special/mediawiki.special.block.js b/resources/src/mediawiki.special/mediawiki.special.block.js index 8dedb9b686..8579e0545e 100644 --- a/resources/src/mediawiki.special/mediawiki.special.block.js +++ b/resources/src/mediawiki.special/mediawiki.special.block.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for Special:Block */ ( function ( mw, $ ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.changeemail.css b/resources/src/mediawiki.special/mediawiki.special.changeemail.css index 9461fbdcef..92983dfad9 100644 --- a/resources/src/mediawiki.special/mediawiki.special.changeemail.css +++ b/resources/src/mediawiki.special/mediawiki.special.changeemail.css @@ -6,7 +6,7 @@ border-top-right-radius: 0.8em; } -/** colors also used in mediawiki.special.preferences.css */ +/* Colors also used in mediawiki.special.preferences.css */ #mw-emailaddress-validity.valid { border: 1px solid #80FF80; background-color: #C0FFC0; diff --git a/resources/src/mediawiki.special/mediawiki.special.changeemail.js b/resources/src/mediawiki.special/mediawiki.special.changeemail.js index bc2a0a2688..67531f78bc 100644 --- a/resources/src/mediawiki.special/mediawiki.special.changeemail.js +++ b/resources/src/mediawiki.special/mediawiki.special.changeemail.js @@ -1,9 +1,10 @@ -/** +/*! * JavaScript for Special:ChangeEmail */ ( function ( mw, $ ) { /** * Given an email validity status (true, false, null) update the label CSS class + * @ignore */ function updateMailValidityLabel( mail ) { var isValid = mw.util.validateEmail( mail ), diff --git a/resources/src/mediawiki.special/mediawiki.special.changeslist.css b/resources/src/mediawiki.special/mediawiki.special.changeslist.css index 5e4af7b686..c92db167d0 100644 --- a/resources/src/mediawiki.special/mediawiki.special.changeslist.css +++ b/resources/src/mediawiki.special/mediawiki.special.changeslist.css @@ -1,4 +1,4 @@ -/** +/*! * Styling for Special:Watchlist and Special:RecentChanges */ diff --git a/resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css b/resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css index 446e1f9b18..0e026aff98 100644 --- a/resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css +++ b/resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css @@ -1,4 +1,4 @@ -/** +/*! * Styling for Special:Watchlist and Special:RecentChanges when preference 'usenewrc' * a.k.a. Enhanced Recent Changes is enabled. */ diff --git a/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css b/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css index 54d09b4fbf..6b0bf9919d 100644 --- a/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css +++ b/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css @@ -1,4 +1,4 @@ -/** +/*! * Styling for changes list legend */ diff --git a/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js b/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js index 0259155837..c9e55111ff 100644 --- a/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js +++ b/resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js @@ -1,4 +1,4 @@ -/** +/*! * Script for changes list legend */ diff --git a/resources/src/mediawiki.special/mediawiki.special.css b/resources/src/mediawiki.special/mediawiki.special.css index ea00960b36..4ec5ffac96 100644 --- a/resources/src/mediawiki.special/mediawiki.special.css +++ b/resources/src/mediawiki.special/mediawiki.special.css @@ -1,4 +1,4 @@ -/**** Special:AllMessages ****/ +/* Special:AllMessages */ #mw-allmessagestable .allmessages-customised td.am_default { background-color: #fcffc4; } @@ -15,7 +15,7 @@ background-color: #b1ffb1; } -/**** Special:Allpages ****/ +/* Special:Allpages */ table.mw-allpages-table-form, table.mw-allpages-table-chunk { width: 100%; } @@ -30,30 +30,30 @@ table.mw-allpages-table-form tr { vertical-align: top; } -/**** Special:Block ****/ +/* Special:Block */ tr.mw-block-hideuser { font-weight: bold; } -/**** Special:BlockList ****/ +/* Special:BlockList */ table.mw-blocklist span.mw-usertoollinks, span.mw-blocklist-actions { white-space: nowrap; font-size: 90%; } -/**** Special:Contributions ****/ +/* Special:Contributions */ .mw-uctop { font-weight: bold; } -/**** Special:EmailUser ****/ +/* Special:EmailUser */ td#mw-emailuser-sender, td#mw-emailuser-recipient { font-weight: bold; } -/**** Special:ListGroupRights ****/ +/* Special:ListGroupRights */ table.mw-listgrouprights-table tr { vertical-align: top; } @@ -61,7 +61,7 @@ table.mw-listgrouprights-table tr { text-decoration: line-through; } -/**** Special:Prefixindex ****/ +/* Special:Prefixindex */ table.mw-prefixindex-list-table, table#mw-prefixindex-nav-table { width: 100%; @@ -75,7 +75,7 @@ td#mw-prefixindex-nav-form { } -/**** Special:Search ****/ +/* Special:Search */ .searchresults { } @@ -241,7 +241,7 @@ form#powersearch { clear: both; } -/**** Special:Specialpages ****/ +/* Special:Specialpages */ .mw-specialpagerestricted { font-weight: bold; } @@ -255,12 +255,12 @@ form#powersearch { vertical-align: top; } -/**** Special:Statistics ****/ +/* Special:Statistics */ td.mw-statistics-numbers { text-align: right; } -/**** Special:ProtectedPages ****/ +/* Special:ProtectedPages */ table.mw-protectedpages span.mw-usertoollinks, span.mw-protectedpages-length, span.mw-protectedpages-actions { @@ -272,7 +272,7 @@ span.mw-protectedpages-unknown { font-size: 90%; } -/**** Special:UserRights ****/ +/* Special:UserRights */ .mw-userrights-disabled { color: #888; } diff --git a/resources/src/mediawiki.special/mediawiki.special.javaScriptTest.js b/resources/src/mediawiki.special/mediawiki.special.javaScriptTest.js index 38f256cc26..d3e8f2993c 100644 --- a/resources/src/mediawiki.special/mediawiki.special.javaScriptTest.js +++ b/resources/src/mediawiki.special/mediawiki.special.javaScriptTest.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for Special:JavaScriptTest */ ( function ( mw, $ ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.js b/resources/src/mediawiki.special/mediawiki.special.js index 8edb1cbe25..630d162456 100644 --- a/resources/src/mediawiki.special/mediawiki.special.js +++ b/resources/src/mediawiki.special/mediawiki.special.js @@ -1,5 +1,9 @@ -/* +/*! * Namespace for mediawiki.special.* modules */ +/** + * @class mw.special + * @singleton + */ mediaWiki.special = {}; diff --git a/resources/src/mediawiki.special/mediawiki.special.movePage.js b/resources/src/mediawiki.special/mediawiki.special.movePage.js index 922eba5e62..7e56050d86 100644 --- a/resources/src/mediawiki.special/mediawiki.special.movePage.js +++ b/resources/src/mediawiki.special/mediawiki.special.movePage.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for Special:MovePage */ jQuery( function ( $ ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.preferences.css b/resources/src/mediawiki.special/mediawiki.special.preferences.css index 75ae5ca245..afb0905176 100644 --- a/resources/src/mediawiki.special/mediawiki.special.preferences.css +++ b/resources/src/mediawiki.special/mediawiki.special.preferences.css @@ -1,16 +1,16 @@ -/** Reuses colors from mediawiki.special.changeemail.css */ +/* Reuses colors from mediawiki.special.changeemail.css */ .mw-email-not-authenticated .mw-input, .mw-email-none .mw-input{ border: 1px solid #FF8080; background-color: #FFC0C0; color: black; } -/** Authenticated email field has its own class too. Unstyled by default */ +/* Authenticated email field has its own class too. Unstyled by default */ /* .mw-email-authenticated .mw-input { } */ -/** +/* * Hide, but keep accessible for screen-readers. * Like .mw-jump, #jump-to-nav from skins/common/shared.css */ diff --git a/resources/src/mediawiki.special/mediawiki.special.preferences.js b/resources/src/mediawiki.special/mediawiki.special.preferences.js index 2cd27af991..d0569bd71f 100644 --- a/resources/src/mediawiki.special/mediawiki.special.preferences.js +++ b/resources/src/mediawiki.special/mediawiki.special.preferences.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for Special:Preferences */ jQuery( function ( $ ) { @@ -46,9 +46,10 @@ jQuery( function ( $ ) { /** * It uses document.getElementById for security reasons (HTML injections in $()). * + * @ignore * @param String name: the name of a tab without the prefix ("mw-prefsection-") * @param String mode: [optional] A hash will be set according to the current - * open section. Set mode 'noHash' to surpress this. + * open section. Set mode 'noHash' to surpress this. */ function switchPrefTab( name, mode ) { var $tab, scrollTop; @@ -159,10 +160,8 @@ jQuery( function ( $ ) { } ); } - /** - * Timezone functions. - * Guesses Timezone from browser and updates fields onchange - */ + // Timezone functions. + // Guesses Timezone from browser and updates fields onchange. $tzSelect = $( '#mw-input-wptimecorrection' ); $tzTextbox = $( '#mw-input-wptimecorrection-other' ); diff --git a/resources/src/mediawiki.special/mediawiki.special.recentchanges.js b/resources/src/mediawiki.special/mediawiki.special.recentchanges.js index 79d793afa0..d43b62b044 100644 --- a/resources/src/mediawiki.special/mediawiki.special.recentchanges.js +++ b/resources/src/mediawiki.special/mediawiki.special.recentchanges.js @@ -1,9 +1,13 @@ -/** +/*! * JavaScript for Special:RecentChanges */ ( function ( mw, $ ) { var rc, $checkboxes, $select; + /** + * @class mw.special.recentchanges + * @singleton + */ rc = { /** * Handler to disable/enable the namespace selector checkboxes when the @@ -17,6 +21,7 @@ $checkboxes.prop( 'disabled', isAllNS ); }, + /** */ init: function () { $select = $( '#namespace' ); $checkboxes = $( '#nsassociated, #nsinvert' ); diff --git a/resources/src/mediawiki.special/mediawiki.special.search.css b/resources/src/mediawiki.special/mediawiki.special.search.css index 914e47e341..f6ed82c3f8 100644 --- a/resources/src/mediawiki.special/mediawiki.special.search.css +++ b/resources/src/mediawiki.special/mediawiki.special.search.css @@ -1,4 +1,4 @@ -/** +/* * Fixes sister projects box moving down the extract * of the first result (bug #16886). * It only happens when the window is small and diff --git a/resources/src/mediawiki.special/mediawiki.special.search.js b/resources/src/mediawiki.special/mediawiki.special.search.js index b847f7d59e..60cf46a491 100644 --- a/resources/src/mediawiki.special/mediawiki.special.search.js +++ b/resources/src/mediawiki.special/mediawiki.special.search.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for Special:Search */ ( function ( mw, $ ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.undelete.js b/resources/src/mediawiki.special/mediawiki.special.undelete.js index 0dea3ef9f9..2a153e8864 100644 --- a/resources/src/mediawiki.special/mediawiki.special.undelete.js +++ b/resources/src/mediawiki.special/mediawiki.special.undelete.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for Special:Undelete */ jQuery( function ( $ ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.upload.js b/resources/src/mediawiki.special/mediawiki.special.upload.js index 8a5ff59398..3c7ad52764 100644 --- a/resources/src/mediawiki.special/mediawiki.special.upload.js +++ b/resources/src/mediawiki.special/mediawiki.special.upload.js @@ -1,11 +1,14 @@ /** * JavaScript for Special:Upload + * * Note that additional code still lives in skins/common/upload.js + * + * @private + * @class mw.special.upload + * @singleton */ ( function ( mw, $ ) { - /** - * Add a preview to the upload form - */ + // Add a preview to the upload form $( function () { /** * Is the FileAPI available with sufficient functionality? @@ -18,8 +21,9 @@ * Check if this is a recognizable image type... * Also excludes files over 10M to avoid going insane on memory usage. * - * @todo is there a way we can ask the browser what's supported in s? - * @todo put SVG back after working around Firefox 7 bug + * TODO: Is there a way we can ask the browser what's supported in ``s? + * + * TODO: Put SVG back after working around Firefox 7 bug * * @param {File} file * @return boolean @@ -35,10 +39,11 @@ * in browsers supporting HTML5 FileAPI. * * As of this writing, known good: + * * - Firefox 3.6+ * - Chrome 7.something * - * @todo check file size limits and warn of likely failures + * TODO: Check file size limits and warn of likely failures * * @param {File} file */ @@ -157,8 +162,8 @@ * to do preprocessing on the binary data first. * * @param {File} file - * @param {function} callback - * @param {function} callbackBinary + * @param {Function} callback + * @param {Function} callbackBinary */ function fetchPreview( file, callback, callbackBinary ) { var reader = new FileReader(); @@ -212,10 +217,11 @@ /** * Format a file size attractively. - * @todo match numeric formatting + * + * TODO: Match numeric formatting * * @param {number} s - * @return string + * @return {string} */ function prettySize( s ) { var sizeMsgs = ['size-bytes', 'size-kilobytes', 'size-megabytes', 'size-gigabytes']; @@ -263,9 +269,7 @@ return true; } - /** - * Initialization - */ + /* Initialization */ if ( hasFileAPI() ) { // Update thumbnail when the file selection control is updated. $( '#wpUploadFile' ).change( function () { @@ -286,17 +290,17 @@ } } ); - /** - * Disable all upload source fields except the selected one - */ + // Disable all upload source fields except the selected one $( function () { var i, $row, $rows = $( '.mw-htmlform-field-UploadSourceField' ); + /** + * @param {jQuery} $currentRow + * @return {Function} Handler + * @return {jQuery.Event} return.e + */ function createHandler( $currentRow ) { - /** - * @param {jQuery.Event} - */ return function () { $( '.mw-upload-source-error' ).remove(); if ( this.checked ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.userlogin.common.css b/resources/src/mediawiki.special/mediawiki.special.userlogin.common.css index d5fd2b8032..b66f20e3fc 100644 --- a/resources/src/mediawiki.special/mediawiki.special.userlogin.common.css +++ b/resources/src/mediawiki.special/mediawiki.special.userlogin.common.css @@ -33,7 +33,7 @@ section.mw-form-header { margin-bottom: 10px; } -/**** shuffled CAPTCHA ****/ +/* shuffled CAPTCHA */ #wpCaptchaWord { margin-top: 6px; } diff --git a/resources/src/mediawiki.special/mediawiki.special.userlogin.common.js b/resources/src/mediawiki.special/mediawiki.special.userlogin.common.js index a899ae765a..2a4449ea9c 100644 --- a/resources/src/mediawiki.special/mediawiki.special.userlogin.common.js +++ b/resources/src/mediawiki.special/mediawiki.special.userlogin.common.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for login and signup forms. */ ( function ( mw, $ ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js b/resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js index 0615932fe3..68d3f61be5 100644 --- a/resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js +++ b/resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js @@ -1,4 +1,4 @@ -/** +/*! * JavaScript for signup form. */ ( function ( mw, $ ) { diff --git a/resources/src/mediawiki.special/mediawiki.special.version.css b/resources/src/mediawiki.special/mediawiki.special.version.css index c3d0238521..764e37777f 100644 --- a/resources/src/mediawiki.special/mediawiki.special.version.css +++ b/resources/src/mediawiki.special/mediawiki.special.version.css @@ -1,6 +1,6 @@ -/** - * Adds additional styling to the extension title/version list -**/ +/*! + * Styling for Special:Version + */ .mw-version-ext-name { font-weight: bold; } -- 2.20.1