mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-01 19:15:59 +01:00
Fix image files presentation at blob view and diff view.
This commit is contained in:
@@ -1,14 +1,22 @@
|
||||
package util
|
||||
|
||||
import org.apache.commons.io.FilenameUtils
|
||||
import java.net.URLConnection
|
||||
|
||||
object FileTypeUtil {
|
||||
|
||||
def isImage(name: String): Boolean = FilenameUtils.getExtension(name).toLowerCase match {
|
||||
case "jpg"|"jpeg"|"bmp"|"gif"|"png" => true
|
||||
case _ => false
|
||||
def getMimeType(name: String): String = {
|
||||
val fileNameMap = URLConnection.getFileNameMap()
|
||||
val mimeType = fileNameMap.getContentTypeFor(name)
|
||||
if(mimeType == null){
|
||||
"application/octeat-stream"
|
||||
} else {
|
||||
mimeType
|
||||
}
|
||||
}
|
||||
|
||||
def isImage(name: String): Boolean = getMimeType(name).startsWith("image/")
|
||||
|
||||
def isLarge(size: Long): Boolean = (size > 1024 * 1000)
|
||||
|
||||
}
|
||||
@@ -402,9 +402,13 @@ object JGitUtil {
|
||||
|
||||
import scala.collection.JavaConverters._
|
||||
git.diff.setNewTree(newTreeIter).setOldTree(oldTreeIter).call.asScala.map { diff =>
|
||||
DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath,
|
||||
if(FileTypeUtil.isImage(diff.getOldPath) || FileTypeUtil.isImage(diff.getNewPath)){
|
||||
DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath, None, None)
|
||||
} else {
|
||||
DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath,
|
||||
JGitUtil.getContent(git, diff.getOldId.toObjectId, false).map(new String(_, "UTF-8")),
|
||||
JGitUtil.getContent(git, diff.getNewId.toObjectId, false).map(new String(_, "UTF-8")))
|
||||
}
|
||||
}.toList
|
||||
} else {
|
||||
// initial commit
|
||||
|
||||
@@ -24,11 +24,12 @@
|
||||
<tr>
|
||||
<td>
|
||||
@if(diff.newContent != None || diff.oldContent != None){
|
||||
<div id="diff-@i"></div>
|
||||
<textarea id="newText-@i" style="display: none;">@diff.newContent.getOrElse("")</textarea>
|
||||
<textarea id="oldText-@i" style="display: none;">@diff.oldContent.getOrElse("")</textarea>
|
||||
<div id="diff-@i"></div>
|
||||
<textarea id="newText-@i" style="display: none;">@diff.newContent.getOrElse("")</textarea>
|
||||
<textarea id="oldText-@i" style="display: none;">@diff.oldContent.getOrElse("")</textarea>
|
||||
} else {
|
||||
Too big file not shown
|
||||
Not supported
|
||||
@*Too big file not shown*@
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
Reference in New Issue
Block a user