summaryrefslogtreecommitdiffstats
path: root/routers/repo/setting.go
diff options
context:
space:
mode:
authorJonas <cez81@users.noreply.github.com>2017-04-08 17:27:26 +0200
committerLunny Xiao <xiaolunwen@gmail.com>2017-04-08 23:27:26 +0800
commit54f0293f0ab73f357f545f8e05d16f9b254aba5e (patch)
treeb95f86dd93e7c74cada06a919d7f790c2ca1d083 /routers/repo/setting.go
parentedbb9eefd6c12d6c67bf864539a51f5a09c7d670 (diff)
downloadgitea-54f0293f0ab73f357f545f8e05d16f9b254aba5e.tar.gz
gitea-54f0293f0ab73f357f545f8e05d16f9b254aba5e.zip
Mirror sync interval specified as duration string (#1407)
* Sync interval specifed as duration string * Changed mirror interval text * make fmt * Add MinInterval for mirror sync * Use duration internally * Changed min default to 10m * make fmt * Incorrect default * Removed defaults in MustDuration() * Add Mirror interval migration * Default values corrected * Use transaction during migration * Change http 500 to page with error message * Cleanup session.commit()
Diffstat (limited to 'routers/repo/setting.go')
-rw-r--r--routers/repo/setting.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/routers/repo/setting.go b/routers/repo/setting.go
index fb6d68ad9b..ed7254fe1b 100644
--- a/routers/repo/setting.go
+++ b/routers/repo/setting.go
@@ -111,12 +111,15 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
return
}
- if form.Interval > 0 {
+ interval, err := time.ParseDuration(form.Interval)
+ if err != nil || interval < setting.Mirror.MinInterval {
+ ctx.RenderWithErr(ctx.Tr("repo.mirror_interval_invalid"), tplSettingsOptions, &form)
+ } else {
ctx.Repo.Mirror.EnablePrune = form.EnablePrune
- ctx.Repo.Mirror.Interval = form.Interval
- ctx.Repo.Mirror.NextUpdate = time.Now().Add(time.Duration(form.Interval) * time.Hour)
+ ctx.Repo.Mirror.Interval = interval
+ ctx.Repo.Mirror.NextUpdate = time.Now().Add(interval)
if err := models.UpdateMirror(ctx.Repo.Mirror); err != nil {
- ctx.Handle(500, "UpdateMirror", err)
+ ctx.RenderWithErr(ctx.Tr("repo.mirror_interval_invalid"), tplSettingsOptions, &form)
return
}
}