Files
gitea/templates/admin/notice.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

70 lines
2.6 KiB
Handlebars

{{template "admin/layout_head" (dict "pageClass" "admin notice")}}
<div class="admin-setting-content">
<h4 class="ui top attached header">
{{ctx.Locale.Tr "admin.notices.system_notice_list"}} ({{ctx.Locale.Tr "admin.total" .Total}})
</h4>
<table class="ui attached segment select selectable table unstackable g-table-auto-ellipsis">
<thead>
<tr>
<th></th>
<th>ID</th>
<th>{{ctx.Locale.Tr "admin.notices.type"}}</th>
<th>{{ctx.Locale.Tr "admin.notices.desc"}}</th>
<th>{{ctx.Locale.Tr "admin.users.created"}}</th>
<th>{{ctx.Locale.Tr "admin.notices.op"}}</th>
</tr>
</thead>
<tbody>
{{range .Notices}}
<tr>
<td><div class="ui checkbox tw-flex" data-id="{{.ID}}"><input type="checkbox"></div></td>
<td>{{.ID}}</td>
<td>{{ctx.Locale.Tr .TrStr}}</td>
<td class="view-detail auto-ellipsis tw-w-4/5"><span class="notice-description">{{.Description}}</span></td>
<td nowrap>{{DateUtils.AbsoluteShort .CreatedUnix}}</td>
<td class="view-detail"><a href="#">{{svg "octicon-note" 16}}</a></td>
</tr>
{{else}}
<tr><td class="tw-text-center" colspan="6">{{ctx.Locale.Tr "no_results_found"}}</td></tr>
{{end}}
</tbody>
{{if .Notices}}
<tfoot>
<tr>
<th></th>
<th colspan="5">
<form class="tw-float-right" method="post" action="{{AppSubUrl}}/-/admin/notices/empty">
<button type="submit" class="ui red small button">{{ctx.Locale.Tr "admin.notices.delete_all"}}</button>
</form>
<div class="ui floating upward dropdown small button">
<span class="text">{{ctx.Locale.Tr "admin.notices.operations"}}</span>
<div class="menu">
<div class="item select action" data-action="select-all">
{{ctx.Locale.Tr "admin.notices.select_all"}}
</div>
<div class="item select action" data-action="deselect-all">
{{ctx.Locale.Tr "admin.notices.deselect_all"}}
</div>
<div class="item select action" data-action="inverse">
{{ctx.Locale.Tr "admin.notices.inverse_selection"}}
</div>
</div>
</div>
<button type="button" class="ui small button" id="delete-selection" data-link="{{.Link}}/delete">
<span class="text">{{ctx.Locale.Tr "admin.notices.delete_selected"}}</span>
</button>
</th>
</tr>
</tfoot>
{{end}}
</table>
{{template "base/paginate" .}}
</div>
<dialog class="modal-dialog admin" id="detail-modal">
<div class="header">{{ctx.Locale.Tr "admin.notices.view_detail_header"}}</div>
<div class="content"><pre></pre></div>
</dialog>
{{template "admin/layout_footer" .}}