diff --git a/launcher/src/components/UI/custom-installation/components/CustomPath.vue b/launcher/src/components/UI/custom-installation/components/CustomPath.vue
index b528acf41..ea543d381 100755
--- a/launcher/src/components/UI/custom-installation/components/CustomPath.vue
+++ b/launcher/src/components/UI/custom-installation/components/CustomPath.vue
@@ -69,9 +69,11 @@
@@ -79,11 +81,11 @@
-
+
diff --git a/launcher/src/components/UI/one-click/components/plugin/InstallationPath.vue b/launcher/src/components/UI/one-click/components/plugin/InstallationPath.vue
index 368fd91e2..b522a152b 100644
--- a/launcher/src/components/UI/one-click/components/plugin/InstallationPath.vue
+++ b/launcher/src/components/UI/one-click/components/plugin/InstallationPath.vue
@@ -9,7 +9,13 @@
{{ $t("pluginName.path") }}
-
+
@@ -25,6 +31,7 @@
name="Start up client after installation?"
class="h-5 w-5 rounded-md border-gray-200 bg-white shadow-sm"
/>
+
{{ $t("pluginName.startOnInstall") }}
@@ -66,9 +73,15 @@ import { onMounted } from "vue";
const clickStore = useClickInstall();
+const validatePath = () => {
+ const pathRegex = /^\/(?:[^ /\0*?<>|&{}$;][^ /\0]*\/?)*[^ /\0*?<>|&{}$;]{1,}$/;
+ clickStore.isPathValid = pathRegex.test(clickStore.installationPath.trim());
+};
+
onMounted(() => {
clickStore.installMonitoring = false;
clickStore.startServicesAfterInstall = true;
+ clickStore.isPathValid = true;
});
diff --git a/launcher/src/store/clickInstallation.js b/launcher/src/store/clickInstallation.js
index 9dc6bc0ae..8c3a47b33 100755
--- a/launcher/src/store/clickInstallation.js
+++ b/launcher/src/store/clickInstallation.js
@@ -3,6 +3,7 @@ import { defineStore } from "pinia";
export const useClickInstall = defineStore("clickInstallation", {
state: () => {
return {
+ isPathValid: true,
startServicesAfterInstall: false,
isConfigButtonEnbabled: false,
installMonitoring: false,