Cenarium has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/317280

Change subject: Split advanced.js in view.js, edit.js and edit.review.js
......................................................................

Split advanced.js in view.js, edit.js and edit.review.js

This splits the advanced module in three modules that are loaded
when viewing or editing, with an additional module for reviewers
when editing. This avoids loading unecessary JS.

Change-Id: I7266ca45b751c9cde5f45bfd4081c087526a06ba
---
M FlaggedRevs.php
M frontend/FlaggedRevsUI.hooks.php
D frontend/modules/ext.flaggedRevs.advanced.js
A frontend/modules/ext.flaggedRevs.edit.js
A frontend/modules/ext.flaggedRevs.edit.review.js
M frontend/modules/ext.flaggedRevs.review.js
A frontend/modules/ext.flaggedRevs.view.js
7 files changed, 339 insertions(+), 247 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/FlaggedRevs 
refs/changes/80/317280/1

diff --git a/FlaggedRevs.php b/FlaggedRevs.php
index 6f56c21..3d939ee 100644
--- a/FlaggedRevs.php
+++ b/FlaggedRevs.php
@@ -368,13 +368,28 @@
        'localBasePath' => $localModulePath,
        'remoteExtPath' => $remoteModulePath,
 );
-$wgResourceModules['ext.flaggedRevs.advanced'] = array(
-       'scripts'       => array( 'ext.flaggedRevs.advanced.js' ),
+$wgResourceModules['ext.flaggedRevs.view'] = array(
+       'scripts'       => array( 'ext.flaggedRevs.view.js' ),
        'messages'      => array(
                'revreview-toggle-show', 'revreview-toggle-hide',
+       ),
+       'localBasePath' => $localModulePath,
+       'remoteExtPath' => $remoteModulePath,
+);
+$wgResourceModules['ext.flaggedRevs.edit'] = array(
+       'scripts'       => array( 'ext.flaggedRevs.edit.js' ),
+       'messages'      => array(
                'revreview-diff-toggle-show', 'revreview-diff-toggle-hide',
-               'revreview-log-toggle-show', 'revreview-log-toggle-hide',
                'revreview-log-details-show', 'revreview-log-details-hide'
+       ),
+       'localBasePath' => $localModulePath,
+       'remoteExtPath' => $remoteModulePath,
+);
+$wgResourceModules['ext.flaggedRevs.edit.review'] = array(
+       'scripts'       => array( 'ext.flaggedRevs.edit.review.js' ),
+       'messages'      => array(
+               'savearticle', 'tooltip-save',
+               'revreview-submitedit', 'revreview-submitedit-title',
        ),
        'dependencies'  => array( 'jquery.accessKeyLabel' ),
        'localBasePath' => $localModulePath,
@@ -383,8 +398,7 @@
 $wgResourceModules['ext.flaggedRevs.review'] = array(
        'scripts'       => array( 'ext.flaggedRevs.review.js' ),
        'messages'      => array(
-               'savearticle', 'tooltip-save',
-               'revreview-submitedit', 'revreview-submitedit-title',
+               'revreview-log-toggle-show', 'revreview-log-toggle-hide',
                'revreview-submit-review', 'revreview-submit-unreview',
                'revreview-submit-reviewed', 'revreview-submit-unreviewed',
                'revreview-submitting', 'actioncomplete', 'actionfailed',
diff --git a/frontend/FlaggedRevsUI.hooks.php b/frontend/FlaggedRevsUI.hooks.php
index 0abe3be..edf68f3 100644
--- a/frontend/FlaggedRevsUI.hooks.php
+++ b/frontend/FlaggedRevsUI.hooks.php
@@ -3,32 +3,6 @@
  * Class containing hooked functions for a FlaggedRevs environment
  */
 class FlaggedRevsUIHooks {
-       /**
-        * Add FlaggedRevs css/js.
-        */
-       protected static function injectStyleAndJS() {
-               global $wgOut, $wgUser;
-               static $loadedModules = false;
-               if ( $loadedModules ) {
-                       return true; // don't double-load
-               }
-               $loadedModules = true;
-               $fa = FlaggablePageView::globalArticleInstance();
-               # Try to only add to relevant pages
-               if ( !$fa || !$fa->isReviewable() ) {
-                       return true;
-               }
-               # Add main CSS & JS files
-               $wgOut->addModuleStyles( 'ext.flaggedRevs.basic' );
-               $wgOut->addModules( 'ext.flaggedRevs.advanced' );
-               # Add review form JS for reviewers
-               if ( $wgUser->isAllowed( 'review' ) ) {
-                       $wgOut->addModules( 'ext.flaggedRevs.review' );
-                       $wgOut->addModuleStyles( 
'ext.flaggedRevs.review.styles' );
-               }
-               return true;
-       }
-
        public static function injectGlobalJSVars( array &$globalVars, 
OutputPage $out ) {
                # Get the review tags on this wiki
                $rTags = FlaggedRevs::getJSTagParams();
@@ -80,7 +54,6 @@
                                }
                        }
                        $view->setRobotPolicy(); // set indexing policy
-                       self::injectStyleAndJS(); // full CSS/JS
                } else {
                        self::maybeAddBacklogNotice( $out ); // RC/Watchlist 
notice
                        self::injectStyleForSpecial( $out ); // try special 
page CSS
@@ -191,8 +164,23 @@
 
        public static function onArticleViewHeader( &$article, &$outputDone, 
&$useParserCache ) {
                $view = FlaggablePageView::singleton();
-               $view->addStableLink( $outputDone, $useParserCache );
+               $view->addStableLink();
                $view->setPageContent( $outputDone, $useParserCache );
+               $fa = FlaggablePageView::globalArticleInstance();
+               # Try to only add to relevant pages
+               if ( !$fa || !$fa->isReviewable() ) {
+                       return true;
+               }
+               $out = $article->getContext()->getOutput();
+               # Add main CSS file
+               $out->addModuleStyles( 'ext.flaggedRevs.basic' );
+               # Add view JS
+               $out->addModules( 'ext.flaggedRevs.view' );
+               # Add review form JS for reviewers
+               if ( $article->getContext()->getUser()->isAllowed( 'review' ) ) 
{
+                       $out->addModules( 'ext.flaggedRevs.review' );
+                       $out->addModuleStyles( 'ext.flaggedRevs.review.styles' 
);
+               }
                return true;
        }
 
@@ -248,9 +236,23 @@
                return true;
        }
 
-       public static function addToEditView( &$editPage ) {
+       public static function addToEditView( &$editPage, &$out ) {
+               global $wgUser;
                $view = FlaggablePageView::singleton();
                $view->addToEditView( $editPage );
+               $fa = FlaggablePageView::globalArticleInstance();
+               # Try to only add to relevant pages
+               if ( !$fa || !$fa->isReviewable() ) {
+                       return true;
+               }
+               # Add main CSS file
+               $out->addModuleStyles( 'ext.flaggedRevs.basic' );
+               # Add editing JS
+               $out->addModules( 'ext.flaggedRevs.edit' );
+               # Add editing JS for reviewers
+               if ( $wgUser->isAllowed( 'review' ) ) {
+                       $out->addModules( 'ext.flaggedRevs.edit.review' );
+               }
                return true;
        }
 
@@ -585,10 +587,22 @@
        }
 
        public static function onDiffViewHeader( $diff, $oldRev, $newRev ) {
-               self::injectStyleAndJS();
                $view = FlaggablePageView::singleton();
                $view->setViewFlags( $diff, $oldRev, $newRev );
                $view->addToDiffView( $diff, $oldRev, $newRev );
+               $fa = FlaggablePageView::globalArticleInstance();
+               # Try to only add to relevant pages
+               if ( !$fa || !$fa->isReviewable() ) {
+                       return true;
+               }
+               $out = $diff->getContext()->getOutput();
+               # Add main CSS file
+               $out->addModuleStyles( 'ext.flaggedRevs.basic' );
+               # Add review form JS for reviewers
+               if ( $diff->getContext()->getUser()->isAllowed( 'review' ) ) {
+                       $out->addModules( 'ext.flaggedRevs.review' );
+                       $out->addModuleStyles( 'ext.flaggedRevs.review.styles' 
);
+               }
                return true;
        }
 
diff --git a/frontend/modules/ext.flaggedRevs.advanced.js 
b/frontend/modules/ext.flaggedRevs.advanced.js
deleted file mode 100644
index 98796f5..0000000
--- a/frontend/modules/ext.flaggedRevs.advanced.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
- * FlaggedRevs Advanced JavaScript
- * @author Aaron Schulz
- * @author Krinkle <krinklem...@gmail.com> 2011
- */
-( function ( mw, $ ) {
-       "use strict";
-
-var fr = {
-       /* Dropdown collapse timer */
-       boxCollapseTimer: null,
-
-       /* Expands flag info box details */
-       showBoxDetails: function () {
-               $( '#mw-fr-revisiondetails' ).css( 'display', 'block' );
-       },
-
-       /* Collapses flag info box details */
-       hideBoxDetails: function () {
-               $( '#mw-fr-revisiondetails' ).css( 'display', 'none' );
-       },
-
-       /**
-        * Toggles flag info box details for (+/-) control
-        * @context {jQuery}
-        * @param e {jQuery.Event}
-        */
-       toggleBoxDetails: function () {
-               var     toggle = $( '#mw-fr-revisiontoggle' ),
-                       ratings = $( '#mw-fr-revisiondetails' );
-
-               if ( toggle.length && ratings.length ) {
-                       // Collapsed -> expand
-                       if ( ratings.css( 'display' ) === 'none' ) {
-                               fr.showBoxDetails();
-                               toggle.text( mw.msg( 'revreview-toggle-hide' ) 
);
-                       // Expanded -> collapse
-                       } else {
-                               fr.hideBoxDetails();
-                               toggle.text( mw.msg( 'revreview-toggle-show' ) 
);
-                       }
-               }
-       },
-
-       /**
-        * 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}
-        */
-       onBoxMouseOver: function () {
-               /*global window*/
-               window.clearTimeout( fr.boxCollapseTimer );
-               fr.boxCollapseTimer = null;
-               fr.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' ) ) {
-                       /*global window*/
-                       fr.boxCollapseTimer = window.setTimeout( 
fr.hideBoxDetails, 150 );
-               }
-       },
-
-       /**
-        * Toggles diffs
-        * @context {jQuery}
-        * @param e {jQuery.Event}
-        */
-       toggleDiff: function () {
-               var     diff = $( '#mw-fr-stablediff' ),
-                       toggle = $( '#mw-fr-difftoggle' );
-
-               if ( diff.length && toggle.length ) {
-                       if ( diff.css( 'display' ) === 'none' ) {
-                               diff.show( 'slow' );
-                               toggle.children( 'a' ).text( mw.msg( 
'revreview-diff-toggle-hide' ) );
-                       } else {
-                               diff.hide( 'slow' );
-                               toggle.children( 'a' ).text( mw.msg( 
'revreview-diff-toggle-show' ) );
-                       }
-               }
-       },
-
-       /**
-        * Toggles log excerpts
-        * @context {jQuery}
-        * @param e {jQuery.Event}
-        */
-       toggleLog: function () {
-               var     hideMsg, showMsg,
-                       log = $( '#mw-fr-logexcerpt' ),
-                       toggle = $( '#mw-fr-logtoggle' );
-
-               if ( log.length && toggle.length ) {
-                       // Two different message sets used here...
-                       if ( toggle.hasClass( 'fr-logtoggle-details' ) ) {
-                               hideMsg = mw.msg( 'revreview-log-details-hide' 
);
-                               showMsg = mw.msg( 'revreview-log-details-show' 
);
-                       } else {
-                               hideMsg = mw.msg( 'revreview-log-toggle-hide' );
-                               showMsg = mw.msg( 'revreview-log-toggle-show' );
-                       }
-
-                       if ( log.css( 'display' ) === 'none' ) {
-                               log.show();
-                               toggle.children( 'a' ).text( hideMsg );
-                       } else {
-                               log.hide();
-                               toggle.children( 'a' ).text( showMsg );
-                       }
-               }
-       },
-
-       /**
-        * Update save button when "review this" checkbox changes
-        * @context {jQuery}
-        * @param e {jQuery.Event}
-        */
-       updateSaveButton: function () {
-               var     $save = $( '#wpSave' ),
-                       $checkbox = $( '#wpReviewEdit' );
-
-               if ( $save.length && $checkbox.length ) {
-                       // Review pending changes
-                       if ( $checkbox.prop( 'checked' ) ) {
-                               $save
-                                       .val( mw.msg( 'savearticle' ) )
-                                       .attr( 'title',
-                                               mw.msg( 'tooltip-save' )
-                                       );
-                       // Submit for review
-                       } else {
-                               $save
-                                       .val( mw.msg( 'revreview-submitedit' ) )
-                                       .attr( 'title',
-                                               mw.msg( 
'revreview-submitedit-title' )
-                                       );
-                       }
-                       $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 );
-       }
-};
-
-// Perform some onload events:
-$( fr.init );
-
-}( mediaWiki, jQuery ) );
diff --git a/frontend/modules/ext.flaggedRevs.edit.js 
b/frontend/modules/ext.flaggedRevs.edit.js
new file mode 100644
index 0000000..065a180
--- /dev/null
+++ b/frontend/modules/ext.flaggedRevs.edit.js
@@ -0,0 +1,80 @@
+/**
+ * FlaggedRevs Advanced JavaScript
+ * @author Aaron Schulz
+ * @author Krinkle <krinklem...@gmail.com> 2011
+ */
+( function ( mw, $ ) {
+       "use strict";
+
+var fr = {
+       /**
+        * Toggles diffs
+        * @context {jQuery}
+        * @param e {jQuery.Event}
+        */
+       toggleDiff: function () {
+               var     diff = $( '#mw-fr-stablediff' ),
+                       toggle = $( '#mw-fr-difftoggle' );
+
+               if ( diff.length && toggle.length ) {
+                       if ( diff.css( 'display' ) === 'none' ) {
+                               diff.show( 'slow' );
+                               toggle.children( 'a' ).text( mw.msg( 
'revreview-diff-toggle-hide' ) );
+                       } else {
+                               diff.hide( 'slow' );
+                               toggle.children( 'a' ).text( mw.msg( 
'revreview-diff-toggle-show' ) );
+                       }
+               }
+       },
+
+       /**
+        * Toggles log excerpts
+        * @context {jQuery}
+        * @param e {jQuery.Event}
+        */
+       toggleLog: function () {
+               var     hideMsg, showMsg,
+                       log = $( '#mw-fr-logexcerpt' ),
+                       toggle = $( '#mw-fr-logtoggle' );
+
+               if ( log.length && toggle.length ) {
+                       hideMsg = mw.msg( 'revreview-log-details-hide' );
+                       showMsg = mw.msg( 'revreview-log-details-show' );
+
+                       if ( log.css( 'display' ) === 'none' ) {
+                               log.show();
+                               toggle.children( 'a' ).text( hideMsg );
+                       } else {
+                               log.hide();
+                               toggle.children( 'a' ).text( showMsg );
+                       }
+               }
+       },
+
+       /* Startup function */
+       init: function () {
+               // Enables rating detail box
+               var toggle;
+
+               // 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 );
+       }
+};
+
+// Perform some onload events:
+$( fr.init );
+
+}( mediaWiki, jQuery ) );
diff --git a/frontend/modules/ext.flaggedRevs.edit.review.js 
b/frontend/modules/ext.flaggedRevs.edit.review.js
new file mode 100644
index 0000000..dfa143c
--- /dev/null
+++ b/frontend/modules/ext.flaggedRevs.edit.review.js
@@ -0,0 +1,50 @@
+/**
+ * FlaggedRevs Advanced JavaScript
+ * @author Aaron Schulz
+ * @author Krinkle <krinklem...@gmail.com> 2011
+ */
+( function ( mw, $ ) {
+       "use strict";
+
+var fr = {
+
+       /**
+        * Update save button when "review this" checkbox changes
+        * @context {jQuery}
+        * @param e {jQuery.Event}
+        */
+       updateSaveButton: function () {
+               var     $save = $( '#wpSave' ),
+                       $checkbox = $( '#wpReviewEdit' );
+
+               if ( $save.length && $checkbox.length ) {
+                       // Review pending changes
+                       if ( $checkbox.prop( 'checked' ) ) {
+                               $save
+                                       .val( mw.msg( 'savearticle' ) )
+                                       .attr( 'title',
+                                               mw.msg( 'tooltip-save' )
+                                       );
+                       // Submit for review
+                       } else {
+                               $save
+                                       .val( mw.msg( 'revreview-submitedit' ) )
+                                       .attr( 'title',
+                                               mw.msg( 
'revreview-submitedit-title' )
+                                       );
+                       }
+                       $save.updateTooltipAccessKeys();
+               }
+       },
+
+       /* Startup function */
+       init: function () {
+               // Enables changing of save button when "review this" checkbox 
changes
+               $( '#wpReviewEdit' ).click( fr.updateSaveButton );
+       }
+};
+
+// Perform some onload events:
+$( fr.init );
+
+}( mediaWiki, jQuery ) );
diff --git a/frontend/modules/ext.flaggedRevs.review.js 
b/frontend/modules/ext.flaggedRevs.review.js
index c90afc6..7dd21ee 100644
--- a/frontend/modules/ext.flaggedRevs.review.js
+++ b/frontend/modules/ext.flaggedRevs.review.js
@@ -377,6 +377,30 @@
                $( '#mw-fr-reviewing-status' ).show();
        },
 
+       /**
+        * Toggles log excerpts
+        * @context {jQuery}
+        * @param e {jQuery.Event}
+        */
+       toggleLog: function () {
+               var     hideMsg, showMsg,
+                       log = $( '#mw-fr-logexcerpt' ),
+                       toggle = $( '#mw-fr-logtoggle' );
+
+               if ( log.length && toggle.length ) {
+                       hideMsg = mw.msg( 'revreview-log-toggle-hide' );
+                       showMsg = mw.msg( 'revreview-log-toggle-show' );
+
+                       if ( log.css( 'display' ) === 'none' ) {
+                               log.show();
+                               toggle.children( 'a' ).text( hideMsg );
+                       } else {
+                               log.hide();
+                               toggle.children( 'a' ).text( showMsg );
+                       }
+               }
+       },
+
        /* Startup function */
        init: function () {
                var form = $( '#mw-fr-reviewform' );
@@ -411,6 +435,14 @@
                                fr.deadvertiseReviewing();
                        }
                } );
