James Moger
2012-10-03 f22a0633d08e38ac4bf92b5165a708e11b4d6598
src/com/gitblit/client/RepositoriesPanel.java
@@ -27,7 +27,9 @@
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JLabel;
@@ -44,7 +46,9 @@
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableRowSorter;
import com.gitblit.Constants;
import com.gitblit.Constants.RpcRequest;
import com.gitblit.Keys;
import com.gitblit.models.FeedModel;
import com.gitblit.models.RepositoryModel;
import com.gitblit.utils.StringUtils;
@@ -78,6 +82,8 @@
   private JTextField filterTextfield;
   private JButton clearCache;
   public RepositoriesPanel(GitblitClient gitblit) {
      super();
      this.gitblit = gitblit;
@@ -99,6 +105,13 @@
      refreshRepositories.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            refreshRepositories();
         }
      });
      clearCache = new JButton(Translation.get("gb.clearCache"));
      clearCache.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            clearCache();
         }
      });
@@ -238,6 +251,7 @@
      repositoryTablePanel.add(new JScrollPane(table), BorderLayout.CENTER);
      JPanel repositoryControls = new JPanel(new FlowLayout(FlowLayout.CENTER, Utils.MARGIN, 0));
      repositoryControls.add(clearCache);
      repositoryControls.add(refreshRepositories);
      repositoryControls.add(browseRepository);
      repositoryControls.add(createRepository);
@@ -248,7 +262,7 @@
      repositoryControls.add(searchRepository);
      setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
      header = new HeaderPanel(Translation.get("gb.repositories"), "gitweb-favicon.png");
      header = new HeaderPanel(Translation.get("gb.repositories"), "git-orange-16x16.png");
      add(header, BorderLayout.NORTH);
      add(repositoryTablePanel, BorderLayout.CENTER);
      add(repositoryControls, BorderLayout.SOUTH);
@@ -281,6 +295,7 @@
   protected abstract void updateTeamsTable();
   protected void disableManagement() {
      clearCache.setVisible(false);
      createRepository.setVisible(false);
      editRepository.setVisible(false);
      delRepository.setVisible(false);
@@ -344,6 +359,26 @@
      };
      worker.execute();
   }
   protected void clearCache() {
      GitblitWorker worker = new GitblitWorker(RepositoriesPanel.this,
            RpcRequest.CLEAR_REPOSITORY_CACHE) {
         @Override
         protected Boolean doRequest() throws IOException {
            if (gitblit.clearRepositoryCache()) {
               gitblit.refreshRepositories();
               return true;
            }
            return false;
         }
         @Override
         protected void onSuccess() {
            updateTable(false);
         }
      };
      worker.execute();
   }
   /**
    * Displays the create repository dialog and fires a SwingWorker to update
@@ -353,10 +388,13 @@
   protected void createRepository() {
      EditRepositoryDialog dialog = new EditRepositoryDialog(gitblit.getProtocolVersion());
      dialog.setLocationRelativeTo(RepositoriesPanel.this);
      dialog.setAccessRestriction(gitblit.getDefaultAccessRestriction());
      dialog.setAuthorizationControl(gitblit.getDefaultAuthorizationControl());
      dialog.setUsers(null, gitblit.getUsernames(), null);
      dialog.setTeams(gitblit.getTeamnames(), null);
      dialog.setRepositories(gitblit.getRepositories());
      dialog.setFederationSets(gitblit.getFederationSets(), null);
      dialog.setIndexedBranches(new ArrayList<String>(Arrays.asList(Constants.DEFAULT_BRANCH)), null);
      dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(null),
            gitblit.getPreReceiveScriptsInherited(null), null);
      dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(null),
@@ -419,10 +457,18 @@
      dialog.setTeams(gitblit.getTeamnames(), gitblit.getPermittedTeamnames(repository));
      dialog.setRepositories(gitblit.getRepositories());
      dialog.setFederationSets(gitblit.getFederationSets(), repository.federationSets);
      List<String> allLocalBranches = new ArrayList<String>();
      allLocalBranches.add(Constants.DEFAULT_BRANCH);
      allLocalBranches.addAll(repository.getLocalBranches());
      dialog.setIndexedBranches(allLocalBranches, repository.indexedBranches);
      dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(repository),
            gitblit.getPreReceiveScriptsInherited(repository), repository.preReceiveScripts);
      dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(repository),
            gitblit.getPostReceiveScriptsInherited(repository), repository.postReceiveScripts);
      if (gitblit.getSettings().hasKey(Keys.groovy.customFields)) {
         Map<String, String> map = gitblit.getSettings().get(Keys.groovy.customFields).getMap();
         dialog.setCustomFields(repository, map);
      }
      dialog.setVisible(true);
      final RepositoryModel revisedRepository = dialog.getRepository();
      final List<String> permittedUsers = dialog.getPermittedUsers();