James Moger
2012-09-20 37864ade1f2ab700e496394b8032dbba9b97f2c0
Merge branch 'delete-branch' of https://github.com/ajermakovics/gitblit
5 files modified
51 ■■■■ changed files
src/com/gitblit/wicket/pages/BranchesPage.java 2 ●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/RepositoryPage.java 8 ●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/SummaryPage.java 2 ●●● patch | view | raw | blame | history
src/com/gitblit/wicket/panels/BranchesPanel.html 2 ●●● patch | view | raw | blame | history
src/com/gitblit/wicket/panels/BranchesPanel.java 37 ●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/BranchesPage.java
@@ -24,7 +24,7 @@
    public BranchesPage(PageParameters params) {
        super(params);
        add(new BranchesPanel("branchesPanel", getRepositoryModel(), getRepository(), -1));
        add(new BranchesPanel("branchesPanel", getRepositoryModel(), getRepository(), -1, isShowAdmin()));
    }
    @Override
src/com/gitblit/wicket/pages/RepositoryPage.java
@@ -75,6 +75,7 @@
    private Map<String, SubmoduleModel> submodules;
    
    private final Map<String, PageRegistration> registeredPages;
    private boolean showAdmin;
    public RepositoryPage(PageParameters params) {
        super(params);
@@ -148,7 +149,7 @@
        }
        // 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 @@
        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;
src/com/gitblit/wicket/pages/SummaryPage.java
@@ -132,7 +132,7 @@
        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;
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>
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 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.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 @@
    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 @@
                    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 @@
                    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 @@
        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;
    }
}