diff --git a/web/projects/shared/src/i18n/dictionaries/de.ts b/web/projects/shared/src/i18n/dictionaries/de.ts index a898289ee..449be0c8f 100644 --- a/web/projects/shared/src/i18n/dictionaries/de.ts +++ b/web/projects/shared/src/i18n/dictionaries/de.ts @@ -575,4 +575,5 @@ export default { 608: 'Zweck', 609: 'Subdomains von', 610: 'Dynamisches DNS', + 611: 'Keine Service-Schnittstellen', } satisfies i18n diff --git a/web/projects/shared/src/i18n/dictionaries/en.ts b/web/projects/shared/src/i18n/dictionaries/en.ts index 0a40276d8..c74fd0963 100644 --- a/web/projects/shared/src/i18n/dictionaries/en.ts +++ b/web/projects/shared/src/i18n/dictionaries/en.ts @@ -574,4 +574,5 @@ export const ENGLISH = { 'Purpose': 608, // as in, the reason for a thing to exist 'subdomains of': 609, // this is a partial sentence. A domain name will be added after "of" to complete the sentence. 'Dynamic DNS': 610, + 'No service interfaces': 611, // as in, there are no available interfaces (API, UI, etc) for this software application } as const diff --git a/web/projects/shared/src/i18n/dictionaries/es.ts b/web/projects/shared/src/i18n/dictionaries/es.ts index 0d74d9aad..00d99c285 100644 --- a/web/projects/shared/src/i18n/dictionaries/es.ts +++ b/web/projects/shared/src/i18n/dictionaries/es.ts @@ -575,4 +575,5 @@ export default { 608: 'Propósito', 609: 'Subdominios de', 610: 'DNS dinámico', + 611: 'Sin interfaces de servicio', } satisfies i18n diff --git a/web/projects/shared/src/i18n/dictionaries/fr.ts b/web/projects/shared/src/i18n/dictionaries/fr.ts index 5886b99cf..3090dd757 100644 --- a/web/projects/shared/src/i18n/dictionaries/fr.ts +++ b/web/projects/shared/src/i18n/dictionaries/fr.ts @@ -575,4 +575,5 @@ export default { 608: 'But', 609: 'Sous-domaines de', 610: 'DNS dynamique', + 611: 'Aucune interface de service', } satisfies i18n diff --git a/web/projects/shared/src/i18n/dictionaries/pl.ts b/web/projects/shared/src/i18n/dictionaries/pl.ts index fe1d4f536..c3662b727 100644 --- a/web/projects/shared/src/i18n/dictionaries/pl.ts +++ b/web/projects/shared/src/i18n/dictionaries/pl.ts @@ -575,4 +575,5 @@ export default { 608: 'Cel', 609: 'Subdomeny', 610: 'Dynamiczny DNS', + 611: 'Brak interfejsów usług', } satisfies i18n diff --git a/web/projects/ui/src/app/routes/portal/routes/services/components/interfaces.component.ts b/web/projects/ui/src/app/routes/portal/routes/services/components/interfaces.component.ts index 74723546e..a89d10d45 100644 --- a/web/projects/ui/src/app/routes/portal/routes/services/components/interfaces.component.ts +++ b/web/projects/ui/src/app/routes/portal/routes/services/components/interfaces.component.ts @@ -9,6 +9,7 @@ import { tuiDefaultSort } from '@taiga-ui/cdk' import { PackageDataEntry } from 'src/app/services/patch-db/data-model' import { ServiceInterfaceItemComponent } from './interface-item.component' import { i18nPipe } from '@start9labs/shared' +import { PlaceholderComponent } from '../../../components/placeholder.component' @Component({ selector: 'service-interfaces', @@ -31,6 +32,10 @@ import { i18nPipe } from '@start9labs/shared' [pkg]="pkg()" [disabled]="disabled()" > + } @empty { + + {{ 'No service interfaces' | i18n }} + } @@ -42,7 +47,12 @@ import { i18nPipe } from '@start9labs/shared' `, host: { class: 'g-card' }, changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ServiceInterfaceItemComponent, TuiTable, i18nPipe], + imports: [ + ServiceInterfaceItemComponent, + TuiTable, + i18nPipe, + PlaceholderComponent, + ], }) export class ServiceInterfacesComponent { readonly pkg = input.required()