https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114686

Revision: 114686
Author:   raindrift
Date:     2012-04-03 23:38:40 +0000 (Tue, 03 Apr 2012)
Log Message:
-----------
filters are now sorta working.  they still need some cleanup on the api end, at 
least

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

Modified: trunk/extensions/PageTriage/PageTriage.i18n.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.i18n.php     2012-04-03 19:07:42 UTC 
(rev 114685)
+++ trunk/extensions/PageTriage/PageTriage.i18n.php     2012-04-03 23:38:40 UTC 
(rev 114686)
@@ -54,6 +54,7 @@
        'pagetriage-stats-less-than-a-day' => 'less than one day',
        'pagetriage-stats-top-triagers' => 'Top {{PLURAL:$1|triager|$1 
triagers}}: $2',
        'pagetriage-filter-ns-article' => 'Article',
+       'pagetriage-filter-ns-all' => 'All',
 );
 
 /**
@@ -99,5 +100,6 @@
        'pagetriage-stats-untriaged-age' => 'Navigation text displaying triage 
stats, $1 and $2 are the ages of average and oldest articles respectively',
        'pagetriage-stats-less-than-a-day' => 'show this message if the article 
age is less than one day, part of variable $1 and $2 of 
{{msg-pagetriage|pagetriage-stats-untriaged-age}} ',
        'pagetriage-stats-top-triagers' => 'Text that shows top triagers, $1 is 
the total number, $2 shows the detail',
-       'pagetriage-filter-ns-article' => 'The name of the main article 
namespace',
+       'pagetriage-filter-ns-article' => 'The name of the main article 
namespace, for the namespace filter select list',
+       'pagetriage-filter-ns-all' => 'For the namespace filter select list, 
text indicating that all namespaces will be selected',
 );

Modified: trunk/extensions/PageTriage/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.php  2012-04-03 19:07:42 UTC (rev 
114685)
+++ trunk/extensions/PageTriage/PageTriage.php  2012-04-03 23:38:40 UTC (rev 
114686)
@@ -242,6 +242,7 @@
                'pagetriage-stats-top-triagers',
                'days',
                'pagetriage-filter-ns-article',
+               'pagetriage-filter-ns-all',
        )
 );
 

Modified: trunk/extensions/PageTriage/SpecialPageTriage.php
===================================================================
--- trunk/extensions/PageTriage/SpecialPageTriage.php   2012-04-03 19:07:42 UTC 
(rev 114685)
+++ trunk/extensions/PageTriage/SpecialPageTriage.php   2012-04-03 23:38:40 UTC 
(rev 114686)
@@ -173,16 +173,17 @@
                                                                <div 
class="mwe-pt-control-section">
                                                                        <span 
class="mwe-pt-control-label"><b><%= gM( 'pagetriage-filter-show-heading' ) 
%></b></span>
                                                                        <div 
class="mwe-pt-control-options">
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-triaged-edits' ) %> <br/>
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-nominated-for-deletion' ) 
%> <br/>
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-bot-edits' ) %> <br/>
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-redirects' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-triaged-edits" /> <%= gM( 
'pagetriage-filter-triaged-edits' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-nominated-for-deletion" /> <%= gM( 
'pagetriage-filter-nominated-for-deletion' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-bot-edits" /> <%= gM( 
'pagetriage-filter-bot-edits' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-redirects" /> <%= gM( 
'pagetriage-filter-redirects' ) %> <br/>
                                                                        </div>
                                                                </div>
                                                                <div 
class="mwe-pt-control-section">
                                                                        <span 
class="mwe-pt-control-label"><b><%= gM( 'pagetriage-filter-namespace-heading' ) 
%></b></span>
                                                                        <div 
class="mwe-pt-control-options">
                                                                                
<select id="mwe-pt-filter-namespace">
+                                                                               
        <option value=""><%= gM( 'pagetriage-filter-ns-all' ) %></option>
                                                                                
        <%
                                                                                
                var wgFormattedNamespaces = mw.config.get( 
'wgFormattedNamespaces' );
                                                                                
                var nsOptions = '';
@@ -213,10 +214,10 @@
                                                                <div 
class="mwe-pt-control-section">
                                                                        <span 
class="mwe-pt-control-label"><b><%= gM( 'pagetriage-filter-second-show-heading' 
) %></b></span>
                                                                        <div 
class="mwe-pt-control-options">
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-no-categories' ) %> <br/>
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-orphan' ) %> <br/>
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-non-autoconfirmed' ) %> 
<br/>
-                                                                               
<input type="checkbox" /> <%= gM( 'pagetriage-filter-blocked' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-no-categories" /> <%= gM( 
'pagetriage-filter-no-categories' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-orphan" /> <%= gM( 
'pagetriage-filter-orphan' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-non-autoconfirmed" /> <%= gM( 
'pagetriage-filter-non-autoconfirmed' ) %> <br/>
+                                                                               
<input type="checkbox" id="mwe-pt-filter-blocked" /> <%= gM( 
'pagetriage-filter-blocked' ) %> <br/>
                                                                        </div>
                                                                </div>
                                                                <div 
class="mwe-pt-control-buttons">

Modified: trunk/extensions/PageTriage/api/ApiPageTriageList.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageList.php       2012-04-03 
19:07:42 UTC (rev 114685)
+++ trunk/extensions/PageTriage/api/ApiPageTriageList.php       2012-04-03 
23:38:40 UTC (rev 114686)
@@ -132,7 +132,7 @@
                                ApiBase::PARAM_TYPE => 'boolean',       
                        ),
                        'limit' => array(
-                               ApiBase::PARAM_MAX => '50',
+                               ApiBase::PARAM_MAX => '200',
                                ApiBase::PARAM_DFLT => '20',
                                ApiBase::PARAM_MIN => '10',
                                ApiBase::PARAM_TYPE => 'integer',

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-03 19:07:42 UTC (rev 114685)
+++ 
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.article.js
 2012-04-03 23:38:40 UTC (rev 114686)
@@ -44,6 +44,7 @@
                
                apiParams: {
                        namespace: 0,
+                       limit: 50,
                        /*
                        showbots: null,
                        showredirs: null,
@@ -78,11 +79,13 @@
                        return response.pagetriagelist.pages;
                },
                
-               setParams: function( apiParams ) {
-                       console.log('setParams called with ' + apiParams);
-                       
+               setParams: function( apiParams ) {                      
                        this.apiParams = apiParams;
                        this.eventBus.trigger( "paramsSet", this.apiParams );
+               },
+               
+               getParam: function( key ) {
+                       return this.apiParams[key];
                }
                
        } );

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-03 19:07:42 UTC (rev 114685)
+++ 
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listControlNav.js
   2012-04-03 23:38:40 UTC (rev 114686)
@@ -56,7 +56,7 @@
                                icons: { secondary:'ui-icon-triangle-1-e' }
                        } );
                        $( ".mwe-pt-filter-set-button" ).click( function( e ) {
-                               _this.filterSet();
+                               _this.filterSync();
                                _this.toggleFilterMenu();                       
        
                                e.stopPropagation();
                        } );
@@ -93,23 +93,96 @@
                                $( '#mwe-pt-control-dropdown' ).css( 
'visibility', 'hidden' );
                                this.filterMenuVisible = 0;
                        } else {
+                               this.menuSync();
                                $( '#mwe-pt-control-dropdown' ).css( 
'visibility', 'visible' );
                                $( '#mwe-pt-dropdown-arrow' ).html( '&#x25be;' 
);
                                this.filterMenuVisible = 1;                     
        
                        }
                },
                
-               filterSet: function() {
-                       console.log('clicked');
-                       
+               // sync the filters with the contents of the menu
+               filterSync: function() {                        
                        // fetch the values from the menu
                        var apiParams = {};
                        if( $('#mwe-pt-filter-namespace').val() ) {
                                apiParams['namespace'] = 
$('#mwe-pt-filter-namespace').val();
                        }
 
-                       this.model.apiParams = apiParams;
+                       // these are conditionals because the keys shouldn't 
exist if the checkbox isn't checked.
+                       if( $('#mwe-pt-filter-triaged-edits').prop('checked') ) 
{
+                               apiParams['showtriaged'] = '1';
+                       }
+                       
+                       /*
+                       if( 
$('#mwe-pt-filter-nominated-for-deletion').prop('checked') ) {
+                               apiParams[''] = '1';
+                       }
+                       */
+
+                       if( $('#mwe-pt-filter-bot-edits').prop('checked') ) {
+                               apiParams['showbots'] = '1';
+                       }
+
+                       if( $('#mwe-pt-filter-redirects').prop('checked') ) {
+                               apiParams['showredirs'] = '1';
+                       }
+
+                       /*
+                       api doesn't support these.
+                       if( $('#mwe-pt-filter-user').val() ) {
+                               apiParams[''] = $('#mwe-pt-filter-user').val();
+                       }
+                       
+                       if( $('#mwe-pt-filter-tag').val() ) {
+                               apiParams[''] = $('#mwe-pt-filter-tag').val();
+                       }
+                       */
+
+                       if( $('#mwe-pt-filter-no-categories').prop('checked') ) 
{
+                               apiParams['no_category'] = '1';
+                       }
+
+                       if( $('#mwe-pt-filter-orphan').prop('checked') ) {
+                               apiParams['no_inbound_links'] = '1';
+                       }
+
+                       if( 
$('#mwe-pt-filter-non-autoconfirmed').prop('checked') ) {
+                               apiParams['non_autoconfirmed_users'] = '1';
+                       }
+
+                       if( $('#mwe-pt-filter-blocked').prop('checked') ) {
+                               apiParams['blocked_users'] = '1';
+                       }
+                       
+                       // persist the limit parameter
+                       apiParams['limit'] = this.model.getParam('limit');
+                       
+                       this.model.setParams( apiParams );
                        this.model.fetch();
