# Disco Service Tracker Plugin Enhanced service/support tracking plugin for [Disco ICT](https://discoict.com.au/) that augments the built-in job management system with priority management, device location tracking, a visual tile dashboard, and SLA monitoring. ## Features ### Priority Management - **5 default priority levels**: Critical (4h SLA), High (8h), Medium (24h), Low (72h), Scheduled (no SLA) - Fully customisable — add/remove/rename priorities, set your own SLA timeframes - Colour-coded for at-a-glance identification ### Device Location Tracking - Track where each device currently sits: IT Office, With User, At Repairer, In Transit, Storage, Disposed - Customisable locations with icons and colours - Filter dashboard by location ### Tile Dashboard - Visual card-based view of all open jobs - Each tile shows: device name, user, location badge, priority, status, assigned tech, ETA, latest note - Sort by due date, priority, age, SLA status, or last updated - Filter by priority, location, status, or assigned technician - SLA breach alerts with pulsing red borders - Tech workload summary bar ### SLA Monitoring - Automatic SLA deadline calculation based on priority level - Breach detection with prominent alert banners - Warning indicators when approaching SLA deadline (within 25%) ### Activity Notes - Add timestamped notes to any ticket - Note types: General, Update, Escalation, Resolution - Visual timeline on ticket detail page ### Export - CSV export of all open tickets with full metadata ## Building ```powershell .\Build-Plugin.ps1 -DiscoBinPath "C:\Program Files\Disco\WebApp\bin" ``` This will: 1. Resolve references against your Disco installation 2. Build the plugin DLL 3. Generate the manifest.json 4. Package everything into a `.discoPlugin` file ## Installation 1. Build the plugin (see above) 2. In Disco ICT, go to **Configuration > Plugins > Install Plugin** 3. Upload the `.discoPlugin` file 4. Restart the Disco web service 5. Access the dashboard via **Plugins > Service Tracker** or navigate to `/Plugin/Disco.Plugins.ServiceTracker/Dashboard` ## Configuration Default configuration is created automatically on install. To customise: - **Priorities**: Edit `config.json` in the plugin data directory (`App_Data\Plugins\Disco.Plugins.ServiceTracker\`) - **Locations**: Same file — add/remove/rename device locations - **Status Options**: Customise the status dropdown values - **Auto-create tickets**: Toggle whether new Disco jobs automatically get a Service Tracker ticket ### Default Priority Levels | Priority | Colour | SLA | Description | |----------|--------|-----|-------------| | Critical | Red | 4 hours | System down, no workaround | | High | Orange | 8 hours | Major impact, workaround available | | Medium | Yellow | 24 hours | Moderate impact | | Low | Green | 72 hours | Minor issue, no urgency | | Scheduled | Grey | None | Planned work | ## Data Storage The plugin stores its metadata (priorities, locations, notes, SLA deadlines) in JSON files alongside the Disco database. It reads Disco Job records directly via the `DiscoDataContext` and overlays additional tracking data. - `config.json` — Plugin configuration (priorities, locations, status options) - `tickets.json` — Extended ticket metadata for each tracked job ## Requirements - Disco ICT (with plugin support) - .NET Framework 4.5+ - MSBuild (Visual Studio or .NET Framework SDK) ## Author **Jess Rogerson** https://gitea.hideawaygaming.com.au/jessikitty