From f2dff4ea2ba10dca13b54d5968c5021f071b3ddd Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 28 Dec 2011 20:40:31 -0500
Subject: [PATCH] Show inherited push scripts in Manager

---
 src/com/gitblit/client/EditTeamDialog.java       |   38 ++++++++++++++----
 src/com/gitblit/client/RepositoriesPanel.java    |   10 +++--
 src/com/gitblit/client/TeamsPanel.java           |   10 +++--
 src/com/gitblit/client/EditRepositoryDialog.java |   35 +++++++++++++----
 4 files changed, 68 insertions(+), 25 deletions(-)

diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index b727862..e4a332a 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -104,8 +104,12 @@
 	private JPalette<String> teamsPalette;
 
 	private JPalette<String> preReceivePalette;
+	
+	private JLabel preReceiveInherited;
 
 	private JPalette<String> postReceivePalette;
+	
+	private JLabel postReceiveInherited;
 
 	private Set<String> repositoryNames;
 
@@ -221,16 +225,16 @@
 				BorderLayout.CENTER);
 
 		preReceivePalette = new JPalette<String>(true);
+		preReceiveInherited = new JLabel();
 		JPanel preReceivePanel = new JPanel(new BorderLayout(5, 5));
-		preReceivePanel.add(
-				newFieldPanel(Translation.get("gb.preReceiveScripts"), preReceivePalette),
-				BorderLayout.CENTER);
+		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(
-				newFieldPanel(Translation.get("gb.postReceiveScripts"), postReceivePalette),
-				BorderLayout.CENTER);
+		postReceivePanel.add(postReceivePalette, BorderLayout.CENTER);
+		postReceivePanel.add(postReceiveInherited, BorderLayout.WEST);
 
 		JTabbedPane panel = new JTabbedPane(JTabbedPane.TOP);
 		panel.addTab(Translation.get("gb.general"), fieldsPanel);
@@ -427,12 +431,27 @@
 		setsPalette.setObjects(all, selected);
 	}
 
