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

Reply via email to