https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114774
Revision: 114774
Author: raindrift
Date: 2012-04-06 21:07:03 +0000 (Fri, 06 Apr 2012)
Log Message:
-----------
added deleted status checking to api
added username checking to filter list
small api bugfix for filter by tag
Modified Paths:
--------------
trunk/extensions/PageTriage/PageTriage.i18n.php
trunk/extensions/PageTriage/PageTriage.php
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.listControlNav.js
trunk/extensions/PageTriage/sql/PageTriagePage.sql
Added Paths:
-----------
trunk/extensions/PageTriage/sql/PageTriagePageDeleted.sql
Modified: trunk/extensions/PageTriage/PageTriage.i18n.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.i18n.php 2012-04-06 20:53:22 UTC
(rev 114773)
+++ trunk/extensions/PageTriage/PageTriage.i18n.php 2012-04-06 21:07:03 UTC
(rev 114774)
@@ -62,13 +62,15 @@
'pagetriage-more' => 'More',
'pagetriage-filter-stat-all' => 'All',
'pagetriage-filter-stat-namespace' => 'Namespace: $1',
- 'pagetriage-filter-stat-reviewed' => 'Reviewed',
+ 'pagetriage-filter-stat-reviewed' => 'Include reviewed',
'pagetriage-filter-stat-bots' => 'Bots',
- 'pagetriage-filter-stat-redirects' => 'Redirects',
+ 'pagetriage-filter-stat-redirects' => 'Include redirects',
+ 'pagetriage-filter-stat-nominated-for-deletion' => 'Include deleted',
'pagetriage-filter-stat-no-categories' => 'No categories',
'pagetriage-filter-stat-orphan' => 'Orphans',
'pagetriage-filter-stat-non-autoconfirmed' => 'New editors',
'pagetriage-filter-stat-blocked' => 'Blocked users',
+ 'pagetriage-filter-stat-username' => 'Username: $1',
);
@@ -127,10 +129,12 @@
'pagetriage-filter-stat-reviewed' => 'Status display component for
reviewed pages',
'pagetriage-filter-stat-bots' => 'Status display component for
bot-created pages',
'pagetriage-filter-stat-redirects' => 'Status display component for
redirects',
+ 'pagetriage-filter-stat-nominated-for-deletion' => 'Status dispay
component for articles nominated for deletion',
'pagetriage-filter-stat-no-categories' => 'Status display component for
articles with no categories',
'pagetriage-filter-stat-orphan' => 'Status display component for orphan
articles',
'pagetriage-filter-stat-non-autoconfirmed' => 'Status display component
for articles by non-autoconfirmed editors',
'pagetriage-filter-stat-blocked' => 'Status display component for
articles by blocked users',
+ 'pagetriage-filter-stat-username' => 'Status display component for
filter by username. $1 is the username.',
Modified: trunk/extensions/PageTriage/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.php 2012-04-06 20:53:22 UTC (rev
114773)
+++ trunk/extensions/PageTriage/PageTriage.php 2012-04-06 21:07:03 UTC (rev
114774)
@@ -258,6 +258,7 @@
'pagetriage-filter-stat-reviewed',
'pagetriage-filter-stat-bots',
'pagetriage-filter-stat-redirects',
+ 'pagetriage-filter-stat-nominated-for-deletion',
'pagetriage-filter-stat-all',
'pagetriage-filter-stat-no-categories',
'pagetriage-filter-stat-orphan',
Modified: trunk/extensions/PageTriage/SpecialPageTriage.php
===================================================================
--- trunk/extensions/PageTriage/SpecialPageTriage.php 2012-04-06 20:53:22 UTC
(rev 114773)
+++ trunk/extensions/PageTriage/SpecialPageTriage.php 2012-04-06 21:07:03 UTC
(rev 114774)
@@ -219,7 +219,7 @@
<input type="radio" name="mwe-pt-filter-radio" id="mwe-pt-filter-bot-edits" />
<%= gM( 'pagetriage-filter-bot-edits' ) %> <br/>
<input type="radio" name="mwe-pt-filter-radio" id="mwe-pt-filter-user-selected"
/> <%= gM( 'pagetriage-filter-user-heading' ) %>
<div class="mwe-pt-control-options">
-
<span class="mwe-pt-filter-sub-input"><input type=text
id="mwe-pt-filter-username" /></span>
+
<span class="mwe-pt-filter-sub-input"><input type=text
id="mwe-pt-filter-user" /></span>
</div>
</div>
</div>
Modified: trunk/extensions/PageTriage/api/ApiPageTriageList.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-04-06
20:53:22 UTC (rev 114773)
+++ trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-04-06
21:07:03 UTC (rev 114774)
@@ -57,7 +57,7 @@
// Start building the massive filter which includes meta data
$tables = array( 'pagetriage_page', 'page' );
$conds = array( 'ptrp_page_id = page_id' );
-
+
// Include reviewed
if ( !$opts['showreviewed'] ) {
$conds['ptrp_reviewed'] = 0;
@@ -66,6 +66,10 @@
if ( !$opts['showredirs'] ) {
$conds['page_is_redirect'] = 0;
}
+ // Include marked for deletion
+ if ( !$opts['showdeleted'] ) {
+ $conds['ptrp_deleted'] = 0;
+ }
// Show by namespace
if ( array_key_exists( 'namespace', $opts ) ) {
$conds['page_namespace'] = $opts['namespace'];
@@ -117,7 +121,7 @@
// bots
'showbots' => array( 'name' =>
'user_bot', 'op' => '=', 'val' => '1' ),
// user name
- 'username' => array( 'name' =>
'user_name', 'op' => '=', 'val' => $opts['username'] )
+ 'username' => array( 'name' =>
'user_name', 'op' => '=', 'val' => false ) // false means use the actual value
);
$tags = ArticleMetadata::getValidTags();
@@ -125,8 +129,14 @@
// only single tag search is allowed
foreach ( $searchableTags as $key => $val ) {
if ( $opts[$key] ) {
- $tagConds = " ptrpt_page_id = ptrp_page_id AND
ptrpt_tag_id = '" . $tags[$val['name']] . "' AND
- ptrpt_value " . $val['op'] . " "
. $dbr->addQuotes( $val['val'] );
+ if( $val['val'] === false ) {
+ // if val is false, use the value that
was supplied via the api call
+ $tagConds = " ptrpt_page_id =
ptrp_page_id AND ptrpt_tag_id = '" . $tags[$val['name']] . "' AND
+ ptrpt_value " .
$val['op'] . " " . $dbr->addQuotes( $opts['key'] );
+ } else {
+ $tagConds = " ptrpt_page_id =
ptrp_page_id AND ptrpt_tag_id = '" . $tags[$val['name']] . "' AND
+ ptrpt_value " .
$val['op'] . " " . $dbr->addQuotes( $val['val'] );
+ }
break;
}
}
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-06 20:53:22 UTC (rev 114773)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.article.js
2012-04-06 21:07:03 UTC (rev 114774)
@@ -63,11 +63,11 @@
initialize: function( options ) {
this.eventBus = options.eventBus;
this.eventBus.bind( "filterSet", this.setParams );
- //this.eventBus.bind( "paramsSet", this.fetch );
},
url: function() {
var url = mw.util.wikiScript( 'api' ) +
'?action=pagetriagelist&format=json&' + $.param( this.apiParams );
+ console.log( 'fetch url: ' + url );
return url;
},
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-06 20:53:22 UTC (rev 114773)
+++
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
2012-04-06 21:07:03 UTC (rev 114774)
@@ -140,11 +140,9 @@
apiParams['showreviewed'] = '1';
}
- /*
if(
$('#mwe-pt-filter-nominated-for-deletion').prop('checked') ) {
- apiParams[''] = '1';
+ apiParams['showdeleted'] = '1';
}
- */
if( $('#mwe-pt-filter-bot-edits').prop('checked') ) {
apiParams['showbots'] = '1';
@@ -153,13 +151,12 @@
if( $('#mwe-pt-filter-redirects').prop('checked') ) {
apiParams['showredirs'] = '1';
}
+
+ if( $('#mwe-pt-filter-user-selected').prop('checked')
&& $('#mwe-pt-filter-user').val() ) {
+ apiParams['username'] =
$('#mwe-pt-filter-user').val();
+ }
- /*
- api doesn't support these.
- if( $('#mwe-pt-filter-user').val() ) {
- apiParams[''] = $('#mwe-pt-filter-user').val();
- }
-
+ /* api doesn't support this yet
if( $('#mwe-pt-filter-tag').val() ) {
apiParams[''] = $('#mwe-pt-filter-tag').val();
}
@@ -210,13 +207,18 @@
}
this.menuCheckboxUpdate( $(
'#mwe-pt-filter-reviewed-edits' ), 'showreviewed',
'pagetriage-filter-stat-reviewed');
- // api doesn't suppor this one.
- //this.menuCheckboxUpdate( $(
'#mwe-pt-filter-nominated-for-deletion' ' ), '', '');
+ this.menuCheckboxUpdate( $(
'#mwe-pt-filter-nominated-for-deletion' ), 'showdeleted',
'pagetriage-filter-stat-nominated-for-deletion');
this.menuCheckboxUpdate( $( '#mwe-pt-filter-bot-edits'
), 'showbots', 'pagetriage-filter-stat-bots');
this.menuCheckboxUpdate( $( '#mwe-pt-filter-redirects'
), 'showredirs', 'pagetriage-filter-stat-redirects');
- /* api doesn't support these
- $( '#mwe-pt-filter-user' ).val( this.model.getParam('')
);
+ var username = this.model.getParam( 'username' );
+ if( username ) {
+ this.newFilterStatus.push( gM(
'pagetriage-filter-stat-username', username ) );
+ $( '#mwe-pt-filter-user-selected' ).prop(
'checked', true );
+ }
+ $( '#mwe-pt-filter-user' ).val( username );
+
+ /* api doesn't support this
$( '#mwe-pt-filter-tag' ).val( this.model.getParam('')
);
*/
Modified: trunk/extensions/PageTriage/sql/PageTriagePage.sql
===================================================================
--- trunk/extensions/PageTriage/sql/PageTriagePage.sql 2012-04-06 20:53:22 UTC
(rev 114773)
+++ trunk/extensions/PageTriage/sql/PageTriagePage.sql 2012-04-06 21:07:03 UTC
(rev 114774)
@@ -2,8 +2,10 @@
CREATE TABLE /*_*/pagetriage_page (
ptrp_page_id int unsigned NOT NULL PRIMARY KEY,
ptrp_reviewed tinyint unsigned not null default 0,
+ ptrp_deleted tinyint unsigned not null default 0,
ptrp_timestamp varbinary(14) NOT NULL COMMENT 'when the page was
created'
) /*$wgDBTableOptions*/;
-CREATE INDEX /*i*/ptrp_reviewed_timestamp_page_id ON /*_*/pagetriage_page
(ptrp_reviewed, ptrp_timestamp, ptrp_page_id);
-CREATE INDEX /*i*/ptrp_timestamp_page_id ON /*_*/pagetriage_page
(ptrp_timestamp, ptrp_page_id);
+CREATE INDEX /*i*/ptrp_reviewed_timestamp_page_id ON /*_*/pagetriage_page
(ptrp_reviewed, ptrp_timestamp, ptrp_page_id, ptrp_deleted);
+CREATE INDEX /*i*/ptrp_timestamp_page_id ON /*_*/pagetriage_page
(ptrp_timestamp, ptrp_page_id, ptrp_deleted);
+CREATE INDEX /*i*/ptrp_deleted_reviewed_etc ON /*_*/pagetriage_page
(ptrp_deleted, ptrp_timestamp, ptrp_page_id, ptrp_reviewed);
Added: trunk/extensions/PageTriage/sql/PageTriagePageDeleted.sql
===================================================================
--- trunk/extensions/PageTriage/sql/PageTriagePageDeleted.sql
(rev 0)
+++ trunk/extensions/PageTriage/sql/PageTriagePageDeleted.sql 2012-04-06
21:07:03 UTC (rev 114774)
@@ -0,0 +1,9 @@
+-- temporary patch for devs who don't want to replace their tables. will
delete this later.
+
+alter table pagetriage_page add ptrp_deleted tinyint unsigned not null default
0 after ptrp_reviewed;
+alter table pagetriage_page drop index /*i*/ptrp_reviewed_timestamp_page_id;
+alter table pagetriage_page drop index /*i*/ptrp_timestamp_page_id;
+
+CREATE INDEX /*i*/ptrp_reviewed_timestamp_page_id ON /*_*/pagetriage_page
(ptrp_reviewed, ptrp_timestamp, ptrp_page_id, ptrp_deleted);
+CREATE INDEX /*i*/ptrp_deleted_reviewed_etc ON /*_*/pagetriage_page
(ptrp_deleted, ptrp_timestamp, ptrp_page_id, ptrp_reviewed);
+CREATE INDEX /*i*/ptrp_timestamp_page_id ON /*_*/pagetriage_page
(ptrp_timestamp, ptrp_page_id, ptrp_deleted);
Property changes on: trunk/extensions/PageTriage/sql/PageTriagePageDeleted.sql
___________________________________________________________________
Added: svn:eol-style
+ native
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs