[#10] MemberAdminWindow: Add tooltip for delivieries
This commit is contained in:
@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user