summaryrefslogblamecommitdiffstats
path: root/modules-available/statistics/pages/hints.inc.php
blob: 5c6acfbb12ff457d807b654dc4b8f659174a539f (plain) (tree)












































































                                                                                                                      
<?php

class SubPage
{

	public static function doPreprocess()
	{

	}

	public static function doRender()
	{
		self::showMemoryUpgrade();
		self::showMemorySlow();
		self::showUnusedSpace();
	}

	private static function showMemoryUpgrade()
	{
		$q = new HardwareQuery(HardwareInfo::MAINBOARD);
		$q->addLocalColumn('Memory Slot Occupied');
		$q->addGlobalColumn('Memory Slot Count');
		$q->addGlobalColumn('Memory Maximum Capacity');
		$q->addMachineColumn('clientip');
		$q->addMachineColumn('hostname');
		$q->addWhere(false, 'Memory Installed Capacity', '<', 8 * 1024 * 1024 * 1024);
		$list = [];
		foreach ($q->query() as $row) {
			if (HardwareParser::convertSize($row['Memory Installed Capacity'], 'M', false)
					>= HardwareParser::convertSize($row['Memory Maximum Capacity'], 'M', false)) {
				$row['size_class'] = 'danger';
				$list[] = $row;
			} elseif ($row['Memory Slot Occupied'] < $row['Memory Slot Count']) {
				$row['count_class'] = 'success';
				array_unshift($list, $row);
			} else {
				$list[] = $row;
			}
		}
		Render::addTemplate('hints-ram-upgrade', ['list' => $list]);
	}

	private static function showMemorySlow()
	{
		$q = new HardwareQuery(HardwareInfo::RAM_MODULE);
		$q->addLocalColumn('Locator');
		$q->addLocalColumn('Bank Locator');
		$q->addGlobalColumn('Form Factor');
		$q->addGlobalColumn('Type');
		$q->addGlobalColumn('Size');
		$q->addGlobalColumn('Manufacturer');
		$q->addLocalColumn('Serial Number');
		$q->addMachineColumn('clientip');
		$q->addMachineColumn('hostname');
		$q->addCompare(true, 'Speed', '>', false, 'Configured Memory Speed');
		$list = $q->query()->fetchAll();
		Render::addTemplate('hints-ram-underclocked', ['list' => $list]);
	}

	private static function showUnusedSpace()
	{
		$q = new HardwareQuery(HardwareInfo::HDD);
		$q->addWhere(false, 'unused', '>', 2000000000); // 2 GB
		$q->addMachineWhere('id44mb', '<', 20000); // 20 GB
		$id44 = $q->query()->fetchAll();
		$q = new HardwareQuery(HardwareInfo::HDD);
		$q->addWhere(false, 'unused', '>', 25000000000); // 25 GB
		$q->addMachineWhere('id44mb', '>', 20000); // 20 GB
		$q->addMachineWhere('id45mb', '<', 20000); // 20 GB
		$id45 = $q->query()->fetchAll();
		Render::addTemplate('hints-hdd-grow', [
			'id44' => $id44,
			'id45' => $id45,
		]);
	}

}