James Moger
2014-03-07 31e1bfd91836f35a6482431956a03b831e9ae956
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
1 files modified
25 ■■■■■ changed files
src/main/java/com/gitblit/wicket/pages/TicketPage.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/TicketPage.java
@@ -731,15 +731,22 @@
         *  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);