diff options
author | Unknwon <joe2010xtmf@163.com> | 2014-10-08 18:29:18 -0400 |
---|---|---|
committer | Unknwon <joe2010xtmf@163.com> | 2014-10-08 18:29:18 -0400 |
commit | 1aa76bd27913e40780aa66fe6b6c1158e20b7bef (patch) | |
tree | afd0979216a6a4a6f3fe72d4f8c391fc5b7ab0fe /models/admin.go | |
parent | 54c9844d665cdd554ae8945aae2ee966df5ddfc4 (diff) | |
download | gitea-1aa76bd27913e40780aa66fe6b6c1158e20b7bef.tar.gz gitea-1aa76bd27913e40780aa66fe6b6c1158e20b7bef.zip |
Fix #532, add system notice
Diffstat (limited to 'models/admin.go')
-rw-r--r-- | models/admin.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/models/admin.go b/models/admin.go new file mode 100644 index 0000000000..493cc7afc8 --- /dev/null +++ b/models/admin.go @@ -0,0 +1,64 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package models + +import ( + "time" + + "github.com/Unknwon/com" +) + +type NoticeType int + +const ( + NOTICE_REPOSITORY NoticeType = iota + 1 +) + +// Notice represents a system notice for admin. +type Notice struct { + Id int64 + Type NoticeType + Description string `xorm:"TEXT"` + Created time.Time `xorm:"CREATED"` +} + +// TrStr returns a translation format string. +func (n *Notice) TrStr() string { + return "admin.notices.type_" + com.ToStr(n.Type) +} + +// CreateNotice creates new system notice. +func CreateNotice(tp NoticeType, desc string) error { + n := &Notice{ + Type: tp, + Description: desc, + } + _, err := x.Insert(n) + return err +} + +// CreateRepositoryNotice creates new system notice with type NOTICE_REPOSITORY. +func CreateRepositoryNotice(desc string) error { + return CreateNotice(NOTICE_REPOSITORY, desc) +} + +// CountNotices returns number of notices. +func CountNotices() int64 { + count, _ := x.Count(new(Notice)) + return count +} + +// GetNotices returns given number of notices with offset. +func GetNotices(num, offset int) ([]*Notice, error) { + notices := make([]*Notice, 0, num) + err := x.Limit(num, offset).Desc("id").Find(¬ices) + return notices, err +} + +// DeleteNotice deletes a system notice by given ID. +func DeleteNotice(id int64) error { + _, err := x.Id(id).Delete(new(Notice)) + return err +} |