From 409f11cb73561cbdbf612912e6e6ffb163985fff Mon Sep 17 00:00:00 2001 From: Jason Song <i@wolfogre.com> Date: Tue, 10 Jan 2023 18:30:18 +0800 Subject: [PATCH] feat: use template modal --- models/actions/runner.go | 9 ++++++--- options/locale/locale_en-US.ini | 1 - routers/web/shared/actions/runners.go | 24 +++++++++++------------ templates/shared/actions/runner_edit.tmpl | 24 ++++++++--------------- 4 files changed, 25 insertions(+), 33 deletions(-) diff --git a/models/actions/runner.go b/models/actions/runner.go index 94503f2881..4efe105b08 100644 --- a/models/actions/runner.go +++ b/models/actions/runner.go @@ -236,9 +236,12 @@ func UpdateRunner(ctx context.Context, r *ActionRunner, cols ...string) error { } // DeleteRunner deletes a runner by given ID. -func DeleteRunner(ctx context.Context, r *ActionRunner) error { - e := db.GetEngine(ctx) - _, err := e.Delete(r) +func DeleteRunner(ctx context.Context, id int64) error { + if _, err := GetRunnerByID(ctx, id); err != nil { + return err + } + + _, err := db.GetEngine(ctx).Delete(&ActionRunner{ID: id}) return err } diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 51ba8866b2..52204db546 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3278,7 +3278,6 @@ runners.delete_runner_success = Runner deleted successfully runners.delete_runner_failed = Failed to delete runner runners.delete_runner_header = Confirm to delete this runner runners.delete_runner_notice = If a task is running on this runner, it will be terminated and mark as failed. It may break building workflow. -runners.delete_runner_confirm = Delete this runner runners.none = No runners available runners.status.unspecified = Unknown runners.status.idle = Idle diff --git a/routers/web/shared/actions/runners.go b/routers/web/shared/actions/runners.go index 88a2118638..f63d37f165 100644 --- a/routers/web/shared/actions/runners.go +++ b/routers/web/shared/actions/runners.go @@ -162,25 +162,23 @@ func RunnerResetRegistrationToken(ctx *context.Context, ownerID, repoID int64, r func RunnerDeletePost(ctx *context.Context, runnerID int64, successRedirectTo, failedRedirectTo string, ) { - runner, err := actions_model.GetRunnerByID(ctx, runnerID) - if err != nil { - log.Warn("DeleteRunnerPost.GetRunnerByID failed: %v, url: %s", err, ctx.Req.URL) - ctx.ServerError("DeleteRunnerPost.GetRunnerByID", err) - return - } - - err = actions_model.DeleteRunner(ctx, runner) - if err != nil { + if err := actions_model.DeleteRunner(ctx, runnerID); err != nil { log.Warn("DeleteRunnerPost.UpdateRunner failed: %v, url: %s", err, ctx.Req.URL) - ctx.Flash.Warning(ctx.Tr("runners.delete_runner_failed")) - ctx.Redirect(failedRedirectTo) + ctx.Flash.Warning(ctx.Tr("actions.runners.delete_runner_failed")) + + ctx.JSON(http.StatusOK, map[string]interface{}{ + "redirect": failedRedirectTo, + }) return } log.Info("DeleteRunnerPost success: %s", ctx.Req.URL) - ctx.Flash.Success(ctx.Tr("runners.delete_runner_success")) - ctx.Redirect(successRedirectTo) + ctx.Flash.Success(ctx.Tr("actions.runners.delete_runner_success")) + + ctx.JSON(http.StatusOK, map[string]interface{}{ + "redirect": successRedirectTo, + }) } func splitLabels(s string) []string { diff --git a/templates/shared/actions/runner_edit.tmpl b/templates/shared/actions/runner_edit.tmpl index 37ec3dd92c..584c3f4d55 100644 --- a/templates/shared/actions/runner_edit.tmpl +++ b/templates/shared/actions/runner_edit.tmpl @@ -4,7 +4,7 @@ {{.locale.Tr "actions.runners.runner_title"}} {{template "shared/actions/runner_id" .Runner.ID}} {{.Runner.Name}} </h4> <div class="ui attached segment"> - <form class="ui form" action="{{.Link}}" method="post"> + <form class="ui form" method="post"> {{template "base/disable_form_autofill"}} {{.CsrfTokenHtml}} <div class="runner-basic-info"> @@ -45,8 +45,8 @@ <div class="ui divider"></div> <div class="field"> - <button type="submit" class="ui green button">{{.locale.Tr "actions.runners.update_runner"}}</button> - <button type="button" class="ui red button delete-button show-modal" data-modal="#runner-delete-modal"> + <button class="ui green button" data-url="{{.Link}}">{{.locale.Tr "actions.runners.update_runner"}}</button> + <button class="ui red button delete-button show-modal" data-url="{{.Link}}/delete" data-modal="#runner-delete-modal"> {{.locale.Tr "actions.runners.delete_runner"}}</button> </div> </form> @@ -89,22 +89,14 @@ </table> {{template "base/paginate" .}} </div> - <div class="ui small modal" id="runner-delete-modal"> - <div class="header"> + <div class="ui small basic delete modal" id="runner-delete-modal"> + <div class="ui icon header"> + {{svg "octicon-trash"}} {{.locale.Tr "actions.runners.delete_runner_header"}} </div> <div class="content"> - <div class="ui warning message text left"> - {{.locale.Tr "actions.runners.delete_runner_notice" | Safe}} - </div> - <form class="ui form" action="{{.Link}}/delete" method="post"> - {{.CsrfTokenHtml}} - <input type="hidden" name="action" value="delete"> - <div class="text right actions"> - <div class="ui cancel button">{{.locale.Tr "settings.cancel"}}</div> - <button class="ui red button">{{.locale.Tr "actions.runners.delete_runner_confirm"}}</button> - </div> - </form> + <p>{{.locale.Tr "actions.runners.delete_runner_notice" | Safe}}</p> </div> + {{template "base/delete_modal_actions" .}} </div> </div>