diff --git a/public/locales/en/layout/add-service-app-shelf.json b/public/locales/en/layout/add-service-app-shelf.json
index d13119302..936fddf18 100644
--- a/public/locales/en/layout/add-service-app-shelf.json
+++ b/public/locales/en/layout/add-service-app-shelf.json
@@ -97,6 +97,9 @@
"advancedOptions": {
"title": "Advanced Options",
"form": {
+ "ping": {
+ "label": "Ping Service"
+ },
"httpStatusCodes": {
"label": "HTTP Status Codes",
"placeholder": "Select valid status codes",
diff --git a/src/components/AppShelf/AddAppShelfItem.tsx b/src/components/AppShelf/AddAppShelfItem.tsx
index efeba042a..8689cd8d8 100644
--- a/src/components/AppShelf/AddAppShelfItem.tsx
+++ b/src/components/AppShelf/AddAppShelfItem.tsx
@@ -10,6 +10,7 @@ import {
MultiSelect,
PasswordInput,
Select,
+ Space,
Stack,
Switch,
Tabs,
@@ -18,13 +19,13 @@ import {
Tooltip,
} from '@mantine/core';
import { useForm } from '@mantine/form';
+import { useDebouncedValue } from '@mantine/hooks';
import { IconApps } from '@tabler/icons';
+import { useTranslation } from 'next-i18next';
import { useEffect, useState } from 'react';
import { v4 as uuidv4 } from 'uuid';
-import { useDebouncedValue } from '@mantine/hooks';
-import { useTranslation } from 'next-i18next';
import { useConfig } from '../../tools/state';
-import { tryMatchPort, ServiceTypeList, StatusCodes } from '../../tools/types';
+import { ServiceTypeList, StatusCodes, tryMatchPort } from '../../tools/types';
import Tip from '../layout/Tip';
export function AddItemShelfButton(props: any) {
@@ -109,6 +110,7 @@ export function AddAppShelfItemForm(props: { setOpened: (b: boolean) => void } &
username: props.username ?? undefined,
password: props.password ?? undefined,
openedUrl: props.openedUrl ?? undefined,
+ ping: props.ping ?? true,
status: props.status ?? ['200'],
newTab: props.newTab ?? true,
},
@@ -177,7 +179,11 @@ export function AddAppShelfItemForm(props: { setOpened: (b: boolean) => void } &
if (newForm.newTab === true) newForm.newTab = undefined;
if (newForm.openedUrl === '') newForm.openedUrl = undefined;
if (newForm.category === null) newForm.category = undefined;
- if (newForm.status.length === 1 && newForm.status[0] === '200') {
+ if (newForm.ping === true) newForm.ping = undefined;
+ if (
+ (newForm.status.length === 1 && newForm.status[0] === '200') ||
+ newForm.ping === false
+ ) {
delete newForm.status;
}
// If service already exists, update it.
@@ -210,6 +216,7 @@ export function AddAppShelfItemForm(props: { setOpened: (b: boolean) => void } &
{t('modal.tabs.advancedOptions.title')}
+
void } &
+
-
+ {form.values.ping && (
+
+ )}
({
item: {
@@ -134,7 +134,7 @@ export function AppShelfItem(props: any) {
-
+ {service.ping !== false && }
diff --git a/src/tools/types.ts b/src/tools/types.ts
index e08b491e4..1c9c5f6f0 100644
--- a/src/tools/types.ts
+++ b/src/tools/types.ts
@@ -183,5 +183,6 @@ export interface serviceItem {
username?: string;
openedUrl?: string;
newTab?: boolean;
+ ping?: boolean;
status?: string[];
}