mirror of
https://github.com/yogeshojha/rengine.git
synced 2026-09-18 15:57:44 +02:00
96 lines
4.7 KiB
JavaScript
96 lines
4.7 KiB
JavaScript
function getScanStatusSidebar(reload) {
|
|
$.getJSON('/api/scan_status', function(data) {
|
|
$('#currently_scanning').empty();
|
|
$('#recently_completed_scans').empty();
|
|
$('#upcoming_scans').empty();
|
|
|
|
if (data['scanning'].length > 0){
|
|
$('#current_scan_count').html(`${data['scanning'].length} Scans Currently Running`)
|
|
for (var scan in data['scanning']) {
|
|
scan_object = data['scanning'][scan];
|
|
$('#currently_scanning').append(`<a href="/scan/detail/${scan_object.id}" class="text-reset item-hovered d-block p-2 bg-soft-info">
|
|
<p class="text-dark mb-0">${scan_object.domain.name}<span class="float-end">${scan_object.current_progress}%</span></p>
|
|
<p class="text-muted mb-0">Started ${scan_object.elapsed_time} ago</p>
|
|
<h5><span class="badge badge-soft-primary badge-scan_engine-type">${scan_object.scan_type.engine_name}</span></h5>
|
|
<h4 class="text-center">
|
|
<span class="badge-subdomain-count badge badge-soft-info waves-effect waves-light"> ${scan_object.subdomain_count} </span>
|
|
<span class="badge-endpoint-count badge badge-soft-primary waves-effect waves-light"> ${scan_object.endpoint_count} </span>
|
|
<span class="badge-vuln-count badge badge-soft-danger waves-effect waves-light"> ${scan_object.vulnerability_count} </span></h4>
|
|
<div class="progress mt-2" style="height: 4px;">
|
|
<div class="progress-bar progress-bar-striped progress-bar-animated bg-primary" role="progressbar" aria-valuenow="${scan_object.current_progress}" aria-valuemin="0" aria-valuemax="100" style="width: ${scan_object.current_progress}%"></div>
|
|
</div>
|
|
</a>`);
|
|
}
|
|
}
|
|
else{
|
|
$('#currently_scanning').html(`<div class="alert alert-warning" role="alert">No Scans are currently running.</div>`);
|
|
}
|
|
|
|
if (data['recently_completed_scans'].length > 0){
|
|
for (var scan in data['recently_completed_scans']) {
|
|
scan_object = data['recently_completed_scans'][scan];
|
|
if (scan_object.scan_status == 0 ) {
|
|
bg_color = 'bg-soft-danger';
|
|
status_badge = '<span class="float-end badge bg-danger">Failed</span>';
|
|
}
|
|
else if (scan_object.scan_status == 3) {
|
|
bg_color = 'bg-soft-danger';
|
|
status_badge = '<span class="float-end badge bg-danger">Aborted</span>';
|
|
}
|
|
else if (scan_object.scan_status == 2){
|
|
bg_color = 'bg-soft-success';
|
|
status_badge = '<span class="float-end badge bg-success">Successful</span>';
|
|
}
|
|
|
|
$('#recently_completed_scans').append(`<a href="/scan/detail/${scan_object.id}" class="text-reset item-hovered d-block p-2 ${bg_color}">
|
|
<p class="text-dark mb-0">${scan_object.domain.name}${status_badge}</p>
|
|
<h5><span class="badge badge-soft-primary badge-scan_engine-type">${scan_object.scan_type.engine_name}</span></h5>
|
|
<h4 class="text-center">
|
|
<span class="badge-subdomain-count badge badge-soft-info waves-effect waves-light"> ${scan_object.subdomain_count} </span>
|
|
<span class="badge-endpoint-count badge badge-soft-primary waves-effect waves-light"> ${scan_object.endpoint_count} </span>
|
|
<span class="badge-vuln-count badge badge-soft-danger waves-effect waves-light"> ${scan_object.vulnerability_count} </span></h4>
|
|
</a>`);
|
|
}
|
|
}
|
|
else{
|
|
$('#recently_completed_scans').html(`<div class="alert alert-info" role="alert">No scans has been recently completed.</div>`);
|
|
}
|
|
|
|
if (data['pending'].length > 0){
|
|
$('#pending_scan_count').html(`${data['pending'].length} Scans Pending`)
|
|
for (var scan in data['pending']) {
|
|
scan_object = data['pending'][scan];
|
|
$('#upcoming_scans').append(`<a class="text-reset item-hovered d-block p-2 bg-soft-warning">
|
|
<p class="text-dark mb-0">${scan_object.domain.name}</p>
|
|
<h5><span class="badge badge-soft-primary badge-scan_engine-type">${scan_object.scan_type.engine_name}</span></h5>
|
|
</a>`);
|
|
}
|
|
}
|
|
else{
|
|
$('#upcoming_scans').html(`<div class="alert alert-info" role="alert">No upcoming scans on Queue.</div>`);
|
|
}
|
|
}).done(function() {
|
|
tippy('.badge-subdomain-count', {
|
|
content: 'Subdomains',
|
|
});
|
|
tippy('.badge-endpoint-count', {
|
|
content: 'Endpoints',
|
|
});
|
|
tippy('.badge-vuln-count', {
|
|
content: 'Vulnerabilities',
|
|
});
|
|
tippy('.badge-scan_engine-type', {
|
|
content: 'Scan Engine',
|
|
});
|
|
if(reload){
|
|
Snackbar.show({
|
|
text: 'Scan Status Reloaded.',
|
|
pos: 'top-right',
|
|
actionTextColor: '#42A5F5',
|
|
duration: 1500
|
|
});
|
|
}
|
|
});
|
|
|
|
}
|