From 0e44acbb2fec928a1606dc60f427a148fff405c9 Mon Sep 17 00:00:00 2001
From: Mohamed Ragab <moragab@gmail.com>
Date: Wed, 02 May 2012 11:15:01 -0400
Subject: [PATCH] Added a script to facilitate setting the proxy host and port and no proxy hosts, and then it concatenates all the java system properties for setting the java proxy configurations and puts the resulting string in an environment variable JAVA_PROXY_CONFIG, modified the scirpts gitblit,  gitblit-ubuntu, and gitblit-centos to source the java-proxy-config.sh script and then include the resulting java proxy configuration in the java command

---
 src/com/gitblit/client/EditRepositoryDialog.java |  163 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 111 insertions(+), 52 deletions(-)

diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index e4a332a..156de15 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -52,6 +52,7 @@
 import com.gitblit.Constants.AccessRestrictionType;
 import com.gitblit.Constants.FederationStrategy;
 import com.gitblit.models.RepositoryModel;
+import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.StringUtils;
 
 /**
@@ -97,18 +98,22 @@
 
 	private JComboBox ownerField;
 
+	private JComboBox headRefField;
+
 	private JPalette<String> usersPalette;
 
 	private JPalette<String> setsPalette;
 
 	private JPalette<String> teamsPalette;
+	
+	private JPalette<String> indexedBranchesPalette;
 
 	private JPalette<String> preReceivePalette;
-	
+
 	private JLabel preReceiveInherited;
 
 	private JPalette<String> postReceivePalette;
-	
+
 	private JLabel postReceiveInherited;
 
 	private Set<String> repositoryNames;
@@ -129,7 +134,8 @@
 		setModal(true);
 		setResizable(false);
 		setTitle(Translation.get("gb.edit") + ": " + aRepository.name);
-		setIconImage(new ImageIcon(getClass().getResource("/gitblt-favicon.png")).getImage());
+		setIconImage(new ImageIcon(getClass()
+				.getResource("/gitblt-favicon.png")).getImage());
 	}
 
 	@Override
@@ -145,31 +151,48 @@
 	}
 
 	private void initialize(int protocolVersion, RepositoryModel anRepository) {
-		nameField = new JTextField(anRepository.name == null ? "" : anRepository.name, 35);
+		nameField = new JTextField(anRepository.name == null ? ""
+				: anRepository.name, 35);
 		descriptionField = new JTextField(anRepository.description == null ? ""
 				: anRepository.description, 35);
 
-		JTextField originField = new JTextField(anRepository.origin == null ? ""
-				: anRepository.origin, 40);
+		JTextField originField = new JTextField(
+				anRepository.origin == null ? "" : anRepository.origin, 40);
 		originField.setEditable(false);
+
+		if (ArrayUtils.isEmpty(anRepository.availableRefs)) {
+			headRefField = new JComboBox();
+			headRefField.setEnabled(false);			
+		} else {
+			headRefField = new JComboBox(
+					anRepository.availableRefs.toArray());
+			headRefField.setSelectedItem(anRepository.HEAD);
+		}
 
 		ownerField = new JComboBox();
 
 		useTickets = new JCheckBox(Translation.get("gb.useTicketsDescription"),
 				anRepository.useTickets);
-		useDocs = new JCheckBox(Translation.get("gb.useDocsDescription"), anRepository.useDocs);
-		showRemoteBranches = new JCheckBox(Translation.get("gb.showRemoteBranchesDescription"),
+		useDocs = new JCheckBox(Translation.get("gb.useDocsDescription"),
+				anRepository.useDocs);
+		showRemoteBranches = new JCheckBox(
+				Translation.get("gb.showRemoteBranchesDescription"),
 				anRepository.showRemoteBranches);
 		showReadme = new JCheckBox(Translation.get("gb.showReadmeDescription"),
 				anRepository.showReadme);
-		skipSizeCalculation = new JCheckBox(Translation.get("gb.skipSizeCalculationDescription"),
+		skipSizeCalculation = new JCheckBox(
+				Translation.get("gb.skipSizeCalculationDescription"),
 				anRepository.skipSizeCalculation);
-		skipSummaryMetrics = new JCheckBox(Translation.get("gb.skipSummaryMetricsDescription"),
+		skipSummaryMetrics = new JCheckBox(
+				Translation.get("gb.skipSummaryMetricsDescription"),
 				anRepository.skipSummaryMetrics);
-		isFrozen = new JCheckBox(Translation.get("gb.isFrozenDescription"), anRepository.isFrozen);
+		isFrozen = new JCheckBox(Translation.get("gb.isFrozenDescription"),
+				anRepository.isFrozen);
 
-		mailingListsField = new JTextField(anRepository.mailingLists == null ? ""
-				: StringUtils.flattenStrings(anRepository.mailingLists, " "), 50);
+		mailingListsField = new JTextField(
+				ArrayUtils.isEmpty(anRepository.mailingLists) ? ""
+						: StringUtils.flattenStrings(anRepository.mailingLists,
+								" "), 50);
 
 		accessRestriction = new JComboBox(AccessRestrictionType.values());
 		accessRestriction.setRenderer(new AccessRestrictionRenderer());
@@ -188,41 +211,60 @@
 
 		JPanel fieldsPanel = new JPanel(new GridLayout(0, 1));
 		fieldsPanel.add(newFieldPanel(Translation.get("gb.name"), nameField));
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.description"), descriptionField));
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.origin"), originField));
+		fieldsPanel.add(newFieldPanel(Translation.get("gb.description"),
+				descriptionField));
+		fieldsPanel
+				.add(newFieldPanel(Translation.get("gb.origin"), originField));
+		fieldsPanel.add(newFieldPanel(Translation.get("gb.headRef"), headRefField));
 		fieldsPanel.add(newFieldPanel(Translation.get("gb.owner"), ownerField));
 
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.enableTickets"), useTickets));
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.enableDocs"), useDocs));
+		fieldsPanel.add(newFieldPanel(Translation.get("gb.enableTickets"),
+				useTickets));
 		fieldsPanel
-				.add(newFieldPanel(Translation.get("gb.showRemoteBranches"), showRemoteBranches));
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.showReadme"), showReadme));
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.skipSizeCalculation"),
-				skipSizeCalculation));
+				.add(newFieldPanel(Translation.get("gb.enableDocs"), useDocs));
+		fieldsPanel.add(newFieldPanel(Translation.get("gb.showRemoteBranches"),
+				showRemoteBranches));
+		fieldsPanel.add(newFieldPanel(Translation.get("gb.showReadme"),
+				showReadme));
 		fieldsPanel
-				.add(newFieldPanel(Translation.get("gb.skipSummaryMetrics"), skipSummaryMetrics));
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.isFrozen"), isFrozen));
-		fieldsPanel.add(newFieldPanel(Translation.get("gb.mailingLists"), mailingListsField));
+				.add(newFieldPanel(Translation.get("gb.skipSizeCalculation"),
+						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 accessPanel = new JPanel(new BorderLayout(5, 5));
-		accessPanel.add(newFieldPanel(Translation.get("gb.accessRestriction"), accessRestriction),
-				BorderLayout.NORTH);
-		accessPanel.add(newFieldPanel(Translation.get("gb.permittedUsers"), usersPalette),
-				BorderLayout.CENTER);
+		accessPanel.add(
+				newFieldPanel(Translation.get("gb.accessRestriction"),
+						accessRestriction), BorderLayout.NORTH);
+		accessPanel.add(
+				newFieldPanel(Translation.get("gb.permittedUsers"),
+						usersPalette), BorderLayout.CENTER);
 
 		teamsPalette = new JPalette<String>();
 		JPanel teamsPanel = new JPanel(new BorderLayout(5, 5));
-		teamsPanel.add(newFieldPanel(Translation.get("gb.permittedTeams"), teamsPalette),
-				BorderLayout.CENTER);
+		teamsPanel.add(
+				newFieldPanel(Translation.get("gb.permittedTeams"),
+						teamsPalette), BorderLayout.CENTER);
 
 		setsPalette = new JPalette<String>();
 		JPanel federationPanel = new JPanel(new BorderLayout(5, 5));
 		federationPanel.add(
-				newFieldPanel(Translation.get("gb.federationStrategy"), federationStrategy),
-				BorderLayout.NORTH);
-		federationPanel.add(newFieldPanel(Translation.get("gb.federationSets"), setsPalette),
-				BorderLayout.CENTER);
+				newFieldPanel(Translation.get("gb.federationStrategy"),
+						federationStrategy), BorderLayout.NORTH);
+		federationPanel
+				.add(newFieldPanel(Translation.get("gb.federationSets"),
+						setsPalette), BorderLayout.CENTER);
+
+		indexedBranchesPalette = new JPalette<String>();
+		JPanel indexedBranchesPanel = new JPanel(new BorderLayout(5, 5));
+		indexedBranchesPanel
+				.add(newFieldPanel(Translation.get("gb.indexedBranches"),
+						indexedBranchesPalette), BorderLayout.CENTER);
 
 		preReceivePalette = new JPalette<String>(true);
 		preReceiveInherited = new JLabel();
@@ -243,6 +285,9 @@
 			panel.addTab(Translation.get("gb.teams"), teamsPanel);
 		}
 		panel.addTab(Translation.get("gb.federation"), federationPanel);
+		if (protocolVersion >= 3) {
+			panel.addTab(Translation.get("gb.indexedBranches"), indexedBranchesPanel);
+		}
 		panel.addTab(Translation.get("gb.preReceiveScripts"), preReceivePanel);
 		panel.addTab(Translation.get("gb.postReceiveScripts"), postReceivePanel);
 
@@ -326,7 +371,8 @@
 		// confirm valid characters in repository name
 		Character c = StringUtils.findInvalidCharacter(rname);
 		if (c != null) {
-			error(MessageFormat.format("Illegal character ''{0}'' in repository name!", c));
+			error(MessageFormat.format(
+					"Illegal character ''{0}'' in repository name!", c));
 			return false;
 		}
 
@@ -337,17 +383,18 @@
 			// is case-insensitive, regardless of the Gitblit server's
 			// filesystem
 			if (repositoryNames.contains(rname.toLowerCase())) {
-				error(MessageFormat.format(
-						"Can not create repository ''{0}'' because it already exists.", rname));
+				error(MessageFormat
+						.format("Can not create repository ''{0}'' because it already exists.",
+								rname));
 				return false;
 			}
 		} else {
 			// check rename collision
 			if (!repositoryName.equalsIgnoreCase(rname)) {
 				if (repositoryNames.contains(rname.toLowerCase())) {
-					error(MessageFormat.format(
-							"Failed to rename ''{0}'' because ''{1}'' already exists.",
-							repositoryName, rname));
+					error(MessageFormat
+							.format("Failed to rename ''{0}'' because ''{1}'' already exists.",
+									repositoryName, rname));
 					return false;
 				}
 			}
@@ -365,8 +412,10 @@
 
 		repository.name = rname;
 		repository.description = descriptionField.getText();
-		repository.owner = ownerField.getSelectedItem() == null ? null : ownerField
-				.getSelectedItem().toString();
+		repository.owner = ownerField.getSelectedItem() == null ? null
+				: ownerField.getSelectedItem().toString();
+		repository.HEAD = headRefField.getSelectedItem() == null ? null
+				: headRefField.getSelectedItem().toString();
 		repository.useTickets = useTickets.isSelected();
 		repository.useDocs = useDocs.isSelected();
 		repository.showRemoteBranches = showRemoteBranches.isSelected();
@@ -387,13 +436,16 @@
 			repository.mailingLists = new ArrayList<String>(list);
 		}
 
-		repository.accessRestriction = (AccessRestrictionType) accessRestriction.getSelectedItem();
-		repository.federationStrategy = (FederationStrategy) federationStrategy.getSelectedItem();
+		repository.accessRestriction = (AccessRestrictionType) accessRestriction
+				.getSelectedItem();
+		repository.federationStrategy = (FederationStrategy) federationStrategy
+				.getSelectedItem();
 
 		if (repository.federationStrategy.exceeds(FederationStrategy.EXCLUDE)) {
 			repository.federationSets = setsPalette.getSelections();
 		}
-
+		
+		repository.indexedBranches = indexedBranchesPalette.getSelections();
 		repository.preReceiveScripts = preReceivePalette.getSelections();
 		repository.postReceiveScripts = postReceivePalette.getSelections();
 		return true;
@@ -430,8 +482,13 @@
 	public void setFederationSets(List<String> all, List<String> selected) {
 		setsPalette.setObjects(all, selected);
 	}
+	
+	public void setIndexedBranches(List<String> all, List<String> selected) {
+		indexedBranchesPalette.setObjects(all, selected);
+	}
 
-	public void setPreReceiveScripts(List<String> all, List<String> inherited, List<String> selected) {
+	public void setPreReceiveScripts(List<String> all, List<String> inherited,
+			List<String> selected) {
 		preReceivePalette.setObjects(all, selected);
 		showInherited(inherited, preReceiveInherited);
 	}
@@ -474,13 +531,14 @@
 	 * restriction.
 	 * 
 	 */
