Challenge: our IT staff wanted more from the service desk ticket view. We wanted to be able to see multiple queues quickly, have priority take center stage, and eliminate columns not necessary. The built in layout customizer just was not getting there. In addition, we also wanted to see dashboard level stats on our service desk; i.e. tickets currently open, open by department, and closed per queue by month.
The solution: Twitter Bootstrap for Kace Service Desk with HighCharts javascript
We used the built in Dell Kace MySQL query account to run quires directly from the KBox. The quires were created via the service desk using the custom report module or via FlySpeed SQL application. Once we had the quires we simply embedded them in PHP and wrapped the results around the CSS framework Bootstrap. Chart presentation is being handled by the Javascript framework HighCharts. Together, we have a solution that allows us to focus on the columns we want to see, view multiple queues, and get a snapshot of how the service desk is doing via a high level dashboard.
The code: I am certainly not an expert programmer, so feel free to make any changes you deem appropriate. You will certainly have to customize which queue(s) you are querying. Aside from that, it should work.
Get the code here: https://github.com/jasonrap/KaceBootstrap
Let me know what you think.
EDIT: 8.31.2016 most recent code can be found here: https://github.com/MattSchroyer/KaceBootstrap (thank you Matt for contributing to the project).
http://imgur.com/kdwSbGj
http://imgur.com/0iEcZj9 - sdbrooks 8 years ago
1) It's written with php short tags, so either turn this on (not recommended), or update all the <? ?> tags to <?php ?>
2) includes/nav.php needs to have the include_once("config.php"); updated to include_once("includes/config.php"); (at least it did for IIS).
3) Several of the php files in the base dir create web links for tickets to the Kace box. These use "SomeKBox" as a stand-in for your real DNS name. You'll want to update these accordingly (i.e.: webTickets.php and ownerUnassigned.php) - ammaross 11 years ago
Instead of calling out ticket status' that are closed, why not just put in the status thats open....
You have (with modifications to make it work for us):
$query = "select COUNT(NAME) as counted from HD_TICKET Inner Join HD_STATUS on HD_STATUS.ID = HD_TICKET.HD_STATUS_ID
where (HD_STATUS.NAME like '%Opened%')
AND (HD_STATUS.NAME not like '%Canceled%')
AND (HD_STATUS.NAME not like '%Completed%')
AND (HD_STATUS.NAME not like '%Re-Opened%')
My suggestion:
$query = "select COUNT(NAME) as counted from HD_TICKET Inner Join HD_STATUS on HD_STATUS.ID = HD_TICKET.HD_STATUS_ID
where (HD_STATUS.NAME like '%Opened%')
order by counted desc";
It just makes for cleaner code, and less CPU intensive. - DanielHolt 11 years ago
(HD_STATUS.STATE like '%closed%')
It's more accurate and reliable than checking for status name fields, since the UI provides a means for marking if each are "closed", "stalled", or "open." It's more likely to not have a bunch of options and reduces the string comparison to a single check. - ammaross 11 years ago
Among the changes are new (and bug-fixed) reports and graphs, but most notably would be easing reconfiguration for more stock shops (only takes small edits in just 3 files for most places) and commenting out the more custom-directed code from Jay's KaceBootstrap (such as his Departments code based on custom field 0 for instance).
Feedback is welcome! - ammaross 11 years ago
Feedback is welcome! - Jbr32 10 years ago
Only page I'm having difficulty cyphering is the nav.php, and modifying the user list for the site. I've no experience with this so it's blast playing with it. Need to figure out the whitelisting and such.
Anyways: Great great great. - Wildwolfay 10 years ago
Look for the line that reads: $mainQueueOwners=""
This is what you had to edit for it to work. That number is pointing back to your user group that can work on a given queue.
To find out what the number is, go into the configuration of a queue and mouse over the entry for "Ticket Owners By Label:" which should have a number at the end of the URL; e.g. adminui/label.php?ID=261
That number is what you want to enter in for $mainQueueOwners
If you have more than one group of support people, just key in all of the label numbers; e.g. $mainQueueOwners="261,123,456";
We are working on a demo site, will post soon.
Enjoy! - Jbr32 10 years ago
Our IT team would greatly benefit from the above but after trying all I could I cannot get the above to work, all that I get in the end is a black bar at the top with Service Desk on it.... I have followed the instructions but sadly no success. - GoranK 10 years ago
http://kbootstrap.westphal.drexel.edu/ - Jbr32 10 years ago
For Patch Compliance, the code came from here: http://www.itninja.com/blog/view/k1000-report-patching-vendor-severity-with-machine-count-and-completion-rates
and for software installed/ removed. Make sure to change the variable $daysAgo accordingly.
<pre>
SELECT
Count(*) as CountofSoftware,
CHANGE_TYPE,
VALUE1 AS SOFTWARE_NAME,
VALUE2 AS VERSION
FROM
ASSET_HISTORY AH
WHERE
FIELD_NAME = 'SOFTWARE'
AND VALUE1 NOT LIKE '%Update for%'
AND VALUE1 NOT LIKE 'Hotfix for%'
AND VALUE1 NOT LIKE 'Security Update%'
AND VALUE1 NOT LIKE 'Microsoft Office%'
AND VALUE1 NOT LIKE 'Microsoft .NET%'
AND TIME > DATE_SUB(NOW(),INTERVAL $daysAgo DAY)
GROUP BY CHANGE_TYPE, VALUE1
ORDER BY Count(*) DESC, VALUE1, CHANGE_TYPE
</pre> - Jbr32 9 years ago
Service Desk
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\kace\includes\config.php:115 Stack trace: #0 C:\xampp\htdocs\kace\includes\nav.php(2): include_once() #1 C:\xampp\htdocs\kace\index.php(45): include_once('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\kace\includes\config.php on line 115 - starka 8 years ago