From 79dfe69726b6255464599ab852018e4d2ff96fdc Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 19 Oct 2012 22:47:35 -0400
Subject: [PATCH] Split edit repository page into tabs
---
src/com/gitblit/client/EditRepositoryDialog.java | 91 +++++++++++++++++++++++++++++++++++----------
1 files changed, 71 insertions(+), 20 deletions(-)
diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index 77878cb..0adf8a8 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -35,6 +35,7 @@
import java.util.Set;
import javax.swing.BoxLayout;
+import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
@@ -46,6 +47,7 @@
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
+import javax.swing.JRadioButton;
import javax.swing.JRootPane;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
@@ -55,7 +57,9 @@
import javax.swing.ScrollPaneConstants;
import com.gitblit.Constants.AccessRestrictionType;
+import com.gitblit.Constants.AuthorizationControl;
import com.gitblit.Constants.FederationStrategy;
+import com.gitblit.models.RegistrantAccessPermission;
import com.gitblit.models.RepositoryModel;
import com.gitblit.utils.ArrayUtils;
import com.gitblit.utils.StringUtils;
@@ -98,6 +102,14 @@
private JTextField mailingListsField;
private JComboBox accessRestriction;
+
+ private JRadioButton allowAuthenticated;
+
+ private JRadioButton allowNamed;
+
+ private JCheckBox allowForks;
+
+ private JCheckBox verifyCommitter;
private JComboBox federationStrategy;
@@ -105,11 +117,11 @@
private JComboBox headRefField;
- private JPalette<String> usersPalette;
+ private RegistrantPermissionsPanel usersPalette;
private JPalette<String> setsPalette;
- private JPalette<String> teamsPalette;
+ private RegistrantPermissionsPanel teamsPalette;
private JPalette<String> indexedBranchesPalette;
@@ -206,6 +218,24 @@
accessRestriction = new JComboBox(AccessRestrictionType.values());
accessRestriction.setRenderer(new AccessRestrictionRenderer());
accessRestriction.setSelectedItem(anRepository.accessRestriction);
+
+ boolean authenticated = anRepository.authorizationControl != null
+ && AuthorizationControl.AUTHENTICATED.equals(anRepository.authorizationControl);
+ allowAuthenticated = new JRadioButton(Translation.get("gb.allowAuthenticatedDescription"));
+ allowAuthenticated.setSelected(authenticated);
+ allowNamed = new JRadioButton(Translation.get("gb.allowNamedDescription"));
+ allowNamed.setSelected(!authenticated);
+
+ ButtonGroup group = new ButtonGroup();
+ group.add(allowAuthenticated);
+ group.add(allowNamed);
+
+ JPanel authorizationPanel = new JPanel(new GridLayout(0, 1));
+ authorizationPanel.add(allowAuthenticated);
+ authorizationPanel.add(allowNamed);
+
+ allowForks = new JCheckBox(Translation.get("gb.allowForksDescription"), anRepository.allowForks);
+ verifyCommitter = new JCheckBox(Translation.get("gb.verifyCommitterDescription"), anRepository.verifyCommitter);
// federation strategies - remove ORIGIN choice if this repository has
// no origin.
@@ -240,24 +270,34 @@
skipSizeCalculation));
fieldsPanel.add(newFieldPanel(Translation.get("gb.skipSummaryMetrics"),
skipSummaryMetrics));
- fieldsPanel
- .add(newFieldPanel(Translation.get("gb.isFrozen"), isFrozen));
fieldsPanel.add(newFieldPanel(Translation.get("gb.mailingLists"),
mailingListsField));
- usersPalette = new JPalette<String>();
+ JPanel clonePushPanel = new JPanel(new GridLayout(0, 1));
+ clonePushPanel
+ .add(newFieldPanel(Translation.get("gb.isFrozen"), isFrozen));
+ clonePushPanel
+ .add(newFieldPanel(Translation.get("gb.allowForks"), allowForks));
+ clonePushPanel
+ .add(newFieldPanel(Translation.get("gb.verifyCommitter"), verifyCommitter));
+
+ usersPalette = new RegistrantPermissionsPanel();
+ JPanel northAccessPanel = new JPanel(new BorderLayout(5, 5));
+ northAccessPanel.add(newFieldPanel(Translation.get("gb.accessRestriction"),
+ accessRestriction), BorderLayout.NORTH);
+ northAccessPanel.add(newFieldPanel(Translation.get("gb.authorizationControl"),
+ authorizationPanel), BorderLayout.CENTER);
+ northAccessPanel.add(clonePushPanel, BorderLayout.SOUTH);
+
JPanel accessPanel = new JPanel(new BorderLayout(5, 5));
- accessPanel.add(
- newFieldPanel(Translation.get("gb.accessRestriction"),
- accessRestriction), BorderLayout.NORTH);
- accessPanel.add(
- newFieldPanel(Translation.get("gb.permittedUsers"),
+ accessPanel.add(northAccessPanel, BorderLayout.NORTH);
+ accessPanel.add(newFieldPanel(Translation.get("gb.userPermissions"),
usersPalette), BorderLayout.CENTER);
- teamsPalette = new JPalette<String>();
+ teamsPalette = new RegistrantPermissionsPanel();
JPanel teamsPanel = new JPanel(new BorderLayout(5, 5));
teamsPanel.add(
- newFieldPanel(Translation.get("gb.permittedTeams"),
+ newFieldPanel(Translation.get("gb.teamPermissions"),
teamsPalette), BorderLayout.CENTER);
setsPalette = new JPalette<String>();
@@ -447,7 +487,10 @@
repository.showReadme = showReadme.isSelected();
repository.skipSizeCalculation = skipSizeCalculation.isSelected();
repository.skipSummaryMetrics = skipSummaryMetrics.isSelected();
+
repository.isFrozen = isFrozen.isSelected();
+ repository.allowForks = allowForks.isSelected();
+ repository.verifyCommitter = verifyCommitter.isSelected();
String ml = mailingListsField.getText();
if (!StringUtils.isEmpty(ml)) {
@@ -463,6 +506,8 @@
repository.accessRestriction = (AccessRestrictionType) accessRestriction
.getSelectedItem();
+ repository.authorizationControl = allowAuthenticated.isSelected() ?
+ AuthorizationControl.AUTHENTICATED : AuthorizationControl.NAMED;
repository.federationStrategy = (FederationStrategy) federationStrategy
.getSelectedItem();
@@ -495,16 +540,22 @@
this.accessRestriction.setSelectedItem(restriction);
}
- public void setUsers(String owner, List<String> all, List<String> selected) {
+ public void setAuthorizationControl(AuthorizationControl authorization) {
+ boolean authenticated = authorization != null && AuthorizationControl.AUTHENTICATED.equals(authorization);
+ this.allowAuthenticated.setSelected(authenticated);
+ this.allowNamed.setSelected(!authenticated);
+ }
+
+ public void setUsers(String owner, List<String> all, List<RegistrantAccessPermission> permissions) {
ownerField.setModel(new DefaultComboBoxModel(all.toArray()));
if (!StringUtils.isEmpty(owner)) {
ownerField.setSelectedItem(owner);
}
- usersPalette.setObjects(all, selected);
+ usersPalette.setObjects(all, permissions);
}
- public void setTeams(List<String> all, List<String> selected) {
- teamsPalette.setObjects(all, selected);
+ public void setTeams(List<String> all, List<RegistrantAccessPermission> permissions) {
+ teamsPalette.setObjects(all, permissions);
}
public void setRepositories(List<RepositoryModel> repositories) {
@@ -557,12 +608,12 @@
return repository;
}
- public List<String> getPermittedUsers() {
- return usersPalette.getSelections();
+ public List<RegistrantAccessPermission> getUserAccessPermissions() {
+ return usersPalette.getPermissions();
}
- public List<String> getPermittedTeams() {
- return teamsPalette.getSelections();
+ public List<RegistrantAccessPermission> getTeamAccessPermissions() {
+ return teamsPalette.getPermissions();
}
public void setCustomFields(RepositoryModel repository, Map<String, String> customFields) {
--
Gitblit v1.9.1