Some checks failed
Build and Publish Docker Image / build-and-push (push) Has been cancelled
- Implemented CreateInstanceView for creating new instances. - Added HostsView for managing SSH hosts with CRUD operations. - Created InstancesView for displaying and managing instances. - Developed LogsView for viewing operation logs. - Introduced SecretsView for managing secrets associated with hosts. - Established SettingsView for configuring application settings. - Created MainWindow as the main application window with navigation. - Added app manifest and configuration files for logging and settings.
147 lines
8.4 KiB
XML
147 lines
8.4 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="using:OTSSignsOrchestrator.Desktop.ViewModels"
|
|
x:Class="OTSSignsOrchestrator.Desktop.Views.CreateInstanceView"
|
|
x:DataType="vm:CreateInstanceViewModel">
|
|
|
|
<ScrollViewer>
|
|
<Grid ColumnDefinitions="1*,16,1*" Margin="16,12">
|
|
|
|
<!-- ══ LEFT COLUMN — inputs ══ -->
|
|
<StackPanel Grid.Column="0" Spacing="8">
|
|
<TextBlock Text="Create New Instance" FontSize="20" FontWeight="Bold" Margin="0,0,0,12" />
|
|
|
|
<!-- SSH Host -->
|
|
<TextBlock Text="Deploy to SSH Host" FontSize="12" />
|
|
<ComboBox ItemsSource="{Binding AvailableHosts}"
|
|
SelectedItem="{Binding SelectedSshHost}"
|
|
PlaceholderText="Select SSH Host..."
|
|
HorizontalAlignment="Stretch">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding Label}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
|
|
<Separator Margin="0,8" />
|
|
|
|
<!-- Core fields -->
|
|
<TextBlock Text="Customer Name" FontSize="12" />
|
|
<TextBox Text="{Binding CustomerName}" Watermark="e.g. Acme Corp" />
|
|
|
|
<TextBlock Text="Abbreviation (3 letters)" FontSize="12" />
|
|
<TextBox Text="{Binding CustomerAbbrev}"
|
|
Watermark="e.g. acm"
|
|
MaxLength="3" />
|
|
|
|
<Separator Margin="0,12" />
|
|
|
|
<!-- Pangolin / Newt (optional) -->
|
|
<Expander Header="Pangolin / Newt credentials (optional)">
|
|
<StackPanel Spacing="8" Margin="0,8,0,0">
|
|
<TextBlock Text="Newt ID" FontSize="12" />
|
|
<TextBox Text="{Binding NewtId}" Watermark="(from Pangolin dashboard)" />
|
|
|
|
<TextBlock Text="Newt Secret" FontSize="12" />
|
|
<TextBox Text="{Binding NewtSecret}" PasswordChar="●" Watermark="(from Pangolin dashboard)" />
|
|
</StackPanel>
|
|
</Expander>
|
|
|
|
<!-- SMB / CIFS credentials (per-instance, defaults from global settings) -->
|
|
<Expander Header="SMB / CIFS credentials">
|
|
<StackPanel Spacing="8" Margin="0,8,0,0">
|
|
<TextBlock Text="CIFS Server" FontSize="12" />
|
|
<TextBox Text="{Binding CifsServer}" Watermark="e.g. 192.168.1.100" />
|
|
|
|
<TextBlock Text="Share Base Path" FontSize="12" />
|
|
<TextBox Text="{Binding CifsShareBasePath}" Watermark="e.g. /share/cms" />
|
|
|
|
<TextBlock Text="Username" FontSize="12" />
|
|
<TextBox Text="{Binding CifsUsername}" Watermark="SMB username" />
|
|
|
|
<TextBlock Text="Password" FontSize="12" />
|
|
<TextBox Text="{Binding CifsPassword}" PasswordChar="●" Watermark="SMB password" />
|
|
|
|
<TextBlock Text="Extra Options" FontSize="12" />
|
|
<TextBox Text="{Binding CifsExtraOptions}" Watermark="file_mode=0777,dir_mode=0777" />
|
|
</StackPanel>
|
|
</Expander>
|
|
|
|
<Separator Margin="0,12" />
|
|
|
|
<!-- Deploy button + progress -->
|
|
<Button Content="Deploy Instance"
|
|
Command="{Binding DeployCommand}"
|
|
IsEnabled="{Binding !IsBusy}"
|
|
HorizontalAlignment="Stretch"
|
|
HorizontalContentAlignment="Center"
|
|
Padding="12,8" FontWeight="SemiBold" />
|
|
|
|
<!-- Progress bar -->
|
|
<Grid ColumnDefinitions="*,Auto" Margin="0,4,0,0"
|
|
IsVisible="{Binding IsBusy}">
|
|
<ProgressBar Value="{Binding ProgressPercent}"
|
|
Maximum="100" Height="6"
|
|
CornerRadius="3" />
|
|
<TextBlock Grid.Column="1" Text="{Binding ProgressStep}"
|
|
FontSize="11" Foreground="#a6adc8"
|
|
Margin="8,0,0,0" VerticalAlignment="Center" />
|
|
</Grid>
|
|
|
|
<TextBlock Text="{Binding StatusMessage}" FontSize="12" Foreground="#a6adc8"
|
|
Margin="0,4,0,0" TextWrapping="Wrap" />
|
|
|
|
<!-- Deploy output -->
|
|
<TextBox Text="{Binding DeployOutput}" IsReadOnly="True"
|
|
AcceptsReturn="True" MaxHeight="260"
|
|
FontFamily="Cascadia Mono, Consolas, monospace" FontSize="11"
|
|
IsVisible="{Binding DeployOutput.Length}" />
|
|
</StackPanel>
|
|
|
|
<!-- ══ RIGHT COLUMN — live resource preview ══ -->
|
|
<Border Grid.Column="2"
|
|
Background="#1e1e2e"
|
|
CornerRadius="8"
|
|
Padding="16,14"
|
|
VerticalAlignment="Top">
|
|
<StackPanel Spacing="6">
|
|
<TextBlock Text="Resource Preview" FontSize="14" FontWeight="SemiBold"
|
|
Foreground="#cdd6f4" Margin="0,0,0,8" />
|
|
|
|
<TextBlock Text="Stack" FontSize="11" Foreground="#6c7086" />
|
|
<TextBlock Text="{Binding PreviewStackName}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#89b4fa" Margin="0,0,0,6" />
|
|
|
|
<TextBlock Text="Services" FontSize="11" Foreground="#6c7086" />
|
|
<TextBlock Text="{Binding PreviewServiceWeb}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#a6e3a1" />
|
|
<TextBlock Text="{Binding PreviewServiceCache}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#a6e3a1" />
|
|
<TextBlock Text="{Binding PreviewServiceChart}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#a6e3a1" />
|
|
<TextBlock Text="{Binding PreviewServiceNewt}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#a6e3a1" Margin="0,0,0,6" />
|
|
|
|
<TextBlock Text="Network" FontSize="11" Foreground="#6c7086" />
|
|
<TextBlock Text="{Binding PreviewNetwork}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#94e2d5" Margin="0,0,0,6" />
|
|
|
|
<TextBlock Text="CIFS Volumes" FontSize="11" Foreground="#6c7086" />
|
|
<TextBlock Text="{Binding PreviewVolCustom}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#f5c2e7" />
|
|
<TextBlock Text="{Binding PreviewVolBackup}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#f5c2e7" />
|
|
<TextBlock Text="{Binding PreviewVolLibrary}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#f5c2e7" />
|
|
<TextBlock Text="{Binding PreviewVolUserscripts}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#f5c2e7" />
|
|
<TextBlock Text="{Binding PreviewVolCaCerts}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#f5c2e7" Margin="0,0,0,6" />
|
|
|
|
<TextBlock Text="Docker Secret" FontSize="11" Foreground="#6c7086" />
|
|
<TextBlock Text="{Binding PreviewSecret}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#fab387" Margin="0,0,0,6" />
|
|
|
|
<TextBlock Text="MySQL Database" FontSize="11" Foreground="#6c7086" />
|
|
<TextBlock Text="{Binding PreviewMySqlDb}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#cba6f7" />
|
|
<TextBlock Text="{Binding PreviewMySqlUser}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#cba6f7" Margin="0,0,0,6" />
|
|
|
|
<TextBlock Text="CMS URL" FontSize="11" Foreground="#6c7086" />
|
|
<TextBlock Text="{Binding PreviewCmsUrl}" FontFamily="Cascadia Mono, Consolas, monospace" FontSize="12" Foreground="#89dceb" />
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
</Grid>
|
|
</ScrollViewer>
|
|
</UserControl>
|
|
|