Procházet zdrojové kódy

Adding new dashboard now correctly updates dashboard list.

Kenric Nugteren před 7 měsíci
rodič
revize
d65cb092a1
1 změnil soubory, kde provedl 24 přidání a 6 odebrání
  1. 24 6
      prs.desktop/Dashboards/UtilityDashboard.xaml.cs

+ 24 - 6
prs.desktop/Dashboards/UtilityDashboard.xaml.cs

@@ -613,23 +613,36 @@ namespace PRSDesktop
             });
         }
 
-        private Border CreateDashboard(string name, string layout)
+        private void UpdateCustomDashboardList()
+        {
+            var customDashboards = new GlobalConfiguration<GlobalUtilityDashboardSettings>().Load().CustomDashboards;
+            foreach(var grid in _dashboards.Values)
+            {
+                grid.ClearElementTypesAndActions();
+                AddCustomDashboardsToGrid(grid, customDashboards);
+            }
+        }
+        private void AddCustomDashboardsToGrid(DynamicFormDesignGrid grid, List<CustomDashboard> customDashboards)
         {
-            var form = CreateForm(layout);
-
-            var grid = new DynamicFormDesignGrid();
-
             foreach(var widget in GetVisibleDashboardElements())
             {
                 grid.AddElementType(widget.DashboardElement, widget.WidgetCaption, widget.GroupCaption, true);
             }
 
-            var customDashboards = new GlobalConfiguration<GlobalUtilityDashboardSettings>().Load().CustomDashboards;
             foreach(var customDashboard in customDashboards)
             {
                 grid.AddElementType(typeof(CustomDashboardElement), customDashboard.Name, customDashboard.Group.NotWhiteSpaceOr("Custom"), customDashboard, AddCustom_Click, allowduplicate: true);
             }
             grid.AddElementAction<object?>("Create New", InABox.Wpf.Resources.add, "", null, CreateNewCustom_Click);
+        }
+
+        private Border CreateDashboard(string name, string layout)
+        {
+            var form = CreateForm(layout);
+
+            var grid = new DynamicFormDesignGrid();
+            var customDashboards = new GlobalConfiguration<GlobalUtilityDashboardSettings>().Load().CustomDashboards;
+            AddCustomDashboardsToGrid(grid, customDashboards);
 
             grid.ShowBorders = false;
             grid.OnCreateElement += OnCreateElement;
@@ -702,6 +715,8 @@ namespace PRSDesktop
                 {
                     DashboardName = editor.DashboardName
                 };
+
+                UpdateCustomDashboardList();
             }
         }
 
@@ -747,6 +762,9 @@ namespace PRSDesktop
                 {
                     DashboardName = editor.DashboardName
                 };
+
+                UpdateCustomDashboardList();
+
                 return element;
             }
             else