mirror of
https://github.com/go-gitea/gitea.git
synced 2025-11-03 08:02:36 +09:00
Compare commits
15 Commits
v1.17.0
...
v1.9.0-rc2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92b993c91f | ||
|
|
33b1027c76 | ||
|
|
b45f9260bf | ||
|
|
ee1a8d7b41 | ||
|
|
ba19a35b6b | ||
|
|
cc8e7dd355 | ||
|
|
f52840623c | ||
|
|
97d4a38e01 | ||
|
|
60ccd87d6e | ||
|
|
2477737fff | ||
|
|
a360daeff9 | ||
|
|
82d4d725ae | ||
|
|
1e585d7991 | ||
|
|
f849766998 | ||
|
|
f4818671e4 |
13
.drone.yml
13
.drone.yml
@@ -114,6 +114,17 @@ steps:
|
|||||||
- push
|
- push
|
||||||
- pull_request
|
- pull_request
|
||||||
|
|
||||||
|
- name: tag-pre-condition
|
||||||
|
pull: always
|
||||||
|
image: alpine/git
|
||||||
|
commands:
|
||||||
|
- git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
|
||||||
|
depends_on:
|
||||||
|
- build
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
- name: tag-test
|
- name: tag-test
|
||||||
pull: always
|
pull: always
|
||||||
image: golang:1.12
|
image: golang:1.12
|
||||||
@@ -122,7 +133,7 @@ steps:
|
|||||||
environment:
|
environment:
|
||||||
TAGS: bindata
|
TAGS: bindata
|
||||||
depends_on:
|
depends_on:
|
||||||
- build
|
- tag-pre-condition
|
||||||
when:
|
when:
|
||||||
event:
|
event:
|
||||||
- tag
|
- tag
|
||||||
|
|||||||
16
CHANGELOG.md
16
CHANGELOG.md
@@ -4,6 +4,22 @@ This changelog goes through all the changes that have been made in each release
|
|||||||
without substantial changes to our git log; to see the highlights of what has
|
without substantial changes to our git log; to see the highlights of what has
|
||||||
been added to each release, please refer to the [blog](https://blog.gitea.io).
|
been added to each release, please refer to the [blog](https://blog.gitea.io).
|
||||||
|
|
||||||
|
## [1.9.0-RC2](https://github.com/go-gitea/gitea/releases/tag/v1.9.0-rc2) - 2019-07-15
|
||||||
|
* BUGFIXES
|
||||||
|
* Fix regex for issues in commit messages (#7444) (#7466)
|
||||||
|
* cmd/serv: actually exit after fatal errors (#7458) (#7460)
|
||||||
|
* Fix an issue with some pages throwing 'not defined' js exceptions #7450 (#7453)
|
||||||
|
* Fix Dropzone.js integration (#7445) (#7448)
|
||||||
|
* Create class for inline positioned lists (#7439) (#7393)
|
||||||
|
* Diff: Fix indentation on unhighlighted code (#7435) (#7443)
|
||||||
|
* jQuery 3 (#7442) (#7425)
|
||||||
|
* Only show "New Pull Request" button if repo allows pulls (#7426) (#7432)
|
||||||
|
* Fix vendor references (#7394) (#7396)
|
||||||
|
* Only return head: null if source branch was deleted (#6705) (#7376)
|
||||||
|
* Add missing template variable on organisation settings (#7386) (#7385)
|
||||||
|
* Fix post parameter on issue list which had unset assignee (#7380) (#7383)
|
||||||
|
* Fix migration tests due to issue 7 being resolved (#7375) (#7381)
|
||||||
|
|
||||||
## [1.9.0-RC1](https://github.com/go-gitea/gitea/releases/tag/v1.9.0-rc1) - 2019-07-06
|
## [1.9.0-RC1](https://github.com/go-gitea/gitea/releases/tag/v1.9.0-rc1) - 2019-07-06
|
||||||
* BREAKING
|
* BREAKING
|
||||||
* Better logging (#6038) (#6095)
|
* Better logging (#6038) (#6095)
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ func fail(userMessage, logMessage string, args ...interface{}) {
|
|||||||
if !setting.ProdMode {
|
if !setting.ProdMode {
|
||||||
fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
|
fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -135,4 +135,4 @@ require (
|
|||||||
xorm.io/core v0.6.3
|
xorm.io/core v0.6.3
|
||||||
)
|
)
|
||||||
|
|
||||||
replace github.com/denisenkom/go-mssqldb => github.com/denisenkom/go-mssqldb v0.0.0-20180314172330-6a30f4e59a44
|
replace github.com/denisenkom/go-mssqldb => github.com/denisenkom/go-mssqldb v0.0.0-20180315180555-6a30f4e59a44
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -66,8 +66,8 @@ github.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0
|
|||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/denisenkom/go-mssqldb v0.0.0-20180314172330-6a30f4e59a44 h1:x0uHqLQTSEL9LKic8sWDt3ASkq07ve5ojIIUl5uF64M=
|
github.com/denisenkom/go-mssqldb v0.0.0-20180315180555-6a30f4e59a44 h1:DWxZh2sImfCFn/79OUBhzFkPTKnsdDzXH/JTxpw5n6w=
|
||||||
github.com/denisenkom/go-mssqldb v0.0.0-20180314172330-6a30f4e59a44/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc=
|
github.com/denisenkom/go-mssqldb v0.0.0-20180315180555-6a30f4e59a44/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const issueRefRegexpStr = `(?:([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+))?(#[0-9]+)+`
|
const issueRefRegexpStr = `(?:([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+))?(#[0-9]+)+`
|
||||||
|
const issueRefRegexpStrNoKeyword = `(?:\s|^|\(|\[)(?:([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+))?(#[0-9]+)(?:\s|$|\)|\]|\.(\s|$))`
|
||||||
|
|
||||||
func assembleKeywordsPattern(words []string) string {
|
func assembleKeywordsPattern(words []string) string {
|
||||||
return fmt.Sprintf(`(?i)(?:%s)(?::?) %s`, strings.Join(words, "|"), issueRefRegexpStr)
|
return fmt.Sprintf(`(?i)(?:%s)(?::?) %s`, strings.Join(words, "|"), issueRefRegexpStr)
|
||||||
@@ -73,7 +74,7 @@ func assembleKeywordsPattern(words []string) string {
|
|||||||
func init() {
|
func init() {
|
||||||
issueCloseKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueCloseKeywords))
|
issueCloseKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueCloseKeywords))
|
||||||
issueReopenKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueReopenKeywords))
|
issueReopenKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueReopenKeywords))
|
||||||
issueReferenceKeywordsPat = regexp.MustCompile(issueRefRegexpStr)
|
issueReferenceKeywordsPat = regexp.MustCompile(issueRefRegexpStrNoKeyword)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action represents user operation type and other information to
|
// Action represents user operation type and other information to
|
||||||
|
|||||||
@@ -155,6 +155,25 @@ func TestPushCommits_AvatarLink(t *testing.T) {
|
|||||||
pushCommits.AvatarLink("nonexistent@example.com"))
|
pushCommits.AvatarLink("nonexistent@example.com"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRegExp_issueReferenceKeywordsPat(t *testing.T) {
|
||||||
|
trueTestCases := []string{
|
||||||
|
"#2",
|
||||||
|
"[#2]",
|
||||||
|
"please see go-gitea/gitea#5",
|
||||||
|
}
|
||||||
|
falseTestCases := []string{
|
||||||
|
"kb#2",
|
||||||
|
"#2xy",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, testCase := range trueTestCases {
|
||||||
|
assert.True(t, issueReferenceKeywordsPat.MatchString(testCase))
|
||||||
|
}
|
||||||
|
for _, testCase := range falseTestCases {
|
||||||
|
assert.False(t, issueReferenceKeywordsPat.MatchString(testCase))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func Test_getIssueFromRef(t *testing.T) {
|
func Test_getIssueFromRef(t *testing.T) {
|
||||||
assert.NoError(t, PrepareTestDatabase())
|
assert.NoError(t, PrepareTestDatabase())
|
||||||
repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
|
repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
|
||||||
|
|||||||
@@ -189,36 +189,6 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if baseBranch, err = pr.BaseRepo.GetBranch(pr.BaseBranch); err != nil {
|
|
||||||
log.Error("pr.BaseRepo.GetBranch[%d]: %v", pr.BaseBranch, err)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if baseCommit, err = baseBranch.GetCommit(); err != nil {
|
|
||||||
log.Error("baseBranch.GetCommit[%d]: %v", pr.ID, err)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if headBranch, err = pr.HeadRepo.GetBranch(pr.HeadBranch); err != nil {
|
|
||||||
log.Error("pr.HeadRepo.GetBranch[%d]: %v", pr.HeadBranch, err)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if headCommit, err = headBranch.GetCommit(); err != nil {
|
|
||||||
log.Error("headBranch.GetCommit[%d]: %v", pr.ID, err)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
apiBaseBranchInfo := &api.PRBranchInfo{
|
|
||||||
Name: pr.BaseBranch,
|
|
||||||
Ref: pr.BaseBranch,
|
|
||||||
Sha: baseCommit.ID.String(),
|
|
||||||
RepoID: pr.BaseRepoID,
|
|
||||||
Repository: pr.BaseRepo.innerAPIFormat(e, AccessModeNone, false),
|
|
||||||
}
|
|
||||||
apiHeadBranchInfo := &api.PRBranchInfo{
|
|
||||||
Name: pr.HeadBranch,
|
|
||||||
Ref: pr.HeadBranch,
|
|
||||||
Sha: headCommit.ID.String(),
|
|
||||||
RepoID: pr.HeadRepoID,
|
|
||||||
Repository: pr.HeadRepo.innerAPIFormat(e, AccessModeNone, false),
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = pr.Issue.loadRepo(e); err != nil {
|
if err = pr.Issue.loadRepo(e); err != nil {
|
||||||
log.Error("pr.Issue.loadRepo[%d]: %v", pr.ID, err)
|
log.Error("pr.Issue.loadRepo[%d]: %v", pr.ID, err)
|
||||||
@@ -227,6 +197,7 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
|
|||||||
|
|
||||||
apiPullRequest := &api.PullRequest{
|
apiPullRequest := &api.PullRequest{
|
||||||
ID: pr.ID,
|
ID: pr.ID,
|
||||||
|
URL: pr.Issue.HTMLURL(),
|
||||||
Index: pr.Index,
|
Index: pr.Index,
|
||||||
Poster: apiIssue.Poster,
|
Poster: apiIssue.Poster,
|
||||||
Title: apiIssue.Title,
|
Title: apiIssue.Title,
|
||||||
@@ -241,13 +212,68 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
|
|||||||
DiffURL: pr.Issue.DiffURL(),
|
DiffURL: pr.Issue.DiffURL(),
|
||||||
PatchURL: pr.Issue.PatchURL(),
|
PatchURL: pr.Issue.PatchURL(),
|
||||||
HasMerged: pr.HasMerged,
|
HasMerged: pr.HasMerged,
|
||||||
Base: apiBaseBranchInfo,
|
|
||||||
Head: apiHeadBranchInfo,
|
|
||||||
MergeBase: pr.MergeBase,
|
MergeBase: pr.MergeBase,
|
||||||
Deadline: apiIssue.Deadline,
|
Deadline: apiIssue.Deadline,
|
||||||
Created: pr.Issue.CreatedUnix.AsTimePtr(),
|
Created: pr.Issue.CreatedUnix.AsTimePtr(),
|
||||||
Updated: pr.Issue.UpdatedUnix.AsTimePtr(),
|
Updated: pr.Issue.UpdatedUnix.AsTimePtr(),
|
||||||
}
|
}
|
||||||
|
baseBranch, err = pr.BaseRepo.GetBranch(pr.BaseBranch)
|
||||||
|
if err != nil {
|
||||||
|
if git.IsErrBranchNotExist(err) {
|
||||||
|
apiPullRequest.Base = nil
|
||||||
|
} else {
|
||||||
|
log.Error("GetBranch[%s]: %v", pr.BaseBranch, err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
apiBaseBranchInfo := &api.PRBranchInfo{
|
||||||
|
Name: pr.BaseBranch,
|
||||||
|
Ref: pr.BaseBranch,
|
||||||
|
RepoID: pr.BaseRepoID,
|
||||||
|
Repository: pr.BaseRepo.innerAPIFormat(e, AccessModeNone, false),
|
||||||
|
}
|
||||||
|
baseCommit, err = baseBranch.GetCommit()
|
||||||
|
if err != nil {
|
||||||
|
if git.IsErrNotExist(err) {
|
||||||
|
apiBaseBranchInfo.Sha = ""
|
||||||
|
} else {
|
||||||
|
log.Error("GetCommit[%s]: %v", baseBranch.Name, err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
apiBaseBranchInfo.Sha = baseCommit.ID.String()
|
||||||
|
}
|
||||||
|
apiPullRequest.Base = apiBaseBranchInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
headBranch, err = pr.HeadRepo.GetBranch(pr.HeadBranch)
|
||||||
|
if err != nil {
|
||||||
|
if git.IsErrBranchNotExist(err) {
|
||||||
|
apiPullRequest.Head = nil
|
||||||
|
} else {
|
||||||
|
log.Error("GetBranch[%s]: %v", pr.HeadBranch, err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
apiHeadBranchInfo := &api.PRBranchInfo{
|
||||||
|
Name: pr.HeadBranch,
|
||||||
|
Ref: pr.HeadBranch,
|
||||||
|
RepoID: pr.HeadRepoID,
|
||||||
|
Repository: pr.HeadRepo.innerAPIFormat(e, AccessModeNone, false),
|
||||||
|
}
|
||||||
|
headCommit, err = headBranch.GetCommit()
|
||||||
|
if err != nil {
|
||||||
|
if git.IsErrNotExist(err) {
|
||||||
|
apiHeadBranchInfo.Sha = ""
|
||||||
|
} else {
|
||||||
|
log.Error("GetCommit[%s]: %v", headBranch.Name, err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
apiHeadBranchInfo.Sha = headCommit.ID.String()
|
||||||
|
}
|
||||||
|
apiPullRequest.Head = apiHeadBranchInfo
|
||||||
|
}
|
||||||
|
|
||||||
if pr.Status != PullRequestStatusChecking {
|
if pr.Status != PullRequestStatusChecking {
|
||||||
mergeable := pr.Status != PullRequestStatusConflict && !pr.IsWorkInProgress()
|
mergeable := pr.Status != PullRequestStatusConflict && !pr.IsWorkInProgress()
|
||||||
|
|||||||
@@ -31,7 +31,15 @@ func TestPullRequest_LoadIssue(t *testing.T) {
|
|||||||
assert.Equal(t, int64(2), pr.Issue.ID)
|
assert.Equal(t, int64(2), pr.Issue.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO TestPullRequest_APIFormat
|
func TestPullRequest_APIFormat(t *testing.T) {
|
||||||
|
assert.NoError(t, PrepareTestDatabase())
|
||||||
|
pr := AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest)
|
||||||
|
assert.NoError(t, pr.LoadAttributes())
|
||||||
|
assert.NoError(t, pr.LoadIssue())
|
||||||
|
apiPullRequest := pr.APIFormat()
|
||||||
|
assert.NotNil(t, apiPullRequest)
|
||||||
|
assert.Nil(t, apiPullRequest.Head)
|
||||||
|
}
|
||||||
|
|
||||||
func TestPullRequest_GetBaseRepo(t *testing.T) {
|
func TestPullRequest_GetBaseRepo(t *testing.T) {
|
||||||
assert.NoError(t, PrepareTestDatabase())
|
assert.NoError(t, PrepareTestDatabase())
|
||||||
|
|||||||
@@ -173,6 +173,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
closed1 = time.Date(2018, 10, 23, 02, 57, 43, 0, time.UTC)
|
closed1 = time.Date(2018, 10, 23, 02, 57, 43, 0, time.UTC)
|
||||||
|
closed7 = time.Date(2019, 7, 8, 8, 20, 23, 0, time.UTC)
|
||||||
)
|
)
|
||||||
assert.EqualValues(t, []*base.Issue{
|
assert.EqualValues(t, []*base.Issue{
|
||||||
{
|
{
|
||||||
@@ -208,9 +209,9 @@ func TestGitHubDownloadRepo(t *testing.T) {
|
|||||||
Number: 7,
|
Number: 7,
|
||||||
Title: "display page revisions on wiki",
|
Title: "display page revisions on wiki",
|
||||||
Content: "Hi guys,\r\n\r\nWiki on Gogs is very fine, I liked a lot, but I think that is good idea to be possible see other revisions from page as a page history.\r\n\r\nWhat you think?\r\n\r\nReference: https://github.com/gogits/gogs/issues/2991",
|
Content: "Hi guys,\r\n\r\nWiki on Gogs is very fine, I liked a lot, but I think that is good idea to be possible see other revisions from page as a page history.\r\n\r\nWhat you think?\r\n\r\nReference: https://github.com/gogits/gogs/issues/2991",
|
||||||
Milestone: "1.x.x",
|
Milestone: "1.10.0",
|
||||||
PosterName: "joubertredrat",
|
PosterName: "joubertredrat",
|
||||||
State: "open",
|
State: "closed",
|
||||||
Created: time.Date(2016, 11, 02, 18, 57, 32, 0, time.UTC),
|
Created: time.Date(2016, 11, 02, 18, 57, 32, 0, time.UTC),
|
||||||
Labels: []*base.Label{
|
Labels: []*base.Label{
|
||||||
{
|
{
|
||||||
@@ -232,6 +233,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
|
|||||||
Heart: 0,
|
Heart: 0,
|
||||||
Hooray: 0,
|
Hooray: 0,
|
||||||
},
|
},
|
||||||
|
Closed: &closed7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Number: 8,
|
Number: 8,
|
||||||
|
|||||||
@@ -208,6 +208,9 @@ footer .ui.left,footer .ui.right{line-height:40px}
|
|||||||
.ui.tabular.menu .item{color:rgba(0,0,0,.5)}
|
.ui.tabular.menu .item{color:rgba(0,0,0,.5)}
|
||||||
.ui.tabular.menu .item:hover{color:rgba(0,0,0,.8)}
|
.ui.tabular.menu .item:hover{color:rgba(0,0,0,.8)}
|
||||||
.ui.tabular.menu .item.active{color:rgba(0,0,0,.9)}
|
.ui.tabular.menu .item.active{color:rgba(0,0,0,.9)}
|
||||||
|
.inline-grouped-list{display:inline-block;vertical-align:top}
|
||||||
|
.inline-grouped-list>.ui{display:block;margin-top:5px;margin-bottom:10px}
|
||||||
|
.inline-grouped-list>.ui:first-child{margin-top:1px}
|
||||||
.markdown:not(code){overflow:hidden;font-size:16px;line-height:1.6!important;word-wrap:break-word}
|
.markdown:not(code){overflow:hidden;font-size:16px;line-height:1.6!important;word-wrap:break-word}
|
||||||
.markdown:not(code).ui.segment{padding:3em}
|
.markdown:not(code).ui.segment{padding:3em}
|
||||||
.markdown:not(code).file-view{padding:2em 2em 2em!important}
|
.markdown:not(code).file-view{padding:2em 2em 2em!important}
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ function htmlEncode(text) {
|
|||||||
var csrf;
|
var csrf;
|
||||||
var suburl;
|
var suburl;
|
||||||
|
|
||||||
|
// Disable Dropzone auto-discover because it's manually initialized
|
||||||
|
if (typeof(Dropzone) !== "undefined") {
|
||||||
|
Dropzone.autoDiscover = false;
|
||||||
|
}
|
||||||
|
|
||||||
// Polyfill for IE9+ support (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from)
|
// Polyfill for IE9+ support (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from)
|
||||||
if (!Array.from) {
|
if (!Array.from) {
|
||||||
Array.from = (function () {
|
Array.from = (function () {
|
||||||
@@ -1972,13 +1977,11 @@ $(document).ready(function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Dropzone
|
// Dropzone
|
||||||
var $dropzone = $('#dropzone');
|
const $dropzone = $('#dropzone');
|
||||||
if ($dropzone.length > 0) {
|
if ($dropzone.length > 0) {
|
||||||
// Disable auto discover for all elements:
|
const filenameDict = {};
|
||||||
Dropzone.autoDiscover = false;
|
|
||||||
|
|
||||||
var filenameDict = {};
|
new Dropzone("#dropzone", {
|
||||||
$dropzone.dropzone({
|
|
||||||
url: $dropzone.data('upload-url'),
|
url: $dropzone.data('upload-url'),
|
||||||
headers: {"X-Csrf-Token": csrf},
|
headers: {"X-Csrf-Token": csrf},
|
||||||
maxFiles: $dropzone.data('max-file'),
|
maxFiles: $dropzone.data('max-file'),
|
||||||
@@ -2006,7 +2009,7 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2104,12 +2107,16 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('.issue-action').click(function () {
|
$('.issue-action').click(function () {
|
||||||
var action = this.dataset.action
|
let action = this.dataset.action;
|
||||||
var elementId = this.dataset.elementId
|
let elementId = this.dataset.elementId;
|
||||||
var issueIDs = $('.issue-checkbox').children('input:checked').map(function() {
|
let issueIDs = $('.issue-checkbox').children('input:checked').map(function() {
|
||||||
return this.dataset.issueId;
|
return this.dataset.issueId;
|
||||||
}).get().join();
|
}).get().join();
|
||||||
var url = this.dataset.url
|
let url = this.dataset.url;
|
||||||
|
if (elementId === '0' && url.substr(-9) === '/assignee'){
|
||||||
|
elementId = '';
|
||||||
|
action = 'clear';
|
||||||
|
}
|
||||||
updateIssuesMeta(url, action, issueIDs, elementId).then(reload);
|
updateIssuesMeta(url, action, issueIDs, elementId).then(reload);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -605,7 +605,6 @@ code,
|
|||||||
.file-comment {
|
.file-comment {
|
||||||
font: 12px @monospaced-fonts, monospace;
|
font: 12px @monospaced-fonts, monospace;
|
||||||
color: rgba(0, 0, 0, 0.87);
|
color: rgba(0, 0, 0, 0.87);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui.floating.dropdown {
|
.ui.floating.dropdown {
|
||||||
@@ -877,3 +876,19 @@ footer {
|
|||||||
.ui.tabular.menu .item.active {
|
.ui.tabular.menu .item.active {
|
||||||
color: rgba(0, 0, 0, 0.9);
|
color: rgba(0, 0, 0, 0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* multiple radio or checkboxes as inline element */
|
||||||
|
.inline-grouped-list {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: top;
|
||||||
|
|
||||||
|
> .ui {
|
||||||
|
display: block;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
&:first-child {
|
||||||
|
margin-top: 1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
5
public/vendor/VERSIONS
vendored
5
public/vendor/VERSIONS
vendored
@@ -6,7 +6,10 @@ File(s): /vendor/plugins/jquery.areyousure/jquery.are-you-sure.js
|
|||||||
Version: 1.9.0
|
Version: 1.9.0
|
||||||
|
|
||||||
File(s): /vendor/plugins/jquery/jquery.min.js
|
File(s): /vendor/plugins/jquery/jquery.min.js
|
||||||
Version: 1.12.4
|
Version: 3.4.1
|
||||||
|
|
||||||
|
File(s): /vendor/plugins/jquery-migrate/jquery-migrate.min.js
|
||||||
|
Version: 3.0.1
|
||||||
|
|
||||||
File(s): /vendor/plugins/semantic/semantic.min.js
|
File(s): /vendor/plugins/semantic/semantic.min.js
|
||||||
Version: 2.3.1
|
Version: 2.3.1
|
||||||
|
|||||||
9
public/vendor/librejs.html
vendored
9
public/vendor/librejs.html
vendored
@@ -17,8 +17,13 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="./plugins/jquery/jquery.min.js">jquery.min.js</a></td>
|
<td><a href="./plugins/jquery/jquery.min.js">jquery.min.js</a></td>
|
||||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
<td><a href="https://jquery.org/license/">MIT</a></td>
|
||||||
<td><a href="https://code.jquery.com/jquery-1.12.4.min.js">jquery-1.12.4.min.js</a></td>
|
<td><a href="https://code.jquery.com/jquery-3.4.1.min.js">jquery-3.4.1.min.js</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="./plugins/jquery-migrate/jquery-migrate.min.js">jquery-migrate.min.js</a></td>
|
||||||
|
<td><a href="https://jquery.org/license/">MIT</a></td>
|
||||||
|
<td><a href="https://code.jquery.com/jquery-migrate-3.0.1.min.js">jquery-migrate-3.0.1.min.js</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="./plugins/semantic/semantic.min.js">semantic.min.js</a></td>
|
<td><a href="./plugins/semantic/semantic.min.js">semantic.min.js</a></td>
|
||||||
|
|||||||
215
public/vendor/plugins/jquery-migrate/jquery-migrate.min.js
vendored
Normal file
215
public/vendor/plugins/jquery-migrate/jquery-migrate.min.js
vendored
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
/*! jQuery Migrate v3.0.1 | (c) jQuery Foundation and other contributors | jquery.org/license */
|
||||||
|
|
||||||
|
void 0 === jQuery.migrateMute && (jQuery.migrateMute = !0), function(e) {
|
||||||
|
"function" == typeof define && define.amd ? define([ "jquery" ], window, e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery"), window) : e(jQuery, window);
|
||||||
|
}(function(e, t) {
|
||||||
|
"use strict";
|
||||||
|
function r(r) {
|
||||||
|
var n = t.console;
|
||||||
|
o[r] || (o[r] = !0, e.migrateWarnings.push(r), n && n.warn && !e.migrateMute && (n.warn("JQMIGRATE: " + r),
|
||||||
|
e.migrateTrace && n.trace && n.trace()));
|
||||||
|
}
|
||||||
|
function n(e, t, n, a) {
|
||||||
|
Object.defineProperty(e, t, {
|
||||||
|
configurable: !0,
|
||||||
|
enumerable: !0,
|
||||||
|
get: function() {
|
||||||
|
return r(a), n;
|
||||||
|
},
|
||||||
|
set: function(e) {
|
||||||
|
r(a), n = e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function a(e, t, n, a) {
|
||||||
|
e[t] = function() {
|
||||||
|
return r(a), n.apply(this, arguments);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
e.migrateVersion = "3.0.1", function() {
|
||||||
|
var r = /^[12]\./;
|
||||||
|
t.console && t.console.log && (e && !r.test(e.fn.jquery) || t.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),
|
||||||
|
e.migrateWarnings && t.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),
|
||||||
|
t.console.log("JQMIGRATE: Migrate is installed" + (e.migrateMute ? "" : " with logging active") + ", version " + e.migrateVersion));
|
||||||
|
}();
|
||||||
|
var o = {};
|
||||||
|
e.migrateWarnings = [], void 0 === e.migrateTrace && (e.migrateTrace = !0), e.migrateReset = function() {
|
||||||
|
o = {}, e.migrateWarnings.length = 0;
|
||||||
|
}, "BackCompat" === t.document.compatMode && r("jQuery is not compatible with Quirks Mode");
|
||||||
|
var i = e.fn.init, s = e.isNumeric, u = e.find, c = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/, l = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
|
||||||
|
e.fn.init = function(e) {
|
||||||
|
var t = Array.prototype.slice.call(arguments);
|
||||||
|
return "string" == typeof e && "#" === e && (r("jQuery( '#' ) is not a valid selector"),
|
||||||
|
t[0] = []), i.apply(this, t);
|
||||||
|
}, e.fn.init.prototype = e.fn, e.find = function(e) {
|
||||||
|
var n = Array.prototype.slice.call(arguments);
|
||||||
|
if ("string" == typeof e && c.test(e)) try {
|
||||||
|
t.document.querySelector(e);
|
||||||
|
} catch (a) {
|
||||||
|
e = e.replace(l, function(e, t, r, n) {
|
||||||
|
return "[" + t + r + '"' + n + '"]';
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
t.document.querySelector(e), r("Attribute selector with '#' must be quoted: " + n[0]),
|
||||||
|
n[0] = e;
|
||||||
|
} catch (e) {
|
||||||
|
r("Attribute selector with '#' was not fixed: " + n[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return u.apply(this, n);
|
||||||
|
};
|
||||||
|
var d;
|
||||||
|
for (d in u) Object.prototype.hasOwnProperty.call(u, d) && (e.find[d] = u[d]);
|
||||||
|
e.fn.size = function() {
|
||||||
|
return r("jQuery.fn.size() is deprecated and removed; use the .length property"),
|
||||||
|
this.length;
|
||||||
|
}, e.parseJSON = function() {
|
||||||
|
return r("jQuery.parseJSON is deprecated; use JSON.parse"), JSON.parse.apply(null, arguments);
|
||||||
|
}, e.isNumeric = function(t) {
|
||||||
|
var n = s(t), a = function(t) {
|
||||||
|
var r = t && t.toString();
|
||||||
|
return !e.isArray(t) && r - parseFloat(r) + 1 >= 0;
|
||||||
|
}(t);
|
||||||
|
return n !== a && r("jQuery.isNumeric() should not be called on constructed objects"),
|
||||||
|
a;
|
||||||
|
}, a(e, "holdReady", e.holdReady, "jQuery.holdReady is deprecated"), a(e, "unique", e.uniqueSort, "jQuery.unique is deprecated; use jQuery.uniqueSort"),
|
||||||
|
n(e.expr, "filters", e.expr.pseudos, "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),
|
||||||
|
n(e.expr, ":", e.expr.pseudos, "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos");
|
||||||
|
var p = e.ajax;
|
||||||
|
e.ajax = function() {
|
||||||
|
var e = p.apply(this, arguments);
|
||||||
|
return e.promise && (a(e, "success", e.done, "jQXHR.success is deprecated and removed"),
|
||||||
|
a(e, "error", e.fail, "jQXHR.error is deprecated and removed"), a(e, "complete", e.always, "jQXHR.complete is deprecated and removed")),
|
||||||
|
e;
|
||||||
|
};
|
||||||
|
var f = e.fn.removeAttr, y = e.fn.toggleClass, m = /\S+/g;
|
||||||
|
e.fn.removeAttr = function(t) {
|
||||||
|
var n = this;
|
||||||
|
return e.each(t.match(m), function(t, a) {
|
||||||
|
e.expr.match.bool.test(a) && (r("jQuery.fn.removeAttr no longer sets boolean properties: " + a),
|
||||||
|
n.prop(a, !1));
|
||||||
|
}), f.apply(this, arguments);
|
||||||
|
}, e.fn.toggleClass = function(t) {
|
||||||
|
return void 0 !== t && "boolean" != typeof t ? y.apply(this, arguments) : (r("jQuery.fn.toggleClass( boolean ) is deprecated"),
|
||||||
|
this.each(function() {
|
||||||
|
var r = this.getAttribute && this.getAttribute("class") || "";
|
||||||
|
r && e.data(this, "__className__", r), this.setAttribute && this.setAttribute("class", r || !1 === t ? "" : e.data(this, "__className__") || "");
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
var h = !1;
|
||||||
|
e.swap && e.each([ "height", "width", "reliableMarginRight" ], function(t, r) {
|
||||||
|
var n = e.cssHooks[r] && e.cssHooks[r].get;
|
||||||
|
n && (e.cssHooks[r].get = function() {
|
||||||
|
var e;
|
||||||
|
return h = !0, e = n.apply(this, arguments), h = !1, e;
|
||||||
|
});
|
||||||
|
}), e.swap = function(e, t, n, a) {
|
||||||
|
var o, i, s = {};
|
||||||
|
h || r("jQuery.swap() is undocumented and deprecated");
|
||||||
|
for (i in t) s[i] = e.style[i], e.style[i] = t[i];
|
||||||
|
o = n.apply(e, a || []);
|
||||||
|
for (i in t) e.style[i] = s[i];
|
||||||
|
return o;
|
||||||
|
};
|
||||||
|
var g = e.data;
|
||||||
|
e.data = function(t, n, a) {
|
||||||
|
var o;
|
||||||
|
if (n && "object" == typeof n && 2 === arguments.length) {
|
||||||
|
o = e.hasData(t) && g.call(this, t);
|
||||||
|
var i = {};
|
||||||
|
for (var s in n) s !== e.camelCase(s) ? (r("jQuery.data() always sets/gets camelCased names: " + s),
|
||||||
|
o[s] = n[s]) : i[s] = n[s];
|
||||||
|
return g.call(this, t, i), n;
|
||||||
|
}
|
||||||
|
return n && "string" == typeof n && n !== e.camelCase(n) && (o = e.hasData(t) && g.call(this, t)) && n in o ? (r("jQuery.data() always sets/gets camelCased names: " + n),
|
||||||
|
arguments.length > 2 && (o[n] = a), o[n]) : g.apply(this, arguments);
|
||||||
|
};
|
||||||
|
var v = e.Tween.prototype.run, j = function(e) {
|
||||||
|
return e;
|
||||||
|
};
|
||||||
|
e.Tween.prototype.run = function() {
|
||||||
|
e.easing[this.easing].length > 1 && (r("'jQuery.easing." + this.easing.toString() + "' should use only one argument"),
|
||||||
|
e.easing[this.easing] = j), v.apply(this, arguments);
|
||||||
|
}, e.fx.interval = e.fx.interval || 13, t.requestAnimationFrame && n(e.fx, "interval", e.fx.interval, "jQuery.fx.interval is deprecated");
|
||||||
|
var Q = e.fn.load, b = e.event.add, w = e.event.fix;
|
||||||
|
e.event.props = [], e.event.fixHooks = {}, n(e.event.props, "concat", e.event.props.concat, "jQuery.event.props.concat() is deprecated and removed"),
|
||||||
|
e.event.fix = function(t) {
|
||||||
|
var n, a = t.type, o = this.fixHooks[a], i = e.event.props;
|
||||||
|
if (i.length) for (r("jQuery.event.props are deprecated and removed: " + i.join()); i.length; ) e.event.addProp(i.pop());
|
||||||
|
if (o && !o._migrated_ && (o._migrated_ = !0, r("jQuery.event.fixHooks are deprecated and removed: " + a),
|
||||||
|
(i = o.props) && i.length)) for (;i.length; ) e.event.addProp(i.pop());
|
||||||
|
return n = w.call(this, t), o && o.filter ? o.filter(n, t) : n;
|
||||||
|
}, e.event.add = function(e, n) {
|
||||||
|
return e === t && "load" === n && "complete" === t.document.readyState && r("jQuery(window).on('load'...) called after load event occurred"),
|
||||||
|
b.apply(this, arguments);
|
||||||
|
}, e.each([ "load", "unload", "error" ], function(t, n) {
|
||||||
|
e.fn[n] = function() {
|
||||||
|
var e = Array.prototype.slice.call(arguments, 0);
|
||||||
|
return "load" === n && "string" == typeof e[0] ? Q.apply(this, e) : (r("jQuery.fn." + n + "() is deprecated"),
|
||||||
|
e.splice(0, 0, n), arguments.length ? this.on.apply(this, e) : (this.triggerHandler.apply(this, e),
|
||||||
|
this));
|
||||||
|
};
|
||||||
|
}), e.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(t, n) {
|
||||||
|
e.fn[n] = function(e, t) {
|
||||||
|
return r("jQuery.fn." + n + "() event shorthand is deprecated"), arguments.length > 0 ? this.on(n, null, e, t) : this.trigger(n);
|
||||||
|
};
|
||||||
|
}), e(function() {
|
||||||
|
e(t.document).triggerHandler("ready");
|
||||||
|
}), e.event.special.ready = {
|
||||||
|
setup: function() {
|
||||||
|
this === t.document && r("'ready' event is deprecated");
|
||||||
|
}
|
||||||
|
}, e.fn.extend({
|
||||||
|
bind: function(e, t, n) {
|
||||||
|
return r("jQuery.fn.bind() is deprecated"), this.on(e, null, t, n);
|
||||||
|
},
|
||||||
|
unbind: function(e, t) {
|
||||||
|
return r("jQuery.fn.unbind() is deprecated"), this.off(e, null, t);
|
||||||
|
},
|
||||||
|
delegate: function(e, t, n, a) {
|
||||||
|
return r("jQuery.fn.delegate() is deprecated"), this.on(t, e, n, a);
|
||||||
|
},
|
||||||
|
undelegate: function(e, t, n) {
|
||||||
|
return r("jQuery.fn.undelegate() is deprecated"), 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n);
|
||||||
|
},
|
||||||
|
hover: function(e, t) {
|
||||||
|
return r("jQuery.fn.hover() is deprecated"), this.on("mouseenter", e).on("mouseleave", t || e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var x = e.fn.offset;
|
||||||
|
e.fn.offset = function() {
|
||||||
|
var n, a = this[0], o = {
|
||||||
|
top: 0,
|
||||||
|
left: 0
|
||||||
|
};
|
||||||
|
return a && a.nodeType ? (n = (a.ownerDocument || t.document).documentElement, e.contains(n, a) ? x.apply(this, arguments) : (r("jQuery.fn.offset() requires an element connected to a document"),
|
||||||
|
o)) : (r("jQuery.fn.offset() requires a valid DOM element"), o);
|
||||||
|
};
|
||||||
|
var k = e.param;
|
||||||
|
e.param = function(t, n) {
|
||||||
|
var a = e.ajaxSettings && e.ajaxSettings.traditional;
|
||||||
|
return void 0 === n && a && (r("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),
|
||||||
|
n = a), k.call(this, t, n);
|
||||||
|
};
|
||||||
|
var A = e.fn.andSelf || e.fn.addBack;
|
||||||
|
e.fn.andSelf = function() {
|
||||||
|
return r("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),
|
||||||
|
A.apply(this, arguments);
|
||||||
|
};
|
||||||
|
var S = e.Deferred, q = [ [ "resolve", "done", e.Callbacks("once memory"), e.Callbacks("once memory"), "resolved" ], [ "reject", "fail", e.Callbacks("once memory"), e.Callbacks("once memory"), "rejected" ], [ "notify", "progress", e.Callbacks("memory"), e.Callbacks("memory") ] ];
|
||||||
|
return e.Deferred = function(t) {
|
||||||
|
var n = S(), a = n.promise();
|
||||||
|
return n.pipe = a.pipe = function() {
|
||||||
|
var t = arguments;
|
||||||
|
return r("deferred.pipe() is deprecated"), e.Deferred(function(r) {
|
||||||
|
e.each(q, function(o, i) {
|
||||||
|
var s = e.isFunction(t[o]) && t[o];
|
||||||
|
n[i[1]](function() {
|
||||||
|
var t = s && s.apply(this, arguments);
|
||||||
|
t && e.isFunction(t.promise) ? t.promise().done(r.resolve).fail(r.reject).progress(r.notify) : r[i[0] + "With"](this === a ? r.promise() : this, s ? [ t ] : arguments);
|
||||||
|
});
|
||||||
|
}), t = null;
|
||||||
|
}).promise();
|
||||||
|
}, t && t.call(n, n), n;
|
||||||
|
}, e.Deferred.exceptionHook = S.exceptionHook, e;
|
||||||
|
});
|
||||||
7
public/vendor/plugins/jquery/jquery.min.js
vendored
7
public/vendor/plugins/jquery/jquery.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -39,6 +39,7 @@ func Settings(ctx *context.Context) {
|
|||||||
func SettingsPost(ctx *context.Context, form auth.UpdateOrgSettingForm) {
|
func SettingsPost(ctx *context.Context, form auth.UpdateOrgSettingForm) {
|
||||||
ctx.Data["Title"] = ctx.Tr("org.settings")
|
ctx.Data["Title"] = ctx.Tr("org.settings")
|
||||||
ctx.Data["PageIsSettingsOptions"] = true
|
ctx.Data["PageIsSettingsOptions"] = true
|
||||||
|
ctx.Data["CurrentVisibility"] = structs.VisibleType(ctx.Org.Organization.Visibility)
|
||||||
|
|
||||||
if ctx.HasError() {
|
if ctx.HasError() {
|
||||||
ctx.HTML(200, tplSettingsOptions)
|
ctx.HTML(200, tplSettingsOptions)
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ func Branches(ctx *context.Context) {
|
|||||||
ctx.Data["Title"] = "Branches"
|
ctx.Data["Title"] = "Branches"
|
||||||
ctx.Data["IsRepoToolbarBranches"] = true
|
ctx.Data["IsRepoToolbarBranches"] = true
|
||||||
ctx.Data["DefaultBranch"] = ctx.Repo.Repository.DefaultBranch
|
ctx.Data["DefaultBranch"] = ctx.Repo.Repository.DefaultBranch
|
||||||
|
ctx.Data["AllowsPulls"] = ctx.Repo.Repository.AllowsPulls()
|
||||||
ctx.Data["IsWriter"] = ctx.Repo.CanWrite(models.UnitTypeCode)
|
ctx.Data["IsWriter"] = ctx.Repo.CanWrite(models.UnitTypeCode)
|
||||||
ctx.Data["IsMirror"] = ctx.Repo.Repository.IsMirror
|
ctx.Data["IsMirror"] = ctx.Repo.Repository.IsMirror
|
||||||
ctx.Data["PageIsViewCode"] = true
|
ctx.Data["PageIsViewCode"] = true
|
||||||
|
|||||||
@@ -12,7 +12,8 @@
|
|||||||
|
|
||||||
{{template "base/footer_content" .}}
|
{{template "base/footer_content" .}}
|
||||||
|
|
||||||
<script src="{{AppSubUrl}}/vendor/plugins/jquery/jquery.min.js"></script>
|
<script src="{{AppSubUrl}}/vendor/plugins/jquery/jquery.min.js?v=3.4.1"></script>
|
||||||
|
<script src="{{AppSubUrl}}/vendor/plugins/jquery-migrate/jquery-migrate.min.js?v=3.0.1"></script>
|
||||||
<script src="{{AppSubUrl}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js"></script>
|
<script src="{{AppSubUrl}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js"></script>
|
||||||
{{if .RequireSimpleMDE}}
|
{{if .RequireSimpleMDE}}
|
||||||
<script src="{{AppSubUrl}}/vendor/plugins/simplemde/simplemde.min.js"></script>
|
<script src="{{AppSubUrl}}/vendor/plugins/simplemde/simplemde.min.js"></script>
|
||||||
|
|||||||
@@ -17,25 +17,21 @@
|
|||||||
|
|
||||||
<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
|
<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
|
||||||
<span class="inline required field"><label for="visibility">{{.i18n.Tr "org.settings.visibility"}}</label></span>
|
<span class="inline required field"><label for="visibility">{{.i18n.Tr "org.settings.visibility"}}</label></span>
|
||||||
|
<div class="inline-grouped-list">
|
||||||
<div class="ui radio checkbox">
|
<div class="ui radio checkbox">
|
||||||
<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if .DefaultOrgVisibilityMode.IsPublic}}checked{{end}}/>
|
<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if .DefaultOrgVisibilityMode.IsPublic}}checked{{end}}/>
|
||||||
<label>{{.i18n.Tr "org.settings.visibility.public"}}</label>
|
<label>{{.i18n.Tr "org.settings.visibility.public"}}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
|
|
||||||
<label> </label>
|
|
||||||
<div class="ui radio checkbox">
|
<div class="ui radio checkbox">
|
||||||
<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if .DefaultOrgVisibilityMode.IsLimited}}checked{{end}}/>
|
<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if .DefaultOrgVisibilityMode.IsLimited}}checked{{end}}/>
|
||||||
<label>{{.i18n.Tr "org.settings.visibility.limited"}}</label>
|
<label>{{.i18n.Tr "org.settings.visibility.limited"}}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
|
|
||||||
<label> </label>
|
|
||||||
<div class="ui radio checkbox">
|
<div class="ui radio checkbox">
|
||||||
<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if .DefaultOrgVisibilityMode.IsPrivate}}checked{{end}}/>
|
<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if .DefaultOrgVisibilityMode.IsPrivate}}checked{{end}}/>
|
||||||
<label>{{.i18n.Tr "org.settings.visibility.private"}}</label>
|
<label>{{.i18n.Tr "org.settings.visibility.private"}}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="inline field">
|
<div class="inline field">
|
||||||
<label></label>
|
<label></label>
|
||||||
<button class="ui green button">
|
<button class="ui green button">
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ var STATIC_CACHE = 'static-cache-v1';
|
|||||||
var urlsToCache = [
|
var urlsToCache = [
|
||||||
// js
|
// js
|
||||||
'{{AppSubUrl}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js',
|
'{{AppSubUrl}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js',
|
||||||
'{{AppSubUrl}}/vendor/plugins/jquery/jquery.min.js',
|
'{{AppSubUrl}}/vendor/plugins/jquery/jquery.min.js?v=3.4.1',
|
||||||
|
'{{AppSubUrl}}/vendor/plugins/jquery-migrate/jquery-migrate.min.js?v=3.0.1',
|
||||||
'{{AppSubUrl}}/vendor/plugins/semantic/semantic.min.js',
|
'{{AppSubUrl}}/vendor/plugins/semantic/semantic.min.js',
|
||||||
'{{AppSubUrl}}/js/index.js?v={{MD5 AppVer}}',
|
'{{AppSubUrl}}/js/index.js?v={{MD5 AppVer}}',
|
||||||
'{{AppSubUrl}}/js/draw.js',
|
'{{AppSubUrl}}/js/draw.js',
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="right aligned">
|
<td class="right aligned">
|
||||||
{{if not .LatestPullRequest}}
|
{{if not .LatestPullRequest}}
|
||||||
{{if not .IsDeleted}}
|
{{if and (not .IsDeleted) $.AllowsPulls}}
|
||||||
<a href="{{$.RepoLink}}/compare/{{$.DefaultBranch | EscapePound}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{$.Owner.Name}}:{{end}}{{.Name | EscapePound}}">
|
<a href="{{$.RepoLink}}/compare/{{$.DefaultBranch | EscapePound}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{$.Owner.Name}}:{{end}}{{.Name | EscapePound}}">
|
||||||
<button id="new-pull-request" class="ui compact basic button">{{$.i18n.Tr "repo.pulls.compare_changes"}}</button>
|
<button id="new-pull-request" class="ui compact basic button">{{$.i18n.Tr "repo.pulls.compare_changes"}}</button>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@@ -85,7 +85,7 @@ github.com/couchbase/vellum/utf8
|
|||||||
github.com/couchbaselabs/go-couchbase
|
github.com/couchbaselabs/go-couchbase
|
||||||
# github.com/davecgh/go-spew v1.1.1
|
# github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/davecgh/go-spew/spew
|
github.com/davecgh/go-spew/spew
|
||||||
# github.com/denisenkom/go-mssqldb v0.0.0-20190121005146-b04fd42d9952 => github.com/denisenkom/go-mssqldb v0.0.0-20180314172330-6a30f4e59a44
|
# github.com/denisenkom/go-mssqldb v0.0.0-20190121005146-b04fd42d9952 => github.com/denisenkom/go-mssqldb v0.0.0-20180315180555-6a30f4e59a44
|
||||||
github.com/denisenkom/go-mssqldb
|
github.com/denisenkom/go-mssqldb
|
||||||
github.com/denisenkom/go-mssqldb/internal/cp
|
github.com/denisenkom/go-mssqldb/internal/cp
|
||||||
# github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
# github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||||
|
|||||||
Reference in New Issue
Block a user