| @@ -1566,8 +1566,8 @@ func GetCloudbrainCountByUserID(userID int64, jobType string) (int, error) { | |||||
| return int(count), err | return int(count), err | ||||
| } | } | ||||
| func GetCloudbrainRunCountByUserID(userID int64) (int, error) { | |||||
| count, err := x.In("status", JobWaiting, JobRunning).And("user_id = ?", userID).Count(new(Cloudbrain)) | |||||
| func GetCloudbrainRunCountByRepoID(repoID int64) (int, error) { | |||||
| count, err := x.In("status", JobWaiting, JobRunning).And("repo_id = ?", repoID).Count(new(Cloudbrain)) | |||||
| return int(count), err | return int(count), err | ||||
| } | } | ||||
| @@ -814,6 +814,7 @@ settings.delete_notices_1= - This operation <strong>CANNOT</strong> be undone. | |||||
| settings.delete_notices_2= - This operation will permanently delete the <strong>%s</strong> dataset. | settings.delete_notices_2= - This operation will permanently delete the <strong>%s</strong> dataset. | ||||
| settings.delete_notices_fork_1= - Forks of this dataset will become independent after deletion. | settings.delete_notices_fork_1= - Forks of this dataset will become independent after deletion. | ||||
| settings.deletion_success= The dataset has been deleted. | settings.deletion_success= The dataset has been deleted. | ||||
| settings.deletion_notice_cloudbrain = you need to stop the cloudbrain task under the project before remove the project! | |||||
| task.machine_translation= machine translation | task.machine_translation= machine translation | ||||
| task.question_answering_system= question answering system | task.question_answering_system= question answering system | ||||
| task.information_retrieval= information retrieval | task.information_retrieval= information retrieval | ||||
| @@ -1928,6 +1928,7 @@ settings.delete_notices_1=- 此操作 <strong>不可以</strong> 被回滚。 | |||||
| settings.delete_notices_2=- 此操作将永久删除项目 <strong>%s</strong>,包括 Git 数据、 任务、评论、百科和协作者的操作权限。 | settings.delete_notices_2=- 此操作将永久删除项目 <strong>%s</strong>,包括 Git 数据、 任务、评论、百科和协作者的操作权限。 | ||||
| settings.delete_notices_fork_1=- 在此项目删除后,它的派生项目将变成独立项目。 | settings.delete_notices_fork_1=- 在此项目删除后,它的派生项目将变成独立项目。 | ||||
| settings.deletion_success=项目已被删除。 | settings.deletion_success=项目已被删除。 | ||||
| settings.deletion_notice_cloudbrain=删除项目前需要先停止该项目下的云脑任务! | |||||
| settings.update_settings_success=项目设置已更新。 | settings.update_settings_success=项目设置已更新。 | ||||
| settings.transfer_owner=新拥有者 | settings.transfer_owner=新拥有者 | ||||
| settings.make_transfer=开始转移 | settings.make_transfer=开始转移 | ||||
| @@ -73,18 +73,6 @@ func SettingsPost(ctx *context.Context, form auth.UpdateOrgSettingForm) { | |||||
| ctx.Org.OrgLink = setting.AppSubURL + "/org/" + form.Name | ctx.Org.OrgLink = setting.AppSubURL + "/org/" + form.Name | ||||
| log.Trace("Organization name changed: %s -> %s", org.Name, form.Name) | log.Trace("Organization name changed: %s -> %s", org.Name, form.Name) | ||||
| } | } | ||||
| count, err := models.GetCloudbrainRunCountByUserID(ctx.User.ID) | |||||
| if err != nil { | |||||
| ctx.ServerError("GetCloudbrainCountByUserID failed", err) | |||||
| return | |||||
| } else { | |||||
| if count >= 1 { | |||||
| log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) | |||||
| ctx.RenderWithErr(ctx.Tr("The cloudbrain tasks needs to be stopped before you delete the project"), tplSettingsOptions, &form) | |||||
| return | |||||
| } | |||||
| } | |||||
| // In case it's just a case change. | // In case it's just a case change. | ||||
| org.Name = form.Name | org.Name = form.Name | ||||
| org.LowerName = strings.ToLower(form.Name) | org.LowerName = strings.ToLower(form.Name) | ||||
| @@ -6,7 +6,6 @@ | |||||
| package repo | package repo | ||||
| import ( | import ( | ||||
| "code.gitea.io/gitea/modules/notification" | |||||
| "errors" | "errors" | ||||
| "fmt" | "fmt" | ||||
| "io/ioutil" | "io/ioutil" | ||||
| @@ -15,6 +14,8 @@ import ( | |||||
| "strings" | "strings" | ||||
| "time" | "time" | ||||
| "code.gitea.io/gitea/modules/notification" | |||||
| "code.gitea.io/gitea/models" | "code.gitea.io/gitea/models" | ||||
| "code.gitea.io/gitea/modules/auth" | "code.gitea.io/gitea/modules/auth" | ||||
| "code.gitea.io/gitea/modules/base" | "code.gitea.io/gitea/modules/base" | ||||
| @@ -477,16 +478,25 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | |||||
| ctx.RenderWithErr(ctx.Tr("form.enterred_invalid_repo_name"), tplSettingsOptions, nil) | ctx.RenderWithErr(ctx.Tr("form.enterred_invalid_repo_name"), tplSettingsOptions, nil) | ||||
| return | return | ||||
| } | } | ||||
| if err := repo_service.DeleteRepository(ctx.User, ctx.Repo.Repository); err != nil { | |||||
| ctx.ServerError("DeleteRepository", err) | |||||
| count, err := models.GetCloudbrainRunCountByRepoID(repo.ID) | |||||
| if err != nil { | |||||
| ctx.ServerError("GetCloudbrainCountByRepoID failed", err) | |||||
| return | return | ||||
| } | |||||
| log.Trace("Repository deleted: %s/%s", ctx.Repo.Owner.Name, repo.Name) | |||||
| go StopJobsByRepoID(repo.ID) | |||||
| } else { | |||||
| if count >= 1 { | |||||
| ctx.RenderWithErr(ctx.Tr("repo.settings.deletion_notice_cloudbrain"), tplSettingsOptions, nil) | |||||
| return | |||||
| } | |||||
| if err := repo_service.DeleteRepository(ctx.User, ctx.Repo.Repository); err != nil { | |||||
| ctx.ServerError("DeleteRepository", err) | |||||
| return | |||||
| } | |||||
| log.Trace("Repository deleted: %s/%s", ctx.Repo.Owner.Name, repo.Name) | |||||
| go StopJobsByRepoID(repo.ID) | |||||
| ctx.Flash.Success(ctx.Tr("repo.settings.deletion_success")) | |||||
| ctx.Redirect(ctx.Repo.Owner.DashboardLink()) | |||||
| ctx.Flash.Success(ctx.Tr("repo.settings.deletion_success")) | |||||
| ctx.Redirect(ctx.Repo.Owner.DashboardLink()) | |||||
| } | |||||
| case "delete-wiki": | case "delete-wiki": | ||||
| if !ctx.Repo.IsOwner() { | if !ctx.Repo.IsOwner() { | ||||