diff --git a/plugins/dynamix/ArrayOperation.page b/plugins/dynamix/ArrayOperation.page
index a419c3a24..868b19789 100644
--- a/plugins/dynamix/ArrayOperation.page
+++ b/plugins/dynamix/ArrayOperation.page
@@ -144,36 +144,42 @@ function getFileContent(event,form) {
reader.readAsDataURL(input.files[0]);
}
function prepareInput(form) {
- $(form).append('');
- if (form.input === undefined) {
- form.submit();
- return;
- }
- form.input.disabled = true;
- form.local.disabled = true;
- form.file.disabled = true;
- form.text.disabled = true;
- form.copy.disabled = true;
- if (form.text.value) {
- var valid = new RegExp('^[ -~]+$');
- if (valid.test(form.text.value)) {
- $(form).append('');
- form.submit();
+ $.post('/webGui/include/Report.php',{cmd:'state',pools:'=implode(',',$pools)?>'},function(state) {
+ if (state.length==0) {
+ $(form).append('');
+ if (form.input === undefined) {
+ form.submit();
+ return;
+ }
+ form.input.disabled = true;
+ form.local.disabled = true;
+ form.file.disabled = true;
+ form.text.disabled = true;
+ form.copy.disabled = true;
+ if (form.text.value) {
+ var valid = new RegExp('^[ -~]+$');
+ if (valid.test(form.text.value)) {
+ $(form).append('');
+ form.submit();
+ } else {
+ form.input.disabled = false;
+ form.local.disabled = false;
+ form.file.disabled = false;
+ form.text.disabled = false;
+ form.copy.disabled = false;
+ swal({title:"_(Printable Characters Only)_",text:"_(Use **ASCII** characters from space ' ' to tilde '~')_
_(Otherwise use the **keyfile** method for UTF8 input)_",html:true,type:'error',confirmButtonText:"_(Ok)_"});
+ }
+ return;
+ }
+ var data = {};
+ data['#file'] = 'unused';
+ data['#include'] = 'webGui/include/KeyUpload.php';
+ data['file'] = form.file.value;
+ $.post('/update.php',data,function(){form.submit();});
} else {
- form.input.disabled = false;
- form.local.disabled = false;
- form.file.disabled = false;
- form.text.disabled = false;
- form.copy.disabled = false;
- swal({title:"_(Printable Characters Only)_",text:"_(Use **ASCII** characters from space ' ' to tilde '~')_
_(Otherwise use the **keyfile** method for UTF8 input)_",html:true,type:'error',confirmButtonText:"_(Ok)_"});
+ swal({title:"_(Wrong Pool State)_",text:state,type:'error',html:true,confirmButtonText:"_(Ok)_"});
}
- return;
- }
- var data = {};
- data['#file'] = 'unused';
- data['#include'] = 'webGui/include/KeyUpload.php';
- data['file'] = form.file.value;
- $.post('/update.php',data,function(){form.submit();});
+ });
}
function parityWarning(form) {
if (form.md_invalidslot.checked) {
diff --git a/plugins/dynamix/include/Report.php b/plugins/dynamix/include/Report.php
index 76fb4e5cf..bfda0d188 100644
--- a/plugins/dynamix/include/Report.php
+++ b/plugins/dynamix/include/Report.php
@@ -1,6 +1,6 @@
-switch ($_POST['cmd']) {
+switch ($_POST['cmd']??'') {
case 'config':
$config = "/boot/config";
$files = ['disk:0','docker:1','domain:1','flash:0','ident:1','share:0']; // config files to check
@@ -37,5 +37,12 @@ case 'notice':
$notices = file_exists($tmp) ? file($tmp,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) : [];
echo implode("\n",array_map('unbundle',$notices));
break;
+case 'state':
+ $pools = explode(',',$_POST['pools']);
+ $disks = parse_ini_file('state/disks.ini',true);
+ $error = [];
+ foreach ($pools as $pool) if ($disks[$pool]['state'] != 'STOPPED') $error[] = $pool.' - '.$disks[$pool]['state'];
+ echo implode('
',$error);
+ break;
}
?>