diff options
-rwxr-xr-x | public/css/gogs.css | 43 | ||||
-rw-r--r-- | public/js/app.js | 36 | ||||
-rw-r--r-- | templates/issue/view.tmpl | 48 |
3 files changed, 119 insertions, 8 deletions
diff --git a/public/css/gogs.css b/public/css/gogs.css index 12fd8138e9..d3da360f56 100755 --- a/public/css/gogs.css +++ b/public/css/gogs.css @@ -1441,7 +1441,7 @@ html, body { margin-left: .8em; } -#issue .assignee.dropdown-menu, #issue .assignee ul { +#issue .assignee.dropdown-menu, #issue .assignee ul, #issue .milestone ul { padding: 0; margin: 0; min-width: 300px; @@ -1451,17 +1451,33 @@ html, body { min-width: 160px; } -#issue .issue-bar .assignee .dropdown-menu{ +#issue .issue-bar .assignee .dropdown-menu, #issue .issue-bar .milestone .dropdown-menu { padding: 0; margin: 0; } -#issue .assignee li { +#issue .assignee li, #issue .milestone li.clear-milestone { padding: 4px 12px; line-height: 30px; } -#issue .assignee li:hover { +#issue .milestone .milestone-item { + padding: 8px 12px; +} + +#issue .milestone li.milestone-item { + border-bottom: 1px solid #CCC; +} + +#issue .milestone li.milestone-item:last-child { + border-bottom: none; +} + +#issue .milestone .milestone-item p { + margin-bottom: 0; +} + +#issue .assignee li:hover, #issue .milestone li.clear-milestone:hover, #issue .milestone li.milestone-item:hover { background-color: #e8f0ff; cursor: pointer; } @@ -1474,7 +1490,7 @@ html, body { #issue .issue-bar > div { padding-bottom: 8px; - margin-bottom: 8px; + margin-bottom: 40px; border-bottom: 1px solid #CCC; } @@ -1482,11 +1498,26 @@ html, body { line-height: 30px; } -#issue .issue-bar .assignee .action{ +#issue .issue-bar .assignee .action, #issue .issue-bar .milestone .action { position: relative; margin-top: -8px; } +#issue .issue-bar .milestone .completion { + margin-top: 20px; + margin-bottom: 12px; +} + +#issue .issue-bar .milestone .completion span { + display: block; + height: 12px; + background-color: #77c64a; +} + +#issue .issue-bar .milestone .nav-tabs a { + padding: 4px 8px; +} + /* wrapper and footer */ #wrapper { diff --git a/public/js/app.js b/public/js/app.js index 02b6d46476..d7ef225049 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -528,7 +528,7 @@ function initIssue() { var $this = $(this); $this.toggleAjax(function (resp) { $($this.data("preview")).html(resp); - },function(){ + }, function () { $($this.data("preview")).html("no content"); }) }); @@ -569,6 +569,40 @@ function initIssue() { } }); + // milestone + + $('.issue-bar .dropdown-menu a[data-toggle="tab"]').on("click", function (e) { + e.stopPropagation(); + $(this).tab('show'); + return false; + }); + + var $m = $('.milestone'); + if ($m.data("milestone") > 0) { + $('.clear-milestone').toggleShow(); + } + $('.milestone', '#issue').on('click', 'li.milestone-item', function () { + var id = $(this).data("id"); + if (is_issue_bar) { + var m = $m.data("milestone"); + if (id != m) { + $.post($m.data("ajax"), { + issue: $('#issue').data("id"), + milestone: id + }, function (json) { + if (json.ok) { + window.location.reload(); + if (id > 0) { + $('.clear-milestone').toggleShow(); + } else { + $('.clear-milestone').toggleHide(); + } + } + }) + } + } + return; + }); } function initRelease() { diff --git a/templates/issue/view.tmpl b/templates/issue/view.tmpl index 941f8e2f86..653f21088f 100644 --- a/templates/issue/view.tmpl +++ b/templates/issue/view.tmpl @@ -100,6 +100,52 @@ </div> <div class="issue-bar col-md-2"> + <div class="milestone" data-milestone="0" data-ajax="{url}"> + <div class="pull-right action"> + <button class="btn btn-default btn-sm" data-toggle="dropdown"> + <i class="fa fa-check-square-o"></i> + <span class="caret"></span> + </button> + <div class="dropdown-menu dropdown-menu-right"> + <ul class="list-unstyled"> + <li data-id="0" class="clear-milestone hidden"><i class="fa fa-times-circle-o"></i> Clear milestone </li> + <li class="milestone-list"> + <ul class="nav nav-tabs" data-init="tabs"> + <li class="active"><a href="#milestone-open" data-toggle="tab">Open</a></li> + <li><a href="#milestone-close" data-toggle="tab">Closed</a></li> + </ul> + <div class="tab-content"> + <div class="tab-pane active" id="milestone-open"> + <p class="milestone-item">Nothing to show</p> + <ul class="list-unstyled"> + <li class="milestone-item" data-id="1"> + <p><strong>Milestone name</strong></p> + <p>due to 3 days later</p> + </li> + <li class="milestone-item" data-id="1"> + <p><strong>Milestone name</strong></p> + <p>due to 3 days later</p> + </li> + </ul> + </div> + <div class="tab-pane" id="milestone-close"> + <ul class="list-unstyled"> + <li class="milestone-item" data-id="1"> + <p><strong>Milestone name</strong></p> + <p>closed 3 days ago</p> + </li> + </ul> + </div> + </div> + </li> + </ul> + </div> + </div> + <h4>Milestone</h4> + <p class="completion"><span style="width:80%"> </span></p> + <p class="name"><strong><a href="#">Milestone name</a></strong></p> + <p class="name">No milestone</p> + </div> <div class="assignee" data-assigned="{{if .Issue.Assignee}}{{.Issue.Assignee.Id}}{{else}}0{{end}}" data-ajax="{{.Issue.Index}}/assignee">{{if .IsRepositoryOwner}} <div class="pull-right action"> <button type="button" class="dropdown-toggle btn btn-default btn-sm" data-toggle="dropdown"> @@ -110,7 +156,7 @@ <ul class="list-unstyled"> <li data-uid="0" class="clear-assignee hidden"><i class="fa fa-times-circle-o"></i> Clear assignee</li> {{range .Collaborators}} - <li data-uid="{{.Id}}"><img src="{{.AvatarLink}}"><strong>{{.Name}}</strong> {{.FullName}}</li> + <li data-uid="{{.Id}}"><img src="{{.AvatarLink}}"><strong>{{.Name}}</strong></li> {{end}} </ul> </div> |