[#10] MemberAdminWindow: Add tooltip for delivieries

This commit is contained in:
2024-07-04 19:29:00 +02:00
parent 60359935a4
commit cf1e975d8e
4 changed files with 84 additions and 29 deletions

View File

@ -147,12 +147,12 @@ namespace Elwig.Windows {
MemberList.ScrollIntoView(MemberList.SelectedItem);
}
private void RefreshInputs(bool validate = false) {
private async Task RefreshInputs(bool validate = false) {
ClearInputStates();
if (ViewModel.SelectedMember is Member m) {
EditMemberButton.IsEnabled = true;
DeleteMemberButton.IsEnabled = true;
FillInputs(m);
await FillInputs(m);
} else {
EditMemberButton.IsEnabled = false;
DeleteMemberButton.IsEnabled = false;
@ -224,8 +224,31 @@ namespace Elwig.Windows {
}
await RefreshList();
ViewModel.StatusMembers = $"Mitglieder: {await ctx.Members.CountAsync(m => m.IsActive):N0} ({await ctx.Members.CountAsync():N0})";
ViewModel.StatusBusinessShares = $"Geschäftsanteile: {await ctx.Members.Where(m => m.IsActive).SumAsync(m => m.BusinessShares):N0} ({await ctx.Members.SumAsync(m => m.BusinessShares):N0})";
var (s1, s2) = ('\u2007', '\u202f');
var mA = $"{await ctx.Members.CountAsync(m => m.IsActive):N0}";
var mI = $"{await ctx.Members.CountAsync(m => !m.IsActive):N0}";
var mT = $"{await ctx.Members.CountAsync():N0}";
var mM = Math.Max(mA.Length, Math.Max(mI.Length, mT.Length));
var mS = mM > 3;
if (mS) mM--;
ViewModel.StatusMembers = $"{mA} ({mT})";
ViewModel.StatusMembersToolTip =
$"{new string(s1, Math.Max(0, mM - mA.Length))}{(mS && mA.Length < 4 ? s2 : "")}{mA} aktive Mitglieder\n" +
$"{new string(s1, Math.Max(0, mM - mI.Length))}{(mS && mI.Length < 4 ? s2 : "")}{mI} nicht aktive Mitglieder\n" +
$"{new string(s1, Math.Max(0, mM - mT.Length))}{(mS && mT.Length < 4 ? s2 : "")}{mT} Mitglieder gesamt";
var bA = $"{await ctx.Members.Where(m => m.IsActive).SumAsync(m => m.BusinessShares):N0}";
var bI = $"{await ctx.Members.Where(m => !m.IsActive).SumAsync(m => m.BusinessShares):N0}";
var bT = $"{await ctx.Members.SumAsync(m => m.BusinessShares):N0}";
var bM = Math.Max(bA.Length, Math.Max(bI.Length, bT.Length));
var bS = bM > 3;
if (bS) bM--;
ViewModel.StatusBusinessShares = $"{bA} ({bT})";
ViewModel.StatusBusinessSharesToolTip =
$"{new string(s1, Math.Max(0, bM - bA.Length))}{(bS && bA.Length < 4 ? s2 : "")}{bA} Geschäftsanteile von aktiven Mitgliedern\n" +
$"{new string(s1, Math.Max(0, bM - bI.Length))}{(bS && bI.Length < 4 ? s2 : "")}{bI} Geschäftsanteile von nicht aktiven Mitgliedern\n" +
$"{new string(s1, Math.Max(0, bM - bT.Length))}{(bS && bT.Length < 4 ? s2 : "")}{bT} Geschäftsanteile gesamt";
}
private void SetPhoneNrInputVisible(int nr, bool visible, int? position = null) {
@ -254,8 +277,8 @@ namespace Elwig.Windows {
inputs.Address.Visibility = vis;
}
private void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
RefreshInputs();
private async void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
await RefreshInputs();
}
private async void ActiveMemberInput_Changed(object sender, RoutedEventArgs evt) {
@ -373,7 +396,7 @@ namespace Elwig.Windows {
ViewModel.EnableSearchInputs = true;
FinishInputFilling();
await RefreshList();
RefreshInputs();
await RefreshInputs();
ViewModel.SearchQuery = "";
if (mgnr is int m)
FocusMember(m);
@ -385,11 +408,11 @@ namespace Elwig.Windows {
ResetButton_Click(null, null);
}
private void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
private async void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
ViewModel.TransferPredecessorAreaComs = null;
ViewModel.CancelAreaComs = null;
if (IsEditing) {
RefreshInputs();
await RefreshInputs();
} else if (IsCreating) {
ClearInputs();
InitInputs();
@ -397,7 +420,7 @@ namespace Elwig.Windows {
UpdateButtons();
}
private void CancelButton_Click(object sender, RoutedEventArgs evt) {
private async void CancelButton_Click(object sender, RoutedEventArgs evt) {
IsEditing = false;
IsCreating = false;
MemberList.IsEnabled = true;
@ -405,7 +428,7 @@ namespace Elwig.Windows {
ViewModel.CancelAreaComs = null;
HideSaveResetCancelButtons();
ShowNewEditDeleteButtons();
RefreshInputs();
await RefreshInputs();
LockInputs();
UpdateContactInfoVisibility();
ViewModel.EnableSearchInputs = true;
@ -616,10 +639,10 @@ namespace Elwig.Windows {
}
}
private void FillInputs(Member m) {
private async Task FillInputs(Member m) {
ClearOriginalValues();
ClearDefaultValues();
ViewModel.FillInputs(m);
await ViewModel.FillInputs(m);
UpdateContactInfoVisibility(IsEditing || IsCreating);
FinishInputFilling();
}