UserPreference for list views
This commit is contained in:
parent
afe2dd024e
commit
e690ab7383
26 changed files with 216 additions and 170 deletions
|
@ -14,8 +14,7 @@
|
|||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
//
|
||||
*@
|
||||
|
||||
<select class="form-control" @bind-value="@SearchColumn" @bind-value:event="oninput" @onchange="OnSearchColumnChange">
|
||||
<select class="form-control" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
||||
@foreach (var (key, value) in Items)
|
||||
{
|
||||
<option value="@key">@value</option>
|
|
@ -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<string> OnColumnChanged { get; set; }
|
||||
private string SearchColumn { get; set; }
|
||||
[Inject] private UserPreferenceService UserPreferenceService { get; set; }
|
||||
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
||||
private Dictionary<string, string> 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);
|
||||
}
|
||||
private void ProfileServiceOnOnChange(Preferences newPreferences)
|
||||
{
|
||||
_preferences = newPreferences;
|
||||
StateHasChanged();
|
||||
}
|
||||
public void Dispose()
|
||||
{
|
||||
UserPreferenceService.OnChange -= ProfileServiceOnOnChange;
|
||||
} }
|
|
@ -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<string> OnSortChanged { get; set; }
|
||||
private string SortColumn { get; set; } = "name";
|
||||
private Dictionary<string, string> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
//
|
||||
*@
|
||||
|
||||
<select class="form-control" @bind-value="@SortColumn" @bind-value:event="oninput" @onchange="OnSortColumnChange">
|
||||
<select class="form-control" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
||||
@foreach (var (key, value) in Items)
|
||||
{
|
||||
<option value="@key">@value</option>
|
59
Wonky.Client/Components/CompanySortDropdown.razor.cs
Normal file
59
Wonky.Client/Components/CompanySortDropdown.razor.cs
Normal file
|
@ -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<string> OnChanged { get; set; }
|
||||
private Dictionary<string, string> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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<string> OnChanged { get; set; }
|
||||
private Dictionary<string, string> 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;
|
||||
}
|
||||
}
|
|
@ -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<string> OnChanged { get; set; }
|
||||
private Dictionary<string, string> 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;
|
||||
}
|
||||
}
|
|
@ -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<string> OnChanged { get; set; }
|
||||
private Dictionary<string, string> 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;
|
||||
}
|
||||
}
|
|
@ -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<string> OnChanged { get; set; }
|
||||
private Dictionary<string, string> 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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -23,7 +23,7 @@ namespace Wonky.Client.Components
|
|||
{
|
||||
private Timer _timer = new();
|
||||
private string SearchTerm { get; set; } = "";
|
||||
[Parameter] public EventCallback<string> OnSearchPhraseChanged { get; set; }
|
||||
[Parameter] public EventCallback<string> 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();
|
||||
}
|
||||
|
|
|
@ -81,21 +81,21 @@ public class CompanyHttpRepository : ICompanyHttpRepository
|
|||
public async Task<CompanyDto> GetCompanyByAccount(string accountNumber)
|
||||
{
|
||||
var company = await _client.GetFromJsonAsync<CompanyDto>(
|
||||
$"{_apiConfig.CrmCompanies}/get/account/{accountNumber}");
|
||||
$"{_apiConfig.CrmCompanies}/account/{accountNumber}");
|
||||
return company ?? new CompanyDto();
|
||||
}
|
||||
|
||||
public async Task<CompanyDto> GetCompanyById(string companyId)
|
||||
{
|
||||
var company = await _client.GetFromJsonAsync<CompanyDto>(
|
||||
$"{_apiConfig.CrmCompanies}/get/id/{companyId}");
|
||||
$"{_apiConfig.CrmCompanies}{companyId}");
|
||||
return company ?? new CompanyDto();
|
||||
}
|
||||
|
||||
public async Task<string> 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<CompanyDto>(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}");
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
|
|
|
@ -23,13 +23,22 @@
|
|||
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<CompanySortColumn OnSortChanged="SortChanged"/>
|
||||
<div>
|
||||
<label class="form-label">Rækkefølge</label>
|
||||
<CompanySortDropdown OnChanged="SetSortCol"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<CompanySearchColumn OnColumnChanged="ColumnChanged" />
|
||||
<div>
|
||||
<label class="form-label">Søgefelt</label>
|
||||
<CompanySearchDropdown OnChanged="SetSearchCol"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnSearchPhraseChanged="SearchChanged"/>
|
||||
<div>
|
||||
<label class="form-label">Søgetekst</label>
|
||||
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-success mb-1" href="/company/create">Nyt firma</a>
|
||||
|
@ -40,9 +49,7 @@
|
|||
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<PageSizeDropDown OnPageSizeChanged="SetPageSize" />
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<PageSizeDropdown OnChanged="SetPageSize"></PageSizeDropdown>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
|
|
@ -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<CompanyDto>? 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();
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
@* display product filter options *@
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<ItemSearchColumn OnColumnChanged="ProductColumnChanged"></ItemSearchColumn>
|
||||
<ItemGroupDropdown OnChanged="SetItemGroup" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnSearchPhraseChanged="ProductSearchChanged"></SearchPhrase>
|
||||
<ItemSearchDropdown OnChanged="SetSearchCol" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemGroupFilter OnGroupFilterChanged="ProductGroupChanged"></ItemGroupFilter>
|
||||
<SearchPhrase OnChanged="SetSortCol" />
|
||||
</div>
|
||||
<div class="col">
|
||||
|
||||
|
|
|
@ -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<SalesItemDto> SalesItems { get; set; } = new();
|
||||
private List<CompanyDto> 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;
|
||||
|
|
|
@ -23,16 +23,29 @@
|
|||
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<ItemGroupFilter OnGroupFilterChanged="GroupFilterChanged" />
|
||||
<div>
|
||||
<label class="form-label">Varegruppe</label>
|
||||
<ItemGroupDropdown OnChanged="SetItemGroup"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSortColumn OnColumnChanged="SortColumnChanged"/>
|
||||
<div>
|
||||
<label class="form-label">Rækkefølge</label>
|
||||
<ItemSortDropdown OnChanged="SetSortCol"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSearchColumn OnColumnChanged="SearchColumnChanged"/>
|
||||
<div>
|
||||
<label class="form-label">Søgefelt</label>
|
||||
<ItemSearchDropdown OnChanged="SetSearchCol"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnSearchPhraseChanged="SearchPhraseChanged"/>
|
||||
<div>
|
||||
<label class="form-label">Søgetekst</label>
|
||||
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -40,9 +53,7 @@
|
|||
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<PageSizeDropDown OnPageSizeChanged="SetPageSize" />
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<PageSizeDropdown OnChanged="SetPageSize"></PageSizeDropdown>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
|
|
@ -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<SalesItemDto> 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();
|
||||
|
|
|
@ -58,6 +58,7 @@ builder.Services.AddScoped<AuthenticationStateProvider, AuthStateProvider>();
|
|||
builder.Services.AddScoped<IAuthenticationService, AuthenticationService>();
|
||||
builder.Services.AddScoped<RefreshTokenService>();
|
||||
builder.Services.AddScoped<VirkRegistryService>();
|
||||
builder.Services.AddScoped<UserPreferenceService>();
|
||||
|
||||
|
||||
// ---------------------------------------
|
||||
|
|
|
@ -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<Preferences>? 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<Preferences> GetPreferences()
|
||||
{
|
||||
return await _localStorageService.GetItemAsync<Preferences>("preferences")
|
|
@ -54,11 +54,6 @@
|
|||
<span class="oi oi-list-rich" aria-hidden="true"></span> Priskatalog
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="/UserSettings">
|
||||
<span class="oi oi-list-rich" aria-hidden="true"></span> Indstillinger
|
||||
</NavLink>
|
||||
</div>
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
</nav>
|
||||
|
|
Loading…
Reference in a new issue