Merge branch 'master' of github.com:jonatkins/ingress-intel-total-conversion

This commit is contained in:
Philipp Schaefer 2013-10-30 23:46:28 +01:00
commit 063bb73b99
2 changed files with 59 additions and 73 deletions

View File

@ -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]+'<small>'+match[2]+'</small>';
} 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)
}
if (!result.localVersion) {
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 = '<a href="'+result.webUrl+'" title="Web page" target="_blank">web</a> '
+ '<a href="'+result.downloadUrl+'" title="Install" target="_blank">install</a>';
}
if (!result.localVersion) {
result.html = '<span class="help" title="Your version unknown\nLatest version '+webVerHTML+'">version check failed</span> '+webLinkInstallHTML;
} else if (!result.webVersion) {
result.html = '<span class="help" title="Your version '+localVerHTML+'\nNo version from update check server">version check failed</span>';
} else if (result.upToDate) {
result.html = '<span class="help" title="Version '+localVerHTML+'">up to date</span>';
} else if (result.outOfDate) {
result.html = '<span class="help" title="Your version '+localVerHTML+'\nLatest version '+webVerHTML+'">out of date</span> '+webLinkInstallHTML;
} else if (result.localNewer) {
result.html = localVerHTML+' is newer than '+webVerHTML+'(?!)';
} else {
console.warn ('Unknown case of version combinations!');
result.html = '<span class="help" title="Your version '+localVerHTML+'\nLatest version '+webVerHTML+'">version check failed(!?)</span>';
}
return result;
@ -111,7 +133,7 @@ window.plugin.updateCheck.compareDetails = function(web_version, script_version)
window.plugin.updateCheck.showReport = function(data) {
var result = '<b>WORK IN PROGRESS - NOT YET FUNCTIONAL</b>';
var result = '<b>WORK IN PROGRESS</b>';
if (data.error) {
result += '<div><b>Error checking for updates</b><br>'+data.error+'</div>';
@ -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 += '<div>IITC Main script: '+JSON.stringify(compare)+'</div>';
result += '<div>IITC Main script: '+compare.html+'</div>';
} else {
if (!data.iitc) {
@ -135,11 +155,38 @@ window.plugin.updateCheck.showReport = function(data) {
}
}
if (data.plugins && window.bootPlugins) {
result += '<div>Plugins:<ul>';
if (window.bootPlugins.length == 0) {
result += '<li>No plugins installed</li>';
} else {
for (var i=0; i<window.bootPlugins.length; i++) {
var info = window.bootPlugins[i].info;
var name = info.script && info.script.name || info.pluginId || ('(unknown plugin index '+i+')');
name = name.replace ( /^IITC plugin: /i, '' );
if (info && info.pluginId) {
var webinfo = data.plugins[info.pluginId];
if (webinfo) {
var compare = window.plugin.updateCheck.compareDetails(webinfo,info);
result += '<li>'+name+': '+compare.html+'</li>';
} else {
result += '<li>'+name+': no version data on server(!?)</li>';
}
} else {
result += '<li>'+name+': non-standard plugin - cannot check version</li>';
}
}
}
result += '</ul></div>';
}
}
dialog({
width: 500,
width: 700,
title: 'Update check',
html: result
});

View File

@ -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;
}
?>