+
+               // Enables log box and toggle
+               var toggle = $( '#mw-fr-logtoggle' );
+               if ( toggle.length ) {
+                       toggle.css( 'display', 'inline' ); // show toggle 
control
+                       $( '#mw-fr-logexcerpt' ).hide();
+               }
+               toggle.children( 'a' ).click( fr.toggleLog );
        }
 };
 
diff --git a/frontend/modules/ext.flaggedRevs.view.js 
b/frontend/modules/ext.flaggedRevs.view.js
new file mode 100644
index 0000000..b176e34
--- /dev/null
+++ b/frontend/modules/ext.flaggedRevs.view.js
@@ -0,0 +1,114 @@
+/**
+ * FlaggedRevs Advanced JavaScript
+ * @author Aaron Schulz
+ * @author Krinkle <krinklem...@gmail.com> 2011
+ */
+( function ( mw, $ ) {
+       "use strict";
+
+var fr = {
+       /* Dropdown collapse timer */
+       boxCollapseTimer: null,
+
+       /* Expands flag info box details */
+       showBoxDetails: function () {
+               $( '#mw-fr-revisiondetails' ).css( 'display', 'block' );
+       },
+
+       /* Collapses flag info box details */
+       hideBoxDetails: function () {
+               $( '#mw-fr-revisiondetails' ).css( 'display', 'none' );
+       },
+
+       /**
+        * Toggles flag info box details for (+/-) control
+        * @context {jQuery}
+        * @param e {jQuery.Event}
+        */
+       toggleBoxDetails: function () {
+               var     toggle = $( '#mw-fr-revisiontoggle' ),
+                       ratings = $( '#mw-fr-revisiondetails' );
+
+               if ( toggle.length && ratings.length ) {
+                       // Collapsed -> expand
+                       if ( ratings.css( 'display' ) === 'none' ) {
+                               fr.showBoxDetails();
+                               toggle.text( mw.msg( 'revreview-toggle-hide' ) 
);
+                       // Expanded -> collapse
+                       } else {
+                               fr.hideBoxDetails();
+                               toggle.text( mw.msg( 'revreview-toggle-show' ) 
);
+                       }
+               }
+       },
+
+       /**
+        * 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}
+        */
+       onBoxMouseOver: function () {
+               /*global window*/
+               window.clearTimeout( fr.boxCollapseTimer );
+               fr.boxCollapseTimer = null;
+               fr.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' ) ) {
+                       /*global window*/
+                       fr.boxCollapseTimer = window.setTimeout( 
fr.hideBoxDetails, 150 );
+               }
+       },
+
+       /* 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 );
+       }
+};
+
+// Perform some onload events:
+$( fr.init );
+
+}( mediaWiki, jQuery ) );

-- 
To view, visit https://gerrit.wikimedia.org/r/317280
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7266ca45b751c9cde5f45bfd4081c087526a06ba
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/FlaggedRevs
Gerrit-Branch: master
Gerrit-Owner: Cenarium <cenarium.sy...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to