' . gettext("PASSED") . '';
$replacements[1] = '' . gettext("FAILED") . '';
$replacements[2] = '' . gettext("Warning") . '';
ksort($patterns);
ksort($replacements);
return preg_replace($patterns, $replacements, $string);
}
$targetdev = basename($_POST['device']);
if (!file_exists('/dev/' . $targetdev)) {
echo gettext("Device does not exist, bailing.");
return;
}
$specplatform = system_identify_specific_platform();
if (($specplatform['name'] == "Hyper-V") || ($specplatform['name'] == "uFW")) {
echo sprintf(gettext("S.M.A.R.T. is not supported on this system (%s)."), $specplatform['descr']);
include("foot.inc");
exit;
}
switch ($action) {
// Testing devices
case 'test':
{
$test = $_POST['testType'];
if (!in_array($test, $valid_test_types)) {
echo gettext("Invalid test type, bailing.");
return;
}
$output = add_colors(shell_exec($smartctl . " -t " . escapeshellarg($test) . " /dev/" . escapeshellarg($targetdev)));
?>
=gettext('Test Results')?>
=gettext('Information')?>
addClass('btn-primary');
$btnview->setAttribute('id');
$section = new Form_Section('Information');
$section->addInput(new Form_Input(
'action',
null,
'hidden',
'info'
))->setAttribute('id');
$group = new Form_Group('Info type');
$group->add(new Form_Checkbox(
'type',
null,
'Info',
false,
'i'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'type',
null,
'Health',
true,
'H'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'type',
null,
'S.M.A.R.T. Capabilities',
false,
'c'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'type',
null,
'Attributes',
false,
'A'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'type',
null,
'All',
false,
'a'
))->displayAsRadio();
$section->add($group);
$section->addInput(new Form_Select(
'device',
'Device: /dev/',
false,
array_combine($devs, $devs)
))->setAttribute('id');
$section->addInput(new Form_StaticText(
'',
$btnview
));
$form->add($section);
print($form);
// Tests
$form = new Form(false);
$btntest = new Form_Button(
'submit',
'Test',
null,
'fa-wrench'
);
$btntest->addClass('btn-primary');
$btntest->setAttribute('id');
$section = new Form_Section('Perform self-tests');
$section->addInput(new Form_Input(
'action',
null,
'hidden',
'test'
))->setAttribute('id');
$group = new Form_Group('Test type');
$group->add(new Form_Checkbox(
'testType',
null,
'Offline',
false,
'offline'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'testType',
null,
'Short',
true,
'short'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'testType',
null,
'Long',
false,
'long'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'testType',
null,
'Conveyance',
false,
'conveyance'
))->displayAsRadio();
$group->setHelp('Select "Conveyance" for ATA disks only.');
$section->add($group);
$section->addInput(new Form_Select(
'device',
'Device: /dev/',
false,
array_combine($devs, $devs)
))->setAttribute('id');
$section->addInput(new Form_StaticText(
'',
$btntest
));
$form->add($section);
print($form);
// Logs
$form = new Form(false);
$btnview = new Form_Button(
'submit',
'View',
null,
'fa-file-text-o'
);
$btnview->addClass('btn-primary');
$btnview->setAttribute('id');
$section = new Form_Section('View Logs');
$section->addInput(new Form_Input(
'action',
null,
'hidden',
'logs'
))->setAttribute('id');
$group = new Form_Group('Log type');
$group->add(new Form_Checkbox(
'type',
null,
'Error',
true,
'error'
))->displayAsRadio();
$group->add(new Form_Checkbox(
'type',
null,
'Self-test',
false,
'selftest'
))->displayAsRadio();
$section->add($group);
$section->addInput(new Form_Select(
'device',
'Device: /dev/',
false,
array_combine($devs, $devs)
))->setAttribute('id');
$section->addInput(new Form_StaticText(
'',
$btnview
));
$form->add($section);
print($form);
// Abort
$btnabort = new Form_Button(
'submit',
'Abort',
null,
'fa-times'
);
$btnabort->addClass('btn-danger')->setAttribute('id');
$form = new Form(false);
$section = new Form_Section('Abort');
$section->addInput(new Form_Input(
'action',
null,
'hidden',
'abort'
))->setAttribute('id');
$section->addInput(new Form_Select(
'device',
'Device: /dev/',
false,
array_combine($devs, $devs)
))->setAttribute('id');
$section->addInput(new Form_StaticText(
'',
$btnabort
));
$form->add($section);
print($form);
break;
}
}
include("foot.inc");