summaryrefslogtreecommitdiffstats
path: root/models/unit.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-11-10 03:57:58 +0800
committerGitHub <noreply@github.com>2021-11-09 20:57:58 +0100
commit99b2858e628d92bba252be72def409af77af735b (patch)
tree56159cf10b271307911e6f01626c0c3efba789ab /models/unit.go
parentb6b1e716654fec3b16d245ef65cf42e57e1bb5b6 (diff)
downloadgitea-99b2858e628d92bba252be72def409af77af735b.tar.gz
gitea-99b2858e628d92bba252be72def409af77af735b.zip
Move unit into models/unit/ (#17576)
* Move unit into models/unit/ * Rename unit.UnitType as unit.Type
Diffstat (limited to 'models/unit.go')
-rw-r--r--models/unit.go282
1 files changed, 0 insertions, 282 deletions
diff --git a/models/unit.go b/models/unit.go
deleted file mode 100644
index 939deba574..0000000000
--- a/models/unit.go
+++ /dev/null
@@ -1,282 +0,0 @@
-// Copyright 2017 The Gitea 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 (
- "fmt"
- "strings"
-
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting"
-)
-
-// UnitType is Unit's Type
-type UnitType int
-
-// Enumerate all the unit types
-const (
- UnitTypeCode UnitType = iota + 1 // 1 code
- UnitTypeIssues // 2 issues
- UnitTypePullRequests // 3 PRs
- UnitTypeReleases // 4 Releases
- UnitTypeWiki // 5 Wiki
- UnitTypeExternalWiki // 6 ExternalWiki
- UnitTypeExternalTracker // 7 ExternalTracker
- UnitTypeProjects // 8 Kanban board
-)
-
-// Value returns integer value for unit type
-func (u UnitType) Value() int {
- return int(u)
-}
-
-func (u UnitType) String() string {
- switch u {
- case UnitTypeCode:
- return "UnitTypeCode"
- case UnitTypeIssues:
- return "UnitTypeIssues"
- case UnitTypePullRequests:
- return "UnitTypePullRequests"
- case UnitTypeReleases:
- return "UnitTypeReleases"
- case UnitTypeWiki:
- return "UnitTypeWiki"
- case UnitTypeExternalWiki:
- return "UnitTypeExternalWiki"
- case UnitTypeExternalTracker:
- return "UnitTypeExternalTracker"
- case UnitTypeProjects:
- return "UnitTypeProjects"
- }
- return fmt.Sprintf("Unknown UnitType %d", u)
-}
-
-// ColorFormat provides a ColorFormatted version of this UnitType
-func (u UnitType) ColorFormat(s fmt.State) {
- log.ColorFprintf(s, "%d:%s",
- log.NewColoredIDValue(u),
- u)
-}
-
-var (
- // AllRepoUnitTypes contains all the unit types
- AllRepoUnitTypes = []UnitType{
- UnitTypeCode,
- UnitTypeIssues,
- UnitTypePullRequests,
- UnitTypeReleases,
- UnitTypeWiki,
- UnitTypeExternalWiki,
- UnitTypeExternalTracker,
- UnitTypeProjects,
- }
-
- // DefaultRepoUnits contains the default unit types
- DefaultRepoUnits = []UnitType{
- UnitTypeCode,
- UnitTypeIssues,
- UnitTypePullRequests,
- UnitTypeReleases,
- UnitTypeWiki,
- UnitTypeProjects,
- }
-
- // NotAllowedDefaultRepoUnits contains units that can't be default
- NotAllowedDefaultRepoUnits = []UnitType{
- UnitTypeExternalWiki,
- UnitTypeExternalTracker,
- }
-
- // MustRepoUnits contains the units could not be disabled currently
- MustRepoUnits = []UnitType{
- UnitTypeCode,
- UnitTypeReleases,
- }
-
- // DisabledRepoUnits contains the units that have been globally disabled
- DisabledRepoUnits = []UnitType{}
-)
-
-func loadUnitConfig() {
- setDefaultRepoUnits := FindUnitTypes(setting.Repository.DefaultRepoUnits...)
- // Default repo units set if setting is not empty
- if len(setDefaultRepoUnits) > 0 {
- // MustRepoUnits required as default
- DefaultRepoUnits = make([]UnitType, len(MustRepoUnits))
- copy(DefaultRepoUnits, MustRepoUnits)
- for _, defaultU := range setDefaultRepoUnits {
- if !defaultU.CanBeDefault() {
- log.Warn("Not allowed as default unit: %s", defaultU.String())
- continue
- }
- // MustRepoUnits already added
- if defaultU.CanDisable() {
- DefaultRepoUnits = append(DefaultRepoUnits, defaultU)
- }
- }
- }
-
- DisabledRepoUnits = FindUnitTypes(setting.Repository.DisabledRepoUnits...)
- // Check that must units are not disabled
- for i, disabledU := range DisabledRepoUnits {
- if !disabledU.CanDisable() {
- log.Warn("Not allowed to global disable unit %s", disabledU.String())
- DisabledRepoUnits = append(DisabledRepoUnits[:i], DisabledRepoUnits[i+1:]...)
- }
- }
- // Remove disabled units from default units
- for _, disabledU := range DisabledRepoUnits {
- for i, defaultU := range DefaultRepoUnits {
- if defaultU == disabledU {
- DefaultRepoUnits = append(DefaultRepoUnits[:i], DefaultRepoUnits[i+1:]...)
- }
- }
- }
-}
-
-// UnitGlobalDisabled checks if unit type is global disabled
-func (u UnitType) UnitGlobalDisabled() bool {
- for _, ud := range DisabledRepoUnits {
- if u == ud {
- return true
- }
- }
- return false
-}
-
-// CanDisable checks if this unit type can be disabled.
-func (u *UnitType) CanDisable() bool {
- for _, mu := range MustRepoUnits {
- if *u == mu {
- return false
- }
- }
- return true
-}
-
-// CanBeDefault checks if the unit type can be a default repo unit
-func (u *UnitType) CanBeDefault() bool {
- for _, nadU := range NotAllowedDefaultRepoUnits {
- if *u == nadU {
- return false
- }
- }
- return true
-}
-
-// Unit is a section of one repository
-type Unit struct {
- Type UnitType
- NameKey string
- URI string
- DescKey string
- Idx int
-}
-
-// CanDisable returns if this unit could be disabled.
-func (u *Unit) CanDisable() bool {
- return u.Type.CanDisable()
-}
-
-// IsLessThan compares order of two units
-func (u Unit) IsLessThan(unit Unit) bool {
- if (u.Type == UnitTypeExternalTracker || u.Type == UnitTypeExternalWiki) && unit.Type != UnitTypeExternalTracker && unit.Type != UnitTypeExternalWiki {
- return false
- }
- return u.Idx < unit.Idx
-}
-
-// Enumerate all the units
-var (
- UnitCode = Unit{
- UnitTypeCode,
- "repo.code",
- "/",
- "repo.code.desc",
- 0,
- }
-
- UnitIssues = Unit{
- UnitTypeIssues,
- "repo.issues",
- "/issues",
- "repo.issues.desc",
- 1,
- }
-
- UnitExternalTracker = Unit{
- UnitTypeExternalTracker,
- "repo.ext_issues",
- "/issues",
- "repo.ext_issues.desc",
- 1,
- }
-
- UnitPullRequests = Unit{
- UnitTypePullRequests,
- "repo.pulls",
- "/pulls",
- "repo.pulls.desc",
- 2,
- }
-
- UnitReleases = Unit{
- UnitTypeReleases,
- "repo.releases",
- "/releases",
- "repo.releases.desc",
- 3,
- }
-
- UnitWiki = Unit{
- UnitTypeWiki,
- "repo.wiki",
- "/wiki",
- "repo.wiki.desc",
- 4,
- }
-
- UnitExternalWiki = Unit{
- UnitTypeExternalWiki,
- "repo.ext_wiki",
- "/wiki",
- "repo.ext_wiki.desc",
- 4,
- }
-
- UnitProjects = Unit{
- UnitTypeProjects,
- "repo.projects",
- "/projects",
- "repo.projects.desc",
- 5,
- }
-
- // Units contains all the units
- Units = map[UnitType]Unit{
- UnitTypeCode: UnitCode,
- UnitTypeIssues: UnitIssues,
- UnitTypeExternalTracker: UnitExternalTracker,
- UnitTypePullRequests: UnitPullRequests,
- UnitTypeReleases: UnitReleases,
- UnitTypeWiki: UnitWiki,
- UnitTypeExternalWiki: UnitExternalWiki,
- UnitTypeProjects: UnitProjects,
- }
-)
-
-// FindUnitTypes give the unit key name and return unit
-func FindUnitTypes(nameKeys ...string) (res []UnitType) {
- for _, key := range nameKeys {
- for t, u := range Units {
- if strings.EqualFold(key, u.NameKey) {
- res = append(res, t)
- break
- }
- }
- }
- return
-}