+                       this.render();
+               },
+               
+               // sync the menu with the contents of the filters
+               menuSync: function() {                  
+                       $( '#mwe-pt-filter-namespace' ).val( 
this.model.getParam( 'namespace' ) );
+                       
+                       $( '#mwe-pt-filter-triaged-edits' ).prop( 'checked', 
this.model.getParam( 'showtriaged' )=="1"?true:false );
+                       // api doesn't support this?
+                       //$( '#mwe-pt-filter-nominated-for-deletion' ).prop( 
'checked', this.model.getParam('')=="1"?true:false );
+                       $( '#mwe-pt-filter-bot-edits' ).prop( 'checked', 
this.model.getParam( 'showbots' )=="1"?true:false );
+                       $( '#mwe-pt-filter-redirects' ).prop( 'checked', 
this.model.getParam( 'showredirs' )=="1"?true:false );
+                       
+                       /* api doesn't support these
+                       $( '#mwe-pt-filter-user' ).val( this.model.getParam('') 
);
+                       $( '#mwe-pt-filter-tag' ).val( this.model.getParam('') 
);
+                       */
+                       
+                       $( '#mwe-pt-filter-no-categories' ).prop( 'checked', 
this.model.getParam( 'no_category' )=="1"?true:false );
+                       $( '#mwe-pt-filter-orphan' ).prop( 'checked', 
this.model.getParam( 'no_inbound_links' )=="1"?true:false );
+                       $( '#mwe-pt-filter-non-autoconfirmed' ).prop( 
'checked', this.model.getParam( 'non_autoconfirmed_users' )=="1"?true:false );
+                       $( '#mwe-pt-filter-blocked' ).prop( 'checked', 
this.model.getParam( 'blocked_users' )=="1"?true:false );
+                       
+                       
                }
                
        } );


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to