James Moger
2014-05-22 fd8cea4761b5382f23d06ed52608d1f556c4dbe5
src/main/java/com/gitblit/wicket/pages/TicketPage.java
@@ -86,6 +86,7 @@
import com.gitblit.utils.StringUtils;
import com.gitblit.utils.TimeUtils;
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.TicketsUI;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.BasePanel.JavascriptTextPrompt;
import com.gitblit.wicket.panels.CommentPanel;
@@ -102,7 +103,7 @@
 * @author James Moger
 *
 */
public class TicketPage extends TicketBasePage {
public class TicketPage extends RepositoryPage {
   static final String NIL = "<nil>";
@@ -154,7 +155,7 @@
      String href = urlFor(TicketsPage.class, params).toString();
      add(new ExternalLink("ticketNumber", href, "#" + ticket.number));
      Label headerStatus = new Label("headerStatus", ticket.status.toString());
      WicketUtils.setCssClass(headerStatus, getLozengeClass(ticket.status, false));
      WicketUtils.setCssClass(headerStatus, TicketsUI.getLozengeClass(ticket.status, false));
      add(headerStatus);
      add(new Label("ticketTitle", ticket.title));
      if (currentPatchset == null) {
@@ -277,7 +278,8 @@
      if (StringUtils.isEmpty(ticket.body)) {
         desc = getString("gb.noDescriptionGiven");
      } else {
         desc = MarkdownUtils.transformGFM(app().settings(), ticket.body, ticket.repository);
         String bugtraq = bugtraqProcessor().processText(getRepository(), repositoryName, ticket.body);
         desc = MarkdownUtils.transformGFM(app().settings(), bugtraq, ticket.repository);
      }
      add(new Label("ticketDescription", desc).setEscapeModelStrings(false));
@@ -317,10 +319,10 @@
       * LARGE STATUS INDICATOR WITH ICON (DISCUSSION TAB->SIDE BAR)
       */
      Fragment ticketStatus = new Fragment("ticketStatus", "ticketStatusFragment", this);
      Label ticketIcon = getStateIcon("ticketIcon", ticket);
      Label ticketIcon = TicketsUI.getStateIcon("ticketIcon", ticket);
      ticketStatus.add(ticketIcon);
      ticketStatus.add(new Label("ticketStatus", ticket.status.toString()));
      WicketUtils.setCssClass(ticketStatus, getLozengeClass(ticket.status, false));
      WicketUtils.setCssClass(ticketStatus, TicketsUI.getLozengeClass(ticket.status, false));
      add(ticketStatus);
@@ -370,7 +372,7 @@
                        setResponsePage(TicketsPage.class, getPageParameters());
                     }
                  };
                  String css = getStatusClass(item.getModel().getObject());
                  String css = TicketsUI.getStatusClass(item.getModel().getObject());
                  WicketUtils.setCssClass(link, css);
                  item.add(link);
               }
@@ -505,7 +507,7 @@
         add(new Label("ticketTopic").setVisible(false));
      } else {
         // process the topic using the bugtraq config to link things
         String topic = bugtraqProcessor().processPlainCommitMessage(getRepository(), repositoryName, ticket.topic);
         String topic = bugtraqProcessor().processText(getRepository(), repositoryName, ticket.topic);
         add(new Label("ticketTopic", topic).setEscapeModelStrings(false));
      }
@@ -665,7 +667,7 @@
                   */
                  Fragment frag = new Fragment("entry", "statusFragment", this);
                  Label status = new Label("statusChange", entry.getStatus().toString());
                  String css = getLozengeClass(entry.getStatus(), false);
                  String css = TicketsUI.getLozengeClass(entry.getStatus(), false);
                  WicketUtils.setCssClass(status, css);
                  for (IBehavior b : status.getBehaviors()) {
                     if (b instanceof SimpleAttributeModifier) {
@@ -684,7 +686,8 @@
                  /*
                   * COMMENT
                   */
                  String comment = MarkdownUtils.transformGFM(app().settings(), entry.comment.text, repositoryName);
                  String bugtraq = bugtraqProcessor().processText(getRepository(), repositoryName, entry.comment.text);
                  String comment = MarkdownUtils.transformGFM(app().settings(), bugtraq, repositoryName);
                  Fragment frag = new Fragment("entry", "commentFragment", this);
                  Label commentIcon = new Label("commentIcon");
                  if (entry.comment.src == CommentSource.Email) {
@@ -774,12 +777,19 @@
         Fragment patchsetFrag = new Fragment("patchset", "patchsetFragment", this);
         patchsetFrag.add(new Label("commitsInPatchset", MessageFormat.format(getString("gb.commitsInPatchsetN"), currentPatchset.number)));
         // current revision
         MarkupContainer panel = createPatchsetPanel("panel", repository, user);
         patchsetFrag.add(panel);
         addUserAttributions(patchsetFrag, currentRevision, avatarWidth);
         addUserAttributions(panel, currentRevision, 0);
         addDateAttributions(panel, currentRevision);
         patchsetFrag.add(createMergePanel(user, repository));
         if (ticket.isOpen()) {
            // current revision
            MarkupContainer panel = createPatchsetPanel("panel", repository, user);
            patchsetFrag.add(panel);
            addUserAttributions(patchsetFrag, currentRevision, avatarWidth);
            addUserAttributions(panel, currentRevision, 0);
            addDateAttributions(panel, currentRevision);
         } else {
            // current revision
            patchsetFrag.add(new Label("panel").setVisible(false));
         }
         // commits
         List<RevCommit> commits = JGitUtils.getRevLog(getRepository(), currentPatchset.base, currentPatchset.tip);
@@ -929,7 +939,7 @@
                     case status:
                        // special handling for status
                        Status status = event.getStatus();
                        String css = getLozengeClass(status, true);
                        String css = TicketsUI.getLozengeClass(status, true);
                        value = String.format("<span class=\"%1$s\">%2$s</span>", css, status.toString());
                        break;
                     default:
@@ -1141,7 +1151,6 @@
            WicketUtils.setChangeTypeCssClass(changeType, entry.changeType);
            setChangeTypeTooltip(changeType, entry.changeType);
            item.add(changeType);
            item.add(new DiffStatPanel("diffStat", entry.insertions, entry.deletions, true));
            boolean hasSubmodule = false;
            String submodulePath = null;
@@ -1184,6 +1193,7 @@
                  item.add(new LinkPanel("pathName", "list", displayPath, BlobDiffPage.class,
                        WicketUtils.newPathParameter(repositoryName, currentPatchset.tip, path), true));
               }
               item.add(new DiffStatPanel("diffStat", entry.insertions, entry.deletions, true));
            }
            // quick links
@@ -1213,7 +1223,6 @@
      addPtCheckoutInstructions(user, repository, panel);
      addGitCheckoutInstructions(user, repository, panel);
      panel.add(createMergePanel(user, repository));
      return panel;
   }
@@ -1519,14 +1528,14 @@
      switch (type) {
         case Rebase:
         case Rebase_Squash:
            typeCss = getLozengeClass(Status.Declined, false);
            typeCss = TicketsUI.getLozengeClass(Status.Declined, false);
            break;
         case Squash:
         case Amend:
            typeCss = getLozengeClass(Status.On_Hold, false);
            typeCss = TicketsUI.getLozengeClass(Status.On_Hold, false);
            break;
         case Proposal:
            typeCss = getLozengeClass(Status.New, false);
            typeCss = TicketsUI.getLozengeClass(Status.New, false);
            break;
         case FastForward:
         default: