diff --git a/ui-ngx/src/app/core/services/menu.models.ts b/ui-ngx/src/app/core/services/menu.models.ts index 4c2f237ec2..2043eeadea 100644 --- a/ui-ngx/src/app/core/services/menu.models.ts +++ b/ui-ngx/src/app/core/services/menu.models.ts @@ -20,6 +20,7 @@ export declare type MenuSectionType = 'link' | 'toggle'; export interface MenuSection extends HasUUID{ name: string; + fullName?: string; type: MenuSectionType; path: string; icon: string; diff --git a/ui-ngx/src/app/core/services/menu.service.ts b/ui-ngx/src/app/core/services/menu.service.ts index fecff22f9c..2a07528947 100644 --- a/ui-ngx/src/app/core/services/menu.service.ts +++ b/ui-ngx/src/app/core/services/menu.service.ts @@ -149,6 +149,7 @@ export class MenuService { { id: 'notification_inbox', name: 'notification.inbox', + fullName: 'notification.notification-inbox', type: 'link', path: '/notification/inbox', icon: 'inbox' @@ -156,6 +157,7 @@ export class MenuService { { id: 'notification_sent', name: 'notification.sent', + fullName: 'notification.notification-sent', type: 'link', path: '/notification/sent', icon: 'outbox' @@ -163,6 +165,7 @@ export class MenuService { { id: 'notification_recipients', name: 'notification.recipients', + fullName: 'notification.notification-recipients', type: 'link', path: '/notification/recipients', icon: 'contacts' @@ -170,6 +173,7 @@ export class MenuService { { id: 'notification_templates', name: 'notification.templates', + fullName: 'notification.notification-templates', type: 'link', path: '/notification/templates', icon: 'mdi:message-draw', @@ -178,6 +182,7 @@ export class MenuService { { id: 'notification_rules', name: 'notification.rules', + fullName: 'notification.notification-rules', type: 'link', path: '/notification/rules', icon: 'mdi:message-cog', @@ -195,6 +200,7 @@ export class MenuService { { id: 'general', name: 'admin.general', + fullName: 'admin.general-settings', type: 'link', path: '/settings/general', icon: 'settings_applications' @@ -209,6 +215,7 @@ export class MenuService { { id: 'notification_settings', name: 'admin.notifications', + fullName: 'admin.notifications-settings', type: 'link', path: '/settings/notifications', icon: 'mdi:message-badge', @@ -233,6 +240,7 @@ export class MenuService { { id: 'security_settings_general', name: 'admin.general', + fullName: 'security.general-settings', type: 'link', path: '/security-settings/general', icon: 'settings_applications' @@ -444,6 +452,7 @@ export class MenuService { { id: 'edges', name: 'edge.instances', + fullName: 'edge.edge-instances', type: 'link', path: '/edgeManagement/instances', icon: 'router' @@ -451,6 +460,7 @@ export class MenuService { { id: 'rulechain_templates', name: 'edge.rulechain-templates', + fullName: 'edge.edge-rulechain-templates', type: 'link', path: '/edgeManagement/ruleChains', icon: 'settings_ethernet' @@ -518,6 +528,7 @@ export class MenuService { { id: 'notification_inbox', name: 'notification.inbox', + fullName: 'notification.notification-inbox', type: 'link', path: '/notification/inbox', icon: 'inbox' @@ -525,6 +536,7 @@ export class MenuService { { id: 'notification_sent', name: 'notification.sent', + fullName: 'notification.notification-sent', type: 'link', path: '/notification/sent', icon: 'outbox' @@ -532,6 +544,7 @@ export class MenuService { { id: 'notification_recipients', name: 'notification.recipients', + fullName: 'notification.notification-recipients', type: 'link', path: '/notification/recipients', icon: 'contacts' @@ -539,6 +552,7 @@ export class MenuService { { id: 'notification_templates', name: 'notification.templates', + fullName: 'notification.notification-templates', type: 'link', path: '/notification/templates', icon: 'mdi:message-draw', @@ -547,6 +561,7 @@ export class MenuService { { id: 'notification_rules', name: 'notification.rules', + fullName: 'notification.notification-rules', type: 'link', path: '/notification/rules', icon: 'mdi:message-cog', @@ -571,6 +586,7 @@ export class MenuService { { id: 'home_settings', name: 'admin.home', + fullName: 'admin.home-settings', type: 'link', path: '/settings/home', icon: 'settings_applications' @@ -578,6 +594,7 @@ export class MenuService { { id: 'notification_settings', name: 'admin.notifications', + fullName: 'admin.notifications-settings', type: 'link', path: '/settings/notifications', icon: 'mdi:message-badge', @@ -586,6 +603,7 @@ export class MenuService { { id: 'repository_settings', name: 'admin.repository', + fullName: 'admin.repository-settings', type: 'link', path: '/settings/repository', icon: 'manage_history' @@ -593,6 +611,7 @@ export class MenuService { { id: 'auto_commit_settings', name: 'admin.auto-commit', + fullName: 'admin.auto-commit-settings', type: 'link', path: '/settings/auto-commit', icon: 'settings_backup_restore' @@ -839,6 +858,7 @@ export class MenuService { { id: 'edges', name: 'edge.edge-instances', + fullName: 'edge.edge-instances', type: 'link', path: '/edgeManagement/instances', icon: 'router' @@ -857,6 +877,7 @@ export class MenuService { { id: 'notification_inbox', name: 'notification.inbox', + fullName: 'notification.notification-inbox', type: 'link', path: '/notification/inbox', icon: 'inbox' diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-link.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-link.component.ts index 49994bc1d7..359ae4468d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-link.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-link.component.ts @@ -202,7 +202,7 @@ export class QuickLinkComponent extends PageComponent implements OnInit, Control } displayLinkFn = (link?: MenuSection): string | undefined => - link ? ((link as any).translated ? link.name : this.translate.instant(link.name)) : undefined; + link ? ((link as any).translated ? link.name : this.translate.instant(link.fullName || link.name)) : undefined; fetchLinks(searchText?: string): Observable> { this.searchText = searchText; @@ -228,7 +228,7 @@ export class QuickLinkComponent extends PageComponent implements OnInit, Control map((links) => { const result = deepClone(links); for (const link of result) { - link.name = this.translate.instant(link.name); + link.name = this.translate.instant(link.fullName || link.name); (link as any).translated = true; } return result; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-links-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-links-widget.component.html index 22686c4389..95c2818f1c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-links-widget.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/home-page/quick-links-widget.component.html @@ -35,7 +35,7 @@ {{ quickLink.icon }} - + diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 138a5f96b9..dcf6a768eb 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -1852,6 +1852,7 @@ "dashboard": "Edge dashboard", "dashboards": "Edge Dashboards", "rulechain-templates": "Rule chain templates", + "edge-rulechain-templates": "Edge rule chain templates", "rulechains": "Rule chains", "search": "Search edges", "selected-edges": "{ count, plural, =1 {1 edge} other {# edges} } selected", @@ -2849,6 +2850,7 @@ "first-recipient": "First recipient", "inactive": "Inactive", "inbox": "Inbox", + "notification-inbox": "Notifications / Inbox", "input-field-support-templatization": "Input field support templatization.", "input-fields-support-templatization": "Input fields support templatization.", "link": "Link", @@ -2913,6 +2915,7 @@ "users-entity-owner-hint": "Users of the entity owner hint" }, "recipients": "Recipients", + "notification-recipients": "Notifications / Recipients", "recipients-count": "{ count, plural, =1 {1 recipient} other {# recipients} }", "recipients-required": "Recipients is required", "request-search": "Request search", @@ -2930,6 +2933,7 @@ "rule-name-required": "Name is required", "rule-node-filter": "Rule node filter", "rules": "Rules", + "notification-rules": "Notifications / Rules", "scheduler-later": "Schedule for later", "search-notification": "Search notifications", "search-recipients": "Search recipients", @@ -2943,6 +2947,7 @@ "selected-template": "{ count, plural, =1 {1 template} other {# templates} } selected", "send-notification": "Send notification", "sent": "Sent", + "notification-sent": "Notifications / Sent", "set-entity-from-notification": "Set entity from notification to dashboard state", "slack-chanel-type": "Slack channel type", "slack-chanel-types": { @@ -2972,6 +2977,7 @@ "new-platform-version": "New platform version" }, "templates": "Templates", + "notification-templates": "Notifications / Templates", "tenant-profiles-list-rule-hint": "If the field is empty, the trigger will be applied to all tenant profiles", "tenants-list-rule-hint": "If the field is empty, the trigger will be applied to all tenants", "threshold": "Threshold", @@ -3084,6 +3090,7 @@ }, "security": { "security": "Security", + "general-settings": "General security settings", "2fa": { "2fa": "Two-factor authentication", "2fa-description": "Two-factor authentication protects your account from unauthorized access. All you have to do is enter a security code when you log in.",