Array Operation: hide "Clear Stats" button when disk I/O is visible

This commit is contained in:
bergware
2025-02-14 12:10:51 +01:00
parent a7a38ab5a1
commit fe35a8af40
2 changed files with 27 additions and 2 deletions

View File

@@ -48,6 +48,7 @@ function check_encryption() {
echo "<tr id='copy'><td></td><td class='gap'>",_('Retype passphrase'),":</td><td><input type='password' name='copy' maxlength='512' value='' onkeyup='selectInput(this.form)'></td></tr>";
echo "<tr id='file'><td></td><td class='gap'>",_('Keyfile'),":</td><td><input type='file' name='local' onchange='getFileContent(event,this.form)'></td></tr>";
}
function maintenance_mode() {
echo "<tr>";
echo "<td></td>";
@@ -55,6 +56,7 @@ function maintenance_mode() {
echo "<td><b>",_('Maintenance mode'),"</b> - ",_('if checked, Start array but do not mount disks'),"</td>";
echo "</tr>";
}
function status_indicator() {
global $var;
switch (_var($var,'mdColor')) {
@@ -65,15 +67,18 @@ function status_indicator() {
}
echo "<a class='info'><i class='fa fa-$orb orb $color-orb'></i><span>$help</span></a>";
}
function missing_cache() {
global $disks;
$missing = false;
foreach (cache_filter($disks) as $disk) $missing |= (strpos(_var($disk,'status'),'_MISSING')!==false);
return $missing;
}
function resync($d) {
return in_array($d,['P','Q']) ? 'Parity-Sync' : 'Data-Rebuild';
}
function print_error($error) {
return sprintf(_('Finding **%s** error'.($error==1?'':'s')),$error?:'0');
}
@@ -111,6 +116,7 @@ function toggle_state(device,name,action) {
devices.stop();
$.post('/webGui/include/ToggleState.php',{device:device,name:name,action:action},function(){setTimeout(function(){devices.start();},1000);if (button) $(button).prop('disabled',false);});
}
function display_diskio() {
if ($.cookie('diskio')===undefined) {
$('span.diskio').show(); $('span.number').hide();
@@ -118,20 +124,25 @@ function display_diskio() {
$('span.number').show(); $('span.diskio').hide();
}
}
function toggle_diskio(init) {
if (!init) {
if ($.cookie('diskio')===undefined) $.cookie('diskio','diskio',{expires:3650}); else $.removeCookie('diskio');
}
if ($.cookie('diskio')===undefined) {
$('i.toggle').removeClass('fa-list').addClass('fa-tachometer');
$('#clearstats').addClass('hidden');
} else {
$('i.toggle').removeClass('fa-tachometer').addClass('fa-list');
$('#clearstats').removeClass('hidden');
}
display_diskio();
}
function base64(str) {
return window.btoa(unescape(encodeURIComponent(str)));
}
function selectInput(form) {
<?if ($wrong && $keyfile):?>
form.input.value = 'file';
@@ -175,12 +186,14 @@ function selectInput(form) {
item.prop('disabled',!form.file.value);
}
}
function getFileContent(event,form) {
var input = event.target;
var reader = new FileReader();
reader.onload = function(){form.file.value=reader.result;selectInput(form);};
reader.readAsDataURL(input.files[0]);
}
function prepareInput(form,button) {
if (button) button.disabled = true;
$.post('/webGui/include/Report.php',{cmd:'state',pools:'<?=implode(',',$pools)?>'},function(state) {
@@ -220,6 +233,7 @@ function prepareInput(form,button) {
}
});
}
function parityWarning(form) {
if (form.md_invalidslot.checked) {
<?if (strpos(_var($disks['parity2'],'status'),'_NP')===false):?>
@@ -232,10 +246,12 @@ function parityWarning(form) {
}
swal({title:"_(Proceed to start)_",text:text,html:true,type:'warning',showCancelButton:true,confirmButtonText:"_(Proceed)_",cancelButtonText:"_(Cancel)_"},function(){prepareInput(form);});
}
function tab0() {
$.removeCookie('one');
$.cookie('tab','tab0');
}
function stopArray(form) {
$(form).append('<input type="hidden" name="cmdStop" value="Stop">');
<?if ($confirm['stop']):?>
@@ -244,6 +260,7 @@ function stopArray(form) {
form.submit();
<?endif;?>
}
function stopParity(form,text) {
$(form).append('<input type="hidden" name="cmdCheckCancel" value="">');
<?if ($confirm['stop']):?>
@@ -252,6 +269,7 @@ function stopParity(form,text) {
form.submit();
<?endif;?>
}
function pauseParity(form) {
$.post('/webGui/include/ParityControl.php',{action:'pause'},function(){
$('#pauseButton').val("_(Resume)_").prop('disabled',true).prop('onclick',null).off('click').click(function(){resumeParity(form);});
@@ -259,6 +277,7 @@ function pauseParity(form) {
form.submit();
});
}
function resumeParity(form) {
$.post('/webGui/include/ParityControl.php',{action:'resume'},function(){
$('#pauseButton').val("_(Pause)_").prop('disabled',true).prop('onclick',null).off('click').click(function(){pauseParity(form);});
@@ -266,9 +285,11 @@ function resumeParity(form) {
form.submit();
});
}
function parityHistory() {
openChanges("parity_history", "_(Parity Operation History)_", "phistory");
}
function shutdown_now(form,cmd) {
$(form).append('<input type="hidden" name="cmd" value="'+cmd+'">');
<?if ($confirm['down']):?>
@@ -281,9 +302,11 @@ function shutdown_now(form,cmd) {
form.submit();
<?endif;?>
}
function toggleApply(checked) {
$('input[name="#apply"]').prop('disabled',!checked);
}
<?if ($tabbed):?>
$('.tabs').append(ctrl);
if ($.cookie('tab')=='tab0') $('i.toggle').hide();
@@ -292,7 +315,6 @@ $('#tab'+$('input[name$="tabs"]').length).click(function(){tab0(); $('i.toggle')
$('div[class=title]:not(":last, .disable_diskio")').each(function(){$(this).append(ctrl);});
<?endif;?>
$('.tooltip_diskio').tooltipster({delay:100,trigger:'custom',triggerOpen:{mouseenter:true},triggerClose:{click:false,scroll:true,mouseleave:true}});
toggle_diskio(true);
<?if (_var($var,'fsState')=='Started'):?>
var mymonitor = new NchanSubscriber('/sub/mymonitor',{subscriber:'websocket'});
@@ -422,7 +444,9 @@ setTimeout(function(){paritymonitor.start();},5000);
$(function(){
var form = document.arrayOps;
if (form.input !== undefined) selectInput(form);
toggle_diskio(true);
});
function formatWarning(val) {
if (val==true) {
swal({
@@ -720,7 +744,7 @@ endswitch;
<table markdown="1" class="array_status noshift">
<tr><td></td><td><input type="button" id="spinup-button" onclick="$('[id^=button-]').prop('disabled',true);toggle_state('up')" value="_(Spin Up)_"><input type="button" id="spindown-button" onclick="$('[id^=button-]').prop('disabled',true);toggle_state('down')" value="_(Spin Down)_"></td>
<td>**_(Spin Up)_** _(will immediately spin up all disks)_.<br>**_(Spin Down)_** _(will immediately spin down all disks)_.</td></tr>
<tr><td></td><td><input type="button" value="_(Clear Stats)_" onclick="toggle_state('Clear')"></td><td>**_(Clear Stats)_** _(will immediately clear all disk statistics)_.</td></tr>
<tr id="clearstats" class="hidden"><td></td><td><input type="button" value="_(Clear Stats)_" onclick="toggle_state('Clear')"></td><td>**_(Clear Stats)_** _(will immediately clear all disk statistics)_.</td></tr>
<tr><td></td><td class="line" colspan="2"></td></tr>
</table>
<?if (_var($var,'shareUser')=='e' && $pool_devices):?>

View File

@@ -3,3 +3,4 @@ td.gap{padding-left:26px!important}
td.wrap{white-space:normal!important}
span#pass{display:none;margin-left:20px}
input[type=checkbox]{margin-left:0}
.hidden{display:none}