From b4ed66fda03d83fd281ca9cbeae0a1c7785489e4 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 09 May 2014 09:55:19 -0400
Subject: [PATCH] Move delete repository function into the edit page

---
 src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java |   50 ++------------------------------------------------
 1 files changed, 2 insertions(+), 48 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java b/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
index 2c84ac0..8630d20 100644
--- a/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
@@ -15,7 +15,6 @@
  */
 package com.gitblit.wicket.panels;
 
-import java.text.MessageFormat;
 import java.util.Map;
 
 import org.apache.wicket.Component;
@@ -24,7 +23,6 @@
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.link.ExternalLink;
-import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.panel.Fragment;
 
 import com.gitblit.Constants.AccessRestrictionType;
@@ -129,54 +127,10 @@
 			user = UserModel.ANONYMOUS;
 		}
 		Fragment repositoryLinks;
-		boolean showOwner = entry.isOwner(user.username);
-		// owner of personal repository gets admin powers
-		boolean showAdmin = isAdmin || entry.isUsersPersonalRepository(user.username);
-
-		if (showAdmin || showOwner) {
-			repositoryLinks = new Fragment("repositoryLinks", showAdmin ? "repositoryAdminLinks"
-					: "repositoryOwnerLinks", this);
+		if (user.canAdmin(entry)) {
+			repositoryLinks = new Fragment("repositoryLinks", "repositoryOwnerLinks", this);
 			repositoryLinks.add(new BookmarkablePageLink<Void>("editRepository", EditRepositoryPage.class,
 					WicketUtils.newRepositoryParameter(entry.name)));
-			if (showAdmin) {
-				Link<Void> deleteLink = new Link<Void>("deleteRepository") {
-
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					public void onClick() {
-						// refresh the model
-						RepositoryModel model = app().repositories().getRepositoryModel(entry.name);
-						if (isDeleteAllowed(model) &&
-								app().repositories().deleteRepositoryModel(model)) {
-							// redirect to the owning page
-							if (model.isPersonalRepository()) {
-								setResponsePage(getPage().getClass(), WicketUtils.newUsernameParameter(model.projectPath.substring(1)));
-							} else {
-								setResponsePage(getPage().getClass(), WicketUtils.newProjectParameter(model.projectPath));
-							}
-						} else {
-							error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), model));
-						}
-					}
-
-					@Override
-					public boolean isEnabled() {
-						return isDeleteAllowed(entry);
-					}
-
-					private boolean isDeleteAllowed(
-							final RepositoryModel model) {
-						return app().settings().getBoolean(Keys.web.allowDeletingNonEmptyRepositories, true)
-								|| !model.hasCommits;
-					}
-				};
-				if (deleteLink.isEnabled()) {
-					deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format(
-							localizer.getString("gb.deleteRepository", parent), entry)));
-				}
-				repositoryLinks.add(deleteLink);
-			}
 		} else {
 			repositoryLinks = new Fragment("repositoryLinks", "repositoryUserLinks", this);
 		}

--
Gitblit v1.9.1