1
0
Fork 0
mirror of synced 2024-06-02 19:04:49 +12:00
appwrite/public/scripts/views/general/version.js
2020-07-25 09:26:25 +03:00

47 lines
1.6 KiB
JavaScript

(function(window) {
window.ls.container.get("view").add({
selector: "data-version",
controller: function(alerts, env, cookie) {
let cookieName = "cookie-version-" + env.VERSION.replace(/\./g, "_");
if (!cookie.get(cookieName)) {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/console/version', true);
xhr.onload = function () {
if (this.readyState == 4 && this.status == 200) {
let data = JSON.parse(this.responseText);
let text = 'Appwrite version ' + data.version + ' is avaliable, check the';
if(isNewerVersion(env.VERSION, data.version)) {
alerts.add({
text: text,
class: "success",
link: env.HOME + "/policy/cookies",
label: 'release notes',
callback: function() {
cookie.set(cookieName, "true", 365 * 10); // 10 years
}
}, 0);
}
}
};
xhr.send(null);
function isNewerVersion (oldVer, newVer) {
const oldParts = oldVer.split('.')
const newParts = newVer.split('.')
for (var i = 0; i < newParts.length; i++) {
const a = parseInt(newParts[i]) || 0
const b = parseInt(oldParts[i]) || 0
if (a > b) return true
if (a < b) return false
}
return false
}
}
}
});
})(window);