Current File : /home/inlingua/www/decay_sym/root/var/softaculous/apps/clamav/themes/enduser/clamav_theme.php |
<?php
//////////////////////////////////////////////////////////////
//===========================================================
// WEBUZO CONTROL PANEL
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit
// Date: 10th Jan 2009
// Time: 21:00 hrs
// Site: https://webuzo.com/ (WEBUZO)
// ----------------------------------------------------------
// Please Read the Terms of Use at https://webuzo.com/terms
// ----------------------------------------------------------
//===========================================================
// (c) Softaculous Ltd.
//===========================================================
//////////////////////////////////////////////////////////////
if(!defined('SOFTACULOUS')){
die('Hacking Attempt');
}
function clamav_theme(){
global $globals, $SESS, $WE, $done, $log_path, $log, $clamav_conf;
echo '
<div class="card soft-card p-4 col-12">
<div class="sai_main_head mb-5">
<img src="'.CLAMAV_ASSETS.'clamav.png" alt="" style="width:48px;aspect-ratio: 1 / 1;" class="webu_head_img me-2"/>
<h5 class="d-inline-block">'.__('ClamAV Virus Scanner').'</h5>
</div>
<div class="row">
<div class="col-12 col-md-6 mb-3">
<label class="sai_head">
'.__('Start a New Scan').'
</label>
<br>';
$lang['scan_web_space'] = __('Scan Public Web Space');
$lang['entire_home_dir'] = __('Scan Entire Home Directory');
$lang['scan_public_ftp'] = __('Scan Public FTP Space');
$lang['scan_mail'] = __('Scan Mail');
if(!empty($clamav_conf)){
foreach($clamav_conf as $conf => $conf_val){
if(!empty($conf_val)){
echo '<input type="radio" id="'.$conf.'" name="scan_option" value="'.$conf.'" class="me-1 scan_option">
<label for="'.$conf.'" class="sai_head">'.$lang[$conf].'</label><br>';
}
}
}
// Check all value of array is empty or not
if(!array_filter($clamav_conf)){
echo __('<li>ClamAV Scan not configured please contact admin</li>');
}else{
echo '
<button type="submit" name="scan_now" id="scan_now" value="scan_now" class="flat-butt" >'.__('Scan Now').'</button>';
}
echo'
</div>
</div>
</div><br>
<div class="card soft-card p-4 col-12" id="scanner_div" style="display:none">
<div class="soft-smbox">
<div class="sai_main_head text-center">
<i class="fas fa-cog me-2"></i>'.__('Scanner').'
</div>
<hr>
<div class="sai_form">
<div class="scan_prog_div" style="display:none">
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
<span class="loading-txt">Loading...</span>
<label class="sai_head">'.__('Scanning in Progress').'</label>
<br/><br/>
</div>
<p class="fw-bold">Scanning: <span class="fw-normal" id="curr_scanned_file"></span></p>
<div class="row g-3 align-items-center">
<div class="col-auto">
<label for="file_count" class="sai_head">'.__('Scanned files').'</label>
</div>
<div class="col-auto">
<input type="number" class="form-control" disabled id="scanned_files">
</div>
</div>
<br/>
<div class="row g-3 align-items-center">
<div class="col-auto">
<label for="data_size" class="sai_head">'.__('Data scanned').'</label>
</div>
<div class="col-auto">
<div class="input-group mb-3">
<input type="text" class="form-control" disabled id="data_scanned" aria-describedby="data-addon">
<span class="input-group-text" id="data-addon">MB</span>
</div>
</div>
</div>
<br/>
<div class="row g-3 align-items-center">
<div class="col-auto">
<label for="data_size" class="sai_head">'.__('Data read').'</label>
</div>
<div class="col-auto">
<div class="input-group mb-3">
<input type="text" class="form-control" disabled id="data_read" aria-describedby="data-addon">
<span class="input-group-text" id="data-addon">MB</span>
</div>
</div>
</div>
<br/>
<div class="row g-3 align-items-center">
<div class="col-auto">
<label for="file_count" class="sai_head">'.__('Infected files').'</label>
</div>
<div class="col-auto">
<input type="number" class="form-control" disabled id="infected_files">
</div>
</div>
<br/>
<label for="infected_file_list" class="sai_head">'.__('Infected Files List').'</label>
<textarea class="form-control" disabled id="infected_file_list"></textarea>
<br/>
<div class="row g-3 align-items-center">
<div class="col-auto">
<label for="file_count" class="sai_head">'.__('Scan Time').'</label>
</div>
<div class="col-auto">
<input type="text" class="form-control" disabled id="scan_time">
</div>
</div>
<br/>
<div class="row g-3 align-items-center">
<div class="col-auto">
<input type="button" class="flat-butt" value="'.__('Delete Infected Files').'" data-delete_infected=1 onclick="delete_infected(this)" id="delete_infected" disabled>
</div>
</div>
<br/>
</div>
</div>
</div>';
echo '<script>
$(document).ready(function(){
$("#scan_now").on("click", function(){
// Remove pervious values
$("#curr_scanned_file").html("");
$("#infected_file_list").text("");
$("#delete_infected").attr("disabled" , true);
$("input[type=text]").each(function() {
$(this).val("");
});
$("input[type=number]").each(function() {
$(this).val("");
});
var scan_option = $(\'input[name="scan_option"]:checked\').val();
if(typeof scan_option === "undefined"){
return false;
}
$(this).attr("disabled" , true);
$("#scanner_div").fadeIn();
$(".scan_prog_div").show();
$.ajax({
type: "POST",
data: {
"scan_option":scan_option,
"scan_now":"1"
},
url: "'.$globals['request_url'].'",
success: function(){
var timer = setInterval(read_log, 1000);
infected_list = [];
function read_log(){
$.ajax({
type: "POST",
data: {
"read_log":"1"
},
url: "'.$globals['request_url'].'&api=json",
success: function(resp){
function getKey(data1) {
for (var prop in data1)
return prop;
}
clear_cond = "End Date";
if(clear_cond in resp.log){
// Update form
$.each(resp.log, function(index, value){
if(index == "Scanned files"){
$("#scanned_files").val(value);
}
if(index == "Data scanned"){
$("#data_scanned").val(value);
}
if(index == "Data read"){
$("#data_read").val(value);
}
if(index == "Infected files"){
$("#infected_files").val(value);
}
if(index == "Time"){
$("#scan_time").val(value);
}
});
//Update infected list
list = "";
infected_list = infected_list.filter(
function(a){if (!this[a]) {this[a] = 1; return a;}},
{}
);
$.each(infected_list, function(key, value){
list += value+"\n";
});
$("#infected_file_list").text(list);
// Clear Interval
clearInterval(timer);
if(!empty($("#infected_files").val())){
$("#delete_infected").attr("disabled", false);
}
$("#scan_now").attr("disabled" , false);
$(".scan_prog_div").hide();
$.post("'.$globals['request_url'].'&api=json", {kill_cpulimit:1},
function(data, status){
return;
});
}else{
$.each(resp.log, function(index, value){
if(index == "Scanned files"){
return;
}
$("#curr_scanned_file").html(index);
if(value.indexOf("FOUND") != -1){
infected_list.push(index);
}
});
}
}
});
}
}
});
});
});
function delete_infected(el){
var jEle = $(el);
var a = show_message_r("'.__js('Warning').'", "'.__js('$0 Are you sure you want to delete the infected files? $1$2 Note: It is recommended to take a backup of the infected files in case they are important.', ['<b>', '</b>', '<br>']).'");
a.alert = "alert-warning";
a.confirm.push(function(){
var d = jEle.data();
submitit(d,{
done_reload: window.location
});
});
show_message(a);
}
</script>';
}