diff options
Diffstat (limited to 'templates/package/shared')
-rw-r--r-- | templates/package/shared/cargo.tmpl | 27 | ||||
-rw-r--r-- | templates/package/shared/cleanup_rules/edit.tmpl | 73 | ||||
-rw-r--r-- | templates/package/shared/cleanup_rules/list.tmpl | 56 | ||||
-rw-r--r-- | templates/package/shared/cleanup_rules/preview.tmpl | 34 | ||||
-rw-r--r-- | templates/package/shared/list.tmpl | 57 | ||||
-rw-r--r-- | templates/package/shared/versionlist.tmpl | 37 |
6 files changed, 284 insertions, 0 deletions
diff --git a/templates/package/shared/cargo.tmpl b/templates/package/shared/cargo.tmpl new file mode 100644 index 0000000..5b0f639 --- /dev/null +++ b/templates/package/shared/cargo.tmpl @@ -0,0 +1,27 @@ +<h4 class="ui top attached header"> + {{ctx.Locale.Tr "packages.owner.settings.cargo.title"}} +</h4> +<div class="ui attached segment"> + <div class="ui form"> + {{if .CargoIndexExists}} + <div class="field"> + <label>{{ctx.Locale.Tr "packages.owner.settings.cargo.rebuild.description"}}</label> + </div> + <form class="field" action="{{.Link}}/cargo/rebuild" method="post"> + {{.CsrfTokenHtml}} + <button class="ui primary button">{{ctx.Locale.Tr "packages.owner.settings.cargo.rebuild"}}</button> + </form> + {{else}} + <div class="field"> + <label>{{ctx.Locale.Tr "packages.owner.settings.cargo.initialize.description"}}</label> + </div> + <form class="field" action="{{.Link}}/cargo/initialize" method="post"> + {{.CsrfTokenHtml}} + <button class="ui primary button">{{ctx.Locale.Tr "packages.owner.settings.cargo.initialize"}}</button> + </form> + {{end}} + <div class="field"> + <label>{{ctx.Locale.Tr "packages.registry.documentation" "Cargo" "https://forgejo.org/docs/latest/user/packages/cargo/"}}</label> + </div> + </div> +</div> diff --git a/templates/package/shared/cleanup_rules/edit.tmpl b/templates/package/shared/cleanup_rules/edit.tmpl new file mode 100644 index 0000000..138a907 --- /dev/null +++ b/templates/package/shared/cleanup_rules/edit.tmpl @@ -0,0 +1,73 @@ +<h4 class="ui top attached header">{{if .IsEditRule}}{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.edit"}}{{else}}{{ctx.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>{{ctx.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>{{ctx.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>{{ctx.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="divider"></div> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.title"}}</p> + <div class="field {{if .Err_KeepCount}}error{{end}}"> + <label>{{ctx.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">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.1"}}</option> + <option{{if eq .CleanupRule.KeepCount 5}} selected="selected"{{end}} value="5">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 5}}</option> + <option{{if eq .CleanupRule.KeepCount 10}} selected="selected"{{end}} value="10">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 10}}</option> + <option{{if eq .CleanupRule.KeepCount 25}} selected="selected"{{end}} value="25">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 25}}</option> + <option{{if eq .CleanupRule.KeepCount 50}} selected="selected"{{end}} value="50">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 50}}</option> + <option{{if eq .CleanupRule.KeepCount 100}} selected="selected"{{end}} value="100">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" 100}}</option> + </select> + </div> + <div class="field {{if .Err_KeepPattern}}error{{end}}"> + <label>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.pattern"}}:</label> + <input name="keep_pattern" type="text" value="{{.CleanupRule.KeepPattern}}"> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.pattern.container"}}</p> + </div> + <div class="divider"></div> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.remove.title"}}</p> + <div class="field {{if .Err_RemoveDays}}error{{end}}"> + <label>{{ctx.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">{{ctx.Locale.Tr "tool.days" 7}}</option> + <option{{if eq .CleanupRule.RemoveDays 14}} selected="selected"{{end}} value="14">{{ctx.Locale.Tr "tool.days" 14}}</option> + <option{{if eq .CleanupRule.RemoveDays 30}} selected="selected"{{end}} value="30">{{ctx.Locale.Tr "tool.days" 30}}</option> + <option{{if eq .CleanupRule.RemoveDays 60}} selected="selected"{{end}} value="60">{{ctx.Locale.Tr "tool.days" 60}}</option> + <option{{if eq .CleanupRule.RemoveDays 90}} selected="selected"{{end}} value="90">{{ctx.Locale.Tr "tool.days" 90}}</option> + <option{{if eq .CleanupRule.RemoveDays 180}} selected="selected"{{end}} value="180">{{ctx.Locale.Tr "tool.days" 180}}</option> + </select> + </div> + <div class="field {{if .Err_RemovePattern}}error{{end}}"> + <label>{{ctx.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 primary button" name="action" value="save">{{ctx.Locale.Tr "save"}}</button> + <button class="ui red button" name="action" value="remove">{{ctx.Locale.Tr "remove"}}</button> + <a class="ui button" href="{{.Link}}/preview">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.preview"}}</a> + {{else}} + <button class="ui primary button" name="action" value="save">{{ctx.Locale.Tr "add"}}</button> + {{end}} + </div> + </form> +</div> diff --git a/templates/package/shared/cleanup_rules/list.tmpl b/templates/package/shared/cleanup_rules/list.tmpl new file mode 100644 index 0000000..ba1683b --- /dev/null +++ b/templates/package/shared/cleanup_rules/list.tmpl @@ -0,0 +1,56 @@ +<h4 class="ui top attached header"> + {{ctx.Locale.Tr "packages.owner.settings.cleanuprules.title"}} + <div class="ui right"> + <a class="ui primary tiny button" href="{{.Link}}/rules/add">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.add"}}</a> + </div> +</h4> +<div class="ui attached segment"> + <div class="flex-list"> + {{range .CleanupRules}} + <div class="flex-item"> + <div class="flex-item-leading"> + {{svg .Type.SVGName 32}} + </div> + <div class="flex-item-main"> + <div class="flex-item-title"> + <a class="item" href="{{$.Link}}/rules/{{.ID}}">{{.Type.Name}}</a> + </div> + <div class="flex-item-body"> + <p>{{if .Enabled}}{{ctx.Locale.Tr "enabled"}}{{else}}{{ctx.Locale.Tr "disabled"}}{{end}}</p> + </div> + {{if .KeepCount}} + <div class="flex-item-body"> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count"}}:</p> {{if eq .KeepCount 1}}{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.1"}}{{else}}{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.count.n" .KeepCount}}{{end}} + </div> + {{end}} + {{if .KeepPattern}} + <div class="flex-item-body"> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.keep.pattern"}}:</p> {{StringUtils.EllipsisString .KeepPattern 100}} + </div> + {{end}} + {{if .RemoveDays}} + <div class="flex-item-body"> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.remove.days"}}:</p> {{ctx.Locale.Tr "tool.days" .RemoveDays}} + </div> + {{end}} + {{if .RemovePattern}} + <div class="flex-item-body"> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.remove.pattern"}}:</p> {{StringUtils.EllipsisString .RemovePattern 100}} + </div> + {{end}} + </div> + <div class="flex-item-trailing"> + <div class="ui dropdown tiny basic button"> + {{svg "octicon-kebab-horizontal"}} + <div class="menu"> + <a class="item" href="{{$.Link}}/rules/{{.ID}}">{{ctx.Locale.Tr "edit"}}</a> + <a class="item" href="{{$.Link}}/rules/{{.ID}}/preview">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.preview"}}</a> + </div> + </div> + </div> + </div> + {{else}} + <div class="item">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.none"}}</div> + {{end}} + </div> +</div> diff --git a/templates/package/shared/cleanup_rules/preview.tmpl b/templates/package/shared/cleanup_rules/preview.tmpl new file mode 100644 index 0000000..0d9c4b0 --- /dev/null +++ b/templates/package/shared/cleanup_rules/preview.tmpl @@ -0,0 +1,34 @@ +<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.preview"}}</h4> +<div class="ui attached segment"> + <p>{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.preview.overview" (len .VersionsToRemove)}}</p> +</div> +<div class="ui attached table segment"> + <table class="ui very basic striped table unstackable"> + <thead> + <tr> + <th>{{ctx.Locale.Tr "admin.packages.type"}}</th> + <th>{{ctx.Locale.Tr "admin.packages.name"}}</th> + <th>{{ctx.Locale.Tr "admin.packages.version"}}</th> + <th>{{ctx.Locale.Tr "admin.packages.creator"}}</th> + <th>{{ctx.Locale.Tr "admin.packages.size"}}</th> + <th>{{ctx.Locale.Tr "admin.packages.published"}}</th> + </tr> + </thead> + <tbody> + {{range .VersionsToRemove}} + <tr> + <td>{{.Package.Type.Name}}</td> + <td>{{.Package.Name}}</td> + <td><a href="{{.VersionWebLink}}">{{.Version.Version}}</a></td> + <td><a href="{{.Creator.HomeLink}}">{{.Creator.Name}}</a></td> + <td>{{ctx.Locale.TrSize .CalculateBlobSize}}</td> + <td>{{DateTime "short" .Version.CreatedUnix}}</td> + </tr> + {{else}} + <tr> + <td colspan="6">{{ctx.Locale.Tr "packages.owner.settings.cleanuprules.preview.none"}}</td> + </tr> + {{end}} + </tbody> + </table> +</div> diff --git a/templates/package/shared/list.tmpl b/templates/package/shared/list.tmpl new file mode 100644 index 0000000..36f8bc1 --- /dev/null +++ b/templates/package/shared/list.tmpl @@ -0,0 +1,57 @@ +{{template "base/alert" .}} +{{if .HasPackages}} +<form class="ui form ignore-dirty"> + <div class="ui small fluid action input"> + {{template "shared/search/input" dict "Value" .Query "Placeholder" (ctx.Locale.Tr "search.package_kind")}} + <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> +{{end}} +<div> + {{range .PackageDescriptors}} + <div class="flex-list"> + <div class="flex-item"> + <div class="flex-item-main"> + <div class="flex-item-title"> + <a href="{{.VersionWebLink}}">{{.Package.Name}}</a> + <span class="ui label">{{svg .Package.Type.SVGName 16}} {{.Package.Type.Name}}</span> + </div> + <div class="flex-item-body"> + {{$timeStr := TimeSinceUnix .Version.CreatedUnix ctx.Locale}} + {{$hasRepositoryAccess := false}} + {{if .Repository}} + {{$hasRepositoryAccess = index $.RepositoryAccessMap .Repository.ID}} + {{end}} + {{if $hasRepositoryAccess}} + {{ctx.Locale.Tr "packages.published_by_in" $timeStr .Creator.HomeLink .Creator.GetDisplayName .Repository.Link .Repository.FullName}} + {{else}} + {{ctx.Locale.Tr "packages.published_by" $timeStr .Creator.HomeLink .Creator.GetDisplayName}} + {{end}} + </div> + </div> + </div> + </div> + {{else}} + {{if not .HasPackages}} + <div class="empty-placeholder"> + {{svg "octicon-package" 48}} + <h2>{{ctx.Locale.Tr "packages.empty"}}</h2> + {{if and .Repository .CanWritePackages}} + {{$packagesUrl := URLJoin .Owner.HomeLink "-" "packages"}} + <p>{{ctx.Locale.Tr "packages.empty.repo" $packagesUrl}}</p> + {{end}} + <p>{{ctx.Locale.Tr "packages.empty.documentation" "https://forgejo.org/docs/latest/user/packages/"}}</p> + </div> + {{else}} + <p class="tw-py-4">{{ctx.Locale.Tr "packages.filter.no_result"}}</p> + {{end}} + {{end}} + {{template "base/paginate" .}} +</div> diff --git a/templates/package/shared/versionlist.tmpl b/templates/package/shared/versionlist.tmpl new file mode 100644 index 0000000..e5c568e --- /dev/null +++ b/templates/package/shared/versionlist.tmpl @@ -0,0 +1,37 @@ +<p><a href="{{.PackageDescriptor.PackageWebLink}}">{{.PackageDescriptor.Package.Name}}</a> / <strong>{{ctx.Locale.Tr "packages.versions"}}</strong></p> +<form class="ui form ignore-dirty"> + <div class="ui small fluid action input"> + {{template "shared/search/input" dict "Value" .Query "Placeholder" (ctx.Locale.Tr "search.package_kind")}} + <select class="ui small dropdown" name="sort"> + <option value="version_asc"{{if eq .Sort "version_asc"}} selected="selected"{{end}}>{{ctx.Locale.Tr "filter.string.asc"}}</option> + <option value="version_desc"{{if eq .Sort "version_desc"}} selected="selected"{{end}}>{{ctx.Locale.Tr "filter.string.desc"}}</option> + <option value="created_asc"{{if eq .Sort "created_asc"}} selected="selected"{{end}}>{{ctx.Locale.Tr "repo.issues.filter_sort.oldest"}}</option> + <option value="created_desc"{{if or (eq .Sort "") (eq .Sort "created_desc")}} selected="selected"{{end}}>{{ctx.Locale.Tr "repo.issues.filter_sort.latest"}}</option> + </select> + {{if eq .PackageDescriptor.Package.Type "container"}} + <select class="ui small dropdown" name="tagged"> + {{$isTagged := or (eq .Tagged "") (eq .Tagged "tagged")}} + <option value="tagged"{{if $isTagged}} selected="selected"{{end}}>{{ctx.Locale.Tr "packages.filter.container.tagged"}}</option> + <option value="untagged"{{if not $isTagged}} selected="selected"{{end}}>{{ctx.Locale.Tr "packages.filter.container.untagged"}}</option> + </select> + {{end}} + {{template "shared/search/button"}} + </div> +</form> +<div> + {{range .PackageDescriptors}} + <div class="flex-list"> + <div class="flex-item"> + <div class="flex-item-main"> + <a class="flex-item-title" href="{{.VersionWebLink}}">{{.Version.LowerVersion}}</a> + <div class="flex-item-body"> + {{ctx.Locale.Tr "packages.published_by" (TimeSinceUnix .Version.CreatedUnix ctx.Locale) .Creator.HomeLink .Creator.GetDisplayName}} + </div> + </div> + </div> + </div> + {{else}} + <p class="tw-py-4">{{ctx.Locale.Tr "packages.filter.no_result"}}</p> + {{end}} + {{template "base/paginate" .}} +</div> |