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>';
	
}