Browse Source

Display ui time with customize time location (#7792)

* display ui time with customize time location

* fix lint

* rename UILocation to DefaultUILocation

* move time related functions to modules/timeutil

* fix tests

* fix tests

* fix build

* fix swagger
release/v1.10
Lunny Xiao 3 years ago
committed by GitHub
parent
commit
85202d4784
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      custom/conf/app.ini.sample
  2. 6
      docs/content/doc/advanced/config-cheat-sheet.en-us.md
  3. 4
      docs/content/doc/advanced/config-cheat-sheet.zh-cn.md
  4. 8
      models/action.go
  5. 6
      models/admin.go
  6. 8
      models/attachment.go
  7. 35
      models/branches.go
  8. 6
      models/commit_status.go
  9. 28
      models/gpg_key.go
  10. 6
      models/gpg_key_test.go
  11. 17
      models/issue.go
  12. 17
      models/issue_comment.go
  13. 14
      models/issue_dependency.go
  14. 9
      models/issue_milestone.go
  15. 6
      models/issue_milestone_test.go
  16. 16
      models/issue_reaction.go
  17. 10
      models/issue_stopwatch.go
  18. 4
      models/issue_stopwatch_test.go
  19. 2
      models/issue_tracked_time.go
  20. 14
      models/issue_watch.go
  21. 14
      models/lfs.go
  22. 14
      models/login_source.go
  23. 7
      models/mail.go
  24. 4
      models/migrations/v54.go
  25. 4
      models/migrations/v57.go
  26. 14
      models/migrations/v64.go
  27. 7
      models/migrations/v65.go
  28. 12
      models/migrations/v71.go
  29. 6
      models/migrations/v72.go
  30. 4
      models/migrations/v76.go
  31. 8
      models/migrations/v83.go
  32. 14
      models/migrations/v85.go
  33. 6
      models/notification.go
  34. 17
      models/oauth2_application.go
  35. 14
      models/pull.go
  36. 20
      models/release.go
  37. 8
      models/repo.go
  38. 13
      models/repo_mirror.go
  39. 10
      models/repo_unit.go
  40. 8
      models/review.go
  41. 24
      models/ssh_key.go
  42. 16
      models/token.go
  43. 6
      models/topic.go
  44. 14
      models/twofactor.go
  45. 8
      models/u2f.go
  46. 6
      models/update.go
  47. 9
      models/user.go
  48. 8
      models/user_heatmap.go
  49. 7
      models/webhook.go
  50. 6
      modules/auth/auth.go
  51. 151
      modules/base/tool.go
  52. 149
      modules/base/tool_test.go
  53. 26
      modules/migrations/gitea.go
  54. 4
      modules/pull/merge.go
  55. 71
      modules/setting/setting.go
  56. 10
      modules/templates/helper.go
  57. 36
      modules/timeutil/language.go
  58. 164
      modules/timeutil/since.go
  59. 163
      modules/timeutil/since_test.go
  60. 27
      modules/timeutil/timestamp.go
  61. 4
      public/js/index.js
  62. 3
      routers/admin/admin.go
  63. 13
      routers/api/v1/repo/issue.go
  64. 7
      routers/api/v1/repo/milestone.go
  65. 10
      routers/api/v1/repo/pull.go
  66. 5
      routers/dev/template.go
  67. 4
      routers/private/key.go
  68. 5
      routers/repo/blame.go
  69. 4
      routers/repo/http.go
  70. 7
      routers/repo/milestone.go
  71. 10
      routers/repo/setting.go
  72. 5
      routers/repo/wiki.go
  73. 11
      routers/user/auth.go
  74. 3
      routers/user/auth_openid.go
  75. 8
      routers/user/oauth.go
  76. 3
      routers/user/setting/account.go
  77. 2
      templates/swagger/v1_json.tmpl

3
custom/conf/app.ini.sample

@ -547,6 +547,9 @@ MAX_FILES = 5
; Special supported values are ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano
; For more information about the format see http://golang.org/pkg/time/#pkg-constants
FORMAT =
; Location the UI time display i.e. Asia/Shanghai
; Empty means server's location setting
DEFAULT_UI_LOCATION =
[log]
ROOT_PATH =

6
docs/content/doc/advanced/config-cheat-sheet.en-us.md

@ -503,8 +503,12 @@ Two special environment variables are passed to the render command:
- `GITEA_PREFIX_SRC`, which contains the current URL prefix in the `src` path tree. To be used as prefix for links.
- `GITEA_PREFIX_RAW`, which contains the current URL prefix in the `raw` path tree. To be used as prefix for image paths.
## Time (`time`)
- `FORMAT`: Time format to diplay on UI. i.e. RFC1123 or 2006-01-02 15:04:05
- `DEFAULT_UI_LOCATION`: Default location of time on the UI, so that we can display correct user's time on UI. i.e. Shanghai/Asia
## Other (`other`)
- `SHOW_FOOTER_BRANDING`: **false**: Show Gitea branding in the footer.
- `SHOW_FOOTER_VERSION`: **true**: Show Gitea version information in the footer.
- `SHOW_FOOTER_TEMPLATE_LOAD_TIME`: **true**: Show time of template execution in the footer.
- `SHOW_FOOTER_TEMPLATE_LOAD_TIME`: **true**: Show time of template execution in the footer.

4
docs/content/doc/advanced/config-cheat-sheet.zh-cn.md

@ -237,7 +237,9 @@ IS_INPUT_FILE = false
- RENDER_COMMAND: 工具的命令行命令及参数。
- IS_INPUT_FILE: 输入方式是最后一个参数为文件路径还是从标准输入读取。
## Time (`time`)
- `FORMAT`: 显示在界面上的时间格式。比如: RFC1123 或者 2006-01-02 15:04:05
- `DEFAULT_UI_LOCATION`: 默认显示在界面上的时区,默认为本地时区。比如: Asia/Shanghai
## Other (`other`)

8
models/action.go

@ -20,7 +20,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"xorm.io/builder"
@ -91,9 +91,9 @@ type Action struct {
Comment *Comment `xorm:"-"`
IsDeleted bool `xorm:"INDEX NOT NULL DEFAULT false"`
RefName string
IsPrivate bool `xorm:"INDEX NOT NULL DEFAULT false"`
Content string `xorm:"TEXT"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
IsPrivate bool `xorm:"INDEX NOT NULL DEFAULT false"`
Content string `xorm:"TEXT"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
}
// GetOpType gets the ActionType of this action.

6
models/admin.go

@ -9,7 +9,7 @@ import (
"os"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
)
@ -26,8 +26,8 @@ const (
type Notice struct {
ID int64 `xorm:"pk autoincr"`
Type NoticeType
Description string `xorm:"TEXT"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
Description string `xorm:"TEXT"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
}
// TrStr returns a translation format string.

8
models/attachment.go

@ -12,7 +12,7 @@ import (
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
gouuid "github.com/satori/go.uuid"
@ -27,9 +27,9 @@ type Attachment struct {
UploaderID int64 `xorm:"INDEX DEFAULT 0"` // Notice: will be zero before this column added
CommentID int64
Name string
DownloadCount int64 `xorm:"DEFAULT 0"`
Size int64 `xorm:"DEFAULT 0"`
CreatedUnix util.TimeStamp `xorm:"created"`
DownloadCount int64 `xorm:"DEFAULT 0"`
Size int64 `xorm:"DEFAULT 0"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}
// IncreaseDownloadCount is update download count + 1

35
models/branches.go

@ -11,6 +11,7 @@ import (
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
"code.gitea.io/gitea/modules/util"
"github.com/Unknwon/com"
@ -30,16 +31,16 @@ type ProtectedBranch struct {
BranchName string `xorm:"UNIQUE(s)"`
CanPush bool `xorm:"NOT NULL DEFAULT false"`
EnableWhitelist bool
WhitelistUserIDs []int64 `xorm:"JSON TEXT"`
WhitelistTeamIDs []int64 `xorm:"JSON TEXT"`
EnableMergeWhitelist bool `xorm:"NOT NULL DEFAULT false"`
MergeWhitelistUserIDs []int64 `xorm:"JSON TEXT"`
MergeWhitelistTeamIDs []int64 `xorm:"JSON TEXT"`
ApprovalsWhitelistUserIDs []int64 `xorm:"JSON TEXT"`
ApprovalsWhitelistTeamIDs []int64 `xorm:"JSON TEXT"`
RequiredApprovals int64 `xorm:"NOT NULL DEFAULT 0"`
CreatedUnix util.TimeStamp `xorm:"created"`
UpdatedUnix util.TimeStamp `xorm:"updated"`
WhitelistUserIDs []int64 `xorm:"JSON TEXT"`
WhitelistTeamIDs []int64 `xorm:"JSON TEXT"`
EnableMergeWhitelist bool `xorm:"NOT NULL DEFAULT false"`
MergeWhitelistUserIDs []int64 `xorm:"JSON TEXT"`
MergeWhitelistTeamIDs []int64 `xorm:"JSON TEXT"`
ApprovalsWhitelistUserIDs []int64 `xorm:"JSON TEXT"`
ApprovalsWhitelistTeamIDs []int64 `xorm:"JSON TEXT"`
RequiredApprovals int64 `xorm:"NOT NULL DEFAULT 0"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
}
// IsProtected returns if the branch is protected
@ -374,13 +375,13 @@ func (repo *Repository) DeleteProtectedBranch(id int64) (err error) {
// DeletedBranch struct
type DeletedBranch struct {
ID int64 `xorm:"pk autoincr"`
RepoID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"`
Name string `xorm:"UNIQUE(s) NOT NULL"`
Commit string `xorm:"UNIQUE(s) NOT NULL"`
DeletedByID int64 `xorm:"INDEX"`
DeletedBy *User `xorm:"-"`
DeletedUnix util.TimeStamp `xorm:"INDEX created"`
ID int64 `xorm:"pk autoincr"`
RepoID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"`
Name string `xorm:"UNIQUE(s) NOT NULL"`
Commit string `xorm:"UNIQUE(s) NOT NULL"`
DeletedByID int64 `xorm:"INDEX"`
DeletedBy *User `xorm:"-"`
DeletedUnix timeutil.TimeStamp `xorm:"INDEX created"`
}
// AddDeletedBranch adds a deleted branch to the database

6
models/commit_status.go

@ -13,7 +13,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -66,8 +66,8 @@ type CommitStatus struct {
Creator *User `xorm:"-"`
CreatorID int64
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}
func (status *CommitStatus) loadRepo(e Engine) (err error) {

28
models/gpg_key.go

@ -17,7 +17,7 @@ import (
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
"github.com/keybase/go-crypto/openpgp"
@ -27,14 +27,14 @@ import (
// GPGKey represents a GPG key.
type GPGKey struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"INDEX NOT NULL"`
KeyID string `xorm:"INDEX CHAR(16) NOT NULL"`
PrimaryKeyID string `xorm:"CHAR(16)"`
Content string `xorm:"TEXT NOT NULL"`
CreatedUnix util.TimeStamp `xorm:"created"`
ExpiredUnix util.TimeStamp
AddedUnix util.TimeStamp
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"INDEX NOT NULL"`
KeyID string `xorm:"INDEX CHAR(16) NOT NULL"`
PrimaryKeyID string `xorm:"CHAR(16)"`
Content string `xorm:"TEXT NOT NULL"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
ExpiredUnix timeutil.TimeStamp
AddedUnix timeutil.TimeStamp
SubsKey []*GPGKey `xorm:"-"`
Emails []*EmailAddress
CanSign bool
@ -51,7 +51,7 @@ type GPGKeyImport struct {
// BeforeInsert will be invoked by XORM before inserting a record
func (key *GPGKey) BeforeInsert() {
key.AddedUnix = util.TimeStampNow()
key.AddedUnix = timeutil.TimeStampNow()
}
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
@ -223,8 +223,8 @@ func parseSubGPGKey(ownerID int64, primaryID string, pubkey *packet.PublicKey, e
KeyID: pubkey.KeyIdString(),
PrimaryKeyID: primaryID,
Content: content,
CreatedUnix: util.TimeStamp(pubkey.CreationTime.Unix()),
ExpiredUnix: util.TimeStamp(expiry.Unix()),
CreatedUnix: timeutil.TimeStamp(pubkey.CreationTime.Unix()),
ExpiredUnix: timeutil.TimeStamp(expiry.Unix()),
CanSign: pubkey.CanSign(),
CanEncryptComms: pubkey.PubKeyAlgo.CanEncrypt(),
CanEncryptStorage: pubkey.PubKeyAlgo.CanEncrypt(),
@ -301,8 +301,8 @@ func parseGPGKey(ownerID int64, e *openpgp.Entity) (*GPGKey, error) {
KeyID: pubkey.KeyIdString(),
PrimaryKeyID: "",
Content: content,
CreatedUnix: util.TimeStamp(pubkey.CreationTime.Unix()),
ExpiredUnix: util.TimeStamp(expiry.Unix()),
CreatedUnix: timeutil.TimeStamp(pubkey.CreationTime.Unix()),
ExpiredUnix: timeutil.TimeStamp(expiry.Unix()),
Emails: emails,
SubsKey: subkeys,
CanSign: pubkey.CanSign(),

6
models/gpg_key_test.go

@ -8,7 +8,7 @@ import (
"testing"
"time"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/stretchr/testify/assert"
)
@ -112,7 +112,7 @@ MkM/fdpyc2hY7Dl/+qFmN5MG5yGmMpQcX+RNNR222ibNC1D3wg==
key := &GPGKey{
KeyID: pubkey.KeyIdString(),
Content: content,
CreatedUnix: util.TimeStamp(pubkey.CreationTime.Unix()),
CreatedUnix: timeutil.TimeStamp(pubkey.CreationTime.Unix()),
CanSign: pubkey.CanSign(),
CanEncryptComms: pubkey.PubKeyAlgo.CanEncrypt(),
CanEncryptStorage: pubkey.PubKeyAlgo.CanEncrypt(),
@ -122,7 +122,7 @@ MkM/fdpyc2hY7Dl/+qFmN5MG5yGmMpQcX+RNNR222ibNC1D3wg==
cannotsignkey := &GPGKey{
KeyID: pubkey.KeyIdString(),
Content: content,
CreatedUnix: util.TimeStamp(pubkey.CreationTime.Unix()),
CreatedUnix: timeutil.TimeStamp(pubkey.CreationTime.Unix()),
CanSign: false,
CanEncryptComms: false,
CanEncryptStorage: false,

17
models/issue.go

@ -16,6 +16,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/timeutil"
"code.gitea.io/gitea/modules/util"
"github.com/Unknwon/com"
@ -49,11 +50,11 @@ type Issue struct {
NumComments int
Ref string
DeadlineUnix util.TimeStamp `xorm:"INDEX"`
DeadlineUnix timeutil.TimeStamp `xorm:"INDEX"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
ClosedUnix util.TimeStamp `xorm:"INDEX"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
ClosedUnix timeutil.TimeStamp `xorm:"INDEX"`
Attachments []*Attachment `xorm:"-"`
Comments []*Comment `xorm:"-"`
@ -90,7 +91,7 @@ func (issue *Issue) loadTotalTimes(e Engine) (err error) {
// IsOverdue checks if the issue is overdue
func (issue *Issue) IsOverdue() bool {
return util.TimeStampNow() >= issue.DeadlineUnix
return timeutil.TimeStampNow() >= issue.DeadlineUnix
}
// LoadRepo loads issue's repository
@ -744,7 +745,7 @@ func (issue *Issue) changeStatus(e *xorm.Session, doer *User, isClosed bool) (er
issue.IsClosed = isClosed
if isClosed {
issue.ClosedUnix = util.TimeStampNow()
issue.ClosedUnix = timeutil.TimeStampNow()
} else {
issue.ClosedUnix = 0
}
@ -991,7 +992,7 @@ func (issue *Issue) GetTasksDone() int {
}
// GetLastEventTimestamp returns the last user visible event timestamp, either the creation of this issue or the close.
func (issue *Issue) GetLastEventTimestamp() util.TimeStamp {
func (issue *Issue) GetLastEventTimestamp() timeutil.TimeStamp {
if issue.IsClosed {
return issue.ClosedUnix
}
@ -1794,7 +1795,7 @@ func UpdateIssue(issue *Issue) error {
}
// UpdateIssueDeadline updates an issue deadline and adds comments. Setting a deadline to 0 means deleting it.
func UpdateIssueDeadline(issue *Issue, deadlineUnix util.TimeStamp, doer *User) (err error) {
func UpdateIssueDeadline(issue *Issue, deadlineUnix timeutil.TimeStamp, doer *User) (err error) {
// if the deadline hasn't changed do nothing
if issue.DeadlineUnix == deadlineUnix {

17
models/issue_comment.go

@ -12,17 +12,16 @@ import (
"strings"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/markup"
"code.gitea.io/gitea/modules/markup/markdown"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
"xorm.io/builder"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/markup"
"code.gitea.io/gitea/modules/util"
)
// CommentType defines whether a comment is just a simple comment, an action (like close) or a reference.
@ -130,8 +129,8 @@ type Comment struct {
// Path represents the 4 lines of code cemented by this comment
Patch string `xorm:"TEXT"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
// Reference issue in commit message
CommitSHA string `xorm:"VARCHAR(40)"`
@ -711,7 +710,7 @@ func createAssigneeComment(e *xorm.Session, doer *User, repo *Repository, issue
})
}
func createDeadlineComment(e *xorm.Session, doer *User, issue *Issue, newDeadlineUnix util.TimeStamp) (*Comment, error) {
func createDeadlineComment(e *xorm.Session, doer *User, issue *Issue, newDeadlineUnix timeutil.TimeStamp) (*Comment, error) {
var content string
var commentType CommentType

14
models/issue_dependency.go

@ -7,17 +7,17 @@ package models
import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
)
// IssueDependency represents an issue dependency
type IssueDependency struct {
ID int64 `xorm:"pk autoincr"`
UserID int64 `xorm:"NOT NULL"`
IssueID int64 `xorm:"UNIQUE(issue_dependency) NOT NULL"`
DependencyID int64 `xorm:"UNIQUE(issue_dependency) NOT NULL"`
CreatedUnix util.TimeStamp `xorm:"created"`
UpdatedUnix util.TimeStamp `xorm:"updated"`
ID int64 `xorm:"pk autoincr"`
UserID int64 `xorm:"NOT NULL"`
IssueID int64 `xorm:"UNIQUE(issue_dependency) NOT NULL"`
DependencyID int64 `xorm:"UNIQUE(issue_dependency) NOT NULL"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
}
// DependencyType Defines Dependency Type Constants

9
models/issue_milestone.go

@ -10,7 +10,8 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -29,8 +30,8 @@ type Milestone struct {
IsOverdue bool `xorm:"-"`
DeadlineString string `xorm:"-"`
DeadlineUnix util.TimeStamp
ClosedDateUnix util.TimeStamp
DeadlineUnix timeutil.TimeStamp
ClosedDateUnix timeutil.TimeStamp
TotalTrackedTime int64 `xorm:"-"`
}
@ -53,7 +54,7 @@ func (m *Milestone) AfterLoad() {
}
m.DeadlineString = m.DeadlineUnix.Format("2006-01-02")
if util.TimeStampNow() >= m.DeadlineUnix {
if timeutil.TimeStampNow() >= m.DeadlineUnix {
m.IsOverdue = true
}
}

6
models/issue_milestone_test.go

@ -10,7 +10,7 @@ import (
"time"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/stretchr/testify/assert"
)
@ -29,7 +29,7 @@ func TestMilestone_APIFormat(t *testing.T) {
IsClosed: false,
NumOpenIssues: 5,
NumClosedIssues: 6,
DeadlineUnix: util.TimeStamp(time.Date(2000, time.January, 1, 0, 0, 0, 0, time.UTC).Unix()),
DeadlineUnix: timeutil.TimeStamp(time.Date(2000, time.January, 1, 0, 0, 0, 0, time.UTC).Unix()),
}
assert.Equal(t, api.Milestone{
ID: milestone.ID,
@ -237,7 +237,7 @@ func TestChangeMilestoneIssueStats(t *testing.T) {
"is_closed=0").(*Issue)
issue.IsClosed = true
issue.ClosedUnix = util.TimeStampNow()
issue.ClosedUnix = timeutil.TimeStampNow()
_, err := x.Cols("is_closed", "closed_unix").Update(issue)
assert.NoError(t, err)
assert.NoError(t, changeMilestoneIssueStats(x.NewSession(), issue))

16
models/issue_reaction.go

@ -9,7 +9,7 @@ import (
"fmt"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
"xorm.io/builder"
@ -17,13 +17,13 @@ import (
// Reaction represents a reactions on issues and comments.
type Reaction struct {
ID int64 `xorm:"pk autoincr"`
Type string `xorm:"INDEX UNIQUE(s) NOT NULL"`
IssueID int64 `xorm:"INDEX UNIQUE(s) NOT NULL"`
CommentID int64 `xorm:"INDEX UNIQUE(s)"`
UserID int64 `xorm:"INDEX UNIQUE(s) NOT NULL"`
User *User `xorm:"-"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
ID int64 `xorm:"pk autoincr"`
Type string `xorm:"INDEX UNIQUE(s) NOT NULL"`
IssueID int64 `xorm:"INDEX UNIQUE(s) NOT NULL"`
CommentID int64 `xorm:"INDEX UNIQUE(s)"`
UserID int64 `xorm:"INDEX UNIQUE(s) NOT NULL"`
User *User `xorm:"-"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
}
// FindReactionsOptions describes the conditions to Find reactions

10
models/issue_stopwatch.go

@ -8,15 +8,15 @@ import (
"fmt"
"time"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
)
// Stopwatch represents a stopwatch for time tracking.
type Stopwatch struct {
ID int64 `xorm:"pk autoincr"`
IssueID int64 `xorm:"INDEX"`
UserID int64 `xorm:"INDEX"`
CreatedUnix util.TimeStamp `xorm:"created"`
ID int64 `xorm:"pk autoincr"`
IssueID int64 `xorm:"INDEX"`
UserID int64 `xorm:"INDEX"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}
func getStopwatch(e Engine, userID, issueID int64) (sw *Stopwatch, exists bool, err error) {

4
models/issue_stopwatch_test.go

@ -3,7 +3,7 @@ package models
import (
"testing"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/stretchr/testify/assert"
)
@ -63,7 +63,7 @@ func TestCreateOrStopIssueStopwatch(t *testing.T) {
assert.NoError(t, CreateOrStopIssueStopwatch(user3, issue1))
sw := AssertExistsAndLoadBean(t, &Stopwatch{UserID: 3, IssueID: 1}).(*Stopwatch)
assert.Equal(t, true, sw.CreatedUnix <= util.TimeStampNow())
assert.Equal(t, true, sw.CreatedUnix <= timeutil.TimeStampNow())
assert.NoError(t, CreateOrStopIssueStopwatch(user2, issue2))
AssertNotExistsBean(t, &Stopwatch{UserID: 2, IssueID: 2})

2
models/issue_tracked_time.go

@ -26,7 +26,7 @@ type TrackedTime struct {
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
func (t *TrackedTime) AfterLoad() {
t.Created = time.Unix(t.CreatedUnix, 0).In(setting.UILocation)
t.Created = time.Unix(t.CreatedUnix, 0).In(setting.DefaultUILocation)
}
// APIFormat converts TrackedTime to API format

14
models/issue_watch.go

@ -4,16 +4,16 @@
package models
import "code.gitea.io/gitea/modules/util"
import "code.gitea.io/gitea/modules/timeutil"
// IssueWatch is connection request for receiving issue notification.
type IssueWatch struct {
ID int64 `xorm:"pk autoincr"`
UserID int64 `xorm:"UNIQUE(watch) NOT NULL"`
IssueID int64 `xorm:"UNIQUE(watch) NOT NULL"`
IsWatching bool `xorm:"NOT NULL"`
CreatedUnix util.TimeStamp `xorm:"created NOT NULL"`
UpdatedUnix util.TimeStamp `xorm:"updated NOT NULL"`
ID int64 `xorm:"pk autoincr"`
UserID int64 `xorm:"UNIQUE(watch) NOT NULL"`
IssueID int64 `xorm:"UNIQUE(watch) NOT NULL"`
IsWatching bool `xorm:"NOT NULL"`
CreatedUnix timeutil.TimeStamp `xorm:"created NOT NULL"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated NOT NULL"`
}
// CreateOrUpdateIssueWatch set watching for a user and issue

14
models/lfs.go

@ -7,17 +7,17 @@ import (
"fmt"
"io"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
)
// LFSMetaObject stores metadata for LFS tracked files.
type LFSMetaObject struct {
ID int64 `xorm:"pk autoincr"`
Oid string `xorm:"UNIQUE(s) INDEX NOT NULL"`
Size int64 `xorm:"NOT NULL"`
RepositoryID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"`
Existing bool `xorm:"-"`
CreatedUnix util.TimeStamp `xorm:"created"`
ID int64 `xorm:"pk autoincr"`
Oid string `xorm:"UNIQUE(s) INDEX NOT NULL"`
Size int64 `xorm:"NOT NULL"`
RepositoryID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"`
Existing bool `xorm:"-"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}
// Pointer returns the string representation of an LFS pointer file

14
models/login_source.go

@ -14,16 +14,16 @@ import (
"regexp"
"strings"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
"xorm.io/core"
"code.gitea.io/gitea/modules/auth/ldap"
"code.gitea.io/gitea/modules/auth/oauth2"
"code.gitea.io/gitea/modules/auth/pam"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
"xorm.io/core"
)
// LoginType represents an login type.
@ -148,8 +148,8 @@ type LoginSource struct {
IsSyncEnabled bool `xorm:"INDEX NOT NULL DEFAULT false"`
Cfg core.Conversion `xorm:"TEXT"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}
// Cell2Int64 converts a xorm.Cell type to int64,

7
models/mail.go

@ -16,6 +16,7 @@ import (
"code.gitea.io/gitea/modules/markup"
"code.gitea.io/gitea/modules/markup/markdown"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
"gopkg.in/gomail.v2"
)
@ -47,8 +48,8 @@ func SendTestMail(email string) error {
func SendUserMail(language string, u *User, tpl base.TplName, code, subject, info string) {
data := map[string]interface{}{
"DisplayName": u.DisplayName(),
"ActiveCodeLives": base.MinutesToFriendly(setting.Service.ActiveCodeLives, language),
"ResetPwdCodeLives": base.MinutesToFriendly(setting.Service.ResetPwdCodeLives, language),
"ActiveCodeLives": timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, language),
"ResetPwdCodeLives": timeutil.MinutesToFriendly(setting.Service.ResetPwdCodeLives, language),
"Code": code,
}
@ -85,7 +86,7 @@ func SendResetPasswordMail(locale Locale, u *User) {
func SendActivateEmailMail(locale Locale, u *User, email *EmailAddress) {
data := map[string]interface{}{
"DisplayName": u.DisplayName(),
"ActiveCodeLives": base.MinutesToFriendly(setting.Service.ActiveCodeLives, locale.Language()),
"ActiveCodeLives": timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, locale.Language()),
"Code": u.GenerateEmailActivateCode(email.Email),
"Email": email.Email,
}

4
models/migrations/v54.go

@ -7,7 +7,7 @@ package migrations
import (
"fmt"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -19,7 +19,7 @@ func addPullRequestOptions(x *xorm.Engine) error {
RepoID int64 `xorm:"INDEX(s)"`
Type int `xorm:"INDEX(s)"`
Config map[string]interface{} `xorm:"JSON"`
CreatedUnix util.TimeStamp `xorm:"INDEX CREATED"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX CREATED"`
}
sess := x.NewSession()

4
models/migrations/v57.go

@ -7,7 +7,7 @@ package migrations
import (
"fmt"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -15,7 +15,7 @@ import (
func addIssueClosedTime(x *xorm.Engine) error {
// Issue see models/issue.go
type Issue struct {
ClosedUnix util.TimeStamp `xorm:"INDEX"`
ClosedUnix timeutil.TimeStamp `xorm:"INDEX"`
}
if err := x.Sync2(new(Issue)); err != nil {

14
models/migrations/v64.go

@ -5,7 +5,7 @@
package migrations
import (
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -27,10 +27,10 @@ func addMultipleAssignees(x *xorm.Engine) error {
IsPull bool `xorm:"INDEX"` // Indicates whether is a pull request or not.
NumComments int
DeadlineUnix util.TimeStamp `xorm:"INDEX"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
ClosedUnix util.TimeStamp `xorm:"INDEX"`
DeadlineUnix timeutil.TimeStamp `xorm:"INDEX"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
ClosedUnix timeutil.TimeStamp `xorm:"INDEX"`
}
// Updated the comment table
@ -53,8 +53,8 @@ func addMultipleAssignees(x *xorm.Engine) error {
Content string `xorm:"TEXT"`
RenderedContent string `xorm:"-"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
// Reference issue in commit message
CommitSHA string `xorm:"VARCHAR(40)"`

7
models/migrations/v65.go

@ -1,7 +1,8 @@
package migrations
import (
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -12,8 +13,8 @@ func addU2FReg(x *xorm.Engine) error {
UserID int64 `xorm:"INDEX"`
Raw []byte
Counter uint32
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}
return x.Sync2(&U2FRegistration{})
}

12
models/migrations/v71.go

@ -8,11 +8,11 @@ import (
"crypto/sha256"
"fmt"
"code.gitea.io/gitea/modules/generate"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
"golang.org/x/crypto/pbkdf2"
"code.gitea.io/gitea/modules/generate"
"code.gitea.io/gitea/modules/util"
)
func addScratchHash(x *xorm.Engine) error {
@ -24,9 +24,9 @@ func addScratchHash(x *xorm.Engine) error {
ScratchToken string
ScratchSalt string
ScratchHash string
LastUsedPasscode string `xorm:"VARCHAR(10)"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
LastUsedPasscode string `xorm:"VARCHAR(10)"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}
if err := x.Sync2(new(TwoFactor)); err != nil {

6
models/migrations/v72.go

@ -7,7 +7,7 @@ package migrations
import (
"fmt"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -20,8 +20,8 @@ func addReview(x *xorm.Engine) error {
ReviewerID int64 `xorm:"index"`
IssueID int64 `xorm:"index"`
Content string
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}
if err := x.Sync2(new(Review)); err != nil {

4
models/migrations/v76.go

@ -7,7 +7,7 @@ package migrations
import (
"fmt"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -19,7 +19,7 @@ func addPullRequestRebaseWithMerge(x *xorm.Engine) error {
RepoID int64 `xorm:"INDEX(s)"`
Type int `xorm:"INDEX(s)"`
Config map[string]interface{} `xorm:"JSON"`
CreatedUnix util.TimeStamp `xorm:"INDEX CREATED"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX CREATED"`
}
sess := x.NewSession()

8
models/migrations/v83.go

@ -5,7 +5,7 @@
package migrations
import (
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
@ -19,9 +19,9 @@ func addUploaderIDForAttachment(x *xorm.Engine) error {
UploaderID int64 `xorm:"INDEX DEFAULT 0"`
CommentID int64
Name string
DownloadCount int64 `xorm:"DEFAULT 0"`
Size int64 `xorm:"DEFAULT 0"`
CreatedUnix util.TimeStamp `xorm:"created"`
DownloadCount int64 `xorm:"DEFAULT 0"`
Size int64 `xorm:"DEFAULT 0"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}
return x.Sync2(new(Attachment))

14
models/migrations/v85.go

@ -7,11 +7,11 @@ package migrations
import (
"fmt"
"github.com/go-xorm/xorm"
"code.gitea.io/gitea/modules/generate"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
)
func hashAppToken(x *xorm.Engine) error {
@ -26,10 +26,10 @@ func hashAppToken(x *xorm.Engine) error {
TokenSalt string
TokenLastEight string `xorm:"token_last_eight"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
HasRecentActivity bool `xorm:"-"`
HasUsed bool `xorm:"-"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
HasRecentActivity bool `xorm:"-"`
HasUsed bool `xorm:"-"`
}
// First remove the index

6
models/notification.go

@ -7,7 +7,7 @@ package models
import (
"fmt"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
)
type (
@ -52,8 +52,8 @@ type Notification struct {
Issue *Issue `xorm:"-"`
Repository *Repository `xorm:"-"`
CreatedUnix util.TimeStamp `xorm:"created INDEX NOT NULL"`
UpdatedUnix util.TimeStamp `xorm:"updated INDEX NOT NULL"`
CreatedUnix timeutil.TimeStamp `xorm:"created INDEX NOT NULL"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated INDEX NOT NULL"`
}
// CreateOrUpdateIssueNotifications creates an issue notification

17
models/oauth2_application.go

@ -11,15 +11,14 @@ import (
"net/url"
"time"
"github.com/go-xorm/xorm"
uuid "github.com/satori/go.uuid"
"code.gitea.io/gitea/modules/secret"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"github.com/dgrijalva/jwt-go"
"github.com/go-xorm/xorm"
uuid "github.com/satori/go.uuid"
"golang.org/x/crypto/bcrypt"
)
@ -36,8 +35,8 @@ type OAuth2Application struct {
RedirectURIs []string `xorm:"redirect_uris JSON TEXT"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}
// TableName sets the table name to `oauth2_application`
@ -264,7 +263,7 @@ type OAuth2AuthorizationCode struct {
CodeChallenge string
CodeChallengeMethod string
RedirectURI string
ValidUntil util.TimeStamp `xorm:"index"`
ValidUntil timeutil.TimeStamp `xorm:"index"`
}
// TableName sets the table name to `oauth2_authorization_code`
@ -348,8 +347,8 @@ type OAuth2Grant struct {
Application *OAuth2Application `xorm:"-"`
ApplicationID int64 `xorm:"INDEX unique(user_application)"`
Counter int64 `xorm:"NOT NULL DEFAULT 1"`
CreatedUnix util.TimeStamp `xorm:"created"`
UpdatedUnix util.TimeStamp `xorm:"updated"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
}
// TableName sets the table name to `oauth2_grant`

14
models/pull.go

@ -23,7 +23,7 @@ import (
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/sync"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
@ -72,11 +72,11 @@ type PullRequest struct {
ProtectedBranch *ProtectedBranch `xorm:"-"`
MergeBase string `xorm:"VARCHAR(40)"`
HasMerged bool `xorm:"INDEX"`
MergedCommitID string `xorm:"VARCHAR(40)"`
MergerID int64 `xorm:"INDEX"`
Merger *User `xorm:"-"`
MergedUnix util.TimeStamp `xorm:"updated INDEX"`
HasMerged bool `xorm:"INDEX"`
MergedCommitID string `xorm:"VARCHAR(40)"`
MergerID int64 `xorm:"INDEX"`
Merger *User `xorm:"-"`
MergedUnix timeutil.TimeStamp `xorm:"updated INDEX"`
}
// Note: don't try to get Issue because will end up recursive querying.
@ -443,7 +443,7 @@ func (pr *PullRequest) manuallyMerged() bool {
}
if commit != nil {
pr.MergedCommitID = commit.ID.String()
pr.MergedUnix = util.TimeStamp(commit.Author.When.Unix())
pr.MergedUnix = timeutil.TimeStamp(commit.Author.When.Unix())
pr.Status = PullRequestStatusManuallyMerged
merger, _ := GetUserByEmail(commit.Author.Email)

20
models/release.go

@ -14,7 +14,7 @@ import (
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/builder"
)
@ -32,13 +32,13 @@ type Release struct {
Title string
Sha1 string `xorm:"VARCHAR(40)"`
NumCommits int64
NumCommitsBehind int64 `xorm:"-"`
Note string `xorm:"TEXT"`
IsDraft bool `xorm:"NOT NULL DEFAULT false"`
IsPrerelease bool `xorm:"NOT NULL DEFAULT false"`
IsTag bool `xorm:"NOT NULL DEFAULT false"`
Attachments []*Attachment `xorm:"-"`
CreatedUnix util.TimeStamp `xorm:"INDEX"`
NumCommitsBehind int64 `xorm:"-"`
Note string `xorm:"TEXT"`
IsDraft bool `xorm:"NOT NULL DEFAULT false"`
IsPrerelease bool `xorm:"NOT NULL DEFAULT false"`
IsTag bool `xorm:"NOT NULL DEFAULT false"`
Attachments []*Attachment `xorm:"-"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX"`
}
func (r *Release) loadAttributes(e Engine) error {
@ -137,13 +137,13 @@ func createTag(gitRepo *git.Repository, rel *Release) error {
}
rel.Sha1 = commit.ID.String()
rel.CreatedUnix = util.TimeStamp(commit.Author.When.Unix())
rel.CreatedUnix = timeutil.TimeStamp(commit.Author.When.Unix())
rel.NumCommits, err = commit.CommitsCount()
if err != nil {
return fmt.Errorf("CommitsCount: %v", err)
}
} else {
rel.CreatedUnix = util.TimeStampNow()
rel.CreatedUnix = timeutil.TimeStampNow()
}
return nil
}

8
models/repo.go

@ -34,7 +34,7 @@ import (
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/sync"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
@ -175,8 +175,8 @@ type Repository struct {
// Avatar: ID(10-20)-md5(32) - must fit into 64 symbols
Avatar string `xorm:"VARCHAR(64)"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}
// ColorFormat returns a colored string to represent this repo
@ -971,7 +971,7 @@ func MigrateRepository(doer, u *User, opts MigrateRepoOptions) (*Repository, err
RepoID: repo.ID,
Interval: setting.Mirror.DefaultInterval,
EnablePrune: true,
NextUpdateUnix: util.TimeStampNow().AddDuration(setting.Mirror.DefaultInterval),
NextUpdateUnix: timeutil.TimeStampNow().AddDuration(setting.Mirror.DefaultInterval),
}); err != nil {
return repo, fmt.Errorf("InsertOne: %v", err)
}

13
models/repo_mirror.go

@ -16,6 +16,7 @@ import (
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/sync"
"code.gitea.io/gitea/modules/timeutil"
"code.gitea.io/gitea/modules/util"
"github.com/Unknwon/com"
@ -34,8 +35,8 @@ type Mirror struct {
Interval time.Duration
EnablePrune bool `xorm:"NOT NULL DEFAULT true"`
UpdatedUnix util.TimeStamp `xorm:"INDEX"`
NextUpdateUnix util.TimeStamp `xorm:"INDEX"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX"`
NextUpdateUnix timeutil.TimeStamp `xorm:"INDEX"`
address string `xorm:"-"`
}
@ -43,8 +44,8 @@ type Mirror struct {
// BeforeInsert will be invoked by XORM before inserting a record
func (m *Mirror) BeforeInsert() {
if m != nil {
m.UpdatedUnix = util.TimeStampNow()
m.NextUpdateUnix = util.TimeStampNow()
m.UpdatedUnix = timeutil.TimeStampNow()
m.NextUpdateUnix = timeutil.TimeStampNow()
}
}
@ -64,7 +65,7 @@ func (m *Mirror) AfterLoad(session *xorm.Session) {
// ScheduleNextUpdate calculates and sets next update time.
func (m *Mirror) ScheduleNextUpdate() {
if m.Interval != 0 {
m.NextUpdateUnix = util.TimeStampNow().AddDuration(m.Interval)
m.NextUpdateUnix = timeutil.TimeStampNow().AddDuration(m.Interval)
} else {
m.NextUpdateUnix = 0
}
@ -277,7 +278,7 @@ func (m *Mirror) runSync() ([]*mirrorSyncResult, bool) {
cache.Remove(m.Repo.GetCommitsCountCacheKey(branches[i].Name, true))
}
m.UpdatedUnix = util.TimeStampNow()
m.UpdatedUnix = timeutil.TimeStampNow()
return parseRemoteUpdateOutput(output), true
}

10
models/repo_unit.go

@ -7,7 +7,7 @@ package models
import (
"encoding/json"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
@ -17,10 +17,10 @@ import (
// RepoUnit describes all units of a repository
type RepoUnit struct {
ID int64
RepoID int64 `xorm:"INDEX(s)"`
Type UnitType `xorm:"INDEX(s)"`
Config core.Conversion `xorm:"TEXT"`
CreatedUnix util.TimeStamp `xorm:"INDEX CREATED"`
RepoID int64 `xorm:"INDEX(s)"`
Type UnitType `xorm:"INDEX(s)"`
Config core.Conversion `xorm:"TEXT"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX CREATED"`
}
// UnitConfig describes common unit config

8
models/review.go

@ -8,7 +8,7 @@ import (
"fmt"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/go-xorm/xorm"
"xorm.io/builder"
@ -56,8 +56,8 @@ type Review struct {
IssueID int64 `xorm:"index"`
Content string
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
// CodeComments are the initial code comments of the review
CodeComments CodeComments `xorm:"-"`
@ -279,7 +279,7 @@ func UpdateReview(r *Review) error {
type PullReviewersWithType struct {
User `xorm:"extends"`
Type ReviewType
ReviewUpdatedUnix util.TimeStamp `xorm:"review_updated_unix"`
ReviewUpdatedUnix timeutil.TimeStamp `xorm:"review_updated_unix"`
}
// GetReviewersByPullID gets all reviewers for a pull request with the statuses

24
models/ssh_key.go

@ -26,7 +26,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/timeutil"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
@ -62,16 +62,16 @@ type PublicKey struct {
Type KeyType `xorm:"NOT NULL DEFAULT 1"`
LoginSourceID int64 `xorm:"NOT NULL DEFAULT 0"`
CreatedUnix util.TimeStamp `xorm:"created"`
UpdatedUnix util.TimeStamp `xorm:"updated"`
HasRecentActivity bool `xorm:"-"`
HasUsed bool `xorm:"-"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
HasRecentActivity bool `xorm:"-"`
HasUsed bool `xorm:"-"`
}
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
func (key *PublicKey) AfterLoad() {
key.HasUsed = key.UpdatedUnix > key.CreatedUnix
key.HasRecentActivity = key.UpdatedUnix.AddDuration(7*24*time.Hour) > util.TimeStampNow()
key.HasRecentActivity = key.UpdatedUnix.AddDuration(7*24*time.Hour) > timeutil.TimeStampNow()
}
// OmitEmail returns content of public key without email address.
@ -581,7 +581,7 @@ func UpdatePublicKeyUpdated(id int64) error {
}
_, err := x.ID(id).Cols("updated_unix").Update(&PublicKey{
UpdatedUnix: util.TimeStampNow(),
UpdatedUnix: timeutil.TimeStampNow(),
})
if err != nil {
return err
@ -714,16 +714,16 @@ type DeployKey struct {
Mode AccessMode `xorm:"NOT NULL DEFAULT 1"`
CreatedUnix util.TimeStamp `xorm:"created"`
UpdatedUnix util.TimeStamp `xorm:"updated"`
HasRecentActivity bool `xorm:"-"`
HasUsed bool `xorm:"-"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
HasRecentActivity bool `xorm:"-"`
HasUsed bool `xorm:"-"`
}
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
func (key *DeployKey) AfterLoad() {
key.HasUsed = key.UpdatedUnix > key.CreatedUnix
key.HasRecentActivity = key.UpdatedUnix.AddDuration(7*24*time.Hour) > util.TimeStampNow()
key.HasRecentActivity = key.UpdatedUnix.AddDuration(7*24*time.Hour) > timeutil.TimeStampNow()
}
// GetContent gets associated public key content.

16
<