Lukasz Jader
2012-07-14 7cd88ddbd93b115aeda76b87b1c99f9afa4aaaef
src/com/gitblit/wicket/panels/FederationTokensPanel.java
@@ -16,20 +16,23 @@
package com.gitblit.wicket.panels;
import java.util.ArrayList;
import java.util.Collections;
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.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
import com.gitblit.Constants.FederationRequest;
import com.gitblit.Constants.FederationToken;
import com.gitblit.FederationServlet;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.utils.FederationUtils;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.pages.SendProposalPage;
public class FederationTokensPanel extends BasePanel {
@@ -38,21 +41,23 @@
   public FederationTokensPanel(String wicketId, final boolean showFederation) {
      super(wicketId);
      String baseUrl = getRequest().getRelativePathPrefixToContextRoot();
      add(new ExternalLink("federatedRepositories", FederationServlet.asPullLink(baseUrl, GitBlit
            .self().getFederationToken(FederationToken.REPOSITORIES),
            FederationRequest.PULL_REPOSITORIES)));
      add(new ExternalLink("federatedUsers", FederationServlet.asPullLink(baseUrl, GitBlit.self()
      final String baseUrl = WicketUtils.getGitblitURL(getRequest());
      add(new ExternalLink("federatedUsers", FederationUtils.asLink(baseUrl, GitBlit.self()
            .getFederationToken(FederationToken.USERS_AND_REPOSITORIES),
            FederationRequest.PULL_USERS)));
      add(new ExternalLink("federatedSettings", FederationServlet.asPullLink(baseUrl, GitBlit
      add(new ExternalLink("federatedSettings", FederationUtils.asLink(baseUrl, GitBlit
            .self().getFederationToken(FederationToken.ALL), FederationRequest.PULL_SETTINGS)));
      final List<String[]> data = new ArrayList<String[]>();
      for (FederationToken token : FederationToken.values()) {
         data.add(new String[] { token.name(), GitBlit.self().getFederationToken(token) });
         data.add(new String[] { token.name(), GitBlit.self().getFederationToken(token), null });
      }
      List<String> sets = GitBlit.getStrings(Keys.federation.sets);
      Collections.sort(sets);
      for (String set : sets) {
         data.add(new String[] { FederationToken.REPOSITORIES.name(),
               GitBlit.self().getFederationToken(set), set });
      }
      DataView<String[]> dataView = new DataView<String[]>("row", new ListDataProvider<String[]>(
@@ -69,25 +74,21 @@
         public void populateItem(final Item<String[]> item) {
            final String[] entry = item.getModelObject();
            final FederationToken token = FederationToken.fromName(entry[0]);
            item.add(new Label("field", entry[0]));
            if (entry[2] == null) {
               // standard federation token
               item.add(new Label("description", describeToken(token)));
            } else {
               // federation set token
               item.add(new Label("description", entry[2]));
            }
            item.add(new Label("value", entry[1]));
            // TODO make this work
            Link<Void> sendProposal = new Link<Void>("send") {
            item.add(new ExternalLink("repositoryDefinitions", FederationUtils.asLink(
                  baseUrl, entry[1], FederationRequest.PULL_REPOSITORIES)));
               private static final long serialVersionUID = 1L;
            item.add(new BookmarkablePageLink<Void>("send",
                  SendProposalPage.class, WicketUtils.newTokenParameter(entry[1])));
               @Override
               public void onClick() {
                  error("Sorry, this does not work yet.  :(");
               }
            };
            sendProposal.add(new JavascriptTextPrompt("onclick",
                  "Please enter URL for remote Gitblit instance:"));
            item.add(sendProposal);
            item.add(new Label("description", describeToken(token)));
            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
         }