From 68ae0d32ea896155e5b611d10c1663b674c3a220 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 23 May 2014 08:31:13 -0400
Subject: [PATCH] Merge branch 'ticket/84' into develop
---
src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java | 46 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
index 1f37763..412c0ec 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -42,6 +42,7 @@
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.markup.html.form.RadioChoice;
import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.CompoundPropertyModel;
@@ -68,6 +69,7 @@
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.StringChoiceRenderer;
import com.gitblit.wicket.WicketUtils;
+import com.gitblit.wicket.panels.BasePanel.JavascriptEventConfirmation;
import com.gitblit.wicket.panels.BulletListPanel;
import com.gitblit.wicket.panels.RegistrantPermissionsPanel;
@@ -427,7 +429,11 @@
return;
}
setRedirect(false);
- setResponsePage(RepositoriesPage.class);
+ if (isCreate) {
+ setResponsePage(RepositoriesPage.class);
+ } else {
+ setResponsePage(SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryModel.name));
+ }
}
};
@@ -600,12 +606,48 @@
@Override
public void onSubmit() {
- setResponsePage(RepositoriesPage.class);
+ if (isCreate) {
+ setResponsePage(RepositoriesPage.class);
+ } else {
+ setResponsePage(SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryModel.name));
+ }
}
};
cancel.setDefaultFormProcessing(false);
form.add(cancel);
+ // the user can delete if deletions are allowed AND the user is an admin or the personal owner
+ // assigned ownership is not sufficient to allow deletion
+ boolean canDelete = !isCreate && app().repositories().canDelete(repositoryModel)
+ && (user.canAdmin() || user.isMyPersonalRepository(repositoryModel.name));
+
+ Link<Void> delete = new Link<Void>("delete") {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick() {
+ RepositoryModel latestModel = app().repositories().getRepositoryModel(repositoryModel.name);
+ boolean canDelete = app().repositories().canDelete(latestModel);
+ if (canDelete) {
+ if (app().repositories().deleteRepositoryModel(latestModel)) {
+ info(MessageFormat.format(getString("gb.repositoryDeleted"), latestModel));
+ setResponsePage(RepositoriesPage.class);
+ } else {
+ error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), latestModel));
+ }
+ } else {
+ error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), latestModel));
+ }
+ }
+ };
+
+ if (canDelete) {
+ delete.add(new JavascriptEventConfirmation("onclick", MessageFormat.format(
+ getString("gb.deleteRepository"), repositoryModel)));
+ }
+ form.add(delete.setVisible(canDelete));
+
add(form);
}
--
Gitblit v1.9.1