(refs #101, #102)Put Repository deletion and transfer ownership together to Danger Zone.

This commit is contained in:
takezoe
2014-01-18 07:06:48 +09:00
parent 89bfcdc44e
commit 5b1aef5e52
5 changed files with 51 additions and 59 deletions

View File

@@ -174,14 +174,14 @@ trait RepositorySettingsControllerBase extends ControllerBase with FlashMapSuppo
}) })
/** /**
* Display the transfer ownership page. * Display the danger zone.
*/ */
get("/:owner/:repository/settings/transfer")(ownerOnly { get("/:owner/:repository/settings/danger")(ownerOnly {
settings.html.transfer(_) settings.html.danger(_)
}) })
/** /**
* Save the repository options. * Transfer repository ownership.
*/ */
post("/:owner/:repository/settings/transfer", transferForm)(ownerOnly { (form, repository) => post("/:owner/:repository/settings/transfer", transferForm)(ownerOnly { (form, repository) =>
// Change repository owner // Change repository owner
@@ -197,15 +197,7 @@ trait RepositorySettingsControllerBase extends ControllerBase with FlashMapSuppo
FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name)) FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name))
} }
} }
// flash += "info" -> "Repository ownership is transferred." redirect(s"/${form.newOwner}/${repository.name}")
redirect(s"/${form.newOwner}/${repository.name}/settings/transfer")
})
/**
* Display the delete repository page.
*/
get("/:owner/:repository/settings/delete")(ownerOnly {
settings.html.delete(_)
}) })
/** /**

View File

@@ -0,0 +1,44 @@
@(repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
@import context._
@import view.helpers._
@html.main("Danger Zone", Some(repository)){
@html.header("settings", repository)
@menu("danger", repository){
<div class="box">
<div class="box-header">Danger Zone</div>
<div class="box-content">
<form id="transfer-form" method="post" action="@url(repository)/settings/transfer" validate="true" autocomplete="off">
<fieldset>
<label class="strong">Transfer Ownership</label>
<div>
Transfer this repo to another user or to group.
<div class="pull-right">
@helper.html.account("newOwner", 150)
<input type="submit" class="btn btn-danger" value="Transfer"/>
<div>
<span id="error-newOwner" class="error"></span>
</div>
</div>
</div>
</fieldset>
</form>
<form id="delete-form" method="post" action="@url(repository)/settings/delete">
<fieldset class="margin">
<label class="strong">Delete repository</label>
<div>
Once you delete a repository, there is no going back.
<input type="submit" class="btn btn-danger pull-right" value="Delete this repository"/>
</div>
</fieldset>
</form>
</div>
</div>
}
}
<script>
$(function(){
$('#delete-form').submit(function(){
return confirm('Once you delete a repository, there is no going back.\nAre you sure?');
});
});
</script>

View File

@@ -1,22 +0,0 @@
@(repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
@import context._
@import view.helpers._
@html.main("Delete Repository", Some(repository)){
@html.header("settings", repository)
@menu("delete", repository){
<form id="form" method="post" action="@url(repository)/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>

View File

@@ -14,11 +14,8 @@
<li@if(active=="hooks"){ class="active"}> <li@if(active=="hooks"){ class="active"}>
<a href="@url(repository)/settings/hooks">Service Hooks</a> <a href="@url(repository)/settings/hooks">Service Hooks</a>
</li> </li>
<li@if(active=="transfer"){ class="active"}> <li@if(active=="danger"){ class="active"}>
<a href="@url(repository)/settings/transfer">Transfer Ownership</a> <a href="@url(repository)/settings/danger">Danger Zone</a>
</li>
<li@if(active=="delete"){ class="active"}>
<a href="@url(repository)/settings/delete">Delete Repository</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@@ -1,19 +0,0 @@
@(repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
@import context._
@import view.helpers._
@html.main("Transfer Ownership", Some(repository)){
@html.header("settings", repository)
@menu("transfer", repository){
<form id="form" method="post" action="@url(repository)/settings/transfer" validate="true" autocomplete="off">
<h3>Transfer Ownership</h3>
<fieldset>
<label for="newOwner" class="strong">New owner:</label>
@helper.html.account("newOwner", 300)
<input type="submit" class="btn btn-danger" value="Transfer"/>
<div>
<span id="error-newOwner" class="error"></span>
</div>
</fieldset>
</form>
}
}