(refs #224)Add delete branch button

This commit is contained in:
takezoe
2014-02-03 08:00:43 +09:00
parent a87bd2a928
commit 2764caae29
2 changed files with 31 additions and 8 deletions

View File

@@ -3,7 +3,7 @@ package app
import util.Directory._ import util.Directory._
import util.Implicits._ import util.Implicits._
import util.ControlUtil._ import util.ControlUtil._
import _root_.util.{ReferrerAuthenticator, JGitUtil, FileUtil, StringUtil} import _root_.util._
import service._ import service._
import org.scalatra._ import org.scalatra._
import java.io.File import java.io.File
@@ -12,15 +12,16 @@ import org.eclipse.jgit.lib._
import org.apache.commons.io.FileUtils import org.apache.commons.io.FileUtils
import org.eclipse.jgit.treewalk._ import org.eclipse.jgit.treewalk._
import java.util.zip.{ZipEntry, ZipOutputStream} import java.util.zip.{ZipEntry, ZipOutputStream}
import scala.Some
class RepositoryViewerController extends RepositoryViewerControllerBase class RepositoryViewerController extends RepositoryViewerControllerBase
with RepositoryService with AccountService with ReferrerAuthenticator with RepositoryService with AccountService with ReferrerAuthenticator with CollaboratorsAuthenticator
/** /**
* The repository viewer. * The repository viewer.
*/ */
trait RepositoryViewerControllerBase extends ControllerBase { trait RepositoryViewerControllerBase extends ControllerBase {
self: RepositoryService with AccountService with ReferrerAuthenticator => self: RepositoryService with AccountService with ReferrerAuthenticator with CollaboratorsAuthenticator =>
/** /**
* Returns converted HTML from Markdown for preview. * Returns converted HTML from Markdown for preview.
@@ -150,10 +151,23 @@ trait RepositoryViewerControllerBase extends ControllerBase {
val revCommit = git.log.add(git.getRepository.resolve(branchName)).setMaxCount(1).call.iterator.next val revCommit = git.log.add(git.getRepository.resolve(branchName)).setMaxCount(1).call.iterator.next
(branchName, revCommit.getCommitterIdent.getWhen) (branchName, revCommit.getCommitterIdent.getWhen)
} }
repo.html.branches(branchInfo, repository) repo.html.branches(branchInfo, hasWritePermission(repository.owner, repository.name, context.loginAccount), repository)
} }
}) })
/**
* Deletes branch.
*/
get("/:owner/:repository/delete/:branchName")(collaboratorsOnly { repository =>
val branchName = params("branchName")
if(repository.repository.defaultBranch != branchName){
using(Git.open(getRepositoryDir(repository.owner, repository.name))){ git =>
git.branchDelete().setBranchNames(branchName).call()
}
}
redirect(s"/${repository.owner}/${repository.name}/branches")
})
/** /**
* Displays tags. * Displays tags.
*/ */

View File

@@ -1,4 +1,5 @@
@(branchInfo: List[(String, java.util.Date)], @(branchInfo: List[(String, java.util.Date)],
hasWritePermission: Boolean,
repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context) repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
@import context._ @import context._
@import view.helpers._ @import view.helpers._
@@ -17,9 +18,9 @@
<tr> <tr>
<td> <td>
<a href="@url(repository)/tree/@encodeRefName(branchName)">@branchName</a> <a href="@url(repository)/tree/@encodeRefName(branchName)">@branchName</a>
@* @if(hasWritePermission && repository.repository.defaultBranch != branchName){
<a href="#" class="btn btn-danger btn-mini">Delete branch</a> <a href="@url(repository)/delete/@encodeRefName(branchName)" class="btn btn-danger btn-mini pull-right delete-branch" data-name="@branchName">Delete branch</a>
*@ }
</td> </td>
<td> <td>
@datetime(latestUpdateDate) @datetime(latestUpdateDate)
@@ -36,3 +37,11 @@
} }
</table> </table>
} }
<script>
$(function(){
$('.delete-branch').click(function(e){
var branchName = $(e.target).data('name');
return confirm('Are you sure you want to remove the ' + branchName + ' branch?');
});
});
</script>