mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-30 00:57:42 +01:00
32db62515f
Fixes #20514 Fixes #20766 Fixes #20631 This PR adds Cleanup Rules for the package registry. This allows to delete unneeded packages automatically. Cleanup rules can be set up from the user or org settings. Please have a look at the documentation because I'm not a native english speaker. Rule Form ![grafik](https://user-images.githubusercontent.com/1666336/199330792-c13918a6-e196-4e71-9f53-18554515edca.png) Rule List ![grafik](https://user-images.githubusercontent.com/1666336/199331261-5f6878e8-a80c-4985-800d-ebb3524b1a8d.png) Rule Preview ![grafik](https://user-images.githubusercontent.com/1666336/199330917-c95e4017-cf64-4142-a3e4-af18c4f127c3.png) Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
73 lines
4.7 KiB
Handlebars
73 lines
4.7 KiB
Handlebars
<h4 class="ui top attached header">{{if .IsEditRule}}{{.locale.Tr "packages.owner.settings.cleanuprules.edit"}}{{else}}{{.locale.Tr "packages.owner.settings.cleanuprules.add"}}{{end}}</h4>
|
|
<div class="ui attached segment">
|
|
<form class="ui form" action="{{.Link}}" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<input name="id" type="hidden" value="{{.CleanupRule.ID}}">
|
|
<div class="field">
|
|
<div class="ui checkbox">
|
|
<label>{{.locale.Tr "enabled"}}</label>
|
|
<input type="checkbox" name="enabled" {{if .CleanupRule.Enabled}}checked{{end}}>
|
|
</div>
|
|
</div>
|
|
<div class="{{if .IsEditRule}}disabled {{end}}field {{if .Err_Type}}error{{end}}">
|
|
<label>{{.locale.Tr "packages.filter.type"}}</label>
|
|
<select class="ui selection dropdown" name="type">
|
|
{{range $type := .AvailableTypes}}
|
|
<option{{if eq $.CleanupRule.Type $type}} selected="selected"{{end}} value="{{$type}}">{{$type.Name}}</option>
|
|
{{end}}
|
|
</select>
|
|
</div>
|
|
<div class="field">
|
|
<div class="ui checkbox">
|
|
<label>{{.locale.Tr "packages.owner.settings.cleanuprules.pattern_full_match"}}</label>
|
|
<input type="checkbox" name="match_full_name" {{if .CleanupRule.MatchFullName}}checked{{end}}>
|
|
</div>
|
|
</div>
|
|
<div class="ui divider"></div>
|
|
<p>{{.locale.Tr "packages.owner.settings.cleanuprules.keep.title"}}</p>
|
|
<div class="field {{if .Err_KeepCount}}error{{end}}">
|
|
<label>{{.locale.Tr "packages.owner.settings.cleanuprules.keep.count"}}:</label>
|
|
<select class="ui selection dropdown" name="keep_count">
|
|
<option{{if eq .CleanupRule.KeepCount 0}} selected="selected"{{end}} value="0"></option>
|
|
<option{{if eq .CleanupRule.KeepCount 1}} selected="selected"{{end}} value="1">{{.locale.Tr "packages.owner.settings.cleanuprules.keep.count.1"}}</option>
|
|
<option{{if eq .CleanupRule.KeepCount 5}} selected="selected"{{end}} value="5">{{.locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 5}}</option>
|
|
<option{{if eq .CleanupRule.KeepCount 10}} selected="selected"{{end}} value="10">{{.locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 10}}</option>
|
|
<option{{if eq .CleanupRule.KeepCount 25}} selected="selected"{{end}} value="25">{{.locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 25}}</option>
|
|
<option{{if eq .CleanupRule.KeepCount 50}} selected="selected"{{end}} value="50">{{.locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 50}}</option>
|
|
<option{{if eq .CleanupRule.KeepCount 100}} selected="selected"{{end}} value="100">{{.locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 100}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="field {{if .Err_KeepPattern}}error{{end}}">
|
|
<label>{{.locale.Tr "packages.owner.settings.cleanuprules.keep.pattern"}}:</label>
|
|
<input name="keep_pattern" type="text" value="{{.CleanupRule.KeepPattern}}">
|
|
<p>{{.locale.Tr "packages.owner.settings.cleanuprules.keep.pattern.container" | Safe}}</p>
|
|
</div>
|
|
<div class="ui divider"></div>
|
|
<p>{{.locale.Tr "packages.owner.settings.cleanuprules.remove.title"}}</p>
|
|
<div class="field {{if .Err_RemoveDays}}error{{end}}">
|
|
<label>{{.locale.Tr "packages.owner.settings.cleanuprules.remove.days"}}:</label>
|
|
<select class="ui selection dropdown" name="remove_days">
|
|
<option{{if eq .CleanupRule.RemoveDays 0}} selected="selected"{{end}} value="0"></option>
|
|
<option{{if eq .CleanupRule.RemoveDays 7}} selected="selected"{{end}} value="7">{{.locale.Tr "tool.days" 7}}</option>
|
|
<option{{if eq .CleanupRule.RemoveDays 14}} selected="selected"{{end}} value="14">{{.locale.Tr "tool.days" 14}}</option>
|
|
<option{{if eq .CleanupRule.RemoveDays 30}} selected="selected"{{end}} value="30">{{.locale.Tr "tool.days" 30}}</option>
|
|
<option{{if eq .CleanupRule.RemoveDays 60}} selected="selected"{{end}} value="60">{{.locale.Tr "tool.days" 60}}</option>
|
|
<option{{if eq .CleanupRule.RemoveDays 90}} selected="selected"{{end}} value="90">{{.locale.Tr "tool.days" 90}}</option>
|
|
<option{{if eq .CleanupRule.RemoveDays 180}} selected="selected"{{end}} value="180">{{.locale.Tr "tool.days" 180}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="field {{if .Err_RemovePattern}}error{{end}}">
|
|
<label>{{.locale.Tr "packages.owner.settings.cleanuprules.remove.pattern"}}:</label>
|
|
<input name="remove_pattern" type="text" value="{{.CleanupRule.RemovePattern}}">
|
|
</div>
|
|
<div class="field">
|
|
{{if .IsEditRule}}
|
|
<button class="ui green button" name="action" value="save">{{.locale.Tr "save"}}</button>
|
|
<button class="ui red button" name="action" value="remove">{{.locale.Tr "remove"}}</button>
|
|
<a class="ui button" href="{{.Link}}/preview">{{.locale.Tr "packages.owner.settings.cleanuprules.preview"}}</a>
|
|
{{else}}
|
|
<button class="ui green button" name="action" value="save">{{.locale.Tr "add"}}</button>
|
|
{{end}}
|
|
</div>
|
|
</form>
|
|
</div>
|