mirror of
https://github.com/bloxstraplabs/bloxstrap.git
synced 2025-04-21 10:01:27 -07:00
Add search bar for FastFlag editor (#446)
This commit is contained in:
parent
d8701b1c40
commit
e1013bf9b1
@ -11,6 +11,7 @@
|
|||||||
Loaded="Page_Loaded">
|
Loaded="Page_Loaded">
|
||||||
<Grid Margin="0,0,14,14">
|
<Grid Margin="0,0,14,14">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
@ -35,7 +36,9 @@
|
|||||||
<ToggleButton x:Name="TogglePresetsButton" Content="Show preset flags" Click="ToggleButton_Click" Margin="12,0,0,0" />
|
<ToggleButton x:Name="TogglePresetsButton" Content="Show preset flags" Click="ToggleButton_Click" Margin="12,0,0,0" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<DataGrid Name="DataGrid" Grid.Row="2" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CellEditEnding="DataGrid_CellEditEnding">
|
<ui:TextBox x:Name="SearchTextBox" Grid.Row="2" Margin="0,0,0,16" Icon="Search32" PlaceholderText="Search" TextChanged="SearchTextBox_TextChanged" />
|
||||||
|
|
||||||
|
<DataGrid Name="DataGrid" Grid.Row="3" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CellEditEnding="DataGrid_CellEditEnding">
|
||||||
<DataGrid.Style>
|
<DataGrid.Style>
|
||||||
<Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
|
<Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
|
||||||
<Setter Property="Background" Value="Transparent" />
|
<Setter Property="Background" Value="Transparent" />
|
||||||
|
@ -19,6 +19,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
|
|||||||
|
|
||||||
private readonly ObservableCollection<FastFlag> _fastFlagList = new();
|
private readonly ObservableCollection<FastFlag> _fastFlagList = new();
|
||||||
private bool _showPresets = false;
|
private bool _showPresets = false;
|
||||||
|
private string _searchFilter = "";
|
||||||
|
|
||||||
public FastFlagEditorPage()
|
public FastFlagEditorPage()
|
||||||
{
|
{
|
||||||
@ -38,6 +39,9 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
|
|||||||
if (!_showPresets && presetFlags.Contains(pair.Key))
|
if (!_showPresets && presetFlags.Contains(pair.Key))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (!pair.Key.ToLower().Contains(_searchFilter.ToLower()))
|
||||||
|
continue;
|
||||||
|
|
||||||
var entry = new FastFlag
|
var entry = new FastFlag
|
||||||
{
|
{
|
||||||
// Enabled = true,
|
// Enabled = true,
|
||||||
@ -69,6 +73,15 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
|
|||||||
DataGrid.ScrollIntoView(newSelectedEntry);
|
DataGrid.ScrollIntoView(newSelectedEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ClearSearch(bool refresh = true)
|
||||||
|
{
|
||||||
|
SearchTextBox.Text = "";
|
||||||
|
_searchFilter = "";
|
||||||
|
|
||||||
|
if (refresh)
|
||||||
|
ReloadList();
|
||||||
|
}
|
||||||
|
|
||||||
// refresh list on page load to synchronize with preset page
|
// refresh list on page load to synchronize with preset page
|
||||||
private void Page_Loaded(object sender, RoutedEventArgs e) => ReloadList();
|
private void Page_Loaded(object sender, RoutedEventArgs e) => ReloadList();
|
||||||
|
|
||||||
@ -139,6 +152,9 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
|
|||||||
Value = dialog.FlagValueTextBox.Text
|
Value = dialog.FlagValueTextBox.Text
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!name.Contains(_searchFilter))
|
||||||
|
ClearSearch();
|
||||||
|
|
||||||
_fastFlagList.Add(entry);
|
_fastFlagList.Add(entry);
|
||||||
|
|
||||||
App.FastFlags.SetValue(entry.Name, entry.Value);
|
App.FastFlags.SetValue(entry.Name, entry.Value);
|
||||||
@ -147,13 +163,24 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
|
|||||||
{
|
{
|
||||||
Controls.ShowMessageBox("An entry for this FastFlag already exists.", MessageBoxImage.Information);
|
Controls.ShowMessageBox("An entry for this FastFlag already exists.", MessageBoxImage.Information);
|
||||||
|
|
||||||
if (!_showPresets && FastFlagManager.PresetFlags.Values.Contains(dialog.FlagNameTextBox.Text))
|
bool refresh = false;
|
||||||
|
|
||||||
|
if (!_showPresets && FastFlagManager.PresetFlags.Values.Contains(name))
|
||||||
{
|
{
|
||||||
_showPresets = true;
|
|
||||||
TogglePresetsButton.IsChecked = true;
|
TogglePresetsButton.IsChecked = true;
|
||||||
ReloadList();
|
_showPresets = true;
|
||||||
|
refresh = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!name.Contains(_searchFilter))
|
||||||
|
{
|
||||||
|
ClearSearch(false);
|
||||||
|
refresh = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (refresh)
|
||||||
|
ReloadList();
|
||||||
|
|
||||||
entry = _fastFlagList.Where(x => x.Name == name).FirstOrDefault();
|
entry = _fastFlagList.Where(x => x.Name == name).FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,5 +210,14 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
|
|||||||
_showPresets = button.IsChecked ?? false;
|
_showPresets = button.IsChecked ?? false;
|
||||||
ReloadList();
|
ReloadList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is not TextBox textbox)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_searchFilter = textbox.Text;
|
||||||
|
ReloadList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user