From e690ab73832971060c5c9d4348f2511647a54e9c Mon Sep 17 00:00:00 2001 From: Frede Hundewadt <22748698+fhdk@users.noreply.github.com> Date: Thu, 17 Mar 2022 19:08:36 +0100 Subject: [PATCH] UserPreference for list views --- ...lumn.razor => CompanySearchDropdown.razor} | 3 +- ...azor.cs => CompanySearchDropdown.razor.cs} | 34 +++++++---- .../Components/CompanySortColumn.razor.cs | 40 ------------- ...Column.razor => CompanySortDropdown.razor} | 2 +- .../Components/CompanySortDropdown.razor.cs | 59 +++++++++++++++++++ ...upFilter.razor => ItemGroupDropdown.razor} | 0 ...er.razor.cs => ItemGroupDropdown.razor.cs} | 28 +++++---- ...hColumn.razor => ItemSearchDropdown.razor} | 0 ...n.razor.cs => ItemSearchDropdown.razor.cs} | 17 +++--- ...ortColumn.razor => ItemSortDropdown.razor} | 0 ...umn.razor.cs => ItemSortDropdown.razor.cs} | 17 +++--- ...eDropDown.razor => PageSizeDropdown.razor} | 0 ...own.razor.cs => PageSizeDropdown.razor.cs} | 17 +++--- ...n.razor.css => PageSizeDropdown.razor.css} | 0 Wonky.Client/Components/SearchPhrase.razor.cs | 4 +- .../HttpRepository/CompanyHttpRepository.cs | 10 ++-- .../HttpRepository/SalesItemHttpRepository.cs | 2 +- Wonky.Client/Pages/CompanyList.razor | 19 ++++-- Wonky.Client/Pages/CompanyList.razor.cs | 20 ++++--- Wonky.Client/Pages/DraftDocument.razor | 6 +- Wonky.Client/Pages/DraftDocument.razor.cs | 13 ++-- Wonky.Client/Pages/SalesItemCatalog.razor | 25 +++++--- Wonky.Client/Pages/SalesItemCatalog.razor.cs | 16 +++-- Wonky.Client/Program.cs | 1 + ...ileService.cs => UserPreferenceService.cs} | 48 ++++----------- Wonky.Client/Shared/NavMenu.razor | 5 -- 26 files changed, 216 insertions(+), 170 deletions(-) rename Wonky.Client/Components/{CompanySearchColumn.razor => CompanySearchDropdown.razor} (88%) rename Wonky.Client/Components/{CompanySearchColumn.razor.cs => CompanySearchDropdown.razor.cs} (56%) delete mode 100644 Wonky.Client/Components/CompanySortColumn.razor.cs rename Wonky.Client/Components/{CompanySortColumn.razor => CompanySortDropdown.razor} (88%) create mode 100644 Wonky.Client/Components/CompanySortDropdown.razor.cs rename Wonky.Client/Components/{ItemGroupFilter.razor => ItemGroupDropdown.razor} (100%) rename Wonky.Client/Components/{ItemGroupFilter.razor.cs => ItemGroupDropdown.razor.cs} (61%) rename Wonky.Client/Components/{ItemSearchColumn.razor => ItemSearchDropdown.razor} (100%) rename Wonky.Client/Components/{ItemSearchColumn.razor.cs => ItemSearchDropdown.razor.cs} (74%) rename Wonky.Client/Components/{ItemSortColumn.razor => ItemSortDropdown.razor} (100%) rename Wonky.Client/Components/{ItemSortColumn.razor.cs => ItemSortDropdown.razor.cs} (73%) rename Wonky.Client/Components/{PageSizeDropDown.razor => PageSizeDropdown.razor} (100%) rename Wonky.Client/Components/{PageSizeDropDown.razor.cs => PageSizeDropdown.razor.cs} (74%) rename Wonky.Client/Components/{PageSizeDropDown.razor.css => PageSizeDropdown.razor.css} (100%) rename Wonky.Client/Services/{ProfileService.cs => UserPreferenceService.cs} (55%) diff --git a/Wonky.Client/Components/CompanySearchColumn.razor b/Wonky.Client/Components/CompanySearchDropdown.razor similarity index 88% rename from Wonky.Client/Components/CompanySearchColumn.razor rename to Wonky.Client/Components/CompanySearchDropdown.razor index ab435c64..3b524c98 100644 --- a/Wonky.Client/Components/CompanySearchColumn.razor +++ b/Wonky.Client/Components/CompanySearchDropdown.razor @@ -14,8 +14,7 @@ // along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] // *@ - - @foreach (var (key, value) in Items) { diff --git a/Wonky.Client/Components/CompanySearchColumn.razor.cs b/Wonky.Client/Components/CompanySearchDropdown.razor.cs similarity index 56% rename from Wonky.Client/Components/CompanySearchColumn.razor.cs rename to Wonky.Client/Components/CompanySearchDropdown.razor.cs index ec48184c..faa930f5 100644 --- a/Wonky.Client/Components/CompanySearchColumn.razor.cs +++ b/Wonky.Client/Components/CompanySearchDropdown.razor.cs @@ -18,30 +18,42 @@ using System.Security.AccessControl; using Blazored.LocalStorage; using Microsoft.AspNetCore.Components; +using Wonky.Client.Services; namespace Wonky.Client.Components; -public partial class CompanySearchColumn +public partial class CompanySearchDropdown : IDisposable { [Inject] private ILocalStorageService LocalStorage { get; set; } - [Parameter] public EventCallback OnColumnChanged { get; set; } - private string SearchColumn { get; set; } + [Inject] private UserPreferenceService UserPreferenceService { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } private Dictionary Items { get; set; } = new(); + private Preferences _preferences = new(); + private string? Selection { get; set; } protected override async Task OnInitializedAsync() { - var value = await LocalStorage.GetItemAsStringAsync("UserCompanySearch"); - var y = string.IsNullOrWhiteSpace(value) ? "name" : value.Replace("\"", ""); - + UserPreferenceService.OnChange += ProfileServiceOnOnChange; + _preferences = await UserPreferenceService.GetPreferences(); + Items.Add("name", "Firmanavn"); Items.Add("account", "Konto"); Items.Add("city", "Bynavn"); Items.Add("zipCode", "Postnr"); Items.Add("phone", "Telefon"); - - SearchColumn = (from x in Items where x.Key == y select x.Value).First(); + Selection = (from x in Items where x.Key == _preferences.CompanySearch select x.Key).First(); } - private async Task OnSearchColumnChange(ChangeEventArgs eventArgs) + private async Task OnSelectionChanged(ChangeEventArgs e) { - await OnColumnChanged.InvokeAsync(SearchColumn); + var val = e.Value.ToString(); + await OnChanged.InvokeAsync(val); + await UserPreferenceService.SetCompanySearch(val); } -} \ No newline at end of file + private void ProfileServiceOnOnChange(Preferences newPreferences) + { + _preferences = newPreferences; + StateHasChanged(); + } + public void Dispose() + { + UserPreferenceService.OnChange -= ProfileServiceOnOnChange; + } } \ No newline at end of file diff --git a/Wonky.Client/Components/CompanySortColumn.razor.cs b/Wonky.Client/Components/CompanySortColumn.razor.cs deleted file mode 100644 index 79848c67..00000000 --- a/Wonky.Client/Components/CompanySortColumn.razor.cs +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the Affero GNU General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// Affero GNU General Public License for more details. -// -// You should have received a copy of the Affero GNU General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// - - -using Blazored.LocalStorage; -using Microsoft.AspNetCore.Components; - -namespace Wonky.Client.Components -{ - public partial class CompanySortColumn - { - [Parameter] public EventCallback OnSortChanged { get; set; } - private string SortColumn { get; set; } = "name"; - private Dictionary Items { get; set; } = new(); - protected override void OnInitialized() - { - Items.Add("name", "Firmanavn"); - Items.Add("account", "Konto"); - Items.Add("city", "Bynavn"); - } - private async Task OnSortColumnChange(ChangeEventArgs eventArgs) - { - await OnSortChanged.InvokeAsync(SortColumn); - } - } -} - diff --git a/Wonky.Client/Components/CompanySortColumn.razor b/Wonky.Client/Components/CompanySortDropdown.razor similarity index 88% rename from Wonky.Client/Components/CompanySortColumn.razor rename to Wonky.Client/Components/CompanySortDropdown.razor index 23be7f9b..fca59eb7 100644 --- a/Wonky.Client/Components/CompanySortColumn.razor +++ b/Wonky.Client/Components/CompanySortDropdown.razor @@ -15,7 +15,7 @@ // *@ - @foreach (var (key, value) in Items) { diff --git a/Wonky.Client/Components/CompanySortDropdown.razor.cs b/Wonky.Client/Components/CompanySortDropdown.razor.cs new file mode 100644 index 00000000..17eefcaa --- /dev/null +++ b/Wonky.Client/Components/CompanySortDropdown.razor.cs @@ -0,0 +1,59 @@ + +// Copyright (C) 2022 FCS Frede's Computer Services. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the Affero GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Affero GNU General Public License for more details. +// +// You should have received a copy of the Affero GNU General Public License +// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] +// + + +using Blazored.LocalStorage; +using Microsoft.AspNetCore.Components; +using Wonky.Client.Services; + +namespace Wonky.Client.Components +{ + public partial class CompanySortDropdown : IDisposable + { + [Inject] private ILocalStorageService LocalStorage { get; set; } + [Inject] private UserPreferenceService UserPreferenceService { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } + private Dictionary Items { get; set; } = new(); + private Preferences _preferences = new(); + private string? Selection { get; set; } + protected override async Task OnInitializedAsync() + { + UserPreferenceService.OnChange += ProfileServiceOnOnChange; + _preferences = await UserPreferenceService.GetPreferences(); + + Items.Add("name", "Firmanavn"); + Items.Add("account", "Konto"); + Items.Add("city", "Bynavn"); + Selection = (from x in Items where x.Key == _preferences.CompanySort select x.Key).First(); + } + private async Task OnSelectionChanged(ChangeEventArgs e) + { + var val = e.Value.ToString(); + await OnChanged.InvokeAsync(val); + await UserPreferenceService.SetCompanySort(val); + } + private void ProfileServiceOnOnChange(Preferences newPreferences) + { + _preferences = newPreferences; + StateHasChanged(); + } + public void Dispose() + { + UserPreferenceService.OnChange -= ProfileServiceOnOnChange; + } + } +} + diff --git a/Wonky.Client/Components/ItemGroupFilter.razor b/Wonky.Client/Components/ItemGroupDropdown.razor similarity index 100% rename from Wonky.Client/Components/ItemGroupFilter.razor rename to Wonky.Client/Components/ItemGroupDropdown.razor diff --git a/Wonky.Client/Components/ItemGroupFilter.razor.cs b/Wonky.Client/Components/ItemGroupDropdown.razor.cs similarity index 61% rename from Wonky.Client/Components/ItemGroupFilter.razor.cs rename to Wonky.Client/Components/ItemGroupDropdown.razor.cs index fa8d9127..0923b544 100644 --- a/Wonky.Client/Components/ItemGroupFilter.razor.cs +++ b/Wonky.Client/Components/ItemGroupDropdown.razor.cs @@ -20,26 +20,32 @@ using Wonky.Client.Services; namespace Wonky.Client.Components; -public partial class ItemGroupFilter +public partial class ItemGroupDropdown : IDisposable { [Inject] private ILocalStorageService LocalStorage { get; set; } - [Inject] private ProfileService ProfileService { get; set; } + [Inject] private UserPreferenceService UserPreferenceService { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } private Dictionary Items { get; set; } = new(); private Preferences _preferences = new(); - private string Selection { get; set; } = "all"; + private string Selection { get; set; } protected override async Task OnInitializedAsync() { - ProfileService.OnChange += ProfileServiceOnOnChange; - _preferences = await ProfileService.GetPreferences(); + UserPreferenceService.OnChange += ProfileServiceOnOnChange; + _preferences = await UserPreferenceService.GetPreferences(); - Items.Add("name", "Varenavn"); - Items.Add("sku", "Varenr"); - Selection = (from x in Items where x.Key == _preferences.ItemGroup select x.Value).First(); + Items.Add("0", "Alle"); + Items.Add("1", "Lim Sealer Reparation"); + Items.Add("2", "Grunder Maling"); + Items.Add("3", "Smøremidler"); + Items.Add("4", "Rens Polish"); + Items.Add("5", "Tape Selvklæbende"); + Items.Add("6", "Tilbehør Diverse"); } - private async Task OnColumnChanged(ChangeEventArgs args) + private async Task OnSelectionChanged(ChangeEventArgs e) { - await ProfileService.SetItemSort(args.Value.ToString()); + var val = e.Value.ToString(); + await OnChanged.InvokeAsync(val); } private void ProfileServiceOnOnChange(Preferences newPreferences) { @@ -48,6 +54,6 @@ public partial class ItemGroupFilter } public void Dispose() { - ProfileService.OnChange -= ProfileServiceOnOnChange; + UserPreferenceService.OnChange -= ProfileServiceOnOnChange; } } \ No newline at end of file diff --git a/Wonky.Client/Components/ItemSearchColumn.razor b/Wonky.Client/Components/ItemSearchDropdown.razor similarity index 100% rename from Wonky.Client/Components/ItemSearchColumn.razor rename to Wonky.Client/Components/ItemSearchDropdown.razor diff --git a/Wonky.Client/Components/ItemSearchColumn.razor.cs b/Wonky.Client/Components/ItemSearchDropdown.razor.cs similarity index 74% rename from Wonky.Client/Components/ItemSearchColumn.razor.cs rename to Wonky.Client/Components/ItemSearchDropdown.razor.cs index 8c619a21..6a0e1109 100644 --- a/Wonky.Client/Components/ItemSearchColumn.razor.cs +++ b/Wonky.Client/Components/ItemSearchDropdown.razor.cs @@ -19,25 +19,28 @@ using Wonky.Client.Services; namespace Wonky.Client.Components; -public partial class ItemSearchColumn +public partial class ItemSearchDropdown : IDisposable { [Inject] private ILocalStorageService LocalStorage { get; set; } - [Inject] private ProfileService ProfileService { get; set; } + [Inject] private UserPreferenceService UserPreferenceService { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } private Dictionary Items { get; set; } = new(); private Preferences _preferences = new(); private string Selection { get; set; } = "name"; protected override async Task OnInitializedAsync() { - ProfileService.OnChange += ProfileServiceOnOnChange; - _preferences = await ProfileService.GetPreferences(); + UserPreferenceService.OnChange += ProfileServiceOnOnChange; + _preferences = await UserPreferenceService.GetPreferences(); Items.Add("name", "Varenavn"); Items.Add("sku", "Varenr"); Items.Add("shortName", "Forkortelse"); - Selection = (from x in Items where x.Key == _preferences.ItemSearch select x.Value).First(); + Selection = (from x in Items where x.Key == _preferences.ItemSearch select x.Key).First(); } private async Task OnSelectChanged(ChangeEventArgs e) { - await ProfileService.SetItemSort(e.Value.ToString()); + var val = e.Value.ToString(); + await OnChanged.InvokeAsync(val); + await UserPreferenceService.SetItemSearch(val); } private void ProfileServiceOnOnChange(Preferences newPreferences) { @@ -46,6 +49,6 @@ public partial class ItemSearchColumn } public void Dispose() { - ProfileService.OnChange -= ProfileServiceOnOnChange; + UserPreferenceService.OnChange -= ProfileServiceOnOnChange; } } \ No newline at end of file diff --git a/Wonky.Client/Components/ItemSortColumn.razor b/Wonky.Client/Components/ItemSortDropdown.razor similarity index 100% rename from Wonky.Client/Components/ItemSortColumn.razor rename to Wonky.Client/Components/ItemSortDropdown.razor diff --git a/Wonky.Client/Components/ItemSortColumn.razor.cs b/Wonky.Client/Components/ItemSortDropdown.razor.cs similarity index 73% rename from Wonky.Client/Components/ItemSortColumn.razor.cs rename to Wonky.Client/Components/ItemSortDropdown.razor.cs index fe820e3f..12f32650 100644 --- a/Wonky.Client/Components/ItemSortColumn.razor.cs +++ b/Wonky.Client/Components/ItemSortDropdown.razor.cs @@ -19,24 +19,27 @@ using Wonky.Client.Services; namespace Wonky.Client.Components; -public partial class ItemSortColumn : IDisposable +public partial class ItemSortDropdown : IDisposable { [Inject] private ILocalStorageService LocalStorage { get; set; } - [Inject] private ProfileService ProfileService { get; set; } + [Inject] private UserPreferenceService UserPreferenceService { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } private Dictionary Items { get; set; } = new(); private Preferences _preferences = new(); private string Selection { get; set; } = "name"; protected override async Task OnInitializedAsync() { - ProfileService.OnChange += ProfileServiceOnOnChange; - _preferences = await ProfileService.GetPreferences(); + UserPreferenceService.OnChange += ProfileServiceOnOnChange; + _preferences = await UserPreferenceService.GetPreferences(); Items.Add("name", "Varenavn"); Items.Add("sku", "Varenr"); - Selection = (from x in Items where x.Key == _preferences.ItemSort select x.Value).First(); + Selection = (from x in Items where x.Key == _preferences.ItemSort select x.Key).First(); } private async Task OnSelectChanged(ChangeEventArgs e) { - await ProfileService.SetItemSort(e.Value.ToString()); + var val = e.Value.ToString(); + await OnChanged.InvokeAsync(val); + await UserPreferenceService.SetItemSort(val); } private void ProfileServiceOnOnChange(Preferences newPreferences) { @@ -45,6 +48,6 @@ public partial class ItemSortColumn : IDisposable } public void Dispose() { - ProfileService.OnChange -= ProfileServiceOnOnChange; + UserPreferenceService.OnChange -= ProfileServiceOnOnChange; } } \ No newline at end of file diff --git a/Wonky.Client/Components/PageSizeDropDown.razor b/Wonky.Client/Components/PageSizeDropdown.razor similarity index 100% rename from Wonky.Client/Components/PageSizeDropDown.razor rename to Wonky.Client/Components/PageSizeDropdown.razor diff --git a/Wonky.Client/Components/PageSizeDropDown.razor.cs b/Wonky.Client/Components/PageSizeDropdown.razor.cs similarity index 74% rename from Wonky.Client/Components/PageSizeDropDown.razor.cs rename to Wonky.Client/Components/PageSizeDropdown.razor.cs index d79f6508..320a0f0e 100644 --- a/Wonky.Client/Components/PageSizeDropDown.razor.cs +++ b/Wonky.Client/Components/PageSizeDropdown.razor.cs @@ -21,28 +21,31 @@ using Wonky.Client.Services; namespace Wonky.Client.Components { - public partial class PageSizeDropDown : IDisposable + public partial class PageSizeDropdown : IDisposable { [Inject] private ILocalStorageService LocalStorage { get; set; } - [Inject] private ProfileService ProfileService { get; set; } + [Inject] private UserPreferenceService UserPreferenceService { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } private Dictionary Items { get; set; } = new(); private Preferences _preferences = new(); private string? Selection { get; set; } protected override async Task OnInitializedAsync() { - ProfileService.OnChange += ProfileServiceOnOnChange; - _preferences = await ProfileService.GetPreferences(); + UserPreferenceService.OnChange += ProfileServiceOnOnChange; + _preferences = await UserPreferenceService.GetPreferences(); Items.Add("5", "5"); Items.Add("10", "10"); Items.Add("15", "15"); Items.Add("30", "30"); Items.Add("50", "50"); - Selection = (from x in Items where x.Key == _preferences.PageSize select x.Value).First(); + Selection = (from x in Items where x.Key == _preferences.PageSize select x.Key).First(); } private async Task OnSelectChanged(ChangeEventArgs e) { - await ProfileService.SetPageSize(e.Value?.ToString()); + var val = e.Value.ToString(); + await OnChanged.InvokeAsync(val); + await UserPreferenceService.SetPageSize(val); } private void ProfileServiceOnOnChange(Preferences newPreferences) { @@ -51,7 +54,7 @@ namespace Wonky.Client.Components } public void Dispose() { - ProfileService.OnChange -= ProfileServiceOnOnChange; + UserPreferenceService.OnChange -= ProfileServiceOnOnChange; } } } diff --git a/Wonky.Client/Components/PageSizeDropDown.razor.css b/Wonky.Client/Components/PageSizeDropdown.razor.css similarity index 100% rename from Wonky.Client/Components/PageSizeDropDown.razor.css rename to Wonky.Client/Components/PageSizeDropdown.razor.css diff --git a/Wonky.Client/Components/SearchPhrase.razor.cs b/Wonky.Client/Components/SearchPhrase.razor.cs index bf7d0fde..174ac397 100644 --- a/Wonky.Client/Components/SearchPhrase.razor.cs +++ b/Wonky.Client/Components/SearchPhrase.razor.cs @@ -23,7 +23,7 @@ namespace Wonky.Client.Components { private Timer _timer = new(); private string SearchTerm { get; set; } = ""; - [Parameter] public EventCallback OnSearchPhraseChanged { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } private void SearchChanged() { @@ -35,7 +35,7 @@ namespace Wonky.Client.Components private void OnTimerElapsed(object? sender, ElapsedEventArgs e) { - OnSearchPhraseChanged.InvokeAsync(SearchTerm); + OnChanged.InvokeAsync(SearchTerm); _timer.Enabled = false; _timer.Dispose(); } diff --git a/Wonky.Client/HttpRepository/CompanyHttpRepository.cs b/Wonky.Client/HttpRepository/CompanyHttpRepository.cs index 63f6af33..1063df6c 100644 --- a/Wonky.Client/HttpRepository/CompanyHttpRepository.cs +++ b/Wonky.Client/HttpRepository/CompanyHttpRepository.cs @@ -81,21 +81,21 @@ public class CompanyHttpRepository : ICompanyHttpRepository public async Task GetCompanyByAccount(string accountNumber) { var company = await _client.GetFromJsonAsync( - $"{_apiConfig.CrmCompanies}/get/account/{accountNumber}"); + $"{_apiConfig.CrmCompanies}/account/{accountNumber}"); return company ?? new CompanyDto(); } public async Task GetCompanyById(string companyId) { var company = await _client.GetFromJsonAsync( - $"{_apiConfig.CrmCompanies}/get/id/{companyId}"); + $"{_apiConfig.CrmCompanies}{companyId}"); return company ?? new CompanyDto(); } public async Task CreateCompany(CompanyDto companyDto) { var response = await _client.PostAsJsonAsync( - $"{_apiConfig.CrmCompanies}/post", companyDto); + $"{_apiConfig.CrmCompanies}", companyDto); var content = await response.Content.ReadAsStringAsync(); var result = JsonSerializer.Deserialize(content); return result.CompanyId; @@ -104,12 +104,12 @@ public class CompanyHttpRepository : ICompanyHttpRepository public async Task UpdateCompany(CompanyDto companyDto) { await _client.PutAsJsonAsync( - $"{_apiConfig.CrmCompanies}/put/id/{companyDto.CompanyId}", companyDto); + $"{_apiConfig.CrmCompanies}/{companyDto.CompanyId}", companyDto); } public async Task DeleteCompany(string companyId) { await _client.DeleteAsync( - $"{_apiConfig.CrmCompanies}/delete/id/{companyId}"); + $"{_apiConfig.CrmCompanies}/{companyId}"); } } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs b/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs index 8afd4960..98be123d 100644 --- a/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs +++ b/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs @@ -60,7 +60,7 @@ public class SalesItemHttpRepository : ISalesItemHttpRepository ["searchTerm"] = pagingParameters.SearchTerm, ["searchColumn"] = pagingParameters.SearchColumn, ["orderBy"] = pagingParameters.OrderBy, - ["selectGroup"] = pagingParameters.SelectGroup + ["selectGroup"] = pagingParameters.SelectGroup == "0" ? "" : pagingParameters.SelectGroup }; var response = await _client .GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.PriceCatalog}/page", queryString)); diff --git a/Wonky.Client/Pages/CompanyList.razor b/Wonky.Client/Pages/CompanyList.razor index b8d932f0..41633c14 100644 --- a/Wonky.Client/Pages/CompanyList.razor +++ b/Wonky.Client/Pages/CompanyList.razor @@ -23,13 +23,22 @@
- +
+ + +
- +
+ + +
- +
+ + +
Nyt firma @@ -40,9 +49,7 @@
- -
-
+
diff --git a/Wonky.Client/Pages/CompanyList.razor.cs b/Wonky.Client/Pages/CompanyList.razor.cs index 17131129..8f941d0a 100644 --- a/Wonky.Client/Pages/CompanyList.razor.cs +++ b/Wonky.Client/Pages/CompanyList.razor.cs @@ -20,6 +20,7 @@ using Blazored.LocalStorage; using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; using Microsoft.AspNetCore.Components; +using Wonky.Client.Services; using Wonky.Entity.DTO; using Wonky.Entity.Requests; @@ -30,16 +31,19 @@ namespace Wonky.Client.Pages public List? Companies { get; set; } = new(); public MetaData? MetaData { get; set; } = new(); private PagingParams _paging = new(); - private string CompanySearch { get; set; } = "name"; - private string CompanySort { get; set; } = "name"; - private string PageSize { get; set; } = "5"; - [Inject] - public ICompanyHttpRepository CompanyRepo { get; set; } + private Preferences _preferences { get; set; } = new(); + [Inject] private UserPreferenceService UserPrefService { get; set; } + [Inject] public ICompanyHttpRepository CompanyRepo { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ILocalStorageService LocalStorage { get; set; } protected override async Task OnInitializedAsync() { + _preferences = await UserPrefService.GetPreferences(); + _paging.OrderBy = _preferences.CompanySort; + _paging.SearchColumn = _preferences.CompanySearch; + _paging.PageSize = Convert.ToInt32(_preferences.PageSize); + Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); await GetCompanies(); @@ -58,7 +62,7 @@ namespace Wonky.Client.Pages MetaData = pagingResponse.MetaData; } - private async Task ColumnChanged(string? searchColumn) + private async Task SetSearchCol(string searchColumn) { _paging.SearchColumn = searchColumn; _paging.PageNumber = 1; @@ -71,14 +75,14 @@ namespace Wonky.Client.Pages await GetCompanies(); } - private async Task SearchChanged(string? searchTerm) + private async Task SetSearchPhrase(string searchTerm) { _paging.PageNumber = 1; _paging.SearchTerm = searchTerm; await GetCompanies(); } - private async Task SortChanged(string? orderBy) + private async Task SetSortCol(string orderBy) { _paging.OrderBy = orderBy; await GetCompanies(); diff --git a/Wonky.Client/Pages/DraftDocument.razor b/Wonky.Client/Pages/DraftDocument.razor index 37ca3478..83b9ccbc 100644 --- a/Wonky.Client/Pages/DraftDocument.razor +++ b/Wonky.Client/Pages/DraftDocument.razor @@ -5,13 +5,13 @@ @* display product filter options *@
- +
- +
- +
diff --git a/Wonky.Client/Pages/DraftDocument.razor.cs b/Wonky.Client/Pages/DraftDocument.razor.cs index 6c8f5fb4..38505d51 100644 --- a/Wonky.Client/Pages/DraftDocument.razor.cs +++ b/Wonky.Client/Pages/DraftDocument.razor.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components; using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; using Wonky.Client.Models; +using Wonky.Client.Services; using Wonky.Client.Shared; using Wonky.Entity.DTO; using Wonky.Entity.Models; @@ -18,16 +19,18 @@ public partial class DraftDocument : IDisposable private string Price = "0"; private SalesItemDto _selectedItem { get; set; } = new(); private List SalesItems { get; set; } = new(); - private List CompanyList { get; set; } = new(); - // private SalesItemDto SelectedItem { get; set; } = new(); private MetaData _meta { get; set; } = new(); private PagingParams _paging { get; set; } = new(); + private Preferences _prefs { get; set; } = new(); [Inject] private ISalesItemHttpRepository ItemRepo { get; set; } [Inject] private ICompanyHttpRepository CompanyRepo { get; set; } [Inject] private HttpInterceptorService Interceptor { get; set; } + [Inject] private UserPreferenceService UserPrefs { get; set; } protected override async Task OnInitializedAsync() { + _prefs = await UserPrefs.GetPreferences(); + _paging.SearchColumn = _prefs.ItemSearch; Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); await GetSalesItems(); @@ -76,20 +79,20 @@ public partial class DraftDocument : IDisposable // save the remaining draft await DraftStateProvider.SaveChangesAsync(); } - private async Task ProductGroupChanged(string groupFilter) + private async Task SetItemGroup(string groupFilter) { _paging.PageNumber = 1; _paging.SelectGroup = groupFilter; await GetSalesItems(); } - private async Task ProductColumnChanged(string columnName) + private async Task SetSearchCol(string columnName) { _paging.PageNumber = 1; _paging.SearchTerm = ""; _paging.SearchColumn = columnName; await GetSalesItems(); } - private async Task ProductSearchChanged(string searchTerm) + private async Task SetSortCol(string searchTerm) { _paging.PageNumber = 1; _paging.SearchTerm = searchTerm; diff --git a/Wonky.Client/Pages/SalesItemCatalog.razor b/Wonky.Client/Pages/SalesItemCatalog.razor index 7612f421..c8b9587a 100644 --- a/Wonky.Client/Pages/SalesItemCatalog.razor +++ b/Wonky.Client/Pages/SalesItemCatalog.razor @@ -23,16 +23,29 @@
- +
+ + +
- +
+ + +
- +
+ + +
- +
+ + +
+
@@ -40,9 +53,7 @@
- -
-
+
diff --git a/Wonky.Client/Pages/SalesItemCatalog.razor.cs b/Wonky.Client/Pages/SalesItemCatalog.razor.cs index af316035..f429ffa0 100644 --- a/Wonky.Client/Pages/SalesItemCatalog.razor.cs +++ b/Wonky.Client/Pages/SalesItemCatalog.razor.cs @@ -21,6 +21,7 @@ using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; using Microsoft.AspNetCore.Components; using Wonky.Client.Components; +using Wonky.Client.Services; using Wonky.Entity.DTO; using Wonky.Entity.Requests; @@ -28,15 +29,22 @@ namespace Wonky.Client.Pages; public partial class SalesItemCatalog : IDisposable { + [Inject] private UserPreferenceService UserPreferenceService { get; set; } private List SalesItemList { get; set; } = new(); private MetaData? MetaData { get; set; } = new(); private PagingParams _paging = new(); + private Preferences _preferences = new(); [Inject] public ISalesItemHttpRepository SalesItemRepo { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ILocalStorageService LocalStorage { get; set; } protected override async Task OnInitializedAsync() { + _preferences = await UserPreferenceService.GetPreferences(); + _paging.OrderBy = _preferences.ItemSort; + _paging.SearchColumn = _preferences.ItemSearch; + _paging.PageSize = Convert.ToInt32(_preferences.PageSize); + Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); await GetSalesItems(); @@ -62,26 +70,26 @@ public partial class SalesItemCatalog : IDisposable await GetSalesItems(); } - private async Task GroupFilterChanged(string groupFilter) + private async Task SetItemGroup(string groupFilter) { _paging.PageNumber = 1; _paging.SelectGroup = groupFilter; await GetSalesItems(); } - private async Task SearchColumnChanged(string columnName) + private async Task SetSearchCol(string columnName) { _paging.PageNumber = 1; _paging.SearchColumn = columnName; await GetSalesItems(); } - private async Task SearchPhraseChanged(string searchTerm) + private async Task SetSearchPhrase(string searchTerm) { _paging.PageNumber = 1; _paging.SearchTerm = searchTerm; await GetSalesItems(); } - private async Task SortColumnChanged(string orderBy) + private async Task SetSortCol(string orderBy) { _paging.OrderBy = orderBy; await GetSalesItems(); diff --git a/Wonky.Client/Program.cs b/Wonky.Client/Program.cs index 84af82c1..c6ae82a8 100644 --- a/Wonky.Client/Program.cs +++ b/Wonky.Client/Program.cs @@ -58,6 +58,7 @@ builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); +builder.Services.AddScoped(); // --------------------------------------- diff --git a/Wonky.Client/Services/ProfileService.cs b/Wonky.Client/Services/UserPreferenceService.cs similarity index 55% rename from Wonky.Client/Services/ProfileService.cs rename to Wonky.Client/Services/UserPreferenceService.cs index 867d8a6b..c43feb9e 100644 --- a/Wonky.Client/Services/ProfileService.cs +++ b/Wonky.Client/Services/UserPreferenceService.cs @@ -4,75 +4,55 @@ namespace Wonky.Client.Services; public record Preferences { - public bool DisplayIgnored { get; set; } = false; - public bool DisplayAll { get; set; } = false; public string CompanySearch { get; set; } = "name"; public string CompanySort { get; set; } = "name"; public string ItemSearch { get; set; } = "name"; public string ItemSort { get; set; } = "name"; public string PageSize { get; set; } = "5"; - public string ItemGroup { get; set; } = "all"; } -public class ProfileService +public class UserPreferenceService { private readonly ILocalStorageService _localStorageService; public event Action? OnChange; - public ProfileService(ILocalStorageService localStorageService) + public UserPreferenceService(ILocalStorageService localStorageService) { _localStorageService = localStorageService; } - public async Task ToggleIgnored(bool toggle) + public async Task SetCompanySearch(string companySearch) { var preferences = await GetPreferences(); var newPreferences = preferences - with { DisplayIgnored = toggle }; - await _localStorageService.SetItemAsync("preferences", newPreferences); - OnChange?.Invoke(newPreferences); - } - public async Task ToggleAll(bool toggle) - { - var preferences = await GetPreferences(); - var newPreferences = preferences - with { DisplayAll = toggle }; - await _localStorageService.SetItemAsync("preferences", newPreferences); - OnChange?.Invoke(newPreferences); - } - public async Task SetCompanySearch(string column) - { - var preferences = await GetPreferences(); - var newPreferences = preferences - with { CompanySearch = column }; + with { CompanySearch = companySearch }; await _localStorageService.SetItemAsync("preferences", newPreferences); OnChange?.Invoke(newPreferences); } - public async Task SetCompanySort(string column) + public async Task SetCompanySort(string companySort) { var preferences = await GetPreferences(); var newPreferences = preferences - with { CompanySort = column }; + with { CompanySort = companySort }; await _localStorageService.SetItemAsync("preferences", newPreferences); OnChange?.Invoke(newPreferences); } - public async Task SetItemSearch(string column) + public async Task SetItemSearch(string itemSearch) { var preferences = await GetPreferences(); var newPreferences = preferences - with { ItemSearch = column }; + with { ItemSearch = itemSearch }; await _localStorageService.SetItemAsync("preferences", newPreferences); OnChange?.Invoke(newPreferences); } - public async Task SetItemSort(string column) + public async Task SetItemSort(string itemSort) { var preferences = await GetPreferences(); var newPreferences = preferences - with { ItemSort = column }; + with { ItemSort = itemSort }; await _localStorageService.SetItemAsync("preferences", newPreferences); OnChange?.Invoke(newPreferences); } - public async Task SetPageSize(string pageSize) { var preferences = await GetPreferences(); @@ -81,14 +61,6 @@ public class ProfileService await _localStorageService.SetItemAsync("preferences", newPreferences); OnChange?.Invoke(newPreferences); } - public async Task SetItemGroup(string group) - { - var preferences = await GetPreferences(); - var newPreferences = preferences - with { ItemGroup = group }; - await _localStorageService.SetItemAsync("preferences", newPreferences); - OnChange?.Invoke(newPreferences); - } public async Task GetPreferences() { return await _localStorageService.GetItemAsync("preferences") diff --git a/Wonky.Client/Shared/NavMenu.razor b/Wonky.Client/Shared/NavMenu.razor index df4a480d..897ea96c 100644 --- a/Wonky.Client/Shared/NavMenu.razor +++ b/Wonky.Client/Shared/NavMenu.razor @@ -54,11 +54,6 @@ Priskatalog
-