Label editing is available!

This commit is contained in:
takezoe
2013-06-25 08:32:34 +09:00
parent ef24f780e4
commit 4f873d9296
3 changed files with 57 additions and 8 deletions

View File

@@ -36,7 +36,10 @@ trait LabelsControllerBase extends ControllerBase {
val owner = params("owner") val owner = params("owner")
val repository = params("repository") val repository = params("repository")
issues.html.labellist(getLabels(owner, repository), getRepository(owner, repository, baseUrl).get) getRepository(owner, repository, baseUrl) match {
case None => NotFound()
case Some(r) => issues.html.labellist(getLabels(owner, repository), r)
}
}) })
get("/:owner/:repository/issues/label/:labelId/edit")(writableRepository { get("/:owner/:repository/issues/label/:labelId/edit")(writableRepository {
@@ -44,9 +47,12 @@ trait LabelsControllerBase extends ControllerBase {
val repository = params("repository") val repository = params("repository")
val labelId = params("labelId").toInt val labelId = params("labelId").toInt
getLabel(owner, repository, labelId) match { getRepository(owner, repository, baseUrl) match {
case None => NotFound() case None => NotFound()
case Some(l) => issues.html.labeledit(Some(l), getRepository(owner, repository, baseUrl).get) case Some(r) => getLabel(owner, repository, labelId) match {
case None => NotFound()
case Some(l) => issues.html.labeledit(Some(l), r)
}
} }
}) })
@@ -55,9 +61,27 @@ trait LabelsControllerBase extends ControllerBase {
val repository = params("repository") val repository = params("repository")
val labelId = params("labelId").toInt val labelId = params("labelId").toInt
// createLabel(owner, repository, form.labelName, form.color.substring(1)) getRepository(owner, repository, baseUrl) match {
// case None => NotFound()
issues.html.labellist(getLabels(owner, repository), getRepository(owner, repository, baseUrl).get) case Some(r) => {
updateLabel(owner, repository, labelId, form.labelName, form.color.substring(1))
issues.html.labellist(getLabels(owner, repository), r)
}
}
})
get("/:owner/:repository/issues/label/:labelId/delete")(writableRepository {
val owner = params("owner")
val repository = params("repository")
val labelId = params("labelId").toInt
getRepository(owner, repository, baseUrl) match {
case None => NotFound()
case Some(r) => {
deleteLabel(owner, repository, labelId)
issues.html.labellist(getLabels(owner, repository), r)
}
}
}) })
} }

View File

@@ -24,4 +24,22 @@ trait LabelsService {
def createLabel(owner: String, repository: String, labelName: String, color: String): Unit = def createLabel(owner: String, repository: String, labelName: String, color: String): Unit =
Labels.ins insert (owner, repository, labelName, color) Labels.ins insert (owner, repository, labelName, color)
def updateLabel(owner: String, repository: String, labelId: Int, labelName: String, color: String): Unit =
Query(Labels)
.filter { l => (l.userName is owner.bind) && (l.repositoryName is repository.bind) && (l.labelId is labelId.bind)}
.map { l => l.labelName ~ l.color }
.update (labelName, color)
def deleteLabel(owner: String, repository: String, labelId: Int): Unit = {
// TODO delete ISSUE_LABEL
// 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(Labels)
.filter { i => (i.userName is owner.bind) && (i.repositoryName is repository.bind) && (i.labelId is labelId.bind)}
.delete
}
} }

View File

@@ -15,8 +15,15 @@
<script> <script>
$('i.icon-remove-circle').click(function(e){ $('i.icon-remove-circle').click(function(e){
e.stopPropagation(); e.stopPropagation();
// TODO Delete label if(confirm('Delete this label. Are you Sure?')){
alert('Delete this label. Are you Sure?'); $.get('@path/@repository.owner/@repository.name/issues/label/' + $(this).attr('labelId') + '/delete',
function(data){
var parent = $('#label-edit').parent();
$('#label-edit').remove();
parent.append(data);
}
);
}
}); });
$('a.label-edit-link').click(function(e){ $('a.label-edit-link').click(function(e){