Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f9e3f622a | |||
| 54ed791c5b | |||
| c88bf148d4 | |||
| 1a8eeec85d | |||
| 1b4f73a913 | |||
| 2f0be4cc5c | |||
| 21af63c02c | |||
| c4fdc266b5 | |||
| 6d6eaf836b | |||
| 67d662a0a7 |
@@ -5,13 +5,11 @@
|
||||
/// </summary>
|
||||
public partial class App : Application {
|
||||
|
||||
/// <summary>
|
||||
/// Initialisiert eine neue Instanz der <see cref="App"/>-Klasse.
|
||||
/// </summary>
|
||||
public App() {
|
||||
InitializeComponent();
|
||||
|
||||
MainPage = new AppShell();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initialisiert eine neue Instanz der <see cref="App"/>-Klasse.
|
||||
/// </summary>
|
||||
public App() {
|
||||
InitializeComponent();
|
||||
MainPage = new AppShell();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
|
||||
|
||||
<!-- Versions -->
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion>
|
||||
@@ -39,14 +39,14 @@
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
<PackageIcon>paket_icon.png</PackageIcon>
|
||||
<NeutralLanguage>de</NeutralLanguage>
|
||||
<PackageVersion>1.0.7</PackageVersion>
|
||||
<PackageVersion>1.0.8</PackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-maccatalyst|AnyCPU'">
|
||||
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<Optimize>False</Optimize>
|
||||
<Deterministic>True</Deterministic>
|
||||
</PropertyGroup>
|
||||
@@ -54,8 +54,8 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
|
||||
<Optimize>True</Optimize>
|
||||
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<Deterministic>True</Deterministic>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<Optimize>False</Optimize>
|
||||
<Deterministic>True</Deterministic>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<AndroidKeyStore>False</AndroidKeyStore>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -76,8 +76,8 @@
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-windows10.0.26100.0|AnyCPU'">
|
||||
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<DefineConstants>$(DefineConstants);DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION</DefineConstants>
|
||||
<Deterministic>True</Deterministic>
|
||||
<Optimize>False</Optimize>
|
||||
@@ -89,8 +89,8 @@
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<Optimize>True</Optimize>
|
||||
<Deterministic>True</Deterministic>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<RunAOTCompilation>False</RunAOTCompilation>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<AndroidKeyStore>False</AndroidKeyStore>
|
||||
@@ -98,8 +98,8 @@
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-windows10.0.26100.0|AnyCPU'">
|
||||
<ApplicationId>com.companyname.jugenddienststunden</ApplicationId>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<Optimize>True</Optimize>
|
||||
<Deterministic>True</Deterministic>
|
||||
</PropertyGroup>
|
||||
@@ -109,42 +109,46 @@
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AssemblyVersion>1.0.7</AssemblyVersion>
|
||||
<FileVersion>1.0.7</FileVersion>
|
||||
<AssemblyVersion>1.0.8</AssemblyVersion>
|
||||
<FileVersion>1.0.8</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-android|AnyCPU'">
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-android|AnyCPU'">
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
|
||||
<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>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-windows10.0.19041.0|AnyCPU'">
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-android35.0|AnyCPU'">
|
||||
<WarningLevel>8</WarningLevel>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<EnableLLVM>True</EnableLLVM>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-android35.0|AnyCPU'">
|
||||
<WarningLevel>8</WarningLevel>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
<EnableLLVM>True</EnableLLVM>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<AndroidEnableProfiledAot>False</AndroidEnableProfiledAot>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-ios|AnyCPU'">
|
||||
@@ -159,16 +163,16 @@
|
||||
<WarningLevel>8</WarningLevel>
|
||||
<NoWarn>1701;1702</NoWarn>
|
||||
<WarningsAsErrors>$(WarningsAsErrors);NU1605</WarningsAsErrors>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-windows10.0.26100.0|AnyCPU'">
|
||||
<WarningLevel>8</WarningLevel>
|
||||
<NoWarn>1701;1702</NoWarn>
|
||||
<WarningsAsErrors>$(WarningsAsErrors);NU1605</WarningsAsErrors>
|
||||
<ApplicationDisplayVersion>1.0.7</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>8</ApplicationVersion>
|
||||
<ApplicationDisplayVersion>1.0.8</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>9</ApplicationVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -9,13 +9,15 @@ namespace Jugenddienst_Stunden;
|
||||
/// Das Hauptprogramm.
|
||||
/// </summary>
|
||||
public static class MauiProgram {
|
||||
|
||||
|
||||
public static MauiApp CreateMauiApp() {
|
||||
var builder = MauiApp.CreateBuilder();
|
||||
builder
|
||||
.UseMauiApp<App>()
|
||||
// Initialize the .NET MAUI Community Toolkit by adding the below line of code
|
||||
.UseMauiCommunityToolkit()
|
||||
.UseMauiCommunityToolkit(options => {
|
||||
options.SetShouldEnableSnackbarOnWindows(true);
|
||||
})
|
||||
.ConfigureFonts(fonts => {
|
||||
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
|
||||
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
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" />
|
||||
|
||||
@@ -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:SplashScreen Image="Resources\Windows\Splash\$placeholder$.png" BackgroundColor="#F7931D"/>
|
||||
</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>
|
||||
</Applications>
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
<!-- Note: For Android please see also Platforms\Android\Resources\values\colors.xml -->
|
||||
|
||||
<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="Secondary">#DFD8F7</Color>
|
||||
<Color x:Key="SecondaryDarkText">#9880e5</Color>
|
||||
<Color x:Key="SecondaryDarkText">#EC8A16</Color>
|
||||
<Color x:Key="Tertiary">#2B0B98</Color>
|
||||
|
||||
<Color x:Key="TransparentColor">Transparent</Color>
|
||||
|
||||
@@ -30,4 +30,9 @@ public class Settings {
|
||||
public List<Freistellung>? Freistellungen { get; set; }
|
||||
|
||||
public List<Sollstunden> Nominal { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Version der API
|
||||
/// </summary>
|
||||
public string Version { get; set; }
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Runtime.CompilerServices;
|
||||
using System.Windows.Input;
|
||||
using CommunityToolkit.Maui.Alerts;
|
||||
using CommunityToolkit.Maui.Core;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
|
||||
namespace Jugenddienst_Stunden.ViewModels;
|
||||
@@ -83,7 +84,7 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
||||
set {
|
||||
if (dateToday != value) {
|
||||
dateToday = value;
|
||||
LoadOverview = "Lade Summen für " + dateToday.ToString("MMMM");
|
||||
LoadOverview = "Lade Summen für " + dateToday.ToString("MMMM yy");
|
||||
//OnPropertyChanged();
|
||||
Task.Run(() => LoadDay(value));
|
||||
}
|
||||
@@ -118,6 +119,13 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
||||
get => Hours.overtime_month;
|
||||
}
|
||||
|
||||
public int Zeitausgleich {
|
||||
get => Hours.zeitausgleich;
|
||||
}
|
||||
public int ZeitausgleichMonth {
|
||||
get => Hours.zeitausgleich_month;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Monatsübersicht: Resturlaub
|
||||
/// </summary>
|
||||
@@ -193,8 +201,13 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
||||
/// </summary>
|
||||
private async Task LoadData() {
|
||||
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;
|
||||
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();
|
||||
RefreshProperties();
|
||||
} catch (Exception e) {
|
||||
@@ -217,12 +230,10 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
||||
Settings = dat.settings;
|
||||
GemeindeAktivSet = Settings.GemeindeAktivSet;
|
||||
ProjektAktivSet = Settings.ProjektAktivSet;
|
||||
|
||||
|
||||
OnPropertyChanged(nameof(GemeindeAktivSet));
|
||||
OnPropertyChanged(nameof(ProjektAktivSet));
|
||||
|
||||
|
||||
List<Sollstunden> _soll;
|
||||
TimeSpan span = TimeSpan.Zero;
|
||||
bool merker = false;
|
||||
@@ -249,7 +260,10 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
||||
} catch (Exception e) {
|
||||
DayTimes = new List<DayTime>();
|
||||
//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 {
|
||||
OnPropertyChanged(nameof(DayTotal));
|
||||
OnPropertyChanged(nameof(Sollstunden));
|
||||
@@ -257,7 +271,6 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
||||
OnPropertyChanged(nameof(LoadOverview));
|
||||
//OnPropertyChanged(nameof(DayTimes));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async void IQueryAttributable.ApplyQueryAttributes(IDictionary<string, object> query) {
|
||||
@@ -285,6 +298,7 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
||||
OnPropertyChanged(nameof(Nominal));
|
||||
OnPropertyChanged(nameof(Overtime));
|
||||
OnPropertyChanged(nameof(OvertimeMonth));
|
||||
OnPropertyChanged(nameof(Zeitausgleich));
|
||||
OnPropertyChanged(nameof(ZeitCalculated));
|
||||
OnPropertyChanged(nameof(Holiday));
|
||||
OnPropertyChanged(nameof(Hours));
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
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"
|
||||
x:Class="Jugenddienst_Stunden.Views.AllNotesPage"
|
||||
Title="Deine Notizen"
|
||||
@@ -15,6 +16,12 @@
|
||||
<ToolbarItem Text="Neue Notiz" Command="{Binding NewCommand}" IconImageSource="{FontImage Glyph='+', Color=Black, Size=22}" />
|
||||
</ContentPage.ToolbarItems>
|
||||
|
||||
<ContentPage.Behaviors>
|
||||
<toolkit:StatusBarBehavior
|
||||
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
|
||||
StatusBarStyle="LightContent" />
|
||||
</ContentPage.Behaviors>
|
||||
|
||||
<VerticalStackLayout Margin="20,0,0,0">
|
||||
<Label Text="Werden nur lokal gespeichert"/>
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
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:zxing="clr-namespace:ZXing.Net.Maui.Controls;assembly=ZXing.Net.MAUI.Controls"
|
||||
xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter"
|
||||
@@ -18,44 +19,50 @@
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<ContentPage.Behaviors>
|
||||
<toolkit:StatusBarBehavior
|
||||
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
|
||||
StatusBarStyle="LightContent" />
|
||||
</ContentPage.Behaviors>
|
||||
|
||||
<ScrollView>
|
||||
<VerticalStackLayout Spacing="10" Margin="15,0">
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<HorizontalStackLayout Spacing="10" HorizontalOptions="Start" Grid.Column="0">
|
||||
<Label FontSize="22" FontAttributes="Bold" Text="{Binding AppTitle}" Margin="0,4,0,0" />
|
||||
<Label FontSize="22" Text="{Binding Version}" Margin="0,4,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 Spacing="5" HorizontalOptions="Start" Grid.Column="0">
|
||||
<Label FontSize="20" FontAttributes="Bold" Text="{Binding AppTitle}" Margin="0,7,0,0" />
|
||||
<Label FontSize="16" Text="{Binding Version}" Margin="0,11,0,0" />
|
||||
</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>
|
||||
|
||||
<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 x:Name="Message" Text="{Binding Message}" Margin="0,15" />
|
||||
|
||||
<Border HeightRequest="300" Padding="0">
|
||||
<zxing:CameraBarcodeReaderView x:Name="barcodeScannerView"
|
||||
BarcodesDetected="BarcodesDetected"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand"/>
|
||||
<zxing:CameraBarcodeReaderView
|
||||
x:Name="barcodeScannerView"
|
||||
BarcodesDetected="BarcodesDetected"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand"/>
|
||||
</Border>
|
||||
</VerticalStackLayout>
|
||||
|
||||
<VerticalStackLayout x:Name="LoginManual" Spacing="15">
|
||||
<Label Text="Manueller Login" FontSize="32" HorizontalOptions="Start" />
|
||||
<Entry x:Name="UsernameEntry" Placeholder="Benutzername" Keyboard="Email" />
|
||||
<VerticalStackLayout x:Name="LoginManual" Spacing="25">
|
||||
<Label Text="Manueller Login" FontSize="32" HorizontalOptions="Start" Margin="0, 20, 0, 0" />
|
||||
<Entry x:Name="UsernameEntry" Placeholder="Benutzername (Mailadresse)" Keyboard="Email" />
|
||||
<Entry x:Name="PasswordEntry" Placeholder="Passwort" IsPassword="True" />
|
||||
<Entry x:Name="ServerEntry" Placeholder="Server" Keyboard="Url" />
|
||||
<Button Text="Login" Clicked="OnLoginButtonClicked" />
|
||||
<Entry x:Name="ServerEntry" Placeholder="Server (gleich wie im Browser)" Keyboard="Url" />
|
||||
<Button Text="Login" Clicked="OnLoginButtonClicked" TextColor="{AppThemeBinding Dark={StaticResource White}, Light={StaticResource White}}" />
|
||||
</VerticalStackLayout>
|
||||
</VerticalStackLayout>
|
||||
|
||||
|
||||
@@ -1,12 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
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"
|
||||
x:Class="Jugenddienst_Stunden.Views.NotePage"
|
||||
Title="Notiz">
|
||||
|
||||
<ContentPage.BindingContext>
|
||||
<viewModels:NoteViewModel />
|
||||
</ContentPage.BindingContext>
|
||||
|
||||
<ContentPage.Behaviors>
|
||||
<toolkit:StatusBarBehavior
|
||||
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
|
||||
StatusBarStyle="LightContent" />
|
||||
</ContentPage.Behaviors>
|
||||
|
||||
<VerticalStackLayout Spacing="10" Margin="5">
|
||||
<Editor x:Name="TextEditor"
|
||||
Placeholder="Gib deine Notiz ein"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
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:conv="clr-namespace:Jugenddienst_Stunden.Converter"
|
||||
x:Class="Jugenddienst_Stunden.Views.StundePage"
|
||||
@@ -17,6 +18,12 @@
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<ContentPage.Behaviors>
|
||||
<toolkit:StatusBarBehavior
|
||||
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
|
||||
StatusBarStyle="LightContent" />
|
||||
</ContentPage.Behaviors>
|
||||
|
||||
<VerticalStackLayout Spacing="10" Margin="10">
|
||||
|
||||
<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" />
|
||||
|
||||
<Grid ColumnDefinitions="*,*" ColumnSpacing="4">
|
||||
<Button Text="Speichern" Command="{Binding SaveCommand}" />
|
||||
<Button Grid.Column="1" Text="Löschen" Command="{Binding DeleteConfirmCommand}" IsEnabled="{Binding DayTime.Id, Converter={StaticResource IntBoolConverter}}" IsVisible="{Binding FreistellungEnabled}" />
|
||||
<Button Grid.Column="1" Text="Speichern"
|
||||
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>
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
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:models="clr-namespace:Jugenddienst_Stunden.ViewModels"
|
||||
xmlns:conv="clr-namespace:Jugenddienst_Stunden.Converter"
|
||||
@@ -21,17 +22,22 @@
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<ContentPage.Behaviors>
|
||||
<toolkit:StatusBarBehavior
|
||||
StatusBarColor="{AppThemeBinding Dark={StaticResource OffBlack}, Light={StaticResource Primary}}"
|
||||
StatusBarStyle="LightContent" />
|
||||
</ContentPage.Behaviors>
|
||||
|
||||
<ContentPage.ToolbarItems>
|
||||
<!--<ToolbarItem Text="Lade Liste" Command="{Binding RefreshListCommand}"/>-->
|
||||
<ToolbarItem Text="Neuer Eintrag" IconImageSource="{StaticResource ToolbarIcon}" Command="{Binding NewEntryCommand}" />
|
||||
|
||||
</ContentPage.ToolbarItems>
|
||||
|
||||
<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}"
|
||||
MaximumDate="{Binding MaximumDate}"
|
||||
Date="{Binding DateToday}" Format="dddd, d. MMMM yyyy" />
|
||||
@@ -46,11 +52,13 @@
|
||||
|
||||
<CollectionView
|
||||
ItemsSource="{Binding DayTimes}"
|
||||
x:Name="stundeItems" Margin="0"
|
||||
HeightRequest="300"
|
||||
x:Name="stundeItems" Margin="0,0,0,20"
|
||||
|
||||
SelectionMode="Single"
|
||||
SelectionChangedCommand="{Binding SelectEntryCommand}"
|
||||
SelectionChangedCommandParameter="{Binding Source={RelativeSource Self}, Path=SelectedItem}">
|
||||
SelectionChangedCommandParameter="{Binding Source={RelativeSource Self}, Path=SelectedItem}"
|
||||
VerticalOptions="Start"
|
||||
Grid.Row="1">
|
||||
|
||||
<CollectionView.ItemsLayout>
|
||||
<LinearItemsLayout Orientation="Vertical" ItemSpacing="0" />
|
||||
@@ -109,28 +117,33 @@
|
||||
</CollectionView.ItemTemplate>
|
||||
|
||||
</CollectionView>
|
||||
|
||||
<BoxView HeightRequest="1" />
|
||||
|
||||
<Button Text="{Binding LoadOverview}" Command="{Binding LoadDataCommand}" />
|
||||
<Border Padding="2" HeightRequest="125">
|
||||
<Grid RowDefinitions="Auto,Auto,Auto,Auto,Auto,*" ColumnDefinitions="Auto,*" Margin="10,2">
|
||||
|
||||
<!--<BoxView HeightRequest="1" Grid.Row="2" Margin="0,5,0,15" />-->
|
||||
<Button Text="{Binding LoadOverview}"
|
||||
Grid.Row="2"
|
||||
Command="{Binding LoadDataCommand}"
|
||||
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="1" Text="Summe:" />
|
||||
<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"/>
|
||||
<Label Grid.Row="4" Text="Restüberstunden:" />
|
||||
<Label Grid.Row="5" Text="Resturlaub:" />
|
||||
<!--<BoxView Grid.Row="3" Grid.ColumnSpan="4" HeightRequest="1" Color="LightGrey" Margin="0,5"/>-->
|
||||
<Label Grid.Row="0" Grid.Column="2" Text="Restüberstunden:" Margin="15,0,0,0" />
|
||||
<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="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="4" Grid.Column="1" 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="0" Grid.Column="3" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Overtime, 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>
|
||||
</Border>
|
||||
|
||||
</VerticalStackLayout>
|
||||
|
||||
</Grid>
|
||||
<!--</VerticalStackLayout>-->
|
||||
|
||||
</RefreshView>
|
||||
</ContentPage>
|
||||
@@ -10,8 +10,6 @@ namespace Jugenddienst_Stunden.Views;
|
||||
/// </summary>
|
||||
public partial class StundenPage : ContentPage {
|
||||
|
||||
private int heightValue = 300;
|
||||
|
||||
/// <summary>
|
||||
/// CTOR
|
||||
/// </summary>
|
||||
@@ -25,17 +23,7 @@ public partial class StundenPage : ContentPage {
|
||||
if (!CheckLogin()) {
|
||||
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) {
|
||||
@@ -55,7 +43,7 @@ public partial class StundenPage : ContentPage {
|
||||
MainThread.BeginInvokeOnMainThread(async () => {
|
||||
CancellationTokenSource cts = new CancellationTokenSource();
|
||||
ToastDuration duration = ToastDuration.Short;
|
||||
double fontSize = 20;
|
||||
double fontSize = 16;
|
||||
var toast = Toast.Make(e, duration, fontSize);
|
||||
await toast.Show(cts.Token);
|
||||
});
|
||||
@@ -77,13 +65,4 @@ public partial class StundenPage : ContentPage {
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user