mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-02 19:45:57 +01:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -115,6 +115,16 @@ trait IssuesControllerBase extends ControllerBase {
|
||||
redirect("/%s/%s/issues/_data/%d".format(owner, repository, issueId))
|
||||
}
|
||||
|
||||
// TODO Authenticator
|
||||
ajaxPost("/:owner/:repository/issues/:id/label/:labelId/new"){
|
||||
"TODO Insert!"
|
||||
}
|
||||
|
||||
// TODO Authenticator
|
||||
ajaxPost("/:owner/:repository/issues/:id/label/:labelId/delete"){
|
||||
"TODO Delete!"
|
||||
}
|
||||
|
||||
// TODO requires users only and readable repository checking
|
||||
post("/:owner/:repository/issue_comments/new", commentForm)( usersOnly { form =>
|
||||
val owner = params("owner")
|
||||
|
||||
@@ -179,9 +179,12 @@ trait IssuesService {
|
||||
.update (id) > 0
|
||||
} get
|
||||
|
||||
def registerIssueLabel(owner: String, repository: String, issueId: Int, labelId: Int): Unit =
|
||||
def registerIssueLabel(owner: String, repository: String, issueId: Int, labelId: Int) =
|
||||
IssueLabels insert (IssueLabel(owner, repository, issueId, labelId))
|
||||
|
||||
def deleteIssueLabel(owner: String, repository: String, issueId: Int, labelId: Int) =
|
||||
IssueLabels filter(_.byPrimaryKey(owner, repository, issueId, labelId)) delete
|
||||
|
||||
def createComment(owner: String, repository: String, loginUser: String,
|
||||
issueId: Int, content: String, action: Option[String]) =
|
||||
IssueComments.autoInc insert (
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
<ul class="dropdown-menu">
|
||||
@labels.map { label =>
|
||||
<li>
|
||||
<a href="#">
|
||||
<a href="#" class="toggle-label" data-label-id="@label.labelId">
|
||||
<i class="@{if(issueLabels.exists(_.labelId == label.labelId)) "icon-ok" else "icon-white"}"></i>
|
||||
<span class="label" style="background-color: #@label.color;"> </span>
|
||||
@label.labelName
|
||||
@@ -125,9 +125,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<ul class="label-list">
|
||||
@issueLabels.map { label =>
|
||||
<li><span class="label" style="background-color: #@label.color;">@label.labelName</span></li>
|
||||
}
|
||||
@labellist(issueLabels)
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -189,5 +187,25 @@ $(function(){
|
||||
$('#action').click(function(){
|
||||
$('<input type="hidden">').attr('name', 'action').val($(this).val().toLowerCase()).appendTo('form');
|
||||
});
|
||||
|
||||
$('a.toggle-label').click(function(){
|
||||
var url = '@url(repository)/issues/@issue.issueId/label/' + $(this).data('label-id');
|
||||
var icon;
|
||||
var i = $(this).children('i');
|
||||
if(i.hasClass('icon-ok')){
|
||||
url += '/delete';
|
||||
icon = 'icon-white';
|
||||
} else {
|
||||
url += '/new';
|
||||
icon = 'icon-ok';
|
||||
}
|
||||
$.post(url,
|
||||
function(data){
|
||||
i.removeClass().addClass(icon);
|
||||
// TODO label sort
|
||||
alert(data);
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
4
src/main/twirl/issues/labellist.scala.html
Normal file
4
src/main/twirl/issues/labellist.scala.html
Normal file
@@ -0,0 +1,4 @@
|
||||
@(issueLabels: List[model.Label])
|
||||
@issueLabels.map { label =>
|
||||
<li><span class="label" style="background-color: #@label.color;">@label.labelName</span></li>
|
||||
}
|
||||
Reference in New Issue
Block a user