diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/scores.js | 132 |
1 files changed, 86 insertions, 46 deletions
diff --git a/js/scores.js b/js/scores.js index 734683a..f67f2c8 100644 --- a/js/scores.js +++ b/js/scores.js @@ -219,7 +219,10 @@ function scoresFormatPageNavi(JO) { //Memberlist related functions:
var membersPages = new Object;
-var membersCurrentPage = 1;
+var membersCurrentPage = 1;
+var membersPageDivide = 50;
+var membersOrderBy = 'dateJoined';
+var membersOrder = 'DESC';
function membersRequestPage(page) {
console.log('membersRequestPage', page);
@@ -239,7 +242,12 @@ function membersRequestPage(page) { //console.log("Requesting Page", page, ajax.inUse);
// == Additionally, check for achievements.
- ajax.requestFile = "do.php?r=reqMemberPage&reqPage="+page;
+
+ var requestString = "do.php?r=reqMemberPage&reqPage="+page+"&orderBy="+membersOrderBy
+ requestString += "&order="+membersOrder
+ requestString += "&membersPageDivide="+membersPageDivide
+
+ ajax.requestFile = requestString;
ajax.onCompletion = membersRequestPageDone; // Specify function to be executed on response.
//ajax.onLoading = '';
//ajax.onLoaded = '';
@@ -255,8 +263,21 @@ function membersRequestPageDone() { return;
membersUpdatePage(JO.page, membersFormatPage(JO));
}
+function membersToggleOrder() {
+ if (membersOrder == 'ASC')
+ membersOrder = 'DESC';
+ else
+ membersOrder = 'ASC';
+}
+
+function membersShowPage(page, orderBy, force) {
+
+ if (orderBy) {
+ if (membersOrderBy == orderBy)
+ membersToggleOrder();
+ membersOrderBy = orderBy;
+ }
-function membersShowPage(page) {
page = page - 0;
console.log('membersShowPage', page);
if (membersPreparePage(page) == false) {
@@ -276,7 +297,7 @@ function membersShowPage(page) { //Also; update the page
- if (page != membersCurrentPage) {
+ if (page != membersCurrentPage || orderBy || force) {
membersRequestPage(page);
}
membersCurrentPage = page;
@@ -308,7 +329,7 @@ function membersFormatPageNavi(JO) { var r = '';
var showedPrevPage = true;
for (var i = 1; i <= JO.pageCount; i++) {
- if (
+ if (
(JO.page > i - 3 && JO.page < i + 3)
|| (i == 1)
|| (i == JO.pageCount)
@@ -329,6 +350,24 @@ function membersFormatPageNavi(JO) { showedPrevPage = false;
}
}
+ var nextPage = JO.page - 0 + 1;
+ var prevPage = JO.page - 1;
+ if (JO.pageCount > 1) {
+ if (JO.page < JO.pageCount) {
+ r = r+" <a class='scoreRight' title='Last' href='javascript:membersShowPage("+JO.pageCount+")'>>>></a>";
+ r = r+" <a class='scoreRight' title='Next' href='javascript:membersShowPage("+nextPage+")'>></a>";
+ } else {
+ r = r+" <span class='scoreRight'>>>></span>";
+ r = r+" <span class='scoreRight'>></span>";
+ }
+ if (JO.page > 1) {
+ r = " <a class='scoreLeft' title='Previous' href='javascript:membersShowPage("+prevPage+")'><</a>"+r;
+ r = " <a class='scoreLeft' title='First' href='javascript:membersShowPage(1)'><<<</a>"+r;
+ } else {
+ r = r+" <span class='scoreLeft'><<<</span>";
+ r = r+" <span class='scoreLeft'><</span>";
+ }
+ }
return r;
}
@@ -336,22 +375,40 @@ function membersFormatPageNavi(JO) { function membersFormatPage(JO) {
// console.log("Formating page");
- var p = "<table class='score'>";
+ var p = "<table class='membersList score'>";
+ var navi = '';
if (JO.pageCount > 1) {
- var navi = membersFormatPageNavi(JO);
- p = p+"<tr><td colspan='9' style='text-align:center;'>"+navi+"</td></tr>";
+ navi = "<tr><th colspan='10' style='text-align:center;'>"+membersFormatPageNavi(JO)+"</th></tr>";
+ p = p+navi;
}
-
+
+ var headers = new Object;
+ headers['display'] = 'Name';
+ headers['championPoints'] = 'Points';
+ headers['totalMazes'] = 'Mazes';
+ headers['totalMoves'] = 'Moves';
+ headers['totalMovesThisWeek'] = 'Past Week';
+ headers['totalTies'] = 'Ties';
+ headers['totalWins'] = 'Wins';
+ headers['dateJoined'] = 'Joined';
+ headers['dateLogin'] = 'Last Login';
+
+
p = p+"<tr title='Updated "+JO.updateTime+"'>";
p = p+"<th>Rank</th>";
- p = p+"<th style='width:125px; overflow:hidden; text-align:left; padding-left:42px;'>Name</th>";
- p = p+"<th>Mazes</th>";
- p = p+"<th>Moves</th>";
- p = p+"<th>Past Week</th>";
- p = p+"<th>Wins</th>";
- p = p+"<th>Ties</th>";
- p = p+"<th>Joined</th>";
- p = p+"<th>Last Login</th>";
+
+ var sortIndicator;
+ for (var i in headers) {
+ sortIndicator = '';
+ if (i == membersOrderBy) {
+ if (membersOrder == 'DESC')
+ sortIndicator = ' ⇧';
+ else
+ sortIndicator = ' ⇩';
+ }
+ p = p+"<th class='"+i+"'><a title='' href='javascript:membersShowPage("+membersCurrentPage+",\""+i+"\")'>"+headers[i]+"</a>"+sortIndicator+"</th>";
+ }
+
p = p+"</tr>";
var showedLastUser = true;
@@ -369,53 +426,36 @@ function membersFormatPage(JO) { if (previousI != i + 1)
if (previousI < i - 1 && previousI != 0)
styleClass = 'border-top: 6px solid #777799;';
+
+ if (u.wallEmblem == undefined)
+ u.wallEmblem = 'blank.png';
- p = p+ "<tr style='"+styleClass+" background-color: "+u.background+"; color:"+u.displayColor+";' title='Scored "+scoredLocalTime.format("h:MM:ss TT")+"'>";
+ p = p+ "<tr style='"+styleClass+" background-color: "+u.background+"; color:"+u.displayColor+";' title=''>";
p = p+ "<td style='text-align:left;'>";
p = p+ i+ "</td>";
- p = p+ "<td style='vertical-align: middle;'>";
+
+ p = p+ "<td style='vertical-align: middle;width:180px;'>";
p = p+ " <div class='grid_td' style='float:left; width:35px; height:35px; background:"+u.wallColor+" url(images/marks/"+u.wallEmblem+");'>";
- p = p+ " <div style='background-color:transparent;' class='grid_td_inner grid_td_rocks'>";
- p = p+ " </div>";
+ p = p+ " <div style='background-color:transparent;' class='grid_td_inner grid_td_rocks'>";
+ p = p+ " </div>";
p = p+ " </div>";
- p = p+ "";
- p = p+ "<span class='scoreName'><a href='achievements?id="+u.ID+"' style='color:"+u.displayColor+"'>"+u.display+"</a></span>";
+ p = p+ " <span class='memberName' style='float:left;'><a href='achievements?id="+u.ID+"' style='color:"+u.displayColor+"'>"+u.display+"</a></span>";
p = p+ "</td>";
+ p = p+ "<td style='text-align:right;'>"+u.championPoints+"</td>";
p = p+ "<td style='text-align:right;'>"+u.totalMazes+"</td>";
p = p+ "<td style='text-align:right;'>"+u.totalMoves+"</td>";
p = p+ "<td style='text-align:right;'>"+u.totalMovesThisWeek+"</td>";
- p = p+ "<td style='text-align:right;'>"+u.totalWins+"</td>";
p = p+ "<td style='text-align:right;'>"+u.totalTies+"</td>";
+ p = p+ "<td style='text-align:right;'>"+u.totalWins+"</td>";
p = p+ "<td style='text-align:right;'>"+u.dateJoined+"</td>";
p = p+ "<td style='text-align:right;'>"+u.dateLogin+"</td>";
p = p+ "</tr>";
previousI = i;
}
-
- //p = p+"<tr><th colspan='3' style='text-align:center;'>"+navi+"</th></tr>";
+ p = p+navi
p = p+"</table>";
-
- var nextPage = JO.page - 0 + 1;
- var prevPage = JO.page - 1;
-
- if (JO.pageCount > 1) {
- if (JO.page < JO.pageCount) {
- p = p+"<a href='javascript:membersShowPage("+nextPage+")' class='rightBtn scoreActive'>></a>";
- } else
- p = "<div class='rightBtn scoreDisabled'>></div>"+p;
- if (JO.page > 1) {
- p = "<a href='javascript:membersShowPage("+prevPage+")' class='leftBtn scoreActive'><</a>"+p;
- } else
- p = "<div class='leftBtn scoreDisabled'><</div>"+p;
- }
- p = "<div class='scoreContainer1'>"+p+"</div>";
-
- //console.log(p);
- //console.log('jo page', JO.page);
- //console.log('jo pagecount', JO.pageCount);
- //p = JO.navi+p;
return p;
}
|