mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-03 03:55:58 +01:00
Milestone deletion is available.
This commit is contained in:
@@ -148,4 +148,18 @@ trait IssuesControllerBase extends ControllerBase {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
get("/:owner/:repository/issues/milestones/:milestoneId/delete")(writableRepository {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val milestoneId = params("milestoneId").toInt
|
||||
|
||||
getMilestone(owner, repository, milestoneId) match {
|
||||
case None => NotFound()
|
||||
case Some(m) => {
|
||||
deleteMilestone(owner, repository, milestoneId)
|
||||
redirect("/%s/%s/issues/milestones".format(owner, repository))
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -65,6 +65,17 @@ trait IssuesService {
|
||||
milestone.dueDate,
|
||||
milestone.closedDate)
|
||||
|
||||
def deleteMilestone(owner: String, repository: String, milestoneId: Int): Unit = {
|
||||
Query(Issues)
|
||||
.filter { i => (i.userName is owner.bind) && (i.repositoryName is repository.bind) && (i.milestoneId is milestoneId.bind)}
|
||||
.map { i => i.milestoneId.? }
|
||||
.update(None)
|
||||
|
||||
Query(Milestones)
|
||||
.filter { i => (i.userName is owner.bind) && (i.repositoryName is repository.bind) && (i.milestoneId is milestoneId.bind)}
|
||||
.delete
|
||||
}
|
||||
|
||||
def getMilestone(owner: String, repository: String, milestoneId: Int): Option[Milestone] =
|
||||
Query(Milestones)
|
||||
.filter(m => (m.userName is owner.bind) && (m.repositoryName is repository.bind) && (m.milestoneId is milestoneId.bind))
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
} else {
|
||||
<a href="@path/@repository.owner/@repository.name/issues/milestones/@milestone.milestoneId/close">Close</a>
|
||||
}
|
||||
<a href="" class="delete">Delete</a>
|
||||
<a href="@path/@repository.owner/@repository.name/issues/milestones/@milestone.milestoneId/delete" class="delete">Delete</a>
|
||||
}
|
||||
<a href="">Browse issues</a>
|
||||
</div>
|
||||
@@ -86,6 +86,13 @@
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<script>
|
||||
$(function(){
|
||||
$('a.delete').click(function(){
|
||||
return confirm('Once you delete this milestone, there is no going back.\nAre you sure?');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<style type="text/css">
|
||||
a.milestone-title {
|
||||
font-size: 120%;
|
||||
|
||||
Reference in New Issue
Block a user