diff options
author | James Moger <james.moger@gitblit.com> | 2012-09-20 08:08:21 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2012-09-20 08:08:21 -0400 |
commit | 37864ade1f2ab700e496394b8032dbba9b97f2c0 (patch) | |
tree | 5f610abe886d46eda0f402952066ef47d3c27c53 /src/com/gitblit | |
parent | af28d30f9b5b808c7a6c84ec992b0b9c114a5069 (diff) | |
parent | eb9979971e78f2c6881128c42417b33ae1cafcde (diff) | |
download | gitblit-37864ade1f2ab700e496394b8032dbba9b97f2c0.tar.gz gitblit-37864ade1f2ab700e496394b8032dbba9b97f2c0.zip |
Merge branch 'delete-branch' of https://github.com/ajermakovics/gitblit
Diffstat (limited to 'src/com/gitblit')
-rw-r--r-- | src/com/gitblit/wicket/pages/BranchesPage.java | 2 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/RepositoryPage.java | 8 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/SummaryPage.java | 2 | ||||
-rw-r--r-- | src/com/gitblit/wicket/panels/BranchesPanel.html | 2 | ||||
-rw-r--r-- | src/com/gitblit/wicket/panels/BranchesPanel.java | 37 |
5 files changed, 43 insertions, 8 deletions
diff --git a/src/com/gitblit/wicket/pages/BranchesPage.java b/src/com/gitblit/wicket/pages/BranchesPage.java index 2b7d5187..b38a80a2 100644 --- a/src/com/gitblit/wicket/pages/BranchesPage.java +++ b/src/com/gitblit/wicket/pages/BranchesPage.java @@ -24,7 +24,7 @@ public class BranchesPage extends RepositoryPage { public BranchesPage(PageParameters params) {
super(params);
- add(new BranchesPanel("branchesPanel", getRepositoryModel(), getRepository(), -1));
+ add(new BranchesPanel("branchesPanel", getRepositoryModel(), getRepository(), -1, isShowAdmin()));
}
@Override
diff --git a/src/com/gitblit/wicket/pages/RepositoryPage.java b/src/com/gitblit/wicket/pages/RepositoryPage.java index 7e21911b..69719464 100644 --- a/src/com/gitblit/wicket/pages/RepositoryPage.java +++ b/src/com/gitblit/wicket/pages/RepositoryPage.java @@ -75,6 +75,7 @@ public abstract class RepositoryPage extends BasePage { private Map<String, SubmoduleModel> submodules;
private final Map<String, PageRegistration> registeredPages;
+ private boolean showAdmin;
public RepositoryPage(PageParameters params) {
super(params);
@@ -148,7 +149,7 @@ public abstract class RepositoryPage extends BasePage { }
// Conditionally add edit link
- final boolean showAdmin;
+ this.showAdmin = false;
if (GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) {
boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin();
@@ -412,6 +413,11 @@ public abstract class RepositoryPage extends BasePage { return WicketUtils.newObjectParameter(repositoryName, commitId);
}
+ public boolean isShowAdmin()
+ {
+ return this.showAdmin;
+ }
+
private class SearchForm extends SessionlessForm<Void> implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/src/com/gitblit/wicket/pages/SummaryPage.java b/src/com/gitblit/wicket/pages/SummaryPage.java index 2a624c26..0b531786 100644 --- a/src/com/gitblit/wicket/pages/SummaryPage.java +++ b/src/com/gitblit/wicket/pages/SummaryPage.java @@ -132,7 +132,7 @@ public class SummaryPage extends RepositoryPage { add(new LogPanel("commitsPanel", repositoryName, getRepositoryModel().HEAD, r, numberCommits, 0));
add(new TagsPanel("tagsPanel", repositoryName, r, numberRefs).hideIfEmpty());
- add(new BranchesPanel("branchesPanel", getRepositoryModel(), r, numberRefs).hideIfEmpty());
+ add(new BranchesPanel("branchesPanel", getRepositoryModel(), r, numberRefs, isShowAdmin()).hideIfEmpty());
if (getRepositoryModel().showReadme) {
String htmlText = null;
diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.html b/src/com/gitblit/wicket/panels/BranchesPanel.html index 1322eefd..d2d88d38 100644 --- a/src/com/gitblit/wicket/panels/BranchesPanel.html +++ b/src/com/gitblit/wicket/panels/BranchesPanel.html @@ -29,7 +29,7 @@ <!-- branch page links -->
<wicket:fragment wicket:id="branchPageLinks">
<span class="link">
- <a wicket:id="log"><wicket:message key="gb.log"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> | <a wicket:id="metrics"><wicket:message key="gb.metrics"></wicket:message></a> | <a wicket:id="syndication"><wicket:message key="gb.feed"></wicket:message></a>
+ <a wicket:id="log"><wicket:message key="gb.log"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> | <a wicket:id="metrics"><wicket:message key="gb.metrics"></wicket:message></a> | <a wicket:id="syndication"><wicket:message key="gb.feed"></wicket:message></a> | <a wicket:id="deleteBranch"><wicket:message key="gb.delete"></wicket:message></a>
</span>
</wicket:fragment>
diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.java b/src/com/gitblit/wicket/panels/BranchesPanel.java index 8bbab9a0..25126531 100644 --- a/src/com/gitblit/wicket/panels/BranchesPanel.java +++ b/src/com/gitblit/wicket/panels/BranchesPanel.java @@ -15,6 +15,7 @@ */
package com.gitblit.wicket.panels;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -22,6 +23,7 @@ import java.util.List; 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 org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
@@ -38,9 +40,9 @@ import com.gitblit.utils.StringUtils; import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.pages.BranchesPage;
import com.gitblit.wicket.pages.CommitPage;
+import com.gitblit.wicket.pages.GitSearchPage;
import com.gitblit.wicket.pages.LogPage;
import com.gitblit.wicket.pages.MetricsPage;
-import com.gitblit.wicket.pages.GitSearchPage;
import com.gitblit.wicket.pages.TreePage;
public class BranchesPanel extends BasePanel {
@@ -49,8 +51,8 @@ public class BranchesPanel extends BasePanel { private final boolean hasBranches;
- public BranchesPanel(String wicketId, final RepositoryModel model, Repository r,
- final int maxCount) {
+ public BranchesPanel(String wicketId, final RepositoryModel model, final Repository r,
+ final int maxCount, final boolean showAdmin) {
super(wicketId);
// branches
@@ -106,7 +108,7 @@ public class BranchesPanel extends BasePanel { WicketUtils.setHtmlTooltip(shortlog, shortMessage);
}
item.add(shortlog);
-
+
if (maxCount <= 0) {
Fragment fragment = new Fragment("branchLinks", "branchPageLinks", this);
fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils
@@ -118,6 +120,9 @@ public class BranchesPanel extends BasePanel { fragment.add(new ExternalLink("syndication", SyndicationServlet.asLink(
getRequest().getRelativePathPrefixToContextRoot(), model.name,
entry.getName(), 0)));
+
+ fragment.add(createDeleteBranchLink(r, entry, showAdmin));
+
item.add(fragment);
} else {
Fragment fragment = new Fragment("branchLinks", "branchPanelLinks", this);
@@ -148,4 +153,28 @@ public class BranchesPanel extends BasePanel { setVisible(hasBranches);
return this;
}
+
+ private Link<Void> createDeleteBranchLink(final Repository r, final RefModel entry, final boolean showAdmin)
+ {
+ Link<Void> deleteLink = new Link<Void>("deleteBranch") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick() {
+ if( showAdmin && JGitUtils.deleteBranchRef(r, entry.getName()) ) {
+ info(MessageFormat.format("Branch \"{0}\" deleted", entry.displayName));
+ }
+ else {
+ error(MessageFormat.format("Failed to delete branch \"{0}\"", entry.displayName));
+ }
+ }
+ };
+
+ deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format(
+ "Delete branch \"{0}\"?", entry.displayName )));
+
+ deleteLink.setVisible(showAdmin);
+
+ return deleteLink;
+ }
}
|