forgejo-federation/templates/repo/settings/lfs_pointers.tmpl
wxiaoguang 385dc6a992
Allow admin to associate missing LFS objects for repositories (#18143)
This PR reworked the Find pointer files feature in Settings -> LFS page.

When a LFS object is missing from database but exists in LFS content store, admin can associate it to the repository by clicking the Associate button.

This PR is not perfect (because the LFS module itself should be improved too), it's just a nice-to-have feature to help users recover their LFS repositories (eg: database was lost / table was truncated)
2022-01-01 17:05:31 +08:00

71 lines
2.7 KiB
Handlebars

{{template "base/head" .}}
<div class="page-content repository settings lfs">
{{template "repo/header" .}}
{{template "repo/settings/navbar" .}}
<div class="ui container">
{{template "base/alert" .}}
<h4 class="ui top attached header">
{{.i18n.Tr "repo.settings.lfs_pointers.found" .NumPointers .NumAssociated .NumNotAssociated .NumNoExist }}
{{if gt .NumAssociatable 0}}
<div class="ui right">
<form class="ui form" method="post" action="{{$.Link}}/associate">
{{.CsrfTokenHtml}}
{{range .Pointers}}
{{if .Associatable}}
<input type="hidden" name="oid" value="{{.Oid}} {{.Size}}"/>
{{end}}
{{end}}
<button class="ui green button">{{$.i18n.Tr "repo.settings.lfs_pointers.associateAccessible" $.NumAssociatable}}</button>
</form>
</div>
{{end}}
</h4>
<div class="ui attached segment">
<table id="lfs-files-table" class="ui fixed single line table">
<thead>
<tr>
<th class="three wide">{{.i18n.Tr "repo.settings.lfs_pointers.sha"}}</th>
<th class="four wide">{{.i18n.Tr "repo.settings.lfs_pointers.oid"}}</th>
<th class="three wide"></th>
<th class="two wide">{{.i18n.Tr "repo.settings.lfs_pointers.inRepo"}}</th>
<th class="two wide">{{.i18n.Tr "repo.settings.lfs_pointers.exists"}}</th>
<th class="two wide">{{.i18n.Tr "repo.settings.lfs_pointers.accessible"}}</th>
</tr>
</thead>
<tbody>
{{range .Pointers}}
<tr>
<td>
<span class="text sha label" title="{{.SHA}}">
<a href="{{$.RepoLink}}/raw/blob/{{.SHA}}" rel="nofollow" target="_blank" class="ui detail icon button truncate">
{{ShortSha .SHA}}
</a>
</span>
</td>
<td>
<span class="text sha label" title="{{.Oid}}">
{{if and .Exists .InRepo}}
<a href="{{$.LFSFilesLink}}/show/{{.Oid}}" rel="nofollow" target="_blank" class="ui text detail icon button brown truncate">
{{ShortSha .Oid}}
</a>
{{else}}
<span class="ui detail icon button brown disabled truncate">
{{ShortSha .Oid}}
</span>
{{end}}
</span>
</td>
<td>
<a class="ui blue show-panel button" href="{{$.LFSFilesLink}}/find?oid={{.Oid}}&size={{.Size}}&sha={{.SHA}}">{{$.i18n.Tr "repo.settings.lfs_findcommits"}}</a>
</td>
<td>{{if .InRepo}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</td>
<td>{{if .Exists}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</td>
<td>{{if .Accessible}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</td>
</tr>
{{end}}
</tbody>
</table>
</div>
</div>
</div>
{{template "base/footer" .}}