mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-11 15:04:02 +09:00
#2052 advanced select ops for system notices
This commit is contained in:
1 parent
e82ee40e9e
commit
f41360d864
13 files changed
+186
-54
No files matched your search
@@ -5,7 +5,7 @@ Gogs - Go Git Service [
|
||||
|
||||
##### Current version: 0.7.30 Beta
|
||||
##### Current version: 0.7.31 Beta
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
+1
-1
@@ -280,7 +280,7 @@ func runWeb(ctx *cli.Context) {
|
||||
|
||||
m.Group("/notices", func() {
|
||||
m.Get("", admin.Notices)
|
||||
m.Get("/:id:int/delete", admin.DeleteNotice)
|
||||
m.Post("/delete", admin.DeleteNotices)
|
||||
m.Get("/empty", admin.EmptyNotices)
|
||||
})
|
||||
}, adminReq)
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ USER_PAGING_NUM = 50
|
||||
; Number of repos that are showed in one page
|
||||
REPO_PAGING_NUM = 50
|
||||
; Number of notices that are showed in one page
|
||||
NOTICE_PAGING_NUM = 50
|
||||
NOTICE_PAGING_NUM = 25
|
||||
; Number of organization that are showed in one page
|
||||
ORG_PAGING_NUM = 50
|
||||
|
||||
|
||||
@@ -991,12 +991,18 @@ monitor.start = Start Time
|
||||
monitor.execute_time = Execution Time
|
||||
|
||||
notices.system_notice_list = System Notices
|
||||
notices.empty_all = Remove All Notices
|
||||
notices.view_detail_header = View Notice Detail
|
||||
notices.actions = Actions
|
||||
notices.select_all = Select All
|
||||
notices.deselect_all = Deselect All
|
||||
notices.inverse_selection = Inverse Selection
|
||||
notices.delete_selected = Delete Selected
|
||||
notices.delete_all = Delete All Notices
|
||||
notices.type = Type
|
||||
notices.type_1 = Repository
|
||||
notices.desc = Description
|
||||
notices.op = Op.
|
||||
notices.delete_success = System notice has been deleted successfully.
|
||||
notices.delete_success = System notices have been deleted successfully.
|
||||
|
||||
[action]
|
||||
create_repo = created repository <a href="%s">%s</a>
|
||||
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
"github.com/gogits/gogs/modules/setting"
|
||||
)
|
||||
|
||||
const APP_VER = "0.7.30.1204 Beta"
|
||||
const APP_VER = "0.7.31.1205 Beta"
|
||||
|
||||
func init() {
|
||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||
|
||||
+13
-1
@@ -5,9 +5,12 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/Unknwon/com"
|
||||
|
||||
"github.com/gogits/gogs/modules/base"
|
||||
)
|
||||
|
||||
type NoticeType int
|
||||
@@ -18,7 +21,7 @@ const (
|
||||
|
||||
// Notice represents a system notice for admin.
|
||||
type Notice struct {
|
||||
Id int64
|
||||
ID int64 `xorm:"pk autoincr"`
|
||||
Type NoticeType
|
||||
Description string `xorm:"TEXT"`
|
||||
Created time.Time `xorm:"CREATED"`
|
||||
@@ -71,3 +74,12 @@ func DeleteNotices(start, end int64) error {
|
||||
_, err := sess.Delete(new(Notice))
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteNoticesByIDs deletes notices by given IDs.
|
||||
func DeleteNoticesByIDs(ids []int64) error {
|
||||
if len(ids) == 0 {
|
||||
return nil
|
||||
}
|
||||
_, err := x.Where("id IN (" + strings.Join(base.Int64sToStrings(ids), ",") + ")").Delete(new(Notice))
|
||||
return err
|
||||
}
|
||||
@@ -284,7 +284,7 @@ func (fi bindataFileInfo) Sys() interface{} {
|
||||
return nil
|
||||
}
|
||||
|
||||
var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x7a\x5d\x8f\xe3\x46\x76\xf6\x3d\x7f\x45\x59\x7e\xfd\x7a\x1c\x48\xea\x2f\xf7\xcc\xb8\xed\x4e\xac\x96\x28\x35\x77\xf4\x65\x52\x9a\xf1\x78\xd0\xe0\xb0\xc9\x92\x44\x37\x45\x6a\x58\x64\x77\xcb\xc8\xc5\x1a\xb9\x08\x90\xdb\x04\xc9\x4d\x10\x24\x17\x41\x80\xcd\x07\xb2\xc8\xcd\x6e\x82\x5c\x19\xb9\x9f\xf9\x0f\x0b\x6f\xf2\x2f\xf2\x9c\x53\xa4\x44\xf5\xb4\x1b\x59\x20\xd9\x35\x46\x64\xb1\xea\x54\xd5\x73\xbe\x9e\x53\xd5\x1f\x8a\xa1\xf9\xdc\xb4\x05\xff\x33\x18\x75\xac\xee\x4b\x31\x39\xb7\x1c\xd1\xb5\xfa\xa6\xf1\xa1\x18\xf7\xcd\x96\x63\x8a\x41\xeb\x99\x29\xda\xe7\xad\x61\xcf\x74\xc4\x68\x28\xda\x23\xdb\x36\x9d\xf1\x68\xd8\xb1\x86\x3d\xd1\x9e\x3a\x93\xd1\x00\x8d\xc3\xae\xd5\xd3\x23\x8d\xcf\x45\x6b\xb5\x12\xb1\xb7\x94\x22\x5b\x78\x99\x50\x8b\xe4\x46\x89\x24\x16\xf2\x5a\xa6\x6b\xb1\xf2\xe6\xf8\x10\x66\x91\x34\x5a\xe3\xb1\x3b\x6c\x0d\x4c\x71\x2a\x7a\xc9\x5c\x9d\xe0\x5f\xd1\x0b\x33\xe1\xc8\xf4\x3a\xf4\x25\x24\xb5\x17\x5e\x8c\xee\x68\x0b\x67\x62\x9d\xe4\x22\xcd\x63\x11\x25\xbe\x17\x45\x6b\xc3\x9e\x0e\xdd\xa9\x83\xd5\x9f\x8a\x79\x98\xa1\xb7\x19\x66\x0b\x99\x8a\x5a\x20\xaf\x6b\x75\x51\x5b\xa5\x49\x50\x13\x09\x1a\x32\xa9\x32\xb4\x04\x72\xe6\xe5\x11\x64\x29\xdd\x87\x25\x60\xeb\xb4\x00\xbc\x1b\xc6\xab\x54\xae\x12\x15\x66\x49\xba\xbe\x30\xec\xd1\x68\x22\x4e\x0d\xa7\x6d\x5b\xe3\x89\x3b\x79\x39\xa6\x6e\x97\x9e\x5a\x60\xa6\x4e\x21\xa9\x35\x74\x2c\xe1\x2f\xbc\x54\xc9\xcc\xa0\x17\x17\x50\xd9\x8e\x89\x81\x02\xdd\xba\x49\xea\xcb\x62\xdf\xb1\xbc\x11\x5b\xf1\x22\x4b\xc4\xa5\x14\xab\x34\xbc\xf6\x32\x69\x74\x47\x76\xdb\x74\xc7\xb6\xf5\xbc\x35\xa1\x69\x66\x5e\xa4\x68\xff\x63\x2f\xf3\x17\x82\x96\x2f\xde\xe4\x32\x97\x22\x92\xf1\x3c\x5b\xd4\xc5\xd2\xbb\x62\x58\x3c\x25\x22\x2f\x05\x44\x78\x80\x6c\x15\x5e\x02\xd7\xf1\xb4\xdf\x77\x6d\xf3\xab\xa9\xe9\x4c\x5c\xfc\x3b\x35\xdd\xbe\x39\xec\x4d\xce\x21\xf9\x60\x1f\xff\xc3\x4e\xf3\xf0\x02\xf2\x87\xf9\xf2\x12\x88\x25\xb3\xed\xd2\x42\xa9\xb4\xde\xbc\x54\xb2\xee\x64\x20\xc2\x18\xfa\xc3\x46\x6e\x57\x51\x82\x56\x52\xa1\x61\x7e\x3d\xee\x8f\x6c\x2c\xba\xd5\x83\x25\xb8\xc3\xe9\x00\xd2\x0f\xf7\x77\x84\x86\x4a\xe5\x3f\x2d\x8e\xc5\x58\x8e\x33\xbd\x23\xe4\x60\x57\xc8\xd2\xbb\x0d\x97\xf9\x52\xf8\xc9\x72\x19\x66\xea\x8e\x10\xcf\xcf\xc2\xeb\x30\x5b\x8b\x99\x94\x81\xd1\x35\xcd\x8e\x3b\x68\x7d\xed\xb6\x47\x83\x81\x35\x29\x04\x1e\xf3\x7e\x9b\x5e\xb0\x0c\xe3\xdd\x5d\xe7\x4a\xa6\x0f\xaf\x8f\x0c\x6c\x77\x79\xc7\xfb\xef\x03\xf7\xa0\x08\xdb\x1c\x8f\x1e\x14\x11\x27\x19\xcc\xfd\x61\x21\xc3\xd1\xc4\x6a\x9b\x0f\x8a\x49\xd2\xb9\x17\x87\xdf\x79\x59\x08\x67\x7b\x48\xd6\xc8\xee\xbd\x27\xc8\x78\xb5\xf4\xd2\xab\x20\xb9\x61\x84\xcc\xd8\x83\x21\x09\x18\x76\x20\xa2\x10\xe3\x2e\x53\xe9\x5d\xc1\x00\x32\x19\x2b\x88\x37\xcc\x61\xeb\xac\x6f\xba\x30\xf6\x8e\xdb\xb7\x86\xa6\x7b\x66\x9b\xad\x67\x1b\xcb\x35\x5e\x01\x58\x98\xfd\x85\x31\xb6\x47\x93\x51\x7b\xd4\xc7\xa7\x45\x96\xad\x8c\xce\x68\xd0\xb2\x86\x78\x63\x2f\x5e\x24\x2a\x63\x47\x73\xa7\x36\x75\xf9\xe8\x51\xd9\xff\x13\x75\xb2\xb7\xf7\xd1\x23\xdd\x1d\x2f\x1f\x3d\x3a\x9f\x4c\xc6\xee\x78\x64\x4f\x3e\x51\x7b\x06\xbf\xb4\x3a\x1d\x38\xbf\xb1\xf9\x00\x01\x47\x64\xdd\xf0\xcf\x50\xf1\x06\x1c\xe7\x1c\x86\xe1\x65\x39\x80\xb8\x59\xc8\x98\xa0\x16\xde\xb5\x17\x46\xf4\xd9\xe8\x58\x0e\x6f\x83\xba\x6d\x9d\xee\xc5\x42\x72\x1c\x81\x71\x88\xcb\x3c\x8c\x32\x60\x47\x3d\xf4\x96\x28\xa0\x40\x4a\xd3\x70\x26\x2d\x7b\x42\x43\x5d\x98\xc8\x73\x0e\x43\x5a\x02\x35\x15\xcb\x39\x3c\xac\x2c\xa6\xdd\x19\x52\x2c\x88\x49\x17\x45\x70\x5a\x26\x01\xd4\xd1\xed\x32\x84\x45\x24\xd2\x42\xca\xa5\xd9\xa3\xe9\x04\x16\xd8\x1f\xf5\x2a\x2b\xec\xc9\x58\xa6\x88\x1b\x42\x65\x72\xa5\x4e\xd0\xf2\xff\x84\x1f\x40\xb9\xd9\x62\x2f\x4b\xf6\xe6\x08\xa6\x7b\x7e\xae\xb2\x64\xb9\x47\xa0\x2b\xee\xd0\xe4\x76\xe1\xcb\x34\x13\x0d\xdf\x3b\xcd\x52\xc4\x93\x46\x90\xa7\x6c\x30\xa7\x4f\x9f\x3c\xde\x5f\xec\x2f\xf7\x95\x68\x90\x56\x4e\x97\x6b\xfa\x69\xca\x5b\x6f\xb9\x8a\x64\x13\xde\x67\x7c\x0e\x39\xa3\x54\xcc\xd2\x64\x29\x3c\xd1\x5c\xcd\x6e\xc5\x2c\x8c\x38\x2e\x24\x69\x06\x23\xe3\x2f\xc0\x4e\xbc\x08\xe3\x80\xa2\x3e\x4d\x16\xce\x42\x5f\xaf\x95\x62\xc7\xa3\x20\x81\x14\x52\xc3\x0c\xf6\x2a\x33\x0a\x84\x7a\x3c\x0f\x2c\x02\xa2\xb8\x92\xeb\x4f\xf4\xbe\x92\x15\x4c\x4e\x45\x62\x75\xe5\xab\x83\x43\xd1\x00\x78\x24\x95\x67\x6f\x24\x79\x56\xbc\xc9\xa5\x68\xc4\x09\x86\xa9\xff\xd9\x28\xf4\x2c\x07\xd1\x07\x45\x0f\x81\x54\x46\xdb\x84\x52\x29\x91\x01\xee\x2a\x84\x7b\xe5\x34\xc6\x33\xf3\xe5\xbd\x1d\x0a\x89\x98\x7e\xba\x5a\xc1\x4e\x22\xe8\x3a\x22\xbf\xcc\x24\x10\xa4\x4d\x79\x71\x00\x14\x00\xb7\xaf\x71\x23\x7d\xa1\x7b\x25\x2d\x31\x04\x68\x25\x63\x05\x58\x94\x15\xa9\x59\xde\x4a\x3f\x07\xc0\x64\x73\x08\x03\x2e\x7b\xcc\xb8\x45\x01\x5d\xa7\xdb\x88\x20\x26\xb7\xd7\x93\xf6\xbe\xb1\xc6\x42\xe5\x2b\x82\xb5\x74\x55\x6e\xdb\x9a\x50\x1f\x8b\x09\xe3\xb9\x4e\xc7\x33\xb6\xe9\xb8\x11\x25\xf3\x39\xd4\xc8\x51\xb1\x2e\x7c\x2f\xa6\x1c\x55\x5b\x24\x4b\xa9\xf3\x68\x91\x00\x6a\x46\xbf\xc5\xf9\x9f\xa2\x08\xe1\x40\x3d\xe0\xf3\x81\x97\x79\x48\x90\xf2\xa2\x92\x8b\x97\x6b\xf5\x26\xe2\x6c\x0c\x6b\x9a\xa7\x52\x69\x49\x68\x0c\x33\x79\x84\x0f\x61\xf6\xb1\Line truncated
|
||||
var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x7a\x5d\x8f\xe3\x46\x76\xf6\x3d\x7f\x45\x59\x7e\xfd\x7a\x1c\x48\xea\x2f\xf7\xcc\xb8\xed\x4e\xac\x96\x28\x35\x77\xf4\x65\x52\x9a\xf1\x78\xd0\xe0\xb0\xc9\x92\x44\x37\x45\x6a\x58\x64\x77\xcb\xc8\xc5\x1a\xb9\x08\x90\xdb\x04\xc9\x4d\x10\x24\x17\x41\x80\xcd\x07\xb2\xc8\xcd\x6e\x82\x5c\x19\xb9\x9f\xf9\x0f\x0b\x6f\xf2\x2f\xf2\x9c\x53\xa4\x44\xf5\xb4\x1b\x59\x20\xd9\x35\x46\x64\xb1\xea\x54\xd5\x73\xbe\x9e\x53\xd5\x1f\x8a\xa1\xf9\xdc\xb4\x05\xff\x33\x18\x75\xac\xee\x4b\x31\x39\xb7\x1c\xd1\xb5\xfa\xa6\xf1\xa1\x18\xf7\xcd\x96\x63\x8a\x41\xeb\x99\x29\xda\xe7\xad\x61\xcf\x74\xc4\x68\x28\xda\x23\xdb\x36\x9d\xf1\x68\xd8\xb1\x86\x3d\xd1\x9e\x3a\x93\xd1\x00\x8d\xc3\xae\xd5\xd3\x23\x8d\xcf\x45\x6b\xb5\x12\xb1\xb7\x94\x22\x5b\x78\x99\x50\x8b\xe4\x46\x89\x24\x16\xf2\x5a\xa6\x6b\xb1\xf2\xe6\xf8\x10\x66\x91\x34\x5a\xe3\xb1\x3b\x6c\x0d\x4c\x71\x2a\x7a\xc9\x5c\x9d\xe0\x5f\xd1\x0b\x33\xe1\xc8\xf4\x3a\xf4\x25\x24\xb5\x17\x5e\x8c\xee\x68\x0b\x67\x62\x9d\xe4\x22\xcd\x63\x11\x25\xbe\x17\x45\x6b\xc3\x9e\x0e\xdd\xa9\x83\xd5\x9f\x8a\x79\x98\xa1\xb7\x19\x66\x0b\x99\x8a\x5a\x20\xaf\x6b\x75\x51\x5b\xa5\x49\x50\x13\x09\x1a\x32\xa9\x32\xb4\x04\x72\xe6\xe5\x11\x64\x29\xdd\x87\x25\x60\xeb\xb4\x00\xbc\x1b\xc6\xab\x54\xae\x12\x15\x66\x49\xba\xbe\x30\xec\xd1\x68\x22\x4e\x0d\xa7\x6d\x5b\xe3\x89\x3b\x79\x39\xa6\x6e\x97\x9e\x5a\x60\xa6\x4e\x21\xa9\x35\x74\x2c\xe1\x2f\xbc\x54\xc9\xcc\xa0\x17\x17\x50\xd9\x8e\x89\x81\x02\xdd\xba\x49\xea\xcb\x62\xdf\xb1\xbc\x11\x5b\xf1\x22\x4b\xc4\xa5\x14\xab\x34\xbc\xf6\x32\x69\x74\x47\x76\xdb\x74\xc7\xb6\xf5\xbc\x35\xa1\x69\x66\x5e\xa4\x68\xff\x63\x2f\xf3\x17\x82\x96\x2f\xde\xe4\x32\x97\x22\x92\xf1\x3c\x5b\xd4\xc5\xd2\xbb\x62\x58\x3c\x25\x22\x2f\x05\x44\x78\x80\x6c\x15\x5e\x02\xd7\xf1\xb4\xdf\x77\x6d\xf3\xab\xa9\xe9\x4c\x5c\xfc\x3b\x35\xdd\xbe\x39\xec\x4d\xce\x21\xf9\x60\x1f\xff\xc3\x4e\xf3\xf0\x02\xf2\x87\xf9\xf2\x12\x88\x25\xb3\xed\xd2\x42\xa9\xb4\xde\xbc\x54\xb2\xee\x64\x20\xc2\x18\xfa\xc3\x46\x6e\x57\x51\x82\x56\x52\xa1\x61\x7e\x3d\xee\x8f\x6c\x2c\xba\xd5\x83\x25\xb8\xc3\xe9\x00\xd2\x0f\xf7\x77\x84\x86\x4a\xe5\x3f\x2d\x8e\xc5\x58\x8e\x33\xbd\x23\xe4\x60\x57\xc8\xd2\xbb\x0d\x97\xf9\x52\xf8\xc9\x72\x19\x66\xea\x8e\x10\xcf\xcf\xc2\xeb\x30\x5b\x8b\x99\x94\x81\xd1\x35\xcd\x8e\x3b\x68\x7d\xed\xb6\x47\x83\x81\x35\x29\x04\x1e\xf3\x7e\x9b\x5e\xb0\x0c\xe3\xdd\x5d\xe7\x4a\xa6\x0f\xaf\x8f\x0c\x6c\x77\x79\xc7\xfb\xef\x03\xf7\xa0\x08\xdb\x1c\x8f\x1e\x14\x11\x27\x19\xcc\xfd\x61\x21\xc3\xd1\xc4\x6a\xdf\x45\xfb\x78\x47\x4c\x92\xce\xbd\x38\xfc\xce\xcb\x42\x38\xdb\x43\xb2\x46\x76\xef\xbd\xf5\x18\xaf\x96\x5e\x7a\x15\x24\x37\x8c\x90\x19\x7b\x30\x24\x01\xc3\x0e\x44\x14\x62\xdc\x65\x2a\xbd\x2b\x18\x40\x26\x63\x05\xf1\x86\x39\x6c\x9d\xf5\x4d\x17\xc6\xde\x71\xfb\xd6\xd0\x74\xcf\x6c\xb3\xf5\x6c\x63\xb9\xc6\x2b\x00\x0b\xb3\xbf\x30\xc6\xf6\x68\x32\x6a\x8f\xfa\xf8\xb4\xc8\xb2\x95\xd1\x19\x0d\x5a\xd6\x10\x6f\xec\xc5\x8b\x44\x65\xec\x68\xee\xd4\xa6\x2e\x1f\x3d\x2a\xfb\x7f\xa2\x4e\xf6\xf6\x3e\x7a\xa4\xbb\xe3\xe5\xa3\x47\xe7\x93\xc9\xd8\x1d\x8f\xec\xc9\x27\x6a\xcf\xe0\x97\x56\xa7\x03\xe7\x37\x36\x1f\x20\xe0\x88\xac\x1b\xfe\x19\x2a\xde\x80\xe3\x9c\xc3\x30\xbc\x2c\x07\x10\x37\x0b\x19\x13\xd4\xc2\xbb\xf6\xc2\x88\x3e\x1b\x1d\xcb\xe1\x6d\x50\xb7\xad\xd3\xbd\x58\x48\x8e\x23\x30\x0e\x71\x99\x87\x51\x06\xec\xa8\x87\xde\x12\x05\x14\x48\x69\x1a\xce\xa4\x65\x4f\x68\xa8\x0b\x13\x79\xce\x61\x48\x4b\xa0\xa6\x62\x39\x87\x87\x95\xc5\xb4\x3b\x43\x8a\x05\x31\xe9\xa2\x08\x4e\xcb\x24\x80\x3a\xba\x5d\x86\xb0\x88\x44\x5a\x48\xb9\x34\x7b\x34\x9d\xc0\x02\xfb\xa3\x5e\x65\x85\x3d\x19\xcb\x14\x71\x43\xa8\x4c\xae\xd4\x09\x5a\xfe\x9f\xf0\x03\x28\x37\x5b\xec\x65\xc9\xde\x1c\xc1\x74\xcf\xcf\x55\x96\x2c\xf7\x08\x74\xc5\x1d\x9a\xdc\x2e\x7c\x99\x66\xa2\xe1\x7b\xa7\x59\x8a\x78\xd2\x08\xf2\x94\x0d\xe6\xf4\xe9\x93\xc7\xfb\x8b\xfd\xe5\xbe\x12\x0d\xd2\xca\xe9\x72\x4d\x3f\x4d\x79\xeb\x2d\x57\x91\x6c\xc2\xfb\x8c\xcf\x21\x67\x94\x8a\x59\x9a\x2c\x85\x27\x9a\xab\xd9\xad\x98\x85\x11\xc7\x85\x24\xcd\x60\x64\xfc\x05\xd8\x89\x17\x61\x1c\x50\xd4\xa7\xc9\xc2\x59\xe8\xeb\xb5\x52\xec\x78\x14\x24\x90\x42\x6a\x98\xc1\x5e\x65\x46\x81\x50\x8f\xe7\x81\x45\x40\x14\x57\x72\xfd\x89\xde\x57\xb2\x82\xc9\xa9\x48\xac\xae\x7c\x75\x70\x28\x1a\x00\x8f\xa4\xf2\xec\x8d\x24\xcf\x8a\x37\xb9\x14\x8d\x38\xc1\x30\xf5\x3f\x1b\x85\x9e\xe5\x20\xfa\xa0\xe8\x21\x90\xca\x68\x9b\x50\x2a\x25\x32\xc0\x5d\x85\x70\xaf\x9c\xc6\x78\x66\xbe\xbc\xb7\x43\x21\x11\xd3\x4f\x57\x2b\xd8\x49\x04\x5d\x47\xe4\x97\x99\x04\x82\xb4\x29\x2f\x0e\x80\x02\xe0\xf6\x35\x6e\xa4\x2f\x74\xaf\xa4\x25\x86\x00\xad\x64\xac\x00\x8b\xb2\x22\x35\xcb\x5b\xe9\xe7\x00\x98\x6c\x0e\x61\xc0\x65\x8f\x19\xb7\x28\xa0\xeb\x74\x1b\x11\xc4\xe4\xf6\x7a\xd2\xde\x37\xd6\x58\xa8\x7c\x45\xb0\x96\xae\xca\x6d\x5b\x13\xea\x63\x31\x61\x3c\xd7\xe9\x78\xc6\x36\x1d\x37\xa2\x64\x3e\x87\x1a\x39\x2a\xd6\x85\xef\xc5\x94\xa3\x6a\x8b\x64\x29\x75\x1e\x2d\x12\x40\xcd\xe8\xb7\x38\xff\x53\x14\x21\x1c\xa8\x07\x7c\x3e\xf0\x32\x0f\x09\x52\x5e\x54\x72\xf1\x72\xad\xde\x44\x9c\x8d\x61\x4d\xf3\x54\x2a\x2d\x09\x8d\x61\x26\x8f\xf0\x21\Line truncated
|
||||
|
||||
func confAppIniBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
@@ -299,7 +299,7 @@ func confAppIni() (*asset, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "conf/app.ini", size: 9746, mode: os.FileMode(420), modTime: time.Unix(1448219570, 0)}
|
||||
info := bindataFileInfo{name: "conf/app.ini", size: 9746, mode: os.FileMode(420), modTime: time.Unix(1449293827, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
@@ -4364,7 +4364,7 @@ func confLocaleLocale_deDeIni() (*asset, error) {
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xfd\x72\xdc\x46\xae\xef\xff\x7c\x0a\xc6\x5b\x2e\x27\x55\xf2\xa4\x92\x9c\xfb\x51\xa9\x38\xb9\x8a\x1d\x7f\x9c\x63\x59\x3a\x96\xb2\x7b\xf7\xa6\x5c\x13\x6a\x48\x8d\x78\x3c\x43\xce\x92\x1c\xcb\xda\xad\x7d\x83\xfb\x00\xf7\xf9\xee\x93\x5c\xe0\x07\xa0\x1b\x4d\x72\x24\x7b\xcf\xd6\xf5\x1f\x16\xa7\x1b\xfd\x85\x46\xa3\xd1\x68\x00\x5d\xec\x76\xcb\xb2\xea\x57\xf9\x93\xfc\x38\xdf\x15\x75\xb3\xa9\xfa\x3e\xef\xab\xcd\xd5\xe3\xeb\xb6\x1f\xaa\x32\x7f\x51\x0f\xf4\xbb\xfb\x50\xaf\xaa\x2c\xbb\x6e\xb7\x15\x81\xbe\xa4\x3f\x59\x59\xf4\xd7\x97\x6d\xd1\x95\x94\xf0\xcc\xbe\xb3\xea\xe3\x6e\xd3\x76\x0c\xf4\x8b\x7c\x65\xd7\xd5\x66\xc7\x65\xe8\x4f\xd6\xd7\xeb\x66\x59\x37\xf4\xf3\x9c\xbe\xf2\x57\x8d\xa4\xb4\xfb\xc1\x92\x4e\xf7\x83\xa4\xed\x77\x96\xf4\xeb\x2e\xeb\xaa\x75\x4d\xbd\xe9\x28\xe9\xad\x7e\x66\x37\xd5\x65\x5f\x0f\xdc\xd2\x9f\xe4\x2b\xfb\x50\x75\x7d\xdd\x72\xed\x7f\x94\xaf\x6c\x57\xac\x19\xe0\x8c\xfe\x64\x43\xb5\xdd\x6d\x0a\x14\xb8\xd0\xcf\x6c\x53\x34\xeb\xbd\xc0\xbc\xd6\xcf\x6c\xd5\x55\x94\xb5\x6c\xaa\x1b\x4a\x7d\x8a\x1f\x8b\xc5\x22\xdb\x13\x12\x96\xbb\xae\xbd\xaa\x37\xd5\xb2\x68\xca\xe5\x56\x86\xf9\x2b\xa5\xe7\x9a\x9e\x53\x7a\xce\xe9\x18\x42\x55\xd2\x50\x97\x45\xaf\xe3\x20\x5c\xd2\xc8\x8b\x3e\x43\x55\x4d\xb1\xb5\xd2\xfc\x99\x55\xdb\xa2\xde\x30\xd6\xf8\x2f\xf5\xbb\xef\x6f\x5a\xa0\xf6\x4c\x3f\x09\x07\xcb\xe1\x76\x57\x01\x05\x8f\x2f\xe8\x2b\x5b\x15\xbb\x61\x75\x5d\x70\x37\xe5\x2b\x23\xa0\x5d\x4b\xb8\x68\xbb\x5b\xc0\xd9\x8f\xac\xed\xd6\x45\x53\xff\xb5\x18\x04\x3f\xa7\xee\x67\xb6\xad\xbb\xae\x65\xd4\x9e\xe0\x23\xa3\x91\x2f\xb9\x1e\x4a\x79\x43\x48\x70\xb5\x70\xce\xb6\x5e\x77\x82\x45\xce\x3c\xc1\x2f\xae\x85\xf3\xae\xda\xee\xbd\x66\x3c\xe7\xcf\x51\x51\xea\x84\xe6\xa6\xed\x17\x0d\xe1\x5d\x73\x4f\xf0\x23\x01\xe8\xb3\xa2\xdc\x12\x26\x77\x45\x53\x31\x8a\x8e\xf9\x17\xe1\x85\x7e\x65\xc5\x6a\xd5\xee\x9b\x61\xd9\x57\xc3\x50\x37\x6b\xc6\xf5\xb1\x24\xe5\xe7\x9a\x94\xb9\xbc\x90\x76\xdb\xee\xc3\x6c\x52\xfa\x9f\xe9\x67\x7e\x26\x3f\x25\xcf\x15\x42\x66\x28\xc9\x23\xe9\x97\x57\x55\x55\xca\x58\xfa\xfc\x39\x7d\x67\xbb\xfd\x66\x43\x58\xfb\xcb\xbe\xea\x07\x2e\x74\x46\xbf\x69\xfc\xf2\x3b\xab\xfb\x9e\x3e\x28\xf9\x15\x3e\x32\x9a\xba\x66\x85\xc1\x3c\xc5\x47\x96\xfd\xd6\x57\x45\xb7\xba\x7e\x97\xc9\x5f\xf4\x95\x3f\x98\xf4\x0e\x4d\x2a\xd3\x91\xd2\x90\xb4\x60\x0d\x64\xab\xb6\xe4\x1f\x4f\xe9\x0f\x55\x5d\x37\xfd\x50\x6c\x36\xef\x32\xfd\x60\x30\xf9\x92\x09\x18\xea\x01\x58\xd0\xc4\xfc\x7c\xa8\x76\x3d\xcf\x60\xfe\xbc\xee\xfa\xe1\xf1\x50\x13\xad\xbe\xdd\x37\x59\xd9\xae\xde\xd3\x2a\xe0\x15\x8d\x96\x5f\x5d\xe5\x84\xac\x47\xb4\x0e\xba\x7d\xd3\x10\x7a\xf2\x17\x2d\xa1\x8c\x9a\xa9\xa9\xfd\x67\x80\x3e\xca\x77\x9b\xaa\xe8\x09\xa4\x2a\xca\xfc\x87\x22\x1f\x8a\x6e\x5d\x0d\x4f\x1e\x2c\x2f\x69\xf5\xbd\x7f\x90\x5f\x77\xd5\xd5\x93\x07\x0f\xfb\x07\x3f\xbe\xd8\x53\xb1\x4d\xdd\x54\xfd\x0f\x5f\x17\x3f\xe6\xab\x82\x72\x08\x8d\xb7\xf9\x65\x75\xc5\x8b\x8d\xda\xca\x89\xca\x9b\x35\x2f\xb4\xdb\xe1\x9a\x1b\x24\x4a\xa0\x8f\x3e\xe7\x95\xfe\x45\xc6\x13\x40\x9c\x60\x59\x5e\x1a\x57\x43\x87\x90\xdc\xd1\x04\x9c\xdc\x9e\xff\xfb\xeb\xa3\xfc\x8c\x58\xdb\xba\xab\xf0\x4d\xff\x51\x89\xef\x72\x1a\xed\x45\xfd\xec\xe7\x45\x46\x65\x0d\x21\xcf\x8a\xa1\xb8\xe4\xbe\x87\xd9\xe7\x4c\x59\x84\x21\x0f\x4b\x91\x99\x25\x18\x63\x3f\x24\xd3\x32\xb7\x90\xa9\x0e\x5d\xfd\xa1\x8e\x37\xcc\x02\x28\x3d\x60\xf6\x4c\x70\x46\x55\xe5\xaf\xde\xbc\x39\x7d\xf6\x73\x5e\x35\x6b\xc2\x4c\x7e\x53\x0f\xd7\xf9\x7e\xb8\xfa\xef\xcb\x75\xd5\x54\x5d\xb1\x59\xae\x6a\x46\x4a\x47\x04\x9b\x13\x96\x64\x88\x8b\xac\xef\x37\xc4\xa1\x40\x05\xe7\xe7\xaf\xf3\x13\xa6\x84\x5d\x31\x5c\xa3\x23\xc3\x75\xd6\xff\x65\xc3\x88\x0a\x0d\x5e\x5c\x57\x39\x16\x03\x80\xda\xab\x31\x5e\xf2\x52\xfb\xba\xc8\xaa\xae\x5b\x12\x03\x1d\x6e\x19\xcd\x5a\xe7\x21\x68\xa9\x8e\xa8\xbd\x69\x07\x9a\xc6\x1c\xe5\xa4\x8a\xba\xf9\x50\x6c\xea\x92\x90\x1d\x11\x92\x96\x45\x62\xd9\xd2\xbc\x71\x69\xa2\xcc\xf6\x06\x43\x2d\x56\xc4\xff\xfb\xfc\xc1\xe2\x01\x18\xee\x83\xc7\x0f\x16\x59\xd3\x2e\x85\x4b\x30\x6b\x2e\xeb\xbe\xb8\x24\x36\x2d\xdb\x46\x67\x5c\xef\xcf\x4c\x3f\xd2\x15\x85\xc8\x13\x08\xc6\x2d\x6f\x45\xd8\x01\x98\xb8\x0a\xe2\xd7\x60\x36\xca\x66\xfc\xd8\x8d\x27\x85\xf9\x15\xb6\x14\x12\x26\x63\xce\x6c\xc2\x8c\xba\x8e\x77\xbb\x4d\xbd\x92\xa6\x5f\x48\x5e\x24\x34\xde\x98\x15\x29\x1e\x0e\x84\x62\x79\x8e\x5c\xa8\xd7\xcc\xb6\xf2\x84\xcf\xa3\xfc\x75\x45\x2b\xe7\x7a\xbf\x96\xcd\x69\xd3\xee\xcb\x2f\xc0\x50\x6c\xe6\x22\x3f\xc9\xdf\xb6\xd4\x61\x50\x47\x00\x88\x4d\x1c\x13\x63\x60\x59\xa0\xab\xb6\xed\xc0\x88\xd3\x62\x35\x4d\xcf\x4d\x4d\x99\x34\xd2\xbe\xf8\x40\x6c\x71\x68\x65\x49\x96\xb4\xe4\x56\x5c\x31\x71\xb0\x3d\x6d\xe8\xb2\x2c\x88\x8f\xc8\xd2\xb0\xb4\x94\x06\x01\xb5\xdd\xd3\x6a\xba\xa6\xca\x18\xf1\x2c\x90\x50\x95\x73\xfd\xc4\x90\xa8\x1e\xac\x72\x5a\xb9\x2d\x6d\x9e\x3c\xd1\xcf\xf0\xa1\xbf\x7d\xfd\xd4\xab\xe2\xea\x8a\x7a\xd5\xd3\xaa\x78\x99\xaf\x36\x2d\x2d\xa9\x5f\xdf\xbe\xee\x79\xc1\x5c\x2f\x77\x6d\x07\x41\x84\xb2\xce\xe8\x33\xa4\x39\x44\x33\x44\xb3\xdf\x5e\xd2\xaf\x9b\xeb\x9a\x18\x35\xd0\xce\x25\x58\x48\xa2\x54\x6a\x62\xdf\xdLine truncated
|
||||
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xfd\x72\xdc\x46\xae\xef\xff\x7c\x0a\xc6\x5b\x2e\x27\x55\xf2\xa4\x92\x9c\xfb\x51\xa9\x38\xb9\x8a\x1d\x7f\x9c\x63\x59\x3a\x96\xb2\x7b\xf7\xa6\x5c\x13\x6a\x48\x8d\x78\x3c\x43\xce\x92\x1c\xcb\xda\xad\x7d\x83\xfb\x00\xf7\xf9\xee\x93\x5c\xe0\x07\xa0\x1b\x4d\x72\x24\x7b\xcf\xd6\xf5\x1f\x16\xa7\x1b\xfd\x85\x46\xa3\xd1\x68\x00\x5d\xec\x76\xcb\xb2\xea\x57\xf9\x93\xfc\x38\xdf\x15\x75\xb3\xa9\xfa\x3e\xef\xab\xcd\xd5\xe3\xeb\xb6\x1f\xaa\x32\x7f\x51\x0f\xf4\xbb\xfb\x50\xaf\xaa\x2c\xbb\x6e\xb7\x15\x81\xbe\xa4\x3f\x59\x59\xf4\xd7\x97\x6d\xd1\x95\x94\xf0\xcc\xbe\xb3\xea\xe3\x6e\xd3\x76\x0c\xf4\x8b\x7c\x65\xd7\xd5\x66\xc7\x65\xe8\x4f\xd6\xd7\xeb\x66\x59\x37\xf4\xf3\x9c\xbe\xf2\x57\x8d\xa4\xb4\xfb\xc1\x92\x4e\xf7\x83\xa4\xed\x77\x96\xf4\xeb\x2e\xeb\xaa\x75\x4d\xbd\xe9\x28\xe9\xad\x7e\x66\x37\xd5\x65\x5f\x0f\xdc\xd2\x9f\xe4\x2b\xfb\x50\x75\x7d\xdd\x72\xed\x7f\x94\xaf\x6c\x57\xac\x19\xe0\x8c\xfe\x64\x43\xb5\xdd\x6d\x0a\x14\xb8\xd0\xcf\x6c\x53\x34\xeb\xbd\xc0\xbc\xd6\xcf\x6c\xd5\x55\x94\xb5\x6c\xaa\x1b\x4a\x7d\x8a\x1f\x8b\xc5\x22\xdb\x13\x12\x96\xbb\xae\xbd\xaa\x37\xd5\xb2\x68\xca\xe5\x56\x86\xf9\x2b\xa5\xe7\x9a\x9e\x53\x7a\xce\xe9\x18\x42\x55\xd2\x50\x97\x45\xaf\xe3\x20\x5c\xd2\xc8\x8b\x3e\x43\x55\x4d\xb1\xb5\xd2\xfc\x99\x55\xdb\xa2\xde\x30\xd6\xf8\x2f\xf5\xbb\xef\x6f\x5a\xa0\xf6\x4c\x3f\x09\x07\xcb\xe1\x76\x57\x01\x05\x8f\x2f\xe8\x2b\x5b\x15\xbb\x61\x75\x5d\x70\x37\xe5\x2b\x23\xa0\x5d\x4b\xb8\x68\xbb\x5b\xc0\xd9\x8f\xac\xed\xd6\x45\x53\xff\xb5\x18\x04\x3f\xa7\xee\x67\xb6\xad\xbb\xae\x65\xd4\x9e\xe0\x23\xa3\x91\x2f\xb9\x1e\x4a\x79\x43\x48\x70\xb5\x70\xce\xb6\x5e\x77\x82\x45\xce\x3c\xc1\x2f\xae\x85\xf3\xae\xda\xee\xbd\x66\x3c\xe7\xcf\x51\x51\xea\x84\xe6\xa6\xed\x17\x0d\xe1\x5d\x73\x4f\xf0\x23\x01\xe8\xb3\xa2\xdc\x12\x26\x77\x45\x53\x31\x8a\x8e\xf9\x17\xe1\x85\x7e\x65\xc5\x6a\xd5\xee\x9b\x61\xd9\x57\xc3\x50\x37\x6b\xc6\xf5\xb1\x24\xe5\xe7\x9a\x94\xb9\xbc\x90\x76\xdb\xee\xc3\x6c\x52\xfa\x9f\xe9\x67\x7e\x26\x3f\x25\xcf\x15\x42\x66\x28\xc9\x23\xe9\x97\x57\x55\x55\xca\x58\xfa\xfc\x39\x7d\x67\xbb\xfd\x66\x43\x58\xfb\xcb\xbe\xea\x07\x2e\x74\x46\xbf\x69\xfc\xf2\x3b\xab\xfb\x9e\x3e\x28\xf9\x15\x3e\x32\x9a\xba\x66\x85\xc1\x3c\xc5\x47\x96\xfd\xd6\x57\x45\xb7\xba\x7e\x97\xc9\x5f\xf4\x95\x3f\x98\xf4\x0e\x4d\x2a\xd3\x91\xd2\x90\xb4\x60\x0d\x64\xab\xb6\xe4\x1f\x4f\xe9\x0f\x55\x5d\x37\xfd\x50\x6c\x36\xef\x32\xfd\x60\x30\xf9\x92\x09\x18\xea\x01\x58\xd0\xc4\xfc\x7c\xa8\x76\x3d\xcf\x60\xfe\xbc\xee\xfa\xe1\xf1\x50\x13\xad\xbe\xdd\x37\x59\xd9\xae\xde\xd3\x2a\xe0\x15\x8d\x96\x5f\x5d\xe5\x84\xac\x47\xb4\x0e\xba\x7d\xd3\x10\x7a\xf2\x17\x2d\xa1\x8c\x9a\xa9\xa9\xfd\x67\x80\x3e\xca\x77\x9b\xaa\xe8\x09\xa4\x2a\xca\xfc\x87\x22\x1f\x8a\x6e\x5d\x0d\x4f\x1e\x2c\x2f\x69\xf5\xbd\x7f\x90\x5f\x77\xd5\xd5\x93\x07\x0f\xfb\x07\x3f\xbe\xd8\x53\xb1\x4d\xdd\x54\xfd\x0f\x5f\x17\x3f\xe6\xab\x82\x72\x08\x8d\xb7\xf9\x65\x75\xc5\x8b\x8d\xda\xca\x89\xca\x9b\x35\x2f\xb4\xdb\xe1\x9a\x1b\x24\x4a\xa0\x8f\x3e\xe7\x95\xfe\x45\xc6\x13\x40\x9c\x60\x59\x5e\x1a\x57\x43\x87\x90\xdc\xd1\x04\x9c\xdc\x9e\xff\xfb\xeb\xa3\xfc\x8c\x58\xdb\xba\xab\xf0\x4d\xff\x51\x89\xef\x72\x1a\xed\x45\xfd\xec\xe7\x45\x46\x65\x0d\x21\xcf\x8a\xa1\xb8\xe4\xbe\x87\xd9\xe7\x4c\x59\x84\x21\x0f\x4b\x91\x99\x25\x18\x63\x3f\x24\xd3\x32\xb7\x90\xa9\x0e\x5d\xfd\xa1\x8e\x37\xcc\x02\x28\x3d\x60\xf6\x4c\x70\x46\x55\xe5\xaf\xde\xbc\x39\x7d\xf6\x73\x5e\x35\x6b\xc2\x4c\x7e\x53\x0f\xd7\xf9\x7e\xb8\xfa\xef\xcb\x75\xd5\x54\x5d\xb1\x59\xae\x6a\x46\x4a\x47\x04\x9b\x13\x96\x64\x88\x8b\xac\xef\x37\xc4\xa1\x40\x05\xe7\xe7\xaf\xf3\x13\xa6\x84\x5d\x31\x5c\xa3\x23\xc3\x75\xd6\xff\x65\xc3\x88\x0a\x0d\x5e\x5c\x57\x39\x16\x03\x80\xda\xab\x31\x5e\xf2\x52\xfb\xba\xc8\xaa\xae\x5b\x12\x03\x1d\x6e\x19\xcd\x5a\xe7\x21\x68\xa9\x8e\xa8\xbd\x69\x07\x9a\xc6\x1c\xe5\xa4\x8a\xba\xf9\x50\x6c\xea\x92\x90\x1d\x11\x92\x96\x45\x62\xd9\xd2\xbc\x71\x69\xa2\xcc\xf6\x06\x43\x2d\x56\xc4\xff\xfb\xfc\xc1\xe2\x01\x18\xee\x83\xc7\x0f\x16\x59\xd3\x2e\x85\x4b\x30\x6b\x2e\xeb\xbe\xb8\x24\x36\x2d\xdb\x46\x67\x5c\xef\xcf\x4c\x3f\xd2\x15\x85\xc8\x13\x08\xc6\x2d\x6f\x45\xd8\x01\x98\xb8\x0a\xe2\xd7\x60\x36\xca\x66\xfc\xd8\x8d\x27\x85\xf9\x15\xb6\x14\x12\x26\x63\xce\x6c\xc2\x8c\xba\x8e\x77\xbb\x4d\xbd\x92\xa6\x5f\x48\x5e\x24\x34\xde\x98\x15\x29\x1e\x0e\x84\x62\x79\x8e\x5c\xa8\xd7\xcc\xb6\xf2\x84\xcf\xa3\xfc\x75\x45\x2b\xe7\x7a\xbf\x96\xcd\x69\xd3\xee\xcb\x2f\xc0\x50\x6c\xe6\x22\x3f\xc9\xdf\xb6\xd4\x61\x50\x47\x00\x88\x4d\x1c\x13\x63\x60\x59\xa0\xab\xb6\xed\xc0\x88\xd3\x62\x35\x4d\xcf\x4d\x4d\x99\x34\xd2\xbe\xf8\x40\x6c\x71\x68\x65\x49\x96\xb4\xe4\x56\x5c\x31\x71\xb0\x3d\x6d\xe8\xb2\x2c\x88\x8f\xc8\xd2\xb0\xb4\x94\x06\x01\xb5\xdd\xd3\x6a\xba\xa6\xca\x18\xf1\x2c\x90\x50\x95\x73\xfd\xc4\x90\xa8\x1e\xac\x72\x5a\xb9\x2d\x6d\x9e\x3c\xd1\xcf\xf0\xa1\xbf\x7d\xfd\xd4\xab\xe2\xea\x8a\x7a\xd5\xd3\xaa\x78\x99\xaf\x36\x2d\x2d\xa9\x5f\xdf\xbe\xee\x79\xc1\x5c\x2f\x77\x6d\x07\x41\x84\xb2\xce\xe8\x33\xa4\x39\x44\x33\x44\xb3\xdf\x5e\xd2\xaf\x9b\xeb\x9a\x18\x35\xd0\xce\x25\x58\x48\xa2\x54\x6a\x62\xdf\xdLine truncated
|
||||
|
||||
func confLocaleLocale_enUsIniBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
@@ -4379,7 +4379,7 @@ func confLocaleLocale_enUsIni() (*asset, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 46933, mode: os.FileMode(420), modTime: time.Unix(1449277581, 0)}
|
||||
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 47166, mode: os.FileMode(420), modTime: time.Unix(1449295691, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
+8
-2
@@ -2999,12 +2999,18 @@ footer .container .links > *:first-child {
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
.admin .table.segment:not(.striped) {
|
||||
padding-top: 5px;
|
||||
}
|
||||
.admin .table.segment:not(.striped) thead th:last-child {
|
||||
padding-right: 5px !important;
|
||||
}
|
||||
.admin .table.segment th {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.admin .table.segment th:first-of-type,
|
||||
.admin .table.segment td:first-of-type {
|
||||
.admin .table.segment:not(.select) th:first-of-type,
|
||||
.admin .table.segment:not(.select) td:first-of-type {
|
||||
padding-left: 15px !important;
|
||||
}
|
||||
.admin .ui.header,
|
||||
|
||||
+66
-19
@@ -319,23 +319,23 @@ function initRepository() {
|
||||
$('#edit-title').click(editTitleToggle);
|
||||
$('#cancel-edit-title').click(editTitleToggle);
|
||||
$('#save-edit-title').click(editTitleToggle).
|
||||
click(function () {
|
||||
if ($edit_input.val().length == 0 ||
|
||||
$edit_input.val() == $issue_title.text()) {
|
||||
$edit_input.val($issue_title.text());
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post($(this).data('update-url'), {
|
||||
"_csrf": csrf,
|
||||
"title": $edit_input.val()
|
||||
},
|
||||
function (data) {
|
||||
$edit_input.val(data.title);
|
||||
$issue_title.text(data.title);
|
||||
});
|
||||
click(function () {
|
||||
if ($edit_input.val().length == 0 ||
|
||||
$edit_input.val() == $issue_title.text()) {
|
||||
$edit_input.val($issue_title.text());
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$.post($(this).data('update-url'), {
|
||||
"_csrf": csrf,
|
||||
"title": $edit_input.val()
|
||||
},
|
||||
function (data) {
|
||||
$edit_input.val(data.title);
|
||||
$issue_title.text(data.title);
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
// Edit issue or comment content
|
||||
$('.edit-content').click(function () {
|
||||
@@ -607,6 +607,50 @@ function initAdmin() {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Notice
|
||||
if ($('.admin.notice')) {
|
||||
var $detail_modal = $('#detail-modal');
|
||||
|
||||
// Attach view detail modals
|
||||
$('.view-detail').click(function () {
|
||||
$detail_modal.find('.content p').text($(this).data('content'));
|
||||
$detail_modal.modal('show');
|
||||
return false;
|
||||
});
|
||||
|
||||
// Select actions
|
||||
var $checkboxes = $('.select.table .ui.checkbox');
|
||||
$('.select.action').click(function () {
|
||||
switch ($(this).data('action')) {
|
||||
case 'select-all':
|
||||
$checkboxes.checkbox('check');
|
||||
break;
|
||||
case 'deselect-all':
|
||||
$checkboxes.checkbox('uncheck');
|
||||
break;
|
||||
case 'inverse':
|
||||
$checkboxes.checkbox('toggle');
|
||||
break;
|
||||
}
|
||||
});
|
||||
$('#delete-selection').click(function () {
|
||||
var $this = $(this);
|
||||
$this.addClass("loading disabled");
|
||||
var ids = [];
|
||||
$checkboxes.each(function () {
|
||||
if ($(this).checkbox('is checked')) {
|
||||
ids.push($(this).data('id'));
|
||||
}
|
||||
});
|
||||
$.post($this.data('link'), {
|
||||
"_csrf": csrf,
|
||||
"ids": ids
|
||||
}).done(function () {
|
||||
window.location.href = $this.data('redirect');
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function buttonsClickOnEnter() {
|
||||
@@ -734,9 +778,9 @@ $(document).ready(function () {
|
||||
// Show exact time
|
||||
$('.time-since').each(function () {
|
||||
$(this).addClass('poping up').
|
||||
attr('data-content', $(this).attr('title')).
|
||||
attr('data-variation', 'inverted tiny').
|
||||
attr('title', '');
|
||||
attr('data-content', $(this).attr('title')).
|
||||
attr('data-variation', 'inverted tiny').
|
||||
attr('title', '');
|
||||
});
|
||||
|
||||
// Semantic UI modules.
|
||||
@@ -750,6 +794,9 @@ $(document).ready(function () {
|
||||
$('.slide.up.dropdown').dropdown({
|
||||
transition: 'slide up'
|
||||
});
|
||||
$('.upward.dropdown').dropdown({
|
||||
direction: 'upward'
|
||||
});
|
||||
$('.ui.accordion').accordion();
|
||||
$('.ui.checkbox').checkbox();
|
||||
$('.ui.progress').progress({
|
||||
|
||||
+17
-3
@@ -5,13 +5,27 @@
|
||||
.table.segment {
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
|
||||
&:not(.striped) {
|
||||
padding-top: 5px;
|
||||
|
||||
thead {
|
||||
th:last-child {
|
||||
padding-right: 5px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
th, td {
|
||||
&:first-of-type {
|
||||
padding-left: 15px !important;
|
||||
|
||||
&:not(.select) {
|
||||
th, td {
|
||||
&:first-of-type {
|
||||
padding-left: 15px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+17
-8
@@ -5,6 +5,7 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/Unknwon/com"
|
||||
"github.com/Unknwon/paginater"
|
||||
|
||||
"github.com/gogits/gogs/models"
|
||||
@@ -41,15 +42,23 @@ func Notices(ctx *middleware.Context) {
|
||||
ctx.HTML(200, NOTICES)
|
||||
}
|
||||
|
||||
func DeleteNotice(ctx *middleware.Context) {
|
||||
id := ctx.ParamsInt64(":id")
|
||||
if err := models.DeleteNotice(id); err != nil {
|
||||
ctx.Handle(500, "DeleteNotice", err)
|
||||
return
|
||||
func DeleteNotices(ctx *middleware.Context) {
|
||||
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)
|
||||
}
|
||||
log.Trace("System notice deleted by admin (%s): %d", ctx.User.Name, id)
|
||||
ctx.Flash.Success(ctx.Tr("admin.notices.delete_success"))
|
||||
ctx.Redirect(setting.AppSubUrl + "/admin/notices")
|
||||
}
|
||||
|
||||
func EmptyNotices(ctx *middleware.Context) {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
0.7.30.1204 Beta
|
||||
0.7.31.1205 Beta
|
||||
+48
-10
@@ -1,5 +1,5 @@
|
||||
{{template "base/head" .}}
|
||||
<div class="admin user">
|
||||
<div class="admin notice">
|
||||
<div class="ui container">
|
||||
<div class="ui grid">
|
||||
{{template "admin/navbar" .}}
|
||||
@@ -7,32 +7,62 @@
|
||||
{{template "base/alert" .}}
|
||||
<h4 class="ui top attached header">
|
||||
{{.i18n.Tr "admin.notices.system_notice_list"}} ({{.i18n.Tr "admin.total" .Total}})
|
||||
<div class="ui right">
|
||||
<a class="ui red tiny button" href="{{AppSubUrl}}/admin/notices/empty">{{.i18n.Tr "admin.notices.empty_all"}}</a>
|
||||
</div>
|
||||
</h4>
|
||||
<div class="ui attached table segment">
|
||||
<table class="ui very basic striped table">
|
||||
<table class="ui very basic select selectable table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>ID</th>
|
||||
<th>{{.i18n.Tr "admin.notices.type"}}</th>
|
||||
<th>{{.i18n.Tr "admin.notices.desc"}}</th>
|
||||
<th>{{.i18n.Tr "admin.users.created"}}</th>
|
||||
<th width="100px">{{.i18n.Tr "admin.users.created"}}</th>
|
||||
<th>{{.i18n.Tr "admin.notices.op"}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Notices}}
|
||||
<tr>
|
||||
<td>{{.Id}}</td>
|
||||
<td class="collapsing">
|
||||
<div class="ui fitted checkbox" data-id="{{.ID}}">
|
||||
<input type="checkbox"> <label></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>{{.ID}}</td>
|
||||
<td>{{$.i18n.Tr .TrStr}}</td>
|
||||
<td><span>{{.Description}}</span></td>
|
||||
<td>{{.Created}}</td>
|
||||
<td><a href="{{AppSubUrl}}/admin/notices/{{.Id}}/delete"><i class="fa fa-trash-o text-red"></i></a></td>
|
||||
<td>{{SubStr .Description 0 120}}...</td>
|
||||
<td><span class="poping up" data-content="{{.Created}}" data-variation="inverted tiny">{{DateFmtShort .Created}}</span></td>
|
||||
<td><a href="#"><i class="browser icon view-detail" data-content="{{.Description}}"></i></a></td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
<tfoot class="full-width">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th colspan="5">
|
||||
<div class="ui right">
|
||||
<a class="ui red small button" href="{{AppSubUrl}}/admin/notices/empty">{{.i18n.Tr "admin.notices.delete_all"}}</a>
|
||||
</div>
|
||||
<div class="ui floating upward dropdown small button">
|
||||
<span class="text">{{.i18n.Tr "admin.notices.actions"}}</span>
|
||||
<div class="menu">
|
||||
<div class="item select action" data-action="select-all">
|
||||
{{.i18n.Tr "admin.notices.select_all"}}
|
||||
</div>
|
||||
<div class="item select action" data-action="deselect-all">
|
||||
{{.i18n.Tr "admin.notices.deselect_all"}}
|
||||
</div>
|
||||
<div class="item select action" data-action="inverse">
|
||||
{{.i18n.Tr "admin.notices.inverse_selection"}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ui small teal button" id="delete-selection" data-link="{{.Link}}/delete" data-redirect="{{.Link}}?page={{.Page.Current}}">
|
||||
{{.i18n.Tr "admin.notices.delete_selected"}}
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -63,4 +93,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ui modal" id="detail-modal">
|
||||
<i class="close icon"></i>
|
||||
<div class="header">{{$.i18n.Tr "admin.notices.view_detail_header"}}</div>
|
||||
<div class="content">
|
||||
<p></p>
|
||||
</div>
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
||||
Reference in new issue
Block a user