Use struct for UI settings

This commit is contained in:
Unknwon 2016-07-24 00:23:54 +08:00
parent 256cd6374a
commit 46e96c008c
16 changed files with 48 additions and 48 deletions

View File

@ -44,6 +44,10 @@ NOTICE_PAGING_NUM = 25
; Number of organization that are showed in one page ; Number of organization that are showed in one page
ORG_PAGING_NUM = 50 ORG_PAGING_NUM = 50
[ui.user]
; Number of repos that are showed in one page
REPO_PAGING_NUM = 15
[markdown] [markdown]
; Enable hard line break extension ; Enable hard line break extension
ENABLE_HARD_LINE_BREAK = false ENABLE_HARD_LINE_BREAK = false

View File

@ -470,8 +470,8 @@ func CommitRepoAction(
} }
} }
if len(commit.Commits) > setting.FeedMaxCommitNum { if len(commit.Commits) > setting.UI.FeedMaxCommitNum {
commit.Commits = commit.Commits[:setting.FeedMaxCommitNum] commit.Commits = commit.Commits[:setting.UI.FeedMaxCommitNum]
} }
bs, err := json.Marshal(commit) bs, err := json.Marshal(commit)

View File

@ -521,7 +521,7 @@ func Issues(opts *IssuesOptions) ([]*Issue, error) {
opts.Page = 1 opts.Page = 1
} }
sess := x.Limit(setting.IssuePagingNum, (opts.Page-1)*setting.IssuePagingNum) sess := x.Limit(setting.UI.IssuePagingNum, (opts.Page-1)*setting.UI.IssuePagingNum)
if opts.RepoID > 0 { if opts.RepoID > 0 {
sess.Where("issue.repo_id=?", opts.RepoID).And("issue.is_closed=?", opts.IsClosed) sess.Where("issue.repo_id=?", opts.RepoID).And("issue.is_closed=?", opts.IsClosed)
@ -579,7 +579,7 @@ func Issues(opts *IssuesOptions) ([]*Issue, error) {
} }
} }
issues := make([]*Issue, 0, setting.IssuePagingNum) issues := make([]*Issue, 0, setting.UI.IssuePagingNum)
return issues, sess.Find(&issues) return issues, sess.Find(&issues)
} }
@ -1143,10 +1143,10 @@ func GetAllRepoMilestones(repoID int64) ([]*Milestone, error) {
// GetMilestones returns a list of milestones of given repository and status. // GetMilestones returns a list of milestones of given repository and status.
func GetMilestones(repoID int64, page int, isClosed bool) ([]*Milestone, error) { func GetMilestones(repoID int64, page int, isClosed bool) ([]*Milestone, error) {
miles := make([]*Milestone, 0, setting.IssuePagingNum) miles := make([]*Milestone, 0, setting.UI.IssuePagingNum)
sess := x.Where("repo_id=? AND is_closed=?", repoID, isClosed) sess := x.Where("repo_id=? AND is_closed=?", repoID, isClosed)
if page > 0 { if page > 0 {
sess = sess.Limit(setting.IssuePagingNum, (page-1)*setting.IssuePagingNum) sess = sess.Limit(setting.UI.IssuePagingNum, (page-1)*setting.UI.IssuePagingNum)
} }
return miles, sess.Find(&miles) return miles, sess.Find(&miles)
} }

View File

@ -988,7 +988,7 @@ type SearchUserOptions struct {
Type UserType Type UserType
OrderBy string OrderBy string
Page int Page int
PageSize int // Can be smaller than or equal to setting.ExplorePagingNum PageSize int // Can be smaller than or equal to setting.UI.ExplorePagingNum
} }
// SearchUserByName takes keyword and part of user name to search, // SearchUserByName takes keyword and part of user name to search,
@ -999,8 +999,8 @@ func SearchUserByName(opts *SearchUserOptions) (users []*User, _ int64, _ error)
} }
opts.Keyword = strings.ToLower(opts.Keyword) opts.Keyword = strings.ToLower(opts.Keyword)
if opts.PageSize <= 0 || opts.PageSize > setting.ExplorePagingNum { if opts.PageSize <= 0 || opts.PageSize > setting.UI.ExplorePagingNum {
opts.PageSize = setting.ExplorePagingNum opts.PageSize = setting.UI.ExplorePagingNum
} }
if opts.Page <= 0 { if opts.Page <= 0 {
opts.Page = 1 opts.Page = 1

File diff suppressed because one or more lines are too long

View File

@ -115,16 +115,24 @@ var (
ScriptType string ScriptType string
// UI settings // UI settings
UI struct {
ExplorePagingNum int ExplorePagingNum int
IssuePagingNum int IssuePagingNum int
FeedMaxCommitNum int FeedMaxCommitNum int
AdminUserPagingNum int
AdminRepoPagingNum int
AdminNoticePagingNum int
AdminOrgPagingNum int
ThemeColorMetaTag string ThemeColorMetaTag string
MaxDisplayFileSize int64 MaxDisplayFileSize int64
Admin struct {
UserPagingNum int
RepoPagingNum int
NoticePagingNum int
OrgPagingNum int
} `ini:"ui.admin"`
User struct {
RepoPagingNum int
} `ini:"ui.user"`
}
// Markdown sttings // Markdown sttings
Markdown struct { Markdown struct {
EnableHardLineBreak bool EnableHardLineBreak bool
@ -437,20 +445,6 @@ func NewContext() {
log.Fatal(4, "Fail to map Repository settings: %v", err) log.Fatal(4, "Fail to map Repository settings: %v", err)
} }
// UI settings.
sec = Cfg.Section("ui")
ExplorePagingNum = sec.Key("EXPLORE_PAGING_NUM").MustInt(20)
IssuePagingNum = sec.Key("ISSUE_PAGING_NUM").MustInt(10)
FeedMaxCommitNum = sec.Key("FEED_MAX_COMMIT_NUM").MustInt(5)
MaxDisplayFileSize = sec.Key("MAX_DISPLAY_FILE_SIZE").MustInt64(8388608)
sec = Cfg.Section("ui.admin")
AdminUserPagingNum = sec.Key("USER_PAGING_NUM").MustInt(50)
AdminRepoPagingNum = sec.Key("REPO_PAGING_NUM").MustInt(50)
AdminNoticePagingNum = sec.Key("NOTICE_PAGING_NUM").MustInt(50)
AdminOrgPagingNum = sec.Key("ORG_PAGING_NUM").MustInt(50)
ThemeColorMetaTag = sec.Key("THEME_COLOR_META_TAG").MustString("#ff5343")
sec = Cfg.Section("picture") sec = Cfg.Section("picture")
AvatarUploadPath = sec.Key("AVATAR_UPLOAD_PATH").MustString(path.Join(AppDataPath, "avatars")) AvatarUploadPath = sec.Key("AVATAR_UPLOAD_PATH").MustString(path.Join(AppDataPath, "avatars"))
forcePathSeparator(AvatarUploadPath) forcePathSeparator(AvatarUploadPath)
@ -470,7 +464,9 @@ func NewContext() {
DisableGravatar = true DisableGravatar = true
} }
if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil { if err = Cfg.Section("ui").MapTo(&UI); err != nil {
log.Fatal(4, "Fail to map UI settings: %v", err)
} else if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil {
log.Fatal(4, "Fail to map Markdown settings: %v", err) log.Fatal(4, "Fail to map Markdown settings: %v", err)
} else if err = Cfg.Section("cron").MapTo(&Cron); err != nil { } else if err = Cfg.Section("cron").MapTo(&Cron); err != nil {
log.Fatal(4, "Fail to map Cron settings: %v", err) log.Fatal(4, "Fail to map Cron settings: %v", err)

View File

@ -102,7 +102,7 @@ func NewFuncMap() []template.FuncMap {
}, },
"RenderCommitMessage": RenderCommitMessage, "RenderCommitMessage": RenderCommitMessage,
"ThemeColorMetaTag": func() string { "ThemeColorMetaTag": func() string {
return setting.ThemeColorMetaTag return setting.UI.ThemeColorMetaTag
}, },
}} }}
} }

