@@ -195,6 +195,25 @@ function is_upgraded_ZFS_pool($pool_name)
195195
196196String.prototype.celsius = function(){return Math.round((parseInt(this)-32)*5/9).toString();}
197197
198+ function isReservedPoolName(poolname, reserved) {
199+ var name = (poolname || '').trim().toLowerCase();
200+ var reservedPrefixes = ['mirror', 'raidz', 'draid', 'spare'];
201+
202+ if (!name) return false;
203+
204+ return reserved.some(function(entry) {
205+ var reservedName = (entry || '').toLowerCase();
206+ if (!reservedName) return false;
207+ if (reservedName.endsWith('*')) {
208+ return name.startsWith(reservedName.slice(0, -1));
209+ }
210+ if (reservedPrefixes.includes(reservedName)) {
211+ return name === reservedName || name.startsWith(reservedName);
212+ }
213+ return name === reservedName;
214+ });
215+ }
216+
198217function setFloor() {
199218 if ($('#shareFloor').length==0) return;
200219 const fsSize = {<?=fsSize()?>};
@@ -711,8 +730,9 @@ function validate(poolname) {
711730 var reserved = [<?=makeList(explode(',', _var($var, 'reservedNames')))?>];
712731 var shares = [<?=makeList(array_map('sharename', glob('boot/config/shares/*.cfg', GLOB_NOSORT)))?>];
713732 var pools = [<?=makeList($pools)?>];
733+ poolname = (poolname || '').trim();
714734 if (!poolname.trim()) return false;
715- if (reserved.includes (poolname)) {
735+ if (isReservedPoolName (poolname, reserved )) {
716736 swal({title:"_(Invalid pool name)_",text:"_(Do not use reserved names)_",type:'error',html:true,confirmButtonText:"_(Ok)_"});
717737 return false;
718738 } else if (shares.includes(poolname)) {
@@ -1035,6 +1055,7 @@ _(Critical disk utilization threshold)_ (%):
10351055
10361056<?if (fsType('btrfs')):?>
10371057<?if (_var($disk,'fsStatus')=="Mounted"):?>
1058+ <?if (isPool($name)):?>
10381059<div id="poolsummary" class="title nocontrol">
10391060 <span class="left">
10401061 <i class="title fa fa-hdd-o"></i> _(Pool Status)_
@@ -1059,6 +1080,7 @@ if (!empty($poolstatus['pools'][$poolName])) {
10591080?>
10601081_(pool status)_:
10611082: <span class="<?=$statusClass?>"><?=$status?><?=$statusLink?></span>
1083+ <?endif;?>
10621084
10631085</form>
10641086
@@ -1398,6 +1420,7 @@ _(btrfs check status)_:
13981420<?endif;?>
13991421<?if (fsType('zfs') && !isSubpool($name)):?>
14001422<?if (_var($disk,'fsStatus')=="Mounted"):?>
1423+ <?if (isPool($name)):?>
14011424<div id="poolsummary" class="title nocontrol">
14021425 <span class="left">
14031426 <i class="title fa fa-info-circle"></i>_(Pool Status Summary)_
@@ -1422,6 +1445,7 @@ if (!empty($poolstatus['pools'][$poolName])) {
14221445?>
14231446_(pool status)_:
14241447: <span class="<?=$statusClass?>"><?=$status?><?=$statusLink?></span>
1448+ <?endif;?>
14251449
14261450</form>
14271451<?endif;?>
0 commit comments