Paul Martin
2016-04-06 2fca824e349f5fecbf71d940c4521644e92cb0dd
src/main/java/com/gitblit/tickets/ITicketService.java
@@ -48,6 +48,7 @@
import com.gitblit.models.TicketModel.Change;
import com.gitblit.models.TicketModel.Field;
import com.gitblit.models.TicketModel.Patchset;
import com.gitblit.models.TicketModel.PatchsetType;
import com.gitblit.models.TicketModel.Status;
import com.gitblit.tickets.TicketIndexer.Lucene;
import com.gitblit.utils.DeepCopier;
@@ -673,21 +674,24 @@
      Repository db = null;
      try {
         db = repositoryManager.getRepository(repository.name);
         TicketMilestone milestone = getMilestone(repository, oldName);
         TicketMilestone tm = getMilestone(repository, oldName);
         if (tm == null) {
            return false;
         }
         StoredConfig config = db.getConfig();
         config.unsetSection(MILESTONE, oldName);
         config.setString(MILESTONE, newName, STATUS, milestone.status.name());
         config.setString(MILESTONE, newName, COLOR, milestone.color);
         if (milestone.due != null) {
         config.setString(MILESTONE, newName, STATUS, tm.status.name());
         config.setString(MILESTONE, newName, COLOR, tm.color);
         if (tm.due != null) {
            config.setString(MILESTONE, newName, DUE,
                  new SimpleDateFormat(DUE_DATE_PATTERN).format(milestone.due));
                  new SimpleDateFormat(DUE_DATE_PATTERN).format(tm.due));
         }
         config.save();
         milestonesCache.remove(repository.name);
         TicketNotifier notifier = createNotifier();
         for (QueryResult qr : milestone.tickets) {
         for (QueryResult qr : tm.tickets) {
            Change change = new Change(createdBy);
            change.setField(Field.milestone, newName);
            TicketModel ticket = updateTicket(repository, qr.number, change);
@@ -741,6 +745,9 @@
      Repository db = null;
      try {
         TicketMilestone tm = getMilestone(repository, milestone);
         if (tm == null) {
            return false;
         }
         db = repositoryManager.getRepository(repository.name);
         StoredConfig config = db.getConfig();
         config.unsetSection(MILESTONE, milestone);
@@ -1207,6 +1214,30 @@
      TicketModel revisedTicket = updateTicket(repository, ticket.number, deletion);
      return revisedTicket;
   }
   /**
    * Deletes a patchset from a ticket.
    *
    * @param ticket
    * @param patchset
    *            the patchset to delete (should be the highest revision)
    * @param userName
    *          the user deleting the commit
    * @return the revised ticket if the deletion was successful
    * @since 1.8.0
    */
   public final TicketModel deletePatchset(TicketModel ticket, Patchset patchset, String userName) {
      Change deletion = new Change(userName);
      deletion.patchset = new Patchset();
      deletion.patchset.number = patchset.number;
      deletion.patchset.rev = patchset.rev;
      deletion.patchset.type = PatchsetType.Delete;
      RepositoryModel repository = repositoryManager.getRepositoryModel(ticket.repository);
      TicketModel revisedTicket = updateTicket(repository, ticket.number, deletion);
      return revisedTicket;
   }
   /**
    * Commit a ticket change to the repository.