James Moger
2014-10-19 faed6ecc170ffaeea6e0c67eb8b607bb526ff6f9
src/main/java/com/gitblit/models/TicketModel.java
@@ -35,6 +35,7 @@
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.TreeSet;
import java.util.regex.Matcher;
@@ -636,7 +637,7 @@
      }
      public boolean hasComment() {
         return comment != null && !comment.isDeleted();
         return comment != null && !comment.isDeleted() && comment.text != null;
      }
      public Comment comment(String text) {
@@ -785,7 +786,21 @@
         for (String item : items) {
            list.add(prefix + item);
         }
         setField(field, join(list, ","));
         if (hasField(field)) {
            String flat = getString(field);
            if (isEmpty(flat)) {
               // field is empty, use this list
               setField(field, join(list, ","));
            } else {
               // merge this list into the existing field list
               Set<String> set = new TreeSet<String>(Arrays.asList(flat.split(",")));
               set.addAll(list);
               setField(field, join(set, ","));
            }
         } else {
            // does not have a list for this field
            setField(field, join(list, ","));
         }
      }
      public String getId() {
@@ -1138,7 +1153,8 @@
   }
   public static enum Score {
      approved(2), looks_good(1), not_reviewed(0), needs_improvement(-1), vetoed(-2);
      approved(2), looks_good(1), not_reviewed(0), needs_improvement(-1), vetoed(
            -2);
      final int value;
@@ -1154,6 +1170,15 @@
      public String toString() {
         return name().toLowerCase().replace('_', ' ');
      }
      public static Score fromScore(int score) {
         for (Score s : values()) {
            if (s.getValue() == score) {
               return s;
            }
         }
         throw new NoSuchElementException(String.valueOf(score));
      }
   }
   public static enum Field {
@@ -1162,12 +1187,12 @@
   }
   public static enum Type {
      Enhancement, Task, Bug, Proposal, Question;
      Enhancement, Task, Bug, Proposal, Question, Maintenance;
      public static Type defaultType = Task;
      public static Type [] choices() {
         return new Type [] { Enhancement, Task, Bug, Question };
         return new Type [] { Enhancement, Task, Bug, Question, Maintenance };
      }
      @Override
@@ -1201,13 +1226,15 @@
   }
   public static enum Status {
      New, Open, Resolved, Fixed, Merged, Wontfix, Declined, Duplicate, Invalid, On_Hold;
      New, Open, Closed, Resolved, Fixed, Merged, Wontfix, Declined, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required;
      public static Status [] requestWorkflow = { Open, Resolved, Declined, Duplicate, Invalid, On_Hold };
      public static Status [] requestWorkflow = { Open, Resolved, Declined, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required };
      public static Status [] bugWorkflow = { Open, Fixed, Wontfix, Duplicate, Invalid, On_Hold };
      public static Status [] bugWorkflow = { Open, Fixed, Wontfix, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required };
      public static Status [] proposalWorkflow = { Open, Declined, On_Hold};
      public static Status [] proposalWorkflow = { Open, Resolved, Declined, Abandoned, On_Hold, No_Change_Required };
      public static Status [] milestoneWorkflow = { Open, Closed, Abandoned, On_Hold };
      @Override
      public String toString() {