https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114620
Revision: 114620
Author: bsitu
Date: 2012-03-30 00:24:22 +0000 (Fri, 30 Mar 2012)
Log Message:
-----------
Add JavasScript and API code for stats navigation
Modified Paths:
--------------
trunk/extensions/PageTriage/PageTriage.php
trunk/extensions/PageTriage/SpecialPageTriage.php
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
Added Paths:
-----------
trunk/extensions/PageTriage/api/ApiPageTriageStats.php
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
Modified: trunk/extensions/PageTriage/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.php 2012-03-29 23:47:42 UTC (rev
114619)
+++ trunk/extensions/PageTriage/PageTriage.php 2012-03-30 00:24:22 UTC (rev
114620)
@@ -61,6 +61,7 @@
$wgAutoloadClasses['ApiPageTriageList'] = $dir . 'api/ApiPageTriageList.php';
$wgAutoloadClasses['ApiPageTriageGetMetadata'] = $dir .
'api/ApiPageTriageGetMetadata.php';
+$wgAutoloadClasses['ApiPageTriageStats'] = $dir . 'api/ApiPageTriageStats.php';
// custom exceptions
$wgAutoloadClasses['MWArticleMetadataMissingPageIdException'] = $dir .
'includes/ArticleMetadata.php';
@@ -70,6 +71,7 @@
// api modules
$wgAPIModules['pagetriagelist'] = 'ApiPageTriageList';
$wgAPIModules['pagetriagegetmetadata'] = 'ApiPageTriageGetMetadata';
+$wgAPIModules['pagetriagestats'] = 'ApiPageTriageStats';
// hooks
$wgHooks['LoadExtensionSchemaUpdates'][] = 'efPageTriageSchemaUpdates';
@@ -173,7 +175,8 @@
'ext.pageTriage.external'
),
'scripts' => array(
- 'ext.pageTriage.models/ext.pageTriage.article.js'
+ 'ext.pageTriage.models/ext.pageTriage.article.js',
+ 'ext.pageTriage.models/ext.pageTriage.stats.js'
)
);
Modified: trunk/extensions/PageTriage/SpecialPageTriage.php
===================================================================
--- trunk/extensions/PageTriage/SpecialPageTriage.php 2012-03-29 23:47:42 UTC
(rev 114619)
+++ trunk/extensions/PageTriage/SpecialPageTriage.php 2012-03-30 00:24:22 UTC
(rev 114620)
@@ -155,7 +155,7 @@
<script type="text/template"
id="listControlNavTemplate">
<span
class="mwe-pt-control-label"><b><%= gM( 'pagetriage-showing' ) %></b> some
things</span>
- <span
class="mwe-pt-control-label-right"><%= gM( 'pagetriage-article-count', 100,
'untriaged' ) %></span><br/>
+ <span
class="mwe-pt-control-label-right"><%= gM( 'pagetriage-article-count',
ptr_untriaged_article_count, 'untriaged' ) %></span><br/>
<span
id="mwe-pt-filter-dropdown-control" class="mwe-pt-control-label">
<b>
<%= gM(
'pagetriage-filter-list-prompt' ) %>
Added: trunk/extensions/PageTriage/api/ApiPageTriageStats.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageStats.php
(rev 0)
+++ trunk/extensions/PageTriage/api/ApiPageTriageStats.php 2012-03-30
00:24:22 UTC (rev 114620)
@@ -0,0 +1,27 @@
+<?php
+
+class ApiPageTriageStats extends ApiBase {
+
+ public function execute() {
+ $data = array(
+ 'untriagedarticle' =>
PageTriageUtil::getUntriagedArticleStat(),
+ 'toptriager' => PageTriageUtil::getTopTriager()
+ );
+
+ $result = array( 'result' => 'success', 'stats' => $data );
+ $this->getResult()->addValue( null, $this->getModuleName(),
$result );
+ }
+
+ public function getAllowedParams() {
+ return array();
+ }
+
+ public function getVersion() {
+ return __CLASS__ . ': $Id: ApiPageTriageStatsNav.php $';
+ }
+
+ public function getDescription() {
+ return 'Get the stats for page triage';
+ }
+
+}
Property changes on: trunk/extensions/PageTriage/api/ApiPageTriageStats.php
___________________________________________________________________
Added: svn:eol-style
+ native
Added:
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
===================================================================
---
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
(rev 0)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
2012-03-30 00:24:22 UTC (rev 114620)
@@ -0,0 +1,26 @@
+// Stats represents the dashboard data for pagetriage
+$( function() {
+ if ( !mw.pageTriage ) {
+ mw.pageTriage = {};
+ }
+ mw.pageTriage.Stats = Backbone.Model.extend( {
+ defaults: {
+ title: 'PageTriage Dashboard Data',
+ pageid: ''
+ },
+
+ initialize: function() {
+ this.bind( 'change', this.formatMetadata, this );
+ },
+
+ formatMetadata: function ( stats ) {
+ stats.set( 'ptr_untriaged_article_count', stats.get(
'untriagedarticle' )['count'] );
+ },
+ url: mw.util.wikiScript( 'api' ) +
'?action=pagetriagestats&format=json',
+
+ parse: function( response ) {
+ // extract the useful bits of json.
+ return response.pagetriagestats.stats;
+ }
+ } );
+} );
Property changes on:
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.stats.js
___________________________________________________________________
Added: svn:eol-style
+ native
Modified:
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
===================================================================
---
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
2012-03-29 23:47:42 UTC (rev 114619)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
2012-03-30 00:24:22 UTC (rev 114620)
@@ -38,7 +38,7 @@
render: function() {
_this = this;
// render and return the template. fill with the
current model.
- $( "#mwe-pt-list-control-nav").html( this.template() );
+ $( "#mwe-pt-list-control-nav").html( this.template(
this.model.toJSON() ) );
// make a button
$( ".mwe-pt-filter-set-button" ).button( {
Modified:
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
===================================================================
---
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
2012-03-29 23:47:42 UTC (rev 114619)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
2012-03-30 00:24:22 UTC (rev 114620)
@@ -3,12 +3,13 @@
// instantiate the collection of articles
var articles = new mw.pageTriage.ArticleList;
+ var stats = new mw.pageTriage.Stats;
// set the default sort order.
articles.comparator = function( article ) {
return -article.get( "creation_date" );
};
-
+
// overall list view
// currently, this is the main application view.
mw.pageTriage.ListView = Backbone.View.extend( {
@@ -19,25 +20,29 @@
this.position = 0;
articles.bind( 'add', this.addOne, this );
articles.bind( 'reset', this.addAll, this );
+ stats.bind( 'change', this.addNav, this );
// this event is triggered when the collection finishes
loading.
//articles.bind( 'all', this.render, this );
// on init, make sure to load the contents of the
collection.
articles.fetch();
+ stats.fetch();
},
render: function() {
// reset the position indicator
this.position = 0;
- // add the navigation bits
- var controlNav = new mw.pageTriage.ListControlNav( {
articles: articles } );
- controlNav.render();
-
var statsNav = new mw.pageTriage.ListStatsNav();
$( "#mwe-pt-list-stats-nav").html( statsNav.render().el
);
},
+
+ // add stats data to the navigation
+ addNav: function( stats ) {
+ var controlNav = new mw.pageTriage.ListControlNav( {
model: stats } );
+ controlNav.render();
+ },
// add a single article to the list
addOne: function( article ) {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs