1
0
Fork 0
mirror of synced 2024-05-07 06:12:43 +12:00
appwrite/public/scripts/views/general/version.js

48 lines
1.6 KiB
JavaScript

(function(window) {
window.ls.container.get("view").add({
selector: "data-version",
controller: function(alerts, env, cookie) {
let cookieName = "version-update-" + 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 available, check the';
if(isNewerVersion(env.VERSION, data.version)) {
alerts.add({
text: text,
class: "success",
link: "https://github.com/appwrite/appwrite/releases",
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);