Gerrit Patch Uploader has uploaded a new change for review. https://gerrit.wikimedia.org/r/212589
Change subject: Fix some warnings spotted by JSLint ...................................................................... Fix some warnings spotted by JSLint * Remove variable fr. * Declare variables at the begin of the function. (partially) * Use {} around if then else statements. Todo: * Reorder functions to prevent forward references. This will be done in a separate change for better diff. Change-Id: I3ea968a6d794dc4cc83bffb6a9306f30642f1ccd --- M frontend/modules/ext.flaggedRevs.advanced.js M frontend/modules/ext.flaggedRevs.review.js 2 files changed, 98 insertions(+), 97 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/FlaggedRevs refs/changes/89/212589/1 diff --git a/frontend/modules/ext.flaggedRevs.advanced.js b/frontend/modules/ext.flaggedRevs.advanced.js index d941800..aa12278 100644 --- a/frontend/modules/ext.flaggedRevs.advanced.js +++ b/frontend/modules/ext.flaggedRevs.advanced.js @@ -6,26 +6,26 @@ ( function ( mw, $ ) { "use strict"; -var fr = { /* Dropdown collapse timer */ - boxCollapseTimer: null, + var boxCollapseTimer = null; + /* Startup function */ - init: function () { + function init() { // Enables rating detail box var toggle = $( '#mw-fr-revisiontoggle' ); if ( toggle.length ) { toggle.css( 'display', 'inline' ); // show toggle control - fr.hideBoxDetails(); // hide the initially displayed ratings + hideBoxDetails(); // hide the initially displayed ratings } // Bar UI: Toggle the box when the toggle is clicked - $( '.fr-toggle-symbol#mw-fr-revisiontoggle' ).click( fr.toggleBoxDetails ); + $( '.fr-toggle-symbol#mw-fr-revisiontoggle' ).click( toggleBoxDetails ); // Simple UI: Show the box on mouseOver - $( '.fr-toggle-arrow#mw-fr-revisiontoggle' ).mouseover( fr.onBoxMouseOver ); - $( '.flaggedrevs_short#mw-fr-revisiontag' ).mouseout( fr.onBoxMouseOut ); + $( '.fr-toggle-arrow#mw-fr-revisiontoggle' ).mouseover( onBoxMouseOver ); + $( '.flaggedrevs_short#mw-fr-revisiontag' ).mouseout( onBoxMouseOut ); // Enables diff detail box and toggle toggle = $( '#mw-fr-difftoggle' ); @@ -33,7 +33,7 @@ toggle.css( 'display', 'inline' ); // show toggle control $( '#mw-fr-stablediff' ).hide(); } - toggle.children( 'a' ).click( fr.toggleDiff ); + toggle.children( 'a' ).click( toggleDiff ); // Enables log detail box and toggle toggle = $( '#mw-fr-logtoggle' ); @@ -41,67 +41,67 @@ toggle.css( 'display', 'inline' ); // show toggle control $( '#mw-fr-logexcerpt' ).hide(); } - toggle.children( 'a' ).click( fr.toggleLog ); + toggle.children( 'a' ).click( toggleLog ); // Enables changing of save button when "review this" checkbox changes - $( '#wpReviewEdit' ).click( fr.updateSaveButton ); - }, + $( '#wpReviewEdit' ).click( updateSaveButton ); + } /* Expands flag info box details */ - showBoxDetails: function () { + function showBoxDetails() { $( '#mw-fr-revisiondetails' ).css( 'display', 'block' ); - }, + } /* Collapses flag info box details */ - hideBoxDetails: function () { + function hideBoxDetails() { $( '#mw-fr-revisiondetails' ).css( 'display', 'none' ); - }, + } /** * Toggles flag info box details for (+/-) control * @context {jQuery} * @param e {jQuery.Event} */ - toggleBoxDetails: function () { + function toggleBoxDetails() { var toggle = $( '#mw-fr-revisiontoggle' ), ratings = $( '#mw-fr-revisiondetails' ); if ( toggle.length && ratings.length ) { // Collapsed -> expand if ( ratings.css( 'display' ) === 'none' ) { - fr.showBoxDetails(); + showBoxDetails(); toggle.text( mw.msg( 'revreview-toggle-hide' ) ); // Expanded -> collapse } else { - fr.hideBoxDetails(); + hideBoxDetails(); toggle.text( mw.msg( 'revreview-toggle-show' ) ); } } - }, + } /** * Expands flag info box details on mouseOver * @context {jQuery} * @param e {jQuery.Event} */ - onBoxMouseOver: function () { + function onBoxMouseOver() { /*global window*/ - window.clearTimeout( fr.boxCollapseTimer ); - fr.boxCollapseTimer = null; - fr.showBoxDetails(); - }, + window.clearTimeout( boxCollapseTimer ); + boxCollapseTimer = null; + showBoxDetails(); + } /** * Hides flag info box details on mouseOut *except* for event bubbling * @context {jQuery} * @param e {jQuery.Event} */ - onBoxMouseOut: function ( e ) { - if ( !fr.isMouseOutBubble( e, 'mw-fr-revisiontag' ) ) { + function onBoxMouseOut( e ) { + if ( !isMouseOutBubble( e, 'mw-fr-revisiontag' ) ) { /*global window*/ - fr.boxCollapseTimer = window.setTimeout( fr.hideBoxDetails, 150 ); + boxCollapseTimer = window.setTimeout( hideBoxDetails, 150 ); } - }, + } /** * Checks if mouseOut event is for a child of parentId @@ -110,7 +110,7 @@ * @return {Boolean} True if given event object originated from a (direct or indirect) * child element of an element with an id of parentId. */ - isMouseOutBubble: function ( e, parentId ) { + function isMouseOutBubble( e, parentId ) { var toNode = e.relatedTarget; if ( toNode ) { @@ -124,14 +124,14 @@ } } return false; - }, + } /** * Toggles diffs * @context {jQuery} * @param e {jQuery.Event} */ - toggleDiff: function () { + function toggleDiff() { var diff = $( '#mw-fr-stablediff' ), toggle = $( '#mw-fr-difftoggle' ); @@ -144,14 +144,14 @@ toggle.children( 'a' ).text( mw.msg( 'revreview-diff-toggle-show' ) ); } } - }, + } /** * Toggles log excerpts * @context {jQuery} * @param e {jQuery.Event} */ - toggleLog: function () { + function toggleLog() { var hideMsg, showMsg, log = $( '#mw-fr-logexcerpt' ), toggle = $( '#mw-fr-logtoggle' ); @@ -174,14 +174,14 @@ toggle.children( 'a' ).text( showMsg ); } } - }, + } /** * Update save button when "review this" checkbox changes * @context {jQuery} * @param e {jQuery.Event} */ - updateSaveButton: function () { + function updateSaveButton() { var $save = $( '#wpSave' ), $checkbox = $( '#wpReviewEdit' ); @@ -204,9 +204,8 @@ $save.updateTooltipAccessKeys(); } } -}; -// Perform some onload events: -$( fr.init ); + // Perform some onload events: + $( init ); }( mediaWiki, jQuery ) ); diff --git a/frontend/modules/ext.flaggedRevs.review.js b/frontend/modules/ext.flaggedRevs.review.js index 51693b7..a6bc9b7 100644 --- a/frontend/modules/ext.flaggedRevs.review.js +++ b/frontend/modules/ext.flaggedRevs.review.js @@ -6,18 +6,17 @@ ( function ( mw, $ ) { "use strict"; -var wgFlaggedRevsParams = mw.config.get( 'wgFlaggedRevsParams' ), - fr = { - /* User is reviewing this page? */ - isUserReviewing: 0, + var wgFlaggedRevsParams = mw.config.get( 'wgFlaggedRevsParams' ), + /* User is reviewing this page? */ + isUserReviewing = 0; /* Startup function */ - init: function () { + function init() { var form = $( '#mw-fr-reviewform' ); // Enable AJAX-based submit functionality to the review form on this page $( '#mw-fr-submit-accept,#mw-fr-submit-unaccept' ).click( function () { - fr.submitRevisionReview( this, form ); + submitRevisionReview( this, form ); return false; // don't do normal non-AJAX submit } ); @@ -30,22 +29,22 @@ } // Setup <select> form option colors - fr.updateReviewFormColors( form ); + updateReviewFormColors( form ); // Update review form on change form.find( 'input,select' ).change( function () { - fr.updateReviewForm( form ); + updateReviewForm( form ); } ); // Display "advertise" notice - fr.enableAjaxReviewActivity(); + enableAjaxReviewActivity(); // "De-advertise" user as "no longer reviewing" on navigate-away /*global window*/ $( window ).unload( function () { - if ( fr.isUserReviewing === 1 ) { - fr.deadvertiseReviewing(); + if ( isUserReviewing === 1 ) { + deadvertiseReviewing(); } } ); - }, + } /* * Updates for radios/checkboxes on patch by Daniel Arnold (bug 13744). @@ -55,30 +54,31 @@ * - Also remove comment box clutter in case of invalid input. * NOTE: all buttons should exist (perhaps hidden though) */ - updateReviewForm: function ( form ) { + function updateReviewForm( form ) { + var somezero, tag, tagLevelSelects, tagLevelSelect, selectedlevel, i; if ( form.prop( 'disabled' ) ) { return; } - var somezero = false; + somezero = false; // Determine if this is a "quality" or "incomplete" review - for ( var tag in wgFlaggedRevsParams.tags ) { + for ( tag in wgFlaggedRevsParams.tags ) { // Get the element or elements for selecting the tag level. // We might get back a select, a checkbox, or *several* radios. - var tagLevelSelects = form.find( "[name='wp" + tag + "']" ); + tagLevelSelects = form.find( "[name='wp" + tag + "']" ); if ( !tagLevelSelects.length ) { continue; // none found; binary flagging? } - var tagLevelSelect = tagLevelSelects.eq( 0 ); // convenient for select and checkbox + tagLevelSelect = tagLevelSelects.eq( 0 ); // convenient for select and checkbox - var selectedlevel = 0; // default + selectedlevel = 0; // default if ( tagLevelSelect.prop( 'nodeName' ) === 'SELECT' ) { selectedlevel = tagLevelSelect.prop( 'selectedIndex' ); } else if ( tagLevelSelect.prop( 'type' ) === 'checkbox' ) { selectedlevel = tagLevelSelect.prop( 'checked' ) ? 1 : 0; } else if ( tagLevelSelect.prop( 'type' ) === 'radio' ) { // Go through each radio option and find the selected one... - for ( var i = 0; i < tagLevelSelects.length; i++ ) { + for ( i = 0; i < tagLevelSelects.length; i++ ) { if ( tagLevelSelects.eq( i ).prop( 'checked' ) ) { selectedlevel = i; break; @@ -100,38 +100,39 @@ .val( mw.msg( 'revreview-submit-review' ) ); // reset to "Accept" // Update colors of <select> - fr.updateReviewFormColors( form ); - }, + updateReviewFormColors( form ); + } /* * Update <select> color for the selected item/option */ - updateReviewFormColors: function ( form ) { - for ( var tag in wgFlaggedRevsParams.tags ) { // for each tag - var select = form.find( "[name='wp" + tag + "']" ).eq( 0 ); + function updateReviewFormColors( form ) { + var tag, select, selectedlevel, value; + for ( tag in wgFlaggedRevsParams.tags ) { // for each tag + select = form.find( "[name='wp" + tag + "']" ).eq( 0 ); // Look for a selector for this tag if ( select.length && select.prop( 'nodeName' ) === 'SELECT' ) { - var selectedlevel = select.prop( 'selectedIndex' ); - var value = select.children( 'option' ).eq( selectedlevel ).val(); + selectedlevel = select.prop( 'selectedIndex' ); + value = select.children( 'option' ).eq( selectedlevel ).val(); select.prop( 'className', 'fr-rating-option-' + value ); // Fix FF one-time jitter bug of changing an <option> select.prop( 'selectedIndex', null ); select.prop( 'selectedIndex', selectedlevel ); } } - }, + } /* * Lock review form from submissions (using during AJAX requests) */ - lockReviewForm: function ( form ) { + function lockReviewForm( form ) { form.find( 'input,textarea,select' ).prop( 'disabled', true ); - }, + } /* * Unlock review form from submissions (using after AJAX requests) */ - unlockReviewForm: function ( form ) { + function unlockReviewForm( form ) { var i, inputs = form.find( 'input' ); for ( i = 0; i < inputs.length; i++ ) { if ( inputs.eq( i ).prop( 'type' ) !== 'submit' ) { // not all buttons can be enabled @@ -141,17 +142,17 @@ } } form.find( 'textarea,select' ).prop( 'disabled', false ); - }, + } /* * Submit a revision review via AJAX and update form elements. - * + * * Note: requestArgs build-up from radios/checkboxes * based on patch by Daniel Arnold (bug 13744) */ - submitRevisionReview: function ( button, form ) { + function submitRevisionReview( button, form ) { var i; - fr.lockReviewForm( form ); // disallow submissions + lockReviewForm( form ); // disallow submissions // Build up arguments array and update submit button text... var requestArgs = []; // array of strings of the format <"pname|pval">. var inputs = form.find( 'input' ); @@ -198,23 +199,25 @@ data : post_data, dataType : 'html', // response type success : function ( response ) { - fr.postSubmitRevisionReview( form, response ); + postSubmitRevisionReview( form, response ); }, error : function () { - fr.unlockReviewForm( form ); + unlockReviewForm( form ); } } ); - }, + } /* * Update form elements after AJAX review. */ - postSubmitRevisionReview: function ( form, response ) { + function postSubmitRevisionReview( form, response ) { var msg = response.substr( 6 ); // remove <err#> or <suc#> // Read new "last change time" timestamp for conflict handling // @TODO: pass last-chage-time data using JSON or something not retarded var m = msg.match( /^<lct#(\d*)>(.*)/m ); - if ( m ) msg = m[2]; // remove tag from msg + if ( m ) { + msg = m[2]; // remove tag from msg + } var changeTime = m ? m[1] : null; // MW TS // Review form elements @@ -304,30 +307,30 @@ if ( changeTime !== null ) { $( '#mw-fr-input-changetime' ).val( changeTime ); } - fr.unlockReviewForm( form ); - }, + unlockReviewForm( form ); + } /* * Enable AJAX-based functionality to set that a user is reviewing a page/diff */ - enableAjaxReviewActivity: function () { + function enableAjaxReviewActivity() { // User is already reviewing in another tab... if ( $( '#mw-fr-user-reviewing' ).val() === 1 ) { - fr.isUserReviewing = 1; - fr.advertiseReviewing( null, true ); + isUserReviewing = 1; + advertiseReviewing( null, true ); // User is not already reviewing this.... } else { - fr.deadvertiseReviewing( null, true ); + deadvertiseReviewing( null, true ); } $( '#mw-fr-reviewing-status' ).show(); - }, + } /* * Flag users as "now reviewing" */ - advertiseReviewing: function ( e, isInitial ) { + function advertiseReviewing( e, isInitial ) { if ( isInitial !== true ) { // don't send if just setting up form - if ( !fr.setReviewingStatus( 1 ) ) { + if ( !setReviewingStatus( 1 ) ) { return; // failed } } @@ -345,15 +348,15 @@ { id: 'mw-fr-reviewing-stop' }, mw.msg( 'revreview-adv-stop-link' ) ) + ')' ) .find( '#mw-fr-reviewing-stop' ) .css( 'cursor', 'pointer' ) - .click( fr.deadvertiseReviewing ); - }, + .click( deadvertiseReviewing ); + } /* * Flag users as "no longer reviewing" */ - deadvertiseReviewing: function ( e, isInitial ) { + function deadvertiseReviewing( e, isInitial ) { if ( isInitial !== true ) { // don't send if just setting up form - if ( !fr.setReviewingStatus( 0 ) ) { + if ( !setReviewingStatus( 0 ) ) { return; // failed } } @@ -371,15 +374,15 @@ ); $underReview.find( '#mw-fr-reviewing-start' ) .css( 'cursor', 'pointer' ) - .click( fr.advertiseReviewing ); + .click( advertiseReviewing ); // Update notice to say that user is not advertising... $( '#mw-fr-reviewing-status' ).empty().append( $underReview ); - }, + } /* * Set reviewing status for this page/diff */ - setReviewingStatus: function ( value ) { + function setReviewingStatus( value ) { var res = false, // Get {previd,oldid} array for this page view. // The previd value will be 0 if this is not a diff view. @@ -406,15 +409,14 @@ async : false } ); if ( res && res.reviewactivity && res.reviewactivity.result === 'Success' ) { - fr.isUserReviewing = value; + isUserReviewing = value; return true; } } return false; } -}; -// Perform some onload events: -$( fr.init ); + // Perform some onload events: + $( init ); }( mediaWiki, jQuery ) ); -- To view, visit https://gerrit.wikimedia.org/r/212589 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3ea968a6d794dc4cc83bffb6a9306f30642f1ccd Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/FlaggedRevs Gerrit-Branch: master Gerrit-Owner: Gerrit Patch Uploader <gerritpatchuploa...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits