47 Commits

Author SHA1 Message Date
rbalsleyMSFT 7cc7919da4 Feat: Add configurable thread limit for parallel operations
Adds a "Threads" setting to the UI, allowing users to control the throttle limit for parallel tasks like driver and application processing.

This introduces a new textbox in the build options and updates the parallel processing function to use this configurable value instead of a hardcoded one.

Input validation is also added to ensure the threads value is a valid integer and is at least 1. The new setting is integrated into the configuration save/load functionality.
2025-07-18 13:45:58 -07:00
rbalsleyMSFT 62b4816498 Improves application orchestration and BYO app handling
Enhances the orchestrator script to skip application installation steps if no corresponding app lists or files are present. This prevents unnecessary script executions and cleans up the output log.

Makes the 'Arguments' field optional when adding a 'Bring Your Own' application, simplifying the process for apps without arguments.

Ensures the 'Priority' field for applications is consistently saved as an integer to improve data integrity.
2025-07-17 16:50:38 -07:00
rbalsleyMSFT 71b3989083 Adds support for custom Office configuration XML
Introduces the ability to use a custom XML file for Office installation, allowing for more flexible configurations.

The build script now accepts an `OfficeConfigXMLFile` parameter. If provided, its filename will be used for the installation.

The Office Deployment Toolkit is now downloaded to the specified Office path instead of the development path. UI tooltips are updated to clarify this behavior.
2025-07-16 18:04:17 -07:00
rbalsleyMSFT e753344137 Refine Office configuration tooltips
Improves the tooltips for the Office installation path and configuration XML options.

The updated text provides clearer guidance on the purpose and usage of these settings.
2025-07-16 15:06:42 -07:00
rbalsleyMSFT 5b85acbd73 Refactor(UI): Reorder tabs for a more logical workflow
Moves the "Build" tab to appear after the "Hyper-V Settings" tab. This change aligns the UI with the typical user process, creating a more intuitive sequence for configuration.
2025-07-14 18:09:59 -07:00
rbalsleyMSFT 7043af47c3 Feat: Add live log monitoring tab to UI
Introduces a new "Monitor" tab in the `BuildFFUVM` UI to display live log output from the build process.

When a build is started, the UI now automatically switches to the Monitor tab. It tails the main log file in real-time and displays the content in a list view, which auto-scrolls as new entries appear.

This provides immediate visual feedback on the build progress and any errors without needing to manually open the log file.

Additionally, this change adds a Ctrl+C keyboard shortcut to copy selected log lines from the monitor view to the clipboard.
2025-07-10 19:56:59 -07:00
rbalsleyMSFT 6b7351d1b3 Hides download settings when using a local ISO
Updates the UI to conditionally hide the Windows language and media type controls. These settings are only applicable when downloading a new image and are irrelevant when a local ISO file is provided.

This change simplifies the user interface and prevents confusion by only showing options relevant to the selected action.
2025-07-09 14:49:42 -07:00
rbalsleyMSFT f9a8e3149f Adds a "Verbose" checkbox to the UI, allowing users to enable write-verbose output from the underlying build script.
This helps in troubleshooting the FFU build process by providing more detailed output to the console. The verbose setting is saved to and loaded from the configuration file.
2025-07-09 09:50:26 -07:00
rbalsleyMSFT f44e06c57e Refactor USB drive list with dynamic selection and sorting
Updates the USB drive selection UI to align with other list views in the application. This change replaces the static "Select All" checkbox with a dynamic, selectable column that includes the checkbox in the header.

This refactoring provides a more consistent user experience and adds column sorting functionality to the USB drive list.

