From 4bd2037edddbf444ac9817e9d14710be45850a10 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 19 Dec 2011 18:00:29 -0500
Subject: [PATCH] RPC support for hook script selection

---
 src/com/gitblit/client/EditRepositoryDialog.java |   44 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index a70a617..44b6fc6 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -88,7 +88,7 @@
 	private JCheckBox skipSummaryMetrics;
 
 	private JCheckBox isFrozen;
-	
+
 	private JTextField mailRecipientsField;
 
 	private JComboBox accessRestriction;
@@ -98,10 +98,14 @@
 	private JComboBox ownerField;
 
 	private JPalette<String> usersPalette;
-	
+
 	private JPalette<String> setsPalette;
-	
+
 	private JPalette<String> teamsPalette;
+
+	private JPalette<String> preReceivePalette;
+
+	private JPalette<String> postReceivePalette;
 
 	private Set<String> repositoryNames;
 
@@ -162,7 +166,7 @@
 
 		mailRecipientsField = new JTextField(anRepository.mailRecipients == null ? ""
 				: StringUtils.flattenStrings(anRepository.mailRecipients, " "), 50);
-		
+
 		accessRestriction = new JComboBox(AccessRestrictionType.values());
 		accessRestriction.setRenderer(new AccessRestrictionRenderer());
 		accessRestriction.setSelectedItem(anRepository.accessRestriction);
@@ -216,6 +220,18 @@
 		federationPanel.add(newFieldPanel(Translation.get("gb.federationSets"), setsPalette),
 				BorderLayout.CENTER);
 
+		preReceivePalette = new JPalette<String>(true);
+		JPanel preReceivePanel = new JPanel(new BorderLayout(5, 5));
+		preReceivePanel.add(
+				newFieldPanel(Translation.get("gb.preReceiveScripts"), preReceivePalette),
+				BorderLayout.CENTER);
+
+		postReceivePalette = new JPalette<String>(true);
+		JPanel postReceivePanel = new JPanel(new BorderLayout(5, 5));
+		postReceivePanel.add(
+				newFieldPanel(Translation.get("gb.postReceiveScripts"), postReceivePalette),
+				BorderLayout.CENTER);
+
 		JTabbedPane panel = new JTabbedPane(JTabbedPane.TOP);
 		panel.addTab(Translation.get("gb.general"), fieldsPanel);
 		panel.addTab(Translation.get("gb.accessRestriction"), accessPanel);
@@ -223,6 +239,8 @@
 			panel.addTab(Translation.get("gb.teams"), teamsPanel);
 		}
 		panel.addTab(Translation.get("gb.federation"), federationPanel);
+		panel.addTab(Translation.get("gb.preReceiveScripts"), preReceivePanel);
+		panel.addTab(Translation.get("gb.postReceiveScripts"), postReceivePanel);
 
 		JButton createButton = new JButton(Translation.get("gb.save"));
 		createButton.addActionListener(new ActionListener() {
@@ -352,8 +370,9 @@
 		repository.skipSizeCalculation = skipSizeCalculation.isSelected();
 		repository.skipSummaryMetrics = skipSummaryMetrics.isSelected();
 		repository.isFrozen = isFrozen.isSelected();
-		
-		repository.mailRecipients = StringUtils.getStringsFromValue(mailRecipientsField.getText().trim(), " ");
+
+		repository.mailRecipients = StringUtils.getStringsFromValue(mailRecipientsField.getText()
+				.trim(), " ");
 
 		repository.accessRestriction = (AccessRestrictionType) accessRestriction.getSelectedItem();
 		repository.federationStrategy = (FederationStrategy) federationStrategy.getSelectedItem();
@@ -361,6 +380,9 @@
 		if (repository.federationStrategy.exceeds(FederationStrategy.EXCLUDE)) {
 			repository.federationSets = setsPalette.getSelections();
 		}
+
+		repository.preReceiveScripts = preReceivePalette.getSelections();
+		repository.postReceiveScripts = postReceivePalette.getSelections();
 		return true;
 	}
 
@@ -376,7 +398,7 @@
 		}
 		usersPalette.setObjects(all, selected);
 	}
-	
+
 	public void setTeams(List<String> all, List<String> selected) {
 		teamsPalette.setObjects(all, selected);
 	}
@@ -396,6 +418,14 @@
 		setsPalette.setObjects(all, selected);
 	}
 
+	public void setPreReceiveScripts(List<String> all, List<String> selected) {
+		preReceivePalette.setObjects(all, selected);
+	}
+
+	public void setPostReceiveScripts(List<String> all, List<String> selected) {
+		postReceivePalette.setObjects(all, selected);
+	}
+
 	public RepositoryModel getRepository() {
 		if (canceled) {
 			return null;

--
Gitblit v1.9.1