0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-05-16 10:27:36 +02:00

refactor repo settings for LimitSize and new gitea, size can be entered in XX YY where YY is the MiB MB etc

This commit is contained in:
DmitryFrolovTri 2025-12-12 15:21:24 +00:00
parent 56d388e111
commit 4bda9b8d91
No known key found for this signature in database
GPG Key ID: 0FBA4D49377CDDC3
3 changed files with 19 additions and 8 deletions

View File

@ -15,6 +15,7 @@ import (
repo_model "code.gitea.io/gitea/models/repo"
unit_model "code.gitea.io/gitea/models/unit"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/gitrepo"
"code.gitea.io/gitea/modules/indexer/code"
@ -213,18 +214,28 @@ func handleSettingsPostUpdate(ctx *context.Context) {
repo.Website = form.Website
repo.IsTemplate = form.Template
if form.RepoSizeLimit < 0 {
var repoSizeLimit int64
var err error
if form.RepoSizeLimit != "" {
repoSizeLimit, err = base.GetFileSize(form.RepoSizeLimit)
if err != nil {
ctx.Data["Err_RepoSizeLimit"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.invalid_repo_size_limit"), tplSettingsOptions, &form)
return
}
}
if repoSizeLimit < 0 {
ctx.Data["Err_RepoSizeLimit"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.repo_size_limit_negative"), tplSettingsOptions, &form)
return
}
if !ctx.Doer.IsAdmin && repo.SizeLimit != form.RepoSizeLimit {
if !ctx.Doer.IsAdmin && repo.SizeLimit != repoSizeLimit {
ctx.Data["Err_RepoSizeLimit"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.repo_size_limit_only_by_admins"), tplSettingsOptions, &form)
return
}
repo.SizeLimit = form.RepoSizeLimit
repo.SizeLimit = repoSizeLimit
if err := repo_service.UpdateRepository(ctx, repo, false); err != nil {
ctx.ServerError("UpdateRepository", err)

View File

@ -113,7 +113,7 @@ type RepoSettingForm struct {
PushMirrorInterval string
Template bool
EnablePrune bool
RepoSizeLimit int64
RepoSizeLimit string
// Advanced settings
EnableCode bool

View File

@ -13,18 +13,18 @@
<input name="repo_name" value="{{.Repository.Name}}" data-repo-name="{{.Repository.Name}}" required>
</div>
<div class="inline field">
<label>{{ctx.locale.Tr "repo.repo_size"}}</label>
<label>{{ctx.Locale.Tr "repo.repo_size"}}</label>
<span {{if .Err_RepoSize}}class="ui text red"{{end}} {{if not (eq .Repository.Size 0)}} data-tooltip-content="{{.Repository.SizeDetailsString}}"{{end}}>{{FileSize .Repository.Size}}
{{if and .ActualSizeLimit .EnableSizeLimit}}
/{{FileSize .ActualSizeLimit}}
/ {{FileSize .ActualSizeLimit}}
{{end}}
</span>
</div>
<div class="field {{if .Err_RepoSizeLimit}}error{{end}}" {{if not .IsAdmin}}style="display:none;"{{end}}>
<label for="repo_size_limit">{{.locale.Tr "repo.repo_size_limit"}}</label>
<label for="repo_size_limit">{{ctx.Locale.Tr "repo.repo_size_limit"}}</label>
<input id="repo_size_limit" name="repo_size_limit"
{{if not .EnableSizeLimit}}class="ui text light grey"{{end}}
type="number" value="{{.Repository.SizeLimit}}" data-repo-size-limit="{{.Repository.SizeLimit}}">
type="text" value="{{if .Repository.SizeLimit}}{{FileSize .Repository.SizeLimit}}{{end}}">
</div>
<div class="inline field">
<label>{{ctx.Locale.Tr "repo.template"}}</label>