msm/assets/js/index.js
Marcus Whybrow baa9a7d803 Added dynamic version number for install guide button.
The version number is taken from the largest x.x.x tag for the GitHub
project. Also moved scripts into external files and used CDNs where
possible.
2012-06-20 09:23:00 +01:00

69 lines
2.5 KiB
JavaScript

$(function() {
var milestonesUrl = "https://api.github.com/repos/marcuswhybrow/minecraft-server-manager/milestones?callback=?",
tagsUrl = "https://api.github.com/repos/marcuswhybrow/minecraft-server-manager/tags?callback=?";
$.getJSON(milestonesUrl, function(result) {
var milestones = result.data;
$.each(milestones, function(i, milestone) {
var closedIssues = milestone.closed_issues;
var totalIssues = closedIssues + milestone.open_issues;
var milestonePercentage = closedIssues / totalIssues * 100;
var $div = $("<div>").addClass("milestone");
var $link =$("<a>")
.attr("href", "https://github.com/marcuswhybrow/minecraft-server-manager/issues?state=open&milestone=" + milestone.number)
.addClass("ga-track")
.appendTo($div);
$("<h2>").text(milestone.title).appendTo($link);
$("<p>").text(milestone.description).appendTo($div);
var $progress = $("<div>").addClass("progress").appendTo($div);
var $bar = $("<div>").addClass("bar").css("width", milestonePercentage + "%").appendTo($progress);
$(".milestones").append($div);
});
$(".milestones").slideDown();
});
function compareTags(a, b) {
if (a[0] > b[0]) return 1;
else if (a[0] == b[0] && a[1] > b[1]) return 1;
else if (a[0] == b[0] && a[1] == b[1] && a[2] > b[2]) return 1;
else if (a[0] == b[0] && a[1] == b[1] && a[2] == b[2]) return 0;
return -1;
}
function matchToTagVersion(match) {
return [ parseInt(match[1], 10), parseInt(match[2], 10), parseInt(match[3], 10) ];
}
$.getJSON(tagsUrl, function(result) {
var tags = result.data,
latestTagVersion = [0, 0, 0],
tagVersion, match;
$.each(tags, function(i, tag) {
match = tag.name.match(/^(\d+)\.(\d+)\.(\d+)$/);
if (match) {
tagVersion = matchToTagVersion(match);
if (compareTags(tagVersion, latestTagVersion) == 1)
latestTagVersion = tagVersion;
}
});
var $installBtnVersion = $('#install-button small');
match = $installBtnVersion.text().match(/^\((\d+)\.(\d+)\.(\d+)\)$/);
if (match) {
tagVersion = matchToTagVersion(match);
if (compareTags(latestTagVersion, tagVersion) == 1)
$installBtnVersion.text('(' + latestTagVersion.join('.') + ')');
}
});
$('.player').tooltip();
$('a.ga-track').live('click', function() {
var $this = $(this);
_gaq.push(['_trackEvent', 'External Link', $this.text(), $this.attr('href')]);
});
});