osTicket/osTicket-1.7 — pull request #523 by greezybacon (2013-03-29 17:18:27+00:00)
Title: Dynamic data for osTicket

*This is a major redesign / rework of the osTicket base*

This patch drops the concept of static ticket metadata and allows for an admin-configurable arbitrary data that is attachable to tickets

The system is architected such that the base osTicket install now comes with a "default" form that has fields for subject, name, email, and phone number. This form is editable to allow for the addition of arbitrary other fields; however, the basic fields must remain in order to be associated with a help-topic and attached to a ticket.

This concept can be expanded to allow for arbitrary data associated with registered clients or ticket thread items.

Forms are comprised of sections. Sections have a title and instructions properties and a list of fields. Fields have various implementations to represent different data such as text, long answer, phone number, datetime, yes/no, and selections, and are configurable to define the look and feel and interpretation of the respective form field.

Dropdown lists are represented as "Dynamic Lists", which are admin-configurable lists of items. Dropdowns can be optionally represented as Bootstrap typeahead fields.

This also adds the start of a simple ORM which will hopefully be expanded in the future to support multiple database platforms. Currently, only MySQL is implemented.

**WARNING** *Experimental code*: For now, this patch only supports clean installations. A start of an upgrade script is included, but is neither integrated with the upgrade system nor tested.

I would like to see early adopters and aggressive testers help in debugging the last of issues and sniff out the remaining requirements.

Known Outstanding Issues (last mile):
- Delete support for big dynamic items (list, section, form)
- Email integration -- allow submission without required fields not represented in MIME
- Upgrade testing
- PDF layout fixes
- Icons for the admin interface menu for dynamic forms
- Documentation

Extra features TODO:
- Custom regex validator for the text field