Fix image files presentation at blob view and diff view.

This commit is contained in:
takezoe
2013-06-19 19:11:56 +09:00
parent 1f195f1cb1
commit ac03a3a68d
3 changed files with 21 additions and 8 deletions

View File

@@ -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)
} }

View File

@@ -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

View File

@@ -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>