74 lines
2.5 KiB
C#
74 lines
2.5 KiB
C#
using System;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using ChronoFlow.Model;
|
|
using ChronoFlow.Persistence;
|
|
using ChronoFlow.View.Admin;
|
|
using ChronoFlow.View.Mitarbeiter;
|
|
|
|
namespace ChronoFlow.View
|
|
{
|
|
public partial class MainWindow : Window
|
|
{
|
|
private readonly ViewManager _viewManager;
|
|
private readonly User _loggedInUser;
|
|
|
|
public MainWindow(User user)
|
|
{
|
|
InitializeComponent();
|
|
|
|
_loggedInUser = user;
|
|
Console.WriteLine($"[DEBUG] MainWindow gestartet für Benutzer: {_loggedInUser.Username} ({_loggedInUser.Role})");
|
|
|
|
_viewManager = new ViewManager(ContentArea);
|
|
|
|
_viewManager.Register("ProjektErstellen", () => new ProjektErstellenView(_viewManager));
|
|
_viewManager.Register("MitarbeiterHinzufuegen", () => new MitarbeiterHinzufuegenView());
|
|
_viewManager.Register("AdminMain", () => new AdminMainView(_viewManager));
|
|
_viewManager.Register("AlleProjekte", () => new AlleProjekteView(_viewManager));
|
|
_viewManager.Register("MitarbeiterListe", () => new MitarbeiterListeView(_viewManager));
|
|
_viewManager.Register("AbgeschlosseneProjekte", () => new AbgeschlosseneProjekteView(_viewManager));
|
|
_viewManager.Register("Zeiterfassung", () =>
|
|
new EmployeeTasksView(_loggedInUser, new SqliteZeiterfassungsService()));
|
|
|
|
if (_loggedInUser.Role == "Admin")
|
|
{
|
|
_viewManager.Show("AdminMain");
|
|
}
|
|
else if (_loggedInUser.Role == "Mitarbeiter")
|
|
{
|
|
_viewManager.Show("Zeiterfassung"); // ⏳ später: MitarbeiterMain
|
|
}
|
|
|
|
this.Title = $"ChronoFlow - Willkommen {_loggedInUser.Username} ({_loggedInUser.Role})";
|
|
}
|
|
|
|
private void Zeiterfassung_Click(object? sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("Zeiterfassung");
|
|
}
|
|
|
|
private void MitarbeiterHinzufuegen_Click(object? sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("MitarbeiterHinzufuegen");
|
|
}
|
|
|
|
private void AdminDashboard_Click(object? sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("AdminMain");
|
|
}
|
|
|
|
public void ShowAdminDashboard()
|
|
{
|
|
_viewManager.Show("AdminMain");
|
|
}
|
|
private void Logout_Click(object? sender, RoutedEventArgs e)
|
|
{
|
|
var loginWindow = new LoginWindow();
|
|
loginWindow.Show();
|
|
|
|
this.Close(); // Aktuelles Fenster schließen
|
|
}
|
|
}
|
|
}
|