View File

@ -29,9 +29,9 @@ func Notices(ctx *context.Context) {
if page <= 1 { if page <= 1 {
page = 1 page = 1
} }
ctx.Data["Page"] = paginater.New(int(total), setting.AdminNoticePagingNum, page, 5) ctx.Data["Page"] = paginater.New(int(total), setting.UI.Admin.NoticePagingNum, page, 5)
notices, err := models.Notices(page, setting.AdminNoticePagingNum) notices, err := models.Notices(page, setting.UI.Admin.NoticePagingNum)
if err != nil { if err != nil {
ctx.Handle(500, "Notices", err) ctx.Handle(500, "Notices", err)
return return

View File

@ -25,7 +25,7 @@ func Organizations(ctx *context.Context) {
Type: models.USER_TYPE_ORGANIZATION, Type: models.USER_TYPE_ORGANIZATION,
Counter: models.CountOrganizations, Counter: models.CountOrganizations,
Ranger: models.Organizations, Ranger: models.Organizations,
PageSize: setting.AdminOrgPagingNum, PageSize: setting.UI.Admin.OrgPagingNum,
OrderBy: "id ASC", OrderBy: "id ASC",
TplName: ORGS, TplName: ORGS,
}) })

View File

@ -26,7 +26,7 @@ func Repos(ctx *context.Context) {
Counter: models.CountRepositories, Counter: models.CountRepositories,
Ranger: models.Repositories, Ranger: models.Repositories,
Private: true, Private: true,
PageSize: setting.AdminRepoPagingNum, PageSize: setting.UI.Admin.RepoPagingNum,
OrderBy: "id ASC", OrderBy: "id ASC",
TplName: REPOS, TplName: REPOS,
}) })

