diff --git a/FFUDevelopment/BuildFFUVM_UI.ps1 b/FFUDevelopment/BuildFFUVM_UI.ps1 index ab69186..018821c 100644 --- a/FFUDevelopment/BuildFFUVM_UI.ps1 +++ b/FFUDevelopment/BuildFFUVM_UI.ps1 @@ -203,58 +203,7 @@ $window.Add_Loaded({ $script:uiState.Controls.wingetPanel.Visibility = if ($script:uiState.Controls.chkInstallWingetApps.IsChecked) { 'Visible' } else { 'Collapsed' } $script:uiState.Controls.wingetSearchPanel.Visibility = 'Collapsed' # Keep search hidden initially - $script:uiState.Controls.chkInstallApps.Add_Checked({ - $script:uiState.Controls.chkInstallWingetApps.Visibility = 'Visible' - $script:uiState.Controls.applicationPathPanel.Visibility = 'Visible' - $script:uiState.Controls.appListJsonPathPanel.Visibility = 'Visible' - $script:uiState.Controls.chkBringYourOwnApps.Visibility = 'Visible' - # New logic for AppsScriptVariables - $script:uiState.Controls.chkDefineAppsScriptVariables.Visibility = 'Visible' - }) - $script:uiState.Controls.chkInstallApps.Add_Unchecked({ - $script:uiState.Controls.chkInstallWingetApps.IsChecked = $false # Uncheck children when parent is unchecked - $script:uiState.Controls.chkBringYourOwnApps.IsChecked = $false - $script:uiState.Controls.chkInstallWingetApps.Visibility = 'Collapsed' - $script:uiState.Controls.applicationPathPanel.Visibility = 'Collapsed' - $script:uiState.Controls.appListJsonPathPanel.Visibility = 'Collapsed' - $script:uiState.Controls.chkBringYourOwnApps.Visibility = 'Collapsed' - $script:uiState.Controls.wingetPanel.Visibility = 'Collapsed' - $script:uiState.Controls.wingetSearchPanel.Visibility = 'Collapsed' - $script:uiState.Controls.byoApplicationPanel.Visibility = 'Collapsed' - # New logic for AppsScriptVariables - $script:uiState.Controls.chkDefineAppsScriptVariables.IsChecked = $false # Also uncheck it - $script:uiState.Controls.chkDefineAppsScriptVariables.Visibility = 'Collapsed' - $script:uiState.Controls.appsScriptVariablesPanel.Visibility = 'Collapsed' # Ensure panel is hidden - }) - $script:uiState.Controls.btnBrowseApplicationPath.Add_Click({ - $selectedPath = Show-ModernFolderPicker -Title "Select Application Path Folder" - if ($selectedPath) { $script:uiState.Controls.txtApplicationPath.Text = $selectedPath } - }) - $script:uiState.Controls.btnBrowseAppListJsonPath.Add_Click({ - $ofd = New-Object System.Windows.Forms.OpenFileDialog - $ofd.Filter = "JSON files (*.json)|*.json" - $ofd.Title = "Select AppList.json File" - $ofd.CheckFileExists = $false - if ($ofd.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { $script:uiState.Controls.txtAppListJsonPath.Text = $ofd.FileName } - }) - $script:uiState.Controls.chkBringYourOwnApps.Add_Checked({ - $script:uiState.Controls.byoApplicationPanel.Visibility = 'Visible' - }) - $script:uiState.Controls.chkBringYourOwnApps.Add_Unchecked({ - $script:uiState.Controls.byoApplicationPanel.Visibility = 'Collapsed' - # Clear fields when hiding - $script:uiState.Controls.txtAppName.Text = '' - $script:uiState.Controls.txtAppCommandLine.Text = '' - $script:uiState.Controls.txtAppArguments.Text = '' - $script:uiState.Controls.txtAppSource.Text = '' - }) - $script:uiState.Controls.chkInstallWingetApps.Add_Checked({ - $script:uiState.Controls.wingetPanel.Visibility = 'Visible' - }) - $script:uiState.Controls.chkInstallWingetApps.Add_Unchecked({ - $script:uiState.Controls.wingetPanel.Visibility = 'Collapsed' - $script:uiState.Controls.wingetSearchPanel.Visibility = 'Collapsed' # Hide search when unchecked - }) + $script:uiState.Controls.btnCheckWingetModule.Add_Click({ param($buttonSender, $clickEventArgs) $buttonSender.IsEnabled = $false diff --git a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Handlers.psm1 b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Handlers.psm1 index 89df5fe..55fd5c2 100644 --- a/FFUDevelopment/FFUUI.Core/FFUUI.Core.Handlers.psm1 +++ b/FFUDevelopment/FFUUI.Core/FFUUI.Core.Handlers.psm1 @@ -206,6 +206,85 @@ function Register-EventHandlers { $localState.Controls.chkLatestCU.IsEnabled = $true }) + # Applications Tab Event Handlers + $State.Controls.chkInstallApps.Add_Checked({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $localState.Controls.chkInstallWingetApps.Visibility = 'Visible' + $localState.Controls.applicationPathPanel.Visibility = 'Visible' + $localState.Controls.appListJsonPathPanel.Visibility = 'Visible' + $localState.Controls.chkBringYourOwnApps.Visibility = 'Visible' + $localState.Controls.chkDefineAppsScriptVariables.Visibility = 'Visible' + }) + $State.Controls.chkInstallApps.Add_Unchecked({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $localState.Controls.chkInstallWingetApps.IsChecked = $false + $localState.Controls.chkBringYourOwnApps.IsChecked = $false + $localState.Controls.chkInstallWingetApps.Visibility = 'Collapsed' + $localState.Controls.applicationPathPanel.Visibility = 'Collapsed' + $localState.Controls.appListJsonPathPanel.Visibility = 'Collapsed' + $localState.Controls.chkBringYourOwnApps.Visibility = 'Collapsed' + $localState.Controls.wingetPanel.Visibility = 'Collapsed' + $localState.Controls.wingetSearchPanel.Visibility = 'Collapsed' + $localState.Controls.byoApplicationPanel.Visibility = 'Collapsed' + $localState.Controls.chkDefineAppsScriptVariables.IsChecked = $false + $localState.Controls.chkDefineAppsScriptVariables.Visibility = 'Collapsed' + $localState.Controls.appsScriptVariablesPanel.Visibility = 'Collapsed' + }) + + $State.Controls.btnBrowseApplicationPath.Add_Click({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $selectedPath = Show-ModernFolderPicker -Title "Select Application Path Folder" + if ($selectedPath) { $localState.Controls.txtApplicationPath.Text = $selectedPath } + }) + + $State.Controls.btnBrowseAppListJsonPath.Add_Click({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $ofd = New-Object System.Windows.Forms.OpenFileDialog + $ofd.Filter = "JSON files (*.json)|*.json" + $ofd.Title = "Select AppList.json File" + $ofd.CheckFileExists = $false + if ($ofd.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { $localState.Controls.txtAppListJsonPath.Text = $ofd.FileName } + }) + + $State.Controls.chkBringYourOwnApps.Add_Checked({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $localState.Controls.byoApplicationPanel.Visibility = 'Visible' + }) + $State.Controls.chkBringYourOwnApps.Add_Unchecked({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $localState.Controls.byoApplicationPanel.Visibility = 'Collapsed' + $localState.Controls.txtAppName.Text = '' + $localState.Controls.txtAppCommandLine.Text = '' + $localState.Controls.txtAppArguments.Text = '' + $localState.Controls.txtAppSource.Text = '' + }) + + $State.Controls.chkInstallWingetApps.Add_Checked({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $localState.Controls.wingetPanel.Visibility = 'Visible' + }) + $State.Controls.chkInstallWingetApps.Add_Unchecked({ + param($eventSource, $routedEventArgs) + $window = [System.Windows.Window]::GetWindow($eventSource) + $localState = $window.Tag + $localState.Controls.wingetPanel.Visibility = 'Collapsed' + $localState.Controls.wingetSearchPanel.Visibility = 'Collapsed' + }) + # M365 Apps/Office tab Event Handlers $State.Controls.chkInstallOffice.Add_Checked({ param($eventSource, $routedEventArgs) @@ -488,7 +567,7 @@ function Register-EventHandlers { $localState = $window.Tag Save-DriversJson -State $localState }) - + $State.Controls.btnImportDriversJson.Add_Click({ param($eventSource, $routedEventArgs) $window = [System.Windows.Window]::GetWindow($eventSource)