fix: pre-populate classifications instead of syncing from Autotask API

- Autotask REST API doesn't expose ClassificationIcons endpoint
- Created migration to populate 17 standard classification icons
- Removed sync button from UI (classifications are pre-loaded)
- Includes: Tools Only, Co-Managed, Wulf 365 Essentials, Partner, etc.
- Users can now select any classification to exclude from kiosk
This commit is contained in:
lorentz 2026-02-03 20:54:35 -05:00
parent b222d97225
commit f27b23bec8
3 changed files with 30 additions and 13 deletions

View file

@ -293,17 +293,7 @@ export default function KioskSettingsPage() {
{/* Excluded Classifications Section */}
<div className="bg-gray-900 rounded-lg p-6 border border-gray-800">
<div className="flex items-center justify-between mb-4">
<h2 className="text-xl font-semibold">Excluded Company Classifications</h2>
<Button
onClick={syncClassifications}
disabled={syncing}
className="bg-green-600 hover:bg-green-700"
size="sm"
>
{syncing ? 'Syncing...' : 'Sync from Autotask'}
</Button>
</div>
<h2 className="text-xl font-semibold mb-4">Excluded Company Classifications</h2>
<p className="text-gray-400 mb-4">
Tickets from companies with these classifications will not appear in the kiosk display.
</p>
@ -312,7 +302,7 @@ export default function KioskSettingsPage() {
{classifications.length === 0 ? (
<div className="text-center py-8 text-gray-500">
<p className="mb-2">No classifications found.</p>
<p className="text-sm">Click "Sync from Autotask" to load classification icons.</p>
<p className="text-sm">Refresh the page to load classifications.</p>
</div>
) : (
<div className="space-y-2">

View file

@ -490,7 +490,8 @@ export class AutotaskClient {
// Classification Icons methods
async getClassificationIcons(): Promise<any[]> {
// Autotask API endpoint for classification icons
const url = `${this.config.apiUrl}/CompanyClassificationIcons`;
// Try ClassificationIcons endpoint
const url = `${this.config.apiUrl}/ClassificationIcons`;
const response = await this.makeApiCall<any>(url, {
method: 'GET',

View file

@ -0,0 +1,26 @@
-- Populate company_classifications with common Autotask classification icons
-- Based on standard Autotask classification icons
INSERT INTO company_classifications (classification_id, name, description, is_active, is_system) VALUES
(1, 'Platinum_Service_Plan', 'Platinum Service Plan', true, false),
(2, 'Gold_Service_Plan', 'Gold Service Plan', true, false),
(3, 'Silver_Service_Plan', 'Silver Service Plan', true, false),
(4, 'Wulf 365 Essentials', 'Wulf 365 Essentials', true, false),
(5, 'Co-Managed', 'Co-Managed IT', true, false),
(6, 'Tools Only', 'Tools Only', true, false),
(7, 'Partner', 'Partner', true, false),
(8, 'Block Hour', 'Use Icon to Identify Block Hour Customer', true, false),
(9, 'T&M', 'T&M', true, false),
(10, 'Residential (no-pay)', 'Residential', true, false),
(11, 'Canceled', 'Canceled', true, false),
(12, 'Red (1)', 'Define your own. (One idea is to use it as Top Priority Customers)', true, false),
(13, 'Blue (2)', 'Define your own.', true, false),
(14, 'Gold (3)', 'Define your own.', true, false),
(15, 'Target', 'Use the TatUse the Target Icon when you have a hot deal that you want to track', true, false),
(16, 'Delinquent', 'Customers with a passed due account', true, false),
(17, 'Jeopardy Company', 'Company is in Jeopardy', true, false)
ON CONFLICT (classification_id) DO UPDATE SET
name = EXCLUDED.name,
description = EXCLUDED.description,
is_active = EXCLUDED.is_active,
updated_at = CURRENT_TIMESTAMP;