-	private class AccessRestrictionRenderer extends JLabel implements ListCellRenderer {
+	private class AccessRestrictionRenderer extends JLabel implements
+			ListCellRenderer {
 
 		private static final long serialVersionUID = 1L;
 
 		@Override
-		public Component getListCellRendererComponent(JList list, Object value, int index,
-				boolean isSelected, boolean cellHasFocus) {
+		public Component getListCellRendererComponent(JList list, Object value,
+				int index, boolean isSelected, boolean cellHasFocus) {
 			if (value instanceof AccessRestrictionType) {
 				AccessRestrictionType restriction = (AccessRestrictionType) value;
 				switch (restriction) {
@@ -508,13 +566,14 @@
 	 * ListCellRenderer to display descriptive text about the federation
 	 * strategy.
 	 */
-	private class FederationStrategyRenderer extends JLabel implements ListCellRenderer {
+	private class FederationStrategyRenderer extends JLabel implements
+			ListCellRenderer {
 
 		private static final long serialVersionUID = 1L;
 
 		@Override
-		public Component getListCellRendererComponent(JList list, Object value, int index,
-				boolean isSelected, boolean cellHasFocus) {
+		public Component getListCellRendererComponent(JList list, Object value,
+				int index, boolean isSelected, boolean cellHasFocus) {
 			if (value instanceof FederationStrategy) {
 				FederationStrategy strategy = (FederationStrategy) value;
 				switch (strategy) {

--
Gitblit v1.9.1