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:
';
+
+ if (window.bootPlugins.length == 0) {
+ result += '- No plugins installed
';
+ } else {
+ for (var i=0; i'+name+': '+compare.html+'';
+ } else {
+ result += '- '+name+': no version data on server(!?)
';
+ }
+ } else {
+ result += '- '+name+': non-standard plugin - cannot check version
';
+ }
+ }
+ }
+
+ result += '
';
+ }
}
dialog({
- width: 500,
+ width: 700,
title: 'Update check',
html: result
});
diff --git a/website/versioncheck.php b/website/versioncheck.php
index 479d371c..35e24574 100644
--- a/website/versioncheck.php
+++ b/website/versioncheck.php
@@ -82,7 +82,6 @@ else
$data = json_encode ( $response );
-$data = indent($data);
# send the response - allow either jsonp (using a 'callback' parameter), or regular json
@@ -106,63 +105,3 @@ else
}
-// http://www.daveperrett.com/articles/2008/03/11/format-json-with-php/
-/**
- * Indents a flat JSON string to make it more human-readable.
- *
- * @param string $json The original JSON string to process.
- *
- * @return string Indented version of the original JSON string.
- */
-function indent($json) {
-
- $result = '';
- $pos = 0;
- $strLen = strlen($json);
- $indentStr = ' ';
- $newLine = "\n";
- $prevChar = '';
- $outOfQuotes = true;
-
- for ($i=0; $i<=$strLen; $i++) {
-
- // Grab the next character in the string.
- $char = substr($json, $i, 1);
-
- // Are we inside a quoted string?
- if ($char == '"' && $prevChar != '\\') {
- $outOfQuotes = !$outOfQuotes;
-
- // If this character is the end of an element,
- // output a new line and indent the next line.
- } else if(($char == '}' || $char == ']') && $outOfQuotes) {
- $result .= $newLine;
- $pos --;
- for ($j=0; $j<$pos; $j++) {
- $result .= $indentStr;
- }
- }
-
- // Add the character to the result string.
- $result .= $char;
-
- // If the last character was the beginning of an element,
- // output a new line and indent the next line.
- if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
- $result .= $newLine;
- if ($char == '{' || $char == '[') {
- $pos ++;
- }
-
- for ($j = 0; $j < $pos; $j++) {
- $result .= $indentStr;
- }
- }
-
- $prevChar = $char;
- }
-
- return $result;
-}
-
-?>