Files
IntuneManagement/UI/WPF/XAML/BulkDocumentationForm.xaml
T

73 lines
23 KiB
XML

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Margin="5">
<Grid.RowDefinitions><RowDefinition Height="*"/><RowDefinition Height="Auto"/></Grid.RowDefinitions>
<TabControl Name="tabDocumentation">
<TabItem Header="Options">
<Grid Margin="5">
<Grid.ColumnDefinitions><ColumnDefinition Width="370"/><ColumnDefinition Width="10"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<StackPanel>
<Label Content="Output format" ToolTip="Output provider for the documentation (Word, HTML, Markdown, JSON, CSV)"/><ComboBox Name="cbDocumentationType" DisplayMemberPath="Name" SelectedValuePath="Value" MinWidth="250" HorizontalAlignment="Stretch" ToolTip="Output provider for the documentation (Word, HTML, Markdown, JSON, CSV)"/>
<StackPanel Name="pnlDocumentationOutputFolder" Visibility="Collapsed"><Label Content="Output folder" ToolTip="Root folder for output providers that need one (e.g. CSV)"/><DockPanel><Button Name="browseDocumentationOutputFolder" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for output folder"/><TextBox Name="txtDocumentationOutputFolder" ToolTip="Root folder for output providers that need one (e.g. CSV)"/></DockPanel></StackPanel>
<Label Content="Language" ToolTip="Language for the documentation. Not all text is translated in non-English languages"/><ComboBox Name="cbDocumentationLanguage" DisplayMemberPath="EnglishName" SelectedValuePath="Name" HorizontalAlignment="Stretch" ToolTip="Language for the documentation. Not all text is translated in non-English languages"/>
<Label Content="Property separator" ToolTip="Character used to separate property names from values"/><ComboBox Name="cbDocumentationPropertySeparator" Width="100" HorizontalAlignment="Left" ToolTip="Character used to separate property names from values"/>
<Label Content="Object separator" ToolTip="Character used to separate objects in the documentation output"/><ComboBox Name="cbDocumentationObjectSeparator" DisplayMemberPath="Name" SelectedValuePath="Value" Width="140" HorizontalAlignment="Left" ToolTip="Character used to separate objects in the documentation output"/>
<Label Name="lblDocumentFilter" Content="Filter policy names or scope:tag" ToolTip="Filter policies by name or scope tag. Leave empty to document every selected policy"/><TextBox Name="txtDocumentFilter" ToolTip="Filter policies by name or scope tag. Leave empty to document every selected policy"/>
<Label Name="lblDocumentFromFolder" Content="Source files (optional)" ToolTip="Document from previously exported files instead of fetching from Intune"/><DockPanel Name="pnlDocumentFromFolder"><Button Name="browseDocumentFromFolder" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for source folder"/><TextBox Name="txtDocumentFromFolder" ToolTip="Document from previously exported files instead of fetching from Intune"/></DockPanel>
</StackPanel>
<Grid Grid.Column="2">
<Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="*"/></Grid.RowDefinitions>
<StackPanel Orientation="Horizontal"><Label Content="Objects to document"/><StackPanel Name="pnlDocumentationListBy" Orientation="Horizontal"><Label Content="List by" Margin="20,0,0,0" ToolTip="Group: pick whole categories (Configuration, Compliance, ...). API: pick individual policy types"/><RadioButton Name="rbBulkDocViewGroup" Content="Group" GroupName="BulkDocView" IsChecked="True" Margin="10,0"/><RadioButton Name="rbBulkDocViewType" Content="API" GroupName="BulkDocView"/></StackPanel></StackPanel>
<DataGrid Name="dgObjectsToDocument" Grid.Row="1" CanUserAddRows="False" AutoGenerateColumns="False"/>
</Grid>
</Grid>
</TabItem>
<TabItem Header="Output Settings">
<ScrollViewer VerticalScrollBarVisibility="Auto"><StackPanel Margin="5">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="210"/><ColumnDefinition Width="250"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/></Grid.RowDefinitions>
<Label Content="Unconfigured text" ToolTip="Value displayed for unconfigured items. 'Don't change' leaves the source value as-is"/><ComboBox Name="cbNotConfiguredText" Grid.Column="1" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Value displayed for unconfigured items. 'Don't change' leaves the source value as-is"/>
<Label Grid.Row="1" Content="Skip unconfigured properties" ToolTip="Exclude properties that are empty or set to Not configured"/><CheckBox Name="chkSkipNotConfigured" Grid.Row="1" Grid.Column="1" ToolTip="Exclude properties that are empty or set to Not configured"/>
<Label Grid.Row="2" Content="Skip default values" ToolTip="Exclude properties whose value matches the property definition's default"/><CheckBox Name="chkSkipDefaultValues" Grid.Row="2" Grid.Column="1" ToolTip="Exclude properties whose value matches the property definition's default"/>
<Label Grid.Row="3" Content="Skip disabled properties" ToolTip="Exclude properties marked as disabled. Disabled properties are still excluded when the same EntityKey is used on an enabled property"/><CheckBox Name="chkSkipDisabled" Grid.Row="3" Grid.Column="1" ToolTip="Exclude properties marked as disabled. Disabled properties are still excluded when the same EntityKey is used on an enabled property"/>
<Label Grid.Row="4" Content="ADMX output value" ToolTip="ADMX output value style — value only or value with label"/><ComboBox Name="cbValueOutputProperty" Grid.Row="4" Grid.Column="1" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="ADMX output value style — value only or value with label"/>
<Label Grid.Row="5" Content="Set unconfigured value" ToolTip="Set the unconfigured value when the property is not configured and the property definition has an unconfigured value defined"/><CheckBox Name="chkSetUnconfiguredValue" Grid.Row="5" Grid.Column="1" ToolTip="Set the unconfigured value when the property is not configured and the property definition has an unconfigured value defined"/>
<Label Grid.Row="6" Content="Set default value" ToolTip="Set the default value when the property is not configured and the property definition has a default value defined"/><CheckBox Name="chkSetDefaultValue" Grid.Row="6" Grid.Column="1" ToolTip="Set the default value when the property is not configured and the property definition has a default value defined"/>
<Label Grid.Row="7" Content="Document scripts" ToolTip="Include script content in the documentation"/><CheckBox Name="chkIncludeScripts" Grid.Row="7" Grid.Column="1" ToolTip="Include script content in the documentation"/>
<Label Grid.Row="8" Content="Remove script signature" ToolTip="Strip the signature block from PowerShell scripts to reduce documentation size"/><CheckBox Name="chkExcludeScriptSignature" Grid.Row="8" Grid.Column="1" ToolTip="Strip the signature block from PowerShell scripts to reduce documentation size"/>
<Label Grid.Row="9" Content="Skip assignments" ToolTip="Exclude assignments from the documentation"/><CheckBox Name="chkExcludeAssignments" Grid.Row="9" Grid.Column="1" ToolTip="Exclude assignments from the documentation"/>
<Label Grid.Row="10" Content="Include policy ID" ToolTip="Include the policy Id in the basic info section"/><CheckBox Name="chkIncludePolicyId" Grid.Row="10" Grid.Column="1" ToolTip="Include the policy Id in the basic info section"/>
<Label Grid.Row="11" Content="Skip document info" ToolTip="Skip the document-info header written at the top of the document (Organization, generated by, and generated date)"/><CheckBox Name="chkSkipDocumentInfo" Grid.Row="11" Grid.Column="1" ToolTip="Skip the document-info header written at the top of the document (Organization, generated by, and generated date)"/>
<Label Grid.Row="12" Content="Document unsupported types" ToolTip="Policy types without a documentation template are listed with their raw properties instead of producing an empty page. When off, those types are skipped and a warning is written to the log."/><CheckBox Name="chkFallbackDocumentation" Grid.Row="12" Grid.Column="1" ToolTip="Policy types without a documentation template are listed with their raw properties instead of producing an empty page. When off, those types are skipped and a warning is written to the log."/>
</Grid>
<StackPanel Name="pnlDocumentationOutputCSV" Visibility="Collapsed" Margin="0,10,0,0">
<Label Content="CSV"/>
<Label Content="Root folder" ToolTip="Root folder where CSV files are written"/><DockPanel><Button Name="browseCSVDocumentationPath" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for CSV root folder"/><TextBox Name="txtCSVDocumentationPath" ToolTip="Root folder where CSV files are written"/></DockPanel>
<Label Content="Properties" ToolTip="Simple = Name and Value only. Extended = same as Raw Output. Custom = use the Custom properties list below"/><ComboBox Name="cbCSVDocumentationProperties" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Simple = Name and Value only. Extended = same as Raw Output. Custom = use the Custom properties list below"/>
<Label Content="Custom properties" ToolTip="Comma-separated list of properties to export. Must match property names from Raw Output"/><TextBox Name="txtCSVCustomProperties" ToolTip="Comma-separated list of properties to export. Must match property names from Raw Output"/>
<Label Content="Delimiter" ToolTip="Character used to separate CSV columns"/><ComboBox Name="cbCSVDelimiter" ToolTip="Character used to separate CSV columns"/>
<CheckBox Name="chkCSVAddObjectType" Content="Add object type to path" ToolTip="Write each object type into its own sub-folder under the root"/><CheckBox Name="chkCSVAddCompanyName" Content="Add organization to path" ToolTip="Add the organization name to the export path"/>
</StackPanel>
<StackPanel Name="pnlDocumentationOutputJson" Visibility="Collapsed" Margin="0,10,0,0">
<Label Content="JSON"/><Label Content="Document name" ToolTip="Output JSON file path"/><TextBox Name="txtJsonDocumentName" ToolTip="Output JSON file path"/><CheckBox Name="chkJsonOpenFile" Content="Open document" ToolTip="Open the document when generation is complete"/><Label Content="Output file" ToolTip="Single file = everything in one JSON; one file per object type = sub-files in the same folder"/><ComboBox Name="cbJsonOutputFileType" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Single file = everything in one JSON; one file per object type = sub-files in the same folder"/>
</StackPanel>
<StackPanel Name="pnlDocumentationOutputHTML" Visibility="Collapsed" Margin="0,10,0,0">
<Label Content="HTML"/><Label Content="Document name" ToolTip="Output HTML file path"/><DockPanel><Button Name="browseHTMLDocumentName" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for output HTML file"/><TextBox Name="txtHTMLDocumentName" ToolTip="Output HTML file path"/></DockPanel><Label Content="CSS file" ToolTip="Optional CSS file used to style the HTML output"/><DockPanel><Button Name="browseHTMLCSSFile" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for CSS file"/><TextBox Name="txtHTMLCSSFile" ToolTip="Optional CSS file used to style the HTML output"/></DockPanel><Label Content="Title" ToolTip="Title property for the HTML document"/><TextBox Name="txtHTMLTitleProperty" ToolTip="Title property for the HTML document"/><CheckBox Name="chkHTMLOpenFile" Content="Open document" ToolTip="Open the document when generation is complete"/><Label Content="Output file" ToolTip="Single file, one file per object type, or one file per object"/><ComboBox Name="cbHTMLDocumentFileType" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Single file, one file per object type, or one file per object"/>
</StackPanel>
<!-- Atlassian mirrors HTML minus the CSS row: the provider emits Confluence
storage format, which carries no stylesheet. -->
<StackPanel Name="pnlDocumentationOutputAtlassian" Visibility="Collapsed" Margin="0,10,0,0">
<Label Content="Atlassian"/><Label Content="Document name" ToolTip="Output file path for the Confluence storage-format document"/><DockPanel><Button Name="browseAtlassianDocumentName" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for output Atlassian file"/><TextBox Name="txtAtlassianDocumentName" ToolTip="Output file path for the Confluence storage-format document"/></DockPanel><Label Content="Title" ToolTip="Title property for the Atlassian document"/><TextBox Name="txtAtlassianTitleProperty" ToolTip="Title property for the Atlassian document"/><CheckBox Name="chkAtlassianOpenFile" Content="Open document" ToolTip="Open the document when generation is complete"/><Label Content="Output file" ToolTip="Single file or one file per object"/><ComboBox Name="cbAtlassianDocumentFileType" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Single file or one file per object"/>
</StackPanel>
<StackPanel Name="pnlDocumentationOutputMarkdown" Visibility="Collapsed" Margin="0,10,0,0">
<Label Content="Markdown"/><Label Content="Document name" ToolTip="Output Markdown file path"/><DockPanel><Button Name="browseMDDocumentName" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for output Markdown file"/><TextBox Name="txtMDDocumentName" ToolTip="Output Markdown file path"/></DockPanel><Label Content="CSS file" ToolTip="Optional CSS file referenced by the Markdown output"/><DockPanel><Button Name="browseMDCSSFile" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for CSS file"/><TextBox Name="txtMDCSSFile" ToolTip="Optional CSS file referenced by the Markdown output"/></DockPanel><Label Content="Title" ToolTip="Title property for the Markdown document"/><TextBox Name="txtMDTitleProperty" ToolTip="Title property for the Markdown document"/><CheckBox Name="chkMDIncludeCSS" Content="Include CSS" ToolTip="Embed CSS contents into the Markdown file"/><CheckBox Name="chkMDOpenFile" Content="Open document" ToolTip="Open the document when generation is complete"/><CheckBox Name="chkMDDocumentSkipDate" Content="Skip generated date" ToolTip="Skip the generated-on date in the Markdown header"/><Label Content="Output file" ToolTip="Single file, one file per object type, or one file per object"/><ComboBox Name="cbMDDocumentFileType" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Single file, one file per object type, or one file per object"/>
</StackPanel>
<StackPanel Name="pnlDocumentationOutputWord" Visibility="Collapsed" Margin="0,10,0,0">
<Label Content="Word"/><Label Content="Document name" ToolTip="Output Word document path. Default: %MyDocuments%\%Organization%-%Date%.docx. Special folders and environment variables can be used"/><DockPanel><Button Name="browseWordDocumentName" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for output Word document"/><TextBox Name="txtWordDocumentName" ToolTip="Output Word document path. Default: %MyDocuments%\%Organization%-%Date%.docx. Special folders and environment variables can be used"/></DockPanel><Label Content="Template" ToolTip="Word template (.dotx) used as the base. Normal.dotx is used when empty"/><DockPanel><Button Name="browseWordDocumentTemplate" Content="..." DockPanel.Dock="Right" Width="45" ToolTip="Browse for Word template (.dotx)"/><TextBox Name="txtWordDocumentTemplate" ToolTip="Word template (.dotx) used as the base. Normal.dotx is used when empty"/></DockPanel><Label Content="Properties" ToolTip="Simple = Name and Value only. Extended = same as Raw Output. Custom = use the Custom properties list below"/><ComboBox Name="cbWordExportProperties" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Simple = Name and Value only. Extended = same as Raw Output. Custom = use the Custom properties list below"/><StackPanel Name="spWordCustomProperties"><Label Content="Custom properties" ToolTip="Comma-separated list of properties to export. Must match property names from Raw Output"/><TextBox Name="txtWordCustomDisplayProperties" ToolTip="Comma-separated list of properties to export. Must match property names from Raw Output"/></StackPanel><Label Content="Format" ToolTip="Document format — DOCX, Strict Open XML, or PDF"/><ComboBox Name="cbWordDocumentFormat" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Document format — DOCX, Strict Open XML, or PDF"/><Label Content="Output level" ToolTip="Full = full value of every setting. Limited = truncate long values. Basic = basic info and assignments only, no settings"/><ComboBox Name="cbWordDocumentationLevel" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Full = full value of every setting. Limited = truncate long values. Basic = basic info and assignments only, no settings"/><StackPanel Name="gdWordDocumentationLimitOptions"><CheckBox Name="chkWordDocumentationLimitAttach" Content="Attach full value when truncated" ToolTip="When a value is truncated, attach the full value as a text file embedded in the document"/><Label Content="Max value length" ToolTip="Maximum value length before truncation. Default 100"/><TextBox Name="txtWordDocumentationLimitMaxLength" Width="80" HorizontalAlignment="Left" ToolTip="Maximum value length before truncation. Default 100"/><Label Content="Truncated length" ToolTip="Length to truncate to. Default = same as Max value length. 0 = skip truncated text and only include the attached value (attach must be on)"/><TextBox Name="txtWordDocumentationLimitTruncateLength" Width="80" HorizontalAlignment="Left" ToolTip="Length to truncate to. Default = same as Max value length. 0 = skip truncated text and only include the attached value (attach must be on)"/></StackPanel><CheckBox Name="chkWordAddCategories" Content="Include categories" ToolTip="Include category headers in the documentation when available"/><CheckBox Name="chkWordAddSubCategories" Content="Include sub-categories" ToolTip="Include sub-category headers in the documentation when available"/><CheckBox Name="chkWordOpenDocument" Content="Open document" ToolTip="Open Word and activate the document when generation is complete"/><CheckBox Name="chkWordAttachJsonFile" Content="Attach JSON file" ToolTip="Attach the source JSON to the Word document"/><Label Content="Title" ToolTip="Title property for the Word document"/><TextBox Name="txtWordTitleProperty" ToolTip="Title property for the Word document"/><Label Content="Subject" ToolTip="Subject property for the Word document"/><TextBox Name="txtWordSubjectProperty" ToolTip="Subject property for the Word document"/><Label Content="Content controls" ToolTip="Content-control values, format: prop1=value;prop2=value;..."/><TextBox Name="txtWordContentControls" ToolTip="Content-control values, format: prop1=value;prop2=value;..."/><Label Content="Cover page" ToolTip="Cover page to apply when no template is set. Default: Ion (Dark)"/><TextBox Name="txtWordCoverPage" ToolTip="Cover page to apply when no template is set. Default: Ion (Dark)"/><Label Content="Header styles (1 / 2 / 3)" ToolTip="Word style names for H1, H2, and H3"/><StackPanel Orientation="Horizontal"><TextBox Name="txtWordHeader1Style" Width="150" ToolTip="Word style name for Header 1"/><TextBox Name="txtWordHeader2Style" Width="150" ToolTip="Word style name for Header 2"/><TextBox Name="txtWordHeader3Style" Width="150" ToolTip="Word style name for Header 3"/></StackPanel><Label Content="Table style" ToolTip="Word style name applied to tables"/><TextBox Name="txtWordTableStyle" ToolTip="Word style name applied to tables"/><Label Content="Table header style" ToolTip="Word style for the table header row. Default: base font + 2pt"/><TextBox Name="txtWordTableHeaderStyle" ToolTip="Word style for the table header row. Default: base font + 2pt"/><Label Content="Category header style" ToolTip="Word style for table category header rows. Default: base font + 2pt + italic"/><TextBox Name="txtWordCategoryHeaderStyle" ToolTip="Word style for table category header rows. Default: base font + 2pt + italic"/><Label Content="Sub-category header style" ToolTip="Word style for table sub-category header rows. Default: base font + italic"/><TextBox Name="txtWordSubCategoryHeaderStyle" ToolTip="Word style for table sub-category header rows. Default: base font + italic"/><Label Content="Table text style" ToolTip="Word style for body text inside tables. Default: base font"/><TextBox Name="txtWordTableTextStyle" ToolTip="Word style for body text inside tables. Default: base font"/><Label Content="Table caption position" ToolTip="Place table captions above or below the table"/><ComboBox Name="cbWordTableCaptionPosition" DisplayMemberPath="Name" SelectedValuePath="Value" ToolTip="Place table captions above or below the table"/><Label Content="Script table style" ToolTip="Word style for script tables. Defaults to the document Table style"/><TextBox Name="txtWordScriptTableStyle" ToolTip="Word style for script tables. Defaults to the document Table style"/><Label Content="Script font style" ToolTip="Word style for script text. Default: HTML Code"/><TextBox Name="txtWordScriptStyle" ToolTip="Word style for script text. Default: HTML Code"/>
</StackPanel>
</StackPanel></ScrollViewer>
</TabItem>
<TabItem Header="Raw Output"><Grid Margin="5"><Grid.RowDefinitions><RowDefinition Height="*"/><RowDefinition Height="Auto"/></Grid.RowDefinitions><TextBox Name="txtDocumentationRawData" AcceptsReturn="True" IsReadOnly="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/><StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right"><Button Name="btnPreviewDocumentation" Content="Preview" Width="90" Margin="4" ToolTip="Preview the documentation for the selected object"/><Button Name="btnCopyBasicDocumentation" Content="Copy basic" Width="90" Margin="4" ToolTip="Copy the basic info to the clipboard"/><Button Name="btnCopySettingsDocumentation" Content="Copy settings" Width="100" Margin="4" ToolTip="Copy the settings info to the clipboard"/><Button Name="btnCopyRawDocumentation" Content="Copy all" Width="90" Margin="4" ToolTip="Copy all info to the clipboard"/></StackPanel></Grid></TabItem>
</TabControl>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right"><Button Name="btnDocument" Content="Start" Width="100" Margin="5" ToolTip="Start documentation"/><Button Name="btnClose" Content="Close" Width="100" Margin="5"/></StackPanel>
</Grid>