Gerrit Patch Uploader has uploaded a new change for review.
https://gerrit.wikimedia.org/r/296183
Change subject: Reorder definition functions to reduce forward declarations
......................................................................
Reorder definition functions to reduce forward declarations
Change-Id: I13cdf676cf7cb468966dd1a6ceca248c3e46d6ad
---
M frontend/modules/ext.flaggedRevs.advanced.js
M frontend/modules/ext.flaggedRevs.review.js
2 files changed, 208 insertions(+), 208 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/FlaggedRevs
refs/changes/83/296183/1
diff --git a/frontend/modules/ext.flaggedRevs.advanced.js
b/frontend/modules/ext.flaggedRevs.advanced.js
index d941800..98796f5 100644
--- a/frontend/modules/ext.flaggedRevs.advanced.js
+++ b/frontend/modules/ext.flaggedRevs.advanced.js
@@ -10,43 +10,6 @@
/* Dropdown collapse timer */
boxCollapseTimer: null,
- /* Startup function */
- init: function () {
- // 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
- }
-
- // Bar UI: Toggle the box when the toggle is clicked
- $( '.fr-toggle-symbol#mw-fr-revisiontoggle' ).click(
fr.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 );
-
- // Enables diff detail box and toggle
- toggle = $( '#mw-fr-difftoggle' );
- if ( toggle.length ) {
- toggle.css( 'display', 'inline' ); // show toggle
control
- $( '#mw-fr-stablediff' ).hide();
- }
- toggle.children( 'a' ).click( fr.toggleDiff );
-
- // Enables log detail box and toggle
- toggle = $( '#mw-fr-logtoggle' );
- if ( toggle.length ) {
- toggle.css( 'display', 'inline' ); // show toggle
control
- $( '#mw-fr-logexcerpt' ).hide();
- }
- toggle.children( 'a' ).click( fr.toggleLog );
-
- // Enables changing of save button when "review this" checkbox
changes
- $( '#wpReviewEdit' ).click( fr.updateSaveButton );
- },
-
/* Expands flag info box details */
showBoxDetails: function () {
$( '#mw-fr-revisiondetails' ).css( 'display', 'block' );
@@ -80,6 +43,29 @@
},
/**
+ * Checks if mouseOut event is for a child of parentId
+ * @param e {jQuery.Event}
+ * @param parentId {String}
+ * @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 ) {
+ var toNode = e.relatedTarget;
+
+ if ( toNode ) {
+ var nextParent = toNode.parentNode;
+ while ( nextParent ) {
+ if ( nextParent.id === parentId ) {
+ return true;
+ }
+ // next up
+ nextParent = nextParent.parentNode;
+ }
+ }
+ return false;
+ },
+
+ /**
* Expands flag info box details on mouseOver
* @context {jQuery}
* @param e {jQuery.Event}
@@ -101,29 +87,6 @@
/*global window*/
fr.boxCollapseTimer = window.setTimeout(
fr.hideBoxDetails, 150 );
}
- },
-
- /**
- * Checks if mouseOut event is for a child of parentId
- * @param e {jQuery.Event}
- * @param parentId {String}
- * @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 ) {
- var toNode = e.relatedTarget;
-
- if ( toNode ) {
- var nextParent = toNode.parentNode;
- while ( nextParent ) {
- if ( nextParent.id === parentId ) {
- return true;
- }
- // next up
- nextParent = nextParent.parentNode;
- }
- }
- return false;
},
/**
@@ -203,6 +166,43 @@
}
$save.updateTooltipAccessKeys();
}
+ },
+
+ /* Startup function */
+ init: function () {
+ // 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
+ }
+
+ // Bar UI: Toggle the box when the toggle is clicked
+ $( '.fr-toggle-symbol#mw-fr-revisiontoggle' ).click(
fr.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 );
+
+ // Enables diff detail box and toggle
+ toggle = $( '#mw-fr-difftoggle' );
+ if ( toggle.length ) {
+ toggle.css( 'display', 'inline' ); // show toggle
control
+ $( '#mw-fr-stablediff' ).hide();
+ }
+ toggle.children( 'a' ).click( fr.toggleDiff );
+
+ // Enables log detail box and toggle
+ toggle = $( '#mw-fr-logtoggle' );
+ if ( toggle.length ) {
+ toggle.css( 'display', 'inline' ); // show toggle
control
+ $( '#mw-fr-logexcerpt' ).hide();
+ }
+ toggle.children( 'a' ).click( fr.toggleLog );
+
+ // Enables changing of save button when "review this" checkbox
changes
+ $( '#wpReviewEdit' ).click( fr.updateSaveButton );
}
};
diff --git a/frontend/modules/ext.flaggedRevs.review.js
b/frontend/modules/ext.flaggedRevs.review.js
index f379401..d24131b 100644
--- a/frontend/modules/ext.flaggedRevs.review.js
+++ b/frontend/modules/ext.flaggedRevs.review.js
@@ -11,40 +11,22 @@
/* User is reviewing this page? */
isUserReviewing: 0,
- /* Startup function */
- init: function () {
- 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 );
- return false; // don't do normal non-AJAX submit
- } );
-
- // Disable 'accept' button if the revision was already reviewed.
- // This is used so that they can be re-enabled if a rating
changes.
- /*global jsReviewNeedsChange*/
- // wtf? this is set in frontend/RevisionReviewFormUI by
outputting JS
- if ( typeof jsReviewNeedsChange !== 'undefined' &&
jsReviewNeedsChange === 1 ) {
- $( '#mw-fr-submit-accept' ).prop( 'disabled', true );
- }
-
- // Setup <select> form option colors
- fr.updateReviewFormColors( form );
- // Update review form on change
- form.find( 'input,select' ).change( function () {
- fr.updateReviewForm( form );
- } );
-
- // Display "advertise" notice
- fr.enableAjaxReviewActivity();
- // "De-advertise" user as "no longer reviewing" on navigate-away
- /*global window*/
- $( window ).on( 'unload', function () {
- if ( fr.isUserReviewing === 1 ) {
- fr.deadvertiseReviewing();
+ /*
+ * 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 );
+ // 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();
+ 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 );
}
- } );
+ }
},
/*
@@ -104,24 +86,6 @@
},
/*
- * 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 );
- // 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();
- 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 ) {
@@ -141,69 +105,6 @@
}
}
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 ) {
- var i;
- fr.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' );
- for ( i = 0; i < inputs.length; i++ ) {
- var input = inputs.eq( i );
- // Different input types may occur depending on tags...
- if ( input.prop( 'name' ) === 'title' || input.prop(
'name' ) === 'action' ) {
- continue; // No need to send these...
- } else if ( input.prop( 'type' ) === 'submit' ) {
- if ( input.prop( 'id' ) === button.id ) {
- requestArgs.push( input.prop( 'name' )
+ '|1' );
- // Show that we are submitting via this
button
- input.val( mw.msg(
'revreview-submitting' ) );
- }
- } else if ( input.prop( 'type' ) === 'checkbox' ) {
- requestArgs.push( input.prop( 'name' ) + '|' +
// must send a number
- ( input.prop( 'checked' ) ? input.val()
: 0 ) );
- } else if ( input.prop( 'type' ) === 'radio' ) {
- if ( input.prop( 'checked' ) ) { // must be
checked
- requestArgs.push( input.prop( 'name' )
+ '|' + input.val() );
- }
- } else {
- requestArgs.push( input.prop( 'name' ) + '|' +
input.val() ); // text/hiddens...
- }
- }
- var selects = form.find( 'select' );
- for ( i = 0; i < selects.length; i++ ) {
- var select = selects.eq( i );
- // Get the selected tag level...
- if ( select.prop( 'selectedIndex' ) >= 0 ) {
- var soption = select.find( 'option' ).eq(
select.prop( 'selectedIndex' ) );
- requestArgs.push( select.prop( 'name' ) + '|' +
soption.val() );
- }
- }
- // Send encoded function plus all arguments...
- var post_data = 'action=ajax&rs=RevisionReview::AjaxReview';
- for ( i = 0; i < requestArgs.length; i++ ) {
- post_data += '&rsargs[]=' + encodeURIComponent(
requestArgs[i] );
- }
- // Send POST request via AJAX!
- $.ajax( {
- url : mw.util.wikiScript( 'index' ),
- type : 'POST',
- data : post_data,
- dataType : 'html', // response type
- success : function ( response ) {
- fr.postSubmitRevisionReview( form, response );
- },
- error : function () {
- fr.unlockReviewForm( form );
- }
- } );
},
/*
@@ -308,6 +209,69 @@
},
/*
+ * 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 ) {
+ var i;
+ fr.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' );
+ for ( i = 0; i < inputs.length; i++ ) {
+ var input = inputs.eq( i );
+ // Different input types may occur depending on tags...
+ if ( input.prop( 'name' ) === 'title' || input.prop(
'name' ) === 'action' ) {
+ continue; // No need to send these...
+ } else if ( input.prop( 'type' ) === 'submit' ) {
+ if ( input.prop( 'id' ) === button.id ) {
+ requestArgs.push( input.prop( 'name' )
+ '|1' );
+ // Show that we are submitting via this
button
+ input.val( mw.msg(
'revreview-submitting' ) );
+ }
+ } else if ( input.prop( 'type' ) === 'checkbox' ) {
+ requestArgs.push( input.prop( 'name' ) + '|' +
// must send a number
+ ( input.prop( 'checked' ) ? input.val()
: 0 ) );
+ } else if ( input.prop( 'type' ) === 'radio' ) {
+ if ( input.prop( 'checked' ) ) { // must be
checked
+ requestArgs.push( input.prop( 'name' )
+ '|' + input.val() );
+ }
+ } else {
+ requestArgs.push( input.prop( 'name' ) + '|' +
input.val() ); // text/hiddens...
+ }
+ }
+ var selects = form.find( 'select' );
+ for ( i = 0; i < selects.length; i++ ) {
+ var select = selects.eq( i );
+ // Get the selected tag level...
+ if ( select.prop( 'selectedIndex' ) >= 0 ) {
+ var soption = select.find( 'option' ).eq(
select.prop( 'selectedIndex' ) );
+ requestArgs.push( select.prop( 'name' ) + '|' +
soption.val() );
+ }
+ }
+ // Send encoded function plus all arguments...
+ var post_data = 'action=ajax&rs=RevisionReview::AjaxReview';
+ for ( i = 0; i < requestArgs.length; i++ ) {
+ post_data += '&rsargs[]=' + encodeURIComponent(
requestArgs[i] );
+ }
+ // Send POST request via AJAX!
+ $.ajax( {
+ url : mw.util.wikiScript( 'index' ),
+ type : 'POST',
+ data : post_data,
+ dataType : 'html', // response type
+ success : function ( response ) {
+ fr.postSubmitRevisionReview( form, response );
+ },
+ error : function () {
+ fr.unlockReviewForm( form );
+ }
+ } );
+ },
+
+ /*
* Enable AJAX-based functionality to set that a user is reviewing a
page/diff
*/
enableAjaxReviewActivity: function () {
@@ -320,6 +284,43 @@
fr.deadvertiseReviewing( null, true );
}
$( '#mw-fr-reviewing-status' ).show();
+ },
+
+ /*
+ * Set reviewing status for this page/diff
+ */
+ setReviewingStatus: function ( 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.
+ inputRefId = $( '#mw-fr-input-refid' ),
+ oRevId = inputRefId ? inputRefId.val() : 0,
+ inputOldId = $( '#mw-fr-input-oldid' ),
+ nRevId = inputOldId ? inputOldId.val() : 0;
+ if ( nRevId > 0 ) {
+ // Send GET request via AJAX!
+ $.ajax( {
+ url : mw.util.wikiScript( 'api' ),
+ data : {
+ action : 'reviewactivity',
+ previd : oRevId,
+ oldid : nRevId,
+ reviewing : value,
+ token : mw.user.tokens.get(
'editToken' ),
+ format : 'json'
+ },
+ type : 'POST',
+ dataType : 'json', // response type
+ timeout : 1700, // don't delay user exiting
+ success : function ( data ) { res = data; },
+ async : false
+ } );
+ if ( res && res.reviewactivity &&
res.reviewactivity.result === 'Success' ) {
+ fr.isUserReviewing = value;
+ return true;
+ }
+ }
+ return false;
},
/*
@@ -376,41 +377,40 @@
$( '#mw-fr-reviewing-status' ).empty().append( $underReview );
},
- /*
- * Set reviewing status for this page/diff
- */
- setReviewingStatus: function ( 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.
- inputRefId = $( '#mw-fr-input-refid' ),
- oRevId = inputRefId ? inputRefId.val() : 0,
- inputOldId = $( '#mw-fr-input-oldid' ),
- nRevId = inputOldId ? inputOldId.val() : 0;
- if ( nRevId > 0 ) {
- // Send GET request via AJAX!
- $.ajax( {
- url : mw.util.wikiScript( 'api' ),
- data : {
- action : 'reviewactivity',
- previd : oRevId,
- oldid : nRevId,
- reviewing : value,
- token : mw.user.tokens.get(
'editToken' ),
- format : 'json'
- },
- type : 'POST',
- dataType : 'json', // response type
- timeout : 1700, // don't delay user exiting
- success : function ( data ) { res = data; },
- async : false
- } );
- if ( res && res.reviewactivity &&
res.reviewactivity.result === 'Success' ) {
- fr.isUserReviewing = value;
- return true;
- }
+ /* Startup function */
+ init: function () {
+ 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 );
+ return false; // don't do normal non-AJAX submit
+ } );
+
+ // Disable 'accept' button if the revision was already reviewed.
+ // This is used so that they can be re-enabled if a rating
changes.
+ /*global jsReviewNeedsChange*/
+ // wtf? this is set in frontend/RevisionReviewFormUI by
outputting JS
+ if ( typeof jsReviewNeedsChange !== 'undefined' &&
jsReviewNeedsChange === 1 ) {
+ $( '#mw-fr-submit-accept' ).prop( 'disabled', true );
}
- return false;
+
+ // Setup <select> form option colors
+ fr.updateReviewFormColors( form );
+ // Update review form on change
+ form.find( 'input,select' ).change( function () {
+ fr.updateReviewForm( form );
+ } );
+
+ // Display "advertise" notice
+ fr.enableAjaxReviewActivity();
+ // "De-advertise" user as "no longer reviewing" on navigate-away
+ /*global window*/
+ $( window ).on( 'unload', function () {
+ if ( fr.isUserReviewing === 1 ) {
+ fr.deadvertiseReviewing();
+ }
+ } );
}
};
--
To view, visit https://gerrit.wikimedia.org/r/296183
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I13cdf676cf7cb468966dd1a6ceca248c3e46d6ad
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/FlaggedRevs
Gerrit-Branch: master
Gerrit-Owner: Gerrit Patch Uploader <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits