{"action":"created","issue":{"url":"https://api.github.com/repos/osTicket/osTicket-1.8/issues/2577","labels_url":"https://api.github.com/repos/osTicket/osTicket-1.8/issues/2577/labels{/name}","comments_url":"https://api.github.com/repos/osTicket/osTicket-1.8/issues/2577/comments","events_url":"https://api.github.com/repos/osTicket/osTicket-1.8/issues/2577/events","html_url":"https://github.com/osTicket/osTicket-1.8/pull/2577","id":107580063,"number":2577,"title":"Feature: Customizable ticket queues, customizable columns","user":{"login":"greezybacon","id":672074,"avatar_url":"https://avatars.githubusercontent.com/u/672074?v=3","gravatar_id":"","url":"https://api.github.com/users/greezybacon","html_url":"https://github.com/greezybacon","followers_url":"https://api.github.com/users/greezybacon/followers","following_url":"https://api.github.com/users/greezybacon/following{/other_user}","gists_url":"https://api.github.com/users/greezybacon/gists{/gist_id}","starred_url":"https://api.github.com/users/greezybacon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greezybacon/subscriptions","organizations_url":"https://api.github.com/users/greezybacon/orgs","repos_url":"https://api.github.com/users/greezybacon/repos","events_url":"https://api.github.com/users/greezybacon/events{/privacy}","received_events_url":"https://api.github.com/users/greezybacon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":17,"created_at":"2015-09-21T19:18:17Z","updated_at":"2015-10-14T06:43:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/osTicket/osTicket-1.8/pulls/2577","html_url":"https://github.com/osTicket/osTicket-1.8/pull/2577","diff_url":"https://github.com/osTicket/osTicket-1.8/pull/2577.diff","patch_url":"https://github.com/osTicket/osTicket-1.8/pull/2577.patch"},"body":"### How-To Test\r\nCheckout this branch (`greezybacon/feature/custom-queues`) or [visit my page](https://github.com/greezybacon/osTicket-1.8/tree/feature/custom-queues) and download the ZIP file. Then\r\n  * Change the schema hash by editing `include/upgrader/streams/core.sig` and change it to `bd3a31ab6b58b4a7aef61015256d29f0`\r\n  * Comment out `include/class.config.php` line 127 (`$setting['updated'] = Misc::dbtime();`) — it looks to break the installer at the moment\r\n\r\nVisit the setup page and perform a normal installation. Happy testing.\r\n\r\n### Screenshot Tour\r\n##### Ticket queues are defined in Settings -> Tickets page, \"Queues\" tab\r\n\r\n<img width=\"957\" alt=\"screen shot 2015-10-07 at 10 22 21 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356203/a1b5eac2-6d42-11e5-8c53-98e7d02d2d7e.png\">\r\n\r\n#### Queues inherit the criteria system from the Advanced Search feature, but have the addition of a \"Name\" and \"Description\" (todo)\r\n\r\nQueues also have the ability to inherit criteria from a parent queue. Therefore, queues defined under \"Open\" would not need to include criteria to define \"Open\" tickets again and again\r\n\r\n<img width=\"953\" alt=\"screen shot 2015-10-07 at 10 22 33 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356215/bd80bd7c-6d42-11e5-82d5-1d84951aabfa.png\">\r\n\r\n#### Queues have designable columns\r\n\r\nAny data associated with just about anything can be listed in the ticket queue page. Primary and secondary data sources are selectable. If no data exists for the primary data field, then the data from the secondary is displayed in the queue listing. Columns can be dragged to arrange their order.\r\n\r\n<img width=\"945\" alt=\"screen shot 2015-10-07 at 10 22 55 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356250/221405aa-6d43-11e5-90b0-225a8de96800.png\">\r\n\r\n#### Columns can have *annotations*\r\n\r\n**Annotations** are extra flair, such as the attachment count, collaborator count, overdue flag, etc., which can be added to the start or end of the cell (floating), or before or after the text (inline).\r\n\r\n<img width=\"818\" alt=\"screen shot 2015-10-07 at 10 23 34 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356270/63e1f262-6d43-11e5-90e2-acb750908416.png\">\r\n\r\n#### Columns can have *sophisticated* conditions\r\n\r\n**Conditions** are checks run on the data associated with the ticket. For records that match the conditions, extra formatting can be defined. For instance, unanswered tickets can have some cells shown in bold. Any data (custom or otherwise) affiliated with the ticket, user, and organization, can be used in conditions. Even set crazy things like `background-color`\r\n\r\n<img width=\"916\" alt=\"screen shot 2015-10-07 at 10 24 04 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356310/e18ff510-6d43-11e5-93d6-44c3af2c790b.png\">\r\n\r\n#### Preview before saving\r\n\r\nAll settings for the criteria, column sources, annotations, conditions, etc., are viewable without saving. Click the \"Preview\" tab and the queue is rendered dynamically.\r\n\r\n<img width=\"950\" alt=\"screen shot 2015-10-07 at 10 24 33 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356334/0d3b7c48-6d44-11e5-943b-d03ec34b8081.png\">\r\n\r\n#### Queue pages have hierarchical navigation\r\n\r\nQueues are selectable from drop-down navigation in the ticket listing pages. Additionally, edit or delete the queue straight from the navigation.\r\n\r\n<img width=\"807\" alt=\"screen shot 2015-10-07 at 10 44 04 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356425/2c92247e-6d45-11e5-802b-4c6e4b55fc8c.png\">\r\n\r\n#### Use \"Quick Filter\" to reduce ticket listing in real-time\r\n\r\nChoose field such as Assignee, Department, Help Topic, some custom data field, etc., which can be selected when the queue is viewed. The queue will be filtered to only show tickets matching the quick filter.\r\n\r\n<img width=\"355\" alt=\"screen shot 2015-10-07 at 10 25 35 pm\" src=\"https://cloud.githubusercontent.com/assets/672074/10356676/a9803906-6d47-11e5-8fa7-0aed5af81b66.png\">\r\n\r\n\r\n### Outstanding\r\n  * [x] Add screenshots\r\n  * [x] Add how-to guide for testing\r\n  * [ ] Make column headings translatable\r\n  * [ ] Drop interactive column resizing\r\n  * [x] Add core settings for default queue (previously \"Open\")\r\n  * [ ] Add container queues with no criteria and default sub-queues. This will replace the current \"Show assigned tickets on open queue\" setting and friends. When the container queue is clicked, the default sub-queue will be shown instead\r\n  * [x] Implement quick filter\r\n  * [x] Implement sorting options\r\n  * [x] Add install yaml for queues previous to v1.11\r\n  * [x] Implement column delete from queue\r\n  * [ ] Enable/disable queues\r\n  * [ ] Add description (queue page title) field\r\n  * [ ] Delete queue\r\n  * [ ] Select column configuration for rendering saved search\r\n  * [ ] Publish (make public) feature for saved searches\r\n  * [ ] Add personal queues\r\n  * [ ] Add queue counts or drop the `(?)` tokens, rectify staff stats functions\r\n  * [x] Add navigation for saved searches\r\n  * [ ] Add queue as a child (via navigation)\r\n  * [x] Conditions do not load properly when editing a queue\r\n  * [ ] Implement sorting options, sortable headers\r\n  * [x] Implement staff visibility constraints\r\n  * [x] Integrate advanced search and saved searches\r\n  * [ ] `path` is not set correct at installation\r\n  * [ ] Integrate user and org searches from ticket view\r\n  * [ ] Transition advanced search criteria to the new object-base `getSearchableFields` used for queues"},"comment":{"url":"https://api.github.com/repos/osTicket/osTicket-1.8/issues/comments/147952817","html_url":"https://github.com/osTicket/osTicket-1.8/pull/2577#issuecomment-147952817","issue_url":"https://api.github.com/repos/osTicket/osTicket-1.8/issues/2577","id":147952817,"user":{"login":"Chefkeks","id":2871833,"avatar_url":"https://avatars.githubusercontent.com/u/2871833?v=3","gravatar_id":"","url":"https://api.github.com/users/Chefkeks","html_url":"https://github.com/Chefkeks","followers_url":"https://api.github.com/users/Chefkeks/followers","following_url":"https://api.github.com/users/Chefkeks/following{/other_user}","gists_url":"https://api.github.com/users/Chefkeks/gists{/gist_id}","starred_url":"https://api.github.com/users/Chefkeks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Chefkeks/subscriptions","organizations_url":"https://api.github.com/users/Chefkeks/orgs","repos_url":"https://api.github.com/users/Chefkeks/repos","events_url":"https://api.github.com/users/Chefkeks/events{/privacy}","received_events_url":"https://api.github.com/users/Chefkeks/received_events","type":"User","site_admin":false},"created_at":"2015-10-14T06:43:14Z","updated_at":"2015-10-14T06:43:14Z","body":"I'd always make sure that at least 1 column is selected - so the user directly sees the options and disable that none can be selected when accessing the columns tab:\r\n![image](https://cloud.githubusercontent.com/assets/2871833/10476578/6df77fea-724f-11e5-8639-7c01b35b9010.png)\r\n"}}