function doAPIRequestWithCallback (mod, func, handler, args) {
'use strict';
let oReq = new XMLHttpRequest();
oReq.addEventListener("load", handler);
let argstr = '';
if( typeof args === 'Object' ) {
Object.keys(args).forEach( function(argument) {
argstr += `&${argument}=${args[argument]}`;
});
}
oReq.open("GET", `api.cgi?module=${mod}&function=${func}${argstr}`);
oReq.send();
return false;
}
function versionHandler () {
'use strict';
let obj = JSON.parse(this.responseText);
if(obj.result === 1) {
console.log(obj);
// Construct version warning/display
let pgVersion = obj.data.installed_version.major + '.' + obj.data.installed_version.minor;
let elem = document.getElementById('psqlVersion');
let html = `${pgVersion}`;
if( parseFloat(pgVersion) < parseFloat(obj.data.minimum_supported_version) ) {
elem.classList.add('callout', 'callout-danger');
html += ' -- You are using a version of PostgreSQL Server that is no longer supported by ';
html += 'postgresql.org!
';
if( obj.data.eol_versions.hasOwnProperty(pgVersion) ) {
console.log(obj.data.eol_versions[pgVersion]);
console.log(obj.data.eol_versions[pgVersion].EOL);
html += "EOL -- " + new Date(obj.data.eol_versions[pgVersion].EOL * 1000).toLocaleString( undefined, { year: 'numeric', month: 'long', day: 'numeric' } ) + "
";
}
html += "Immediate upgrade is recommended.";
}
elem.innerHTML = html;
// Now let's build the table
let rows = '';
for ( var version of Object.keys(obj.data.available_versions).sort(function(a,b) { return parseFloat(b) - parseFloat(a) }) ) {
rows +=
`
Ensuring that the PostgreSQL Community repository is installed...\n'; doAPIRequestWithCallback('Postgres', 'enable_community_repositories', doInstallScroller ); let versionSelectedElem = document.querySelector('input[name="selectedVersion"]:checked'); let version2install = versionSelectedElem.value; doAPIRequestWithCallback( 'Postgres', 'install_postgres', doInstallScroller, { "version": "9.5" } ); return false; } // Now kickoff the page load post bits document.getElementById('submit').disabled = true; doAPIRequestWithCallback('Postgres', 'get_postgresql_versions', versionHandler);