mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-26 06:16:56 +09:00
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>
118 lines
5.0 KiB
Handlebars
118 lines
5.0 KiB
Handlebars
{{template "user/settings/layout_head" (dict "pageClass" "user settings repos")}}
|
|
<div class="user-setting-content">
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "settings.repos"}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
{{if or .allowAdopt .allowDelete}}
|
|
{{if .Dirs}}
|
|
<div class="ui list">
|
|
{{range $dirI, $dir := .Dirs}}
|
|
{{$repo := index $.ReposMap $dir}}
|
|
<div class="item {{if not $repo}}tw-py-1{{end}}">{{/* if not repo, then there are "adapt" buttons, so the padding shouldn't be that default large*/}}
|
|
<div class="content">
|
|
{{if $repo}}
|
|
{{if $repo.IsPrivate}}
|
|
<span class="tw-text-gold icon">{{svg "octicon-lock"}}</span>
|
|
{{else if $repo.IsFork}}
|
|
<span class="icon">{{svg "octicon-repo-forked"}}</span>
|
|
{{else if $repo.IsMirror}}
|
|
<span class="icon">{{svg "octicon-mirror"}}</span>
|
|
{{else if $repo.IsTemplate}}
|
|
<span class="icon">{{svg "octicon-repo-template"}}</span>
|
|
{{else}}
|
|
<span class="icon">{{svg "octicon-repo"}}</span>
|
|
{{end}}
|
|
<a class="muted name" href="{{$repo.Link}}">{{$repo.OwnerName}}/{{$repo.Name}}</a>
|
|
<span class="tw-text-text-light-3" {{if not (eq $repo.Size 0)}} data-tooltip-content="{{$repo.SizeDetailsString}}"{{end}}>{{FormatByteSize $repo.Size}}</span>
|
|
{{if $repo.IsFork}}
|
|
{{ctx.Locale.Tr "repo.forked_from"}}
|
|
<span><a href="{{$repo.BaseRepo.Link}}">{{$repo.BaseRepo.OwnerName}}/{{$repo.BaseRepo.Name}}</a></span>
|
|
{{end}}
|
|
{{else}}
|
|
<span class="icon tw-inline-block tw-pt-2">{{svg "octicon-file-directory-fill"}}</span>
|
|
<span class="name tw-inline-block tw-pt-2">{{$.ContextUser.Name}}/{{$dir}}</span>
|
|
<div class="tw-float-right">
|
|
{{if $.allowAdopt}}
|
|
<button type="button" class="ui button primary show-modal tw-p-2" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{ctx.Locale.Tr "repo.adopt_preexisting_label"}}</span></button>
|
|
<dialog class="modal-dialog" id="adopt-unadopted-modal-{{$dirI}}">
|
|
<div class="header">
|
|
<span class="label">{{ctx.Locale.Tr "repo.adopt_preexisting"}}</span>
|
|
</div>
|
|
<div class="content">
|
|
<p>{{ctx.Locale.Tr "repo.adopt_preexisting_content" $dir}}</p>
|
|
</div>
|
|
<form class="ui form" method="post" action="{{AppSubUrl}}/user/settings/repos/unadopted">
|
|
<input type="hidden" name="id" value="{{$dir}}">
|
|
<input type="hidden" name="action" value="adopt">
|
|
{{template "base/modal_actions_confirm" $}}
|
|
</form>
|
|
</dialog>
|
|
{{end}}
|
|
{{if $.allowDelete}}
|
|
<button type="button" class="ui button red show-modal tw-p-2" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{ctx.Locale.Tr "repo.delete_preexisting_label"}}</span></button>
|
|
<dialog class="modal-dialog" id="delete-unadopted-modal-{{$dirI}}">
|
|
<div class="header">
|
|
<span class="label">{{ctx.Locale.Tr "repo.delete_preexisting"}}</span>
|
|
</div>
|
|
<div class="content">
|
|
<p>{{ctx.Locale.Tr "repo.delete_preexisting_content" $dir}}</p>
|
|
</div>
|
|
<form class="ui form" method="post" action="{{AppSubUrl}}/user/settings/repos/unadopted">
|
|
<input type="hidden" name="id" value="{{$dir}}">
|
|
<input type="hidden" name="action" value="delete">
|
|
{{template "base/modal_actions_confirm" $}}
|
|
</form>
|
|
</dialog>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{template "base/paginate" .}}
|
|
{{else}}
|
|
<div class="item">
|
|
{{ctx.Locale.Tr "settings.repos_none"}}
|
|
</div>
|
|
{{end}}
|
|
{{else}}
|
|
{{if .Repos}}
|
|
<div class="ui list">
|
|
{{range .Repos}}
|
|
<div class="item">
|
|
<div class="content flex-text-block">
|
|
{{if .IsPrivate}}
|
|
{{svg "octicon-lock" 16 "tw-text-gold"}}
|
|
{{else if .IsFork}}
|
|
{{svg "octicon-repo-forked"}}
|
|
{{else if .IsMirror}}
|
|
{{svg "octicon-mirror"}}
|
|
{{else if .IsTemplate}}
|
|
{{svg "octicon-repo-template"}}
|
|
{{else}}
|
|
{{svg "octicon-repo"}}
|
|
{{end}}
|
|
<a class="name" href="{{.Link}}">{{.OwnerName}}/{{.Name}}</a>
|
|
<span>{{FormatByteSize .Size}}</span>
|
|
{{if .IsFork}}
|
|
{{ctx.Locale.Tr "repo.forked_from"}}
|
|
<span><a href="{{.BaseRepo.Link}}">{{.BaseRepo.OwnerName}}/{{.BaseRepo.Name}}</a></span>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{template "base/paginate" .}}
|
|
{{else}}
|
|
<div class="item">
|
|
{{ctx.Locale.Tr "settings.repos_none"}}
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
|
|
{{template "user/settings/layout_footer" .}}
|