diff --git a/deployment/windows/dialogs/setuptype.nsdinc b/deployment/windows/dialogs/setuptype.nsdinc index 0b171da282..6c30119331 100644 --- a/deployment/windows/dialogs/setuptype.nsdinc +++ b/deployment/windows/dialogs/setuptype.nsdinc @@ -49,8 +49,4 @@ Function fnc_setuptype_Create FunctionEnd -; dialog show function -Function fnc_setuptype_Show - Call fnc_setuptype_Create - nsDialogs::Show -FunctionEnd + diff --git a/deployment/windows/jellyfin.nsi b/deployment/windows/jellyfin.nsi index b8de4a4401..375c3cd798 100644 --- a/deployment/windows/jellyfin.nsi +++ b/deployment/windows/jellyfin.nsi @@ -89,9 +89,10 @@ ShowUninstDetails show !insertmacro MUI_PAGE_LICENSE "$%InstallLocation%\LICENSE" ; picking up generic GPL ; Setup Type Page - Page custom ShowSetupTypePage ;SetupTypePage_Config + Page custom ShowSetupTypePage SetupTypePage_Config ; Components Page + !define MUI_PAGE_CUSTOMFUNCTION_PRE HideComponentsPage !insertmacro MUI_PAGE_COMPONENTS !define MUI_PAGE_CUSTOMFUNCTION_PRE HideInstallDirectoryPage ; Controls when to hide / show !define MUI_DIRECTORYPAGE_TEXT_DESTINATION "Install folder" ; shows just above the folder selection dialog @@ -185,8 +186,8 @@ Section "!Jellyfin Server (required)" InstallJellyfinServer WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd -Section /o "Jellyfin Server Service" InstallService - +Section "Jellyfin Server Service" InstallService +${If} $_INSTALLSERVICE_ == "Yes" ; Only run this if we're going to install the service! ExecWait '"$INSTDIR\nssm.exe" statuscode JellyfinServer' $0 DetailPrint "Jellyfin Server service statuscode, $0" ${If} $0 == 0 @@ -246,6 +247,7 @@ Section /o "Jellyfin Server Service" InstallService ${EndIf} DetailPrint "Jellyfin Server service account change, $0" ${EndIf} +${EndIf} SectionEnd @@ -327,7 +329,7 @@ SectionEnd Function .onInit ; Setting up defaults - StrCpy $_INSTALLSERVICE_ "No" + StrCpy $_INSTALLSERVICE_ "Yes" StrCpy $_SERVICESTART_ "Yes" StrCpy $_SERVICEACCOUNTTYPE_ "NetworkService" StrCpy $_EXISTINGINSTALLATION_ "No" @@ -420,7 +422,13 @@ Function HideConfirmationPage FunctionEnd Function HideSetupTypePage - ${If} $_EXISTINGINSTALLATION_ == "Yes" ; Existing installation detected, so don't ask for InstallFolder + ${If} $_EXISTINGINSTALLATION_ == "Yes" ; Existing installation detected, so don't ask for SetupType + Abort + ${EndIf} +FunctionEnd + +Function HideComponentsPage + ${If} $_SETUPTYPE_ == "Basic" ; Basic installation chosen, don't show components choice Abort ${EndIf} FunctionEnd @@ -450,6 +458,22 @@ FunctionEnd Var StartServiceAfterInstall Var UseNetworkServiceAccount Var UseLocalSystemAccount +Var BasicInstall + + +Function SetupTypePage_Config +${NSD_GetState} $hCtl_setuptype_BasicInstall $BasicInstall +${If} $BasicInstall == 1 + StrCpy $_SETUPTYPE_ "Basic" + StrCpy $_INSTALLSERVICE_ "No" + StrCpy $_SERVICESTART_ "No" + StrCpy $_SERVICEACCOUNTTYPE_ "None" +${Else} + StrCpy $_SETUPTYPE_ "Advanced" + StrCpy $_INSTALLSERVICE_ "Yes" +${EndIf} + +FunctionEnd Function ServiceConfigPage_Config ${NSD_GetState} $hCtl_service_config_StartServiceAfterInstall $StartServiceAfterInstall