mirror of
https://github.com/unraid/webgui.git
synced 2026-01-06 01:29:54 -06:00
New device spin up/down logic
Based on implementation for beta 23
This commit is contained in:
@@ -23,16 +23,20 @@ function toggle_state(device,name,action) {
|
|||||||
if (name) {
|
if (name) {
|
||||||
var group = name.replace(/(\d+|\*)$/,'');
|
var group = name.replace(/(\d+|\*)$/,'');
|
||||||
if (name.slice(-1)!='*') {
|
if (name.slice(-1)!='*') {
|
||||||
|
// single device
|
||||||
$('#dev-'+name.no_tilde()).removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
$('#dev-'+name.no_tilde()).removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
||||||
} else {
|
} else {
|
||||||
if (group=='array') {
|
if (group=='disk') {
|
||||||
|
// array devices
|
||||||
$('[id^="dev-parity"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
$('[id^="dev-parity"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
||||||
$('[id^="dev-disk"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
$('[id^="dev-disk"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
||||||
} else {
|
} else {
|
||||||
|
// pool devices
|
||||||
$('[id^="dev-'+group.master()+'"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
$('[id^="dev-'+group.master()+'"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (device!='Clear') {
|
} else if (device!='Clear') {
|
||||||
|
// all devices
|
||||||
$('[id^="dev-"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
$('[id^="dev-"]').removeClass('fa-circle fa-square fa-warning fa-times').addClass('fa-refresh fa-spin');
|
||||||
button = '[id^=button-]';
|
button = '[id^=button-]';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ function emcmd($cmd) {
|
|||||||
}
|
}
|
||||||
switch ($device) {
|
switch ($device) {
|
||||||
case 'New':
|
case 'New':
|
||||||
|
// unassigned device
|
||||||
emcmd("cmdSpin{$action}={$name}");
|
emcmd("cmdSpin{$action}={$name}");
|
||||||
break;
|
break;
|
||||||
case 'Clear':
|
case 'Clear':
|
||||||
@@ -31,7 +32,7 @@ case 'Clear':
|
|||||||
default:
|
default:
|
||||||
if (!$name) {
|
if (!$name) {
|
||||||
// spin up/down all devices
|
// spin up/down all devices
|
||||||
emcmd("cmdSpin{$device}All=true");
|
emcmd("cmdSpin{$device}All=Apply");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (substr($name,-1) != '*') {
|
if (substr($name,-1) != '*') {
|
||||||
@@ -40,14 +41,8 @@ default:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// spin up/down group of devices
|
// spin up/down group of devices
|
||||||
$disks = (array)@parse_ini_file('state/disks.ini',true);
|
$name = substr($name,0,-1); // remove trailing '*' from name
|
||||||
// remove '*' from name
|
emcmd("cmdSpin{$action}All=Apply&poolName={$name}");
|
||||||
$name = substr($name,0,-1);
|
|
||||||
foreach ($disks as $disk) {
|
|
||||||
if (_var($disk,'status') != 'DISK_OK') continue;
|
|
||||||
$array = ($name=='array' && in_array(_var($disk,'type'),['Parity','Data']));
|
|
||||||
if ($array || explode($_tilde_,prefix(_var($disk,'name')))[0]==$name) emcmd("cmdSpin{$action}="._var($disk,'name'));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ while (true) {
|
|||||||
} else {
|
} else {
|
||||||
foreach ($parity as $disk) if ($disk['status']!='DISK_NP_DSBL') $echo[0] .= array_online($disk);
|
foreach ($parity as $disk) if ($disk['status']!='DISK_NP_DSBL') $echo[0] .= array_online($disk);
|
||||||
foreach ($data as $disk) $echo[0] .= array_online($disk);
|
foreach ($data as $disk) $echo[0] .= array_online($disk);
|
||||||
if (_var($display,'total') && _var($var,'mdNumDisks',0)>1) $echo[0] .= show_totals(sprintf(_('Array of %s devices'),my_word($var['mdNumDisks'])),true,'array*');
|
if (_var($display,'total') && _var($var,'mdNumDisks',0)>1) $echo[0] .= show_totals(sprintf(_('Array of %s devices'),my_word($var['mdNumDisks'])),true,'disk*');
|
||||||
}
|
}
|
||||||
|
|
||||||
$echo[1] = "boot_device\n";
|
$echo[1] = "boot_device\n";
|
||||||
|
|||||||
Reference in New Issue
Block a user