diff --git a/src/Components/ConfigRow/index.jsx b/src/Components/ConfigRow/index.jsx
new file mode 100644
index 000000000..c19d9ac5a
--- /dev/null
+++ b/src/Components/ConfigRow/index.jsx
@@ -0,0 +1,49 @@
+import { Box, Stack, Typography } from "@mui/material";
+import PropTypes from "prop-types";
+import { useTheme } from "@emotion/react";
+import ConfigBox from "../ConfigBox";
+
+/**
+ * ConfigRow is a styled container used to layout content in a row format with specific padding, border, and spacing.
+ * It serves as the wrapper for ConfigBox, with the left section displaying the title and description,
+ * and the right section displaying the children.
+ *
+ * @component
+ * @example
+ * return (
+ *
+ *
Left content (Title + Description)
+ *
Right content (Children)
+ *
+ * );
+ */
+
+const ConfigRow = ({ title, description, children }) => {
+ const theme = useTheme();
+
+ return (
+
+
+
+ {title}
+
+ {description && (
+
+ {description}
+
+ )}
+
+
+ {children}
+
+
+ );
+};
+
+ConfigRow.propTypes = {
+ title: PropTypes.string.isRequired,
+ description: PropTypes.string,
+ children: PropTypes.node,
+};
+
+export default ConfigRow;
diff --git a/src/Components/Inputs/Search/index.jsx b/src/Components/Inputs/Search/index.jsx
index 647af874a..a3b75161c 100644
--- a/src/Components/Inputs/Search/index.jsx
+++ b/src/Components/Inputs/Search/index.jsx
@@ -154,6 +154,7 @@ const Search = ({
}}
renderOption={(props, option) => {
const { key, ...optionProps } = props;
+ const hasSecondaryLabel = secondaryLabel && option[secondaryLabel] !== undefined;
return (
- {option[filteredBy] + (secondaryLabel ? ` (${option[secondaryLabel]})` : "")}
+ {option[filteredBy] +
+ (hasSecondaryLabel ? ` (${option[secondaryLabel]})` : "")}
);
}}
diff --git a/src/Pages/Maintenance/CreateMaintenance/Components/MonitorsConfig/index.jsx b/src/Pages/Maintenance/CreateMaintenance/Components/MonitorsConfig/index.jsx
new file mode 100644
index 000000000..e792734ff
--- /dev/null
+++ b/src/Pages/Maintenance/CreateMaintenance/Components/MonitorsConfig/index.jsx
@@ -0,0 +1,68 @@
+import PropTypes from "prop-types";
+import Search from "../../../../../Components/Inputs/Search";
+import { useState } from "react";
+import ConfigRow from "../../../../../Components/ConfigRow";
+
+/**
+ * MonitorsConfig is a component that allows users to select and apply a maintenance window to a list of monitors.
+ * It provides a search input to filter monitors and select multiple options. The selected monitors are passed
+ * to the parent via the `onSelectMonitors` callback.
+ *
+ *
+ * @component
+ *
+ * @param {Array} props.monitors - List of available monitors that can be selected.
+ * @param {Array} props.selectedMonitors - List of monitors currently selected for applying the maintenance window.
+ * @param {string} [props.error] - Optional error message that will be displayed if there's an error in monitor selection.
+ * @param {boolean} props.isEditMode - A boolean flag indicating if the component is in edit mode (disabled search/input when true).
+ * @param {Function} props.onSelectMonitors - Callback function that is invoked when monitors are selected or deselected.
+ * @param {string} [props.secondaryLabel] - Optional label or description that provides additional context for the monitor search.
+ */
+
+const MonitorsConfig = ({
+ monitors,
+ selectedMonitors,
+ error,
+ isEditMode,
+ onSelectMonitors,
+ secondaryLabel,
+}) => {
+ const [search, setSearch] = useState("");
+ const handleSearch = (value) => {
+ setSearch(value);
+ };
+
+ return (
+
+
+
+ );
+};
+
+MonitorsConfig.propTypes = {
+ monitors: PropTypes.array.isRequired,
+ selectedMonitors: PropTypes.array.isRequired,
+ error: PropTypes.string,
+ isEditMode: PropTypes.bool.isRequired,
+ onSelectMonitors: PropTypes.func.isRequired,
+ secondaryLabel: PropTypes.string,
+};
+
+export default MonitorsConfig;
diff --git a/src/Pages/Maintenance/CreateMaintenance/index.jsx b/src/Pages/Maintenance/CreateMaintenance/index.jsx
index abc31361a..80dfffbd8 100644
--- a/src/Pages/Maintenance/CreateMaintenance/index.jsx
+++ b/src/Pages/Maintenance/CreateMaintenance/index.jsx
@@ -409,7 +409,7 @@ const CreateMaintenance = () => {
backgroundColor: theme.palette.accent.light, // Hover background
},
"&.Mui-disabled": {
- color: theme.palette.primary.ContrastTextTertiary, // Disabled day color
+ color: theme.palette.secondary.main, // Disabled day color
},
},
"& .MuiDayCalendar-weekDayLabel": {
diff --git a/src/locales/tr.json b/src/locales/tr.json
index b4332a548..529225bdf 100644
--- a/src/locales/tr.json
+++ b/src/locales/tr.json
@@ -1,179 +1,179 @@
{
- "dontHaveAccount": "Hesabınız yok mu",
- "email": "E-posta",
- "forgotPassword": "Parolamı unuttum",
- "password": "Parola",
- "signUp": "Kayıt Ol",
- "submit": "Gönder",
- "title": "Başlık",
- "continue": "Devam Et",
- "enterEmail": "E-posta adresinizi girin",
- "authLoginTitle": "Giriş Yap",
- "authLoginEnterPassword": "Parolanızı girin",
- "commonPassword": "Parola",
- "commonBack": "Geri",
- "authForgotPasswordTitle": "Parolanızı mı unuttunuz?",
- "authForgotPasswordResetPassword": "Parola sıfırla",
- "createPassword": "Parolanızı oluşturun",
- "createAPassword": "Bir parola oluşturun",
- "authRegisterAlreadyHaveAccount": "Zaten hesabınız var mı?",
- "commonAppName": "Checkmate",
- "authLoginEnterEmail": "E-posta adresinizi girin",
- "authRegisterTitle": "Hesap oluştur",
- "authRegisterStepOneTitle": "Hesabınızı oluşturun",
- "authRegisterStepOneDescription": "Başlamak için bilgilerinizi girin",
- "authRegisterStepTwoTitle": "Profilinizi ayarlayın",
- "authRegisterStepTwoDescription": "Kendiniz hakkında daha fazla bilgi verin",
- "authRegisterStepThreeTitle": "Neredeyse bitti!",
- "authRegisterStepThreeDescription": "Bilgilerinizi gözden geçirin",
- "authForgotPasswordDescription": "Endişelenmeyin, size sıfırlama talimatlarını göndereceğiz.",
- "authForgotPasswordSendInstructions": "Talimatları gönder",
- "authForgotPasswordBackTo": "Geri dön",
- "authCheckEmailTitle": "E-postanızı kontrol edin",
- "authCheckEmailDescription": "{{email}} adresine şifre sıfırlama bağlantısı gönderdik",
- "authCheckEmailResendEmail": "E-postayı yeniden gönder",
- "authCheckEmailBackTo": "Geri dön",
- "goBackTo": "Geri dön",
- "authCheckEmailDidntReceiveEmail": "E-posta almadınız mı?",
- "authCheckEmailClickToResend": "Yeniden göndermek için tıklayın",
- "authSetNewPasswordTitle": "Yeni şifre belirle",
- "authSetNewPasswordDescription": "Yeni şifreniz daha önce kullanılan şifrelerden farklı olmalıdır.",
- "authSetNewPasswordNewPassword": "Yeni şifre",
- "authSetNewPasswordConfirmPassword": "Parolayı onayla",
- "confirmPassword": "Parolanızı onaylayın",
- "authSetNewPasswordResetPassword": "Parola sıfırla",
- "authSetNewPasswordBackTo": "Geri dön",
- "authPasswordMustBeAtLeast": "En az",
- "authPasswordCharactersLong": "8 karakter uzunluğunda olmalı",
- "authPasswordMustContainAtLeast": "En az içermeli",
- "authPasswordSpecialCharacter": "bir özel karakter",
- "authPasswordOneNumber": "bir rakam",
- "authPasswordUpperCharacter": "bir büyük harf",
- "authPasswordLowerCharacter": "bir küçük harf",
- "authPasswordConfirmAndPassword": "Onay şifresi ve şifre",
- "authPasswordMustMatch": "eşleşmelidir",
- "authRegisterCreateAccount": "Hesap oluşturmak için devam et",
- "authRegisterCreateSuperAdminAccount": "Super admin hesabınızı oluşturmak için devam edin",
- "authRegisterSignUpWithEmail": "E-posta ile kayıt ol",
- "authRegisterBySigningUp": "Kayıt olarak, aşağıdaki şartları kabul ediyorsunuz:",
- "distributedStatusHeaderText": "Gerçek zamanlı, Gerçek cihazlar kapsamı",
- "distributedStatusSubHeaderText": "Dünya çapında milyonlarca cihaz tarafından desteklenen sistem performansını küresel bölgeye, ülkeye veya şehre göre görüntüleyin",
- "settingsGeneralSettings": "Genel ayarlar",
- "settingsDisplayTimezone": "Görüntüleme saat dilimi",
- "settingsDisplayTimezoneDescription": "Herkese açık olarak görüntülediğiniz kontrol panelinin saat dilimi.",
- "settingsAppearance": "Görünüm",
- "settingsAppearanceDescription": "Açık ve koyu mod arasında geçiş yapın veya kullanıcı arayüzü dilini değiştirin",
- "settingsThemeMode": "Tema",
- "settingsLanguage": "Dil",
- "settingsDistributedUptime": "Dağıtılmış çalışma süresi",
- "settingsDistributedUptimeDescription": "Dağıtılmış çalışma süresi izlemeyi etkinleştirin/devre dışı bırakın.",
- "settingsEnabled": "Etkin",
- "settingsDisabled": "Devre dışı",
- "settingsHistoryAndMonitoring": "Geçmiş ve izleme",
- "settingsHistoryAndMonitoringDescription": "Verileri ne kadar süreyle saklamak istediğinizi burada tanımlayın. Ayrıca tüm geçmiş verileri kaldırabilirsiniz.",
- "settingsTTLLabel": "İzleme geçmişini saklamak istediğiniz gün sayısı.",
- "settingsTTLOptionalLabel": "Sınırsız için 0",
- "settingsClearAllStats": "Tüm istatistikleri temizle. Bu geri alınamaz.",
- "settingsClearAllStatsButton": "Tüm istatistikleri temizle",
- "settingsClearAllStatsDialogTitle": "Tüm istatistikleri temizlemek istiyor musunuz?",
- "settingsClearAllStatsDialogDescription": "Silindikten sonra, monitörleriniz geri alınamaz.",
- "settingsClearAllStatsDialogConfirm": "Evet, tüm istatistikleri temizle",
- "settingsDemoMonitors": "Demo monitörler",
- "settingsDemoMonitorsDescription": "Burada demo monitörler ekleyebilir ve kaldırabilirsiniz.",
- "settingsAddDemoMonitors": "Demo monitörler ekle",
- "settingsAddDemoMonitorsButton": "Demo monitörler ekle",
- "settingsRemoveAllMonitors": "Tüm monitörleri kaldır",
- "settingsRemoveAllMonitorsButton": "Tüm monitörleri kaldır",
- "settingsRemoveAllMonitorsDialogTitle": "Tüm monitörleri kaldırmak istiyor musunuz?",
- "settingsRemoveAllMonitorsDialogConfirm": "Evet, tüm monitörleri temizle",
- "settingsWallet": "Cüzdan",
- "settingsWalletDescription": "Cüzdanınızı buradan bağlayın. Bu, Dağıtılmış Çalışma Süresi monitörünün küresel olarak birden çok düğüme bağlanması için gereklidir.",
- "settingsAbout": "Hakkında",
- "settingsDevelopedBy": "Bluewave Labs tarafından geliştirilmiştir.",
- "settingsSave": "Kaydet",
- "settingsSuccessSaved": "Ayarlar başarıyla kaydedildi",
- "settingsFailedToSave": "Ayarlar kaydedilemedi",
- "settingsStatsCleared": "İstatistikler başarıyla temizlendi",
- "settingsFailedToClearStats": "İstatistikler temizlenemedi",
- "settingsDemoMonitorsAdded": "Demo monitörler başarıyla eklendi",
- "settingsFailedToAddDemoMonitors": "Demo monitörler eklenemedi",
- "settingsMonitorsDeleted": "Tüm monitörler başarıyla silindi",
- "settingsFailedToDeleteMonitors": "Monitörler silinemedi",
- "starPromptTitle": "Checkmate yıldızla değerlendirin",
- "starPromptDescription": "En son sürümleri görün ve GitHub'daki topluluğun büyümesine yardımcı olun",
- "https": "",
- "http": "",
- "monitor": "",
- "aboutus": "",
- "signUP": "",
- "now": "",
- "delete": "",
- "configure": "",
- "networkError": "",
- "responseTime": "",
- "ms": "",
- "bar": "",
- "area": "",
- "country": "",
- "city": "",
- "response": "",
- "checkConnection": "",
- "passwordreset": "",
- "authRegisterStepOnePersonalDetails": "",
- "authCheckEmailOpenEmailButton": "",
- "authNewPasswordConfirmed": "",
- "monitorStatusUp": "",
- "monitorStatusDown": "",
- "webhookSendSuccess": "",
- "webhookSendError": "",
- "webhookUnsupportedPlatform": "",
- "distributedRightCategoryTitle": "",
- "distributedStatusServerMonitors": "",
- "distributedStatusServerMonitorsDescription": "",
- "distributedUptimeCreateSelectURL": "",
- "distributedUptimeCreateChecks": "",
- "distributedUptimeCreateChecksDescription": "",
- "distributedUptimeCreateIncidentNotification": "",
- "distributedUptimeCreateIncidentDescription": "",
- "distributedUptimeCreateAdvancedSettings": "",
- "distributedUptimeDetailsNoMonitorHistory": "",
- "distributedUptimeDetailsFooterHeading": "",
- "distributedUptimeDetailsFooterBuilt": "",
- "distributedUptimeDetailsFooterSolana": "",
- "distributedUptimeDetailsMonitorHeader": "",
- "distributedUptimeDetailsStatusHeaderUptime": "",
- "distributedUptimeDetailsStatusHeaderLastUpdate": "",
- "notifications": {
- "enableNotifications": "",
- "testNotification": "",
- "addOrEditNotifications": "",
- "slack": {
- "label": "",
- "description": "",
- "webhookLabel": "",
- "webhookPlaceholder": ""
- },
- "discord": {
- "label": "",
- "description": "",
- "webhookLabel": "",
- "webhookPlaceholder": ""
- },
- "telegram": {
- "label": "",
- "description": "",
- "tokenLabel": "",
- "tokenPlaceholder": "",
- "chatIdLabel": "",
- "chatIdPlaceholder": ""
- },
- "webhook": {
- "label": "",
- "description": "",
- "urlLabel": "",
- "urlPlaceholder": ""
- },
- "testNotificationDevelop": ""
- },
- "testLocale": "TEST11 UPLOAD"
-}
\ No newline at end of file
+ "dontHaveAccount": "Hesabınız yok mu",
+ "email": "E-posta",
+ "forgotPassword": "Parolamı unuttum",
+ "password": "Parola",
+ "signUp": "Kayıt Ol",
+ "submit": "Gönder",
+ "title": "Başlık",
+ "continue": "Devam Et",
+ "enterEmail": "E-posta adresinizi girin",
+ "authLoginTitle": "Giriş Yap",
+ "authLoginEnterPassword": "Parolanızı girin",
+ "commonPassword": "Parola",
+ "commonBack": "Geri",
+ "authForgotPasswordTitle": "Parolanızı mı unuttunuz?",
+ "authForgotPasswordResetPassword": "Parola sıfırla",
+ "createPassword": "Parolanızı oluşturun",
+ "createAPassword": "Bir parola oluşturun",
+ "authRegisterAlreadyHaveAccount": "Zaten hesabınız var mı?",
+ "commonAppName": "Checkmate",
+ "authLoginEnterEmail": "E-posta adresinizi girin",
+ "authRegisterTitle": "Hesap oluştur",
+ "authRegisterStepOneTitle": "Hesabınızı oluşturun",
+ "authRegisterStepOneDescription": "Başlamak için bilgilerinizi girin",
+ "authRegisterStepTwoTitle": "Profilinizi ayarlayın",
+ "authRegisterStepTwoDescription": "Kendiniz hakkında daha fazla bilgi verin",
+ "authRegisterStepThreeTitle": "Neredeyse bitti!",
+ "authRegisterStepThreeDescription": "Bilgilerinizi gözden geçirin",
+ "authForgotPasswordDescription": "Endişelenmeyin, size sıfırlama talimatlarını göndereceğiz.",
+ "authForgotPasswordSendInstructions": "Talimatları gönder",
+ "authForgotPasswordBackTo": "Geri dön",
+ "authCheckEmailTitle": "E-postanızı kontrol edin",
+ "authCheckEmailDescription": "{{email}} adresine şifre sıfırlama bağlantısı gönderdik",
+ "authCheckEmailResendEmail": "E-postayı yeniden gönder",
+ "authCheckEmailBackTo": "Geri dön",
+ "goBackTo": "Geri dön",
+ "authCheckEmailDidntReceiveEmail": "E-posta almadınız mı?",
+ "authCheckEmailClickToResend": "Yeniden göndermek için tıklayın",
+ "authSetNewPasswordTitle": "Yeni şifre belirle",
+ "authSetNewPasswordDescription": "Yeni şifreniz daha önce kullanılan şifrelerden farklı olmalıdır.",
+ "authSetNewPasswordNewPassword": "Yeni şifre",
+ "authSetNewPasswordConfirmPassword": "Parolayı onayla",
+ "confirmPassword": "Parolanızı onaylayın",
+ "authSetNewPasswordResetPassword": "Parola sıfırla",
+ "authSetNewPasswordBackTo": "Geri dön",
+ "authPasswordMustBeAtLeast": "En az",
+ "authPasswordCharactersLong": "8 karakter uzunluğunda olmalı",
+ "authPasswordMustContainAtLeast": "En az içermeli",
+ "authPasswordSpecialCharacter": "bir özel karakter",
+ "authPasswordOneNumber": "bir rakam",
+ "authPasswordUpperCharacter": "bir büyük harf",
+ "authPasswordLowerCharacter": "bir küçük harf",
+ "authPasswordConfirmAndPassword": "Onay şifresi ve şifre",
+ "authPasswordMustMatch": "eşleşmelidir",
+ "authRegisterCreateAccount": "Hesap oluşturmak için devam et",
+ "authRegisterCreateSuperAdminAccount": "Super admin hesabınızı oluşturmak için devam edin",
+ "authRegisterSignUpWithEmail": "E-posta ile kayıt ol",
+ "authRegisterBySigningUp": "Kayıt olarak, aşağıdaki şartları kabul ediyorsunuz:",
+ "distributedStatusHeaderText": "Gerçek zamanlı, Gerçek cihazlar kapsamı",
+ "distributedStatusSubHeaderText": "Dünya çapında milyonlarca cihaz tarafından desteklenen sistem performansını küresel bölgeye, ülkeye veya şehre göre görüntüleyin",
+ "settingsGeneralSettings": "Genel ayarlar",
+ "settingsDisplayTimezone": "Görüntüleme saat dilimi",
+ "settingsDisplayTimezoneDescription": "Herkese açık olarak görüntülediğiniz kontrol panelinin saat dilimi.",
+ "settingsAppearance": "Görünüm",
+ "settingsAppearanceDescription": "Açık ve koyu mod arasında geçiş yapın veya kullanıcı arayüzü dilini değiştirin",
+ "settingsThemeMode": "Tema",
+ "settingsLanguage": "Dil",
+ "settingsDistributedUptime": "Dağıtılmış çalışma süresi",
+ "settingsDistributedUptimeDescription": "Dağıtılmış çalışma süresi izlemeyi etkinleştirin/devre dışı bırakın.",
+ "settingsEnabled": "Etkin",
+ "settingsDisabled": "Devre dışı",
+ "settingsHistoryAndMonitoring": "Geçmiş ve izleme",
+ "settingsHistoryAndMonitoringDescription": "Verileri ne kadar süreyle saklamak istediğinizi burada tanımlayın. Ayrıca tüm geçmiş verileri kaldırabilirsiniz.",
+ "settingsTTLLabel": "İzleme geçmişini saklamak istediğiniz gün sayısı.",
+ "settingsTTLOptionalLabel": "Sınırsız için 0",
+ "settingsClearAllStats": "Tüm istatistikleri temizle. Bu geri alınamaz.",
+ "settingsClearAllStatsButton": "Tüm istatistikleri temizle",
+ "settingsClearAllStatsDialogTitle": "Tüm istatistikleri temizlemek istiyor musunuz?",
+ "settingsClearAllStatsDialogDescription": "Silindikten sonra, monitörleriniz geri alınamaz.",
+ "settingsClearAllStatsDialogConfirm": "Evet, tüm istatistikleri temizle",
+ "settingsDemoMonitors": "Demo monitörler",
+ "settingsDemoMonitorsDescription": "Burada demo monitörler ekleyebilir ve kaldırabilirsiniz.",
+ "settingsAddDemoMonitors": "Demo monitörler ekle",
+ "settingsAddDemoMonitorsButton": "Demo monitörler ekle",
+ "settingsRemoveAllMonitors": "Tüm monitörleri kaldır",
+ "settingsRemoveAllMonitorsButton": "Tüm monitörleri kaldır",
+ "settingsRemoveAllMonitorsDialogTitle": "Tüm monitörleri kaldırmak istiyor musunuz?",
+ "settingsRemoveAllMonitorsDialogConfirm": "Evet, tüm monitörleri temizle",
+ "settingsWallet": "Cüzdan",
+ "settingsWalletDescription": "Cüzdanınızı buradan bağlayın. Bu, Dağıtılmış Çalışma Süresi monitörünün küresel olarak birden çok düğüme bağlanması için gereklidir.",
+ "settingsAbout": "Hakkında",
+ "settingsDevelopedBy": "Bluewave Labs tarafından geliştirilmiştir.",
+ "settingsSave": "Kaydet",
+ "settingsSuccessSaved": "Ayarlar başarıyla kaydedildi",
+ "settingsFailedToSave": "Ayarlar kaydedilemedi",
+ "settingsStatsCleared": "İstatistikler başarıyla temizlendi",
+ "settingsFailedToClearStats": "İstatistikler temizlenemedi",
+ "settingsDemoMonitorsAdded": "Demo monitörler başarıyla eklendi",
+ "settingsFailedToAddDemoMonitors": "Demo monitörler eklenemedi",
+ "settingsMonitorsDeleted": "Tüm monitörler başarıyla silindi",
+ "settingsFailedToDeleteMonitors": "Monitörler silinemedi",
+ "starPromptTitle": "Checkmate yıldızla değerlendirin",
+ "starPromptDescription": "En son sürümleri görün ve GitHub'daki topluluğun büyümesine yardımcı olun",
+ "https": "",
+ "http": "",
+ "monitor": "",
+ "aboutus": "",
+ "signUP": "",
+ "now": "",
+ "delete": "",
+ "configure": "",
+ "networkError": "",
+ "responseTime": "",
+ "ms": "",
+ "bar": "",
+ "area": "",
+ "country": "",
+ "city": "",
+ "response": "",
+ "checkConnection": "",
+ "passwordreset": "",
+ "authRegisterStepOnePersonalDetails": "",
+ "authCheckEmailOpenEmailButton": "",
+ "authNewPasswordConfirmed": "",
+ "monitorStatusUp": "",
+ "monitorStatusDown": "",
+ "webhookSendSuccess": "",
+ "webhookSendError": "",
+ "webhookUnsupportedPlatform": "",
+ "distributedRightCategoryTitle": "",
+ "distributedStatusServerMonitors": "",
+ "distributedStatusServerMonitorsDescription": "",
+ "distributedUptimeCreateSelectURL": "",
+ "distributedUptimeCreateChecks": "",
+ "distributedUptimeCreateChecksDescription": "",
+ "distributedUptimeCreateIncidentNotification": "",
+ "distributedUptimeCreateIncidentDescription": "",
+ "distributedUptimeCreateAdvancedSettings": "",
+ "distributedUptimeDetailsNoMonitorHistory": "",
+ "distributedUptimeDetailsFooterHeading": "",
+ "distributedUptimeDetailsFooterBuilt": "",
+ "distributedUptimeDetailsFooterSolana": "",
+ "distributedUptimeDetailsMonitorHeader": "",
+ "distributedUptimeDetailsStatusHeaderUptime": "",
+ "distributedUptimeDetailsStatusHeaderLastUpdate": "",
+ "notifications": {
+ "enableNotifications": "",
+ "testNotification": "",
+ "addOrEditNotifications": "",
+ "slack": {
+ "label": "",
+ "description": "",
+ "webhookLabel": "",
+ "webhookPlaceholder": ""
+ },
+ "discord": {
+ "label": "",
+ "description": "",
+ "webhookLabel": "",
+ "webhookPlaceholder": ""
+ },
+ "telegram": {
+ "label": "",
+ "description": "",
+ "tokenLabel": "",
+ "tokenPlaceholder": "",
+ "chatIdLabel": "",
+ "chatIdPlaceholder": ""
+ },
+ "webhook": {
+ "label": "",
+ "description": "",
+ "urlLabel": "",
+ "urlPlaceholder": ""
+ },
+ "testNotificationDevelop": ""
+ },
+ "testLocale": "TEST11 UPLOAD"
+}