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