diff options
author | Zsombor <gzsombor@users.noreply.github.com> | 2017-08-24 14:30:27 +0200 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2017-08-24 15:30:27 +0300 |
commit | da230a287264d38156e950a3149e43f65599e65b (patch) | |
tree | 4c5f4d16186f2d201515f77fdf99e9d3fc90df95 | |
parent | 174255e74ee2c07e685913ab8bce08fc046569f0 (diff) | |
download | gitea-da230a287264d38156e950a3149e43f65599e65b.tar.gz gitea-da230a287264d38156e950a3149e43f65599e65b.zip |
Add possibility to record branch or tag information in an issue (#780)
-rw-r--r-- | models/issue.go | 1 | ||||
-rw-r--r-- | modules/auth/repo_form.go | 1 | ||||
-rw-r--r-- | options/locale/locale_en-US.ini | 1 | ||||
-rw-r--r-- | public/js/index.js | 17 | ||||
-rw-r--r-- | routers/repo/issue.go | 10 | ||||
-rw-r--r-- | templates/repo/issue/branch_selector_field.tmpl | 41 | ||||
-rw-r--r-- | templates/repo/issue/list.tmpl | 3 | ||||
-rw-r--r-- | templates/repo/issue/new_form.tmpl | 2 | ||||
-rw-r--r-- | templates/repo/issue/view_content/sidebar.tmpl | 2 |
9 files changed, 78 insertions, 0 deletions
diff --git a/models/issue.go b/models/issue.go index 2c385fd066..32e6a5b66b 100644 --- a/models/issue.go +++ b/models/issue.go @@ -49,6 +49,7 @@ type Issue struct { IsPull bool `xorm:"INDEX"` // Indicates whether is a pull request or not. PullRequest *PullRequest `xorm:"-"` NumComments int + Ref string Deadline time.Time `xorm:"-"` DeadlineUnix int64 `xorm:"INDEX"` diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go index 58dcf468ef..681a478d3b 100644 --- a/modules/auth/repo_form.go +++ b/modules/auth/repo_form.go @@ -194,6 +194,7 @@ func (f *NewSlackHookForm) Validate(ctx *macaron.Context, errs binding.Errors) b type CreateIssueForm struct { Title string `binding:"Required;MaxSize(255)"` LabelIDs string `form:"label_ids"` + Ref string `form:"ref"` MilestoneID int64 AssigneeID int64 Content string diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 9931d9152b..4a8a39963f 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -612,6 +612,7 @@ issues.new.closed_milestone = Closed Milestones issues.new.assignee = Assignee issues.new.clear_assignee = Clear assignee issues.new.no_assignee = No assignee +issues.no_ref = No Branch/Tag Specified issues.create = Create Issue issues.new_label = New Label issues.new_label_placeholder = Label name... diff --git a/public/js/index.js b/public/js/index.js index 90a61d7529..1b6f2f601e 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -86,6 +86,22 @@ function initEditForm() { initEditDiffTab($('.edit.form')); } +function initBranchSelector() { + var $selectBranch = $('.ui.select-branch') + var $branchMenu = $selectBranch.find('.reference-list-menu'); + $branchMenu.find('.item:not(.no-select)').click(function () { + var selectedValue = $(this).data('id'); + $($(this).data('id-selector')).val(selectedValue); + $selectBranch.find('.ui .branch-name').text(selectedValue); + }); + $selectBranch.find('.reference.column').click(function () { + $selectBranch.find('.scrolling.reference-list-menu').css('display', 'none'); + $selectBranch.find('.reference .text').removeClass('black'); + $($(this).data('target')).css('display', 'block'); + $(this).find('.text').addClass('black'); + return false; + }); +} function updateIssuesMeta(url, action, issueIds, elementId, afterSuccess) { $.ajax({ @@ -106,6 +122,7 @@ function initCommentForm() { return } + initBranchSelector(); initCommentPreviewTab($('.comment.form')); // Labels diff --git a/routers/repo/issue.go b/routers/repo/issue.go index e4ed10d980..d1c5e1fe71 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -292,6 +292,13 @@ func RetrieveRepoMetas(ctx *context.Context, repo *models.Repository) []*models. return nil } + brs, err := ctx.Repo.GitRepo.GetBranches() + if err != nil { + ctx.Handle(500, "GetBranches", err) + return nil + } + ctx.Data["Branches"] = brs + return labels } @@ -418,6 +425,7 @@ func NewIssuePost(ctx *context.Context, form auth.CreateIssueForm) { ctx.Data["PageIsIssueList"] = true ctx.Data["RequireHighlightJS"] = true ctx.Data["RequireSimpleMDE"] = true + ctx.Data["ReadOnly"] = false renderAttachmentSettings(ctx) var ( @@ -447,6 +455,7 @@ func NewIssuePost(ctx *context.Context, form auth.CreateIssueForm) { MilestoneID: milestoneID, AssigneeID: assigneeID, Content: form.Content, + Ref: form.Ref, } if err := models.NewIssue(repo, issue, labelIDs, attachments); err != nil { ctx.Handle(500, "NewIssue", err) @@ -668,6 +677,7 @@ func ViewIssue(ctx *context.Context) { ctx.Data["Participants"] = participants ctx.Data["NumParticipants"] = len(participants) ctx.Data["Issue"] = issue + ctx.Data["ReadOnly"] = true ctx.Data["IsIssueOwner"] = ctx.Repo.IsWriter() || (ctx.IsSigned && issue.IsPoster(ctx.User.ID)) ctx.Data["SignInLink"] = setting.AppSubURL + "/user/login?redirect_to=" + ctx.Data["Link"].(string) ctx.HTML(200, tplIssueView) diff --git a/templates/repo/issue/branch_selector_field.tmpl b/templates/repo/issue/branch_selector_field.tmpl new file mode 100644 index 0000000000..72b953b666 --- /dev/null +++ b/templates/repo/issue/branch_selector_field.tmpl @@ -0,0 +1,41 @@ +<input id="ref_selector" name="ref" type="hidden" value="{{.Issue.Ref}}"> +<div class="ui {{if .ReadOnly}}disabled{{end}} floating filter select-branch dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}"> + <div class="ui basic small button"> + <span class="text branch-name">{{if .Issue.Ref}}{{.Issue.Ref}}{{else}}{{.i18n.Tr "repo.issues.no_ref"}}{{end}}</span> + <i class="dropdown icon"></i> + </div> + <div class="menu"> + <div class="ui icon search input"> + <i class="filter icon"></i> + <input name="search" placeholder="{{.i18n.Tr "repo.filter_branch_and_tag"}}..."> + </div> + <div class="header"> + <div class="ui grid"> + <div class="two column row"> + <a class="reference column" href="#" data-target="#branch-list"> + <span class="text black"> + <i class="octicon octicon-git-branch"></i> {{.i18n.Tr "repo.branches"}} + </span> + </a> + <a class="reference column" href="#" data-target="#tag-list"> + <span class="text"> + <i class="reference tags icon"></i> {{.i18n.Tr "repo.tags"}} + </span> + </a> + </div> + </div> + </div> + <div id="branch-list" class="scrolling menu reference-list-menu"> + {{range .Branches}} + <div class="item" data-id="{{.}}" data-id-selector="#ref_selector">{{.}}</div> + {{end}} + </div> + <div id="tag-list" class="scrolling menu reference-list-menu" style="display: none"> + {{range .Tags}} + <div class="item" data-id="{{.}}" data-id-selector="#ref_selector">{{.}}</div> + {{end}} + </div> + </div> +</div> + +<div class="ui divider"></div> diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index 8de52fb23f..5c5a574976 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -171,6 +171,9 @@ <div class="ui {{if .IsRead}}black{{else}}green{{end}} label">#{{.Index}}</div> <a class="title has-emoji" href="{{$.Link}}/{{.Index}}">{{.Title}}</a> + {{if .Ref}} + <a class="ui label" href="{{$.RepoLink}}/src/{{.Ref}}">{{.Ref}}</a> + {{end}} {{range .Labels}} <a class="ui label" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{.Name | Sanitize}}</a> {{end}} diff --git a/templates/repo/issue/new_form.tmpl b/templates/repo/issue/new_form.tmpl index bfb97da2da..829f66943b 100644 --- a/templates/repo/issue/new_form.tmpl +++ b/templates/repo/issue/new_form.tmpl @@ -32,6 +32,8 @@ <div class="four wide column"> <div class="ui segment metas"> + {{template "repo/issue/branch_selector_field" .}} + <input id="label_ids" name="label_ids" type="hidden" value="{{.label_ids}}"> <div class="ui {{if not .Labels}}disabled{{end}} floating jump select-label dropdown"> <span class="text"> diff --git a/templates/repo/issue/view_content/sidebar.tmpl b/templates/repo/issue/view_content/sidebar.tmpl index cfb6f183b4..2c6149ed29 100644 --- a/templates/repo/issue/view_content/sidebar.tmpl +++ b/templates/repo/issue/view_content/sidebar.tmpl @@ -1,5 +1,7 @@ <div class="four wide column"> <div class="ui segment metas"> + {{template "repo/issue/branch_selector_field" .}} + <div class="ui {{if not .IsRepositoryWriter}}disabled{{end}} floating jump select-label dropdown"> <span class="text"> <strong>{{.i18n.Tr "repo.issues.new.labels"}}</strong> |