From 916e848bd77cc0a63f083ff48e5a2e4e788e1f51 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 19 Dec 2011 09:11:52 -0500
Subject: [PATCH] Fixed commit url in sendemail.groovy

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

diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index 9fc8e5c..a70a617 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -63,6 +63,8 @@
 
 	private static final long serialVersionUID = 1L;
 
+	private final String repositoryName;
+
 	private final RepositoryModel repository;
 
 	private boolean isCreate;
@@ -81,7 +83,13 @@
 
 	private JCheckBox showReadme;
 
+	private JCheckBox skipSizeCalculation;
+
+	private JCheckBox skipSummaryMetrics;
+
 	private JCheckBox isFrozen;
+	
+	private JTextField mailRecipientsField;
 
 	private JComboBox accessRestriction;
 
@@ -90,29 +98,32 @@
 	private JComboBox ownerField;
 
 	private JPalette<String> usersPalette;
-
+	
 	private JPalette<String> setsPalette;
+	
+	private JPalette<String> teamsPalette;
 
 	private Set<String> repositoryNames;
 
-	public EditRepositoryDialog() {
-		this(new RepositoryModel());
+	public EditRepositoryDialog(int protocolVersion) {
+		this(protocolVersion, new RepositoryModel());
 		this.isCreate = true;
 		setTitle(Translation.get("gb.newRepository"));
 	}
 
-	public EditRepositoryDialog(RepositoryModel aRepository) {
+	public EditRepositoryDialog(int protocolVersion, RepositoryModel aRepository) {
 		super();
+		this.repositoryName = aRepository.name;
 		this.repository = new RepositoryModel();
 		this.repositoryNames = new HashSet<String>();
 		this.isCreate = false;
-		initialize(aRepository);
+		initialize(protocolVersion, aRepository);
 		setModal(true);
 		setResizable(false);
 		setTitle(Translation.get("gb.edit") + ": " + aRepository.name);
 		setIconImage(new ImageIcon(getClass().getResource("/gitblt-favicon.png")).getImage());
 	}
-	
+
 	@Override
 	protected JRootPane createRootPane() {
 		KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
@@ -125,7 +136,7 @@
 		return rootPane;
 	}
 
-	private void initialize(RepositoryModel anRepository) {
+	private void initialize(int protocolVersion, RepositoryModel anRepository) {
 		nameField = new JTextField(anRepository.name == null ? "" : anRepository.name, 35);
 		descriptionField = new JTextField(anRepository.description == null ? ""
 				: anRepository.description, 35);
@@ -143,8 +154,15 @@
 				anRepository.showRemoteBranches);
 		showReadme = new JCheckBox(Translation.get("gb.showReadmeDescription"),
 				anRepository.showReadme);
+		skipSizeCalculation = new JCheckBox(Translation.get("gb.skipSizeCalculationDescription"),
+				anRepository.skipSizeCalculation);
+		skipSummaryMetrics = new JCheckBox(Translation.get("gb.skipSummaryMetricsDescription"),
+				anRepository.skipSummaryMetrics);
 		isFrozen = new JCheckBox(Translation.get("gb.isFrozenDescription"), anRepository.isFrozen);
 
+		mailRecipientsField = new JTextField(anRepository.mailRecipients == null ? ""
+				: StringUtils.flattenStrings(anRepository.mailRecipients, " "), 50);
+		
 		accessRestriction = new JComboBox(AccessRestrictionType.values());
 		accessRestriction.setRenderer(new AccessRestrictionRenderer());
 		accessRestriction.setSelectedItem(anRepository.accessRestriction);
@@ -171,13 +189,23 @@
 		fieldsPanel
 				.add(newFieldPanel(Translation.get("gb.showRemoteBranches"), showRemoteBranches));
 		fieldsPanel.add(newFieldPanel(Translation.get("gb.showReadme"), showReadme));
+		fieldsPanel.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.mailRecipients"), mailRecipientsField));
 
 		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);
+
+		teamsPalette = new JPalette<String>();
+		JPanel teamsPanel = new JPanel(new BorderLayout(5, 5));
+		teamsPanel.add(newFieldPanel(Translation.get("gb.permittedTeams"), teamsPalette),
 				BorderLayout.CENTER);
 
 		setsPalette = new JPalette<String>();
@@ -191,6 +219,9 @@
 		JTabbedPane panel = new JTabbedPane(JTabbedPane.TOP);
 		panel.addTab(Translation.get("gb.general"), fieldsPanel);
 		panel.addTab(Translation.get("gb.accessRestriction"), accessPanel);
+		if (protocolVersion >= 2) {
+			panel.addTab(Translation.get("gb.teams"), teamsPanel);
+		}
 		panel.addTab(Translation.get("gb.federation"), federationPanel);
 
 		JButton createButton = new JButton(Translation.get("gb.save"));
@@ -231,6 +262,7 @@
 		getContentPane().setLayout(new BorderLayout(5, 5));
 		getContentPane().add(centerPanel, BorderLayout.CENTER);
 		pack();
+		nameField.requestFocus();
 	}
 
 	private JPanel newFieldPanel(String label, JComponent comp) {
@@ -287,6 +319,16 @@
 						"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));
+					return false;
+				}
+			}
 		}
 
 		if (accessRestriction.getSelectedItem() == null) {
@@ -307,7 +349,11 @@
 		repository.useDocs = useDocs.isSelected();
 		repository.showRemoteBranches = showRemoteBranches.isSelected();
 		repository.showReadme = showReadme.isSelected();
+		repository.skipSizeCalculation = skipSizeCalculation.isSelected();
+		repository.skipSummaryMetrics = skipSummaryMetrics.isSelected();
 		repository.isFrozen = isFrozen.isSelected();
+		
+		repository.mailRecipients = StringUtils.getStringsFromValue(mailRecipientsField.getText().trim(), " ");
 
 		repository.accessRestriction = (AccessRestrictionType) accessRestriction.getSelectedItem();
 		repository.federationStrategy = (FederationStrategy) federationStrategy.getSelectedItem();
@@ -329,6 +375,10 @@
 			ownerField.setSelectedItem(owner);
 		}
 		usersPalette.setObjects(all, selected);
+	}
+	
+	public void setTeams(List<String> all, List<String> selected) {
+		teamsPalette.setObjects(all, selected);
 	}
 
 	public void setRepositories(List<RepositoryModel> repositories) {
@@ -357,6 +407,10 @@
 		return usersPalette.getSelections();
 	}
 
+	public List<String> getPermittedTeams() {
+		return teamsPalette.getSelections();
+	}
+
 	/**
 	 * ListCellRenderer to display descriptive text about the access
 	 * restriction.

--
Gitblit v1.9.1