Browse Source

serve video files using the HTML5 video tag (#3967)

pull/3781/merge
Nico Mandery 8 years ago committed by 无闻
parent
commit
adcb1d7c65
  1. 1
      conf/locale/locale_en-US.ini
  2. 4
      modules/base/tool.go
  3. 2
      routers/repo/view.go
  4. 4
      templates/repo/view_file.tmpl

1
conf/locale/locale_en-US.ini

@ -427,6 +427,7 @@ file_history = History
file_view_raw = View Raw file_view_raw = View Raw
file_permalink = Permalink file_permalink = Permalink
file_too_large = This file is too large to be shown file_too_large = This file is too large to be shown
video_not_supported_in_browser = Your browser doesn't support HTML5 video tag.
editor.new_file = New file editor.new_file = New file
editor.upload_file = Upload file editor.upload_file = Upload file

4
modules/base/tool.go

@ -533,3 +533,7 @@ func IsImageFile(data []byte) bool {
func IsPDFFile(data []byte) bool { func IsPDFFile(data []byte) bool {
return strings.Index(http.DetectContentType(data), "application/pdf") != -1 return strings.Index(http.DetectContentType(data), "application/pdf") != -1
} }
func IsVideoFile(data []byte) bool {
return strings.Index(http.DetectContentType(data), "video/") != -1
}

2
routers/repo/view.go

@ -198,6 +198,8 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st
case base.IsPDFFile(buf): case base.IsPDFFile(buf):
ctx.Data["IsPDFFile"] = true ctx.Data["IsPDFFile"] = true
case base.IsVideoFile(buf):
ctx.Data["IsVideoFile"] = true
case base.IsImageFile(buf): case base.IsImageFile(buf):
ctx.Data["IsImageFile"] = true ctx.Data["IsImageFile"] = true
} }

4
templates/repo/view_file.tmpl

@ -43,6 +43,10 @@
<div class="view-raw ui center"> <div class="view-raw ui center">
{{if .IsImageFile}} {{if .IsImageFile}}
<img src="{{EscapePound $.RawFileLink}}"> <img src="{{EscapePound $.RawFileLink}}">
{{else if .IsVideoFile}}
<video controls src="{{EscapePound $.RawFileLink}}">
<strong>{{.i18n.Tr "repo.video_not_supported_in_browser"}}</strong>
</video>
{{else if .IsPDFFile}} {{else if .IsPDFFile}}
<iframe width="100%" height="600px" src="{{AppSubUrl}}/plugins/pdfjs-1.4.20/web/viewer.html?file={{EscapePound $.RawFileLink}}"></iframe> <iframe width="100%" height="600px" src="{{AppSubUrl}}/plugins/pdfjs-1.4.20/web/viewer.html?file={{EscapePound $.RawFileLink}}"></iframe>
{{else}} {{else}}

Loading…
Cancel
Save