-	public void setPreReceiveScripts(List<String> all, List<String> 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> selected) {
+	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() {
diff --git a/src/com/gitblit/client/EditTeamDialog.java b/src/com/gitblit/client/EditTeamDialog.java
index 49669e2..80e4160 100644
--- a/src/com/gitblit/client/EditTeamDialog.java
+++ b/src/com/gitblit/client/EditTeamDialog.java
@@ -73,7 +73,11 @@
 
 	private JPalette<String> preReceivePalette;
 
+	private JLabel preReceiveInherited;
+
 	private JPalette<String> postReceivePalette;
+
+	private JLabel postReceiveInherited;
 
 	private Set<String> teamnames;
 
@@ -146,16 +150,16 @@
 		usersPanel.add(userPalette, BorderLayout.CENTER);
 
 		preReceivePalette = new JPalette<String>(true);
+		preReceiveInherited = new JLabel();
 		JPanel preReceivePanel = new JPanel(new BorderLayout(5, 5));
-		preReceivePanel.add(
-				newFieldPanel(Translation.get("gb.preReceiveScripts"), preReceivePalette),
-				BorderLayout.CENTER);
-
+		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(
-				newFieldPanel(Translation.get("gb.postReceiveScripts"), postReceivePalette),
-				BorderLayout.CENTER);
+		postReceivePanel.add(postReceivePalette, BorderLayout.CENTER);		
+		postReceivePanel.add(postReceiveInherited, BorderLayout.WEST);
 
 		JTabbedPane panel = new JTabbedPane(JTabbedPane.TOP);
 		panel.addTab(Translation.get("gb.general"), fieldsPanelTop);
@@ -303,20 +307,36 @@
 		userPalette.setObjects(users, selected);
 	}
 
-	public void setPreReceiveScripts(List<String> unused, List<String> selected) {
+	public void setPreReceiveScripts(List<String> unused, List<String> inherited,
+			List<String> selected) {
 		Collections.sort(unused);
 		if (selected != null) {
 			Collections.sort(selected);
 		}
 		preReceivePalette.setObjects(unused, selected);
+		showInherited(inherited, preReceiveInherited);
 	}
 
-	public void setPostReceiveScripts(List<String> unused, List<String> selected) {
+	public void setPostReceiveScripts(List<String> unused, List<String> inherited,
+			List<String> selected) {
 		Collections.sort(unused);
 		if (selected != null) {
 			Collections.sort(selected);
 		}
 		postReceivePalette.setObjects(unused, 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 TeamModel getTeam() {
diff --git a/src/com/gitblit/client/RepositoriesPanel.java b/src/com/gitblit/client/RepositoriesPanel.java
index 50284be..104010d 100644
--- a/src/com/gitblit/client/RepositoriesPanel.java
+++ b/src/com/gitblit/client/RepositoriesPanel.java
@@ -357,8 +357,10 @@
 		dialog.setTeams(gitblit.getTeamnames(), null);
 		dialog.setRepositories(gitblit.getRepositories());
 		dialog.setFederationSets(gitblit.getFederationSets(), null);
-		dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(null), null);
-		dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(null), null);
+		dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(null),
+				gitblit.getPreReceiveScriptsInherited(null), null);
+		dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(null),
+				gitblit.getPostReceiveScriptsInherited(null), null);
 		dialog.setVisible(true);
 		final RepositoryModel newRepository = dialog.getRepository();
 		final List<String> permittedUsers = dialog.getPermittedUsers();
@@ -418,9 +420,9 @@
 		dialog.setRepositories(gitblit.getRepositories());
 		dialog.setFederationSets(gitblit.getFederationSets(), repository.federationSets);
 		dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(repository),
-				repository.preReceiveScripts);
+				gitblit.getPreReceiveScriptsInherited(repository), repository.preReceiveScripts);
 		dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(repository),
-				repository.postReceiveScripts);
+				gitblit.getPostReceiveScriptsInherited(repository), repository.postReceiveScripts);
 		dialog.setVisible(true);
 		final RepositoryModel revisedRepository = dialog.getRepository();
 		final List<String> permittedUsers = dialog.getPermittedUsers();
diff --git a/src/com/gitblit/client/TeamsPanel.java b/src/com/gitblit/client/TeamsPanel.java
index b2a1873..7182566 100644
--- a/src/com/gitblit/client/TeamsPanel.java
+++ b/src/com/gitblit/client/TeamsPanel.java
@@ -257,8 +257,10 @@
 		dialog.setTeams(gitblit.getTeams());
 		dialog.setRepositories(gitblit.getRepositories(), null);
 		dialog.setUsers(gitblit.getUsernames(), null);
-		dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(null), null);
-		dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(null), null);
+		dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(null),
+				gitblit.getPreReceiveScriptsInherited(null), null);
+		dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(null),
+				gitblit.getPostReceiveScriptsInherited(null), null);
 		dialog.setVisible(true);
 		final TeamModel newTeam = dialog.getTeam();
 		if (newTeam == null) {
@@ -307,9 +309,9 @@
 		dialog.setUsers(gitblit.getUsernames(), team.users == null ? null : new ArrayList<String>(
 				team.users));
 		dialog.setPreReceiveScripts(gitblit.getPreReceiveScriptsUnused(null),
-				team.preReceiveScripts);
+				gitblit.getPreReceiveScriptsInherited(null), team.preReceiveScripts);
 		dialog.setPostReceiveScripts(gitblit.getPostReceiveScriptsUnused(null),
-				team.postReceiveScripts);
+				gitblit.getPostReceiveScriptsInherited(null), team.postReceiveScripts);
 		dialog.setVisible(true);
 		final TeamModel revisedTeam = dialog.getTeam();
 		if (revisedTeam == null) {

--
Gitblit v1.9.1