From 84b0eaae0e8d8da673ffa39389152fca72ce1ea5 Mon Sep 17 00:00:00 2001
From: echicken <>
Date: Wed, 8 Jan 2014 03:57:11 +0000
Subject: [PATCH] Don't display deleted or QWK users. Display users in pages of
 100 by default, so as not to be too slow on systems with over 9000 users (eg.
 Vertrauen.) With the help of whisky, probably introduced new problems to be
 dealt with at some later time after they are discovered.

---
 web/root/ecwebv3/pages/003-userlist.xjs | 41 ++++++++++++++++++++++---
 1 file changed, 37 insertions(+), 4 deletions(-)

diff --git a/web/root/ecwebv3/pages/003-userlist.xjs b/web/root/ecwebv3/pages/003-userlist.xjs
index 77184d60d1..62ce7c4ade 100644
--- a/web/root/ecwebv3/pages/003-userlist.xjs
+++ b/web/root/ecwebv3/pages/003-userlist.xjs
@@ -17,9 +17,24 @@
 //		total_posts : { name : "Posts", type : "number" }
 	};
 
+	var pageSize = 500;
+
 	// Most people won't need to edit below this line
 	load("sbbsdefs.js");
 
+	if(	typeof http_request.query.offset == "undefined"
+		||
+		isNaN(parseInt(http_request.query.offset))
+		||
+		http_request.query.offset < 1
+	) {
+		var offset = 1;
+	} else {
+		var offset = parseInt(http_request.query.offset);
+	}
+	var previousOffset = Math.max(1, offset - pageSize);
+	var nextOffset = Math.min(offset + pageSize, offset + (system.lastuser - offset));
+
 	var users = [];
 	var url = format(
 		"http://%s%s",
@@ -81,16 +96,18 @@
 	
 	var makeSortURLs = function(field, order) {
 		return format(
-			'<a class="ulLink" href="%s&sortby=%s&sortorder=ascending">'
+			'<a class="ulLink" href="%s&sortby=%s&sortorder=ascending&offset=%s">'
 			+ '<img src="./icons/up-arrow.png">'
 			+ '</a>'
-			+ '<a class="ulLink" href="%s&sortby=%s&sortorder=descending">'
+			+ '<a class="ulLink" href="%s&sortby=%s&sortorder=descending&offset=%s">'
 			+ '<img src="./icons/down-arrow.png">'
 			+ '</a>',
 			url,
 			field,
+			offset,
 			url,
-			field
+			field,
+			offset
 		);
 	}
 	
@@ -102,8 +119,13 @@
 		return dest;
 	}
 
-	for(var u = 1; u < system.lastuser; u++) {
+	for(var u = offset;
+		u < ((system.lastuser - offset > pageSize) ? offset + pageSize : system.lastuser);
+		u++
+	) {
 		var usr1 = new User(u);
+		if(usr1.settings&USER_DELETED || usr1.compare_ars("REST Q"))
+			continue;
 		var usr2 = copyProperties(usr1, {});
 		usr2 = copyProperties(usr1.stats, usr2);	
 		users.push(usr2);
@@ -137,4 +159,15 @@ for(var u = 0; u < users.length; u++) {
 }
 
 ?>
+
 </table>
+
+<?xjs
+
+if(offset > 1)
+	print(format('<a href="%s&offset=%s">Previous</a>&nbsp;&nbsp;',	url, previousOffset));
+
+if(system.lastuser - offset > pageSize)
+	print(format('<a href="%s&offset=%s">Next</a>',	url, nextOffset));
+
+?>
-- 
GitLab