https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114684
Revision: 114684
Author: bsitu
Date: 2012-04-03 18:05:33 +0000 (Tue, 03 Apr 2012)
Log Message:
-----------
Display top 5 triagers at nav bar
Modified Paths:
--------------
trunk/extensions/PageTriage/PageTriage.i18n.php
trunk/extensions/PageTriage/PageTriage.php
trunk/extensions/PageTriage/SpecialPageTriage.php
trunk/extensions/PageTriage/api/ApiPageTriageStats.php
trunk/extensions/PageTriage/includes/PageTriageUtil.php
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
Modified: trunk/extensions/PageTriage/PageTriage.i18n.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.i18n.php 2012-04-03 17:53:21 UTC
(rev 114683)
+++ trunk/extensions/PageTriage/PageTriage.i18n.php 2012-04-03 18:05:33 UTC
(rev 114684)
@@ -52,6 +52,7 @@
'pagetriage-filter-set-button' => 'Set Filters',
'pagetriage-stats-untriaged-age' => 'Article Ages: Average: $1, Oldest:
$2',
'pagetriage-stats-less-than-a-day' => 'less than one day',
+ 'pagetriage-stats-top-triagers' => 'Top {{PLURAL:$1|triager|$1
triagers}}: $2',
'pagetriage-filter-ns-article' => 'Article',
);
@@ -95,7 +96,8 @@
'pagetriage-filter-non-autoconfirmed' => 'Checkbox text for articles by
non-Autoconfirmed users',
'pagetriage-filter-blocked' => 'Checkbox text for articles by blocked
users',
'pagetriage-filter-set-button' => 'Button text for the set filter
button',
- 'pagetriage-stats-untriaged-age' => 'Navigation text displaying triage
stats',
+ 'pagetriage-stats-untriaged-age' => 'Navigation text displaying triage
stats, $1 and $2 are the ages of average and oldest articles respectively',
'pagetriage-stats-less-than-a-day' => 'show this message if the article
age is less than one day, part of variable $1 and $2 of
{{msg-pagetriage|pagetriage-stats-untriaged-age}} ',
+ 'pagetriage-stats-top-triagers' => 'Text that shows top triagers, $1 is
the total number, $2 shows the detail',
'pagetriage-filter-ns-article' => 'The name of the main article
namespace',
);
Modified: trunk/extensions/PageTriage/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.php 2012-04-03 17:53:21 UTC (rev
114683)
+++ trunk/extensions/PageTriage/PageTriage.php 2012-04-03 18:05:33 UTC (rev
114684)
@@ -239,6 +239,8 @@
'pagetriage-filter-set-button',
'pagetriage-stats-untriaged-age',
'pagetriage-stats-less-than-a-day',
+ 'pagetriage-stats-top-triagers',
+ 'days',
'pagetriage-filter-ns-article',
)
);
Modified: trunk/extensions/PageTriage/SpecialPageTriage.php
===================================================================
--- trunk/extensions/PageTriage/SpecialPageTriage.php 2012-04-03 17:53:21 UTC
(rev 114683)
+++ trunk/extensions/PageTriage/SpecialPageTriage.php 2012-04-03 18:05:33 UTC
(rev 114684)
@@ -228,7 +228,12 @@
</script>
<script type="text/template"
id="listStatsNavTemplate">
- <% if ( ptrAverage ) { %> <%= gM(
'pagetriage-stats-untriaged-age', ptrAverage, ptrOldest ) %> <% } %>
+ <div id="mwe-pt-top-triager">
+ <%= ptrTopTriager %>
+ </div>
+ <div id="mwe-pt-article-age-stats">
+ <% if ( ptrAverage ) { %> <%=
gM( 'pagetriage-stats-untriaged-age', ptrAverage, ptrOldest ) %> <% } %>
+ </div>
</script>
HTML;
Modified: trunk/extensions/PageTriage/api/ApiPageTriageStats.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageStats.php 2012-04-03
17:53:21 UTC (rev 114683)
+++ trunk/extensions/PageTriage/api/ApiPageTriageStats.php 2012-04-03
18:05:33 UTC (rev 114684)
@@ -3,9 +3,18 @@
class ApiPageTriageStats extends ApiBase {
public function execute() {
- $data = array(
- 'untriagedarticle' =>
PageTriageUtil::getUntriagedArticleStat(),
- 'toptriager' => PageTriageUtil::getTopTriager()
+ $topTriager = PageTriageUtil::getTopTriager();
+ // Grab at most top 5 from cache
+ if ( count( $topTriager ) > 5 ) {
+ $topTriager = array_slice(
PageTriageUtil::getTopTriager(), 0 , 5 );
+ }
+
+ $data = array(
+ 'untriagedarticle' =>
PageTriageUtil::getUntriagedArticleStat(),
+ 'toptriager' => array(
+ 'total' => count( $topTriager ),
+ 'data' => $topTriager
+ )
);
$result = array( 'result' => 'success', 'stats' => $data );
Modified: trunk/extensions/PageTriage/includes/PageTriageUtil.php
===================================================================
--- trunk/extensions/PageTriage/includes/PageTriageUtil.php 2012-04-03
17:53:21 UTC (rev 114683)
+++ trunk/extensions/PageTriage/includes/PageTriageUtil.php 2012-04-03
18:05:33 UTC (rev 114684)
@@ -93,7 +93,7 @@
* last-day, last-week, last-month, last-year
* @return array
*/
- public static function getTopTriager( $time = 'last-day' ) {
+ public static function getTopTriager( $time = 'last-week' ) {
global $wgMemc;
$now = wfTimestamp( TS_UNIX );
@@ -118,7 +118,7 @@
if ( $topTriager === false ) {
$res = $dbr->select(
array( 'pagetriage_log', 'user' ),
- array( 'user_name', 'COUNT(ptrl_id) AS num' ),
+ array( 'user_name', 'user_id', 'COUNT(ptrl_id)
AS num' ),
array( 'user_id = ptrl_user_id',
'ptrl_timestamp > ' . $dbr->addQuotes( $dbr->timestamp( $timeFrame[$time]['ts']
) ) ),
__METHOD__,
array( 'GROUP BY' => 'user_id', 'ORDER BY' =>
'num DESC', 'LIMIT' => 50 )
Modified:
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
===================================================================
---
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
2012-04-03 17:53:21 UTC (rev 114683)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
2012-04-03 18:05:33 UTC (rev 114684)
@@ -14,31 +14,32 @@
},
formatMetadata: function ( stats ) {
- stats.set( 'ptr_untriaged_article_count', stats.get(
'untriagedarticle' )['count'] );
+ stats.set( 'ptr_untriaged_article_count', stats.get(
'untriagedarticle' )['count'] );
+ stats.set( 'ptrTopTriager', this.formatTopTriager(
stats.get( 'toptriager' ) ) );
stats.set( 'ptrAverage', this.formatDaysFromNow(
stats.get( 'untriagedarticle' )['age-50th-percentile'] ) );
stats.set( 'ptrOldest', this.formatDaysFromNow(
stats.get( 'untriagedarticle' )['age-100th-percentile'] ) );
},
-
+
formatDaysFromNow: function ( dateStr ) {
if ( !dateStr ) {
return '';
}
var now = new Date();
- now = new Date(
- Date.UTC(
- now.getUTCFullYear(),
- now.getUTCMonth(),
- now.getUTCDate(),
- now.getUTCHours(),
- now.getUTCMinutes(),
+ now = new Date(
+ Date.UTC(
+ now.getUTCFullYear(),
+ now.getUTCMonth(),
+ now.getUTCDate(),
+ now.getUTCHours(),
+ now.getUTCMinutes(),
now.getUTCSeconds()
- )
+ )
);
-
+
var begin = Date.parseExact( dateStr, 'yyyyMMddHHmmss'
);
begin.setTimezone( 'GMT' );
-
+
var diff = Math.round( ( now.getTime() -
begin.getTime() ) / ( 1000 * 60 * 60 * 24 ) );
if ( diff ) {
return gM( 'days', diff );
@@ -47,6 +48,22 @@
}
},
+ formatTopTriager: function ( topTriager ) {
+ if ( topTriager.total > 0 ) {
+ var topTriagerList = '';
+ for ( var key in topTriager.data ) {
+ if ( topTriagerList ) {
+ topTriagerList += ', ' +
topTriager.data[key].user_name;
+ } else {
+ topTriagerList +=
topTriager.data[key].user_name;
+ }
+ }
+ return gM( 'pagetriage-stats-top-triagers',
Number( topTriager.total ), topTriagerList );
+ } else {
+ return '';
+ }
+ },
+
url: mw.util.wikiScript( 'api' ) +
'?action=pagetriagestats&format=json',
parse: function( response ) {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs