Assets/Options.xaml

<Window x:Class="ADLookups_v2.Options"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ADLookups_v2" mc:Ignorable="d" Title="Options - LoganShell" Width="600" MinWidth="600" MinHeight="600" Height="600">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="C:\temp\darkTheme.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid Style="{DynamicResource GridBackground}">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="auto"/>
            </Grid.RowDefinitions>
            <TabControl TabStripPlacement="Left" Margin="5,5,5,5">
                <TabItem Header="Entra ID" Height="40">
                    <ScrollViewer VerticalScrollBarVisibility="Auto">
                    <StackPanel>
                        <GroupBox Header="Entra ID" Margin="5,5,5,5">
                            <Grid Margin="5,5,5,5">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"></ColumnDefinition>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="auto"></RowDefinition>
                                    <RowDefinition Height="auto"></RowDefinition>
                                    <RowDefinition Height="auto"></RowDefinition>
                                    <RowDefinition Height="auto"></RowDefinition>
                                    <RowDefinition Height="auto"></RowDefinition>
                                    <RowDefinition Height="auto"></RowDefinition>
                                </Grid.RowDefinitions>
                                <TextBlock Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Text="Entra is currently used for syncing Entra Connect. More functionality will be included in the future." TextWrapping="Wrap" Margin="5,5,5,5"/>
                                <CheckBox Content="Enable Entra ID Integration" x:Name="EntraIDCheckBox" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Margin="5,5,5,5"/>
                                <TextBlock x:Name="EntraTenantURLTextBlock" Grid.Column="0" Grid.Row="2" Text="Entra ID Tenant URL" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="5,5,5,5"/>
                                <TextBox Grid.Column="1" Grid.Row="2" x:Name="EntraTenantTextBox" VerticalAlignment="Center" Margin="5,5,5,5"/>
                                <TextBlock x:Name="EntraConnectServerTextBlock" Grid.Column="0" Grid.Row="3" Text="Entra Connect Server" HorizontalAlignment="Right" Margin="5,5,5,5"/>
                                <TextBox Grid.Column="1" Grid.Row="3" x:Name="ConnectServerTextBox" VerticalAlignment="Center" Margin="5,5,5,5"/>
                            </Grid>
                        </GroupBox>
                        <GroupBox Header="Required Module Status" Margin="5,0,5,5">
                        <Grid Margin="5,5,5,5" ScrollViewer.CanContentScroll="True">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="auto"/>
                            </Grid.RowDefinitions>
                                <TextBox Grid.Row="0" Margin="0,5,0,5" TextWrapping="Wrap" AcceptsReturn="True" Text="This tool uses the following modules:&#x0a;- ExchangeOnlineManagement&#x0a;- MSOnline&#x0a;The modules will be listed below with their versions." BorderBrush="#00AFAFAF" Background="#00F5F5F5"/>
                                <DataGrid Grid.Row="1" x:Name="InstalledModulesDataGrid" MinHeight="120" HeadersVisibility="Column"/>
                        </Grid>
                        </GroupBox>
                    </StackPanel>
                    </ScrollViewer>
                </TabItem>
                <TabItem Header="Active Directory" Height="40">
                    <ScrollViewer>
                    <StackPanel>
                        <GroupBox Header="Active Directory" Margin="5,5,5,5">
                            <Grid Margin="5,5,5,5">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"></ColumnDefinition>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="auto"/>
                                        <RowDefinition Height="auto"/>
                                        <RowDefinition Height="auto"/>
                                    </Grid.RowDefinitions>
                                    <TextBlock TextWrapping="Wrap" Text="Active Directory is the main source of information for this tool. You can manage the domain and domain controller that is used for all AD lookups. If you're trying to connect to another domain, be sure firewall rules are in place and the alternate credentials are provided below. If none is provided, it will use the Primary Domain Controller by default. To use a different domain, type in a FQDN, provide alternate credentials, click Save Settings, and reopen this tool." Margin="5,0,5,5" Grid.ColumnSpan="2"/>
                                    <TextBlock Grid.Column="0" x:Name="DCLabel" Text="Domain Controller" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Row="2" Margin="5,5,5,5"></TextBlock>
                                <ComboBox x:Name="DCComboBox" Grid.Column="1" VerticalAlignment="Center" Grid.Row="2" Margin="5,5,5,5" IsEditable="True">
                                </ComboBox>
                            </Grid>
                        </GroupBox>
                        <GroupBox Header="Credentials for Queries" Margin="5,5,5,5">
                            <Grid Margin="5,5,5,5">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"></ColumnDefinition>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="auto"/>
                                    <RowDefinition Height="auto"/>
                                    <RowDefinition Height="auto"/>
                                    <RowDefinition Height="auto"/>
                                    </Grid.RowDefinitions>
                                <TextBlock Text="The credentials used for querying computers can be manually set here or it will use the credentials that the tool is running as currently. This user can be verified on the bottom of the Home window. These credentials will only work when run as the same user on the same computer." TextWrapping="Wrap" Grid.ColumnSpan="2" Margin="5,0,5,5"/>
                                <CheckBox x:Name="CredentialsAlternateCheckBox" Grid.Row="1" Grid.Column="0" Content="Use alternate credentials" Margin="5,5,5,5" Grid.ColumnSpan="2"/>
                                <TextBlock x:Name="UsernameTextBlock" Text="Username" Grid.Row="2" Margin="5,5,5,5" VerticalAlignment="Center" HorizontalAlignment="Right"/>
                                <TextBox x:Name="CredentialsUsernameTextBox" Grid.Row="2" Grid.Column="1" Margin="5,5,5,5"/>
                                <TextBlock x:Name="PasswordTextBlock" Text="Password" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="5,5,5,5"/>
                                <PasswordBox x:Name="CredentialsPasswordPasswordBox" Grid.Row="3" Grid.Column="1" Margin="5,5,5,5"/>
                                </Grid>
                        </GroupBox>
                    </StackPanel>
                    </ScrollViewer>
                </TabItem>
                <TabItem Header="Integrations" Height="40">
                    <ScrollViewer>
                    <StackPanel>
                        <GroupBox Header="SCCM" Margin="5,5,5,5">
                            <StackPanel>
                                <TextBlock Text="The SCCM integration is able to help determine a user's computer based off the primary user field for SCCM devices. It also enables the querying of SCCM deployments." TextWrapping="Wrap" Margin="5,5,5,5" Grid.RowSpan="3"/>
                                <Grid Margin="5,5,5,5">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"></ColumnDefinition>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                    </Grid.RowDefinitions>
                                    <CheckBox x:Name="SCCMIntegrationCheckBox" Content="Enable SCCM Integration" Margin="5,5,5,5" Grid.Row="1" Grid.ColumnSpan="2"/>
                                    <TextBlock x:Name="SCCMServerTextBlock" Grid.Column="0" Grid.Row="2" Text="SCCM Server" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5,5,5,5"></TextBlock>
                                    <TextBox Grid.Column="1" Grid.Row="2" x:Name="SCCMServerTextBox" VerticalAlignment="Center" Margin="5,5,5,5"/>
                                    <TextBlock x:Name="DefaultCollectionTextBlock" Grid.Column="0" Grid.Row="3" Text="Default collection" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5,5,5,5"></TextBlock>
                                    <ComboBox x:Name="SCCMCollectionComboBox" Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" Margin="5,5,5,5"/>
                                </Grid>
                            </StackPanel>
                        </GroupBox>
                        <GroupBox Header="Exchange" Margin="5,0,5,5">
                            <StackPanel>
                                <TextBlock Text="The Exchange on-premise integration is used to get mailbox information. Once you enable this integration, specify the exchange server below." TextWrapping="Wrap" Margin="5,5,5,5" Grid.RowSpan="3"/>
                                <Grid Margin="5,5,5,5">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"></ColumnDefinition>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                    </Grid.RowDefinitions>
                                    <CheckBox x:Name="ExchangeIntegrationCheckBox" Content="Enable Exchange On-Premise Integration" Margin="5,5,5,5" Grid.Row="1" Grid.ColumnSpan="2"/>
 
                                </Grid>
                            </StackPanel>
                        </GroupBox>
                        <GroupBox Header="What's Up Gold" Margin="5,0,5,5">
                                <StackPanel>
                                    <Grid Margin="5,5,5,5">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"></ColumnDefinition>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        <RowDefinition Height="auto"></RowDefinition>
                                        </Grid.RowDefinitions>
                                        <TextBlock Text="The credentials used for querying WhatsUpGold are set here. These credentials will only work when run as the same user on the same computer." TextWrapping="Wrap" Grid.ColumnSpan="2" Margin="5,0,5,5"/>
                                        <CheckBox x:Name="WUGIntegrationCheckBox" Content="Enable What's Up Gold Integration" Margin="5,5,5,5" Grid.Row="1" Grid.ColumnSpan="2"/>
                                        <TextBlock x:Name="WUGServerTextBlock" Text="Server Hostname" Grid.Row="2" Margin="5,5,5,5" VerticalAlignment="Center" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="WUGServerTextBox" Grid.Row="2" Grid.Column="1" Margin="5,5,5,5"/>
                                        <TextBlock x:Name="WUGUsernameTextBlock" Text="Username" Grid.Row="3" Margin="5,5,5,5" VerticalAlignment="Center" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="WUGCredentialsUsernameTextBox" Grid.Row="3" Grid.Column="1" Margin="5,5,5,5"/>
                                        <TextBlock x:Name="WUGPasswordTextBlock" Text="Password" Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="5,5,5,5"/>
                                        <PasswordBox x:Name="WUGCredentialsPasswordPasswordBox" Grid.Row="4" Grid.Column="1" Margin="5,5,5,5"/>
                                    </Grid>
                            </StackPanel>
                        </GroupBox>
                    </StackPanel>
                    </ScrollViewer>
                </TabItem>
                <TabItem Header="Theme" Height="40">
                    <StackPanel Margin="5,5,5,5">
                        <TextBlock TextWrapping="Wrap" Text="The theme can be changed between the ones listed below. By default, the light theme is used. You must relaunch this tool when you change the theme"/>
                        <GroupBox Header="Theme" Margin="5,5,5,5">
                            <StackPanel Orientation="Horizontal" Margin="5,5,5,5">
                            <RadioButton x:Name="LightThemeRadioButton" Content="Light Theme" ToolTip="Default theme" Margin="5,5,5,5"/>
                            <RadioButton x:Name="DarkThemeRadioButton" Content="Vapor Wave" ToolTip="Dark theme" Margin="5,5,5,5"/>
                            <RadioButton x:Name="VioletThemeRadioButton" Content="Dark Violet" Margin="5,5,5,5"/>
                            </StackPanel>
                        </GroupBox>
                    </StackPanel>
                </TabItem>
                <TabItem Header="Storage Folder" Height="40">
                    <StackPanel>
                    <GroupBox x:Name="OptionsTabObjectMgmtGroupBox" Header="Objects Management" Margin="5,5,5,5">
                        <Grid Margin="5,5,5,5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"></RowDefinition>
                                <RowDefinition Height="auto"></RowDefinition>
                                <RowDefinition Height="auto"></RowDefinition>
                            </Grid.RowDefinitions>
                            <TextBlock TextWrapping="Wrap" Grid.Column="0" Grid.ColumnSpan="3" Text="This location is used for RSOP reports and CSV exports.The default is C:\temp\LoganShell. Make sure this location is accesible by your default browser and default text editor." Margin="5,5,5,5" />
                                <TextBlock Grid.Column="0" Grid.Row="1" Text="Storage Path" VerticalAlignment="Center" Margin="0,5,5,5"/>
                            <TextBox Grid.Column="1" Grid.Row="1" x:Name="ObjectCacheTextBox" VerticalAlignment="Center" IsReadOnly="True" Margin="5,5,5,5"/>
                            <Button x:Name="SelectFolderButton" Grid.Column="2" Grid.Row="1" Content="Choose Folder" VerticalAlignment="Center" Margin="5,5,5,5" Width="95"/>
 
                            <Button x:Name="ClearDataButton" Content="Clean up folder" Width="95" Grid.Column="2" Grid.Row="2" Margin="5,5,5,5"/>
 
                        </Grid>
                    </GroupBox>
                    </StackPanel>
                </TabItem>
            </TabControl>
            <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="5,5,5,35">
                <TextBlock x:Name="SavingTextBlock" Text="" Margin="5,5,5,5" VerticalAlignment="Center"/>
                <Button x:Name="SaveSettingsButton" Content="Save Settings" HorizontalAlignment="Right" Margin="5,5,5,5" Padding="10,1,10,1"/>
            </StackPanel>
        </Grid>
        <StatusBar VerticalAlignment="Bottom" Height="25" Style="{DynamicResource StatusBar}">
            <StatusBarItem x:Name="ModuleVersionLabel" Content="Module Version:" VerticalAlignment="Center"/>
        </StatusBar>
    </Grid>
</Window>