Browse Source

Creating empty TaskEditViewModel

Kenric Nugteren 6 days ago
parent
commit
5149857e15

+ 6 - 2
PRS.Avalonia/PRS.Avalonia/Modules/EquipmentModule/EquipmentDetails/EquipmentDetailsViewModel.cs

@@ -64,6 +64,7 @@ public partial class EquipmentDetailsViewModel : ModuleViewModel
 
     protected override Task OnActivated()
     {
+        // Have to do this, because the Tasks page will set a search predicate on Kanbans, and we need it to have no search predicate.
         Kanbans.Search(null);
         return base.OnActivated();
     }
@@ -90,9 +91,12 @@ public partial class EquipmentDetailsViewModel : ModuleViewModel
     }
 
     [RelayCommand]
-    private async Task EditOpenTask(EquipmentKanbanShell task)
+    private void EditOpenTask(EquipmentKanbanShell task)
     {
-        await MessageDialog.ShowMessage("Not implemented");
+        Navigation.Navigate<TaskEditViewModel>(model =>
+        {
+            model.Shell = task;
+        });
     }
 
     [RelayCommand]

+ 14 - 5
PRS.Avalonia/PRS.Avalonia/Modules/MyTasks/MyTasksViewModel.cs

@@ -48,16 +48,25 @@ public partial class MyTasksViewModel : ModuleViewModel
         SelectionMenuVisible = false;
     }
 
-    private async Task<bool> AddTask()
+    private Task<bool> AddTask()
     {
-        await MessageDialog.ShowMessage("Unimplemented");
-        return true;
+        var shell = (Model.AddItem() as IKanbanShell)!;
+        shell.EmployeeID = Repositories.Me.ID;
+        shell.DueDate = DateTime.Today;
+        Navigation.Navigate<TaskEditViewModel>(model =>
+        {
+            model.Shell = shell;
+        });
+        return Task.FromResult(true);
     }
 
     [RelayCommand]
-    private async Task KanbanClicked(IKanbanShell shell)
+    private void KanbanClicked(IKanbanShell shell)
     {
-        await MessageDialog.ShowMessage("Unimplemented");
+        Navigation.Navigate<TaskEditViewModel>(model =>
+        {
+            model.Shell = shell;
+        });
     }
 
     protected override async Task<TimeSpan> OnRefresh()

+ 9 - 0
PRS.Avalonia/PRS.Avalonia/Modules/MyTasks/TaskEditView.axaml

@@ -0,0 +1,9 @@
+<UserControl xmlns="https://github.com/avaloniaui"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+             xmlns:modules="using:PRS.Avalonia.Modules"
+             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
+             x:Class="PRS.Avalonia.Modules.TaskEditView"
+			 x:DataType="modules:TaskEditViewModel">
+</UserControl>

+ 13 - 0
PRS.Avalonia/PRS.Avalonia/Modules/MyTasks/TaskEditView.axaml.cs

@@ -0,0 +1,13 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace PRS.Avalonia.Modules;
+
+public partial class TaskEditView : UserControl
+{
+    public TaskEditView()
+    {
+        InitializeComponent();
+    }
+}

+ 16 - 0
PRS.Avalonia/PRS.Avalonia/Modules/MyTasks/TaskEditViewModel.cs

@@ -0,0 +1,16 @@
+using CommunityToolkit.Mvvm.ComponentModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PRS.Avalonia.Modules;
+
+internal partial class TaskEditViewModel : ModuleViewModel
+{
+    public override string Title => "Task Details";
+
+    [ObservableProperty] 
+    private IKanbanShell? _shell;
+}