Merge pull request #361 from AndHam89/master

report_asset_Excel.php: Values for 'Expiration End' where not listed in ...
Rewrote CoolSIM XML export to match our template and changed the code so it can be linked from another page to generate the export. close #360
Out, printf! out, I say! #360
Corrected the loop counter. close #359
Added labels to the device pictures.  Might need to adjust the coloring a bit need more test data. close #362
Fixes a layout issue in Safari. Not seeing any issues in the other browsers for this change.
Added link to dc_stats page for direct xml export from there #318
I hate setting the sizes on all the images like this but it really is the best way to make sure the page loads quickly and it allocates all teh space prior to the client loading the graphics completely. This should be the last issue on the graphical cabnavigator.  close #342
Disabling pointer events for the device labels so the tooltips and linking works correctly. #362
Pixel layout glitch that was unique to chrome. close #364
<= != < close #363
.hide / .show methods were setting the display value to inline-block instead of block and it was causing the page to try and fit a few different field sets onto one line making the contents all shift. close #365
Adding in some basic html sanitization for the notes.  Still vulnerable to a select number of xss attacks but this will help
Working on sanitize function a bit
First run at a generic sanitize function and incorporated it into the device->MakeSafe method.  Please try it with extended ascii names.  Stuff that isn't typically considered latin characters.  #366
UTF-8 fubar
Refinment on the sanitize function #366
Added a function DevicePorts::followPathToEndPoint( $DeviceID, $PortNumber ) to return an array of DevicePorts objects that traverse the path to endpoint.

Put some initial code into the devices.php to show the path in the table - only when the device is not a Patch Panel type.

#368
Updated the port connection export to now show all front panel patches that would also be required for a single device.

#368
The reason the ownership and templates aren't being shown on a limited rights user is because that user can't see those properties so this is more a visual glitch than anything else.  Cleaned up the legend generating code and added the flags for ownership unassigned to the device pictures. close #353