forked from NYANDEV/forgejo
add milestone issue view ui
This commit is contained in:
parent
9100786beb
commit
4a4392192b
3 changed files with 119 additions and 8 deletions
|
@ -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 {
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue