Files
gitea/templates/repo/settings/branches.tmpl
T
silverwindandwxiaoguang e645afbb3f refactor: replace Fomantic modal with native dialog (#39846)
Replace Fomantic's hard-forked jQuery modal with native `<dialog>`
elements, advancing https://github.com/go-gitea/gitea/issues/29849. The
UI is visually unchanged. Dialogs open with `show()` over an `inert`
page, so tooltips, popups and toasts mounted on `<body>` stay usable
above them, unlike with `showModal()`
(https://github.com/whatwg/html/issues/9936).

- Remove the Fomantic modal and dimmer, add `showModal` and `hideModal`
- Declare modals as `<dialog class="modal-dialog">`, shown inside a
`.modal-backdrop`, instead of `ui modal` with its unused size classes
- Remove two modals that could never be opened
- Block the page while a modal is open, close the topmost one on Escape
and restore focus to its opener
- Allow stacked modals, use a confirm modal instead of `window.confirm`
for deleting content history
- Hide popups and toasts when a modal opens or closes
- Keep the release notes modal open when generating notes fails

Fixes: https://github.com/go-gitea/gitea/issues/39643
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2026-10-20 12:32:27 +02:00

75 lines
3.3 KiB
Handlebars

{{template "repo/settings/layout_head" (dict "pageClass" "repository settings edit")}}
<div class="repo-setting-content">
{{if .Repository.IsArchived}}
<div class="ui warning message tw-text-center">
{{ctx.Locale.Tr "repo.settings.archive.branchsettings_unavailable"}}
</div>
{{else}}
<h4 class="ui top attached header">
{{ctx.Locale.Tr "repo.default_branch"}}
</h4>
<div class="ui attached segment">
<p>{{ctx.Locale.Tr "repo.settings.default_branch_desc"}}</p>
<form class="ui form" action="{{.Link}}" method="post">
<input type="hidden" name="action" value="default_branch">
<div class="flex-text-block">
<div class="ui dropdown selection search tw-flex-1 tw-mr-2 tw-max-w-96">
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<input type="hidden" name="branch" value="{{.Repository.DefaultBranch}}">
<div class="default text">{{.Repository.DefaultBranch}}</div>
<div class="menu">
{{range .Branches}}
<div class="item" data-value="{{.}}">{{.}}</div>
{{end}}
</div>
</div>
<button type="submit" class="ui primary button"{{if .Repository.IsEmpty}} disabled{{end}}>{{ctx.Locale.Tr "repo.settings.branches.update_default_branch"}}</button>
</div>
<div class="help tw-mt-4 tw-p-0">{{ctx.Locale.Tr "repo.settings.default_target_branch_desc"}}</div>
</form>
</div>
<h4 class="ui top attached header">
{{ctx.Locale.Tr "repo.settings.protected_branch"}}
<div class="ui right">
<a class="ui primary tiny button" href="{{$.Repository.Link}}/settings/branches/edit">{{ctx.Locale.Tr "repo.settings.branches.add_new_rule"}}</a>
</div>
</h4>
<div class="ui attached segment">
<div class="flex-divided-list items-with-main" id="protected-branches-list" data-update-priority-url="{{$.Repository.Link}}/settings/branches/priority">
{{range .ProtectedBranches}}
<div class="item tw-items-center" data-id="{{.ID}}" >
<div class="drag-handle tw-cursor-grab">
{{svg "octicon-grabber" 16}}
</div>
<div class="item-main">
<div class="item-title">
<div class="ui basic primary label">{{.RuleName}}</div>
</div>
</div>
<div class="item-trailing">
<a class="ui tiny button" href="{{$.Repository.Link}}/settings/branches/edit?rule_name={{.RuleName}}">{{ctx.Locale.Tr "repo.settings.edit_protected_branch"}}</a>
<button type="button" class="ui red tiny button link-action" data-modal-confirm="#repo-branch-protection-delete-modal" data-url="{{$.Repository.Link}}/settings/branches/{{.ID}}/delete?id={{.ID}}">
{{ctx.Locale.Tr "repo.settings.protected_branch.delete_rule"}}
</button>
</div>
</div>
{{else}}
<div class="item tw-text-center">
{{ctx.Locale.Tr "repo.settings.no_protected_branch"}}
</div>
{{end}}
</div>
</div>
{{end}}
</div>
<dialog class="modal-dialog" id="repo-branch-protection-delete-modal">
<div class="header">{{svg "octicon-trash"}} {{ctx.Locale.Tr "repo.settings.protected_branch_deletion"}}</div>
<div class="content"><p>{{ctx.Locale.Tr "repo.settings.protected_branch_deletion_desc"}}</p></div>
{{template "base/modal_actions_confirm" .}}
</dialog>
{{template "repo/settings/layout_footer" .}}