102 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
(function() {
 | 
						|
  var mapset = {};
 | 
						|
  setData.ChildrenBeatmaps.forEach(function(diff) {
 | 
						|
    mapset[diff.BeatmapID] = diff;
 | 
						|
  });
 | 
						|
  console.log(mapset);
 | 
						|
  function loadLeaderboard(b, m) {
 | 
						|
    var wl = window.location;
 | 
						|
    window.history.replaceState('', document.title,
 | 
						|
      "/b/" + b + "?mode=" + m + wl.hash);
 | 
						|
    api("scores?sort=score,desc&sort=id,asc", {
 | 
						|
      mode : m,
 | 
						|
      b : b,
 | 
						|
      p : 1,
 | 
						|
      l : 50,
 | 
						|
    },
 | 
						|
    function(data) {
 | 
						|
      console.log(data);
 | 
						|
      var tb = $(".ui.table tbody");
 | 
						|
      tb.find("tr").remove();
 | 
						|
      if (data.scores == null) {
 | 
						|
        data.scores = [];
 | 
						|
      }
 | 
						|
      var i = 0;
 | 
						|
      data.scores.sort(function(a, b) { return b.score - a.score; });
 | 
						|
      data.scores.forEach(function(score) {
 | 
						|
        var user = score.user;
 | 
						|
        tb.append($("<tr />").append(
 | 
						|
          $("<td data-sort-value=" + (++i) + " />")
 | 
						|
            .text("#" + ((page - 1) * 50 + i)),
 | 
						|
          $("<td />").html("<a href='/u/" + user.id +
 | 
						|
                                 "' title='View profile'><i class='" +
 | 
						|
                                 user.country.toLowerCase() + " flag'></i>" +
 | 
						|
                                 escapeHTML(user.username) + "</a>"),
 | 
						|
          $("<td data-sort-value=" + score.score + " />")
 | 
						|
            .html(addCommas(score.score)),
 | 
						|
          $("<td />").html(getScoreMods(score.mods, true)),
 | 
						|
          $("<td data-sort-value=" + score.accuracy + " />")
 | 
						|
            .text(score.accuracy.toFixed(2) + "%"),
 | 
						|
          $("<td data-sort-value=" + score.max_combo + " />")
 | 
						|
            .text(addCommas(score.max_combo)),
 | 
						|
          $("<td data-sort-value=" + score.pp + " />")
 | 
						|
            .html(score.pp.toFixed(2))));
 | 
						|
      });
 | 
						|
    });
 | 
						|
  }
 | 
						|
  function changeDifficulty(bid) {
 | 
						|
    // load info
 | 
						|
    var diff = mapset[bid];
 | 
						|
 | 
						|
    // column 2
 | 
						|
    $("#cs").html(diff.CS);
 | 
						|
    $("#hp").html(diff.HP);
 | 
						|
    $("#od").html(diff.OD);
 | 
						|
    $("#passcount").html(addCommas(diff.Passcount));
 | 
						|
    $("#playcount").html(addCommas(diff.Playcount));
 | 
						|
 | 
						|
    // column 3
 | 
						|
    $("#ar").html(diff.AR);
 | 
						|
    $("#stars").html(diff.DifficultyRating.toFixed(2));
 | 
						|
    $("#length").html(timeFormat(diff.TotalLength));
 | 
						|
    $("#drainLength").html(timeFormat(diff.HitLength));
 | 
						|
    $("#bpm").html(diff.BPM);
 | 
						|
 | 
						|
    // hide mode for non-std maps
 | 
						|
    console.log("favMode", favMode);
 | 
						|
    if (diff.Mode != 0) {
 | 
						|
      currentMode = (currentModeChanged ? currentMode : favMode);
 | 
						|
      $("#mode-menu").hide();
 | 
						|
    } else {
 | 
						|
      currentMode = diff.Mode;
 | 
						|
      $("#mode-menu").show();
 | 
						|
    }
 | 
						|
 | 
						|
    // update mode menu
 | 
						|
    $("#mode-menu .active.item").removeClass("active");
 | 
						|
    $("#mode-" + currentMode).addClass("active");
 | 
						|
 | 
						|
    loadLeaderboard(bid, currentMode);
 | 
						|
  }
 | 
						|
  window.loadLeaderboard = loadLeaderboard;
 | 
						|
  window.changeDifficulty = changeDifficulty;
 | 
						|
  changeDifficulty(beatmapID);
 | 
						|
  // loadLeaderboard(beatmapID, currentMode);
 | 
						|
  $("#diff-menu .item")
 | 
						|
    .click(function(e) {
 | 
						|
      e.preventDefault();
 | 
						|
      $(this).addClass("active");
 | 
						|
      beatmapID = $(this).data("bid");
 | 
						|
      changeDifficulty(beatmapID);
 | 
						|
    });
 | 
						|
  $("#mode-menu .item")
 | 
						|
    .click(function(e) {
 | 
						|
      e.preventDefault();
 | 
						|
      $("#mode-menu .active.item").removeClass("active");
 | 
						|
      $(this).addClass("active");
 | 
						|
      currentMode = $(this).data("mode");
 | 
						|
      loadLeaderboard(beatmapID, currentMode);
 | 
						|
      currentModeChanged = true;
 | 
						|
    });
 | 
						|
  $("table.sortable").tablesort();
 | 
						|
})(); |