Skip to content
Snippets Groups Projects
  1. Apr 29, 2015
  2. Apr 23, 2015
  3. Apr 16, 2015
  4. Apr 15, 2015
    • Jared Hancock's avatar
      custom-data: Address major confusion · 4efef017
      Jared Hancock authored
      This feature addresses a major issue with the initial implementation of the
      custom data system. The original system confused the usage of
      database-backed field (dynamic-fields) and their corresponding
      implementation. This created the need to crate awkward caching pieces to
      ensure that validation errors and data was maintained. Furthermore, the
      system confused the linking between form instances (dynamic-entry) and the
      form used to represent that entry.
      
      This patch addresses the confusion in two ways:
      
      Dynamic form entries do not link directly to the dynamic form. Instead, the
      ::getForm() method returns something from the forms API directly.
      Furthermore, the ::getFields() method does not return dynamic field
      instances (database backed / designed fields). Instead, the actual
      implementation of the fields from the forms API is retrieved. This allows
      the fields to *always* be cached, which helps preserve data and validation
      state.
      
      Secondly, the dynamic form uses the same system, so that requests to turn a
      dynamic form into a form (via ::getForm) will also result in the same
      behavior, again, where the fields are represented as forms API fields rather
      than the dynamic fields.
      
      So going forward, the dynamic fields are *only* used to create corresponding
      forms API field implementations. The are associated with the dynamic
      counterparts as sparingly as possible.
      4efef017
  5. Apr 10, 2015
  6. Apr 01, 2015
  7. Mar 23, 2015
  8. Mar 13, 2015
  9. Mar 06, 2015
  10. Mar 05, 2015
  11. Feb 17, 2015
  12. Feb 12, 2015
    • Jared Hancock's avatar
      Collaborators for threads, lock as a utility · 67d55198
      Jared Hancock authored
      This patch includes a slight database migration, and adjusts the
      functionality of a few core components.
      
        * Move collaborators from the ticket to the thread.
          This concept allows collaborators on any object which has a thread,
          including tasks.
      
        * Add flags to the thread entry
          This will allow flagging thread entries for different purposes.
          Initially this can be used to flag the original message of a thread in
          case a ticket / thread is created without an initial message.
      
        * Lock becomes more of a utility
          The lock is now disconnected from the ticket and is a separate utility.
          Separately, the ticket and task objects can have a reference to a lock
          object. Furthermore, when submitting some activities to tickets, the
          lock is verified to be owned by the respective agent, and the lock code
          must match a current lock code. The code is rotated on each acquire()
          call to guard against double submissions.
      
        * Collaborator is an ORM model
          The TicketUser class is broken up now so that the collaborator instance
          can exist apart from a ticket. Email message ids are now generated for
          collaborators without respect for a ticket so that collaborators can be
          properly supported on any thread.
      67d55198
  13. Feb 10, 2015
  14. Jan 05, 2015
    • Jared Hancock's avatar
      oops: Fix a few small issues · 3323e013
      Jared Hancock authored
        * Fix missing attachments join for Category (fixes #1654)
        * Fix crash on user account registration
        * Fix save button on user account (fixes #1655) — regression from bebc2d79
      3323e013
  15. Dec 30, 2014
    • Jared Hancock's avatar
      filters: Fix several small, major issues · ada4d9a0
      Jared Hancock authored
        * Fix incorrect mapping to user email address
        * Fix early rejecting of tickets — even if a filter earlier in the
          matching filter list had "stop on match" set
        * Fix ::stopOnMatch referring to incorrect db field
      
      The new logic abandons the early rejection logic in ticket create. Instead,
      the normal validation is completed as usual. Thereafter, the filter is
      initialized and applied to the ticket. Upon rejection, a RejectedException
      is thrown by the ::apply() method of the TicketFilter. The Ticket::create()
      method will handle the exception and reject the ticket.
      ada4d9a0
  16. Dec 11, 2014
  17. Dec 10, 2014
  18. Dec 08, 2014
  19. Nov 14, 2014
  20. Oct 07, 2014
  21. Sep 26, 2014
  22. Sep 24, 2014
  23. Aug 29, 2014
  24. Aug 22, 2014
  25. Aug 13, 2014
  26. Aug 07, 2014
Loading