10 Commits
1.0.7 ... 1.0.8

Author SHA1 Message Date
7f9e3f622a 1.0.8 2025-02-23 21:02:01 +01:00
54ed791c5b Versionsabzeige korrigiert 2025-02-23 20:39:56 +01:00
c88bf148d4 Farben & Cleanup 2025-02-23 20:30:26 +01:00
1a8eeec85d Anpassungen für 1.0.8 2025-02-23 17:44:46 +01:00
1b4f73a913 Anpassungen für 1.0.8
Farbe StatusBar für Dark/Light-Mode angepasst
Loginseite optimiert
Bugfix Toast für Windows
Versionskontrolle für Windows optimiert
2025-02-23 17:25:59 +01:00
2f0be4cc5c Enable LLVM 2025-02-22 18:26:31 +01:00
21af63c02c Farbe des Themes angepasst 2025-02-22 18:26:08 +01:00
c4fdc266b5 Optimierung Stundenseite
Grid statt StackLayout
Monatssummen beachten jetzt auch das Jahr
2025-02-22 18:26:08 +01:00
6d6eaf836b Adjust spacing 2025-02-22 17:43:12 +01:00
67d662a0a7 Versionshinweis hinzugefügt 2025-02-17 10:27:37 +01:00
13 changed files with 189 additions and 115 deletions

View File

@@ -5,13 +5,11 @@
/// </summary> /// </summary>
public partial class App : Application { public partial class App : Application {
/// <summary> /// <summary>
/// Initialisiert eine neue Instanz der <see cref="App"/>-Klasse. /// Initialisiert eine neue Instanz der <see cref="App"/>-Klasse.
/// </summary> /// </summary>
public App() { public App() {
InitializeComponent(); InitializeComponent();
MainPage = new AppShell();
MainPage = new AppShell(); }
}
} }

View File

