mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-01 02:56:08 +01:00
Delete Repository page has been implemented.
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import service._
|
import service._
|
||||||
|
import util.Directory._
|
||||||
import util.OwnerOnlyAuthenticator
|
import util.OwnerOnlyAuthenticator
|
||||||
import jp.sf.amateras.scalatra.forms._
|
import jp.sf.amateras.scalatra.forms._
|
||||||
|
import org.apache.commons.io.FileUtils
|
||||||
|
|
||||||
class SettingsController extends SettingsControllerBase
|
class SettingsController extends SettingsControllerBase
|
||||||
with RepositoryService with AccountService with OwnerOnlyAuthenticator
|
with RepositoryService with AccountService with OwnerOnlyAuthenticator
|
||||||
@@ -95,8 +97,35 @@ trait SettingsControllerBase extends ControllerBase {
|
|||||||
removeCollaborator(owner, repository, userName)
|
removeCollaborator(owner, repository, userName)
|
||||||
redirect("/%s/%s/settings/collaborators".format(owner, repository))
|
redirect("/%s/%s/settings/collaborators".format(owner, repository))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the delete repository page.
|
||||||
|
*/
|
||||||
|
get("/:owner/:repository/settings/delete")(ownerOnly {
|
||||||
|
val owner = params("owner")
|
||||||
|
val repository = params("repository")
|
||||||
|
|
||||||
|
getRepository(owner, repository, servletContext) match {
|
||||||
|
case Some(r) => settings.html.delete(r)
|
||||||
|
case None => NotFound()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete the repository.
|
||||||
|
*/
|
||||||
|
post("/:owner/:repository/settings/delete")(ownerOnly {
|
||||||
|
val owner = params("owner")
|
||||||
|
val repository = params("repository")
|
||||||
|
|
||||||
|
deleteRepository(owner, repository)
|
||||||
|
|
||||||
|
FileUtils.deleteDirectory(getRepositoryDir(owner, repository))
|
||||||
|
FileUtils.deleteDirectory(getWikiRepositoryDir(owner, repository))
|
||||||
|
|
||||||
|
redirect("/%s".format(owner))
|
||||||
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides Constraint to validate the collaborator name.
|
* Provides Constraint to validate the collaborator name.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -42,6 +42,16 @@ trait RepositoryService { self: AccountService =>
|
|||||||
lastActivityDate = currentDate)
|
lastActivityDate = currentDate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def deleteRepository(userName: String, repositoryName: String): Unit = {
|
||||||
|
Collaborators
|
||||||
|
.filter { c => (c.userName is userName.bind) && (c.repositoryName is repositoryName.bind) }
|
||||||
|
.delete
|
||||||
|
|
||||||
|
Repositories
|
||||||
|
.filter { r => (r.userName is userName.bind) && (r.repositoryName is repositoryName.bind) }
|
||||||
|
.delete
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the list of specified user's repositories information.
|
* Returns the list of specified user's repositories information.
|
||||||
*
|
*
|
||||||
|
|||||||
21
src/main/twirl/settings/delete.scala.html
Normal file
21
src/main/twirl/settings/delete.scala.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
@(repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
|
||||||
|
@import context._
|
||||||
|
@html.main("Delete Repository"){
|
||||||
|
@html.header("settings", repository)
|
||||||
|
@menu("delete", repository){
|
||||||
|
<form id="form" method="post" action="@path/@repository.owner/@repository.name/settings/delete">
|
||||||
|
<h3>Delete repository</h3>
|
||||||
|
<p>
|
||||||
|
Once you delete a repository, there is no going back.
|
||||||
|
</p>
|
||||||
|
<input type="submit" class="btn btn-danger" value="Delete this repository"/>
|
||||||
|
</form>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<script>
|
||||||
|
$(function(){
|
||||||
|
$('#form').submit(function(){
|
||||||
|
return confirm('Once you delete a repository, there is no going back.\nAre you sure?');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user