2014-10-09 02:29:18 +04:00
// Copyright 2014 The Gogs Authors. All rights reserved.
2019-04-20 07:15:19 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
2014-10-09 02:29:18 +04:00
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package admin
import (
2016-11-10 19:24:48 +03:00
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
2019-04-20 07:15:19 +03:00
2019-08-23 19:40:30 +03:00
"github.com/unknwon/com"
2014-10-09 02:29:18 +04:00
)
const (
2016-11-21 06:21:24 +03:00
tplNotices base . TplName = "admin/notice"
2014-10-09 02:29:18 +04:00
)
2016-11-21 06:21:24 +03:00
// Notices show notices for admin
2016-03-11 19:56:52 +03:00
func Notices ( ctx * context . Context ) {
2014-10-09 02:29:18 +04:00
ctx . Data [ "Title" ] = ctx . Tr ( "admin.notices" )
ctx . Data [ "PageIsAdmin" ] = true
ctx . Data [ "PageIsAdminNotices" ] = true
2015-09-25 19:58:39 +03:00
total := models . CountNotices ( )
2015-09-25 19:13:38 +03:00
page := ctx . QueryInt ( "page" )
if page <= 1 {
page = 1
}
2015-09-25 19:58:39 +03:00
2016-07-23 19:23:54 +03:00
notices , err := models . Notices ( page , setting . UI . Admin . NoticePagingNum )
2014-10-09 02:29:18 +04:00
if err != nil {
2018-01-11 00:34:17 +03:00
ctx . ServerError ( "Notices" , err )
2014-10-09 02:29:18 +04:00
return
}
ctx . Data [ "Notices" ] = notices
2015-09-25 19:58:39 +03:00
2015-09-25 19:13:38 +03:00
ctx . Data [ "Total" ] = total
2019-04-20 07:15:19 +03:00
ctx . Data [ "Page" ] = context . NewPagination ( int ( total ) , setting . UI . Admin . NoticePagingNum , page , 5 )
2016-11-21 06:21:24 +03:00
ctx . HTML ( 200 , tplNotices )
2014-10-09 02:29:18 +04:00
}
2016-11-21 06:21:24 +03:00
// DeleteNotices delete the specific notices
2016-03-11 19:56:52 +03:00
func DeleteNotices ( ctx * context . Context ) {
2015-12-05 09:09:14 +03:00
strs := ctx . QueryStrings ( "ids[]" )
ids := make ( [ ] int64 , 0 , len ( strs ) )
for i := range strs {
id := com . StrTo ( strs [ i ] ) . MustInt64 ( )
if id > 0 {
ids = append ( ids , id )
}
}
if err := models . DeleteNoticesByIDs ( ids ) ; err != nil {
ctx . Flash . Error ( "DeleteNoticesByIDs: " + err . Error ( ) )
ctx . Status ( 500 )
} else {
ctx . Flash . Success ( ctx . Tr ( "admin.notices.delete_success" ) )
ctx . Status ( 200 )
2014-10-09 02:29:18 +04:00
}
2015-12-02 07:33:08 +03:00
}
2016-11-21 06:21:24 +03:00
// EmptyNotices delete all the notices
2016-03-11 19:56:52 +03:00
func EmptyNotices ( ctx * context . Context ) {
2015-12-02 07:33:08 +03:00
if err := models . DeleteNotices ( 0 , 0 ) ; err != nil {
2018-01-11 00:34:17 +03:00
ctx . ServerError ( "DeleteNotices" , err )
2015-12-02 07:33:08 +03:00
return
}
log . Trace ( "System notices deleted by admin (%s): [start: %d]" , ctx . User . Name , 0 )
2014-10-09 02:29:18 +04:00
ctx . Flash . Success ( ctx . Tr ( "admin.notices.delete_success" ) )
2016-11-27 13:14:25 +03:00
ctx . Redirect ( setting . AppSubURL + "/admin/notices" )
2014-10-09 02:29:18 +04:00
}