mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-11-12 04:30:53 +08:00
fix: 数据库获取时,忽略重名数据库 (#1906)
This commit is contained in:
parent
278a562320
commit
39d8b0d98c
8 changed files with 11 additions and 11 deletions
|
|
@ -6,8 +6,8 @@ type ImageRepoCreate struct {
|
||||||
Name string `json:"name" validate:"required"`
|
Name string `json:"name" validate:"required"`
|
||||||
DownloadUrl string `json:"downloadUrl"`
|
DownloadUrl string `json:"downloadUrl"`
|
||||||
Protocol string `json:"protocol"`
|
Protocol string `json:"protocol"`
|
||||||
Username string `json:"username"`
|
Username string `json:"username" validate:"max=256"`
|
||||||
Password string `json:"password"`
|
Password string `json:"password" validate:"max=256"`
|
||||||
Auth bool `json:"auth"`
|
Auth bool `json:"auth"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ type RemoteDBOption struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type RemoteDBCreate struct {
|
type RemoteDBCreate struct {
|
||||||
Name string `json:"name" validate:"required"`
|
Name string `json:"name" validate:"required,max=256"`
|
||||||
Type string `json:"type" validate:"required,oneof=mysql"`
|
Type string `json:"type" validate:"required,oneof=mysql"`
|
||||||
From string `json:"from" validate:"required,oneof=local remote"`
|
From string `json:"from" validate:"required,oneof=local remote"`
|
||||||
Version string `json:"version" validate:"required"`
|
Version string `json:"version" validate:"required"`
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@ func (u *MysqlService) LoadFromRemote(from string) error {
|
||||||
for _, data := range datas {
|
for _, data := range datas {
|
||||||
hasOld := false
|
hasOld := false
|
||||||
for _, oldData := range databases {
|
for _, oldData := range databases {
|
||||||
if oldData.Name == data.Name {
|
if strings.EqualFold(oldData.Name, data.Name) {
|
||||||
hasOld = true
|
hasOld = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ const checkDBName = (rule: any, value: any, callback: any) => {
|
||||||
if (value === '' || typeof value === 'undefined' || value == null) {
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
||||||
callback(new Error(i18n.global.t('commons.rule.dbName')));
|
callback(new Error(i18n.global.t('commons.rule.dbName')));
|
||||||
} else {
|
} else {
|
||||||
const reg = /^[a-z0-9\u4e00-\u9fa5]{1}[a-z0-9_.\u4e00-\u9fa5-]{0,64}$/;
|
const reg = /^[a-zA-Z0-9\u4e00-\u9fa5]{1}[a-zA-Z0-9_.\u4e00-\u9fa5-]{0,64}$/;
|
||||||
if (!reg.test(value) && value !== '') {
|
if (!reg.test(value) && value !== '') {
|
||||||
callback(new Error(i18n.global.t('commons.rule.dbName')));
|
callback(new Error(i18n.global.t('commons.rule.dbName')));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ const message = {
|
||||||
commonName: 'Support English, Chinese, numbers, .-, and _ length 1-30',
|
commonName: 'Support English, Chinese, numbers, .-, and _ length 1-30',
|
||||||
userName: 'Support English, Chinese, numbers and _ length 3-30',
|
userName: 'Support English, Chinese, numbers and _ length 3-30',
|
||||||
simpleName: 'Support English, numbers and _ length 1-30',
|
simpleName: 'Support English, numbers and _ length 1-30',
|
||||||
dbName: 'Support lowercase letters, Chinese, numbers, .-, and _ length 1-64',
|
dbName: 'Support English, Chinese, numbers, .-, and _ length 1-64',
|
||||||
imageName: 'Support English, numbers, :/.-_, length 1-150',
|
imageName: 'Support English, numbers, :/.-_, length 1-150',
|
||||||
volumeName: 'Support English, numbers, .-_, length 2-30',
|
volumeName: 'Support English, numbers, .-_, length 2-30',
|
||||||
complexityPassword:
|
complexityPassword:
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ const message = {
|
||||||
commonName: '支持英文、中文、數字、.-和_,長度1-30',
|
commonName: '支持英文、中文、數字、.-和_,長度1-30',
|
||||||
userName: '支持英文、中文、數字和_,長度3-30',
|
userName: '支持英文、中文、數字和_,長度3-30',
|
||||||
simpleName: '支持英文、數字、_,長度1-30',
|
simpleName: '支持英文、數字、_,長度1-30',
|
||||||
dbName: '支持小寫字母、中文、數字、.-_,長度1-64',
|
dbName: '支持英文、中文、數字、.-_,長度1-64',
|
||||||
imageName: '支持英文、數字、:/.-_,長度1-150',
|
imageName: '支持英文、數字、:/.-_,長度1-150',
|
||||||
volumeName: '支持英文、數字、.-和_,長度2-30',
|
volumeName: '支持英文、數字、.-和_,長度2-30',
|
||||||
complexityPassword: '請輸入長度大於 8 位且包含字母、數字、特殊字符至少兩項的密碼組合',
|
complexityPassword: '請輸入長度大於 8 位且包含字母、數字、特殊字符至少兩項的密碼組合',
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ const message = {
|
||||||
commonName: '支持英文、中文、数字、.-和_,长度1-30',
|
commonName: '支持英文、中文、数字、.-和_,长度1-30',
|
||||||
userName: '支持英文、中文、数字和_,长度3-30',
|
userName: '支持英文、中文、数字和_,长度3-30',
|
||||||
simpleName: '支持英文、数字、_,长度1-30',
|
simpleName: '支持英文、数字、_,长度1-30',
|
||||||
dbName: '支持小写字母、中文、数字、.-_,长度1-64',
|
dbName: '支持英文、中文、数字、.-_,长度1-64',
|
||||||
imageName: '支持英文、数字、:/.-_,长度1-150',
|
imageName: '支持英文、数字、:/.-_,长度1-150',
|
||||||
volumeName: '支持英文、数字、.-和_,长度2-30',
|
volumeName: '支持英文、数字、.-和_,长度2-30',
|
||||||
complexityPassword: '请输入长度大于 8 位且包含字母、数字、特殊字符至少两项的密码组合',
|
complexityPassword: '请输入长度大于 8 位且包含字母、数字、特殊字符至少两项的密码组合',
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@ const buttons = [
|
||||||
{
|
{
|
||||||
label: i18n.global.t('commons.button.sync'),
|
label: i18n.global.t('commons.button.sync'),
|
||||||
disabled: (row: Container.RepoInfo) => {
|
disabled: (row: Container.RepoInfo) => {
|
||||||
return row.downloadUrl === 'docker.io';
|
return row.id === 1;
|
||||||
},
|
},
|
||||||
click: (row: Container.RepoInfo) => {
|
click: (row: Container.RepoInfo) => {
|
||||||
onCheckConn(row);
|
onCheckConn(row);
|
||||||
|
|
@ -182,7 +182,7 @@ const buttons = [
|
||||||
{
|
{
|
||||||
label: i18n.global.t('commons.button.edit'),
|
label: i18n.global.t('commons.button.edit'),
|
||||||
disabled: (row: Container.RepoInfo) => {
|
disabled: (row: Container.RepoInfo) => {
|
||||||
return row.downloadUrl === 'docker.io';
|
return row.id === 1;
|
||||||
},
|
},
|
||||||
click: (row: Container.RepoInfo) => {
|
click: (row: Container.RepoInfo) => {
|
||||||
onOpenDialog('edit', row);
|
onOpenDialog('edit', row);
|
||||||
|
|
@ -191,7 +191,7 @@ const buttons = [
|
||||||
{
|
{
|
||||||
label: i18n.global.t('commons.button.delete'),
|
label: i18n.global.t('commons.button.delete'),
|
||||||
disabled: (row: Container.RepoInfo) => {
|
disabled: (row: Container.RepoInfo) => {
|
||||||
return row.downloadUrl === 'docker.io';
|
return row.id === 1;
|
||||||
},
|
},
|
||||||
click: (row: Container.RepoInfo) => {
|
click: (row: Container.RepoInfo) => {
|
||||||
onDelete(row);
|
onDelete(row);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue