diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 1d2a0edfb3f3..363412183392 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 3beb79f20f2b..932bd373d7ae 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 40d6351301de..53ca2b9b09e1 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)}}
- |
@@ -119,33 +133,47 @@
{{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}}
-
+
{{svg "octicon-git-branch"}}
{{end}}
{{if $.EnableFeed}}
-
+
{{svg "octicon-rss"}}
{{end}}
{{if and (not .IsDeleted) (not $.DisableDownloadSourceArchives)}}
-
+
{{svg "octicon-download"}}
+
+ {{end}}
+ {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted) (not $.IsMirror)}}
+
+ {{svg "octicon-pencil"}}
{{end}}
{{if and $.IsWriter (not $.IsMirror) (not $.Repository.IsArchived) (not .IsProtected)}}
{{if .IsDeleted}}
-
+
{{svg "octicon-reply"}}
{{else}}
-
+
{{svg "octicon-trash"}}
{{end}}
@@ -173,29 +201,43 @@
{{template "base/modal_actions_confirm" .}}
-
+
-
-
- {{.locale.Tr "settings.cancel"}}
- {{.locale.Tr "repo.branch.confirm_create_branch"}}
-
-
+
{{template "base/footer" .}}
diff --git a/templates/repo/settings/branches.tmpl b/templates/repo/settings/branches.tmpl
index 8023d39fed0e..9a8c5880f78c 100644
--- a/templates/repo/settings/branches.tmpl
+++ b/templates/repo/settings/branches.tmpl
@@ -60,28 +60,6 @@
-
- {{if $.Repository.CanCreateBranch}}
-
-
- {{end}}
{{end}}
diff --git a/web_src/css/modules/modal.css b/web_src/css/modules/modal.css
index 1bf55ea4ccf1..3baaaf9ff2b6 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 946f7f90a447..e7c2645dcd8a 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));
+ });
+}
|