Merge pull request #1158 from bluepilledgreat/feature/export-json

export json to clipboard
This commit is contained in:
pizzaboxer 2024-05-12 20:55:19 +01:00 committed by GitHub
commit 34dd845e48
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 40 additions and 4 deletions

View File

@ -1866,6 +1866,24 @@ namespace Bloxstrap.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Export JSON.
/// </summary>
public static string Menu_FastFlagEditor_ExportJson {
get {
return ResourceManager.GetString("Menu.FastFlagEditor.ExportJson", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Copied JSON to clipboard..
/// </summary>
public static string Menu_FastFlagEditor_JsonCopiedToClipboard {
get {
return ResourceManager.GetString("Menu.FastFlagEditor.JsonCopiedToClipboard", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Search.
/// </summary>

View File

@ -725,6 +725,12 @@ Would you like to upgrade your currently installed version?</value>
<data name="Menu.FastFlagEditor.Description" xml:space="preserve">
<value>Manage your own FastFlags. Double click a column to edit.</value>
</data>
<data name="Menu.FastFlagEditor.ExportJson" xml:space="preserve">
<value>Export JSON</value>
</data>
<data name="Menu.FastFlagEditor.JsonCopiedToClipboard" xml:space="preserve">
<value>Copied JSON to clipboard.</value>
</data>
<data name="Menu.FastFlagEditor.Search" xml:space="preserve">
<value>Search</value>
</data>

View File

@ -15,12 +15,13 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Margin="0,0,0,16" Text="{x:Static resources:Strings.Menu_FastFlagEditor_Description}" FontSize="14" Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
<StackPanel Grid.Row="1" Margin="0,0,0,16" Orientation="Horizontal">
<StackPanel Grid.Row="1" Margin="0,0,0,8" Orientation="Horizontal">
<ui:Button Icon="ArrowLeft48" Content="{x:Static resources:Strings.Menu_FastFlagEditor_Back}" Click="BackButton_Click" />
<ui:Button Icon="Add28" Content="{x:Static resources:Strings.Menu_FastFlagEditor_AddNew}" Click="AddButton_Click" Margin="12,0,0,0" />
<ui:Button Icon="Delete48" Content="{x:Static resources:Strings.Menu_FastFlagEditor_DeleteSelected}" Click="DeleteButton_Click" Appearance="Danger" Margin="12,0,0,0">
@ -35,12 +36,16 @@
</ui:Button.Style>
</ui:Button>
<ToggleButton x:Name="TogglePresetsButton" Content="{x:Static resources:Strings.Menu_FastFlagEditor_ShowPresetFlags}" Click="ToggleButton_Click" Margin="12,0,0,0" />
<ui:Button Icon="ArrowImport24" Content="{x:Static resources:Strings.Common_ImportJson}" Margin="12,0,0,0" Click="ImportJSONButton_Click" />
</StackPanel>
<ui:TextBox x:Name="SearchTextBox" Grid.Row="2" Margin="0,0,0,16" Icon="Search32" PlaceholderText="{x:Static resources:Strings.Menu_FastFlagEditor_Search}" TextChanged="SearchTextBox_TextChanged" />
<StackPanel Grid.Row="2" Margin="0,0,0,16" Orientation="Horizontal">
<ui:Button Icon="ArrowImport24" Content="{x:Static resources:Strings.Common_ImportJson}" Click="ImportJSONButton_Click" />
<ui:Button Icon="ArrowExportRtl24" Content="{x:Static resources:Strings.Menu_FastFlagEditor_ExportJson}" Margin="12,0,0,0" Click="ExportJSONButton_Click" />
</StackPanel>
<DataGrid Name="DataGrid" Grid.Row="3" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CellEditEnding="DataGrid_CellEditEnding">
<ui:TextBox x:Name="SearchTextBox" Grid.Row="3" Margin="0,0,0,16" Icon="Search32" PlaceholderText="{x:Static resources:Strings.Menu_FastFlagEditor_Search}" TextChanged="SearchTextBox_TextChanged" />
<DataGrid Name="DataGrid" Grid.Row="4" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CellEditEnding="DataGrid_CellEditEnding">
<DataGrid.Style>
<Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
<Setter Property="Background" Value="Transparent" />

View File

@ -306,6 +306,13 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
ClearSearch();
}
private void ExportJSONButton_Click(object sender, RoutedEventArgs e)
{
string json = JsonSerializer.Serialize(App.FastFlags.Prop, new JsonSerializerOptions { WriteIndented = true });
Clipboard.SetText(json);
Frontend.ShowMessageBox(Bloxstrap.Resources.Strings.Menu_FastFlagEditor_JsonCopiedToClipboard, MessageBoxImage.Information);
}
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender is not TextBox textbox)