mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 13:35:50 +01:00
Fix commit message for Wiki editing.
This commit is contained in:
@@ -108,15 +108,14 @@ trait WikiControllerBase extends ControllerBase with FlashMapSupport {
|
|||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/wiki/_edit", editForm)(collaboratorsOnly { (form, repository) =>
|
post("/:owner/:repository/wiki/_edit", editForm)(collaboratorsOnly { (form, repository) =>
|
||||||
val loginAccount = context.loginAccount.get
|
defining(context.loginAccount.get){ loginAccount =>
|
||||||
|
saveWikiPage(repository.owner, repository.name, form.currentPageName, form.pageName,
|
||||||
saveWikiPage(repository.owner, repository.name, form.currentPageName, form.pageName,
|
form.content, loginAccount, form.message.getOrElse("")).map { commitId =>
|
||||||
form.content, loginAccount, form.message.getOrElse("")).map { commitId =>
|
updateLastActivityDate(repository.owner, repository.name)
|
||||||
updateLastActivityDate(repository.owner, repository.name)
|
recordEditWikiPageActivity(repository.owner, repository.name, loginAccount.userName, form.pageName, commitId)
|
||||||
recordEditWikiPageActivity(repository.owner, repository.name, loginAccount.userName, form.pageName, commitId)
|
}
|
||||||
|
redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(form.pageName)}")
|
||||||
}
|
}
|
||||||
|
|
||||||
redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(form.pageName)}")
|
|
||||||
})
|
})
|
||||||
|
|
||||||
get("/:owner/:repository/wiki/_new")(collaboratorsOnly {
|
get("/:owner/:repository/wiki/_new")(collaboratorsOnly {
|
||||||
@@ -124,25 +123,26 @@ trait WikiControllerBase extends ControllerBase with FlashMapSupport {
|
|||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/wiki/_new", newForm)(collaboratorsOnly { (form, repository) =>
|
post("/:owner/:repository/wiki/_new", newForm)(collaboratorsOnly { (form, repository) =>
|
||||||
val loginAccount = context.loginAccount.get
|
defining(context.loginAccount.get){ loginAccount =>
|
||||||
|
saveWikiPage(repository.owner, repository.name, form.currentPageName, form.pageName,
|
||||||
|
form.content, loginAccount, form.message.getOrElse(""))
|
||||||
|
|
||||||
saveWikiPage(repository.owner, repository.name, form.currentPageName, form.pageName,
|
updateLastActivityDate(repository.owner, repository.name)
|
||||||
form.content, context.loginAccount.get, form.message.getOrElse(""))
|
recordCreateWikiPageActivity(repository.owner, repository.name, loginAccount.userName, form.pageName)
|
||||||
|
|
||||||
updateLastActivityDate(repository.owner, repository.name)
|
redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(form.pageName)}")
|
||||||
recordCreateWikiPageActivity(repository.owner, repository.name, loginAccount.userName, form.pageName)
|
}
|
||||||
|
|
||||||
redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(form.pageName)}")
|
|
||||||
})
|
})
|
||||||
|
|
||||||
get("/:owner/:repository/wiki/:page/_delete")(collaboratorsOnly { repository =>
|
get("/:owner/:repository/wiki/:page/_delete")(collaboratorsOnly { repository =>
|
||||||
val pageName = StringUtil.urlDecode(params("page"))
|
val pageName = StringUtil.urlDecode(params("page"))
|
||||||
val account = context.loginAccount.get
|
|
||||||
|
|
||||||
deleteWikiPage(repository.owner, repository.name, pageName, account.userName, account.mailAddress, s"Delete ${pageName}")
|
defining(context.loginAccount.get){ loginAccount =>
|
||||||
updateLastActivityDate(repository.owner, repository.name)
|
deleteWikiPage(repository.owner, repository.name, pageName, loginAccount.userName, loginAccount.mailAddress, s"Destroyed ${pageName}")
|
||||||
|
updateLastActivityDate(repository.owner, repository.name)
|
||||||
|
|
||||||
redirect(s"/${repository.owner}/${repository.name}/wiki")
|
redirect(s"/${repository.owner}/${repository.name}/wiki")
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
get("/:owner/:repository/wiki/_pages")(referrersOnly { repository =>
|
get("/:owner/:repository/wiki/_pages")(referrersOnly { repository =>
|
||||||
|
|||||||
@@ -153,6 +153,9 @@ trait WikiService {
|
|||||||
// write as file
|
// write as file
|
||||||
using(Git.open(workDir)){ git =>
|
using(Git.open(workDir)){ git =>
|
||||||
defining(new File(workDir, newPageName + ".md")){ file =>
|
defining(new File(workDir, newPageName + ".md")){ file =>
|
||||||
|
val created = !file.exists
|
||||||
|
|
||||||
|
// created or updated
|
||||||
val added = executeIf(!file.exists || FileUtils.readFileToString(file, "UTF-8") != content){
|
val added = executeIf(!file.exists || FileUtils.readFileToString(file, "UTF-8") != content){
|
||||||
FileUtils.writeStringToFile(file, content, "UTF-8")
|
FileUtils.writeStringToFile(file, content, "UTF-8")
|
||||||
git.add.addFilepattern(file.getName).call
|
git.add.addFilepattern(file.getName).call
|
||||||
@@ -165,7 +168,18 @@ trait WikiService {
|
|||||||
|
|
||||||
// commit and push
|
// commit and push
|
||||||
optionIf(added || deleted){
|
optionIf(added || deleted){
|
||||||
defining(git.commit.setCommitter(committer.userName, committer.mailAddress).setMessage(message).call){ commit =>
|
defining(git.commit.setCommitter(committer.userName, committer.mailAddress)
|
||||||
|
.setMessage(if(message.trim.length == 0){
|
||||||
|
if(deleted){
|
||||||
|
s"Rename ${currentPageName} to ${newPageName}"
|
||||||
|
} else if(created){
|
||||||
|
s"Created ${newPageName}"
|
||||||
|
} else {
|
||||||
|
s"Updated ${newPageName}"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
message
|
||||||
|
}).call){ commit =>
|
||||||
git.push.call
|
git.push.call
|
||||||
Some(commit.getName)
|
Some(commit.getName)
|
||||||
}
|
}
|
||||||
@@ -193,7 +207,7 @@ trait WikiService {
|
|||||||
git.rm.addFilepattern(pageName + ".md").call
|
git.rm.addFilepattern(pageName + ".md").call
|
||||||
|
|
||||||
// commit and push
|
// commit and push
|
||||||
git.commit.setAuthor(committer, mailAddress).setMessage(message).call
|
git.commit.setCommitter(committer, mailAddress).setMessage(message).call
|
||||||
git.push.call
|
git.push.call
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user