View File

@ -33,7 +33,7 @@ func Users(ctx *context.Context) {
Type: models.USER_TYPE_INDIVIDUAL, Type: models.USER_TYPE_INDIVIDUAL,
Counter: models.CountUsers, Counter: models.CountUsers,
Ranger: models.Users, Ranger: models.Users,
PageSize: setting.AdminUserPagingNum, PageSize: setting.UI.Admin.UserPagingNum,
OrderBy: "id ASC", OrderBy: "id ASC",
TplName: USERS, TplName: USERS,
}) })

View File

@ -31,7 +31,7 @@ func ListIssues(ctx *context.APIContext) {
apiIssues[i] = convert.ToIssue(issues[i]) apiIssues[i] = convert.ToIssue(issues[i])
} }
ctx.SetLinkHeader(ctx.Repo.Repository.NumIssues, setting.IssuePagingNum) ctx.SetLinkHeader(ctx.Repo.Repository.NumIssues, setting.UI.IssuePagingNum)
ctx.JSON(200, &apiIssues) ctx.JSON(200, &apiIssues)
} }

View File

@ -109,7 +109,7 @@ func ExploreRepos(ctx *context.Context) {
RenderRepoSearch(ctx, &RepoSearchOptions{ RenderRepoSearch(ctx, &RepoSearchOptions{
Counter: models.CountPublicRepositories, Counter: models.CountPublicRepositories,
Ranger: models.GetRecentUpdatedRepositories, Ranger: models.GetRecentUpdatedRepositories,
PageSize: setting.ExplorePagingNum, PageSize: setting.UI.ExplorePagingNum,
OrderBy: "updated_unix DESC", OrderBy: "updated_unix DESC",
TplName: EXPLORE_REPOS, TplName: EXPLORE_REPOS,
}) })
@ -174,7 +174,7 @@ func ExploreUsers(ctx *context.Context) {
Type: models.USER_TYPE_INDIVIDUAL, Type: models.USER_TYPE_INDIVIDUAL,
Counter: models.CountUsers, Counter: models.CountUsers,
Ranger: models.Users, Ranger: models.Users,
PageSize: setting.ExplorePagingNum, PageSize: setting.UI.ExplorePagingNum,
OrderBy: "updated_unix DESC", OrderBy: "updated_unix DESC",
TplName: EXPLORE_USERS, TplName: EXPLORE_USERS,
}) })

View File

@ -163,7 +163,7 @@ func Issues(ctx *context.Context) {
} else { } else {
total = int(issueStats.ClosedCount) total = int(issueStats.ClosedCount)
} }
pager := paginater.New(total, setting.IssuePagingNum, page, 5) pager := paginater.New(total, setting.UI.IssuePagingNum, page, 5)
ctx.Data["Page"] = pager ctx.Data["Page"] = pager
// Get issues. // Get issues.
@ -1017,7 +1017,7 @@ func Milestones(ctx *context.Context) {
} else { } else {
total = int(closedCount) total = int(closedCount)
} }
ctx.Data["Page"] = paginater.New(total, setting.IssuePagingNum, page, 5) ctx.Data["Page"] = paginater.New(total, setting.UI.IssuePagingNum, page, 5)
miles, err := models.GetMilestones(ctx.Repo.Repository.ID, page, isShowClosed) miles, err := models.GetMilestones(ctx.Repo.Repository.ID, page, isShowClosed)
if err != nil { if err != nil {

View File

@ -105,7 +105,7 @@ func Home(ctx *context.Context) {
case isImageFile: case isImageFile:
ctx.Data["IsImageFile"] = true ctx.Data["IsImageFile"] = true
case isTextFile: case isTextFile:
if blob.Size() >= setting.MaxDisplayFileSize { if blob.Size() >= setting.UI.MaxDisplayFileSize {
ctx.Data["IsFileTooLarge"] = true ctx.Data["IsFileTooLarge"] = true
} else { } else {
ctx.Data["IsFileTooLarge"] = false ctx.Data["IsFileTooLarge"] = false

View File

@ -253,7 +253,7 @@ func Issues(ctx *context.Context) {
} else { } else {
total = int(issueStats.ClosedCount) total = int(issueStats.ClosedCount)
} }
ctx.Data["Page"] = paginater.New(total, setting.IssuePagingNum, page, 5) ctx.Data["Page"] = paginater.New(total, setting.UI.IssuePagingNum, page, 5)
// Get issues. // Get issues.
issues, err := models.Issues(&models.IssuesOptions{ issues, err := models.Issues(&models.IssuesOptions{