1
0
www.mikescher.com/www/data/javascript/admin.js

207 lines
6.1 KiB
JavaScript

function queryStatus(appendix, secret)
{
jQuery.ajax({
url: '/api/extendedgitgraph::status?secret='+secret,
success: function(result)
{
let ajaxOutput = $('#egg_ajaxOutput');
ajaxOutput.val(result + '\r\n' + appendix);
ajaxOutput.scrollTop(ajaxOutput[0].scrollHeight);
},
async: true
});
}
function startAjaxRefresh(secret)
{
$('#egg_ajaxOutput').val("Started.");
val = setInterval(function(){ queryStatus('', secret); }, 500);
jQuery.ajax({
url: '/api/extendedgitgraph::refresh?secret='+secret,
success: function(result)
{
clearInterval(val);
queryStatus('Finished.', secret);
},
error: function( jqXHR, textStatus, errorThrown)
{
clearInterval(val);
queryStatus('AN ERROR OCCURED:' + '\r\n' + textStatus, secret);
},
async: true
});
}
function startAjaxRedraw(secret)
{
$('#egg_ajaxOutput').val("Started.");
val = setInterval(function(){ queryStatus('', secret); }, 500);
jQuery.ajax({
url: '/api/extendedgitgraph::redraw?secret='+secret,
success: function(result)
{
clearInterval(val);
queryStatus('Finished.', secret);
},
error: function( jqXHR, textStatus, errorThrown)
{
clearInterval(val);
queryStatus('AN ERROR OCCURED:' + '\r\n' + textStatus, secret);
},
async: true
});
}
function startAjaxReplace(target, url)
{
$(target).html("Waiting ...");
jQuery.ajax({
url: url,
success: function(result)
{
$(target).html(result);
},
error: function( jqXHR, textStatus, errorThrown)
{
$(target).html('AN ERROR OCCURED:' + '<br/>' + textStatus);
},
async: true
});
}
function showSelfTestOutput(id1, id2)
{
if (!$(id1).hasClass('consistency_result_fin')) return;
if ($(id2).hasClass('generic_nodisplay'))
{
$('.selftest_outputchild').addClass('generic_nodisplay');
$(id2).removeClass('generic_nodisplay');
}
else
{
$('.selftest_outputchild').addClass('generic_nodisplay');
}
}
function refreshConsistencyDisplaySequential(skip, filter)
{
let all = (filter === '') ? $('.selftest_parent .consistence_ajax_handler') : $('.selftest_sequential .consistence_ajax_handler[data-root="'+filter+'"]');
let i = 0;
for (let apibutton of all.toArray())
{
if (i++ !== skip) continue;
refreshSingle(apibutton, () => setTimeout(() => refreshConsistencyDisplaySequential(skip+1, filter), 10));
}
}
function refreshConsistencyDisplayParallel(filter)
{
let all = (filter === '') ? $('.selftest_parent .consistence_ajax_handler') : $('.selftest_parallel .consistence_ajax_handler[data-root="'+filter+'"]');
for (let apibutton of all.toArray())
{
refreshSingle(apibutton, () => {});
}
}
function refreshSingle(apibutton, then)
{
const filter = $(apibutton).data('filter');
const outdiv = $($(apibutton).data('stid'));
$(apibutton)
.removeClass('consistency_result_intermed')
.removeClass('consistency_result_fin')
.removeClass('consistency_result_ok')
.removeClass('consistency_result_warn')
.removeClass('consistency_result_err');
$(apibutton).addClass('consistency_result_running');
$.ajax('/api/site::selftest?filter=' + filter)
.done((data, status, xhr) =>
{
let json = JSON.parse(data);
$(apibutton).removeClass('consistency_result_intermed');
$(apibutton).removeClass('consistency_result_running');
$(apibutton).addClass('consistency_result_fin');
if (json.result === 0) $(apibutton).addClass('consistency_result_ok');
if (json.result === 1) $(apibutton).addClass('consistency_result_warn');
if (json.result === 2) $(apibutton).addClass('consistency_result_err');
$(apibutton).text(json.message);
//$(apibutton).attr('title', json.long);
outdiv.text(json.long);
then();
})
.fail((xhr, status, err) =>
{
$(apibutton).removeClass('consistency_result_intermed');
$(apibutton).removeClass('consistency_result_running');
$(apibutton).addClass('consistency_result_err');
$(apibutton).addClass('consistency_result_fin');
$(apibutton).text(("" + err).substr(0, 48));
//$(apibutton).attr('title', json.long);
outdiv.text(err);
then();
});
}
function queryGitField(dest)
{
const ddest = $(dest);
let config =
{
url: '/api/site::gitinfo?field=' + ddest.attr('data-ajax_gitfield'),
type: 'GET',
dataType: 'text',
cache : false,
};
$.ajax(config)
.done((data, status, xhr) =>
{
ddest.text(data);
})
.fail((xhr, status, err) =>
{
ddest.addClass('admin_ajax_gitfield_error');
ddest.text('ERROR');
});
}
$(function()
{
if ($('.selftest_sequential').length > 0) setTimeout(() => refreshConsistencyDisplaySequential(0, "modules"), 200);
if ($('.selftest_parallel').length > 0) setTimeout(() => refreshConsistencyDisplayParallel("modules"), 200);
for (let elem of $('.admin_ajax_gitfield').toArray()) setTimeout(() => queryGitField(elem), 0);
$('#btnFullSelftest').on('click', () =>
{
$('.consistence_ajax_handler')
.removeClass('consistency_result_fin')
.removeClass('consistency_result_ok')
.removeClass('consistency_result_warn')
.removeClass('consistency_result_err')
.addClass('consistency_result_intermed')
.text('');
if ($('.selftest_sequential').length > 0) refreshConsistencyDisplaySequential(0, "");
if ($('.selftest_parallel').length > 0) refreshConsistencyDisplayParallel("");
return false;
});
});