|
|
|
@ -38,12 +38,14 @@ type Release struct { |
|
|
|
|
CreatedUnix int64 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// BeforeInsert is invoked from XORM before inserting an object of this type.
|
|
|
|
|
func (r *Release) BeforeInsert() { |
|
|
|
|
if r.CreatedUnix == 0 { |
|
|
|
|
r.CreatedUnix = time.Now().Unix() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// AfterSet is invoked from XORM after setting the value of a field of this object.
|
|
|
|
|
func (r *Release) AfterSet(colName string, _ xorm.Cell) { |
|
|
|
|
switch colName { |
|
|
|
|
case "created_unix": |
|
|
|
@ -151,15 +153,15 @@ func GetReleasesByRepoID(repoID int64, page, pageSize int) (rels []*Release, err |
|
|
|
|
return rels, err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type ReleaseSorter struct { |
|
|
|
|
type releaseSorter struct { |
|
|
|
|
rels []*Release |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (rs *ReleaseSorter) Len() int { |
|
|
|
|
func (rs *releaseSorter) Len() int { |
|
|
|
|
return len(rs.rels) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (rs *ReleaseSorter) Less(i, j int) bool { |
|
|
|
|
func (rs *releaseSorter) Less(i, j int) bool { |
|
|
|
|
diffNum := rs.rels[i].NumCommits - rs.rels[j].NumCommits |
|
|
|
|
if diffNum != 0 { |
|
|
|
|
return diffNum > 0 |
|
|
|
@ -167,13 +169,13 @@ func (rs *ReleaseSorter) Less(i, j int) bool { |
|
|
|
|
return rs.rels[i].Created.After(rs.rels[j].Created) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (rs *ReleaseSorter) Swap(i, j int) { |
|
|
|
|
func (rs *releaseSorter) Swap(i, j int) { |
|
|
|
|
rs.rels[i], rs.rels[j] = rs.rels[j], rs.rels[i] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// SortReleases sorts releases by number of commits and created time.
|
|
|
|
|
func SortReleases(rels []*Release) { |
|
|
|
|
sorter := &ReleaseSorter{rels: rels} |
|
|
|
|
sorter := &releaseSorter{rels: rels} |
|
|
|
|
sort.Sort(sorter) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|