mirror of
				https://github.com/gitbucket/gitbucket.git
				synced 2025-10-31 18:46:28 +01:00 
			
		
		
		
	Use Option.map instead of pattern matching.
This commit is contained in:
		| @@ -22,26 +22,19 @@ trait AccountControllerBase extends ControllerBase { | ||||
|    */ | ||||
|   get("/:userName") { | ||||
|     val userName = params("userName") | ||||
|     getAccountByUserName(userName) match { | ||||
|       case Some(a) => account.html.userinfo(a, getVisibleRepositories(userName, baseUrl, context.loginAccount.map(_.userName))) | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     getAccountByUserName(userName).map { | ||||
|       account.html.userinfo(_, getVisibleRepositories(userName, baseUrl, context.loginAccount.map(_.userName))) | ||||
|     } getOrElse NotFound() | ||||
|   } | ||||
|  | ||||
|   get("/:userName/_edit")(ownerOnly { | ||||
|     val userName = params("userName") | ||||
|     getAccountByUserName(userName) match { | ||||
|       case Some(a) => account.html.useredit(a) | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     getAccountByUserName(userName).map(account.html.useredit(_)) getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   post("/:userName/_edit", form)(ownerOnly { form => | ||||
|     val userName = params("userName") | ||||
|     updateAccount(getAccountByUserName(userName).get.copy( | ||||
|       mailAddress    = form.mailAddress, | ||||
|       url            = form.url)) | ||||
|  | ||||
|     updateAccount(getAccountByUserName(userName).get.copy(mailAddress = form.mailAddress, url = form.url)) | ||||
|     redirect("/%s".format(userName)) | ||||
|   }) | ||||
|  | ||||
|   | ||||
| @@ -36,10 +36,8 @@ trait LabelsControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(r) => issues.html.labeleditlist(getLabels(owner, repository), r) | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl) | ||||
|       .map(issues.html.labeleditlist(getLabels(owner, repository), _)) getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   get("/:owner/:repository/issues/label/:labelId/edit")(writableRepository { | ||||
| @@ -47,13 +45,9 @@ trait LabelsControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val labelId    = params("labelId").toInt | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(r) => getLabel(owner, repository, labelId) match { | ||||
|         case None    => NotFound() | ||||
|         case Some(l) => issues.html.labeledit(Some(l), r) | ||||
|       } | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       getLabel(owner, repository, labelId).map(label => issues.html.labeledit(Some(label), repositoryInfo)) getOrElse NotFound() | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   post("/:owner/:repository/issues/label/:labelId/edit", editForm)(writableRepository { form => | ||||
| @@ -61,13 +55,10 @@ trait LabelsControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val labelId    = params("labelId").toInt | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(r) => { | ||||
|         updateLabel(owner, repository, labelId, form.labelName, form.color.substring(1)) | ||||
|         issues.html.labeleditlist(getLabels(owner, repository), r) | ||||
|       } | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map{ repositoryInfo => | ||||
|       updateLabel(owner, repository, labelId, form.labelName, form.color.substring(1)) | ||||
|       issues.html.labeleditlist(getLabels(owner, repository), repositoryInfo) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   get("/:owner/:repository/issues/label/:labelId/delete")(writableRepository { | ||||
| @@ -75,13 +66,10 @@ trait LabelsControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val labelId    = params("labelId").toInt | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(r) => { | ||||
|         deleteLabel(owner, repository, labelId) | ||||
|         issues.html.labeleditlist(getLabels(owner, repository), r) | ||||
|       } | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       deleteLabel(owner, repository, labelId) | ||||
|       issues.html.labeleditlist(getLabels(owner, repository), repositoryInfo) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
| } | ||||
| @@ -26,21 +26,20 @@ trait MilestonesControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val state      = params.getOrElse("state", "open") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(r) => issues.html.milestones(state, getMilestones(owner, repository), | ||||
|         getMilestoneIssueCounts(owner, repository), r, isWritable(owner, repository, context.loginAccount)) | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       issues.html.milestones(state, | ||||
|         getMilestones(owner, repository), | ||||
|         getMilestoneIssueCounts(owner, repository), | ||||
|         repositoryInfo, | ||||
|         isWritable(owner, repository, context.loginAccount)) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   get("/:owner/:repository/issues/milestones/new")(writableRepository { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(r) => issues.html.milestoneedit(None, r) | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map(issues.html.milestoneedit(None, _)) getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   post("/:owner/:repository/issues/milestones/new", milestoneForm)(writableRepository { form => | ||||
| @@ -48,7 +47,6 @@ trait MilestonesControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     createMilestone(owner, repository, form.title, form.description, form.dueDate) | ||||
|  | ||||
|     redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|   }) | ||||
|  | ||||
| @@ -57,10 +55,8 @@ trait MilestonesControllerBase extends ControllerBase { | ||||
|     val repository  = params("repository") | ||||
|     val milestoneId = params("milestoneId").toInt | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(r) => issues.html.milestoneedit(getMilestone(owner, repository, milestoneId), r) | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map( | ||||
|       issues.html.milestoneedit(getMilestone(owner, repository, milestoneId), _)) getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   post("/:owner/:repository/issues/milestones/:milestoneId/edit", milestoneForm)(writableRepository { form => | ||||
| @@ -68,13 +64,10 @@ trait MilestonesControllerBase extends ControllerBase { | ||||
|     val repository  = params("repository") | ||||
|     val milestoneId = params("milestoneId").toInt | ||||
|  | ||||
|     getMilestone(owner, repository, milestoneId) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(m) => { | ||||
|         updateMilestone(m.copy(title = form.title, description = form.description, dueDate = form.dueDate)) | ||||
|         redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|       } | ||||
|     } | ||||
|     getMilestone(owner, repository, milestoneId).map { milestone => | ||||
|       updateMilestone(milestone.copy(title = form.title, description = form.description, dueDate = form.dueDate)) | ||||
|       redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   get("/:owner/:repository/issues/milestones/:milestoneId/close")(writableRepository { | ||||
| @@ -82,13 +75,10 @@ trait MilestonesControllerBase extends ControllerBase { | ||||
|     val repository  = params("repository") | ||||
|     val milestoneId = params("milestoneId").toInt | ||||
|  | ||||
|     getMilestone(owner, repository, milestoneId) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(m) => { | ||||
|         closeMilestone(m) | ||||
|         redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|       } | ||||
|     } | ||||
|     getMilestone(owner, repository, milestoneId).map { milestone => | ||||
|       closeMilestone(milestone) | ||||
|       redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   get("/:owner/:repository/issues/milestones/:milestoneId/open")(writableRepository { | ||||
| @@ -96,13 +86,10 @@ trait MilestonesControllerBase extends ControllerBase { | ||||
|     val repository  = params("repository") | ||||
|     val milestoneId = params("milestoneId").toInt | ||||
|  | ||||
|     getMilestone(owner, repository, milestoneId) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(m) => { | ||||
|         openMilestone(m) | ||||
|         redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|       } | ||||
|     } | ||||
|     getMilestone(owner, repository, milestoneId).map { milestone => | ||||
|       openMilestone(milestone) | ||||
|       redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   get("/:owner/:repository/issues/milestones/:milestoneId/delete")(writableRepository { | ||||
| @@ -110,13 +97,10 @@ trait MilestonesControllerBase extends ControllerBase { | ||||
|     val repository  = params("repository") | ||||
|     val milestoneId = params("milestoneId").toInt | ||||
|  | ||||
|     getMilestone(owner, repository, milestoneId) match { | ||||
|       case None    => NotFound() | ||||
|       case Some(m) => { | ||||
|         deleteMilestone(owner, repository, milestoneId) | ||||
|         redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|       } | ||||
|     } | ||||
|     getMilestone(owner, repository, milestoneId).map { _ => | ||||
|       deleteMilestone(owner, repository, milestoneId) | ||||
|       redirect("/%s/%s/issues/milestones".format(owner, repository)) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -74,15 +74,16 @@ trait RepositoryViewerControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val branchName = params("branch") | ||||
|     val page       = params.getOrElse("page", "1").toInt | ||||
|      | ||||
|     JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|       val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30) | ||||
|      | ||||
|       repo.html.commits(Nil, branchName, getRepository(owner, repository, baseUrl).get, | ||||
|         logs.splitWith{ (commit1, commit2) => | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|         val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30) | ||||
|  | ||||
|         repo.html.commits(Nil, branchName, repositoryInfo, logs.splitWith{ (commit1, commit2) => | ||||
|           view.helpers.date(commit1.time) == view.helpers.date(commit2.time) | ||||
|         }, page, hasNext) | ||||
|     } | ||||
|       } | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   /** | ||||
| @@ -114,50 +115,51 @@ trait RepositoryViewerControllerBase extends ControllerBase { | ||||
|     val id         = params("id") // branch name or commit id | ||||
|     val raw        = params.get("raw").getOrElse("false").toBoolean | ||||
|     val path       = multiParams("splat").head //.replaceFirst("^tree/.+?/", "") | ||||
|     val repositoryInfo = getRepository(owner, repository, baseUrl).get | ||||
|  | ||||
|     JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|       val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id)) | ||||
|        | ||||
|       @scala.annotation.tailrec | ||||
|       def getPathObjectId(path: String, walk: TreeWalk): ObjectId = walk.next match { | ||||
|         case true if(walk.getPathString == path) => walk.getObjectId(0) | ||||
|         case true => getPathObjectId(path, walk) | ||||
|       } | ||||
|        | ||||
|       val treeWalk = new TreeWalk(git.getRepository) | ||||
|       val objectId = try { | ||||
|         treeWalk.addTree(revCommit.getTree) | ||||
|         treeWalk.setRecursive(true) | ||||
|         getPathObjectId(path, treeWalk) | ||||
|       } finally { | ||||
|         treeWalk.release | ||||
|       } | ||||
|        | ||||
|       if(raw){ | ||||
|         // Download | ||||
|         contentType = "application/octet-stream" | ||||
|         JGitUtil.getContent(git, objectId, false).get | ||||
|       } else { | ||||
|         // Viewer | ||||
|         val large  = FileTypeUtil.isLarge(git.getRepository.getObjectDatabase.open(objectId).getSize) | ||||
|         val viewer = if(FileTypeUtil.isImage(path)) "image" else if(large) "large" else "other" | ||||
|         val bytes  = if(viewer == "other") JGitUtil.getContent(git, objectId, false) else None | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|         val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id)) | ||||
|  | ||||
|         val content = if(viewer == "other"){ | ||||
|           if(bytes.isDefined && FileTypeUtil.isText(bytes.get)){ | ||||
|             // text | ||||
|             JGitUtil.ContentInfo("text", bytes.map(new String(_, "UTF-8"))) | ||||
|           } else { | ||||
|             // binary | ||||
|             JGitUtil.ContentInfo("binary", None) | ||||
|           } | ||||
|         } else { | ||||
|           // image or large | ||||
|           JGitUtil.ContentInfo(viewer, None) | ||||
|         @scala.annotation.tailrec | ||||
|         def getPathObjectId(path: String, walk: TreeWalk): ObjectId = walk.next match { | ||||
|           case true if(walk.getPathString == path) => walk.getObjectId(0) | ||||
|           case true => getPathObjectId(path, walk) | ||||
|         } | ||||
|  | ||||
|         val treeWalk = new TreeWalk(git.getRepository) | ||||
|         val objectId = try { | ||||
|           treeWalk.addTree(revCommit.getTree) | ||||
|           treeWalk.setRecursive(true) | ||||
|           getPathObjectId(path, treeWalk) | ||||
|         } finally { | ||||
|           treeWalk.release | ||||
|         } | ||||
|  | ||||
|         if(raw){ | ||||
|           // Download | ||||
|           contentType = "application/octet-stream" | ||||
|           JGitUtil.getContent(git, objectId, false).get | ||||
|         } else { | ||||
|           // Viewer | ||||
|           val large  = FileTypeUtil.isLarge(git.getRepository.getObjectDatabase.open(objectId).getSize) | ||||
|           val viewer = if(FileTypeUtil.isImage(path)) "image" else if(large) "large" else "other" | ||||
|           val bytes  = if(viewer == "other") JGitUtil.getContent(git, objectId, false) else None | ||||
|  | ||||
|           val content = if(viewer == "other"){ | ||||
|             if(bytes.isDefined && FileTypeUtil.isText(bytes.get)){ | ||||
|               // text | ||||
|               JGitUtil.ContentInfo("text", bytes.map(new String(_, "UTF-8"))) | ||||
|             } else { | ||||
|               // binary | ||||
|               JGitUtil.ContentInfo("binary", None) | ||||
|             } | ||||
|           } else { | ||||
|             // image or large | ||||
|             JGitUtil.ContentInfo(viewer, None) | ||||
|           } | ||||
|  | ||||
|           repo.html.blob(id, repositoryInfo, path.split("/").toList, content, new JGitUtil.CommitInfo(revCommit)) | ||||
|         } | ||||
|          | ||||
|         repo.html.blob(id, repositoryInfo, path.split("/").toList, content, new JGitUtil.CommitInfo(revCommit)) | ||||
|       } | ||||
|     } | ||||
|   }) | ||||
| @@ -169,14 +171,15 @@ trait RepositoryViewerControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|     val id         = params("id") | ||||
|      | ||||
|     JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|       val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id)) | ||||
|        | ||||
|       repo.html.commit(id, new JGitUtil.CommitInfo(revCommit), | ||||
|         JGitUtil.getBranchesOfCommit(git, revCommit.getName), | ||||
|         JGitUtil.getTagsOfCommit(git, revCommit.getName), | ||||
|         getRepository(owner, repository, baseUrl).get, JGitUtil.getDiffs(git, id)) | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|         val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id)) | ||||
|  | ||||
|         repo.html.commit(id, new JGitUtil.CommitInfo(revCommit), | ||||
|           JGitUtil.getBranchesOfCommit(git, revCommit.getName), JGitUtil.getTagsOfCommit(git, revCommit.getName), | ||||
|           repositoryInfo, JGitUtil.getDiffs(git, id)) | ||||
|       } | ||||
|     } | ||||
|   }) | ||||
|    | ||||
| @@ -241,41 +244,38 @@ trait RepositoryViewerControllerBase extends ControllerBase { | ||||
|    * @return HTML of the file list | ||||
|    */ | ||||
|   private def fileList(owner: String, repository: String, revstr: String = "", path: String = ".") = { | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case None => NotFound() | ||||
|       case Some(repositoryInfo) => { | ||||
|         val revision = if(revstr.isEmpty){ | ||||
|           repositoryInfo.repository.defaultBranch | ||||
|         } else { | ||||
|           revstr | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       val revision = if(revstr.isEmpty){ | ||||
|         repositoryInfo.repository.defaultBranch | ||||
|       } else { | ||||
|         revstr | ||||
|       } | ||||
|  | ||||
|       JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|       // get latest commit | ||||
|         val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(revision)) | ||||
|  | ||||
|         val files = JGitUtil.getFileList(git, revision, path) | ||||
|  | ||||
|         // process README.md | ||||
|         val readme = files.find(_.name == "README.md").map { file => | ||||
|           new String(JGitUtil.getContent(Git.open(getRepositoryDir(owner, repository)), file.id, true).get, "UTF-8") | ||||
|         } | ||||
|  | ||||
|         JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => | ||||
|         // get latest commit | ||||
|           val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(revision)) | ||||
|  | ||||
|           val files = JGitUtil.getFileList(git, revision, path) | ||||
|  | ||||
|           // process README.md | ||||
|           val readme = files.find(_.name == "README.md").map { file => | ||||
|             new String(JGitUtil.getContent(Git.open(getRepositoryDir(owner, repository)), file.id, true).get, "UTF-8") | ||||
|           } | ||||
|  | ||||
|           repo.html.files( | ||||
|             // current branch | ||||
|             revision, | ||||
|             // repository | ||||
|             repositoryInfo, | ||||
|             // current path | ||||
|             if(path == ".") Nil else path.split("/").toList, | ||||
|             // latest commit | ||||
|             new JGitUtil.CommitInfo(revCommit), | ||||
|             // file list | ||||
|             files, | ||||
|             // readme | ||||
|             readme | ||||
|           ) | ||||
|         } | ||||
|         repo.html.files( | ||||
|           // current branch | ||||
|           revision, | ||||
|           // repository | ||||
|           repositoryInfo, | ||||
|           // current path | ||||
|           if(path == ".") Nil else path.split("/").toList, | ||||
|           // latest commit | ||||
|           new JGitUtil.CommitInfo(revCommit), | ||||
|           // file list | ||||
|           files, | ||||
|           // readme | ||||
|           readme | ||||
|         ) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   | ||||
| @@ -43,10 +43,7 @@ trait SettingsControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(r) => settings.html.options(r) | ||||
|       case None    => NotFound() | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map(settings.html.options(_)) getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   /** | ||||
| @@ -69,10 +66,8 @@ trait SettingsControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(r) => settings.html.collaborators(getCollaborators(owner, repository), r) | ||||
|       case None    => NotFound() | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map( | ||||
|       settings.html.collaborators(getCollaborators(owner, repository), _)) getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   /** | ||||
| @@ -105,10 +100,7 @@ trait SettingsControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(r) => settings.html.delete(r) | ||||
|       case None    => NotFound() | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map(settings.html.delete(_)) getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   /** | ||||
|   | ||||
| @@ -31,24 +31,23 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(repoInfo) => getWikiPage(owner, repository, "Home") match { | ||||
|         case Some(page) => wiki.html.wiki("Home", page, repoInfo, isWritable(owner, repository, context.loginAccount)) | ||||
|         case None => redirect("/%s/%s/wiki/Home/_edit".format(owner, repository)) | ||||
|       } | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       getWikiPage(owner, repository, "Home").map { page => | ||||
|         wiki.html.wiki("Home", page, repositoryInfo, isWritable(owner, repository, context.loginAccount)) | ||||
|       } getOrElse redirect("/%s/%s/wiki/Home/_edit".format(owner, repository)) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   get("/:owner/:repository/wiki/:page")(readableRepository { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|     val pageName   = params("page") | ||||
|      | ||||
|     getWikiPage(owner, repository, pageName) match { | ||||
|       case Some(page) => wiki.html.wiki(pageName, page, getRepository(owner, repository, baseUrl).get, isWritable(owner, repository, context.loginAccount)) | ||||
|       case None => redirect("/%s/%s/wiki/%s/_edit".format(owner, repository, pageName)) // TODO URLEncode | ||||
|     } | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       getWikiPage(owner, repository, pageName).map { page => | ||||
|         wiki.html.wiki(pageName, page, repositoryInfo, isWritable(owner, repository, context.loginAccount)) | ||||
|       } getOrElse redirect("/%s/%s/wiki/%s/_edit".format(owner, repository, pageName)) // TODO URLEncode | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   get("/:owner/:repository/wiki/:page/_history")(readableRepository { | ||||
| @@ -56,12 +55,11 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val page       = params("page") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(repoInfo) => JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|         wiki.html.wikihistory(Some(page), JGitUtil.getCommitLog(git, "master", path = page + ".md")._1, repoInfo) | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|         wiki.html.wikihistory(Some(page), JGitUtil.getCommitLog(git, "master", path = page + ".md")._1, repositoryInfo) | ||||
|       } | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   get("/:owner/:repository/wiki/:page/_compare/:commitId")(readableRepository { | ||||
| @@ -69,11 +67,12 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val page       = params("page") | ||||
|     val commitId   = params("commitId").split("\\.\\.\\.") | ||||
|      | ||||
|     JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|       wiki.html.wikicompare(Some(page), | ||||
|         getWikiDiffs(git, commitId(0), commitId(1)), getRepository(owner, repository, baseUrl).get) | ||||
|     } | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|         wiki.html.wikicompare(Some(page), getWikiDiffs(git, commitId(0), commitId(1)), repositoryInfo) | ||||
|       } | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   get("/:owner/:repository/wiki/_compare/:commitId")(readableRepository { | ||||
| @@ -81,12 +80,11 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val commitId   = params("commitId").split("\\.\\.\\.") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(repoInfo) => JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|         wiki.html.wikicompare(None, getWikiDiffs(git, commitId(0), commitId(1)), repoInfo) | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|         wiki.html.wikicompare(None, getWikiDiffs(git, commitId(0), commitId(1)), repositoryInfo) | ||||
|       } | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   get("/:owner/:repository/wiki/:page/_edit")(writableRepository { | ||||
| @@ -94,10 +92,8 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val page       = params("page") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(repoInfo) => wiki.html.wikiedit(page, getWikiPage(owner, repository, page), repoInfo) | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map( | ||||
|       wiki.html.wikiedit(page, getWikiPage(owner, repository, page), _)) getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   post("/:owner/:repository/wiki/_edit", editForm)(writableRepository { form => | ||||
| @@ -115,10 +111,7 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(repoInfo) => wiki.html.wikiedit("", None, repoInfo) | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map(wiki.html.wikiedit("", None, _)) getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   post("/:owner/:repository/wiki/_new", newForm)(writableRepository { form => | ||||
| @@ -146,22 +139,20 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(repoInfo) => wiki.html.wikipages(getWikiPageList(owner, repository), repoInfo, isWritable(owner, repository, context.loginAccount)) | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     getRepository(owner, repository, baseUrl).map { | ||||
|       wiki.html.wikipages(getWikiPageList(owner, repository), _, isWritable(owner, repository, context.loginAccount)) | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|    | ||||
|   get("/:owner/:repository/wiki/_history")(readableRepository { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|  | ||||
|     getRepository(owner, repository, baseUrl) match { | ||||
|       case Some(repoInfo) => JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|         wiki.html.wikihistory(None, JGitUtil.getCommitLog(git, "master")._1, repoInfo) | ||||
|     getRepository(owner, repository, baseUrl).map { repositoryInfo => | ||||
|       JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => | ||||
|         wiki.html.wikihistory(None, JGitUtil.getCommitLog(git, "master")._1, repositoryInfo) | ||||
|       } | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   get("/:owner/:repository/wiki/_blob/*")(readableRepository { | ||||
| @@ -169,13 +160,10 @@ trait WikiControllerBase extends ControllerBase { | ||||
|     val repository = params("repository") | ||||
|     val path       = multiParams("splat").head | ||||
|  | ||||
|     getFileContent(owner, repository, path) match { | ||||
|       case Some(content) => { | ||||
|     getFileContent(owner, repository, path).map { content => | ||||
|         contentType = "application/octet-stream" | ||||
|         content | ||||
|       } | ||||
|       case None => NotFound() | ||||
|     } | ||||
|     } getOrElse NotFound() | ||||
|   }) | ||||
|  | ||||
|   private def unique: Constraint = new Constraint(){ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user