summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Davison <snapwilliam@gmail.com>2013-02-28 14:42:25 -0800
committerPatrick Davison <snapwilliam@gmail.com>2013-02-28 14:42:25 -0800
commitabf2f39753d91baf132a0d93512803096b1299fa (patch)
tree4ca1e86eb1f5c3d45393d76dff9cb4b42f3cb913
parent97b6742ddfcef31ded607e4334475052ba46795b (diff)
downloadpathery-abf2f39753d91baf132a0d93512803096b1299fa.tar.xz
Link to a specific solution in scores, and other tweaks.
-rw-r--r--includes/datas.php4
-rw-r--r--js/mapspecs.js6
-rw-r--r--js/scores.js43
-rw-r--r--pages/scores.php21
4 files changed, 49 insertions, 25 deletions
diff --git a/includes/datas.php b/includes/datas.php
index 98958c5..3d51983 100644
--- a/includes/datas.php
+++ b/includes/datas.php
@@ -826,7 +826,7 @@ function getScores($mapID, $pageNumber = 1, $pageDivide = 10) {
$result = mysql_query($sql);
//$utime = date("g:i A (T)");
- $output['updateTime'] = date("g:i A (T)");
+ $output['updateTime'] = time();
$i = 0;
$foundUser = false;
@@ -854,7 +854,7 @@ function getScores($mapID, $pageNumber = 1, $pageDivide = 10) {
}
$scoredDate = strtotime($row['cdate']);
- $secondsSinceScored = strtotime("now") - $scoredDate ;
+ $secondsSinceScored = strtotime("now") - $scoredDate;
//Alternate background colors
$background = '#262631';
diff --git a/js/mapspecs.js b/js/mapspecs.js
index 0e0a7e5..283e3a8 100644
--- a/js/mapspecs.js
+++ b/js/mapspecs.js
@@ -141,10 +141,7 @@ function grid_click(obj) {
wallEmblem = playerWallEmblem;
}
}
- console.log('using wallcolors:', wallColor, wallEmblem);
-
obj.style.backgroundColor = wallColor;
-
if (wallEmblem !== false) {
obj.style.backgroundImage="url(images/marks/"+wallEmblem+")";
}
@@ -817,7 +814,8 @@ function displayMap(mapid, divID, goalSize, solution, moves, challengeMap) {
//TODO: Better fail option?
fail: (function() { console.log("FAIL Map Download"); }),
complete: function(data) {
- $("#"+divID).html(mapAsHTML(decryptJSON(data.responseText), goalSize)).fadeIn('slow');
+ $("#"+divID).html(mapAsHTML(decryptJSON(data.responseText), goalSize)).fadeIn('fast');
+ //$("#"+divID).html(mapAsHTML(decryptJSON(data.responseText), goalSize)).show();
mapdata[mapid].savedSolution = solution;
restoreSolution(mapid);
}
diff --git a/js/scores.js b/js/scores.js
index b062c28..2b137cb 100644
--- a/js/scores.js
+++ b/js/scores.js
@@ -117,7 +117,12 @@ function scoresFormatPage(JO) {
navi = "<tr><th colspan='3' style='text-align:center;'>"+formatPageNavi(JO, "scoresShowPage", JO.mapid)+"</th></tr>";
p = p+navi;
}
- p = p+"<tr title='Updated "+JO.updateTime+"'>";
+
+ var localTime = new Date();
+ var updatedLocalTime = new Date();
+ updatedLocalTime.setTime(JO.updateTime * 1000);
+
+ p = p+"<tr title='Last-Update: "+updatedLocalTime.format("mmm d, h:MM TT")+"'>";
p = p+"<th>Rank</th>";
p = p+"<th style='width:125px; overflow:hidden; text-align:left; padding-left:42px;'>Name</th>";
p = p+"<th>Moves</th>";
@@ -127,9 +132,6 @@ function scoresFormatPage(JO) {
var x = 0;
var previousI = 0;
- //TODO !!
- //var isWeeklyMap = (document.getElementById("dl-5").className.indexOf('selected') >= 0);
-
for (var i in JO.users) {
var u = JO.users[i];
var scoredLocalTime = new Date();
@@ -137,32 +139,33 @@ function scoresFormatPage(JO) {
var styleClass = '';
- if (previousI != i + 1)
- if (previousI < i - 1 && previousI != 0)
- styleClass = 'border-top: 6px solid #777799;';
- //TODO:
- //var scoredTimeFormat = (isWeeklyMap ? "mmm d, h:MM:ss TT" : "h:MM:ss TT");
- var scoredTimeFormat = (false ? "mmm d, h:MM:ss TT" : "h:MM:ss TT");
+ if (previousI != i + 1 && previousI < i - 1 && previousI != 0) {
+ styleClass = 'border-top: 6px solid #777799;';
+ }
+
+ var wasLongAgo = localTime.getTime() > (scoredLocalTime.getTime() + 43200000); //12*60*60*1000
+ var scoredTimeFormat = (wasLongAgo ? "mmm d, h:MM:ss TT" : "h:MM:ss TT");
var scoredTimeStr = scoredLocalTime.format(scoredTimeFormat);
var rowclass = 'scoreRow'+((i % 2)+1);
-
- // if (u.isUser) {
- // rowclass = 'scoreRowSelf';
- // }
+
if (u.ID == userObj.ID) {
rowclass = 'scoreRowSelf';
+ }
+ if (typeof(pointerUserID) != 'undefined' && u.ID == pointerUserID) {
+ setTimeout("useSolution(\""+JO.mapid+"\", \""+u.solution+"\", \""+u.moves+"\", \""+u.wallColor+"\", \""+u.wallEmblem+"\");", 400);
+ pointerUserID = '';
}
if (u.solution) {
rowclass += ' scoreRowSolutionAvailable';
p += "<tr class='"+rowclass+"' ";
p += "onmouseover='showTempSolution(\""+JO.mapid+"\", \""+u.solution+"\", \""+u.moves+"\", \""+u.wallColor+"\", \""+u.wallEmblem+"\")'";
- p += "onclick='useSolution(\""+JO.mapid+"\", \""+u.solution+"\", \""+u.moves+"\", \""+u.wallColor+"\", \""+u.wallEmblem+"\")'";
+ p += "onclick='useSolution(\""+JO.mapid+"\", \""+u.solution+"\", \""+u.moves+"\", \""+u.wallColor+"\", \""+u.wallEmblem+"\");saveScoreLocation("+JO.page+", "+u.ID+");'";
p += "onmouseout='restoreSolution(\""+JO.mapid+"\")' ";
- p += " style='"+styleClass+" color:"+u.displayColor+";' title='Scored "+scoredTimeStr+"'>";
+ p += " style='"+styleClass+" color:"+u.displayColor+";' title='Last improved "+scoredTimeStr+"'>";
} else {
- p = p+ "<tr class='"+rowclass+"' style='"+styleClass+" color:"+u.displayColor+";' title='Scored "+scoredTimeStr+"'>";
+ p = p+ "<tr class='"+rowclass+"' style='"+styleClass+" color:"+u.displayColor+";' title='Last improved "+scoredTimeStr+"'>";
}
// background-color: "+u.background+";
@@ -182,7 +185,11 @@ function scoresFormatPage(JO) {
p = p+ "";
p = p+ "<span class='scoreName'><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.moves+"</td>";
+ if (u.solution) {
+ p = p+ "<td style='text-align:right;'><a href='javascript: void(0);'>"+u.moves+"</a></td>";
+ } else {
+ p = p+ "<td style='text-align:right;'>"+u.moves+"</td>";
+ }
p = p+ "</tr>";
previousI = i;
diff --git a/pages/scores.php b/pages/scores.php
index 9443673..70acbaa 100644
--- a/pages/scores.php
+++ b/pages/scores.php
@@ -49,6 +49,12 @@ function start() {
if (typeof(hashParts[1]) !== 'undefined') {
pointerMapID = hashParts[1];
}
+ if (typeof(hashParts[2]) !== 'undefined' && hashParts[2]-0 > 0) {
+ pointerPage = hashParts[2];
+ } else pointerPage = 1;
+ if (typeof(hashParts[3]) !== 'undefined') {
+ pointerUserID = hashParts[3];
+ }
//+1 because i'm gonna use prev.
pointerTime = new Date(dateSplit[0],dateSplit[1]-1,dateSplit[2]-0+1);
}
@@ -84,9 +90,10 @@ function displayMapScores(mapID) {
$('#scoreDisplay').empty();
newDiv.prependTo('#scoreDisplay');
}
- scoresShowPage(1, mapID);
$("#mapDisplay").fadeOut('fast');
displayMap(mapID, "mapDisplay", 682);
+ scoresShowPage(pointerPage, mapID);
+ //console.log(pointerPage, mapID);
}
@@ -95,9 +102,21 @@ function updateHash() {
tmp = tmp.split("#");
var anchorTag = tmp[0]+'#'+pointerDate;
anchorTag += "_"+pointerMapID;
+ if (pointerPage) anchorTag += "_"+pointerPage;
+ else anchorTag += "_";
+ if (pointerUserID) anchorTag += "_"+pointerUserID;
+ else anchorTag += "_";
document.location=anchorTag;
}
+var pointerPage = 1, pointerUserID
+function saveScoreLocation(page, userID) {
+ pointerPage = page;
+ pointerUserID = userID;
+ updateHash();
+ console.log("SaveScoreLoc");
+}
+
var pointerDate;
function getMapIDs(request) {
switch (request) {