mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 22:45:51 +01:00
(refs #464)Add Fragment rendering support for Ajax
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
import java.sql.PreparedStatement
|
import java.sql.PreparedStatement
|
||||||
|
import play.twirl.api.Html
|
||||||
import util.ControlUtil._
|
import util.ControlUtil._
|
||||||
import scala.collection.mutable.ListBuffer
|
import scala.collection.mutable.ListBuffer
|
||||||
|
|
||||||
package object plugin {
|
package object plugin {
|
||||||
|
|
||||||
case class Redirect(path: String)
|
case class Redirect(path: String)
|
||||||
|
case class Fragment(html: Html)
|
||||||
|
|
||||||
object db {
|
object db {
|
||||||
// TODO labelled place holder support
|
// TODO labelled place holder support
|
||||||
|
|||||||
@@ -7,10 +7,9 @@ import play.twirl.api.Html
|
|||||||
import service.{AccountService, RepositoryService, SystemSettingsService}
|
import service.{AccountService, RepositoryService, SystemSettingsService}
|
||||||
import model.{Account, Session}
|
import model.{Account, Session}
|
||||||
import util.{JGitUtil, Keys}
|
import util.{JGitUtil, Keys}
|
||||||
import plugin.PluginConnectionHolder
|
import plugin.{Fragment, PluginConnectionHolder, Redirect}
|
||||||
import service.RepositoryService.RepositoryInfo
|
import service.RepositoryService.RepositoryInfo
|
||||||
import plugin.Security._
|
import plugin.Security._
|
||||||
import plugin.Redirect
|
|
||||||
|
|
||||||
class PluginActionInvokeFilter extends Filter with SystemSettingsService with RepositoryService with AccountService {
|
class PluginActionInvokeFilter extends Filter with SystemSettingsService with RepositoryService with AccountService {
|
||||||
|
|
||||||
@@ -50,6 +49,7 @@ class PluginActionInvokeFilter extends Filter with SystemSettingsService with Re
|
|||||||
result match {
|
result match {
|
||||||
case x: String => renderGlobalHtml(request, response, context, x)
|
case x: String => renderGlobalHtml(request, response, context, x)
|
||||||
case x: Html => renderGlobalHtml(request, response, context, x.toString)
|
case x: Html => renderGlobalHtml(request, response, context, x.toString)
|
||||||
|
case x: Fragment => renderFragmentHtml(request, response, context, x.html.toString)
|
||||||
case x: Redirect => response.sendRedirect(x.path)
|
case x: Redirect => response.sendRedirect(x.path)
|
||||||
case x: AnyRef => renderJson(request, response, x)
|
case x: AnyRef => renderJson(request, response, x)
|
||||||
}
|
}
|
||||||
@@ -84,6 +84,7 @@ class PluginActionInvokeFilter extends Filter with SystemSettingsService with Re
|
|||||||
result match {
|
result match {
|
||||||
case x: String => renderRepositoryHtml(request, response, context, repository, x)
|
case x: String => renderRepositoryHtml(request, response, context, repository, x)
|
||||||
case x: Html => renderGlobalHtml(request, response, context, x.toString)
|
case x: Html => renderGlobalHtml(request, response, context, x.toString)
|
||||||
|
case x: Fragment => renderFragmentHtml(request, response, context, x.html.toString)
|
||||||
case x: Redirect => response.sendRedirect(x.path)
|
case x: Redirect => response.sendRedirect(x.path)
|
||||||
case x: AnyRef => renderJson(request, response, x)
|
case x: AnyRef => renderJson(request, response, x)
|
||||||
}
|
}
|
||||||
@@ -156,6 +157,11 @@ class PluginActionInvokeFilter extends Filter with SystemSettingsService with Re
|
|||||||
IOUtils.write(html.toString.getBytes("UTF-8"), response.getOutputStream)
|
IOUtils.write(html.toString.getBytes("UTF-8"), response.getOutputStream)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private def renderFragmentHtml(request: HttpServletRequest, response: HttpServletResponse, context: app.Context, body: String): Unit = {
|
||||||
|
response.setContentType("text/html; charset=UTF-8")
|
||||||
|
IOUtils.write(body.getBytes("UTF-8"), response.getOutputStream)
|
||||||
|
}
|
||||||
|
|
||||||
private def renderJson(request: HttpServletRequest, response: HttpServletResponse, obj: AnyRef): Unit = {
|
private def renderJson(request: HttpServletRequest, response: HttpServletResponse, obj: AnyRef): Unit = {
|
||||||
import org.json4s._
|
import org.json4s._
|
||||||
import org.json4s.jackson.Serialization
|
import org.json4s.jackson.Serialization
|
||||||
|
|||||||
Reference in New Issue
Block a user