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 | 82 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 75 insertions(+), 7 deletions(-) diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java index 0955d7b..a70a617 100644 --- a/src/com/gitblit/client/EditRepositoryDialog.java +++ b/src/com/gitblit/client/EditRepositoryDialog.java @@ -24,6 +24,7 @@ import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; @@ -42,8 +43,10 @@ import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; +import javax.swing.JRootPane; import javax.swing.JTabbedPane; import javax.swing.JTextField; +import javax.swing.KeyStroke; import javax.swing.ListCellRenderer; import com.gitblit.Constants.AccessRestrictionType; @@ -59,6 +62,8 @@ public class EditRepositoryDialog extends JDialog { private static final long serialVersionUID = 1L; + + private final String repositoryName; private final RepositoryModel repository; @@ -78,7 +83,13 @@ private JCheckBox showReadme; + private JCheckBox skipSizeCalculation; + + private JCheckBox skipSummaryMetrics; + private JCheckBox isFrozen; + + private JTextField mailRecipientsField; private JComboBox accessRestriction; @@ -87,30 +98,45 @@ 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()); } - private void initialize(RepositoryModel anRepository) { + @Override + protected JRootPane createRootPane() { + KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); + JRootPane rootPane = new JRootPane(); + rootPane.registerKeyboardAction(new ActionListener() { + public void actionPerformed(ActionEvent actionEvent) { + setVisible(false); + } + }, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW); + return rootPane; + } + + 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); @@ -128,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); @@ -156,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>(); @@ -176,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")); @@ -216,7 +262,7 @@ getContentPane().setLayout(new BorderLayout(5, 5)); getContentPane().add(centerPanel, BorderLayout.CENTER); pack(); - setLocationRelativeTo(null); + nameField.requestFocus(); } private JPanel newFieldPanel(String label, JComponent comp) { @@ -273,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) { @@ -293,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(); @@ -315,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) { @@ -343,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