mirror of
https://github.com/unraid/webgui.git
synced 2026-03-09 04:21:27 -05:00
Merge pull request #636 from bergware/mutli-language
Multi cache pool support
This commit is contained in:
@@ -24,9 +24,31 @@ $bgcolor = strstr('white,azure',$display['theme']) ? '#f2f2f2' : '#1c1c1c';
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.ui.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-{$display['theme']}.css")?>">
|
||||
<style>
|
||||
table.divider{margin-top:30px}
|
||||
table.divider{margin-top:20px}
|
||||
</style>
|
||||
<script>
|
||||
function validate(poolname) {
|
||||
var valid = /^[a-z_][a-z0-9_-]*[a-z_]$/;
|
||||
var reserved = ['disk','disks','diskp','diskq','diskr','flash','parity','parity2'];
|
||||
var shares = [<?=implode(',',array_map('escapeshellarg',array_filter(array_map('sharename',scandir('boot/config/shares')))))?>];
|
||||
var pools = [<?=implode(',',array_map('escapeshellarg',$pools))?>];
|
||||
if (!poolname.trim()) return false;
|
||||
if (reserved.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use reserved names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else if (shares.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use user share names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else if (pools.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Pool name already exists)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else if (!valid.test(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Use lowercase characters only and no ending digits)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
function addPoolPopup() {
|
||||
var popup = $('#dialogAddPool');
|
||||
// Load popup with the template info
|
||||
@@ -41,17 +63,7 @@ function addPoolPopup() {
|
||||
hide : {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
_(Add)_: function() {
|
||||
var poolname = $(this).find('input[name="poolName"]').val();
|
||||
var valid = /^[a-z_][a-z0-9_-]*[a-z_]$/;
|
||||
var reserved = ['disk','disks','diskp','diskq','diskr','flash','parity','parity2'];
|
||||
var shares = [<?=implode(',',array_map('escapeshellarg',array_filter(array_map('sharename',scandir('boot/config/shares')))))?>];
|
||||
if (reserved.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use reserved names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
} else if (shares.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use user share names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
} else if (!valid.test(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Use lowercase characters only and no ending digits)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
} else if (poolname) {
|
||||
if (validate($(this).find('input[name="poolName"]').val())) {
|
||||
$(this).find('form').submit();
|
||||
$(this).dialog('close');
|
||||
}
|
||||
@@ -103,7 +115,7 @@ pool_status();
|
||||
|
||||
<div id="dialogAddPool" style="display:none"></div>
|
||||
<div id="templatePopupPool" style="display:none">
|
||||
<form markdown="1" method="POST" action="/update.htm" target="progressFrame">
|
||||
<form markdown="1" method="POST" action="/update.htm" target="progressFrame" onsubmit="return validate(this.poolName.value)">
|
||||
<input type="hidden" name="changeSlots" value="apply">
|
||||
_(Name)_:
|
||||
: <input type="text" name="poolName" maxlength="40" value="<?=count($pools)==0?'cache':''?>">
|
||||
|
||||
@@ -221,6 +221,28 @@ function xfsCheck(path) {
|
||||
function updateMode(form,mode) {
|
||||
$(form).find('input[name="#arg[3]"]').val(mode);
|
||||
}
|
||||
function validate(poolname) {
|
||||
var valid = /^[a-z_][a-z0-9_-]*[a-z_]$/;
|
||||
var reserved = ['disk','disks','diskp','diskq','diskr','flash','parity','parity2'];
|
||||
var shares = [<?=implode(',',array_map('escapeshellarg',array_filter(array_map('sharename',scandir('boot/config/shares')))))?>];
|
||||
var pools = [<?=implode(',',array_map('escapeshellarg',$pools))?>];
|
||||
if (!poolname.trim()) return false;
|
||||
if (reserved.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use reserved names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else if (shares.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use user share names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else if (pools.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Pool name already exists)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else if (!valid.test(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Use lowercase characters only and no ending digits)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
function renamePoolPopup() {
|
||||
var popup = $('#dialogRenamePool');
|
||||
// Load popup with the template info
|
||||
@@ -235,17 +257,7 @@ function renamePoolPopup() {
|
||||
hide : {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
_(Rename)_: function() {
|
||||
var poolname = $(this).find('input[name="poolName"]').val();
|
||||
var valid = /^[a-z_][a-z0-9_-]*[a-z_]$/;
|
||||
var reserved = ['disk','disks','diskp','diskq','diskr','flash','parity','parity2'];
|
||||
var shares = [<?=implode(',',array_map('escapeshellarg',array_filter(array_map('sharename',scandir('boot/config/shares')))))?>];
|
||||
if (reserved.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use reserved names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
} else if (shares.includes(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Do not use user share names)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
} else if (!valid.test(poolname)) {
|
||||
swal({title:'_(Invalid pool name)_',text:'_(Use lowercase characters only and no ending digits)_',type:'error',confirmButtonText:'_(Ok)_'});
|
||||
} else if (poolname) {
|
||||
if (validate($(this).find('input[name="poolName"]').val())) {
|
||||
$(this).find('form').submit();
|
||||
$(this).dialog('close');
|
||||
}
|
||||
@@ -808,7 +820,7 @@ _(SMART attribute notifications)_:
|
||||
|
||||
<div id="dialogRenamePool" style="display:none"></div>
|
||||
<div id="templatePopupPool" style="display:none">
|
||||
<form markdown="1" method="POST" action="/update.htm" target="progressFrame">
|
||||
<form markdown="1" method="POST" action="/update.htm" target="progressFrame" onsubmit="return validate(this.poolName.value)">
|
||||
<input type="hidden" name="poolNameOrig" value="<?=$name?>">
|
||||
<input type="hidden" name="changeSlots" value="apply">
|
||||
_(Name)_:
|
||||
|
||||
@@ -237,7 +237,7 @@ function array_online(&$disk) {
|
||||
case 'DISK_NP':
|
||||
if (in_array($disk['name'],$pools)) {
|
||||
echo "<td>".device_info($disk,true)."</td>";
|
||||
echo "<td><em>"._('Not installed')."</em></td>";
|
||||
echo "<td><a class='none nohand'><i class=\"icon-disk icon\"></i><span></span></a><em>"._('Not installed')."</em></td>";
|
||||
echo "<td colspan='4'></td>";
|
||||
fs_info($disk);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user