Files
webgui/plugins/dynamix/NewConfig.page
2020-03-22 11:11:18 +01:00

94 lines
3.4 KiB
Plaintext

Menu="UNRAID-OS"
Title="New Config"
Icon="icon-config"
Tag="cog"
---
<?PHP
/* Copyright 2005-2020, Lime Technology
* Copyright 2012-2020, Bergware International.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*/
?>
<?
$newarray = $var['mdState']=='NEW_ARRAY';
$disabled = $var['fsState']=="Started";
$width = [166,300];
if ($newarray) {
@unlink('/boot/config/smart-one.cfg');
@unlink('/boot/config/smart-all.cfg');
@unlink('/boot/config/plugins/dynamix/monitor.ini');
foreach ($pools as $pool) @unlink("/var/tmp/$pool.log.tmp");
}
?>
<style>
span.indent{display:inline-block;width:240px;margin-top:30px;}
</style>
<script>
function prepareNewConfig(form) {
for (var i=1,item; item=form.preset.options[i]; i++) {
switch (item.value) {
case 'parity': if (item.selected) form.preserveParity.disabled = false; break;
case 'data' : if (item.selected) form.preserveData.disabled = false; break;
<?foreach ($pools as $pool):?>
case '<?=$pool?>': if (item.selected) form.preserve<?=ucfirst($pool)?>.disabled = false; break;
<?endforeach;?>
}
}
form.preset.disabled = true;
}
$(function() {
$('#s1').dropdownchecklist({emptyText:'_(None)_', width:<?=$width[0]?>, firstItemChecksAll:true, explicitClose:'..._(close)_'});
<?if ($disabled):?>
$('#s1').dropdownchecklist('disable');
<?endif;?>
});
</script>
:plug4
This is a utility to reset the array disk configuration so that all disks appear as "New" disks, as
if it were a fresh new server.
This is useful when you have added or removed multiple drives and wish to rebuild parity based on
the new configuration.
Use the *'Preserve current assignments'* selection to populate the desired disk slots ***after*** the array has been reset. By default **no** disk slots are populated.
**DO NOT USE THIS UTILITY THINKING IT WILL REBUILD A FAILED DRIVE** - it will have the opposite
effect of making it ***impossible*** to rebuild an existing failed drive - you have been warned!
:end
<hr>
<form name="newConfig" method="POST" action="/update.htm" target="progressFrame" onsubmit="prepareNewConfig(this)">
<input type="hidden" name="preserveParity" value="yes" disabled>
<input type="hidden" name="preserveData" value="yes" disabled>
<?foreach ($pools as $pool):?>
<input type="hidden" name="preserve<?=ucfirst($pool)?>" value="yes" disabled>
<?endforeach;?>
<span class="indent">_(Preserve current assignments)_:</span>
<select id="s1" name="preset" multiple="multiple" style="display:none">
<option value=''>_(All)_</option>
<?=mk_option_check(0,'parity',_('Parity slots'))?>
<?=mk_option_check(0,'data',_('Data slots'))?>
<?foreach ($pools as $pool):?>
<?if ($disks[$pool]['devices']) echo mk_option_check(0,$pool,ucfirst($pool).' '._('slots'))?>
<?endforeach;?>
</select>
<br>
<span class="indent"><input type="submit" class="lock" name="cmdInit" value="_(Apply)_" disabled><input type="button" class="lock" value="_(Done)_" onclick="done()"></span>
<?if ($newarray):?>
_(Array has been **Reset**)_ (_(please configure)_)
<?elseif ($disabled):?>
_(Array must be **Stopped** to change)_
<?else:?>
<input type="checkbox" onClick="cmdInit.disabled=!this.checked"><small>_(Yes, I want to do this)_</small>
<?endif;?>
</form>