Fix activities template (#2969)

This commit is contained in:
Naoki Takezoe
2022-01-16 03:38:16 +09:00
committed by GitHub
parent b41de4a770
commit 452e41603a
2 changed files with 77 additions and 56 deletions

View File

@@ -212,19 +212,19 @@ object helpers extends AvatarImageProvider with LinkConverter with RequestCache
Html(
message
.replaceAll("\\[issue:([^\\s]+?)/([^\\s]+?)#((\\d+))\\]"){ m =>
val issue = getIssueFromCache(m.group(1), m.group(2), m.group(3))
if (issue.isDefined) {
s"""<a href="${context.path}/${m.group(1)}/${m.group(2)}/issues/${m.group(3)}" title="${issue.get.title}">${m.group(1)}/${m.group(2)}#${m.group(3)}</a>"""
} else {
s"${m.group(1)}/${m.group(2)}#${m.group(3)}"
getIssueFromCache(m.group(1), m.group(2), m.group(3)) match {
case Some(issue) =>
s"""<a href="${context.path}/${m.group(1)}/${m.group(2)}/issues/${m.group(3)}" title="${StringUtil.escapeHtml(issue.title)}">${m.group(1)}/${m.group(2)}#${m.group(3)}</a>"""
case None =>
s"${m.group(1)}/${m.group(2)}#${m.group(3)}"
}
}
.replaceAll("\\[pullreq:([^\\s]+?)/([^\\s]+?)#((\\d+))\\]"){ m =>
val pullreq = getIssueFromCache(m.group(1), m.group(2), m.group(3))
if (pullreq.isDefined) {
s"""<a href="${context.path}/${m.group(1)}/${m.group(2)}/pull/${m.group(3)}" title="${pullreq.get.title}">${m.group(1)}/${m.group(2)}#${m.group(3)}</a>"""
} else {
s"${m.group(1)}/${m.group(2)}#${m.group(3)}"
getIssueFromCache(m.group(1), m.group(2), m.group(3)) match {
case Some(pullreq) =>
s"""<a href="${context.path}/${m.group(1)}/${m.group(2)}/pull/${m.group(3)}" title="${StringUtil.escapeHtml(pullreq.title)}">${m.group(1)}/${m.group(2)}#${m.group(3)}</a>"""
case None =>
s"${m.group(1)}/${m.group(2)}#${m.group(3)}"
}
}
.replaceAll("\\[repo:([^\\s]+?)/([^\\s]+?)\\]") { m =>

View File

@@ -24,57 +24,15 @@
case "create_tag" => simpleActivity(activity)
case "delete_tag" => simpleActivity(activity)
case "fork" => simpleActivity(activity)
case "push" => customActivity(activity){
<div class="small activity-message">
{activity.additionalInfo.get.split("\n").reverse.take(4).zipWithIndex.map{ case (commit, i) =>
if(i == 3){
<div>...</div>
} else {
if(commit.nonEmpty){
<div>
<a href={s"${context.path}/${activity.userName}/${activity.repositoryName}/commit/${commit. substring(0, 40)}"} class="monospace">{commit.substring(0, 7)}</a>
<span>{commit.substring(41)}</span>
</div>
}
}
}}
</div>
}
case "create_wiki" => customActivity(activity){
<div class="small activity-message">
Created <a href={s"${context.path}/${activity.userName}/${activity.repositoryName}/wiki/${activity.additionalInfo.get}"}>{activity.additionalInfo.get}</a>.
</div>
}
case "edit_wiki" => customActivity(activity){
activity.additionalInfo.get.split(":") match {
case Array(pageName, commitId) =>
<div class="small activity-message">
Edited <a href={s"${context.path}/${activity.userName}/${activity.repositoryName}/wiki/${pageName}"}>{pageName}</a>.
<a href={s"${context.path}/${activity.userName}/${activity.repositoryName}/wiki/${pageName}/_compare/${commitId.substring(0, 7)}^...${commitId.substring(0, 7)}"}>View the diff »</a>
</div>
case Array(pageName) =>
<div class="small activity-message">
Edited <a href={s"${context.path}/${activity.userName}/${activity.repositoryName}/wiki/${pageName}"}>{pageName}</a>.
</div>
}
}
case "delete_wiki" => simpleActivity(activity)
case "push" => pushActivity(activity)
case "create_wiki" => createWikiActivity(activity)
case "edit_wiki" => editWikiActivity(activity)
case "delete_wiki" => simpleActivity(activity)
})
</div>
}
}
@customActivity(activity: gitbucket.core.model.Activity)(additionalInfo: Any) = {
<div>
<div class="muted small">@gitbucket.core.helper.html.datetimeago(activity.activityDate)</div>
<div class="strong">
@helpers.avatarLink(activity.activityUserName, 16)
@helpers.activityMessage(activity.message)
</div>
@additionalInfo
</div>
}
@simpleActivity(activity: gitbucket.core.model.Activity) = {
<div>
<span class="muted small">@gitbucket.core.helper.html.datetimeago(activity.activityDate)</span>
@@ -85,3 +43,66 @@
</div>
}
@pushActivity(activity: gitbucket.core.model.Activity) = {
<div>
<div class="muted small">@gitbucket.core.helper.html.datetimeago(activity.activityDate)</div>
<div class="strong">
@helpers.avatarLink(activity.activityUserName, 16)
@helpers.activityMessage(activity.message)
</div>
<div class="small activity-message">
@activity.additionalInfo.get.split("\n").reverse.take(4).zipWithIndex.map { case (commit, i) =>
@if(i == 3){
<div>...</div>
} else {
@if(commit.nonEmpty){
<div>
<a href="@{context.path}/@{activity.userName}/@{activity.repositoryName}/commit/@{commit. substring(0, 40)}" class="monospace">@{commit.substring(0, 7)}</a>
<span>@{commit.substring(41)}</span>
</div>
}
}
}
</div>
</div>
}
@createWikiActivity(activity: gitbucket.core.model.Activity) = {
<div>
<div class="muted small">@gitbucket.core.helper.html.datetimeago(activity.activityDate)</div>
<div class="strong">
@helpers.avatarLink(activity.activityUserName, 16)
@helpers.activityMessage(activity.message)
</div>
<div class="small activity-message">
Created <a href="@{context.path}/@{activity.userName}/@{activity.repositoryName}/wiki/@{activity.additionalInfo}">@{activity.additionalInfo}</a>.
</div>
</div>
}
@editWikiActivity(activity: gitbucket.core.model.Activity) = {
<div>
<div class="muted small">@gitbucket.core.helper.html.datetimeago(activity.activityDate)</div>
<div class="strong">
@helpers.avatarLink(activity.activityUserName, 16)
@helpers.activityMessage(activity.message)
</div>
@defining(activity.additionalInfo.get.split(":")){ additionalInfo =>
@if(additionalInfo.length == 2) {
@defining((additionalInfo(0), additionalInfo(1))) { case (pageName, commitId) =>
<div class="small activity-message">
Edited <a href="@{context.path}/@{activity.userName}/@{activity.repositoryName}/wiki/@pageName">@pageName</a>.
<a href="@{context.path}/@{activity.userName}/@{activity.repositoryName}/wiki/@{pageName}/_compare/@{commitId.substring(0, 7)}^...@{commitId.substring(0, 7)}">View the diff »</a>
</div>
}
}
@if(additionalInfo.length == 1) {
@defining(additionalInfo(0)) { pageName =>
<div class="small activity-message">
Edited <a href="@{context.path}/@{activity.userName}/@{activity.repositoryName}/wiki/@{pageName}">@pageName</a>.
</div>
}
}
}
</div>
}