mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	Compare commits
	
		
			15 Commits
		
	
	
		
			v1.15.0-de
			...
			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
 | 
			
		||||
        - 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
 | 
			
		||||
    pull: always
 | 
			
		||||
    image: golang:1.12
 | 
			
		||||
@@ -122,7 +133,7 @@ steps:
 | 
			
		||||
    environment:
 | 
			
		||||
      TAGS: bindata
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - build
 | 
			
		||||
      - tag-pre-condition
 | 
			
		||||
    when:
 | 
			
		||||
      event:
 | 
			
		||||
        - 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
 | 
			
		||||
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
 | 
			
		||||
* BREAKING
 | 
			
		||||
  * Better logging (#6038) (#6095)
 | 
			
		||||
 
 | 
			
		||||
@@ -73,7 +73,6 @@ func fail(userMessage, logMessage string, args ...interface{}) {
 | 
			
		||||
		if !setting.ProdMode {
 | 
			
		||||
			fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
 | 
			
		||||
		}
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	os.Exit(1)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							@@ -135,4 +135,4 @@ require (
 | 
			
		||||
	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.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
			
		||||
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-20180314172330-6a30f4e59a44/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc=
 | 
			
		||||
github.com/denisenkom/go-mssqldb v0.0.0-20180315180555-6a30f4e59a44 h1:DWxZh2sImfCFn/79OUBhzFkPTKnsdDzXH/JTxpw5n6w=
 | 
			
		||||
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/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
 | 
			
		||||
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 issueRefRegexpStrNoKeyword = `(?:\s|^|\(|\[)(?:([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+))?(#[0-9]+)(?:\s|$|\)|\]|\.(\s|$))`
 | 
			
		||||
 | 
			
		||||
func assembleKeywordsPattern(words []string) string {
 | 
			
		||||
	return fmt.Sprintf(`(?i)(?:%s)(?::?) %s`, strings.Join(words, "|"), issueRefRegexpStr)
 | 
			
		||||
@@ -73,7 +74,7 @@ func assembleKeywordsPattern(words []string) string {
 | 
			
		||||
func init() {
 | 
			
		||||
	issueCloseKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueCloseKeywords))
 | 
			
		||||
	issueReopenKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueReopenKeywords))
 | 
			
		||||
	issueReferenceKeywordsPat = regexp.MustCompile(issueRefRegexpStr)
 | 
			
		||||
	issueReferenceKeywordsPat = regexp.MustCompile(issueRefRegexpStrNoKeyword)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Action represents user operation type and other information to
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,25 @@ func TestPushCommits_AvatarLink(t *testing.T) {
 | 
			
		||||
		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) {
 | 
			
		||||
	assert.NoError(t, PrepareTestDatabase())
 | 
			
		||||
	repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
 | 
			
		||||
 
 | 
			
		||||
@@ -189,36 +189,6 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
 | 
			
		||||
			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 {
 | 
			
		||||
		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{
 | 
			
		||||
		ID:        pr.ID,
 | 
			
		||||
		URL:       pr.Issue.HTMLURL(),
 | 
			
		||||
		Index:     pr.Index,
 | 
			
		||||
		Poster:    apiIssue.Poster,
 | 
			
		||||
		Title:     apiIssue.Title,
 | 
			
		||||
@@ -241,13 +212,68 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
 | 
			
		||||
		DiffURL:   pr.Issue.DiffURL(),
 | 
			
		||||
		PatchURL:  pr.Issue.PatchURL(),
 | 
			
		||||
		HasMerged: pr.HasMerged,
 | 
			
		||||
		Base:      apiBaseBranchInfo,
 | 
			
		||||
		Head:      apiHeadBranchInfo,
 | 
			
		||||
		MergeBase: pr.MergeBase,
 | 
			
		||||
		Deadline:  apiIssue.Deadline,
 | 
			
		||||
		Created:   pr.Issue.CreatedUnix.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 {
 | 
			
		||||
		mergeable := pr.Status != PullRequestStatusConflict && !pr.IsWorkInProgress()
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,15 @@ func TestPullRequest_LoadIssue(t *testing.T) {
 | 
			
		||||
	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) {
 | 
			
		||||
	assert.NoError(t, PrepareTestDatabase())
 | 
			
		||||
 
 | 
			
		||||
@@ -173,6 +173,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	var (
 | 
			
		||||
		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{
 | 
			
		||||
		{
 | 
			
		||||
@@ -208,9 +209,9 @@ func TestGitHubDownloadRepo(t *testing.T) {
 | 
			
		||||
			Number:     7,
 | 
			
		||||
			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",
 | 
			
		||||
			Milestone:  "1.x.x",
 | 
			
		||||
			Milestone:  "1.10.0",
 | 
			
		||||
			PosterName: "joubertredrat",
 | 
			
		||||
			State:      "open",
 | 
			
		||||
			State:      "closed",
 | 
			
		||||
			Created:    time.Date(2016, 11, 02, 18, 57, 32, 0, time.UTC),
 | 
			
		||||
			Labels: []*base.Label{
 | 
			
		||||
				{
 | 
			
		||||
@@ -232,6 +233,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
 | 
			
		||||
				Heart:      0,
 | 
			
		||||
				Hooray:     0,
 | 
			
		||||
			},
 | 
			
		||||
			Closed: &closed7,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			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:hover{color:rgba(0,0,0,.8)}
 | 
			
		||||
.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).ui.segment{padding:3em}
 | 
			
		||||
.markdown:not(code).file-view{padding:2em 2em 2em!important}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,11 @@ function htmlEncode(text) {
 | 
			
		||||
var csrf;
 | 
			
		||||
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)
 | 
			
		||||
if (!Array.from) {
 | 
			
		||||
    Array.from = (function () {
 | 
			
		||||
@@ -1972,13 +1977,11 @@ $(document).ready(function () {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Dropzone
 | 
			
		||||
    var $dropzone = $('#dropzone');
 | 
			
		||||
    const $dropzone = $('#dropzone');
 | 
			
		||||
    if ($dropzone.length > 0) {
 | 
			
		||||
        // Disable auto discover for all elements:
 | 
			
		||||
        Dropzone.autoDiscover = false;
 | 
			
		||||
        const filenameDict = {};
 | 
			
		||||
 | 
			
		||||
        var filenameDict = {};
 | 
			
		||||
        $dropzone.dropzone({
 | 
			
		||||
        new Dropzone("#dropzone", {
 | 
			
		||||
            url: $dropzone.data('upload-url'),
 | 
			
		||||
            headers: {"X-Csrf-Token": csrf},
 | 
			
		||||
            maxFiles: $dropzone.data('max-file'),
 | 
			
		||||
@@ -2006,7 +2009,7 @@ $(document).ready(function () {
 | 
			
		||||
                        });
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            },
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -2104,12 +2107,16 @@ $(document).ready(function () {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $('.issue-action').click(function () {
 | 
			
		||||
        var action = this.dataset.action
 | 
			
		||||
        var elementId = this.dataset.elementId
 | 
			
		||||
        var issueIDs = $('.issue-checkbox').children('input:checked').map(function() {
 | 
			
		||||
        let action = this.dataset.action;
 | 
			
		||||
        let elementId = this.dataset.elementId;
 | 
			
		||||
        let issueIDs = $('.issue-checkbox').children('input:checked').map(function() {
 | 
			
		||||
            return this.dataset.issueId;
 | 
			
		||||
        }).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);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -605,7 +605,6 @@ code,
 | 
			
		||||
.file-comment {
 | 
			
		||||
    font: 12px @monospaced-fonts, monospace;
 | 
			
		||||
    color: rgba(0, 0, 0, 0.87);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ui.floating.dropdown {
 | 
			
		||||
@@ -877,3 +876,19 @@ footer {
 | 
			
		||||
.ui.tabular.menu .item.active {
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
Version: 2.3.1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								public/vendor/librejs.html
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								public/vendor/librejs.html
									
									
									
									
										vendored
									
									
								
							@@ -17,8 +17,13 @@
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
          <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://code.jquery.com/jquery-1.12.4.min.js">jquery-1.12.4.min.js</a></td>
 | 
			
		||||
          <td><a href="https://jquery.org/license/">MIT</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>
 | 
			
		||||
          <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) {
 | 
			
		||||
	ctx.Data["Title"] = ctx.Tr("org.settings")
 | 
			
		||||
	ctx.Data["PageIsSettingsOptions"] = true
 | 
			
		||||
	ctx.Data["CurrentVisibility"] = structs.VisibleType(ctx.Org.Organization.Visibility)
 | 
			
		||||
 | 
			
		||||
	if ctx.HasError() {
 | 
			
		||||
		ctx.HTML(200, tplSettingsOptions)
 | 
			
		||||
 
 | 
			
		||||
@@ -39,6 +39,7 @@ func Branches(ctx *context.Context) {
 | 
			
		||||
	ctx.Data["Title"] = "Branches"
 | 
			
		||||
	ctx.Data["IsRepoToolbarBranches"] = true
 | 
			
		||||
	ctx.Data["DefaultBranch"] = ctx.Repo.Repository.DefaultBranch
 | 
			
		||||
	ctx.Data["AllowsPulls"] = ctx.Repo.Repository.AllowsPulls()
 | 
			
		||||
	ctx.Data["IsWriter"] = ctx.Repo.CanWrite(models.UnitTypeCode)
 | 
			
		||||
	ctx.Data["IsMirror"] = ctx.Repo.Repository.IsMirror
 | 
			
		||||
	ctx.Data["PageIsViewCode"] = true
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,8 @@
 | 
			
		||||
 | 
			
		||||
	{{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>
 | 
			
		||||
{{if .RequireSimpleMDE}}
 | 
			
		||||
	<script src="{{AppSubUrl}}/vendor/plugins/simplemde/simplemde.min.js"></script>
 | 
			
		||||
 
 | 
			
		||||
@@ -17,25 +17,21 @@
 | 
			
		||||
 | 
			
		||||
					<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
 | 
			
		||||
						<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">
 | 
			
		||||
								<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>
 | 
			
		||||
							</div>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
 | 
			
		||||
						<label> </label>
 | 
			
		||||
							<div class="ui radio checkbox">
 | 
			
		||||
								<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>
 | 
			
		||||
							</div>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
 | 
			
		||||
						<label> </label>
 | 
			
		||||
							<div class="ui radio checkbox">
 | 
			
		||||
								<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>
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="inline field">
 | 
			
		||||
						<label></label>
 | 
			
		||||
						<button class="ui green button">
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@ var STATIC_CACHE = 'static-cache-v1';
 | 
			
		||||
var urlsToCache = [
 | 
			
		||||
  // 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}}/js/index.js?v={{MD5 AppVer}}',
 | 
			
		||||
  '{{AppSubUrl}}/js/draw.js',
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@
 | 
			
		||||
									</td>
 | 
			
		||||
									<td class="right aligned">
 | 
			
		||||
										{{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}}">
 | 
			
		||||
												<button id="new-pull-request" class="ui compact basic button">{{$.i18n.Tr "repo.pulls.compare_changes"}}</button>
 | 
			
		||||
											</a>
 | 
			
		||||
 
 | 
			
		||||
@@ -122,10 +122,10 @@
 | 
			
		||||
													<tr class="{{DiffLineTypeToStr .GetType}}-code nl-{{$k}} ol-{{$k}}">
 | 
			
		||||
														<td class="lines-num lines-num-old" data-line-num="{{if $line.LeftIdx}}{{$line.LeftIdx}}{{end}}"><span rel="{{if $line.LeftIdx}}diff-{{Sha1 $file.Name}}L{{$line.LeftIdx}}{{end}}"></span></td>
 | 
			
		||||
														<td class="lines-type-marker lines-type-marker-old">{{if $line.LeftIdx}}<span class="mono" data-type-marker="{{$line.GetLineTypeMarker}}"></span>{{end}}</td>
 | 
			
		||||
														<td class="lines-code lines-code-old halfwidth">{{if and $.SignedUserID $line.CanComment $.PageIsPullFiles (not (eq .GetType 2))}}<a class="ui green button add-code-comment add-code-comment-left" data-path="{{$file.Name}}" data-side="left" data-idx="{{$line.LeftIdx}}">+</a>{{end}}<span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}}nohighlight{{end}}">{{if $line.LeftIdx}}{{$section.GetComputedInlineDiffFor $line}}{{end}}</span></td>
 | 
			
		||||
														<td class="lines-code lines-code-old halfwidth">{{if and $.SignedUserID $line.CanComment $.PageIsPullFiles (not (eq .GetType 2))}}<a class="ui green button add-code-comment add-code-comment-left" data-path="{{$file.Name}}" data-side="left" data-idx="{{$line.LeftIdx}}">+</a>{{end}}<span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}} nohighlight{{end}}">{{if $line.LeftIdx}}{{$section.GetComputedInlineDiffFor $line}}{{end}}</span></td>
 | 
			
		||||
														<td class="lines-num lines-num-new" data-line-num="{{if $line.RightIdx}}{{$line.RightIdx}}{{end}}"><span rel="{{if $line.RightIdx}}diff-{{Sha1 $file.Name}}R{{$line.RightIdx}}{{end}}"></span></td>
 | 
			
		||||
														<td class="lines-type-marker lines-type-marker-new">{{if $line.RightIdx}}<span class="mono" data-type-marker="{{$line.GetLineTypeMarker}}"></span>{{end}}</td>
 | 
			
		||||
														<td class="lines-code lines-code-new halfwidth">{{if and $.SignedUserID $line.CanComment $.PageIsPullFiles (not (eq .GetType 3))}}<a class="ui green button add-code-comment add-code-comment-right" data-path="{{$file.Name}}" data-side="right" data-idx="{{$line.RightIdx}}">+</a>{{end}}<span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}}nohighlight{{end}}">{{if $line.RightIdx}}{{$section.GetComputedInlineDiffFor $line}}{{end}}</span></td>
 | 
			
		||||
														<td class="lines-code lines-code-new halfwidth">{{if and $.SignedUserID $line.CanComment $.PageIsPullFiles (not (eq .GetType 3))}}<a class="ui green button add-code-comment add-code-comment-right" data-path="{{$file.Name}}" data-side="right" data-idx="{{$line.RightIdx}}">+</a>{{end}}<span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}} nohighlight{{end}}">{{if $line.RightIdx}}{{$section.GetComputedInlineDiffFor $line}}{{end}}</span></td>
 | 
			
		||||
													</tr>
 | 
			
		||||
													{{if gt (len $line.Comments) 0}}
 | 
			
		||||
														<tr class="add-code-comment">
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
			<td class="lines-num lines-num-new" data-line-num="{{if $line.RightIdx}}{{$line.RightIdx}}{{end}}"><span rel="{{if $line.RightIdx}}diff-{{Sha1 $file.Name}}R{{$line.RightIdx}}{{end}}"></span></td>
 | 
			
		||||
			{{end}}
 | 
			
		||||
			<td class="lines-type-marker"><span class="mono" data-type-marker="{{$line.GetLineTypeMarker}}"></span></td>
 | 
			
		||||
			<td class="lines-code{{if (not $line.RightIdx)}} lines-code-old{{end}}">{{if and $.root.SignedUserID $line.CanComment $.root.PageIsPullFiles}}<a class="ui green button add-code-comment add-code-comment-{{if $line.RightIdx}}right{{else}}left{{end}}" data-path="{{$file.Name}}" data-side="{{if $line.RightIdx}}right{{else}}left{{end}}" data-idx="{{if $line.RightIdx}}{{$line.RightIdx}}{{else}}{{$line.LeftIdx}}{{end}}">+</a>{{end}}<span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}}nohighlight{{end}}">{{$section.GetComputedInlineDiffFor $line}}</span></td>
 | 
			
		||||
			<td class="lines-code{{if (not $line.RightIdx)}} lines-code-old{{end}}">{{if and $.root.SignedUserID $line.CanComment $.root.PageIsPullFiles}}<a class="ui green button add-code-comment add-code-comment-{{if $line.RightIdx}}right{{else}}left{{end}}" data-path="{{$file.Name}}" data-side="{{if $line.RightIdx}}right{{else}}left{{end}}" data-idx="{{if $line.RightIdx}}{{$line.RightIdx}}{{else}}{{$line.LeftIdx}}{{end}}">+</a>{{end}}<span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}} nohighlight{{end}}">{{$section.GetComputedInlineDiffFor $line}}</span></td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		{{if gt (len $line.Comments) 0}}
 | 
			
		||||
		<tr>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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/davecgh/go-spew v1.1.1
 | 
			
		||||
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/internal/cp
 | 
			
		||||
# github.com/dgrijalva/jwt-go v3.2.0+incompatible
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user