- May 05, 2015
-
-
Peter Rotich authored
This will allow for any threadable object to render the thread.
-
- Apr 30, 2015
-
-
Jared Hancock authored
-
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.
-
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.
-
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.
-
- Apr 15, 2015
-
-
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.
-
- Apr 14, 2015
-
-
Jared Hancock authored
-
- Apr 01, 2015
-
-
Peter Rotich authored
Unassign tickets on transfer when the target department has assignment restriction and the assigned staff is not a member. Disable claim (quick self-assignment) when above restriction is in effect.
-
- Mar 05, 2015
-
-
Jared Hancock authored
-
- Mar 02, 2015
-
-
Jared Hancock authored
-
- Feb 27, 2015
-
-
Jared Hancock authored
Also, add warning popup when lock is about to expire and allow the user to attempt to renew the lock. Also, connect the keyup callback for redactor to the autoLock.handleEvent for greater update of the lock, and also deadband the lock to every 10 seconds.
-
- Feb 13, 2015
-
-
Jared Hancock authored
-
- Feb 12, 2015
-
-
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.
-
- Feb 10, 2015
-
-
Jared Hancock authored
This patch converts the central file and threading classes over to use the ORM.
-
- Jan 30, 2015
-
-
Jared Hancock authored
-
- Jan 23, 2015
-
-
Jared Hancock authored
-
- Jan 12, 2015
-
-
Jared Hancock authored
-
- Jan 09, 2015
-
-
Jared Hancock authored
-
- Jan 05, 2015
-
-
Jared Hancock authored
-
- Dec 31, 2014
-
-
Jared Hancock authored
-
- Dec 22, 2014
-
-
Jared Hancock authored
This allows agents to view the raw email headers parsed with the email when the ticket or thread entry was created.
-
Jared Hancock authored
-
- Dec 20, 2014
-
-
Peter Rotich authored
Allow for permissions to be registered dynamically. This will allow for the ability for models and plugins to register permissions.
-
- Dec 16, 2014
-
-
Jared Hancock authored
This patch removes the selection of canned responses as well as the canned responses navigation page from the ui when the canned responses feature is disabled.
-
Jared Hancock authored
Since the automatic lock was being acquired but not passed to the autoLock system, the automatically acquired lock was not being release on away navigation. This patch addresses the issue by passing the automatically acquired lock id to the autoLock system on ticket-view page load and change the ::Init() method so that the lock id is not cleared with the ::Init() method is called by the page load.
-
- Dec 11, 2014
-
-
Peter Rotich authored
Add ability to add tasks to tickets.
-
Peter Rotich authored
Introduce the initial concept of adding tasks to a ticket.
-
Peter Rotich authored
-
Peter Rotich authored
Use generic attachment table for all attachments system-wide. Drop thread entry attachment table
-
Peter Rotich authored
Detach conversation thread from ticket to make it more generic. Any object can now have its own thread complete with entry type and attachments.
-
Jared Hancock authored
-
- Dec 10, 2014
-
-
Jared Hancock authored
Conflicts: include/i18n/en_US/form.yaml include/staff/templates/dynamic-field-config.tmpl.php include/staff/ticket-view.inc.php include/staff/tickets.inc.php scp/js/scp.js
-
- Dec 09, 2014
-
-
Peter Rotich authored
-
- Dec 08, 2014
-
-
Chris Wheeler authored
This will disable the ability for a user to close a ticket when they have not filled out all of the required fields. Explains the problem to the user trying to close and directs them to the edit page. Added some functions to the $ticket class to make it easy to determine the missing required fields.
-
Jared Hancock authored
This patch adds support for automatic date and time formatting based on a selection of locale. The locale can default to the system or user specified language+locale, or can be elected separately. For instance, English speakers can pick between US, GB, and many other English speaking locales. This also removes the need of the %timezone table and uses the timezonedb built into PHP 5.3+. User's can now select from a much longer list of database and no longer need to deal with the DST checkbox.
-
Jared Hancock authored
This reworks the tabs CSS and javascript coding to be more flexible and to support vertical tabs. (Bootstrap calls this stacked.) The javascript also allows the URL to include the hash-tag of the last-clicked tab so that the tab can be automatically shown when the page is reloaded.
-
Jared Hancock authored
Drafts now are placed directly into the HTML response. The response contains the draft information as well as the original content saved in the database for the content being modified. The draft itself is placed into the redactor box rather than the current content. This patch also reduces some of the [Draft Saved] notices where there is no content or the content has not yet been modified.
-
- Nov 15, 2014
-
-
Jared Hancock authored
This helps in long UTF-8 characters as the bytes were previously counted and the width of the characters was assumed to correlate with the count of the bytes in the text. This method allows the browser to calmly truncate the text according to the available space in the page where the text is rendered.
-
- Oct 02, 2014
-
-
Jared Hancock authored
-
Jared Hancock authored
-