From: James Moger Date: Fri, 7 Mar 2014 19:28:12 +0000 (-0500) Subject: Conditionally hide the propose patchset instructions X-Git-Tag: v1.4.0~22 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=31e1bfd91836f35a6482431956a03b831e9ae956;p=gitblit.git Conditionally hide the propose patchset instructions There are a few scenarios where a ticket without a patchset should not display propose instructions. 1. the ticket is resolved 2. the repository is configured to reject new patchsets or is read-only 3. the server is configured to reject new patchsets --- diff --git a/src/main/java/com/gitblit/wicket/pages/TicketPage.java b/src/main/java/com/gitblit/wicket/pages/TicketPage.java index 69f4fe7a..4be9e69f 100644 --- a/src/main/java/com/gitblit/wicket/pages/TicketPage.java +++ b/src/main/java/com/gitblit/wicket/pages/TicketPage.java @@ -731,15 +731,22 @@ public class TicketPage extends TicketBasePage { * PATCHSET TAB */ if (currentPatchset == null) { - // no patchset yet, show propose fragment - String repoUrl = getRepositoryUrl(user, repository); - Fragment changeIdFrag = new Fragment("patchset", "proposeFragment", this); - changeIdFrag.add(new Label("proposeInstructions", MarkdownUtils.transformMarkdown(getString("gb.proposeInstructions"))).setEscapeModelStrings(false)); - changeIdFrag.add(new Label("ptWorkflow", MessageFormat.format(getString("gb.proposeWith"), "Barnum"))); - changeIdFrag.add(new Label("ptWorkflowSteps", getProposeWorkflow("propose_pt.md", repoUrl, ticket.number)).setEscapeModelStrings(false)); - changeIdFrag.add(new Label("gitWorkflow", MessageFormat.format(getString("gb.proposeWith"), "Git"))); - changeIdFrag.add(new Label("gitWorkflowSteps", getProposeWorkflow("propose_git.md", repoUrl, ticket.number)).setEscapeModelStrings(false)); - add(changeIdFrag); + // no patchset available + if (ticket.isOpen() && app().tickets().isAcceptingNewPatchsets(repository)) { + // ticket & repo will accept a proposal patchset + // show the instructions for proposing a patchset + String repoUrl = getRepositoryUrl(user, repository); + Fragment changeIdFrag = new Fragment("patchset", "proposeFragment", this); + changeIdFrag.add(new Label("proposeInstructions", MarkdownUtils.transformMarkdown(getString("gb.proposeInstructions"))).setEscapeModelStrings(false)); + changeIdFrag.add(new Label("ptWorkflow", MessageFormat.format(getString("gb.proposeWith"), "Barnum"))); + changeIdFrag.add(new Label("ptWorkflowSteps", getProposeWorkflow("propose_pt.md", repoUrl, ticket.number)).setEscapeModelStrings(false)); + changeIdFrag.add(new Label("gitWorkflow", MessageFormat.format(getString("gb.proposeWith"), "Git"))); + 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)); + } } else { // show current patchset Fragment patchsetFrag = new Fragment("patchset", "patchsetFragment", this);