-
id: 1
repo_id: 1
- type: 1
- index: 0
+ type: 4
+ index: 3
config: "{}"
created_unix: 946684810
-
id: 2
repo_id: 1
- type: 2
- index: 1
- config: "{\"EnableTimetracker\":true,\"AllowOnlyContributorsToTrackTime\":true}"
+ type: 5
+ index: 4
+ config: "{}"
created_unix: 946684810
-
id: 3
repo_id: 1
- type: 3
- index: 2
+ type: 1
+ index: 0
config: "{}"
created_unix: 946684810
-
id: 4
repo_id: 1
- type: 4
- index: 3
- config: "{}"
+ type: 2
+ index: 1
+ config: "{\"EnableTimetracker\":true,\"AllowOnlyContributorsToTrackTime\":true}"
created_unix: 946684810
-
id: 5
repo_id: 1
- type: 5
- index: 4
+ type: 3
+ index: 2
config: "{}"
created_unix: 946684810
return true
}
+// 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{
// Home render repository home page
func Home(ctx *context.Context) {
if len(ctx.Repo.Repository.Units) > 0 {
- tp := ctx.Repo.Repository.Units[0].Type
- if tp == models.UnitTypeCode {
- renderCode(ctx)
- return
+ var firstUnit *models.Unit
+ for _, repoUnit := range ctx.Repo.Repository.Units {
+ if repoUnit.Type == models.UnitTypeCode {
+ renderCode(ctx)
+ return
+ }
+
+ unit, ok := models.Units[repoUnit.Type]
+ if ok && (firstUnit == nil || !firstUnit.IsLessThan(unit)) {
+ firstUnit = &unit
+ }
}
- unit, ok := models.Units[tp]
- if ok {
- ctx.Redirect(setting.AppSubURL + fmt.Sprintf("/%s%s",
- ctx.Repo.Repository.FullName(), unit.URI))
+ if firstUnit != nil {
+ ctx.Redirect(fmt.Sprintf("%s/%s%s", setting.AppSubURL, ctx.Repo.Repository.FullName(), firstUnit.URI))
return
}
}