|
@@ -2793,6 +2793,10 @@ public partial class MainWindow : IPanelHostControl
|
|
|
}
|
|
|
menu.AddSeparatorIfNeeded();
|
|
|
CreateTaskMenu(menu, "(No Task Selected)", Guid.Empty);
|
|
|
+ if(_kanbantrackingassignment is not null && _kanbantrackingassignment.Task.ID != Guid.Empty)
|
|
|
+ {
|
|
|
+ menu.AddItem("View Task", null, _kanbantrackingassignment.Task.ID, ViewTrackingKanban_Click);
|
|
|
+ }
|
|
|
menu.AddSeparatorIfNeeded();
|
|
|
|
|
|
var filterItem = menu.AddItem(TrackingKanbanFilterComponent.Text, TrackingKanbanFilterComponent.Image, null);
|
|
@@ -2803,6 +2807,17 @@ public partial class MainWindow : IPanelHostControl
|
|
|
_trackingKanbanMenu = menu;
|
|
|
}
|
|
|
|
|
|
+ private void ViewTrackingKanban_Click(Guid guid)
|
|
|
+ {
|
|
|
+ var item = Client.Query(
|
|
|
+ new Filter<Kanban>(x => x.ID).IsEqualTo(guid),
|
|
|
+ DynamicGridUtils.LoadEditorColumns<Kanban>())
|
|
|
+ .ToObjects<Kanban>().FirstOrDefault();
|
|
|
+ if (item is null) return;
|
|
|
+
|
|
|
+ DynamicGridUtils.EditEntity(item);
|
|
|
+ }
|
|
|
+
|
|
|
private Assignment? _kanbantrackingassignment = null;
|
|
|
private CoreFilterDefinitions? _kanbanTrackingFilter = null;
|
|
|
|
|
@@ -2852,18 +2867,15 @@ public partial class MainWindow : IPanelHostControl
|
|
|
|
|
|
private void CreateTaskMenu(ItemsControl menu, string title, Guid id)
|
|
|
{
|
|
|
- var item = new MenuItem()
|
|
|
- {
|
|
|
- Header = title,
|
|
|
- Tag = id
|
|
|
- };
|
|
|
- item.Click += (o, args) =>
|
|
|
- {
|
|
|
- if (o is not MenuItem menu) return;
|
|
|
+ menu.AddCheckMenuItem(title, (title, id), TrackingKanbanMenuItem_Click, isChecked: _kanbantrackingassignment?.Task.ID == id);
|
|
|
+ }
|
|
|
|
|
|
- SetTrackingKanban((Guid)item.Tag, (menu.Header as string) ?? "");
|
|
|
- };
|
|
|
- menu.Items.Add(item);
|
|
|
+ private void TrackingKanbanMenuItem_Click((string title, Guid id) tuple, bool isChecked)
|
|
|
+ {
|
|
|
+ if (isChecked)
|
|
|
+ {
|
|
|
+ SetTrackingKanban(tuple.id, tuple.title);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#endregion
|