|
|
|
@ -78,29 +78,6 @@ function isServerAlive(callback) {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Compare two version strings.
|
|
|
|
|
* http://stackoverflow.com/a/16187766/2534036
|
|
|
|
|
* @param {string} a
|
|
|
|
|
* @param {string} b
|
|
|
|
|
* @returns a number < 0 if a < b, a number > 0 if a > b, 0 if a = b
|
|
|
|
|
*/
|
|
|
|
|
function compareVersions(a, b) {
|
|
|
|
|
var i, diff;
|
|
|
|
|
var regExStrip0 = /(\.0+)+$/;
|
|
|
|
|
var segmentsA = a.replace(regExStrip0, '').split('.');
|
|
|
|
|
var segmentsB = b.replace(regExStrip0, '').split('.');
|
|
|
|
|
var l = Math.min(segmentsA.length, segmentsB.length);
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < l; i++) {
|
|
|
|
|
diff = parseInt(segmentsA[i], 10) - parseInt(segmentsB[i], 10);
|
|
|
|
|
if (diff) {
|
|
|
|
|
return diff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return segmentsA.length - segmentsB.length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Check if the saved username and password are valid.
|
|
|
|
|
* @param {function} callback A function that will be called with a boolean argument indicating validity.
|
|
|
|
@ -125,39 +102,32 @@ function checkLogin(callback) {
|
|
|
|
|
if (localStorage.getItem("configured") == null) {
|
|
|
|
|
router.navigate("/signin");
|
|
|
|
|
} else {
|
|
|
|
|
isServerAlive(function (yes) {
|
|
|
|
|
if (yes) {
|
|
|
|
|
callAPI("version", {
|
|
|
|
|
username: localStorage.getItem("username"),
|
|
|
|
|
password: localStorage.getItem("password")
|
|
|
|
|
}, function (data) {
|
|
|
|
|
$.getJSON("package.json", {}, function (local) {
|
|
|
|
|
if (compareVersions(local.version, data.version) < 0) {
|
|
|
|
|
router.navigate("/upgrade");
|
|
|
|
|
} else {
|
|
|
|
|
checkLogin(function (valid) {
|
|
|
|
|
if (valid) {
|
|
|
|
|
callAPI("playerexists", {
|
|
|
|
|
username: localStorage.getItem("username"),
|
|
|
|
|
password: localStorage.getItem("password")
|
|
|
|
|
}, function (resp) {
|
|
|
|
|
if (resp.exists == true) {
|
|
|
|
|
router.navigate("/home");
|
|
|
|
|
} else {
|
|
|
|
|
router.navigate("/chooseteam");
|
|
|
|
|
}
|
|
|
|
|
}, function (msg) {
|
|
|
|
|
router.navigate("/signin");
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
router.navigate("/signin");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
checkClientVersion(function (ok) {
|
|
|
|
|
if (ok) {
|
|
|
|
|
// Version OK
|
|
|
|
|
checkLogin(function (valid) {
|
|
|
|
|
if (valid) {
|
|
|
|
|
callAPI("playerexists", {
|
|
|
|
|
username: localStorage.getItem("username"),
|
|
|
|
|
password: localStorage.getItem("password")
|
|
|
|
|
}, function (resp) {
|
|
|
|
|
if (resp.exists == true) {
|
|
|
|
|
router.navigate("/home");
|
|
|
|
|
} else {
|
|
|
|
|
router.navigate("/chooseteam");
|
|
|
|
|
}
|
|
|
|
|
}, function (msg) {
|
|
|
|
|
router.navigate("/signin");
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
router.navigate("/signin");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
router.navigate("/connection");
|
|
|
|
|
// Version incompatible
|
|
|
|
|
router.navigate("/upgrade");
|
|
|
|
|
}
|
|
|
|
|
}, function () {
|
|
|
|
|
router.navigate("/connection");
|
|
|
|
|
});
|
|
|
|
|
}
|