From e340ad8ecf7f2c6c9026e3b8910b4b7d303fb5a9 Mon Sep 17 00:00:00 2001 From: wez3 Date: Sat, 21 Jan 2017 22:42:53 +0100 Subject: [PATCH] Add versionCompare function for upgrades --- VERSION.md | 2 +- static/js/domoboard.js | 30 ++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/VERSION.md b/VERSION.md index 238d6e8..b0f3d96 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -1.0.7 +1.0.8 diff --git a/static/js/domoboard.js b/static/js/domoboard.js index 4605e17..69b6deb 100644 --- a/static/js/domoboard.js +++ b/static/js/domoboard.js @@ -439,7 +439,8 @@ function checkVersion(branch) { } else { dataFloat = data.split(",")[1]; } - if (dataFloat > version) { + var compare = versionCompare(dataFloat, version); + if (comare == 1) { document.getElementById('curver').innerHTML = version; document.getElementById('newver').innerHTML = dataFloat; $( "#version_div" ).removeClass("hide_update"); @@ -460,7 +461,8 @@ function checkVersionSettings(branch) { } else { dataFloat = data.split(",")[1]; } - if (dataFloat > version) { + var compare = versionCompare(dataFloat, version); + if (compare == 1) { $( "#updateView_available" ).removeClass("hide_update"); $( "#updateView_available" ).addClass("show_update"); document.getElementById('curver_settings').innerHTML = version; @@ -473,3 +475,27 @@ function checkVersionSettings(branch) { async:true }); } + + function versionCompare(a, b) { + if (a === b) { + return 0; + } + var a_components = a.split("."); + var b_components = b.split("."); + var len = Math.min(a_components.length, b_components.length); + for (var i = 0; i < len; i++) { + if (parseInt(a_components[i]) > parseInt(b_components[i])) { + return 1; + } + if (parseInt(a_components[i]) < parseInt(b_components[i])) { + return -1; + } + } + if (a_components.length > b_components.length) { + return 1; + } + if (a_components.length < b_components.length) { + return -1; + } + return 0; +}