https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114725
Revision: 114725
Author: kaldari
Date: 2012-04-05 00:06:26 +0000 (Thu, 05 Apr 2012)
Log Message:
-----------
adding sort direction support, getting rid of some old unused code, and various
bits of clean-up
Modified Paths:
--------------
trunk/extensions/PageTriage/SpecialPageTriage.php
trunk/extensions/PageTriage/api/ApiPageTriageList.php
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.article.js
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
Modified: trunk/extensions/PageTriage/SpecialPageTriage.php
===================================================================
--- trunk/extensions/PageTriage/SpecialPageTriage.php 2012-04-04 23:58:46 UTC
(rev 114724)
+++ trunk/extensions/PageTriage/SpecialPageTriage.php 2012-04-05 00:06:26 UTC
(rev 114725)
@@ -33,26 +33,6 @@
$wgUser->saveSettings();
$wgUser->invalidateCache();
- // Initialize variable to hold list view options
- $opts = new FormOptions();
-
- // Set the defaults for the list view options
- $opts->add( 'showbots', true );
- $opts->add( 'showredirs', false );
- $opts->add( 'showtriaged', false );
- $opts->add( 'limit', (int)$this->getUser()->getOption(
'rclimit' ) );
- $opts->add( 'offset', '' );
- $opts->add( 'namespace', '0' );
-
- // Get the option values from the page request
- $opts->fetchValuesFromRequest( $this->getRequest() );
-
- // Validate the data for the options
- $opts->validateIntBounds( 'limit', 0, 5000 );
-
- // Bind options to member variable
- $this->opts = $opts;
-
// Output the title of the page
$out->setPageTitle( wfMessage( 'pagetriage' ) );
Modified: trunk/extensions/PageTriage/api/ApiPageTriageList.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-04-04
23:58:46 UTC (rev 114724)
+++ trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-04-05
00:06:26 UTC (rev 114725)
@@ -20,15 +20,17 @@
// fetch metadata for those pages
$articleMetadata = new ArticleMetadata( $pages );
$metaData = $articleMetadata->getMetadata();
-
- // convert this to a slightly different format that's
more Backbone-friendly
- foreach( $metaData as $pageId => $attrs ) {
- $metaDataSend[] = $attrs + array( 'pageid' =>
$pageId );
+
+ // Sort data according to page order returned by our
query. Also convert it to a
+ // slightly different format that's more
Backbone-friendly.
+ $sortedMetaData = array();
+ foreach ( $pages as $page ) {
+ $sortedMetaData[] = array( 'pageid' => $page )
+ $metaData[ $page ];
}
}
// Output the results
- $result = array( 'result' => 'success', 'pages' =>
$metaDataSend, 'userpagestatus' => PageTriageUtil::pageStatusForUser(
$metaDataSend ) );
+ $result = array( 'result' => 'success', 'pages' =>
$sortedMetaData, 'userpagestatus' => PageTriageUtil::pageStatusForUser(
$metaDataSend ) );
$this->getResult()->addValue( null, $this->getModuleName(),
$result );
}
@@ -44,7 +46,13 @@
$pages = $options = array();
// Get the expected limit as defined in getAllowedParams
- $options = array( 'LIMIT' => $opts['limit'] );
+ $options['LIMIT'] = $opts['limit'];
+
+ if ( strtolower( $opts['dir'] ) === 'oldestfirst' ) {
+ $options['ORDER BY'] = 'ptrp_timestamp ASC';
+ } else {
+ $options['ORDER BY'] = 'ptrp_timestamp DESC';
+ }
// Start building the massive filter which includes meta data
$tagConds = self::buildTagQuery( $opts );
@@ -102,7 +110,7 @@
// no inbound links
'no_inbound_links' => array( 'name' =>
'linkcount', 'op' => '=', 'val' => '0' ),
// non auto confirmed users
- 'non_auto_confirmed_users' => array(
'name' => 'user_autoconfirmed', 'op' => '=', 'val' => '0' ),
+ 'non_autoconfirmed_users' => array(
'name' => 'user_autoconfirmed', 'op' => '=', 'val' => '0' ),
// blocked users
'blocked_users' => array( 'name' =>
'user_block_status', 'op' => '=', 'val' => '1' ),
// show bots
@@ -137,6 +145,9 @@
ApiBase::PARAM_MIN => '10',
ApiBase::PARAM_TYPE => 'integer',
),
+ 'dir' => array(
+ ApiBase::PARAM_TYPE => 'string',
+ ),
'namespace' => array(
ApiBase::PARAM_DFLT => '0',
ApiBase::PARAM_TYPE => 'integer',
@@ -147,7 +158,7 @@
'no_inbound_links' => array(
ApiBase::PARAM_TYPE => 'boolean',
),
- 'non_auto_confirmed_users' => array(
+ 'non_autoconfirmed_users' => array(
ApiBase::PARAM_TYPE => 'boolean',
),
'blocked_users' => array(
@@ -163,10 +174,11 @@
'showredirs' => 'Whether to include redirects or not',
// default is not to show redirects
'showtriaged' => 'Whether to include triaged or not',
// default is not to show triaged
'limit' => 'The maximum number of results to return',
+ 'dir' => 'The direction the list should be sorted in -
oldestfirst or newestfirst',
'namespace' => 'What namespace to pull pages from',
'no_category' => 'Whether to show only pages with no
category',
'no_inbound_links' => 'Whether to show only pages with
no inbound links',
- 'non_auto_confirmed_users' => 'Whether to show only
pages created by non auto confirmed users',
+ 'non_autoconfirmed_users' => 'Whether to show only
pages created by non auto confirmed users',
'blocked_users' => 'Whether to show only pages created
by blocked users'
);
}
Modified:
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.article.js
===================================================================
---
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.article.js
2012-04-04 23:58:46 UTC (rev 114724)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.article.js
2012-04-05 00:06:26 UTC (rev 114725)
@@ -48,12 +48,12 @@
apiParams: {
namespace: 0,
limit: 50,
+ offset: 0,
+ dir: 'oldestfirst',
/*
showbots: null,
showredirs: null,
showtriaged: null,
- limit: 10,
- namespace: 0,
no_category: 1,
no_inbound_links: 1,
non_autoconfirmed_users: 1,
@@ -69,7 +69,6 @@
url: function() {
var url = mw.util.wikiScript( 'api' ) +
'?action=pagetriagelist&format=json&' + $.param( this.apiParams );
- console.log('fetching ' + url);
return url;
},
Modified:
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
===================================================================
---
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
2012-04-04 23:58:46 UTC (rev 114724)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
2012-04-05 00:06:26 UTC (rev 114725)
@@ -10,11 +10,6 @@
// grab pageTriage statistics
var stats = new mw.pageTriage.Stats( { eventBus: eventBus } );
- // 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( {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs