<?php
	$upload_max_filesize = ini_get("upload_max_filesize");
	$post_max_size = ini_get("post_max_size");
	$upload_max_filesize = str_replace( "k", "000", $upload_max_filesize );
	$upload_max_filesize = str_replace( "M", "000000", $upload_max_filesize );
	$post_max_size = str_replace( "k", "000", $post_max_size );
	$post_max_size = str_replace( "M", "000000", $post_max_size );
	
	//Dimensione minima: 12MB
	$alerts = '';
	
	if( $upload_max_filesize < 16000000 ){
		$alerts .= "Devi modificare il tuo <b>php.ini</b> impostando <b>upload_max_filesize</b> almeno a 16MB altrimenti non riuscirai a caricare l&rsquo;aggiornamento.<br>";
	}
	
	if( $post_max_size < 16000000 ){
		$alerts .= "Devi modificare il tuo <b>php.ini</b> impostando <b>post_max_size</b> almeno a 16MB altrimenti non riuscirai a caricare l&rsquo;aggiornamento.<br>";
	}
	
	if( strlen($alerts) > 0 ){
		echo "<div class='alert alert-warning'>".$alerts."</div>\n";
	}
	


	//UPLOAD MODULO
	if( get_var("Attiva aggiornamenti") ){
		echo "<br><br>\n";
	
		echo "<form action=\"".$rootdir."/controller.php?id_module=".$id_module."\" method=\"post\" enctype=\"multipart/form-data\" class='form-inline' id='new-module'>\n";
		echo "	<input type='hidden' name='op' value='upload'>\n";
	
		echo "	<label>Carica un </label>\n";
		echo "	<select class=\"form-control\" name=\"type\">\n";
		echo "		<option value=\"update\">Aggiornamento Versione</option>\n";
		echo "		<option value=\"new\">Nuovo/Aggiorna Modulo</option>\n";
		echo "	</select>\n";
		echo "	<br><br>\n\n";
	
		echo "	<label><input type=\"file\" name=\"blob\"></label><button type='button' class='btn btn-app' onclick=\"if( confirm('Avviare la procedura?') ){ $('#new-module').submit(); }\"><i class='fa fa-upload'></i> Carica...</button>\n";
		echo "</form><br>\n\n";
	}


	/*
		Elenco moduli installati
	*/
	$query = "SELECT * FROM zz_modules WHERE level=0 ORDER BY `order` ASC";
	$rs = $dbo->fetchArray($query);
	
	
	
	echo "<div class='row'>\n";
	echo "	<div class='col-md-12 col-lg-6'>\n";
	
	echo "		<h3>Moduli installati</h3>\n";
	
	echo "		<table class='table table-hover table-bordered table-condensed'>\n";
	echo "		<tr><th>Nome</th>\n";
	echo "		<th width='50'>Versione</th>\n";
	echo "		<th width='30'>Stato</th>\n";
	echo "		<th width='30'>Compatibilit&agrave;</th>\n";
	echo "		<th width='20'></th></tr>\n";
	
	$osm_version = getVersion();

	for( $m=0; $m<sizeof($rs); $m++ ){
		//Prima di cambiare modulo verifico se ci sono sottomoduli
		if( $m > 0 && $rs[$m]['id'] != $rs[$m-1]['id'] ){
			$query2 = "SELECT * FROM zz_modules WHERE level=1 AND parent='".$rs[$m-1]['id']."' ORDER BY `order` ASC";
			$rs2 = $dbo->fetchArray($query2);

			for( $m2=0; $m2<sizeof($rs2); $m2++ ){
				$compatibility = explode( ',', $rs2[$m2]['compatibility'] );

				/*
					Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno
				*/
				for( $i=0; $i<sizeof($compatibility); $i++ ){
					if( preg_match( "/".$compatibility[$i]."/", $osm_version ) ){
						$compatible = "		<i class='fa fa-check-circle text-success' data-toggle='tooltip' title='Compatibile'></i>";
						$class = "success";
					}
			
					else{
						$compatible = "		<i class='fa fa-warning text-danger' data-toggle='tooltip' title='NON compabitile! Questo modulo è compatibile solo con queste versioni: ".$rs2[$m2]['compatibility']."'></i>";
						$class = "danger";
					}
				}
				
				
				
				//STATO
				if( $rs2[$m2]['enabled'] ){
					//Tooltip solo se non è il modulo "Aggiornamenti"
					if( $rs2[$m2]['name']!='Aggiornamenti' ){
						$stato = "		<i class='fa fa-cog fa-spin text-success' data-toggle='tooltip' title=\"Abilitato. Clicca per disabilitarlo...\"></i>";
					}
			
					else{
						$stato = "		<i class='fa fa-cog fa-spin text-success' data-toggle='tooltip' title=\"Abilitato\"></i>";
					}
				}
		
				else{
					$stato = "		<i class='fa fa-cog text-warning' data-toggle='tooltip' title=\"Non abilitato\"></i>";
			
					if( $class != 'danger' ){
						$class = 'warning';
					}
				}
				
			

				//NOME
				echo "		<tr class='".$class."'><td><small>&nbsp;&nbsp;- ".$rs2[$m2]['name']."</small></td>\n";
				echo "		<td align='right'>".$rs2[$m2]['version']."</td>\n";
		
		
		
		

				//Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
				if( $rs2[$m2]['name'] != 'Aggiornamenti' ){
					if( $rs2[$m2]['enabled'] ){
						$stato = "		<a href='javascript:;' onclick=\"if( confirm('Disabilitare questo modulo?') ){ $.post( '".$rootdir."/editor.php?id_module=".$id_module."', { op: 'disable', id: '".$rs2[$m2]['id']."' }, function(response){ location.href='".$rootdir."/controller.php?id_module=".$id_module."'; }); }\">".$stato."</a>\n";
					}
			
					else{
						$stato = "		<a href='javascript:;' onclick=\"if( confirm('Abilitare questo modulo?') ){ $.post( '".$rootdir."/editor.php?id_module=".$id_module."', { op: 'enable', id: '".$rs2[$m2]['id']."' }, function(response){ location.href='".$rootdir."/controller.php?id_module=".$id_module."'; }); }\"\">".$stato."</a>\n";
					}
				}
		
				echo "		<td align='center'>".$stato."</td>\n";	



				//COMPATIBILITA'
				echo "		<td align='center'>".$compatible."</td>\n";
		
		
		
				//Possibilità di disinstallare solo se non di default
				echo "		<td>\n";
		
				if( !$rs2[$m2]['default'] ){
					echo "		<a href=\"javascript:;\" data-toggle='tooltip' title=\"Disinstalla...\" onclick=\"if( confirm('Vuoi disinstallare questo modulo? Tutti i dati salvati andranno persi!') ){ if( confirm('Sei veramente sicuro??') ){ $.post( '".$rootdir."/editor.php?id_module=".$id_module."', { op: 'uninstall', id: '".$rs2[$m2]['id']."' }, function(response){ location.href='".$rootdir."/controller.php?id_module=".$id_module."'; }); } }\"><i class='fa fa-trash-o'></i></a>";
				}
		
				echo "		</td></tr>\n";
			}
		}
	
		
		
		$compatibility = explode( ',', $rs[$m]['compatibility'] );

		/*
			Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno
		*/
		for( $i=0; $i<sizeof($compatibility); $i++ ){
			if( preg_match( "/".$compatibility[$i]."/", $osm_version ) ){
				$compatible = "		<i class='fa fa-check-circle text-success' data-toggle='tooltip' title='Compatibile'></i>";
				$class = "success";
			}
			
			else{
				$compatible = "		<i class='fa fa-warning text-danger' data-toggle='tooltip' title='NON compabitile! Questo modulo è compatibile solo con queste versioni: ".$rs[$m]['compatibility']."'></i>";
				$class = "danger";
			}
		}
		
		
		//STATO
		if( $rs[$m]['enabled'] ){
			//Tooltip solo se non è il modulo "Aggiornamenti"
			if( $rs[$m]['name']!='Aggiornamenti' ){
				$stato = "		<i class='fa fa-cog fa-spin text-success' data-toggle='tooltip' title=\"Abilitato. Clicca per disabilitarlo...\"></i>";
			}
			
			else{
				$stato = "		<i class='fa fa-cog fa-spin text-success' data-toggle='tooltip' title=\"Abilitato\"></i>";
			}
		}
		
		else{
			$stato = "		<i class='fa fa-cog text-warning' data-toggle='tooltip' title=\"Non abilitato\"></i>";
			
			if( $class != 'danger' ){
				$class = 'warning';
			}
		}
			

		//NOME
		echo "		<tr class='".$class."'><td>".$rs[$m]['name']."</td>\n";
		echo "		<td align='right'>".$rs[$m]['version']."</td>\n";
		
		
		
		

		//Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
		if( $rs[$m]['name'] != 'Aggiornamenti' ){
			if( $rs[$m]['enabled'] ){
				$stato = "		<a href='javascript:;' onclick=\"if( confirm('Disabilitare questo modulo?') ){ $.post( '".$rootdir."/editor.php?id_module=".$id_module."', { op: 'disable', id: '".$rs[$m]['id']."' }, function(response){ location.href='".$rootdir."/controller.php?id_module=".$id_module."'; }); }\">".$stato."</a>\n";
			}
			
			else{
				$stato = "		<a href='javascript:;' onclick=\"if( confirm('Abilitare questo modulo?') ){ $.post( '".$rootdir."/editor.php?id_module=".$id_module."', { op: 'enable', id: '".$rs[$m]['id']."' }, function(response){ location.href='".$rootdir."/controller.php?id_module=".$id_module."'; }); }\"\">".$stato."</a>\n";
			}
		}
		
		echo "		<td align='center'>".$stato."</td>\n";	



		//COMPATIBILITA'
		echo "		<td align='center'>".$compatible."</td>\n";
		
		
		
		//Possibilità di disinstallare solo se non di default
		echo "		<td>\n";
		
		if( !$rs[$m]['default'] ){
			echo "		<a href=\"javascript:;\" data-toggle='tooltip' title=\"Disinstalla...\" onclick=\"if( confirm('Vuoi disinstallare questo modulo? Tutti i dati salvati andranno persi!') ){ if( confirm('Sei veramente sicuro??') ){ $.post( '".$rootdir."/editor.php?id_module=".$id_module."', { op: 'uninstall', id: '".$rs[$m]['id']."' }, function(response){ location.href='".$rootdir."/controller.php?id_module=".$id_module."'; }); } }\"><i class='fa fa-trash-o'></i></a>";
		}
		
		echo "		</td></tr>\n";
	}
	
	echo "		</table>\n";
	echo "	</div>\n";
	
	
	
	
	
	
	
?>
