|
@@ -100,7 +100,8 @@ public class DynamicGridFilterButtonComponent<T>
|
|
|
|
|
|
private IDynamicGrid Grid;
|
|
|
|
|
|
- private IConfiguration<CoreFilterDefinitions> Configuration;
|
|
|
+ private IConfiguration<CoreFilterDefinitions> GlobalConfiguration;
|
|
|
+ private IConfiguration<CoreFilterDefinitions> UserConfiguration;
|
|
|
|
|
|
public delegate void FilterSelectedHandler(DynamicGridSelectedFilterSettings filters);
|
|
|
|
|
@@ -110,10 +111,13 @@ public class DynamicGridFilterButtonComponent<T>
|
|
|
|
|
|
public event FilterRefreshHandler? OnFilterRefresh;
|
|
|
|
|
|
- public DynamicGridFilterButtonComponent(IDynamicGrid grid, IConfiguration<CoreFilterDefinitions> configuration)
|
|
|
+ public DynamicGridFilterButtonComponent(IDynamicGrid grid,
|
|
|
+ IConfiguration<CoreFilterDefinitions> globalConfiguration,
|
|
|
+ IConfiguration<CoreFilterDefinitions> userConfiguration)
|
|
|
{
|
|
|
Grid = grid;
|
|
|
- Configuration = configuration;
|
|
|
+ GlobalConfiguration = globalConfiguration;
|
|
|
+ UserConfiguration = userConfiguration;
|
|
|
|
|
|
FilterBtn = Grid.AddButton("", Wpf.Resources.filter.AsBitmapImage(), DoFilter);
|
|
|
FilterBtn.Margin = new Thickness(0, 2, 7, 0);
|
|
@@ -139,8 +143,10 @@ public class DynamicGridFilterButtonComponent<T>
|
|
|
|
|
|
menu.AddSeparatorIfNeeded();
|
|
|
|
|
|
- var filters = Configuration.Load();
|
|
|
- foreach (var filter in filters)
|
|
|
+ var globalFilters = Security.IsAllowed<CanEditGlobalFilters>() ? GlobalConfiguration.Load() : new CoreFilterDefinitions();
|
|
|
+ var userFilters = UserConfiguration.Load();
|
|
|
+ var filters = new CoreFilterDefinitions(globalFilters.Count + userFilters.Count);
|
|
|
+ foreach (var filter in globalFilters.Concat(userFilters))
|
|
|
{
|
|
|
var item = menu.AddCheckItem(filter.Name, filter, Filter_Toggle);
|
|
|
item.StaysOpenOnClick = true;
|
|
@@ -148,6 +154,7 @@ public class DynamicGridFilterButtonComponent<T>
|
|
|
{
|
|
|
item.IsChecked = true;
|
|
|
}
|
|
|
+ filters.Add(filter);
|
|
|
}
|
|
|
|
|
|
if (Security.IsAllowed<CanCustomiseFilters>())
|
|
@@ -158,7 +165,16 @@ public class DynamicGridFilterButtonComponent<T>
|
|
|
var window = new DynamicGridFilterEditor(filters, typeof(T));
|
|
|
if (window.ShowDialog() == true)
|
|
|
{
|
|
|
- Configuration.Save(filters);
|
|
|
+ globalFilters.Clear();
|
|
|
+ globalFilters.AddRange(filters.Where(x => !x.Private));
|
|
|
+ userFilters.Clear();
|
|
|
+ userFilters.AddRange(filters.Where(x => x.Private));
|
|
|
+
|
|
|
+ if (Security.IsAllowed<CanEditGlobalFilters>())
|
|
|
+ {
|
|
|
+ GlobalConfiguration.Save(globalFilters);
|
|
|
+ }
|
|
|
+ UserConfiguration.Save(userFilters);
|
|
|
}
|
|
|
});
|
|
|
}
|