Skip to content
Snippets Groups Projects
  1. Jun 08, 2015
  2. Jun 03, 2015
    • Jared Hancock's avatar
      3e99ceab
    • Jared Hancock's avatar
      Make several optimizations to ticket-view page · 091fe701
      Jared Hancock authored
      * Log events for AJAX collaborator list edits
      * Avoid extra selects for inline image handling
      * Avoid using htmLawed to add target="_blank" and class="no-pjax" to links
        in the ticket thread
      * Cache instances of IntlDateFormatter; seems expensive to set up
      * Cache filetypes Yaml in APC if available
      * Cache I18n::getDefaltLanguage() in the request
      * Avoid extraneous usage of Model::_inspect and Model::$meta
      * Add aggregated query support to the ORM
      * Lazily compile SQL query for InstrumentedLists
      * Apply `select_related` setting when setting up InstrumentedList instances
      * Slight optimization in SqlCompiler::getField
      * Avoid double compiling Sql annotations in the ORDER BY clause
      * Cache Thread::getEntries
      * Break out event types for ThreadEvent for more legible code
      * Eliminate one query from Ticket::loadDynamicData
      * Fix ticket number bolding if already answered
      * Use dependent subqueries for ticket statistics in the queue page, which is
        significantly faster for large data sets (like hundreds of attachments or
        thread entries)
      * Fixup sidebar layout on client knowledge base pages
      091fe701
    • Jared Hancock's avatar
      Fix several issues on thread editing · 973c6645
      Jared Hancock authored
      973c6645
    • Jared Hancock's avatar
      Fix numerous observed issues · fdef8182
      Jared Hancock authored
      * Fix crash in Ticket::getLastRespondent
      * Fix crash is ORM if using a superclass of a relationship from cache. For
        instance, if the cache contains an ObjectThread instance, but a
        TicketThread instance is required in the relationship. In such a case, use
        the cached data, but change this class. This; however, violates the single
        nature of cache entries.
      * Fix spurious events appearing after upgrade due to deleted tickets
      * Ensure floating content in thread-body divs does not float past the bottom
      * Provide an anchor to thread entries
      * Show thread entries before events where both have the same timestamp
      * Fix double events for collaborator additions
      * Credit email sender with collaborator addition
      * Fix incorrect rendering of collaborator addition event
      * Fix crash on new ticket due to non-static function
      * Fix missing sort on sub-query if explicitly declared in QuerySet
      * Fix missing parentheses in SQL for ['field__eq' => QuerySet]
      * Fix incorrect SQL on compileSelect for models with inherited $meta['table']
      * Dynamically adjust relative time client side
      fdef8182
    • Jared Hancock's avatar
      f5c2dfd8
    • Jared Hancock's avatar
      oops: Fix crash change ticket owner · a9d68c54
      Jared Hancock authored
      And also fix mishap events changing the ticket status
      a9d68c54
  3. May 28, 2015
  4. May 27, 2015
    • Jared Hancock's avatar
      file: Allow different names for duplicated content · 3bbe2933
      Jared Hancock authored
      This patch (which needs further development), introduces an extra field to
      the %attachment table to store a file's name, in the event that two files
      with the same content are stored in the database with differing names. In
      such a case, the name is stored in the %attachment table. This allows the
      attachment to specify a different name each time the same file is attached
      to something in the system.
      3bbe2933
    • Jared Hancock's avatar
      Rename %ticket_event to %thread_event · 71755a46
      Jared Hancock authored
      71755a46
  5. May 22, 2015
    • Jared Hancock's avatar
      search: Fix several small issues with search indexing · 13d09b60
      Jared Hancock authored
      * Reindexing did not properly flush the last batch of items to the search
        therefore reindexing would always miss the last few items.
      * Creating a new html thread entry with inline images resulted in empty
        search content
      * HTML tag stripping in HtmlThreadBody::getSearchable() would result in
        missing white space between some words, resulting in poor searchable
        content
      13d09b60
  6. May 21, 2015
  7. May 20, 2015
  8. May 13, 2015
  9. May 05, 2015
  10. May 04, 2015
  11. May 02, 2015
  12. Apr 30, 2015
    • Jared Hancock's avatar
      dae9fb2e
    • Jared Hancock's avatar
      Implement resend and arbitrary history · c161b596
      Jared Hancock authored
      Add in the ability for an agent to resend a response. Optionally editing the
      response before sending it, and setting the signature as is possible with
      the usual responses.
      
      When the response is resent, the edited version is marked as GUARDED, and
      subsequent edits will result in new links in the history chain. That is,
      when a response is edited and resent by an agent, that response will remain
      in the history chain.
      c161b596
    • Jared Hancock's avatar
      role: Add role for thread entry editing · 13509d5b
      Jared Hancock authored
      The new role would like be assigned to power users and would all such users
      access to edit any post by any user.
      
      Agents can always edit their own posts, and department managers can edit all
      posts while the ticket is in the department they manage.
      13509d5b
    • Jared Hancock's avatar
      Add concept of thread editing · 5570feca
      Jared Hancock authored
      Threads can be edited by marking the original as hidden and setting it's PID to
      the id of the new entry. The new entry has cloned data from the original and
      sets the `updated` timestamp to reflect the time of last edit. An edited flag
      is added to the new entry to reflect its origin.
      
      This patch suggests that agents can edit their own posts, department managers
      can edit posts while the ticket is in their department, and that help desk
      admins can edit anything.
      
      If a post is edited more than once, only the most recent edit is kept.
      5570feca
  13. Apr 20, 2015
  14. Apr 15, 2015
    • Jared Hancock's avatar
      ca614b96
    • Jared Hancock's avatar
      mailer: Embed the Message-Id token in @class · 06a9b903
      Jared Hancock authored
      Several mail clients do not return the Message-ID header in a In-Reply-To or
      References header as they should. The assumption by such mail clients is
      that the email be threaded based on the Subject header. However, osTicket
      does not require the ticket number to be placed in the Subject header and so
      has trouble threading email from such systems. osTicket embeds a copy of the
      Message-ID header (or compatible version) in the body of the message in
      hopes part of the message will be returned.
      
      Many mail clients (such as osTicket) strip and clean the HTML when
      processing HTML email. Previously, the message-id token was embedded in a
      @data-mid attribute, which was likely stripped before the HTML email would
      be returned back to osTicket.
      
      This patch suggests that the token be placed in a @class attribute, which
      has a much better chance of returning to osTicket.
      06a9b903
  15. Apr 01, 2015
  16. Mar 25, 2015
    • Jared Hancock's avatar
      thread: Defer loading email header information · 92154704
      Jared Hancock authored
      The %ticket_email_info table needs an index on thread_id. This is done in
      the `develop-next` branch; however, this patch helps alleviate performance
      issues on the main branch until the `develop-next` branch is collapsed for
      main line development.
      92154704
  17. Mar 19, 2015
  18. Mar 18, 2015
  19. Mar 05, 2015
  20. Mar 02, 2015
    • Jared Hancock's avatar
      oops: Fix corruption of thread body posted by collabs · b143ea6f
      Jared Hancock authored
      If the system receives an email by a collaborator which has not yet been
      added to the ticket (a friend of a friend — that is, a collaborator forwards
      an email to a third-party), a header is added to the thread body something
      like:
      
      Received From: afriendofafriend@mycompany.tld
      
      However, if the thread body is text and the HTML ticket thread is enabled,
      then the text formatting hint will be lost and the body will be assumed as
      HTML deeper inside the thread entry creation process. Therefore, the
      whitespace inside the resulting thread entry will be collapsed.
      
      This patch addresses the issue by maintaining the original format hint with
      the thread body.
      b143ea6f
    • Jared Hancock's avatar
      d429b5d7
  21. Feb 27, 2015
  22. Feb 18, 2015
  23. 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
  24. Feb 10, 2015
Loading