https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114823
Revision: 114823
Author: kaldari
Date: 2012-04-10 17:02:14 +0000 (Tue, 10 Apr 2012)
Log Message:
-----------
now doing fetch offsets based on timestamp and page id - for the case where
there are multiple pages per timestamp
Modified Paths:
--------------
trunk/extensions/PageTriage/api/ApiPageTriageList.php
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
Modified: trunk/extensions/PageTriage/api/ApiPageTriageList.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-04-10
14:23:23 UTC (rev 114822)
+++ trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-04-10
17:02:14 UTC (rev 114823)
@@ -47,10 +47,10 @@
$options['LIMIT'] = $opts['limit'] + 1;
if ( strtolower( $opts['dir'] ) === 'oldestfirst' ) {
- $options['ORDER BY'] = 'ptrp_timestamp ASC';
+ $options['ORDER BY'] = 'ptrp_timestamp ASC,
ptrp_page_id ASC';
$offsetOperator = ' > ';
} else {
- $options['ORDER BY'] = 'ptrp_timestamp DESC';
+ $options['ORDER BY'] = 'ptrp_timestamp DESC,
ptrp_page_id DESC';
$offsetOperator = ' < ';
}
@@ -74,9 +74,16 @@
if ( array_key_exists( 'namespace', $opts ) ) {
$conds['page_namespace'] = $opts['namespace'];
}
- // Offset the list
+ // Offset the list by timestamp
if ( array_key_exists( 'offset', $opts ) && is_numeric(
$opts['offset'] ) && $opts['offset'] > 0 ) {
- $conds[] = 'ptrp_timestamp' . $offsetOperator .
$opts['offset'];
+ // Offset the list by page ID as well (in case multiple
pages have the same timestamp)
+ if ( array_key_exists( 'pageoffset', $opts ) &&
is_numeric( $opts['pageoffset'] ) && $opts['pageoffset'] > 0 ) {
+ $conds[] = '( ptrp_timestamp' . $offsetOperator
. $opts['offset'] . ') OR ' .
+ '( ptrp_timestamp = ' . $opts['offset']
.' AND ' .
+ 'ptrp_page_id ' . $offsetOperator .
$opts['pageoffset'] . ')';
+ } else {
+ $conds[] = 'ptrp_timestamp' . $offsetOperator .
$opts['offset'];
+ }
}
$tagConds = self::buildTagQuery( $opts );
@@ -167,6 +174,9 @@
'offset' => array(
ApiBase::PARAM_TYPE => 'integer',
),
+ 'pageoffset' => array(
+ ApiBase::PARAM_TYPE => 'integer',
+ ),
'dir' => array(
ApiBase::PARAM_TYPE => 'string',
),
@@ -200,6 +210,7 @@
'showdeleted' => 'Whether to include "proposed for
deleted" or not', // default is not to show deleted
'limit' => 'The maximum number of results to return',
'offset' => 'Timestamp to start from',
+ 'pageoffset' => 'Page ID to start from (requires offset
param to be passed as well)',
'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',
Modified:
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
===================================================================
---
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
2012-04-10 14:23:23 UTC (rev 114822)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
2012-04-10 17:02:14 UTC (rev 114823)
@@ -69,12 +69,14 @@
$( '#mwe-pt-sort-newest' ).click( function() {
_this.model.setParam( 'dir', 'newestfirst' );
_this.model.setParam( 'offset', 0 );
+ _this.model.setParam( 'pageoffset', 0 );
_this.model.fetch();
return false;
} );
$( '#mwe-pt-sort-oldest' ).click( function() {
_this.model.setParam( 'dir', 'oldestfirst' );
_this.model.setParam( 'offset', 0 );
+ _this.model.setParam( 'pageoffset', 0 );
_this.model.fetch();
return false;
} );
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-10 14:23:23 UTC (rev 114822)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
2012-04-10 17:02:14 UTC (rev 114823)
@@ -67,6 +67,7 @@
} else {
articles.apiParams.offset = 0;
}
+ articles.apiParams.pageoffset =
lastArticle[0].attributes.pageid;
articles.fetch( {
add: true,
success: function() {
@@ -92,6 +93,7 @@
} else {
articles.apiParams.offset = 0;
}
+ articles.apiParams.pageoffset =
lastArticle[0].attributes.pageid;
articles.fetch( {
add: true,
success: function() {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs