Modify tags, change sequence of disk

pull/181/head
root 2020-12-27 14:22:18 +08:00
parent 4d48228d8a
commit 6b5c26b897
10 changed files with 262 additions and 58 deletions

View File

@ -1727,8 +1727,7 @@ function get_refresh_token()
</form> </form>
</div> </div>
<script> <script>
function notnull(t) function notnull(t) {
{
if (t.disktag_add.value==\'\') { if (t.disktag_add.value==\'\') {
alert(\''.getconstStr('OnedriveDiskTag').'\'); alert(\''.getconstStr('OnedriveDiskTag').'\');
return false; return false;
@ -1738,7 +1737,7 @@ function get_refresh_token()
alert("Do not input ' . $envs . '"); alert("Do not input ' . $envs . '");
return false; return false;
} }
var reg = /^[a-zA-Z]([-_a-zA-Z0-9]{1,20})$/; var reg = /^[a-zA-Z]([_a-zA-Z0-9]{1,20})$/;
if (!reg.test(t.disktag_add.value)) { if (!reg.test(t.disktag_add.value)) {
alert(\''.getconstStr('TagFormatAlert').'\'); alert(\''.getconstStr('TagFormatAlert').'\');
return false; return false;
@ -1776,11 +1775,15 @@ function get_refresh_token()
function EnvOpt($needUpdate = 0) function EnvOpt($needUpdate = 0)
{ {
global $constStr; global $constStr;
global $CommonEnv;
global $ShowedCommonEnv; global $ShowedCommonEnv;
global $ShowedInnerEnv; global $ShowedInnerEnv;
global $timezones; global $timezones;
asort($ShowedCommonEnv); asort($ShowedCommonEnv);
asort($ShowedInnerEnv); asort($ShowedInnerEnv);
$envs = '';
foreach ($CommonEnv as $env) $envs .= '\'' . $env . '\', ';
$html = '<title>OneManager '.getconstStr('Setup').'</title>'; $html = '<title>OneManager '.getconstStr('Setup').'</title>';
if (isset($_POST['updateProgram'])&&$_POST['updateProgram']==getconstStr('updateProgram')) { if (isset($_POST['updateProgram'])&&$_POST['updateProgram']==getconstStr('updateProgram')) {
$response = setConfigResponse(OnekeyUpate($_POST['auth'], $_POST['project'], $_POST['branch'])); $response = setConfigResponse(OnekeyUpate($_POST['auth'], $_POST['project'], $_POST['branch']));
@ -1798,9 +1801,26 @@ function EnvOpt($needUpdate = 0)
if (isset($_POST['submit1'])) { if (isset($_POST['submit1'])) {
$_SERVER['disk_oprating'] = ''; $_SERVER['disk_oprating'] = '';
foreach ($_POST as $k => $v) { foreach ($_POST as $k => $v) {
if (in_array($k, $ShowedCommonEnv)||in_array($k, $ShowedInnerEnv)||$k=='disktag_del' || $k=='disktag_add') { if (in_array($k, $ShowedCommonEnv) || in_array($k, $ShowedInnerEnv) || $k=='disktag_del' || $k=='disktag_add' || $k=='disktag_rename') {
$tmp[$k] = $v; $tmp[$k] = $v;
} }
if ($k=='disktag_newname') {
$v = preg_replace('/[^0-9a-zA-Z|_]/i', '', $v);
$f = substr($v, 0, 1);
if (strlen($v)==1) $v .= '_';
if (in_array($v, $CommonEnv)) {
return message('Do not input ' . $envs . '<br><button onclick="location.href = location.href;">'.getconstStr('Refresh').'</button><script>document.cookie=\'disktag=; path=/\';</script>', 'Error', 201);
} elseif (!(('a'<=$f && $f<='z') || ('A'<=$f && $f<='Z'))) {
return message('Please start with letters');
} else {
$tmp[$k] = $v;
}
}
if ($k=='disktag_sort') {
$td = implode('|', json_decode($v));
if (strlen($td)==strlen(getConfig('disktag'))) $tmp['disktag'] = $td;
else return message('Something wrong.');
}
if ($k == 'disk') $_SERVER['disk_oprating'] = $v; if ($k == 'disk') $_SERVER['disk_oprating'] = $v;
} }
/*if ($tmp['domain_path']!='') { /*if ($tmp['domain_path']!='') {
@ -1817,7 +1837,6 @@ function EnvOpt($needUpdate = 0)
$html = api_error_msg($response); $html = api_error_msg($response);
$title = 'Error'; $title = 'Error';
} else { } else {
//WaitSCFStat();
$html .= getconstStr('Success') . '!<br> $html .= getconstStr('Success') . '!<br>
<button onclick="location.href = location.href;">'.getconstStr('Refresh').'</button>'; <button onclick="location.href = location.href;">'.getconstStr('Refresh').'</button>';
$title = getconstStr('Setup'); $title = getconstStr('Setup');
@ -1896,18 +1915,102 @@ function EnvOpt($needUpdate = 0)
<tr><td><input type="submit" name="submit1" value="'.getconstStr('Setup').'"></td></tr> <tr><td><input type="submit" name="submit1" value="'.getconstStr('Setup').'"></td></tr>
</form> </form>
</table><br>'; </table><br>';
foreach (explode("|",getConfig('disktag')) as $disktag) { $disktags = getConfig('disktag');
if ($disktags!='') {
$html .= '
<script src="//cdn.bootcss.com/Sortable/1.8.3/Sortable.js"></script>
<style>
.sortable-ghost {
opacity: 0.4;
background-color: #1748ce;
}
#sortdisks td {
cursor: move;
}
</style>
<table border=1>
<form id="sortdisks_form" action="" method="post" style="margin: 0" onsubmit="return dragsort(this);">
<tr id="sortdisks">
<input type="hidden" name="disktag_sort" value="">';
$num = 0;
foreach (explode("|", $disktags) as $disktag) {
if ($disktag!='') {
$num++;
$html .= '
<td>' . $disktag . '</td>';
}
}
$html .= '
</tr>
<tr><td colspan="' . $num . '">' . getconstStr('DragSort') . '<input type="submit" name="submit1" value="' . getconstStr('SubmitSortdisks') . '"></td></tr>
</form>
</table>
<script>
var disks=' . json_encode(explode("|", $disktags)) . ';
function change(arr, oldindex, newindex) {
//console.log(oldindex + "," + newindex);
tmp=arr.splice(oldindex-1, 1);
if (oldindex > newindex) {
tmp1=JSON.parse(JSON.stringify(arr));
tmp1.splice(newindex-1, arr.length-newindex+1);
tmp2=JSON.parse(JSON.stringify(arr));
tmp2.splice(0, newindex-1);
} else {
tmp1=JSON.parse(JSON.stringify(arr));
tmp1.splice(newindex-1, arr.length-newindex+1);
tmp2=JSON.parse(JSON.stringify(arr));
tmp2.splice(0, newindex-1);
}
arr=tmp1.concat(tmp, tmp2);
//console.log(arr);
return arr;
}
function dragsort(t) {
if (t.disktag_sort.value==\'\') {
alert(\'' . getconstStr('DragSort') . '\');
return false;
}
envs = [' . $envs . '];
if (envs.indexOf(t.disktag_sort.value)>-1) {
alert("Do not input ' . $envs . '");
return false;
}
return true;
}
Sortable.create(document.getElementById(\'sortdisks\'), {
animation: 150,
onEnd: function (evt) { //拖拽完毕之后发生该事件
//console.log(evt.oldIndex);
//console.log(evt.newIndex);
if (evt.oldIndex!=evt.newIndex) {
disks=change(disks, evt.oldIndex, evt.newIndex);
document.getElementById(\'sortdisks_form\').disktag_sort.value=JSON.stringify(disks);
}
}
});
</script><br>';
}
foreach (explode("|", $disktags) as $disktag) {
if ($disktag!='') { if ($disktag!='') {
$html .= ' $html .= '
<table border=1 width=100%> <table border=1 width=100%>
<form action="" method="post">
<tr> <tr>
<td colspan="2">'.$disktag.' <td>
<input type="hidden" name="disktag_del" value="'.$disktag.'"> <form action="" method="post" style="margin: 0">
<input type="submit" name="submit1" value="'.getconstStr('DelDisk').'"> <input type="hidden" name="disktag_del" value="'.$disktag.'">
<input type="submit" name="submit1" value="'.getconstStr('DelDisk').'">
</form>
</td>
<td>
<form action="" method="post" style="margin: 0" onsubmit="return renametag(this);">
<input type="hidden" name="disktag_rename" value="'.$disktag.'">
<input type="text" name="disktag_newname" value="'.$disktag.'">
<input type="submit" name="submit1" value="'.getconstStr('RenameDisk').'">
</form>
</td> </td>
</tr> </tr>
</form>'; ';
if (getConfig('refresh_token', $disktag)!='') { if (getConfig('refresh_token', $disktag)!='') {
$html .= ' $html .= '
<form name="'.$disktag.'" action="" method="post"> <form name="'.$disktag.'" action="" method="post">
@ -1920,7 +2023,7 @@ function EnvOpt($needUpdate = 0)
</tr>'; </tr>';
} }
$html .= ' $html .= '
<tr><td><input type="submit" name="submit1" value="'.getconstStr('Setup').'"></td></tr> <tr><td></td><td><input type="submit" name="submit1" value="'.getconstStr('Setup').'"></td></tr>
</form>'; </form>';
} else { } else {
$html .= ' $html .= '
@ -1968,6 +2071,27 @@ function EnvOpt($needUpdate = 0)
<input type="submit" name="updateProgram" value="'.getconstStr('updateProgram').'"> <input type="submit" name="updateProgram" value="'.getconstStr('updateProgram').'">
</form> </form>
<script> <script>
function renametag(t) {
if (t.disktag_newname.value==\'\') {
alert(\''.getconstStr('OnedriveDiskTag').'\');
return false;
}
if (t.disktag_newname.value==t.disktag_rename.value) {
return false;
}
envs = [' . $envs . '];
if (envs.indexOf(t.disktag_newname.value)>-1) {
alert("Do not input ' . $envs . '");
return false;
}
var reg = /^[a-zA-Z]([_a-zA-Z0-9]{1,20})$/;
if (!reg.test(t.disktag_newname.value)) {
alert(\''.getconstStr('TagFormatAlert').'\');
return false;
}
return true;
}
function querybranchs() function querybranchs()
{ {
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();

View File

@ -311,6 +311,16 @@ $constStr = [
'ko-kr' => '플랫폼 변수', 'ko-kr' => '플랫폼 변수',
'fa' => 'پیکربندی پلتفرم', 'fa' => 'پیکربندی پلتفرم',
], ],
'DragSort' => [
'en-us' => 'Drag to Sort Disk',
'zh-cn' => '拖拽改变顺序',
'zh-tw' => '',
],
'SubmitSortdisks' => [
'en-us' => 'Submit Sort',
'zh-cn' => '确认排序',
'zh-tw' => '',
],
'DelDisk' => [ 'DelDisk' => [
'en-us' => 'Del This Disk', 'en-us' => 'Del This Disk',
'zh-cn' => '删除此盘', 'zh-cn' => '删除此盘',
@ -319,6 +329,11 @@ $constStr = [
'ko-kr' => '이 디스크를 삭제', 'ko-kr' => '이 디스크를 삭제',
'fa' => 'پاک کردن این دیسک', 'fa' => 'پاک کردن این دیسک',
], ],
'RenameDisk' => [
'en-us' => 'Rename Disk Tag',
'zh-cn' => '改变标签',
'zh-tw' => '修改标签',
],
'AddDisk' => [ 'AddDisk' => [
'en-us' => 'Add Onedrive Disk', 'en-us' => 'Add Onedrive Disk',
'zh-cn' => '添加Onedrive盘', 'zh-cn' => '添加Onedrive盘',

View File

@ -78,11 +78,11 @@ function setConfig($arr, $disktag = '')
global $InnerEnv; global $InnerEnv;
global $Base64Env; global $Base64Env;
if ($disktag=='') $disktag = $_SERVER['disktag']; if ($disktag=='') $disktag = $_SERVER['disktag'];
$disktags = explode("|",getConfig('disktag')); $disktags = explode("|", getConfig('disktag'));
$diskconfig = json_decode(getenv($disktag), true); $diskconfig = json_decode(getenv($disktag), true);
$tmp = []; $tmp = [];
$indisk = 0; $indisk = 0;
$oparetdisk = 0; $operatedisk = 0;
foreach ($arr as $k => $v) { foreach ($arr as $k => $v) {
if (in_array($k, $InnerEnv)) { if (in_array($k, $InnerEnv)) {
if (in_array($k, $Base64Env)) $diskconfig[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $diskconfig[$k] = base64y_encode($v);
@ -90,11 +90,13 @@ function setConfig($arr, $disktag = '')
$indisk = 1; $indisk = 1;
} elseif ($k=='disktag_add') { } elseif ($k=='disktag_add') {
array_push($disktags, $v); array_push($disktags, $v);
$oparetdisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_del') { } elseif ($k=='disktag_del') {
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$tmp[$v] = ''; $tmp[$v] = '';
$oparetdisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v);
else $tmp[$k] = $v; else $tmp[$k] = $v;
@ -105,11 +107,17 @@ function setConfig($arr, $disktag = '')
ksort($diskconfig); ksort($diskconfig);
$tmp[$disktag] = json_encode($diskconfig); $tmp[$disktag] = json_encode($diskconfig);
} }
if ($oparetdisk) { if ($operatedisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $tmp['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1); $tmp[$arr['disktag_newname']] = $tmp[$arr['disktag_rename']];
else $tmp['disktag'] = ''; $tmp[$arr['disktag_rename']] = '';
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1);
else $tmp['disktag'] = '';
}
} }
// echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).' // echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).'
//'; //';

View File

@ -72,7 +72,7 @@ function setConfig($arr, $disktag = '')
$diskconfig = json_decode(getenv($disktag), true); $diskconfig = json_decode(getenv($disktag), true);
$tmp = []; $tmp = [];
$indisk = 0; $indisk = 0;
$oparetdisk = 0; $operatedisk = 0;
foreach ($arr as $k => $v) { foreach ($arr as $k => $v) {
if (in_array($k, $InnerEnv)) { if (in_array($k, $InnerEnv)) {
if (in_array($k, $Base64Env)) $diskconfig[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $diskconfig[$k] = base64y_encode($v);
@ -80,11 +80,13 @@ function setConfig($arr, $disktag = '')
$indisk = 1; $indisk = 1;
} elseif ($k=='disktag_add') { } elseif ($k=='disktag_add') {
array_push($disktags, $v); array_push($disktags, $v);
$oparetdisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_del') { } elseif ($k=='disktag_del') {
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$tmp[$v] = ''; $tmp[$v] = '';
$oparetdisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v);
else $tmp[$k] = $v; else $tmp[$k] = $v;
@ -95,11 +97,17 @@ function setConfig($arr, $disktag = '')
ksort($diskconfig); ksort($diskconfig);
$tmp[$disktag] = json_encode($diskconfig); $tmp[$disktag] = json_encode($diskconfig);
} }
if ($oparetdisk) { if ($operatedisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $tmp['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1); $tmp[$arr['disktag_newname']] = $tmp[$arr['disktag_rename']];
else $tmp['disktag'] = ''; $tmp[$arr['disktag_rename']] = '';
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1);
else $tmp['disktag'] = '';
}
} }
// echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).' // echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).'
//'; //';

View File

@ -96,6 +96,8 @@ function setConfig($arr, $disktag = '')
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$tmp[$v] = ''; $tmp[$v] = '';
$oparetdisk = 1; $oparetdisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v);
else $tmp[$k] = $v; else $tmp[$k] = $v;
@ -107,10 +109,16 @@ function setConfig($arr, $disktag = '')
$tmp[$disktag] = json_encode($diskconfig); $tmp[$disktag] = json_encode($diskconfig);
} }
if ($oparetdisk) { if ($oparetdisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $tmp['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1); $tmp[$arr['disktag_newname']] = $tmp[$arr['disktag_rename']];
else $tmp['disktag'] = ''; $tmp[$arr['disktag_rename']] = null;
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1);
else $tmp['disktag'] = null;
}
} }
foreach ($tmp as $key => $val) if ($val=='') $tmp[$key]=null; foreach ($tmp as $key => $val) if ($val=='') $tmp[$key]=null;
// echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).' // echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).'

View File

@ -109,6 +109,8 @@ function setConfig($arr, $disktag = '')
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$tmp[$v] = ''; $tmp[$v] = '';
$oparetdisk = 1; $oparetdisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v);
else $tmp[$k] = $v; else $tmp[$k] = $v;
@ -120,10 +122,16 @@ function setConfig($arr, $disktag = '')
$tmp[$disktag] = json_encode($diskconfig); $tmp[$disktag] = json_encode($diskconfig);
} }
if ($oparetdisk) { if ($oparetdisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $tmp['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1); $tmp[$arr['disktag_newname']] = $tmp[$arr['disktag_rename']];
else $tmp['disktag'] = ''; $tmp[$arr['disktag_rename']] = '';
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1);
else $tmp['disktag'] = '';
}
} }
// echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).' // echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).'
//'; //';

View File

@ -118,6 +118,8 @@ function setConfig($arr, $disktag = '')
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$envs[$v] = ''; $envs[$v] = '';
$operatedisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $envs[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $envs[$k] = base64y_encode($v);
else $envs[$k] = $v; else $envs[$k] = $v;
@ -130,10 +132,16 @@ function setConfig($arr, $disktag = '')
$envs[$disktag] = $diskconfig; $envs[$disktag] = $diskconfig;
} }
if ($operatedisk) { if ($operatedisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $envs['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $envs['disktag'] = substr($disktag_s, 0, -1); $envs[$arr['disktag_newname']] = $envs[$arr['disktag_rename']];
else $envs['disktag'] = ''; $envs[$arr['disktag_rename']] = '';
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $envs['disktag'] = substr($disktag_s, 0, -1);
else $envs['disktag'] = '';
}
} }
$envs = array_filter($envs, 'array_value_isnot_null'); $envs = array_filter($envs, 'array_value_isnot_null');
ksort($envs); ksort($envs);

View File

@ -99,7 +99,7 @@ function setConfig($arr, $disktag = '')
//$configs = substr($s, 18, -2); //$configs = substr($s, 18, -2);
$configs = '{' . splitlast(splitfirst($s, '{')[1], '}')[0] . '}'; $configs = '{' . splitlast(splitfirst($s, '{')[1], '}')[0] . '}';
if ($configs!='') $envs = json_decode($configs, true); if ($configs!='') $envs = json_decode($configs, true);
$disktags = explode("|",getConfig('disktag')); $disktags = explode("|", getConfig('disktag'));
$indisk = 0; $indisk = 0;
$operatedisk = 0; $operatedisk = 0;
foreach ($arr as $k => $v) { foreach ($arr as $k => $v) {
@ -114,6 +114,8 @@ function setConfig($arr, $disktag = '')
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$envs[$v] = ''; $envs[$v] = '';
$operatedisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $envs[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $envs[$k] = base64y_encode($v);
else $envs[$k] = $v; else $envs[$k] = $v;
@ -126,13 +128,20 @@ function setConfig($arr, $disktag = '')
$envs[$disktag] = $diskconfig; $envs[$disktag] = $diskconfig;
} }
if ($operatedisk) { if ($operatedisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $envs['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $envs['disktag'] = substr($disktag_s, 0, -1); $envs[$arr['disktag_newname']] = $envs[$arr['disktag_rename']];
else $envs['disktag'] = ''; unset($envs[$arr['disktag_rename']]);
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $envs['disktag'] = substr($disktag_s, 0, -1);
else $envs['disktag'] = '';
}
} }
$envs = array_filter($envs, 'array_value_isnot_null'); $envs = array_filter($envs, 'array_value_isnot_null');
ksort($envs); ksort($envs);
//echo '<pre>'. json_encode($envs, JSON_PRETTY_PRINT).'</pre>'; //echo '<pre>'. json_encode($envs, JSON_PRETTY_PRINT).'</pre>';
$prestr = '<?php $configs = \'' . PHP_EOL; $prestr = '<?php $configs = \'' . PHP_EOL;
$aftstr = PHP_EOL . '\';'; $aftstr = PHP_EOL . '\';';

View File

@ -79,7 +79,7 @@ function setConfig($arr, $disktag = '')
$diskconfig = json_decode(getenv($disktag), true); $diskconfig = json_decode(getenv($disktag), true);
$tmp = []; $tmp = [];
$indisk = 0; $indisk = 0;
$oparetdisk = 0; $operatedisk = 0;
foreach ($arr as $k => $v) { foreach ($arr as $k => $v) {
if (in_array($k, $InnerEnv)) { if (in_array($k, $InnerEnv)) {
if (in_array($k, $Base64Env)) $diskconfig[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $diskconfig[$k] = base64y_encode($v);
@ -87,11 +87,13 @@ function setConfig($arr, $disktag = '')
$indisk = 1; $indisk = 1;
} elseif ($k=='disktag_add') { } elseif ($k=='disktag_add') {
array_push($disktags, $v); array_push($disktags, $v);
$oparetdisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_del') { } elseif ($k=='disktag_del') {
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$tmp[$v] = ''; $tmp[$v] = '';
$oparetdisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $tmp[$k] = base64y_encode($v);
else $tmp[$k] = $v; else $tmp[$k] = $v;
@ -102,11 +104,17 @@ function setConfig($arr, $disktag = '')
ksort($diskconfig); ksort($diskconfig);
$tmp[$disktag] = json_encode($diskconfig); $tmp[$disktag] = json_encode($diskconfig);
} }
if ($oparetdisk) { if ($operatedisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $tmp['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1); $tmp[$arr['disktag_newname']] = $tmp[$arr['disktag_rename']];
else $tmp['disktag'] = ''; $tmp[$arr['disktag_rename']] = '';
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $tmp['disktag'] = substr($disktag_s, 0, -1);
else $tmp['disktag'] = '';
}
} }
// echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).' // echo '正式设置:'.json_encode($tmp,JSON_PRETTY_PRINT).'
//'; //';

View File

@ -103,6 +103,8 @@ function setConfig($arr, $disktag = '')
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [ $v ]);
$envs[$v] = ''; $envs[$v] = '';
$operatedisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1;
} else { } else {
if (in_array($k, $Base64Env)) $envs[$k] = base64y_encode($v); if (in_array($k, $Base64Env)) $envs[$k] = base64y_encode($v);
else $envs[$k] = $v; else $envs[$k] = $v;
@ -115,10 +117,16 @@ function setConfig($arr, $disktag = '')
$envs[$disktag] = $diskconfig; $envs[$disktag] = $diskconfig;
} }
if ($operatedisk) { if ($operatedisk) {
$disktags = array_unique($disktags); if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') {
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $envs['disktag'] = str_replace($arr['disktag_rename'], $arr['disktag_newname'], getConfig('disktag'));
if ($disktag_s!='') $envs['disktag'] = substr($disktag_s, 0, -1); $envs[$arr['disktag_newname']] = $envs[$arr['disktag_rename']];
else $envs['disktag'] = ''; $envs[$arr['disktag_rename']] = '';
} else {
$disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|';
if ($disktag_s!='') $envs['disktag'] = substr($disktag_s, 0, -1);
else $envs['disktag'] = '';
}
} }
$envs = array_filter($envs, 'array_value_isnot_null'); $envs = array_filter($envs, 'array_value_isnot_null');
ksort($envs); ksort($envs);