From f3ff376a5eb945f15329b66bbb7d69ed3ca2ce3f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 03 Aug 2012 20:39:50 -0400
Subject: [PATCH] Confirmed fix for GO settings manipulation (issue 85)
---
src/com/gitblit/client/RepositoriesPanel.java | 77 ++++++++++++++++++++++++++++++++------
1 files changed, 64 insertions(+), 13 deletions(-)
diff --git a/src/com/gitblit/client/RepositoriesPanel.java b/src/com/gitblit/client/RepositoriesPanel.java
index 3e156e9..cbe1874 100644
--- a/src/com/gitblit/client/RepositoriesPanel.java
+++ b/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;
@@ -134,12 +138,21 @@
}
});
+ final JButton logRepository = new JButton(Translation.get("gb.log") + "...");
+ logRepository.setEnabled(false);
+ logRepository.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ RepositoryModel model = getSelectedRepositories().get(0);
+ showSearchDialog(false, model);
+ }
+ });
+
final JButton searchRepository = new JButton(Translation.get("gb.search") + "...");
searchRepository.setEnabled(false);
searchRepository.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
RepositoryModel model = getSelectedRepositories().get(0);
- searchRepository(model);
+ showSearchDialog(true, model);
}
});
@@ -173,18 +186,20 @@
return;
}
boolean singleSelection = table.getSelectedRowCount() == 1;
- boolean selected = table.getSelectedRow() > -1;
+ boolean selected = table.getSelectedRow() > -1;
if (singleSelection) {
RepositoryModel repository = getSelectedRepositories().get(0);
browseRepository.setEnabled(repository.hasCommits);
+ logRepository.setEnabled(repository.hasCommits);
searchRepository.setEnabled(repository.hasCommits);
subscribeRepository.setEnabled(repository.hasCommits);
} else {
browseRepository.setEnabled(false);
+ logRepository.setEnabled(false);
searchRepository.setEnabled(false);
subscribeRepository.setEnabled(false);
}
- delRepository.setEnabled(selected);
+ delRepository.setEnabled(selected);
if (selected) {
int viewRow = table.getSelectedRow();
int modelRow = table.convertRowIndexToModel(viewRow);
@@ -233,10 +248,11 @@
repositoryControls.add(editRepository);
repositoryControls.add(delRepository);
repositoryControls.add(subscribeRepository);
+ repositoryControls.add(logRepository);
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);
@@ -265,6 +281,8 @@
protected abstract void subscribeFeeds(List<FeedModel> feeds);
protected abstract void updateUsersTable();
+
+ protected abstract void updateTeamsTable();
protected void disableManagement() {
createRepository.setVisible(false);
@@ -337,14 +355,23 @@
*
*/
protected void createRepository() {
- EditRepositoryDialog dialog = new EditRepositoryDialog();
+ 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),
+ gitblit.getPostReceiveScriptsInherited(null), null);
dialog.setVisible(true);
final RepositoryModel newRepository = dialog.getRepository();
final List<String> permittedUsers = dialog.getPermittedUsers();
+ final List<String> permittedTeams = dialog.getPermittedTeams();
if (newRepository == null) {
return;
}
@@ -353,11 +380,15 @@
@Override
protected Boolean doRequest() throws IOException {
- boolean success = gitblit.createRepository(newRepository, permittedUsers);
+ boolean success = gitblit.createRepository(newRepository, permittedUsers,
+ permittedTeams);
if (success) {
gitblit.refreshRepositories();
if (permittedUsers.size() > 0) {
gitblit.refreshUsers();
+ }
+ if (permittedTeams.size() > 0) {
+ gitblit.refreshTeams();
}
}
return success;
@@ -367,6 +398,7 @@
protected void onSuccess() {
updateTable(false);
updateUsersTable();
+ updateTeamsTable();
}
@Override
@@ -385,16 +417,31 @@
* @param repository
*/
protected void editRepository(final RepositoryModel repository) {
- EditRepositoryDialog dialog = new EditRepositoryDialog(repository);
+ EditRepositoryDialog dialog = new EditRepositoryDialog(gitblit.getProtocolVersion(),
+ repository);
dialog.setLocationRelativeTo(RepositoriesPanel.this);
List<String> usernames = gitblit.getUsernames();
List<String> members = gitblit.getPermittedUsernames(repository);
dialog.setUsers(repository.owner, usernames, members);
+ 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();
+ final List<String> permittedTeams = dialog.getPermittedTeams();
if (revisedRepository == null) {
return;
}
@@ -404,10 +451,11 @@
@Override
protected Boolean doRequest() throws IOException {
boolean success = gitblit.updateRepository(repository.name, revisedRepository,
- permittedUsers);
+ permittedUsers, permittedTeams);
if (success) {
gitblit.refreshRepositories();
gitblit.refreshUsers();
+ gitblit.refreshTeams();
}
return success;
}
@@ -416,6 +464,7 @@
protected void onSuccess() {
updateTable(false);
updateUsersTable();
+ updateTeamsTable();
}
@Override
@@ -448,6 +497,7 @@
if (success) {
gitblit.refreshRepositories();
gitblit.refreshUsers();
+ gitblit.refreshTeams();
}
return success;
}
@@ -456,6 +506,7 @@
protected void onSuccess() {
updateTable(false);
updateUsersTable();
+ updateTeamsTable();
}
@Override
@@ -467,12 +518,12 @@
}
}
- protected void searchRepository(final RepositoryModel repository) {
- SearchDialog searchDialog = new SearchDialog(gitblit);
+ private void showSearchDialog(boolean isSearch, final RepositoryModel repository) {
+ final SearchDialog dialog = new SearchDialog(gitblit, isSearch);
if (repository != null) {
- searchDialog.selectRepository(repository);
+ dialog.selectRepository(repository);
}
- searchDialog.setLocationRelativeTo(this);
- searchDialog.setVisible(true);
+ dialog.setLocationRelativeTo(this);
+ dialog.setVisible(true);
}
}
--
Gitblit v1.9.1