From e8173c2c33f1dd5b0a2c044255434d414cab62d2 Mon Sep 17 00:00:00 2001 From: sillyguodong <33891828+sillyguodong@users.noreply.github.com> Date: Sun, 30 Apr 2023 23:08:51 +0800 Subject: [PATCH] Move `Rename branch` from repo settings page to the page of branches list (#24380) Co-Author: @wxiaoguang It is more convenient that user just need to enter a new branch name after he selects the branch which he want to rename. So this PR move the function of renaming branch to the page of branches list. This PR also restyle the button of `new branch`, `download`, `delete`.... https://user-images.githubusercontent.com/33891828/235277997-413060bb-759f-430a-b5c4-df5e40ffcd28.mov --------- Co-authored-by: wxiaoguang --- options/locale/locale_en-US.ini | 3 + routers/web/repo/setting_protected_branch.go | 8 +- templates/repo/branch/list.tmpl | 82 +++++++++++++++----- templates/repo/settings/branches.tmpl | 22 ------ web_src/css/modules/modal.css | 1 + web_src/js/features/repo-branch.js | 19 +++++ 6 files changed, 89 insertions(+), 46 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 1d2a0edfb..363412183 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -2406,10 +2406,13 @@ branch.protected_deletion_failed = Branch "%s" is protected. It cannot be delete branch.default_deletion_failed = Branch "%s" is the default branch. It cannot be deleted. branch.restore = Restore Branch "%s" branch.download = Download Branch "%s" +branch.rename = Rename Branch "%s" branch.included_desc = This branch is part of the default branch branch.included = Included branch.create_new_branch = Create branch from branch: branch.confirm_create_branch = Create branch +branch.rename_branch_to = Rename "%s" to: +branch.confirm_rename_branch = Rename branch branch.create_branch_operation = Create branch branch.new_branch = Create new branch branch.new_branch_from = Create new branch from "%s" diff --git a/routers/web/repo/setting_protected_branch.go b/routers/web/repo/setting_protected_branch.go index 3beb79f20..932bd373d 100644 --- a/routers/web/repo/setting_protected_branch.go +++ b/routers/web/repo/setting_protected_branch.go @@ -343,7 +343,7 @@ func RenameBranchPost(ctx *context.Context) { if ctx.HasError() { ctx.Flash.Error(ctx.GetErrMsg()) - ctx.Redirect(fmt.Sprintf("%s/settings/branches", ctx.Repo.RepoLink)) + ctx.Redirect(fmt.Sprintf("%s/branches", ctx.Repo.RepoLink)) return } @@ -355,16 +355,16 @@ func RenameBranchPost(ctx *context.Context) { if msg == "target_exist" { ctx.Flash.Error(ctx.Tr("repo.settings.rename_branch_failed_exist", form.To)) - ctx.Redirect(fmt.Sprintf("%s/settings/branches", ctx.Repo.RepoLink)) + ctx.Redirect(fmt.Sprintf("%s/branches", ctx.Repo.RepoLink)) return } if msg == "from_not_exist" { ctx.Flash.Error(ctx.Tr("repo.settings.rename_branch_failed_not_exist", form.From)) - ctx.Redirect(fmt.Sprintf("%s/settings/branches", ctx.Repo.RepoLink)) + ctx.Redirect(fmt.Sprintf("%s/branches", ctx.Repo.RepoLink)) return } ctx.Flash.Success(ctx.Tr("repo.settings.rename_branch_success", form.From, form.To)) - ctx.Redirect(fmt.Sprintf("%s/settings/branches", ctx.Repo.RepoLink)) + ctx.Redirect(fmt.Sprintf("%s/branches", ctx.Repo.RepoLink)) } diff --git a/templates/repo/branch/list.tmpl b/templates/repo/branch/list.tmpl index 40d635130..53ca2b9b0 100644 --- a/templates/repo/branch/list.tmpl +++ b/templates/repo/branch/list.tmpl @@ -27,22 +27,36 @@ {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}} - {{end}} {{if .EnableFeed}} - + {{svg "octicon-rss"}} {{end}} {{if not $.DisableDownloadSourceArchives}} - {{end}} @@ -119,33 +133,47 @@ {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}} - {{end}} {{if $.EnableFeed}} - + {{svg "octicon-rss"}} {{end}} {{if and (not .IsDeleted) (not $.DisableDownloadSourceArchives)}} - {{end}} {{if and $.IsWriter (not $.IsMirror) (not $.Repository.IsArchived) (not .IsProtected)}} {{if .IsDeleted}} - {{else}} - {{end}} @@ -173,29 +201,43 @@ {{template "base/modal_actions_confirm" .}} - - - {{if $.Repository.CanCreateBranch}} -

- {{.locale.Tr "repo.settings.rename_branch"}} -

-
-
- {{.CsrfTokenHtml}} -
- - -
-
- - -
-
- -
-
-
- {{end}} {{end}} diff --git a/web_src/css/modules/modal.css b/web_src/css/modules/modal.css index 1bf55ea4c..3baaaf9ff 100644 --- a/web_src/css/modules/modal.css +++ b/web_src/css/modules/modal.css @@ -30,6 +30,7 @@ .ui.modal > .content, .ui.modal > form > .content { background: var(--color-body); + padding: 1.5em; } .ui.modal > .actions, diff --git a/web_src/js/features/repo-branch.js b/web_src/js/features/repo-branch.js index 946f7f90a..e7c2645dc 100644 --- a/web_src/js/features/repo-branch.js +++ b/web_src/js/features/repo-branch.js @@ -1,6 +1,12 @@ import $ from 'jquery'; export function initRepoBranchButton() { + initRepoCreateBranchButton(); + initRepoRenameBranchButton(); +} + +function initRepoCreateBranchButton() { + // 2 pages share this code, one is the branch list page, the other is the commit view page: create branch/tag from current commit (dirty code) $('.show-create-branch-modal').on('click', function () { let modalFormName = $(this).attr('data-modal-form'); if (!modalFormName) { @@ -16,3 +22,16 @@ export function initRepoBranchButton() { $($(this).attr('data-modal')).modal('show'); }); } + +function initRepoRenameBranchButton() { + $('.show-rename-branch-modal').on('click', function () { + const target = $(this).attr('data-modal'); + const $modal = $(target); + + const oldBranchName = $(this).attr('data-old-branch-name'); + $modal.find('input[name=from]').val(oldBranchName); + + const $text = $modal.find('[data-rename-branch-to]'); + $text.text($text.attr('data-rename-branch-to').replace('%s', oldBranchName)); + }); +}