mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-19 17:01:12 +00:00
All instances should have a `data-modal-id` now. Throw a user-friendly error if this is not the case (custom templates, or missed cases). Checked via `rg -P -e '^(?=.*delete-button)' | grep -v "data-modal-id"` Removed two instances of delete modals and one case of simplified logic. ## Rationale I am currently surveying the existing modals in Forgejo in the context of eventually replacing the modals implementation with our own modal implementation. This refactor fixes one of the many inconsistencies that the current usage of modals has. It should explicitly specify which modal should be used to avoids any problems if new modals are introduced on the page (for example via https://codeberg.org/forgejo/forgejo/pulls/8662). Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8711 Reviewed-by: oliverpool <oliverpool@noreply.codeberg.org> Co-authored-by: Gusted <postmaster@gusted.xyz> Co-committed-by: Gusted <postmaster@gusted.xyz>
98 lines
4.1 KiB
Go HTML Template
98 lines
4.1 KiB
Go HTML Template
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user")}}
|
|
<div class="admin-setting-content">
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "admin.packages.package_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .TotalCount}},
|
|
{{ctx.Locale.Tr "admin.packages.total_size" (ctx.Locale.TrSize .TotalBlobSize)}},
|
|
{{ctx.Locale.Tr "admin.packages.unreferenced_size" (ctx.Locale.TrSize .TotalUnreferencedBlobSize)}})
|
|
<div class="ui right">
|
|
<form method="post" action="{{AppSubUrl}}/admin/packages/cleanup">
|
|
{{.CsrfTokenHtml}}
|
|
<button class="ui primary tiny button">{{ctx.Locale.Tr "admin.packages.cleanup"}}</button>
|
|
</form>
|
|
</div>
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
<form class="ui form ignore-dirty">
|
|
<div class="ui small fluid action input">
|
|
{{template "shared/search/input" dict "Value" .Query}}
|
|
<select class="ui small dropdown" name="type">
|
|
<option value="">{{ctx.Locale.Tr "packages.filter.type"}}</option>
|
|
<option value="all">{{ctx.Locale.Tr "packages.filter.type.all"}}</option>
|
|
{{range $type := .AvailableTypes}}
|
|
<option{{if eq $.PackageType $type}} selected="selected"{{end}} value="{{$type}}">{{$type.Name}}</option>
|
|
{{end}}
|
|
</select>
|
|
{{template "shared/search/button"}}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="ui attached table segment">
|
|
<table class="ui very basic striped table unstackable">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>{{ctx.Locale.Tr "admin.packages.owner"}}</th>
|
|
<th>{{ctx.Locale.Tr "admin.packages.type"}}</th>
|
|
<th data-sortt-asc="name_asc" data-sortt-desc="name_desc">
|
|
{{ctx.Locale.Tr "admin.packages.name"}}
|
|
{{SortArrow "name_asc" "name_desc" .SortType false}}
|
|
</th>
|
|
<th data-sortt-asc="version_desc" data-sortt-desc="version_asc">
|
|
{{ctx.Locale.Tr "admin.packages.version"}}
|
|
{{SortArrow "version_desc" "version_asc" .SortType false}}
|
|
</th>
|
|
<th>{{ctx.Locale.Tr "admin.packages.creator"}}</th>
|
|
<th>{{ctx.Locale.Tr "admin.packages.repository"}}</th>
|
|
<th>{{ctx.Locale.Tr "admin.packages.size"}}</th>
|
|
<th data-sortt-asc="created_asc" data-sortt-desc="created_desc">
|
|
{{ctx.Locale.Tr "admin.packages.published"}}
|
|
{{SortArrow "created_asc" "created_desc" .SortType true}}
|
|
</th>
|
|
<th>{{ctx.Locale.Tr "admin.notices.op"}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{range .PackageDescriptors}}
|
|
<tr>
|
|
<td>{{.Version.ID}}</td>
|
|
<td>
|
|
<a href="{{.Owner.HomeLink}}">{{.Owner.Name}}</a>
|
|
{{if .Owner.Visibility.IsPrivate}}
|
|
<span class="text gold">{{svg "octicon-lock"}}</span>
|
|
{{end}}
|
|
</td>
|
|
<td>{{.Package.Type.Name}}</td>
|
|
<td class="gt-ellipsis tw-max-w-48">{{.Package.Name}}</td>
|
|
<td class="gt-ellipsis tw-max-w-48"><a href="{{.VersionWebLink}}">{{.Version.Version}}</a></td>
|
|
<td><a href="{{.Creator.HomeLink}}">{{.Creator.Name}}</a></td>
|
|
<td>
|
|
{{if .Repository}}
|
|
<a href="{{.Repository.Link}}">{{.Repository.Name}}</a>
|
|
{{end}}
|
|
</td>
|
|
<td>{{ctx.Locale.TrSize .CalculateBlobSize}}</td>
|
|
<td>{{DateUtils.AbsoluteShort .Version.CreatedUnix}}</td>
|
|
<td><a class="delete-button" href="" data-url="{{$.Link}}/delete?page={{$.Page.Paginater.Current}}&sort={{$.SortType}}" data-id="{{.Version.ID}}" data-name="{{.Package.Name}}" data-data-version="{{.Version.Version}}" data-modal-id="delete-package">{{svg "octicon-trash"}}</a></td>
|
|
</tr>
|
|
{{else}}
|
|
<tr><td class="tw-text-center" colspan="10">{{ctx.Locale.Tr "repo.pulls.no_results"}}</td></tr>
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
{{template "base/paginate" .}}
|
|
</div>
|
|
|
|
<div class="ui g-modal-confirm delete modal" id="delete-package">
|
|
<div class="header">
|
|
{{svg "octicon-trash"}}
|
|
{{ctx.Locale.Tr "packages.settings.delete"}}
|
|
</div>
|
|
<div class="content">
|
|
{{ctx.Locale.Tr "packages.settings.delete.notice" (`<span class="name"></span>`|SafeHTML) (`<span class="dataVersion"></span>`|SafeHTML)}}
|
|
</div>
|
|
{{template "base/modal_actions_confirm" .}}
|
|
</div>
|
|
|
|
{{template "admin/layout_footer" .}}
|