@@ -27,8 +27,8 @@
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId> <ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
<!-- Versions --> <!-- Versions -->
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion> <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion> <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion>
@@ -39,14 +39,14 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile> <GenerateDocumentationFile>True</GenerateDocumentationFile>
<PackageIcon>paket_icon.png</PackageIcon> <PackageIcon>paket_icon.png</PackageIcon>
<NeutralLanguage>de</NeutralLanguage> <NeutralLanguage>de</NeutralLanguage>
<PackageVersion>1.0.7</PackageVersion> <PackageVersion>1.0.8</PackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-maccatalyst|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-maccatalyst|AnyCPU'">
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId> <ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<Optimize>False</Optimize> <Optimize>False</Optimize>
<Deterministic>True</Deterministic> <Deterministic>True</Deterministic>
</PropertyGroup> </PropertyGroup>
@@ -54,8 +54,8 @@
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<Optimize>True</Optimize> <Optimize>True</Optimize>
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId> <ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<Deterministic>True</Deterministic> <Deterministic>True</Deterministic>
</PropertyGroup> </PropertyGroup>
@@ -65,8 +65,8 @@
<DebugSymbols>True</DebugSymbols> <DebugSymbols>True</DebugSymbols>
<Optimize>False</Optimize> <Optimize>False</Optimize>
<Deterministic>True</Deterministic> <Deterministic>True</Deterministic>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<AndroidKeyStore>False</AndroidKeyStore> <AndroidKeyStore>False</AndroidKeyStore>
</PropertyGroup> </PropertyGroup>
@@ -76,8 +76,8 @@
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-windows10.0.26100.0|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-windows10.0.26100.0|AnyCPU'">
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId> <ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<DefineConstants>$(DefineConstants);DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION</DefineConstants> <DefineConstants>$(DefineConstants);DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION</DefineConstants>
<Deterministic>True</Deterministic> <Deterministic>True</Deterministic>
<Optimize>False</Optimize> <Optimize>False</Optimize>
@@ -89,8 +89,8 @@
<DebugSymbols>False</DebugSymbols> <DebugSymbols>False</DebugSymbols>
<Optimize>True</Optimize> <Optimize>True</Optimize>
<Deterministic>True</Deterministic> <Deterministic>True</Deterministic>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<RunAOTCompilation>False</RunAOTCompilation> <RunAOTCompilation>False</RunAOTCompilation>
<PublishTrimmed>True</PublishTrimmed> <PublishTrimmed>True</PublishTrimmed>
<AndroidKeyStore>False</AndroidKeyStore> <AndroidKeyStore>False</AndroidKeyStore>
@@ -98,8 +98,8 @@
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-windows10.0.26100.0|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-windows10.0.26100.0|AnyCPU'">
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId> <ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<Optimize>True</Optimize> <Optimize>True</Optimize>
<Deterministic>True</Deterministic> <Deterministic>True</Deterministic>
</PropertyGroup> </PropertyGroup>
@@ -109,42 +109,46 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat> <SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly> <ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AssemblyVersion>1.0.7</AssemblyVersion> <AssemblyVersion>1.0.8</AssemblyVersion>
<FileVersion>1.0.7</FileVersion> <FileVersion>1.0.8</FileVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-android|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-android|AnyCPU'">
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-android|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-android|AnyCPU'">
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<DebugSymbols>True</DebugSymbols> <DebugSymbols>True</DebugSymbols>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-windows10.0.19041.0|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-windows10.0.19041.0|AnyCPU'">
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<DefineConstants>$(DefineConstants);DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION</DefineConstants> <DefineConstants>$(DefineConstants);DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION</DefineConstants>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-windows10.0.19041.0|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-windows10.0.19041.0|AnyCPU'">
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-android35.0|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-android35.0|AnyCPU'">
<WarningLevel>8</WarningLevel> <WarningLevel>8</WarningLevel>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<EnableLLVM>True</EnableLLVM>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-android35.0|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-android35.0|AnyCPU'">
<WarningLevel>8</WarningLevel> <WarningLevel>8</WarningLevel>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
<EnableLLVM>True</EnableLLVM>
<DebugSymbols>False</DebugSymbols>
<AndroidEnableProfiledAot>False</AndroidEnableProfiledAot>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-ios|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-ios|AnyCPU'">
@@ -159,16 +163,16 @@
<WarningLevel>8</WarningLevel> <WarningLevel>8</WarningLevel>
<NoWarn>1701;1702</NoWarn> <NoWarn>1701;1702</NoWarn>
<WarningsAsErrors>$(WarningsAsErrors);NU1605</WarningsAsErrors> <WarningsAsErrors>$(WarningsAsErrors);NU1605</WarningsAsErrors>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-windows10.0.26100.0|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-windows10.0.26100.0|AnyCPU'">
<WarningLevel>8</WarningLevel> <WarningLevel>8</WarningLevel>
<NoWarn>1701;1702</NoWarn> <NoWarn>1701;1702</NoWarn>
<WarningsAsErrors>$(WarningsAsErrors);NU1605</WarningsAsErrors> <WarningsAsErrors>$(WarningsAsErrors);NU1605</WarningsAsErrors>
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion> <ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
<ApplicationVersion>8</ApplicationVersion> <ApplicationVersion>9</ApplicationVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

View File

