2 Commits

Author SHA1 Message Date
54129dcdae v1.19.2 2026-04-11 08:24:47 +00:00
8c6556dae3 fix(web-ui): normalize lucide icon names across SIP proxy views 2026-04-11 08:24:47 +00:00
10 changed files with 28 additions and 22 deletions

View File

@@ -1,5 +1,11 @@
# Changelog
## 2026-04-11 - 1.19.2 - fix(web-ui)
normalize lucide icon names across SIP proxy views
- Updates icon identifiers to the expected PascalCase lucide format in app navigation, calls, IVR, overview, providers, and voicemail views.
- Fixes UI icon rendering for stats cards and action menus such as transfer, delete, status, and call direction indicators.
## 2026-04-10 - 1.19.1 - fix(readme)
refresh documentation for jitter buffering, voicemail, and WebSocket signaling details

View File

@@ -1,6 +1,6 @@
{
"name": "siprouter",
"version": "1.19.1",
"version": "1.19.2",
"private": true,
"type": "module",
"scripts": {

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: 'siprouter',
version: '1.19.1',
version: '1.19.2',
description: 'undefined'
}

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: 'siprouter',
version: '1.19.1',
version: '1.19.2',
description: 'undefined'
}

View File

@@ -18,7 +18,7 @@ const VIEW_TABS = [
{ name: 'Phone', iconName: 'lucide:headset', element: SipproxyViewPhone },
{ name: 'Routes', iconName: 'lucide:route', element: SipproxyViewRoutes },
{ name: 'Voicemail', iconName: 'lucide:voicemail', element: SipproxyViewVoicemail },
{ name: 'IVR', iconName: 'lucide:list-tree', element: SipproxyViewIvr },
{ name: 'IVR', iconName: 'lucide:ListTree', element: SipproxyViewIvr },
{ name: 'Contacts', iconName: 'lucide:contactRound', element: SipproxyViewContacts },
{ name: 'Providers', iconName: 'lucide:server', element: SipproxyViewProviders },
{ name: 'Log', iconName: 'lucide:scrollText', element: SipproxyViewLog },

View File

@@ -422,7 +422,7 @@ export class SipproxyViewCalls extends DeesElement {
menuOptions: [
{
name: 'Transfer',
iconName: 'lucide:arrow-right-left',
iconName: 'lucide:ArrowRightLeft',
action: async (modalRef: any) => {
if (!targetCallId || !targetLegId) {
deesCatalog.DeesToast.error('Please select both a target call and a leg');
@@ -620,7 +620,7 @@ export class SipproxyViewCalls extends DeesElement {
title: 'Inbound',
value: inboundCount,
type: 'number',
icon: 'lucide:phone-incoming',
icon: 'lucide:PhoneIncoming',
description: 'Incoming calls',
},
{
@@ -628,7 +628,7 @@ export class SipproxyViewCalls extends DeesElement {
title: 'Outbound',
value: outboundCount,
type: 'number',
icon: 'lucide:phone-outgoing',
icon: 'lucide:PhoneOutgoing',
description: 'Outgoing calls',
},
];

View File

@@ -140,7 +140,7 @@ export class SipproxyViewIvr extends DeesElement {
title: 'Total Menus',
value: ivr.menus.length,
type: 'number',
icon: 'lucide:list-tree',
icon: 'lucide:ListTree',
description: 'IVR menu definitions',
},
{
@@ -148,7 +148,7 @@ export class SipproxyViewIvr extends DeesElement {
title: 'Entry Menu',
value: entryMenu?.name || '(none)',
type: 'text' as any,
icon: 'lucide:door-open',
icon: 'lucide:DoorOpen',
description: entryMenu ? `ID: ${entryMenu.id}` : 'No entry menu set',
},
{
@@ -156,7 +156,7 @@ export class SipproxyViewIvr extends DeesElement {
title: 'Status',
value: ivr.enabled ? 'Enabled' : 'Disabled',
type: 'text' as any,
icon: ivr.enabled ? 'lucide:check-circle' : 'lucide:x-circle',
icon: ivr.enabled ? 'lucide:CheckCircle' : 'lucide:XCircle',
color: ivr.enabled ? 'hsl(142.1 76.2% 36.3%)' : 'hsl(0 84.2% 60.2%)',
description: ivr.enabled ? 'IVR is active' : 'IVR is inactive',
},
@@ -228,7 +228,7 @@ export class SipproxyViewIvr extends DeesElement {
},
{
name: 'Set as Entry',
iconName: 'lucide:door-open' as any,
iconName: 'lucide:DoorOpen' as any,
type: ['inRow'] as any,
actionFunc: async ({ item }: { item: IIvrMenu }) => {
await this.setEntryMenu(item.id);
@@ -236,7 +236,7 @@ export class SipproxyViewIvr extends DeesElement {
},
{
name: 'Delete',
iconName: 'lucide:trash-2' as any,
iconName: 'lucide:Trash2' as any,
type: ['inRow'] as any,
actionFunc: async ({ item }: { item: IIvrMenu }) => {
await this.confirmDeleteMenu(item);
@@ -295,7 +295,7 @@ export class SipproxyViewIvr extends DeesElement {
},
{
name: 'Delete',
iconName: 'lucide:trash-2',
iconName: 'lucide:Trash2',
action: async (modalRef: any) => {
const ivr = this.getIvrConfig();
const menus = ivr.menus.filter((m) => m.id !== menu.id);

View File

@@ -107,7 +107,7 @@ export class SipproxyViewOverview extends DeesElement {
title: 'Inbound Calls',
value: inboundCalls,
type: 'number',
icon: 'lucide:phone-incoming',
icon: 'lucide:PhoneIncoming',
description: 'Currently active',
},
{
@@ -115,7 +115,7 @@ export class SipproxyViewOverview extends DeesElement {
title: 'Outbound Calls',
value: outboundCalls,
type: 'number',
icon: 'lucide:phone-outgoing',
icon: 'lucide:PhoneOutgoing',
description: 'Currently active',
},
{

View File

@@ -86,7 +86,7 @@ export class SipproxyViewProviders extends DeesElement {
title: 'Registered',
value: registered,
type: 'number',
icon: 'lucide:check-circle',
icon: 'lucide:CheckCircle',
color: 'hsl(142.1 76.2% 36.3%)',
description: 'Active registrations',
},
@@ -95,7 +95,7 @@ export class SipproxyViewProviders extends DeesElement {
title: 'Unregistered',
value: unregistered,
type: 'number',
icon: 'lucide:alert-circle',
icon: 'lucide:AlertCircle',
color: unregistered > 0 ? 'hsl(0 84.2% 60.2%)' : undefined,
description: unregistered > 0 ? 'Needs attention' : 'All healthy',
},
@@ -153,7 +153,7 @@ export class SipproxyViewProviders extends DeesElement {
},
{
name: 'Delete',
iconName: 'lucide:trash-2',
iconName: 'lucide:Trash2',
type: ['inRow'] as any,
actionFunc: async (actionData: any) => {
await this.confirmDelete(actionData.item);
@@ -579,7 +579,7 @@ export class SipproxyViewProviders extends DeesElement {
},
{
name: 'Delete',
iconName: 'lucide:trash-2',
iconName: 'lucide:Trash2',
action: async (modalRef: any) => {
try {
const result = await appState.apiSaveConfig({

View File

@@ -239,7 +239,7 @@ export class SipproxyViewVoicemail extends DeesElement {
},
{
name: 'Delete',
iconName: 'lucide:trash-2',
iconName: 'lucide:Trash2',
action: async (modalRef: any) => {
try {
await fetch(
@@ -281,7 +281,7 @@ export class SipproxyViewVoicemail extends DeesElement {
title: 'Unheard Messages',
value: unheard,
type: 'number',
icon: 'lucide:bell-ring',
icon: 'lucide:BellRing',
color: unheard > 0 ? 'hsl(0 84.2% 60.2%)' : 'hsl(142.1 76.2% 36.3%)',
description: unheard > 0 ? 'Needs attention' : 'All caught up',
},
@@ -372,7 +372,7 @@ export class SipproxyViewVoicemail extends DeesElement {
},
{
name: 'Delete',
iconName: 'lucide:trash-2',
iconName: 'lucide:Trash2',
type: ['inRow'] as any,
actionFunc: async (actionData: any) => {
await this.deleteMessage(actionData.item as IVoicemailMessage);