From 30f9d25d77ccb5cd978d4cf8fa389ec819e90e95 Mon Sep 17 00:00:00 2001 From: Philip L. McMahon <philip.l.mcmahon@gmail.com> Date: Fri, 27 Jan 2012 02:02:19 -0500 Subject: [PATCH] Correct update of HEAD symbolic reference when target is a tag. --- src/com/gitblit/client/EditRepositoryDialog.java | 96 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 91 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java index 55f5268..ebc540f 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; /** @@ -89,6 +90,8 @@ private JCheckBox isFrozen; + private JTextField mailingListsField; + private JComboBox accessRestriction; private JComboBox federationStrategy; @@ -99,21 +102,31 @@ private JPalette<String> setsPalette; + private JPalette<String> teamsPalette; + + private JPalette<String> preReceivePalette; + + private JLabel preReceiveInherited; + + private JPalette<String> postReceivePalette; + + private JLabel postReceiveInherited; + 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); @@ -132,7 +145,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); @@ -155,6 +168,9 @@ skipSummaryMetrics = new JCheckBox(Translation.get("gb.skipSummaryMetricsDescription"), anRepository.skipSummaryMetrics); isFrozen = new JCheckBox(Translation.get("gb.isFrozenDescription"), anRepository.isFrozen); + + mailingListsField = new JTextField(ArrayUtils.isEmpty(anRepository.mailingLists) ? "" + : StringUtils.flattenStrings(anRepository.mailingLists, " "), 50); accessRestriction = new JComboBox(AccessRestrictionType.values()); accessRestriction.setRenderer(new AccessRestrictionRenderer()); @@ -187,12 +203,18 @@ 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); + + 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>(); @@ -203,10 +225,27 @@ federationPanel.add(newFieldPanel(Translation.get("gb.federationSets"), setsPalette), BorderLayout.CENTER); + preReceivePalette = new JPalette<String>(true); + preReceiveInherited = new JLabel(); + JPanel preReceivePanel = new JPanel(new BorderLayout(5, 5)); + preReceivePanel.add(preReceivePalette, BorderLayout.CENTER); + preReceivePanel.add(preReceiveInherited, BorderLayout.WEST); + + postReceivePalette = new JPalette<String>(true); + postReceiveInherited = new JLabel(); + JPanel postReceivePanel = new JPanel(new BorderLayout(5, 5)); + postReceivePanel.add(postReceivePalette, BorderLayout.CENTER); + postReceivePanel.add(postReceiveInherited, BorderLayout.WEST); + 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); + 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() { @@ -246,6 +285,7 @@ getContentPane().setLayout(new BorderLayout(5, 5)); getContentPane().add(centerPanel, BorderLayout.CENTER); pack(); + nameField.requestFocus(); } private JPanel newFieldPanel(String label, JComponent comp) { @@ -336,12 +376,27 @@ repository.skipSummaryMetrics = skipSummaryMetrics.isSelected(); repository.isFrozen = isFrozen.isSelected(); + String ml = mailingListsField.getText(); + if (!StringUtils.isEmpty(ml)) { + Set<String> list = new HashSet<String>(); + for (String address : ml.split("(,|\\s)")) { + if (StringUtils.isEmpty(address)) { + continue; + } + list.add(address.toLowerCase()); + } + repository.mailingLists = new ArrayList<String>(list); + } + repository.accessRestriction = (AccessRestrictionType) accessRestriction.getSelectedItem(); repository.federationStrategy = (FederationStrategy) federationStrategy.getSelectedItem(); if (repository.federationStrategy.exceeds(FederationStrategy.EXCLUDE)) { repository.federationSets = setsPalette.getSelections(); } + + repository.preReceiveScripts = preReceivePalette.getSelections(); + repository.postReceiveScripts = postReceivePalette.getSelections(); return true; } @@ -356,6 +411,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) { @@ -373,6 +432,29 @@ setsPalette.setObjects(all, selected); } + public void setPreReceiveScripts(List<String> all, List<String> inherited, List<String> selected) { + preReceivePalette.setObjects(all, selected); + showInherited(inherited, preReceiveInherited); + } + + public void setPostReceiveScripts(List<String> all, List<String> inherited, + List<String> selected) { + postReceivePalette.setObjects(all, selected); + showInherited(inherited, postReceiveInherited); + } + + private void showInherited(List<String> list, JLabel label) { + StringBuilder sb = new StringBuilder(); + if (list != null && list.size() > 0) { + sb.append("<html><body><b>INHERITED</b><ul style=\"margin-left:5px;list-style-type: none;\">"); + for (String script : list) { + sb.append("<li>").append(script).append("</li>"); + } + sb.append("</ul></body></html>"); + } + label.setText(sb.toString()); + } + public RepositoryModel getRepository() { if (canceled) { return null; @@ -384,6 +466,10 @@ return usersPalette.getSelections(); } + public List<String> getPermittedTeams() { + return teamsPalette.getSelections(); + } + /** * ListCellRenderer to display descriptive text about the access * restriction. -- Gitblit v1.9.1