SPICEWORKS.plugin.add(     { name:"Help Desk Customizations Clone w/unassg tks", version:"0.51", description:"Adds minor enhancements to your Help Desk, including ticket status in the toolbar, colors for past due tickets and private messages, and information on devices in the Related To field. Adds Unassigned Tickets to Bar", guid:"p-8d8296a0-fd27-012a-3e9d-0016353cc494-1245774206", settings:{"past_due_color":"#ffdede","private_note_color":"#cccccc"}, contentAreas: [{"content_type":"text/javascript","updated_at":"2010/01/04 12:38:16 +0000","id":8,"description":null,"content_name":"initialize.js","user_id":null}], initialize:function(plugin){ // ==SPICEWORKS-PLUGIN==
// @name          Help Desk Customizations Clone w/unassg tks
// @description   Adds minor enhancements to your Help Desk, including ticket status in the toolbar, colors for past due tickets and private messages, and information on devices in the Related To field. Adds Unassigned Tickets to Bar
// @version       0.51
// ==/SPICEWORKS-PLUGIN==

plugin.configure({
	settingDefinitions: [
		{name: 'past_due_color', label: 'Past Due Highlight Color', type: 'string', defaultValue: '#ffdede', example: 'Default: #ffdede'},
		{name: 'private_note_color', label: 'Private Note Color', type: 'string', defaultValue: '#cccccc', example: 'Default: #cccccc'}
	]
});

function refreshToolbarTicketInfo(){
	// display ticket stats
	var numOpenTickets = SPICEWORKS.data.Ticket.find('all', {filter:'open'}).length;
	var numPastDue = SPICEWORKS.data.Ticket.find('all', {filter:'past_due'}).length;
        var numUnAssgn = SPICEWORKS.data.Ticket.find('all', {filter:'unassigned'}).length;

	var toolbarTicketInfo = $('main-toolbar').down('span.right span.toolbar_ticket_info');

	if (toolbarTicketInfo){
		toolbarTicketInfo.remove();
	}
	
        $('main-toolbar').down('span.right').insert({top:'<span class="toolbar_ticket_info" style="margin-right: 40px; padding: 0 5px; border: 1px solid #999;"><strong>Open:</strong> ' + numOpenTickets + '&nbsp;&nbsp;&nbsp;<strong>PastDue:</strong> ' + numPastDue + '&nbsp;&nbsp;&nbsp;<strong>Unassgn:</strong> ' + numUnAssgn + '</span>'});
}
SPICEWORKS.app.helpdesk.ready(function(){


	// mark past due ticket rows
	$$('td.past_due').each(function(item){
		item.up().setStyle({backgroundColor: plugin.settings.past_due_color});
	});

	refreshToolbarTicketInfo();
	
});

SPICEWORKS.app.helpdesk.ticket.closed(function(){
	refreshToolbarTicketInfo();
});

SPICEWORKS.app.helpdesk.ticket.ready(function(){
	// color private messages
	$$('li.private').each(function(item){
		item.setStyle({backgroundColor: plugin.settings.private_note_color})
	});

	// add device summary
	var deviceLink = $('related_to_property').down('.value a');
	if(deviceLink) {
		var deviceURL = deviceLink.readAttribute('href');
		var startIndex = deviceURL.indexOf('devices/');
		if(startIndex != -1) {
		var substring = deviceURL.substring(startIndex);
		var deviceID = substring.gsub(/[^\d]/, '');
		var device = SPICEWORKS.data.Device.find(deviceID);
		if(device) {
			var displayInfo = '<div id="related_to_summary" style="display: none; clear: both; border:1px solid #ccc; padding: 10px; margin: 5px 0; overflow: hidden;"><ul style="margin: 0; padding: 0; text-align: left;">'
			var listStyle = '<li>'
			if(device.ip_address && !device.ip_address.empty()) {
				displayInfo += listStyle + '<strong>IP:</strong> ' + device.ip_address + '</li>';
			}
			if(device.mac_address && !device.mac_address.empty()) {
				displayInfo += listStyle + '<strong>MAC:</strong> ' + device.mac_address + '</li>';
			}
			if(device.manufacturer && !device.manufacturer.empty()) {
				displayInfo += listStyle + '<strong>Vendor:</strong> ' + device.manufacturer + '</li>';	
			}
			if(device.current_user && !device.current_user.empty()) {
				displayInfo += listStyle + '<strong>Last Login:</strong> ' + device.current_user + '</li>';
			}
			if(device.primary_owner_name && !device.primary_owner_name.empty()) {
				displayInfo += listStyle + '<strong>Owner:</strong> ' + device.primary_owner_name + '</li>';
			}
			if(device.asset_tag && !device.asset_tag.empty()) {
				displayInfo += listStyle + '<strong>Asset Tag:</strong> ' + device.asset_tag + '</li>';
			}
			if(device.operating_system && !device.operating_system.empty()) {
				displayInfo += listStyle + '<strong>OS:</strong> ' + device.operating_system + '</li>';
			}
			if(device.serial_number && !device.serial_number.empty()) {
				displayInfo += listStyle + '<strong>Serial No:</strong> ' + device.serial_number + '</li>';
			}
			displayInfo += '</ul><p style="float: right;"><a href="#" onclick="new Effect.BlindUp(\'related_to_summary\', {duration:0.20}); return false;">hide</a></p></div>';
			$('related_to_section').insert({after: displayInfo});
			deviceLink.insert({after: '&nbsp;&nbsp;(<a href="#" onclick="new Effect.BlindDown(\'related_to_summary\', {duration:0.20}); return false;">info</a>)'})
		}
		}
	}
});

      }
    }
 );
