- Sep 27, 2014
-
-
Jared Hancock authored
Under certain intermittent circumstances (usually a significant number of ORM queries), the ORM will trigger a MySQL error: Commands out of sync; you can't run this command now Usually this MySQL error is related to buffered versus unbuffered queries. However, the ORM already uses buffered queries (MySQL calls it "store_result"). In this case, it appears there is some sort of race between fetching the result metadata before configuring the statement for buffering. (By "race" I mean that the error is not reliably triggered). This patch seems to fix the issue by configuring buffering before fetching result metadata — necessary to configure the fetching (output) phase of the statement.
-
- Jun 19, 2014
-
-
Jared Hancock authored
User::fromVars in class ticket was the root. Eventually, in DynamicForm::getDynamicFields(), isset($this->id) was used to detect unsaved, new forms that have not been committed to the database; however, the isset() method was not implemented for the ORM.
-
- Jun 18, 2014
-
-
Jared Hancock authored
Several places in the code initialize a list of objects from the database and only fetch one item. In certain instances (which seem almost like a race condition), MySQL will feel like there are more records available in the database and will complain with "Commands out of sync, you can't run the command now". This patch addresses the issue by utilizing the ::one() method of the QuerySet where only one record is expected. The ::one() method is further designed to fetch all one results (which satisfies the MySQL client library) and return the first item.
-
- May 28, 2014
-
-
Jared Hancock authored
-
- May 22, 2014
-
-
Jared Hancock authored
-
- May 03, 2014
-
-
Jared Hancock authored
-
Jared Hancock authored
Conflicts: include/class.orm.php
-
- Apr 22, 2014
-
-
Jared Hancock authored
-
- Apr 14, 2014
-
-
Jared Hancock authored
-
- Apr 02, 2014
-
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
- Apr 01, 2014
-
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
Jared Hancock authored
-
- Mar 25, 2014
-
-
Jared Hancock authored
-
- Mar 20, 2014
-
-
Jared Hancock authored
-
Jared Hancock authored
-
- Feb 25, 2014
-
-
Jared Hancock authored
-
- Jan 20, 2014
-
-
Jared Hancock authored
Allows for backend listing, file listing, single file dump and file migration.
-
- Dec 31, 2013
-
-
Jared Hancock authored
This patch introduces an automatic materialized view to speed database performance when querying and displaying the ticket views. This can eventually be extended to the search and advanced search features to speed them as well. The data from the dynamic form entries related to ticket details is copied to a %ticket__cdata table. The %ticket__cdata table is then joined directly to the other tables in the query for the ticket view. MySQL is magically and dramatically faster using this method. The downside is that the disk usage for the custom data is doubled, and the time needed to update the dynamic data is at least doubled as the form entries and the materialized view must both be updated. This method should also extend well to other database platforms in the future. It will be likely that most other database query optimizers will have difficulty joining, scanning, and sorting the table models we have for custom data fields.
-
- Dec 17, 2013
-
-
Jared Hancock authored
-
- Nov 26, 2013
-
-
Jared Hancock authored
orm: Fix detection of statement failure orm: Fix type detection of InstrumentedList::add mysqli: Set object-level character set
-
- Nov 25, 2013
-
-
Jared Hancock authored
without required, internal contact field
-
- Nov 24, 2013
-
-
Jared Hancock authored
-
- Oct 25, 2013
-
-
Jared Hancock authored
Use a PHP setup which uses the built-in PHP tokenizer to parse and traverse PHP scripts to determine (possible) access to uninitialized variables
-
- Oct 14, 2013
-
-
Jared Hancock authored
Including adding support to the TCL uninitialized variable reader to ignore class-static variable access as well as detect inline functions and their closure arguments.
-
- Oct 10, 2013
-
-
Jared Hancock authored
-
- Oct 09, 2013
-
-
Jared Hancock authored
Moved to an initial form which specifies the ticket's priority and issue and changed the rendering to render things properly. Now the user can decide where priority shows on the client side, and the priority privacy setting is placed in the dynamic form wizard. The standard form is added to every ticket without option. Extra forms can be defined and associated with help topics which can additionally be added to tickets upon creation. This allows for standardization of the dynamic data location for searches and filtering. Implemented advanced search for dynamic data. Along with reinstating the basic ticket search on keywords Implemented ticket filtering on dynamic data for both keyword searches as well as searches for special fields (drop-down lists, etc.) Phone number for users is now completely optional
-
Jared Hancock authored
This moves client information like name and email address out of the general dynamic forms data for a ticket. It really paves the way for the first-class user of the future.
-
Jared Hancock authored
Use an internal hash table of join information to prevent multiple joins over the same path. Also use table aliases in order to support self joins or otherwise multiple joins to the same table using different paths.
-
Jared Hancock authored
*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.
-