@@ -15,7 +15,9 @@ public static class MauiProgram {
builder builder
.UseMauiApp<App>() .UseMauiApp<App>()
// Initialize the .NET MAUI Community Toolkit by adding the below line of code // Initialize the .NET MAUI Community Toolkit by adding the below line of code
.UseMauiCommunityToolkit() .UseMauiCommunityToolkit(options => {
options.SetShouldEnableSnackbarOnWindows(true);
})
.ConfigureFonts(fonts => { .ConfigureFonts(fonts => {
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");

View File

@@ -4,7 +4,9 @@
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap rescap"> xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap com desktop">
<Identity Name="JugenddienstStunden" Publisher="CN=User Name" Version="0.0.0.0" /> <Identity Name="JugenddienstStunden" Publisher="CN=User Name" Version="0.0.0.0" />
@@ -36,6 +38,26 @@
<uap:DefaultTile Square71x71Logo="Resources\Windows\Small\$placeholder$.png" Wide310x150Logo="Resources\Windows\Wide\$placeholder$.png" Square310x310Logo="Resources\Windows\$placeholder$.png" ShortName="Stunden"/> <uap:DefaultTile Square71x71Logo="Resources\Windows\Small\$placeholder$.png" Wide310x150Logo="Resources\Windows\Wide\$placeholder$.png" Square310x310Logo="Resources\Windows\$placeholder$.png" ShortName="Stunden"/>
<uap:SplashScreen Image="Resources\Windows\Splash\$placeholder$.png" BackgroundColor="#F7931D"/> <uap:SplashScreen Image="Resources\Windows\Splash\$placeholder$.png" BackgroundColor="#F7931D"/>
</uap:VisualElements> </uap:VisualElements>
<Extensions>
<!-- Specify which CLSID to activate when notification is clicked -->
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<!-- Register COM CLSID -->
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="Jugenddienst Stunden.exe" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:">
<!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application> </Application>
</Applications> </Applications>

View File

@@ -7,10 +7,10 @@
<!-- Note: For Android please see also Platforms\Android\Resources\values\colors.xml --> <!-- Note: For Android please see also Platforms\Android\Resources\values\colors.xml -->
<Color x:Key="Primary">#F7931D</Color> <Color x:Key="Primary">#F7931D</Color>
<Color x:Key="PrimaryDark">#ac99ea</Color> <Color x:Key="PrimaryDark">#EC8A16</Color>
<Color x:Key="PrimaryDarkText">#242424</Color> <Color x:Key="PrimaryDarkText">#242424</Color>
<Color x:Key="Secondary">#DFD8F7</Color> <Color x:Key="Secondary">#DFD8F7</Color>
<Color x:Key="SecondaryDarkText">#9880e5</Color> <Color x:Key="SecondaryDarkText">#EC8A16</Color>
<Color x:Key="Tertiary">#2B0B98</Color> <Color x:Key="Tertiary">#2B0B98</Color>
<Color x:Key="TransparentColor">Transparent</Color> <Color x:Key="TransparentColor">Transparent</Color>

View File

@@ -30,4 +30,9 @@ public class Settings {
public List<Freistellung>? Freistellungen { get; set; } public List<Freistellung>? Freistellungen { get; set; }
public List<Sollstunden> Nominal { get; set; } public List<Sollstunden> Nominal { get; set; }
/// <summary>
/// Version der API
/// </summary>
public string Version { get; set; }
} }

View File

@@ -7,6 +7,7 @@ using System.Runtime.CompilerServices;
using System.Windows.Input; using System.Windows.Input;
using CommunityToolkit.Maui.Alerts; using CommunityToolkit.Maui.Alerts;
using CommunityToolkit.Maui.Core; using CommunityToolkit.Maui.Core;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace Jugenddienst_Stunden.ViewModels; namespace Jugenddienst_Stunden.ViewModels;
@@ -83,7 +84,7 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
set { set {
if (dateToday != value) { if (dateToday != value) {
dateToday = value; dateToday = value;
LoadOverview = "Lade Summen für " + dateToday.ToString("MMMM"); LoadOverview = "Lade Summen für " + dateToday.ToString("MMMM yy");
//OnPropertyChanged(); //OnPropertyChanged();
Task.Run(() => LoadDay(value)); Task.Run(() => LoadDay(value));
} }
@@ -118,6 +119,13 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
get => Hours.overtime_month; get => Hours.overtime_month;
} }
public int Zeitausgleich {
get => Hours.zeitausgleich;
}
public int ZeitausgleichMonth {
get => Hours.zeitausgleich_month;
}
/// <summary> /// <summary>
/// Monatsübersicht: Resturlaub /// Monatsübersicht: Resturlaub
/// </summary> /// </summary>
@@ -193,8 +201,13 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
/// </summary> /// </summary>
private async Task LoadData() { private async Task LoadData() {
try { try {
BaseResponse dat = await HoursBase.LoadBase("hours&month=" + DateToday.ToString("MM")); BaseResponse dat = await HoursBase.LoadBase("hours&year=" + DateToday.ToString("yyyy") + "&month=" + DateToday.ToString("MM"));
_hour = dat.hour; _hour = dat.hour;
Settings = dat.settings;
if (Settings.Version != AppInfo.Current.VersionString.Substring(0, 5)) {
InfoEvent?.Invoke(this, "Version: " + Settings.Version + " verfügbar (" + AppInfo.Current.VersionString.Substring(0, 5) + " installiert)");
}
//_hour = await HoursBase.LoadData(); //_hour = await HoursBase.LoadData();
RefreshProperties(); RefreshProperties();
} catch (Exception e) { } catch (Exception e) {
@@ -218,11 +231,9 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
GemeindeAktivSet = Settings.GemeindeAktivSet; GemeindeAktivSet = Settings.GemeindeAktivSet;
ProjektAktivSet = Settings.ProjektAktivSet; ProjektAktivSet = Settings.ProjektAktivSet;
OnPropertyChanged(nameof(GemeindeAktivSet)); OnPropertyChanged(nameof(GemeindeAktivSet));
OnPropertyChanged(nameof(ProjektAktivSet)); OnPropertyChanged(nameof(ProjektAktivSet));
List<Sollstunden> _soll; List<Sollstunden> _soll;
TimeSpan span = TimeSpan.Zero; TimeSpan span = TimeSpan.Zero;
bool merker = false; bool merker = false;
@@ -249,7 +260,10 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
} catch (Exception e) { } catch (Exception e) {
DayTimes = new List<DayTime>(); DayTimes = new List<DayTime>();
//TODO: hier könnte auch ein Fehler kommen, dann wäre InfoEvent falsch. //TODO: hier könnte auch ein Fehler kommen, dann wäre InfoEvent falsch.
InfoEvent?.Invoke(this, e.Message);
if (Settings.Version != null && Settings.Version != AppInfo.Current.VersionString.Substring(0, 5)) {
InfoEvent?.Invoke(this, "Version: " + Settings.Version + " verfügbar (" + AppInfo.Current.VersionString.Substring(0, 5) + " installiert)");
} else { InfoEvent?.Invoke(this, e.Message); }
} finally { } finally {
OnPropertyChanged(nameof(DayTotal)); OnPropertyChanged(nameof(DayTotal));
OnPropertyChanged(nameof(Sollstunden)); OnPropertyChanged(nameof(Sollstunden));
@@ -257,7 +271,6 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
OnPropertyChanged(nameof(LoadOverview)); OnPropertyChanged(nameof(LoadOverview));
//OnPropertyChanged(nameof(DayTimes)); //OnPropertyChanged(nameof(DayTimes));
} }
} }
async void IQueryAttributable.ApplyQueryAttributes(IDictionary<string, object> query) { async void IQueryAttributable.ApplyQueryAttributes(IDictionary<string, object> query) {
@@ -285,6 +298,7 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
OnPropertyChanged(nameof(Nominal)); OnPropertyChanged(nameof(Nominal));
OnPropertyChanged(nameof(Overtime)); OnPropertyChanged(nameof(Overtime));
OnPropertyChanged(nameof(OvertimeMonth)); OnPropertyChanged(nameof(OvertimeMonth));
OnPropertyChanged(nameof(Zeitausgleich));
OnPropertyChanged(nameof(ZeitCalculated)); OnPropertyChanged(nameof(ZeitCalculated));
OnPropertyChanged(nameof(Holiday)); OnPropertyChanged(nameof(Holiday));
OnPropertyChanged(nameof(Hours)); OnPropertyChanged(nameof(Hours));

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:viewModels="clr-namespace:Jugenddienst_Stunden.ViewModels" xmlns:viewModels="clr-namespace:Jugenddienst_Stunden.ViewModels"
x:Class="Jugenddienst_Stunden.Views.AllNotesPage" x:Class="Jugenddienst_Stunden.Views.AllNotesPage"
Title="Deine Notizen" Title="Deine Notizen"
@@ -15,6 +16,12 @@
<ToolbarItem Text="Neue Notiz" Command="{Binding NewCommand}" IconImageSource="{FontImage Glyph='+', Color=Black, Size=22}" /> <ToolbarItem Text="Neue Notiz" Command="{Binding NewCommand}" IconImageSource="{FontImage Glyph='+', Color=Black, Size=22}" />
</ContentPage.ToolbarItems> </ContentPage.ToolbarItems>
<ContentPage.Behaviors>
<toolkit:StatusBarBehavior
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
StatusBarStyle="LightContent" />
</ContentPage.Behaviors>
<VerticalStackLayout Margin="20,0,0,0"> <VerticalStackLayout Margin="20,0,0,0">
<Label Text="Werden nur lokal gespeichert"/> <Label Text="Werden nur lokal gespeichert"/>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:models="clr-namespace:Jugenddienst_Stunden.ViewModels" xmlns:models="clr-namespace:Jugenddienst_Stunden.ViewModels"
xmlns:zxing="clr-namespace:ZXing.Net.Maui.Controls;assembly=ZXing.Net.MAUI.Controls" xmlns:zxing="clr-namespace:ZXing.Net.Maui.Controls;assembly=ZXing.Net.MAUI.Controls"
xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter" xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter"
@@ -18,44 +19,50 @@
</ResourceDictionary> </ResourceDictionary>
</ContentPage.Resources> </ContentPage.Resources>
<ContentPage.Behaviors>
<toolkit:StatusBarBehavior
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
StatusBarStyle="LightContent" />
</ContentPage.Behaviors>
<ScrollView> <ScrollView>
<VerticalStackLayout Spacing="10" Margin="15,0"> <VerticalStackLayout Spacing="10" Margin="15,0">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<HorizontalStackLayout Spacing="10" HorizontalOptions="Start" Grid.Column="0"> <HorizontalStackLayout Spacing="5" HorizontalOptions="Start" Grid.Column="0">
<Label FontSize="22" FontAttributes="Bold" Text="{Binding AppTitle}" Margin="0,4,0,0" /> <Label FontSize="20" FontAttributes="Bold" Text="{Binding AppTitle}" Margin="0,7,0,0" />
<Label FontSize="22" Text="{Binding Version}" Margin="0,4,0,0" /> <Label FontSize="16" Text="{Binding Version}" Margin="0,11,0,0" />
</HorizontalStackLayout>
<HorizontalStackLayout HorizontalOptions="End" Spacing="10" Grid.Column="1">
<Label Text="Login QR/manuell" Margin="0,12,0,0"/>
<Switch x:Name="LoginSwitch" IsToggled="False" Toggled="Switch_Toggled"/>
</HorizontalStackLayout> </HorizontalStackLayout>
<Grid Grid.Column="1" ColumnDefinitions="*,50" ColumnSpacing="10">
<Label Text="Login QR/manuell" VerticalOptions="Center" Grid.Column="0"/>
<Switch x:Name="LoginSwitch" IsToggled="False" Toggled="Switch_Toggled" VerticalOptions="Center" Grid.Column="1"/>
</Grid>
</Grid> </Grid>
<Label x:Name="ServerLabel" Text="{Binding Server}" IsVisible="{Binding Server, Converter={StaticResource StringVisibilityConverter}}" /> <Label x:Name="ServerLabel" Text="{Binding Server}" IsVisible="{Binding Server, Converter={StaticResource StringVisibilityConverter}}" />
<VerticalStackLayout x:Name="LoginQR"> <VerticalStackLayout x:Name="LoginQR" Margin="0,20,0,0">
<Label Text="Login mit QR-Code" FontSize="32" HorizontalOptions="Start" /> <Label Text="Login mit QR-Code" FontSize="32" HorizontalOptions="Start" />
<Label x:Name="Message" Text="{Binding Message}" Margin="0,15" /> <Label x:Name="Message" Text="{Binding Message}" Margin="0,15" />
<Border HeightRequest="300" Padding="0"> <Border HeightRequest="300" Padding="0">
<zxing:CameraBarcodeReaderView x:Name="barcodeScannerView" <zxing:CameraBarcodeReaderView
BarcodesDetected="BarcodesDetected" x:Name="barcodeScannerView"
HorizontalOptions="FillAndExpand" BarcodesDetected="BarcodesDetected"
VerticalOptions="FillAndExpand"/> HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"/>
</Border> </Border>
</VerticalStackLayout> </VerticalStackLayout>
<VerticalStackLayout x:Name="LoginManual" Spacing="15"> <VerticalStackLayout x:Name="LoginManual" Spacing="25">
<Label Text="Manueller Login" FontSize="32" HorizontalOptions="Start" /> <Label Text="Manueller Login" FontSize="32" HorizontalOptions="Start" Margin="0, 20, 0, 0" />
<Entry x:Name="UsernameEntry" Placeholder="Benutzername" Keyboard="Email" /> <Entry x:Name="UsernameEntry" Placeholder="Benutzername (Mailadresse)" Keyboard="Email" />
<Entry x:Name="PasswordEntry" Placeholder="Passwort" IsPassword="True" /> <Entry x:Name="PasswordEntry" Placeholder="Passwort" IsPassword="True" />
<Entry x:Name="ServerEntry" Placeholder="Server" Keyboard="Url" /> <Entry x:Name="ServerEntry" Placeholder="Server (gleich wie im Browser)" Keyboard="Url" />
<Button Text="Login" Clicked="OnLoginButtonClicked" /> <Button Text="Login" Clicked="OnLoginButtonClicked" TextColor="{AppThemeBinding Dark={StaticResource White}, Light={StaticResource White}}" />
</VerticalStackLayout> </VerticalStackLayout>
</VerticalStackLayout> </VerticalStackLayout>

View File

@@ -1,12 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:viewModels="clr-namespace:Jugenddienst_Stunden.ViewModels" xmlns:viewModels="clr-namespace:Jugenddienst_Stunden.ViewModels"
x:Class="Jugenddienst_Stunden.Views.NotePage" x:Class="Jugenddienst_Stunden.Views.NotePage"
Title="Notiz"> Title="Notiz">
<ContentPage.BindingContext> <ContentPage.BindingContext>
<viewModels:NoteViewModel /> <viewModels:NoteViewModel />
</ContentPage.BindingContext> </ContentPage.BindingContext>
<ContentPage.Behaviors>
<toolkit:StatusBarBehavior
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
StatusBarStyle="LightContent" />
</ContentPage.Behaviors>
<VerticalStackLayout Spacing="10" Margin="5"> <VerticalStackLayout Spacing="10" Margin="5">
<Editor x:Name="TextEditor" <Editor x:Name="TextEditor"
Placeholder="Gib deine Notiz ein" Placeholder="Gib deine Notiz ein"

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:models="clr-namespace:Jugenddienst_Stunden.ViewModels" xmlns:models="clr-namespace:Jugenddienst_Stunden.ViewModels"
xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter" xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter"
x:Class="Jugenddienst_Stunden.Views.StundePage" x:Class="Jugenddienst_Stunden.Views.StundePage"
@@ -17,6 +18,12 @@
</ResourceDictionary> </ResourceDictionary>
</ContentPage.Resources> </ContentPage.Resources>
<ContentPage.Behaviors>
<toolkit:StatusBarBehavior
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
StatusBarStyle="LightContent" />
</ContentPage.Behaviors>
<VerticalStackLayout Spacing="10" Margin="10"> <VerticalStackLayout Spacing="10" Margin="10">
<Label Text="{Binding SubTitle}" FontSize="Medium" FontAttributes="Bold" Margin="4,0,0,0" /> <Label Text="{Binding SubTitle}" FontSize="Medium" FontAttributes="Bold" Margin="4,0,0,0" />
@@ -70,8 +77,15 @@
<Editor Placeholder="Beschreibung" Text="{Binding DayTime.Description}" MinimumHeightRequest="40" AutoSize="TextChanges" FontSize="18" /> <Editor Placeholder="Beschreibung" Text="{Binding DayTime.Description}" MinimumHeightRequest="40" AutoSize="TextChanges" FontSize="18" />
<Grid ColumnDefinitions="*,*" ColumnSpacing="4"> <Grid ColumnDefinitions="*,*" ColumnSpacing="4">
<Button Text="Speichern" Command="{Binding SaveCommand}" /> <Button Grid.Column="1" Text="Speichern"
<Button Grid.Column="1" Text="Löschen" Command="{Binding DeleteConfirmCommand}" IsEnabled="{Binding DayTime.Id, Converter={StaticResource IntBoolConverter}}" IsVisible="{Binding FreistellungEnabled}" /> TextColor="{AppThemeBinding Dark={StaticResource White}, Light={StaticResource White}}"
Command="{Binding SaveCommand}" />
<Button Grid.Column="0" Text="Löschen"
Command="{Binding DeleteConfirmCommand}"
IsEnabled="{Binding DayTime.Id, Converter={StaticResource IntBoolConverter}}"
IsVisible="{Binding FreistellungEnabled}"
BackgroundColor="{StaticResource Gray500}"
TextColor="{AppThemeBinding Dark={StaticResource White}, Light={StaticResource White}}"/>
</Grid> </Grid>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:mmodels="clr-namespace:Jugenddienst_Stunden.Models" xmlns:mmodels="clr-namespace:Jugenddienst_Stunden.Models"
xmlns:models="clr-namespace:Jugenddienst_Stunden.ViewModels" xmlns:models="clr-namespace:Jugenddienst_Stunden.ViewModels"
xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter" xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter"
@@ -21,17 +22,22 @@
</ResourceDictionary> </ResourceDictionary>
</ContentPage.Resources> </ContentPage.Resources>
<ContentPage.Behaviors>
<toolkit:StatusBarBehavior
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
StatusBarStyle="LightContent" />
</ContentPage.Behaviors>
<ContentPage.ToolbarItems> <ContentPage.ToolbarItems>
<!--<ToolbarItem Text="Lade Liste" Command="{Binding RefreshListCommand}"/>--> <!--<ToolbarItem Text="Lade Liste" Command="{Binding RefreshListCommand}"/>-->
<ToolbarItem Text="Neuer Eintrag" IconImageSource="{StaticResource ToolbarIcon}" Command="{Binding NewEntryCommand}" /> <ToolbarItem Text="Neuer Eintrag" IconImageSource="{StaticResource ToolbarIcon}" Command="{Binding NewEntryCommand}" />
</ContentPage.ToolbarItems> </ContentPage.ToolbarItems>
<RefreshView x:Name="MyRefreshView" Command="{Binding RefreshCommand}" IsRefreshing="{Binding IsRefreshing}" Margin="10" Padding="10"> <RefreshView x:Name="MyRefreshView" Command="{Binding RefreshCommand}" IsRefreshing="{Binding IsRefreshing}" Margin="10" Padding="10">
<VerticalStackLayout Spacing="10" Margin="10"> <Grid RowDefinitions="50,*,Auto,80">
<!--<VerticalStackLayout Spacing="10" Margin="10">-->
<Grid RowDefinitions="Auto" ColumnDefinitions="Auto,*" HeightRequest="50"> <Grid RowDefinitions="Auto" ColumnDefinitions="Auto,*" HeightRequest="50" Grid.Row="0">
<DatePicker Grid.Column="0" MinimumDate="{Binding MinimumDate}" <DatePicker Grid.Column="0" MinimumDate="{Binding MinimumDate}"
MaximumDate="{Binding MaximumDate}" MaximumDate="{Binding MaximumDate}"
Date="{Binding DateToday}" Format="dddd, d. MMMM yyyy" /> Date="{Binding DateToday}" Format="dddd, d. MMMM yyyy" />
@@ -46,11 +52,13 @@
<CollectionView <CollectionView
ItemsSource="{Binding DayTimes}" ItemsSource="{Binding DayTimes}"
x:Name="stundeItems" Margin="0" x:Name="stundeItems" Margin="0,0,0,20"
HeightRequest="300"
SelectionMode="Single" SelectionMode="Single"
SelectionChangedCommand="{Binding SelectEntryCommand}" SelectionChangedCommand="{Binding SelectEntryCommand}"
SelectionChangedCommandParameter="{Binding Source={RelativeSource Self}, Path=SelectedItem}"> SelectionChangedCommandParameter="{Binding Source={RelativeSource Self}, Path=SelectedItem}"
VerticalOptions="Start"
Grid.Row="1">
<CollectionView.ItemsLayout> <CollectionView.ItemsLayout>
<LinearItemsLayout Orientation="Vertical" ItemSpacing="0" /> <LinearItemsLayout Orientation="Vertical" ItemSpacing="0" />
@@ -110,27 +118,32 @@
</CollectionView> </CollectionView>
<BoxView HeightRequest="1" /> <!--<BoxView HeightRequest="1" Grid.Row="2" Margin="0,5,0,15" />-->
<Button Text="{Binding LoadOverview}"
<Button Text="{Binding LoadOverview}" Command="{Binding LoadDataCommand}" /> Grid.Row="2"
<Border Padding="2" HeightRequest="125"> Command="{Binding LoadDataCommand}"
<Grid RowDefinitions="Auto,Auto,Auto,Auto,Auto,*" ColumnDefinitions="Auto,*" Margin="10,2"> TextColor="{AppThemeBinding Dark={StaticResource White}, Light={StaticResource White}}" />
<Border Padding="2" Grid.Row="3" Margin="0,10,0,0">
<Grid RowDefinitions="Auto,Auto,Auto,Auto,Auto,*" ColumnDefinitions="Auto,Auto,*,Auto" Margin="10,2">
<Label Grid.Row="0" Text="Soll:" /> <Label Grid.Row="0" Text="Soll:" />
<Label Grid.Row="1" Text="Summe:" /> <Label Grid.Row="1" Text="Summe:" />
<Label Grid.Row="2" Text="Differenz:" Margin="0,0,15,0" /> <Label Grid.Row="2" Text="Differenz:" Margin="0,0,15,0" />
<BoxView Grid.Row="3" Grid.ColumnSpan="2" HeightRequest="1" Color="LightGrey" Margin="0,5"/> <!--<BoxView Grid.Row="3" Grid.ColumnSpan="4" HeightRequest="1" Color="LightGrey" Margin="0,5"/>-->
<Label Grid.Row="4" Text="Restüberstunden:" /> <Label Grid.Row="0" Grid.Column="2" Text="Restüberstunden:" Margin="15,0,0,0" />
<Label Grid.Row="5" Text="Resturlaub:" /> <Label Grid.Row="1" Grid.Column="2" Text="Zeitausgleich:" Margin="15,0,0,0" />
<Label Grid.Row="2" Grid.Column="2" Text="Resturlaub:" Margin="15,0,0,0" />
<Label Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Nominal, Converter={StaticResource secToTime}}" ToolTipProperties.Text="Sollstunden" /> <Label Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Nominal, Converter={StaticResource secToTime}}" ToolTipProperties.Text="Sollstunden" />
<Label Grid.Row="1" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding ZeitCalculated, Converter={StaticResource secToTime}}" ToolTipProperties.Text="Geleistete Stunden" /> <Label Grid.Row="1" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding ZeitCalculated, Converter={StaticResource secToTime}}" ToolTipProperties.Text="Geleistete Stunden" />
<Label Grid.Row="2" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding OvertimeMonth, Converter={StaticResource secToTime}}" /> <Label Grid.Row="2" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding OvertimeMonth, Converter={StaticResource secToTime}}" />
<Label Grid.Row="4" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Overtime, Converter={StaticResource secToTime}}" /> <Label Grid.Row="0" Grid.Column="3" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Overtime, Converter={StaticResource secToTime}}" />
<Label Grid.Row="5" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Holiday, Converter={StaticResource secToTime}}" /> <Label Grid.Row="1" Grid.Column="3" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Zeitausgleich, Converter={StaticResource secToTime}}" />
<Label Grid.Row="2" Grid.Column="3" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Holiday, Converter={StaticResource secToTime}}" />
</Grid> </Grid>
</Border> </Border>
</VerticalStackLayout> </Grid>
<!--</VerticalStackLayout>-->
</RefreshView> </RefreshView>
</ContentPage> </ContentPage>

