mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-10 07:25:50 +01:00
Finished the issues controller refactoring.
This commit is contained in:
@@ -201,58 +201,60 @@ trait IssuesControllerBase extends ControllerBase {
|
|||||||
})
|
})
|
||||||
|
|
||||||
ajaxPost("/:owner/:repository/issues/:id/assign")(collaboratorsOnly { repository =>
|
ajaxPost("/:owner/:repository/issues/:id/assign")(collaboratorsOnly { repository =>
|
||||||
updateAssignedUserName(repository.owner, repository.name, params("id").toInt,
|
updateAssignedUserName(repository.owner, repository.name, params("id").toInt, assignedUserName("assignedUserName"))
|
||||||
params.get("assignedUserName") filter (_.trim != ""))
|
|
||||||
Ok("updated")
|
Ok("updated")
|
||||||
})
|
})
|
||||||
|
|
||||||
ajaxPost("/:owner/:repository/issues/:id/milestone")(collaboratorsOnly { repository =>
|
ajaxPost("/:owner/:repository/issues/:id/milestone")(collaboratorsOnly { repository =>
|
||||||
updateMilestoneId(repository.owner, repository.name, params("id").toInt,
|
updateMilestoneId(repository.owner, repository.name, params("id").toInt, milestoneId("milestoneId"))
|
||||||
params.get("milestoneId") collect { case x if x.trim != "" => x.toInt })
|
|
||||||
Ok("updated")
|
Ok("updated")
|
||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/issues/batchedit/state")(collaboratorsOnly { repository =>
|
post("/:owner/:repository/issues/batchedit/state")(collaboratorsOnly { repository =>
|
||||||
val action = params.get("value")
|
val action = params.get("value")
|
||||||
params("checked").split(',') foreach { issueId =>
|
|
||||||
handleComment(issueId.toInt, None, repository)( _ => action)
|
executeBatch(repository) {
|
||||||
|
handleComment(_, None, repository)( _ => action)
|
||||||
}
|
}
|
||||||
redirect("/%s/%s/issues".format(repository.owner, repository.name))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/issues/batchedit/label")(collaboratorsOnly { repository =>
|
post("/:owner/:repository/issues/batchedit/label")(collaboratorsOnly { repository =>
|
||||||
val owner = repository.owner
|
val labelId = params("value").toInt
|
||||||
val name = repository.name
|
|
||||||
|
|
||||||
params.get("value").map(_.toInt) map { labelId =>
|
executeBatch(repository) { issueId =>
|
||||||
params("checked").split(',') foreach { issueId =>
|
getIssueLabel(repository.owner, repository.name, issueId, labelId) getOrElse {
|
||||||
getIssueLabel(owner, name, issueId.toInt, labelId) getOrElse {
|
registerIssueLabel(repository.owner, repository.name, issueId, labelId)
|
||||||
registerIssueLabel(owner, name, issueId.toInt, labelId)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
redirect("/%s/%s/issues".format(owner, name))
|
|
||||||
} getOrElse NotFound
|
|
||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/issues/batchedit/assign")(collaboratorsOnly { repository =>
|
post("/:owner/:repository/issues/batchedit/assign")(collaboratorsOnly { repository =>
|
||||||
params("checked").split(',') foreach { issueId =>
|
val value = assignedUserName("value")
|
||||||
updateAssignedUserName(repository.owner, repository.name, issueId.toInt,
|
|
||||||
params.get("value") filter (_.trim != ""))
|
executeBatch(repository) {
|
||||||
|
updateAssignedUserName(repository.owner, repository.name, _, value)
|
||||||
}
|
}
|
||||||
redirect("/%s/%s/issues".format(repository.owner, repository.name))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/issues/batchedit/milestone")(collaboratorsOnly { repository =>
|
post("/:owner/:repository/issues/batchedit/milestone")(collaboratorsOnly { repository =>
|
||||||
params("checked").split(',') foreach { issueId =>
|
val value = milestoneId("value")
|
||||||
updateMilestoneId(repository.owner, repository.name, issueId.toInt,
|
|
||||||
params.get("value") collect { case x if x.trim != "" => x.toInt })
|
executeBatch(repository) {
|
||||||
|
updateMilestoneId(repository.owner, repository.name, _, value)
|
||||||
}
|
}
|
||||||
redirect("/%s/%s/issues".format(repository.owner, repository.name))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
val assignedUserName = (key: String) => params.get(key) filter (_.trim != "")
|
||||||
|
val milestoneId = (key: String) => params.get(key) collect { case x if x.trim != "" => x.toInt }
|
||||||
|
|
||||||
private def isEditable(owner: String, repository: String, author: String)(implicit context: app.Context): Boolean =
|
private def isEditable(owner: String, repository: String, author: String)(implicit context: app.Context): Boolean =
|
||||||
hasWritePermission(owner, repository, context.loginAccount) || author == context.loginAccount.get.userName
|
hasWritePermission(owner, repository, context.loginAccount) || author == context.loginAccount.get.userName
|
||||||
|
|
||||||
|
private def executeBatch(repository: RepositoryService.RepositoryInfo)(execute: Int => Unit) = {
|
||||||
|
params("checked").split(',') map(_.toInt) foreach execute
|
||||||
|
redirect("/%s/%s/issues".format(repository.owner, repository.name))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see
|
* @see
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user