From 4affd0a3a4fe086b31a87d56616f74093d2ac715 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 07 Mar 2014 14:59:02 -0500
Subject: [PATCH] Display an explanation in ticket page if the user can't propose commits

---
 src/main/java/com/gitblit/wicket/pages/TicketPage.java |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/TicketPage.java b/src/main/java/com/gitblit/wicket/pages/TicketPage.java
index 4be9e69..7b492dc 100644
--- a/src/main/java/com/gitblit/wicket/pages/TicketPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/TicketPage.java
@@ -744,8 +744,22 @@
 				changeIdFrag.add(new Label("gitWorkflowSteps", getProposeWorkflow("propose_git.md", repoUrl, ticket.number)).setEscapeModelStrings(false));
 				add(changeIdFrag);
 			} else {
-				// ticket is resolved OR repository is rejecting new patchsets
-				add(new Label("patchset").setVisible(false));
+				// explain why you can't propose a patchset
+				Fragment fragment = new Fragment("patchset", "canNotProposeFragment", this);
+				String reason = "";
+				if (ticket.isClosed()) {
+					reason = getString("gb.ticketIsClosed");
+				} else if (repository.isMirror) {
+					reason = getString("gb.repositoryIsMirror");
+				} else if (repository.isFrozen) {
+					reason = getString("gb.repositoryIsFrozen");
+				} else if (!repository.acceptNewPatchsets) {
+					reason = getString("gb.repositoryDoesNotAcceptPatchsets");
+				} else {
+					reason = getString("gb.serverDoesNotAcceptPatchsets");
+				}
+				fragment.add(new Label("reason", reason));
+				add(fragment);
 			}
 		} else {
 			// show current patchset

--
Gitblit v1.9.1