diff --git a/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx b/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx
index b7da404d09..89ddc6921a 100644
--- a/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx
+++ b/frontend/pages/SoftwarePage/components/forms/PackageAdvancedOptions/PackageAdvancedOptions.tsx
@@ -218,6 +218,8 @@ const PackageAdvancedOptions = ({
);
};
+ const requiresAdvancedOptions = ext === "exe" || ext === "tar.gz";
+
return (
setShowAdvancedOptions(!showAdvancedOptions)}
- disabled={!selectedPackage}
+ disabled={!selectedPackage || requiresAdvancedOptions}
disabledTooltipContent={
- <>
- Choose a file to modify
- advanced options.
- >
+ requiresAdvancedOptions ? (
+ <>Install and uninstall scripts are required for .{ext} packages.>
+ ) : (
+ <>
+ Choose a file to modify
+ advanced options.
+ >
+ )
}
/>
{(showAdvancedOptions || ext === "exe" || ext === "tar.gz") &&
diff --git a/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx b/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx
index 14d0a9024c..88672b46aa 100644
--- a/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx
+++ b/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx
@@ -50,7 +50,10 @@ const FORM_VALIDATION_CONFIG: Record<
{
name: "requiredForExe",
isValid: (formData) => {
- if (formData.software?.type === "exe") {
+ if (
+ formData.software?.type === "exe" ||
+ getExtensionFromFileName(formData.software?.name || "") === "exe"
+ ) {
// Handle undefined safely with nullish coalescing
return (formData.installScript ?? "").trim().length > 0;
}
@@ -66,7 +69,7 @@ const FORM_VALIDATION_CONFIG: Record<
getExtensionFromFileName(formData.software.name) === "tar.gz"
) {
// Handle undefined safely with nullish coalescing
- return (formData.uninstallScript ?? "").trim().length > 0;
+ return (formData.installScript ?? "").trim().length > 0;
}
return true;
},
@@ -79,7 +82,10 @@ const FORM_VALIDATION_CONFIG: Record<
{
name: "requiredForExe",
isValid: (formData) => {
- if (formData.software?.type === "exe") {
+ if (
+ formData.software?.type === "exe" ||
+ getExtensionFromFileName(formData.software?.name || "") === "exe"
+ ) {
// Handle undefined safely with nullish coalescing
return (formData.uninstallScript ?? "").trim().length > 0;
}