@** * Yona, 21st Century Project Hosting SW * * Copyright Yona & Yobi Authors & NAVER Corp. * https://yona.io **@ @import com.fasterxml.jackson.databind.node.ObjectNode @(project:Project, files:ObjectNode, branch:String, path:String) @import utils.TemplateHelper._ @import utils.TemplateHelper.CodeBrowser._ @import java.net.URLEncoder @import utils.Markdown @import utils.LineEnding @getRevIdString(revId:String) = @{ if(project.vcs.equalsIgnoreCase("git")) { branchItemName(branch) } else { revId } } @getLineEndingtype() = @{ if(!files.get("isBinary").booleanValue()){ LineEnding.findLineEnding(fieldText(files, "data")) } } @defining(path.substring(path.lastIndexOf("/") + 1)) { fileName => @defining(getFileRev(project.vcs, files)) { revId=> @defining(routes.CodeApp.showRawFile(project.owner, project.name, revId, path)) { filePath => @defining(getRevIdString(revId)){ revIdString => @defining(routes.CodeApp.openFile(project.owner, project.name, revIdString, path)) { pathToOpenFile =>
@if(!files.get("isBinary").booleanValue()){ Raw @if(!UserApp.currentUser().isAnonymous) { Edit } } @Messages("code.open") @Messages("code.history")
@** Binary File **@ @if(files.get("isBinary").booleanValue()){ @if(fieldText(files, "mimeType").indexOf("image/") == 0){
} else {

@fileName
@fieldText(files, "size")
@Messages("button.download")

} } else { @** Text(Code) **@ @defining(files.get("data")) { data => @data match { case null if files.get("size") != null && files.get("size").intValue > 0 => {

@Messages("code.tooBigFileForCodeBrowser", playRepository.PlayRepository.MAX_FILE_SIZE_CAN_BE_VIEWED) @if(UserApp.currentUser.isSiteManager) {
@Messages("code.looseFileSizeLimitForCodeBrowser") }
@Messages("code.viewRaw")

} case _ => { @if(isMarkdownExtension(path)) {
@if(files.get("data") != null){ @Html(Markdown.renderFileInCodeBrowser(fieldText(files, "data"), project)) }
} else {

          }
        }
      }
    }
    }
} } } } } @common.markdown(project)