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

Revision: 114775
Author:   kaldari
Date:     2012-04-06 21:21:08 +0000 (Fri, 06 Apr 2012)
Log Message:
-----------
making the list smart enough to know if more pages can be loaded or not after a 
fetch

Modified Paths:
--------------
    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/api/ApiPageTriageList.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageList.php       2012-04-06 
21:07:03 UTC (rev 114774)
+++ trunk/extensions/PageTriage/api/ApiPageTriageList.php       2012-04-06 
21:21:08 UTC (rev 114775)
@@ -44,7 +44,7 @@
                $pages = $options = array();
 
                // Get the expected limit as defined in getAllowedParams
-               $options['LIMIT'] = $opts['limit'];
+               $options['LIMIT'] = $opts['limit'] + 1;
                
                if ( strtolower( $opts['dir'] ) === 'oldestfirst' ) {
                        $options['ORDER BY'] = 'ptrp_timestamp ASC';

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 21:07:03 UTC (rev 114774)
+++ 
trunk/extensions/PageTriage/modules/ext.pageTriage.models/ext.pageTriage.article.js
 2012-04-06 21:21:08 UTC (rev 114775)
@@ -43,6 +43,7 @@
        // can't include this in the declaration above because it references the
        // object created therein.
        mw.pageTriage.ArticleList = Backbone.Collection.extend( {
+               moreToLoad: true,
                model: mw.pageTriage.Article,
                
                apiParams: {
@@ -72,6 +73,17 @@
                },
 
                parse: function( response ) {
+                       // See if the fetch returned an extra page or not. This 
lets us know if there are more 
+                       // pages to load in a subsequent fetch.
+                       if ( response.pagetriagelist.pages && 
response.pagetriagelist.pages.length > this.apiParams.limit ) {
+                               // Remove the extra page from the list
+                               response.pagetriagelist.pages.pop();
+                       } else {
+                               // We have no more pages to load.
+                               this.moreToLoad = false;
+                       }
+                       
+                       // Check if user pages exist or should be redlinks
                        for ( var title in 
response.pagetriagelist.userpagestatus ) {
                                mw.Title.exist.set( title );
                        }

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-06 21:07:03 UTC (rev 114774)
+++ 
trunk/extensions/PageTriage/modules/ext.pageTriage.views/ext.pageTriage.listView.js
 2012-04-06 21:21:08 UTC (rev 114775)
@@ -66,6 +66,9 @@
                                success: function() {
                                        $( '.mwe-pt-article-row' ).last().css( 
'border-bottom', 'none' );
                                        $.waypoints( 'refresh' );
+                                       if ( !articles.moreToLoad ) {
+                                               $( 
'#mwe-pt-list-load-more-anchor' ).waypoint( 'destroy' );
+                                       }
                                }
                        } );
                },
@@ -80,6 +83,10 @@
                                success: function() {
                                        $.removeSpinner( 'more-spinner' );
                                        $( '#mwe-pt-list-more-link' ).show();
+                                       if ( !articles.moreToLoad ) {
+                                               $( '.mwe-pt-article-row' 
).last().css( 'border-bottom', 'none' );
+                                               $( '#mwe-pt-list-more' ).hide();
+                                       }
                                }
                        } );
                },


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

Reply via email to