View File

@@ -10,8 +10,6 @@ namespace Jugenddienst_Stunden.Views;
/// </summary> /// </summary>
public partial class StundenPage : ContentPage { public partial class StundenPage : ContentPage {
private int heightValue = 300;
/// <summary> /// <summary>
/// CTOR /// CTOR
/// </summary> /// </summary>
@@ -25,17 +23,7 @@ public partial class StundenPage : ContentPage {
if (!CheckLogin()) { if (!CheckLogin()) {
NavigateToTargetPage(); NavigateToTargetPage();
} }
#if ANDROID
heightValue = 280;
#elif IOS
heightValue = 280;
#elif WINDOWS
heightValue = 320;
#else
heightValue = 300;
#endif
SizeChanged += OnPageSizeChanged;
} }
private void Vm_AlertEvent(object? sender, string e) { private void Vm_AlertEvent(object? sender, string e) {
@@ -55,7 +43,7 @@ public partial class StundenPage : ContentPage {
MainThread.BeginInvokeOnMainThread(async () => { MainThread.BeginInvokeOnMainThread(async () => {
CancellationTokenSource cts = new CancellationTokenSource(); CancellationTokenSource cts = new CancellationTokenSource();
ToastDuration duration = ToastDuration.Short; ToastDuration duration = ToastDuration.Short;
double fontSize = 20; double fontSize = 16;
var toast = Toast.Make(e, duration, fontSize); var toast = Toast.Make(e, duration, fontSize);
await toast.Show(cts.Token); await toast.Show(cts.Token);
}); });
@@ -77,13 +65,4 @@ public partial class StundenPage : ContentPage {
await Navigation.PushAsync(new LoginPage()); await Navigation.PushAsync(new LoginPage());
} }
private void OnPageSizeChanged(object sender, EventArgs e) {
double windowHeight = this.Height;
AdjustLayout(windowHeight);
}
private void AdjustLayout(double height) {
// Passen Sie Ihre UI-Elemente basierend auf der Fensterh<72>he an
stundeItems.HeightRequest = height - heightValue; //Datepicker Height 50, Monatssummen Height 125, Titel + Navigation Height xyz
}
} }