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

Reply via email to