mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-09 06:55:54 +01:00
(refs #488)Apply new UI to Milestones tab
This commit is contained in:
@@ -227,7 +227,7 @@ trait IssuesControllerBase extends ControllerBase {
|
||||
milestoneId("milestoneId").map { milestoneId =>
|
||||
getMilestonesWithIssueCount(repository.owner, repository.name)
|
||||
.find(_._1.milestoneId == milestoneId).map { case (_, openCount, closeCount) =>
|
||||
issues.milestones.html.progress(openCount + closeCount, closeCount, false)
|
||||
issues.milestones.html.progress(openCount + closeCount, closeCount)
|
||||
} getOrElse NotFound
|
||||
} getOrElse Ok()
|
||||
})
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<div id="milestone-progress-area">
|
||||
@issue.milestoneId.map { milestoneId =>
|
||||
@milestones.collect { case (milestone, openCount, closeCount) if(milestone.milestoneId == milestoneId) =>
|
||||
@issues.milestones.html.progress(openCount + closeCount, closeCount, false)
|
||||
@issues.milestones.html.progress(openCount + closeCount, closeCount)
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -8,37 +8,32 @@
|
||||
@html.menu("issues", repository){
|
||||
@issues.html.tab("milestones", false, repository)
|
||||
<div class="row-fluid">
|
||||
<div class="span3">
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<li@if(state == "open"){ class="active"}>
|
||||
<a href="?state=open">
|
||||
<span class="count-right">@milestones.filter(_._1.closedDate.isEmpty).size</span>
|
||||
Open Milestones
|
||||
<div class="span12">
|
||||
<table class="table table-bordered table-hover table-issues">
|
||||
<tr>
|
||||
<th style="background-color: #eee;">
|
||||
<span class="small">
|
||||
<a class="button-link@if(state == "open"){ selected}" href="?state=open">
|
||||
<img src="@assets/common/images/status-open@(if(state == "open"){"-active"}).png"/>
|
||||
@milestones.filter(_._1.closedDate.isEmpty).size Open
|
||||
</a>
|
||||
<a class="button-link@if(state == "closed"){ selected}" href="?state=closed">
|
||||
<img src="@assets/common/images/status-closed@(if(state == "closed"){"-active"}).png"/>
|
||||
@milestones.filter(_._1.closedDate.isDefined).size Closed
|
||||
</a>
|
||||
</li>
|
||||
<li@if(state == "closed"){ class="active"}>
|
||||
<a href="?state=closed">
|
||||
<span class="count-right">@milestones.filter(_._1.closedDate.isDefined).size</span>
|
||||
Closed Milestones
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@if(hasWritePermission){
|
||||
<hr>
|
||||
<a href="@url(repository)/issues/milestones/new" class="btn btn-block">Create a new milestone</a>
|
||||
}
|
||||
</div>
|
||||
<div class="span9">
|
||||
<table class="table table-bordered table-hover">
|
||||
</span>
|
||||
</th>
|
||||
</tr>
|
||||
@defining(milestones.filter { case (milestone, _, _) =>
|
||||
milestone.closedDate.map(_ => state == "closed").getOrElse(state == "open")
|
||||
}){ milestones =>
|
||||
@milestones.map { case (milestone, openCount, closedCount) =>
|
||||
<tr>
|
||||
<td>
|
||||
<td style="padding-top: 15px; padding-bottom: 15px;">
|
||||
<div class="milestone row-fluid">
|
||||
<div class="span4">
|
||||
<a href="@url(repository)/issues?milestone=@milestone.milestoneId&state=open" class="milestone-title">@milestone.title</a><br>
|
||||
<a href="@url(repository)/issues?milestone=@milestone.milestoneId&state=open" class="milestone-title">@milestone.title</a>
|
||||
<div style="margin-top: 6px">
|
||||
@if(milestone.closedDate.isDefined){
|
||||
<span class="muted">Closed @datetime(milestone.closedDate.get)</span>
|
||||
} else {
|
||||
@@ -53,23 +48,31 @@
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="span8">
|
||||
<div class="milestone-menu">
|
||||
<div class="pull-right">
|
||||
@if(hasWritePermission){
|
||||
<a href="@url(repository)/issues/milestones/@milestone.milestoneId/edit">Edit
|
||||
@if(milestone.closedDate.isDefined){
|
||||
<a href="@url(repository)/issues/milestones/@milestone.milestoneId/open">Open</a>
|
||||
@progress(openCount + closedCount, closedCount)
|
||||
<div>
|
||||
<div>
|
||||
@if(closedCount == 0){
|
||||
0%
|
||||
} else {
|
||||
<a href="@url(repository)/issues/milestones/@milestone.milestoneId/close">Close</a>
|
||||
@((closedCount.toDouble / (openCount + closedCount).toDouble * 100).toInt)%
|
||||
} <span class="muted">complete</span>
|
||||
@openCount <span class="muted">open</span>
|
||||
@closedCount <span class="muted">closed</span>
|
||||
</div>
|
||||
<div class="milestone-menu">
|
||||
@if(hasWritePermission){
|
||||
<a href="@url(repository)/issues/milestones/@milestone.milestoneId/edit">Edit
|
||||
@if(milestone.closedDate.isDefined){
|
||||
<a href="@url(repository)/issues/milestones/@milestone.milestoneId/open">Open</a>
|
||||
} else {
|
||||
<a href="@url(repository)/issues/milestones/@milestone.milestoneId/close">Close</a>
|
||||
}
|
||||
<a href="@url(repository)/issues/milestones/@milestone.milestoneId/delete" class="delete">Delete</a>
|
||||
}
|
||||
<a href="@url(repository)/issues?milestone=@milestone.milestoneId&state=open">Browse issues</a>
|
||||
</div>
|
||||
<span class="muted">@closedCount closed - @openCount open</span>
|
||||
</div>
|
||||
@progress(openCount + closedCount, closedCount, true)
|
||||
</div>
|
||||
</div>
|
||||
@if(milestone.description.isDefined){
|
||||
|
||||
@@ -1,15 +1,6 @@
|
||||
@(total: Int, progress: Int, showPercentage: Boolean)
|
||||
@(total: Int, progress: Int)
|
||||
<div class="milestone-progress">
|
||||
@if(progress > 0){
|
||||
<span class="milestone-progress" style="width: @((progress.toDouble / total.toDouble * 100).toInt)%;"></span>
|
||||
}
|
||||
@if(showPercentage){
|
||||
<span class="milestone-percentage">
|
||||
@if(progress == 0){
|
||||
0%
|
||||
} else {
|
||||
@((progress.toDouble / total.toDouble * 100).toInt)%
|
||||
}
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -688,8 +688,7 @@ span.milestone-alert {
|
||||
}
|
||||
|
||||
a.milestone-title {
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
font-size: 180%;
|
||||
}
|
||||
|
||||
div.milestone-description {
|
||||
@@ -697,13 +696,12 @@ div.milestone-description {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
div.milestone-menu {
|
||||
font-size: 80%;
|
||||
a.milestone-title {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div.milestone-menu a {
|
||||
margin-left: 8px;
|
||||
font-weight: bold;
|
||||
div.milestone-menu {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
div.milestone-menu a.delete {
|
||||
@@ -742,11 +740,6 @@ span.milestone-progress {
|
||||
-moz-border-radius: 4px;
|
||||
}
|
||||
|
||||
span.milestone-percentage {
|
||||
position: absolute;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
div.issue-header {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
|
||||
Reference in New Issue
Block a user