From 6ddbaf49591a2b53615ac7873cca8b9a0aa9a1dd Mon Sep 17 00:00:00 2001 From: Jon Atkins Date: Wed, 30 Oct 2013 21:11:25 +0000 Subject: [PATCH] update check plugin - basic functionality now done --- plugins/update-check.user.js | 71 ++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 12 deletions(-) diff --git a/plugins/update-check.user.js b/plugins/update-check.user.js index 29ea1a3a..f58cc1f3 100644 --- a/plugins/update-check.user.js +++ b/plugins/update-check.user.js @@ -71,15 +71,19 @@ window.plugin.updateCheck.versionDataCallback = function(data) { s.parentNode.removeChild(s); } - dialog({ - text: JSON.stringify(data,null,2), - title: 'debug version check', - width: 700 - }); - window.plugin.updateCheck.showReport(data); } +window.plugin.updateCheck.versionHTML = function(ver) { + var re = new RegExp ('^([0-9]+\\.[0-9]+\\.[0-9]+)(\\.2[0-9][0-9][0-9][01][0-9][0123][0-9]\\.[0-9]+)$'); + var match = ver.match(re); + if (match) { + return match[1]+''+match[2]+''; + } else { + return ver; + } +} + window.plugin.updateCheck.compareDetails = function(web_version, script_version) { // compare the local script version data with the website version data // and return an object with the results @@ -101,9 +105,27 @@ window.plugin.updateCheck.compareDetails = function(web_version, script_version) } + var webVerHTML = result.webVersion && window.plugin.updateCheck.versionHTML(result.webVersion); + var localVerHTML = result.localVersion && window.plugin.updateCheck.versionHTML(result.localVersion); + var webLinkInstallHTML = ''; + if (result.downloadUrl && result.webUrl) { + webLinkInstallHTML = 'web ' + + 'install'; + } + if (!result.localVersion) { - + result.html = 'version check failed '+webLinkInstallHTML; } else if (!result.webVersion) { + result.html = 'version check failed'; + } else if (result.upToDate) { + result.html = 'up to date'; + } else if (result.outOfDate) { + result.html = 'out of date '+webLinkInstallHTML; + } else if (result.localNewer) { + result.html = localVerHTML+' is newer than '+webVerHTML+'(?!)'; + } else { + console.warn ('Unknown case of version combinations!'); + result.html = 'version check failed(!?)'; } return result; @@ -111,7 +133,7 @@ window.plugin.updateCheck.compareDetails = function(web_version, script_version) window.plugin.updateCheck.showReport = function(data) { - var result = 'WORK IN PROGRESS - NOT YET FUNCTIONAL'; + var result = 'WORK IN PROGRESS'; if (data.error) { result += '
Error checking for updates
'+data.error+'
'; @@ -121,10 +143,8 @@ window.plugin.updateCheck.showReport = function(data) { } if (data.iitc && window.script_info) { - var compare = window.plugin.updateCheck.compareDetails(data.iitc, window.script_info); - - result += '
IITC Main script: '+JSON.stringify(compare)+'
'; + result += '
IITC Main script: '+compare.html+'
'; } else { if (!data.iitc) { @@ -135,11 +155,38 @@ window.plugin.updateCheck.showReport = function(data) { } } + if (data.plugins && window.bootPlugins) { + result += '
Plugins:
'; + } } dialog({ - width: 500, + width: 700, title: 'Update check', html: result });