diff --git a/backend/app/service/backup_app.go b/backend/app/service/backup_app.go index 751350f36..909cccf72 100644 --- a/backend/app/service/backup_app.go +++ b/backend/app/service/backup_app.go @@ -157,6 +157,7 @@ func handleAppRecover(install *model.AppInstall, recoverFile string, isRollback } defer func() { if !isOk { + global.LOG.Info("recover failed, start to rollback now") if err := handleAppRecover(install, rollbackFile, true); err != nil { global.LOG.Errorf("rollback app %s from %s failed, err: %v", install.Name, rollbackFile, err) return diff --git a/backend/app/service/backup_database.go b/backend/app/service/backup_database.go index 7462645ff..a50d9c027 100644 --- a/backend/app/service/backup_database.go +++ b/backend/app/service/backup_database.go @@ -142,6 +142,7 @@ func handleMysqlRecover(mysqlInfo *repo.RootInfo, recoverDir, dbName, fileName s } defer func() { if !isOk { + global.LOG.Info("recover failed, start to rollback now") if err := handleMysqlRecover(mysqlInfo, path.Dir(rollbackFile), dbName, path.Base(rollbackFile), true); err != nil { global.LOG.Errorf("rollback mysql db %s from %s failed, err: %v", dbName, rollbackFile, err) return diff --git a/backend/app/service/backup_redis.go b/backend/app/service/backup_redis.go index 9ef0771bd..1a91c0cb6 100644 --- a/backend/app/service/backup_redis.go +++ b/backend/app/service/backup_redis.go @@ -123,6 +123,7 @@ func handleRedisRecover(redisInfo *repo.RootInfo, recoverFile string, isRollback } defer func() { if !isOk { + global.LOG.Info("recover failed, start to rollback now") if err := handleRedisRecover(redisInfo, rollbackFile, true); err != nil { global.LOG.Errorf("rollback redis from %s failed, err: %v", rollbackFile, err) return diff --git a/backend/app/service/backup_website.go b/backend/app/service/backup_website.go index ae975e0ad..427f07eb5 100644 --- a/backend/app/service/backup_website.go +++ b/backend/app/service/backup_website.go @@ -106,6 +106,7 @@ func handleWebsiteRecover(website *model.Website, recoverFile string, isRollback return fmt.Errorf("backup website %s for rollback before recover failed, err: %v", website.Alias, err) } defer func() { + global.LOG.Info("recover failed, start to rollback now") if !isOk { if err := handleWebsiteRecover(website, rollbackFile, true); err != nil { global.LOG.Errorf("rollback website %s from %s failed, err: %v", website.Alias, rollbackFile, err) diff --git a/backend/app/service/database_mysql.go b/backend/app/service/database_mysql.go index 4bbbc8024..673adff2c 100644 --- a/backend/app/service/database_mysql.go +++ b/backend/app/service/database_mysql.go @@ -161,7 +161,7 @@ func (u *MysqlService) Delete(ctx context.Context, req dto.MysqlDBDelete) error return err } - if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop user if exists '%s'@'%s'", db.Name, db.Permission)); err != nil && !req.ForceDelete { + if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop user if exists '%s'@'%s'", db.Username, db.Permission)); err != nil && !req.ForceDelete { return err } if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop database if exists `%s`", db.Name)); err != nil && !req.ForceDelete { diff --git a/backend/app/service/snapshot.go b/backend/app/service/snapshot.go index 17557c7c2..a34a045b3 100644 --- a/backend/app/service/snapshot.go +++ b/backend/app/service/snapshot.go @@ -856,6 +856,7 @@ func (u *SnapshotService) handleTar(sourceDir, targetDir, name, exclusionRules s global.LOG.Debug(ss) stdout, err := cmd.Exec(ss) if err != nil { + global.LOG.Errorf("do handle tar failed, stdout: %s, err: %v", stdout, err) return errors.New(stdout) } return nil @@ -869,6 +870,7 @@ func (u *SnapshotService) handleUnTar(sourceDir, targetDir string) error { } stdout, err := cmd.Exec(fmt.Sprintf("tar zxf %s -C %s .", sourceDir, targetDir)) if err != nil { + global.LOG.Errorf("do handle untar failed, stdout: %s, err: %v", stdout, err) return errors.New(string(stdout)) } return nil diff --git a/frontend/src/components/upload/index.vue b/frontend/src/components/upload/index.vue index 77ca1c7f3..5bb4f3fa6 100644 --- a/frontend/src/components/upload/index.vue +++ b/frontend/src/components/upload/index.vue @@ -21,7 +21,7 @@
{{ $t('website.supportUpType') }} - {{ $t('website.zipFormat') }} + {{ $t('website.zipFormat', [type + '.json']) }}
diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 62cd56b6c..b7fd346b1 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -932,8 +932,7 @@ export default { static: 'Static', deployment: 'Deployment', supportUpType: 'Only .tar.gz files within 50 MB are supported', - zipFormat: - '.tar.gz compressed package structure: test.tar.gz compressed package must contain website.json file', + zipFormat: '.tar.gz compressed package structure: test.tar.gz compressed package must contain {0} file', proxy: 'Reverse Proxy', alias: 'Path Name', remark: 'Remark', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 55b04b5d9..2b94ca9d9 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -943,7 +943,7 @@ export default { static: '静态网站', deployment: '一键部署', supportUpType: '仅支持 50M 以内 .tar.gz 文件', - zipFormat: '.tar.gz 压缩包结构:test.tar.gz 压缩包内,必需包含 website.json 文件', + zipFormat: '.tar.gz 压缩包结构:test.tar.gz 压缩包内,必需包含 {0} 文件', proxy: '反向代理', alias: '代号', remark: '备注', diff --git a/frontend/src/views/cronjob/operate/index.vue b/frontend/src/views/cronjob/operate/index.vue index 51bc9af57..98167223f 100644 --- a/frontend/src/views/cronjob/operate/index.vue +++ b/frontend/src/views/cronjob/operate/index.vue @@ -390,6 +390,10 @@ function hasScript() { } const onSubmit = async (formEl: FormInstance | undefined) => { + dialogData.value.rowData.week = Number(dialogData.value.rowData.week); + dialogData.value.rowData.day = Number(dialogData.value.rowData.day); + dialogData.value.rowData.hour = Number(dialogData.value.rowData.hour); + dialogData.value.rowData.minute = Number(dialogData.value.rowData.minute); if (!formEl) return; formEl.validate(async (valid) => { if (!valid) return; diff --git a/frontend/src/views/host/terminal/terminal/host-create.vue b/frontend/src/views/host/terminal/terminal/host-create.vue index 720b2b432..2cd2d36ec 100644 --- a/frontend/src/views/host/terminal/terminal/host-create.vue +++ b/frontend/src/views/host/terminal/terminal/host-create.vue @@ -157,6 +157,7 @@ const submitAddHost = (formEl: FormInstance | undefined, ops: string) => { let isLocal = hostInfo.addr === '127.0.0.1'; emit('on-conn-terminal', title, res.data.id, isLocal); emit('load-host-tree'); + break; } }); }; diff --git a/frontend/src/views/setting/panel/index.vue b/frontend/src/views/setting/panel/index.vue index 26d97ee53..d5fd5afc2 100644 --- a/frontend/src/views/setting/panel/index.vue +++ b/frontend/src/views/setting/panel/index.vue @@ -228,6 +228,7 @@ const onSave = async (formEl: FormInstance | undefined, key: string, val: any) = search(); return; } + break; case 'PanelName': globalStore.setThemeConfig({ ...themeConfig.value, panelName: val }); document.title = val;