From abf2f39753d91baf132a0d93512803096b1299fa Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Thu, 28 Feb 2013 14:42:25 -0800 Subject: Link to a specific solution in scores, and other tweaks. --- includes/datas.php | 4 ++-- js/mapspecs.js | 6 ++---- js/scores.js | 43 +++++++++++++++++++++++++------------------ pages/scores.php | 21 ++++++++++++++++++++- 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 = ""+formatPageNavi(JO, "scoresShowPage", JO.mapid)+""; p = p+navi; } - p = p+""; + + var localTime = new Date(); + var updatedLocalTime = new Date(); + updatedLocalTime.setTime(JO.updateTime * 1000); + + p = p+""; p = p+"Rank"; p = p+"Name"; p = p+"Moves"; @@ -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 += ""; + p += " style='"+styleClass+" color:"+u.displayColor+";' title='Last improved "+scoredTimeStr+"'>"; } else { - p = p+ ""; + p = p+ ""; } // background-color: "+u.background+"; @@ -182,7 +185,11 @@ function scoresFormatPage(JO) { p = p+ ""; p = p+ ""+u.display+""; p = p+ ""; - p = p+ ""+u.moves+""; + if (u.solution) { + p = p+ ""+u.moves+""; + } else { + p = p+ ""+u.moves+""; + } p = p+ ""; 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) { -- cgit v1.2.3