diff --git a/src/main/scala/app/WikiController.scala b/src/main/scala/app/WikiController.scala index c18c473..617ab5e 100644 --- a/src/main/scala/app/WikiController.scala +++ b/src/main/scala/app/WikiController.scala @@ -80,10 +80,10 @@ val loginAccount = context.loginAccount.get saveWikiPage(repository.owner, repository.name, form.currentPageName, form.pageName, - form.content, loginAccount, form.message.getOrElse("")) - - updateLastActivityDate(repository.owner, repository.name) - recordEditWikiPageActivity(repository.owner, repository.name, loginAccount.userName, form.pageName) + form.content, loginAccount, form.message.getOrElse("")).map { commitId => + updateLastActivityDate(repository.owner, repository.name) + recordEditWikiPageActivity(repository.owner, repository.name, loginAccount.userName, form.pageName, commitId) + } redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(form.pageName)}") }) diff --git a/src/main/scala/service/ActivityService.scala b/src/main/scala/service/ActivityService.scala index 0e5dbba..50d0b0d 100644 --- a/src/main/scala/service/ActivityService.scala +++ b/src/main/scala/service/ActivityService.scala @@ -87,11 +87,11 @@ Some(pageName), currentDate) - def recordEditWikiPageActivity(userName: String, repositoryName: String, activityUserName: String, pageName: String) = + def recordEditWikiPageActivity(userName: String, repositoryName: String, activityUserName: String, pageName: String, commitId: String) = Activities.autoInc insert(userName, repositoryName, activityUserName, "edit_wiki", s"[user:${activityUserName}] edited the [repo:${userName}/${repositoryName}] wiki", - Some(pageName), + Some(pageName + ":" + commitId), currentDate) def recordPushActivity(userName: String, repositoryName: String, activityUserName: String, diff --git a/src/main/scala/service/WikiService.scala b/src/main/scala/service/WikiService.scala index 49f30aa..ae5e300 100644 --- a/src/main/scala/service/WikiService.scala +++ b/src/main/scala/service/WikiService.scala @@ -94,7 +94,7 @@ * Save the wiki page. */ def saveWikiPage(owner: String, repository: String, currentPageName: String, newPageName: String, - content: String, committer: model.Account, message: String): Unit = { + content: String, committer: model.Account, message: String): Option[String] = { LockUtil.lock(s"${owner}/${repository}/wiki"){ // clone working copy @@ -122,8 +122,11 @@ // commit and push if(added || deleted){ - git.commit.setCommitter(committer.userName, committer.mailAddress).setMessage(message).call + val commit = git.commit.setCommitter(committer.userName, committer.mailAddress).setMessage(message).call git.push.call + Some(commit.getName) + } else { + None } } } diff --git a/src/main/twirl/helper/activities.scala.html b/src/main/twirl/helper/activities.scala.html index 118909f..395920d 100644 --- a/src/main/twirl/helper/activities.scala.html +++ b/src/main/twirl/helper/activities.scala.html @@ -38,9 +38,17 @@ } case "edit_wiki" => customActivity(activity, "activity-wiki.png"){ -
+ activity.additionalInfo.get.split(":") match { + case Array(pageName, commitId) => + + case Array(pageName) => + + } } })