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 1d2a0edfb3..3634121833 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 3beb79f20f..932bd373d7 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 40d6351301..53ca2b9b09 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 1bf55ea4cc..3baaaf9ff2 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 946f7f90a4..e7c2645dcd 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)); + }); +}