Additionally, the underlying shared function for creating selectable columns is improved to use the central UI state object for managing controls, removing the dependency on script-scoped variables for better encapsulation.
2025-06-18 16:10:15 -07:00
rbalsleyMSFT 3eaa8b6efd Removes comments from XAML
Removes unnecessary comments from the XAML file to improve readability.
2025-06-15 10:32:17 -07:00
rbalsleyMSFT 1b5fa5129c Updated formatting 2025-06-05 16:31:44 -07:00
rbalsleyMSFT c8042c6a75 Add Drivers.json path configuration to UI and core logic
- Introduced a new TextBox and Button in the UI for specifying the Drivers.json file path.
- Updated the UI layout to accommodate the new Drivers.json path input.
- Enhanced the core logic to set a default path for Drivers.json based on the Drivers folder.
- Implemented functionality to browse and select the Drivers.json file, allowing users to create or select an existing file.
2025-05-29 13:26:03 -07:00
rbalsleyMSFT 421fb76320 Add 'Update Latest Microcode' checkbox to UI and update related logic for handling microcode updates 2025-05-29 12:54:15 -07:00
rbalsleyMSFT 6f336970db Add 'Update ADK' checkbox to UI and update related logic for handling ADK installation 2025-05-29 10:39:19 -07:00
rbalsleyMSFT 985285963c Add 'Remove Downloaded Update Files' checkbox to UI and update related logic for handling updates 2025-05-28 18:01:59 -07:00
rbalsleyMSFT 43223ad1cc Add 'Remove Apps Folder Content' checkbox to UI and update related logic
- Introduced a new checkbox in the UI for removing application content in the Apps folder after FFU capture.
- Updated the Get-UIConfig function to retrieve the state of the new checkbox.
- Added default value for the new 'RemoveApps' parameter in the general defaults.
2025-05-28 17:43:59 -07:00
rbalsleyMSFT 05466f96c0 Add selectable "Select All" checkbox functionality to ListView columns and update button naming for clarity
- Implemented Add-SelectableGridViewColumn function to allow adding a header checkbox for selecting all items in ListViews.
- Updated the ListView setup in BuildFFUVM_UI.ps1 to utilize the new selectable column feature for driver models and winget results.
- Added IsSelected property to items in Apps Script Variables ListView for better selection management.
- Renamed button from "Remove Apps Script Variable" to "Remove Selected" for improved clarity on functionality.
2025-05-28 15:33:24 -07:00
rbalsleyMSFT 08b1df79f2 Refactor Apps Script Variables UI for improved layout and usability
- Simplified the input layout for defining Apps Script Variables by removing the grid structure.
- Added clear labels for "Key" and "Value" inputs to enhance user understanding.
- Adjusted the "Add Variable" button for better alignment and padding, improving the overall user experience.
2025-05-27 19:30:34 -07:00
rbalsleyMSFT 3ec53548a9 Add AppsScriptVariables functionality to UI for defining key-value pairs
- Introduced a new checkbox to enable defining Apps Script Variables.
- Added a panel for inputting key-value pairs with validation for duplicates.
- Implemented event handlers for adding, removing, and clearing Apps Script Variables.
- Updated LoadConfig logic to handle loading of Apps Script Variables from configuration.
2025-05-27 19:12:48 -07:00
rbalsleyMSFT e8d1be6aa6 Rename "Build Config File" button to "Save Config File" for improved clarity in the UI, reflecting its functionality more accurately. 2025-05-27 10:00:33 -07:00
rbalsleyMSFT f162de89be - Added Apps\Orchestration folder with new orchestration workflow to replace InstallAppsAndSysprep.cmd file.
- Updated BuildFFUUnattend files to point to the new Orchestrator.ps1 file.
- Added new common and FFUUI.Core directories that house common/shared files between the UI and PS1 script. This breaks up each of the PS1 scripts to keep things smaller and more organized. Still a lot of work to do here to pull some stuff out of the PS1 scripts.
- Modified the CaptureFFU.ps1 file to include more info during the capture process to help with troubleshooting
- Too many functional changes to list here.
2025-05-26 11:54:14 -07:00
rbalsleyMSFT 1156373f0c Add Save, Load, and Clear functionality for BYO applications with JSON support 2025-05-26 11:40:06 -07:00
rbalsleyMSFT 5f9bf37617 Add functionality to manage applications - implement Add and Remove buttons with priority handling in the UI 2025-05-26 11:40:06 -07:00
rbalsleyMSFT c0fdd102e3 Add application information section for 'Bring Your Own Applications' feature - added code for modern folder browser and added the code behind for the browse folder buttons 2025-05-26 11:40:06 -07:00
rbalsleyMSFT 9f3ee8d963 Add 'Bring Your Own Applications' checkbox and update visibility logic based on installation options 2025-05-26 11:40:06 -07:00
rbalsleyMSFT 802865c1a6 Add Clear List button to Save/Import functionality and fixed sorting issues with winget app list. 2025-05-26 11:40:06 -07:00
rbalsleyMSFT 02835579c1 Add Winget search panel with results list and save/import functionality 2025-05-26 11:40:06 -07:00
rbalsleyMSFT 81b3be894e Refactor margins for application installation options and Winget status panel in UI 2025-05-26 11:40:06 -07:00
rbalsleyMSFT 3875181d89 Enhance UI for application installation options and add Winget status panel 2025-05-26 11:40:06 -07:00
rbalsleyMSFT 0669c64da1 Refactor USB drive configuration options and improve UI handling for related checkboxes 2025-05-26 11:40:06 -07:00
rbalsleyMSFT bc4980c6b8 Add USB drive detection and selection functionality 2025-05-26 11:40:06 -07:00
rbalsleyMSFT ebcfa4f9dc Tooltips 2025-05-26 11:37:43 -07:00
rbalsleyMSFT f121505c50 Remove unused image path and image names from BuildFFUVM_UI.ps1, fixed some tooltip issues 2025-05-26 11:37:43 -07:00
rbalsleyMSFT 735c1ce688 Lots of changes :) 2025-05-26 11:37:43 -07:00
rbalsleyMSFT 837d4ef7ee - Finished optional features 2025-05-26 11:37:43 -07:00
rbalsleyMSFT adfa88aef8 Minor Optional Features adjustment 2025-05-26 11:37:43 -07:00
rbalsleyMSFT fbd0101b45 More windows settings work 2025-05-26 11:37:43 -07:00
rbalsleyMSFT f1cfeb0acc Added Windows settings 2025-05-26 11:37:43 -07:00
rbalsleyMSFT 45b8563db1 Refactored code and commented to make it more readable 2025-05-26 11:37:43 -07:00
rbalsleyMSFT ec3c89ac1b Added Windows settings tab 2025-05-26 11:32:35 -07:00
rbalsleyMSFT b422a565d5 Added M365 Apps/Office tab 2025-05-26 11:32:35 -07:00
rbalsleyMSFT eb3212ee2d Updates to the UI 2025-05-26 11:32:35 -07:00
rbalsleyMSFT e209251d0b More driver work 2025-05-26 11:32:35 -07:00
rbalsleyMSFT e73fa2d7f9 More driver work 2025-05-26 11:32:35 -07:00
rbalsleyMSFT 8c0ed525b3 Modified the drivers tab 2025-05-26 11:32:35 -07:00
rbalsleyMSFT 31e66c7213 Updated UI 2025-05-26 11:32:34 -07:00
rbalsleyMSFT b3e76f5580 Broke out the xaml to a separate file. Added drivers tab 2025-05-26 11:30:11 -07:00