wip - make user preferences available
This commit is contained in:
parent
8df1af22d2
commit
b3cd44431e
21 changed files with 134 additions and 95 deletions
|
@ -15,11 +15,9 @@
|
|||
//
|
||||
*@
|
||||
|
||||
<label for="search-column" class="form-label">Søge kolonne</label>
|
||||
<select id="search-column" class="form-control" @bind-value="@SearchColumn" @bind-value:event="oninput" @onchange="ApplyFilter">
|
||||
<option value="name">Navn</option>
|
||||
<option value="zipCode">Postnr</option>
|
||||
<option value="city">Bynavn</option>
|
||||
<option value="account">Konto</option>
|
||||
<option value="phone">Telefon</option>
|
||||
<select class="form-control" @bind-value="@SearchColumn" @bind-value:event="oninput" @onchange="OnSearchColumnChange">
|
||||
@foreach (var (key, value) in Items)
|
||||
{
|
||||
<option value="@key">@value</option>
|
||||
}
|
||||
</select>
|
|
@ -15,17 +15,32 @@
|
|||
//
|
||||
|
||||
|
||||
using System.Security.AccessControl;
|
||||
using Blazored.LocalStorage;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class CompanySearchColumn
|
||||
{
|
||||
[Parameter]
|
||||
public EventCallback<string> OnColumnChanged { get; set; }
|
||||
[Inject] private ILocalStorageService LocalStorage { get; set; }
|
||||
[Parameter] public EventCallback<string> OnColumnChanged { get; set; }
|
||||
private string SearchColumn { get; set; }
|
||||
private Dictionary<string, string> Items { get; set; } = new();
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var value = await LocalStorage.GetItemAsStringAsync("UserCompanySearch");
|
||||
var y = string.IsNullOrWhiteSpace(value) ? "name" : value.Replace("\"", "");
|
||||
|
||||
private string SearchColumn { get; set; } = "name";
|
||||
private async Task ApplyFilter(ChangeEventArgs eventArgs)
|
||||
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();
|
||||
}
|
||||
private async Task OnSearchColumnChange(ChangeEventArgs eventArgs)
|
||||
{
|
||||
await OnColumnChanged.InvokeAsync(SearchColumn);
|
||||
}
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
//
|
||||
*@
|
||||
|
||||
<label for="sort-column" class="form-label">Sortering</label>
|
||||
<select id="sort-column" class="form-control" @bind-value="@SortColumn" @bind-value:event="oninput" @onchange="ApplySort">
|
||||
<option value="name">Navn</option>
|
||||
<option value="account">Konto</option>
|
||||
<option value="city">Bynavn</option>
|
||||
<select class="form-control" @bind-value="@SortColumn" @bind-value:event="oninput" @onchange="OnSortColumnChange">
|
||||
@foreach (var (key, value) in Items)
|
||||
{
|
||||
<option value="@key">@value</option>
|
||||
}
|
||||
</select>
|
|
@ -15,6 +15,7 @@
|
|||
//
|
||||
|
||||
|
||||
using Blazored.LocalStorage;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Wonky.Client.Components
|
||||
|
@ -22,9 +23,15 @@ namespace Wonky.Client.Components
|
|||
public partial class CompanySortColumn
|
||||
{
|
||||
[Parameter] public EventCallback<string> OnSortChanged { get; set; }
|
||||
|
||||
private string SortColumn { get; set; } = "name";
|
||||
private async Task ApplySort(ChangeEventArgs eventArgs)
|
||||
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,15 +15,12 @@
|
|||
//
|
||||
*@
|
||||
|
||||
<section>
|
||||
<label for="group-column" class="form-label">Varegruppe</label>
|
||||
<select id="group-column" class="form-control" @bind-value="@GroupFilter" @bind-value:event="oninput" @onchange="ApplyGroupFilter">
|
||||
<option value="all">Alle</option>
|
||||
<select class="form-control" @bind-value="GroupFilter" @bind-value:event="oninput" @onchange="OnGroupFilterChange">
|
||||
<option value="all" selected>Alle</option>
|
||||
<option value="1">Lim / Sealer / Rep</option>
|
||||
<option value="2">Maling / Primer</option>
|
||||
<option value="3">Smøremidler</option>
|
||||
<option value="4">Polish / Cleaner</option>
|
||||
<option value="5">Tape</option>
|
||||
<option value="6">Diverse</option>
|
||||
</select>
|
||||
</section>
|
||||
</select>
|
|
@ -22,7 +22,7 @@ public partial class ItemGroupFilter
|
|||
{
|
||||
[Parameter] public EventCallback<string> OnGroupFilterChanged { get; set; }
|
||||
private string GroupFilter { get; set; } = "all";
|
||||
private async Task ApplyGroupFilter(ChangeEventArgs eventArgs)
|
||||
private async Task OnGroupFilterChange(ChangeEventArgs eventArgs)
|
||||
{
|
||||
if (GroupFilter == "all")
|
||||
GroupFilter = "";
|
||||
|
|
|
@ -15,12 +15,9 @@
|
|||
//
|
||||
*@
|
||||
|
||||
<label for="search-column" class="form-label">Søge kolonne</label>
|
||||
<select id="search-column" class="form-control"
|
||||
@bind-value="@SearchColumn"
|
||||
@bind-value:event="oninput"
|
||||
@onchange="ApplySearchColumn">
|
||||
<option value="name">Navn</option>
|
||||
<option value="sku">Varenr</option>
|
||||
<option value="shortName">Fork</option>
|
||||
<select id="search-column" class="form-control" @bind-value="@SearchColumn" @bind-value:event="oninput" @onchange="OnSearchColumnChange">
|
||||
@foreach (var (key, value) in Items)
|
||||
{
|
||||
<option value="@key">@value</option>
|
||||
}
|
||||
</select>
|
|
@ -13,16 +13,24 @@
|
|||
// 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 ItemSearchColumn
|
||||
{
|
||||
[Parameter] public EventCallback<string> OnSearchColumnChanged { get; set; }
|
||||
[Parameter] public EventCallback<string> OnColumnChanged { get; set; }
|
||||
private string SearchColumn { get; set; } = "name";
|
||||
private async Task ApplySearchColumn(ChangeEventArgs eventArgs)
|
||||
private Dictionary<string, string> Items { get; set; } = new();
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
await OnSearchColumnChanged.InvokeAsync(SearchColumn);
|
||||
Items.Add("name", "Varenavn");
|
||||
Items.Add("sku", "Varenr");
|
||||
Items.Add("shortName", "Forkortelse");
|
||||
}
|
||||
private async Task OnSearchColumnChange(ChangeEventArgs eventArgs)
|
||||
{
|
||||
await OnColumnChanged.InvokeAsync(SearchColumn);
|
||||
}
|
||||
}
|
|
@ -15,8 +15,9 @@
|
|||
//
|
||||
*@
|
||||
|
||||
<label for="order-by" class="form-label">Sortering</label>
|
||||
<select id="order-by" class="form-control" @bind-value="@SortColumn" @bind-value:event="oninput" @onchange="ApplySortColumn">
|
||||
<option value="name">Varenavn</option>
|
||||
<option value="sku">Varenr</option>
|
||||
<select class="form-control" @bind-value="@SortColumn" @bind-value:event="oninput" @onchange="OnSortColumnChange">
|
||||
@foreach (var (key, value) in Items)
|
||||
{
|
||||
<option value="@key">@value</option>
|
||||
}
|
||||
</select>
|
|
@ -13,18 +13,26 @@
|
|||
// 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 ItemSortColumn
|
||||
{
|
||||
[Parameter]
|
||||
public EventCallback<string> OnSortColumnChanged { get; set; }
|
||||
|
||||
[Parameter] public EventCallback<string> OnColumnChanged { get; set; }
|
||||
private string SortColumn { get; set; } = "name";
|
||||
private async Task ApplySortColumn(ChangeEventArgs eventArgs)
|
||||
private Dictionary<string, string> Items { get; set; } = new();
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
await OnSortColumnChanged.InvokeAsync(SortColumn);
|
||||
Items.Add("name", "Varenavn");
|
||||
Items.Add("sku", "Varenr");
|
||||
}
|
||||
|
||||
private async Task OnSortColumnChange(ChangeEventArgs eventArgs)
|
||||
{
|
||||
await OnColumnChanged.InvokeAsync(SortColumn);
|
||||
}
|
||||
|
||||
}
|
|
@ -16,11 +16,11 @@
|
|||
*@
|
||||
|
||||
<div class="form-group">
|
||||
<select class="form-control" @onchange="OnPageSizeChange">
|
||||
<option selected="selected">5</option>
|
||||
<option>10</option>
|
||||
<option>15</option>
|
||||
<option>30</option>
|
||||
<option>50</option>
|
||||
<select class="form-control" @bind-value="@PageSize" @bind-value:event="oninput" @onchange="OnPageSizeChange">
|
||||
<option value="5">5</option>
|
||||
<option value="10">10</option>
|
||||
<option value="15">15</option>
|
||||
<option value="30">30</option>
|
||||
<option value="50">50</option>
|
||||
</select>
|
||||
</div>
|
|
@ -15,18 +15,19 @@
|
|||
//
|
||||
|
||||
|
||||
using Blazored.LocalStorage;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Wonky.Client.Components
|
||||
{
|
||||
public partial class PageSizeDropDown
|
||||
{
|
||||
[Parameter]
|
||||
public EventCallback<int> SelectedPageSize { get; set; }
|
||||
[Parameter] public EventCallback<string> OnPageSizeChanged { get; set; }
|
||||
private string PageSize { get; set; } = "5";
|
||||
|
||||
private async Task OnPageSizeChange(ChangeEventArgs eventArgs)
|
||||
{
|
||||
await SelectedPageSize.InvokeAsync(int.Parse(eventArgs.Value?.ToString()!));
|
||||
await OnPageSizeChanged.InvokeAsync(PageSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
//
|
||||
*@
|
||||
|
||||
<label for="search-input" class="form-label">Søgetekst</label>
|
||||
<input id="search-input" type="text" class="form-control" placeholder="Søg ..."
|
||||
@bind-value="@SearchTerm" @bind-value:event="oninput"
|
||||
@onkeyup="SearchChanged"/>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Entity.Models;
|
||||
namespace Wonky.Client.Models;
|
||||
|
||||
public class DraftItem
|
||||
{
|
|
@ -22,15 +22,15 @@
|
|||
@attribute [Authorize(Roles = "Adviser")]
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<CompanySortColumn OnSortChanged="SortChanged"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<CompanySearchColumn OnColumnChanged="ColumnChanged" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnSearchPhraseChanged="SearchChanged"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<CompanySortColumn OnSortChanged="SortChanged"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-success mb-1" href="/company/create">Nyt firma</a>
|
||||
</div>
|
||||
|
@ -40,7 +40,7 @@
|
|||
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<PageSizeDropDown SelectedPageSize="SetPageSize" />
|
||||
<PageSizeDropDown OnPageSizeChanged="SetPageSize" />
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Blazored.LocalStorage;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
@ -28,14 +29,14 @@ 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; }
|
||||
|
||||
[Inject]
|
||||
public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public ILocalStorageService LocalStorage { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
@ -59,14 +60,13 @@ namespace Wonky.Client.Pages
|
|||
|
||||
private async Task ColumnChanged(string? searchColumn)
|
||||
{
|
||||
_paging.SearchTerm = "";
|
||||
_paging.SearchColumn = searchColumn;
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
}
|
||||
private async Task SetPageSize(int pageSize)
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
_paging.PageSize = pageSize;
|
||||
_paging.PageSize = Convert.ToInt32(pageSize);
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
@* display product filter options *@
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<ItemSearchColumn OnSearchColumnChanged="ProductColumnChanged"></ItemSearchColumn>
|
||||
<ItemSearchColumn OnColumnChanged="ProductColumnChanged"></ItemSearchColumn>
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnSearchPhraseChanged="ProductSearchChanged"></SearchPhrase>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Wonky.Client.Models;
|
||||
using Wonky.Client.Shared;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Models;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
//
|
||||
*@
|
||||
|
||||
@page "/price-catalog"
|
||||
@page "/Price-Catalog"
|
||||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
|
@ -23,24 +23,24 @@
|
|||
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<ItemSearchColumn OnSearchColumnChanged="SearchColumnChanged" />
|
||||
<ItemGroupFilter OnGroupFilterChanged="GroupFilterChanged" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSortColumn OnColumnChanged="SortColumnChanged"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSearchColumn OnColumnChanged="SearchColumnChanged"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnSearchPhraseChanged="SearchPhraseChanged"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSortColumn OnSortColumnChanged="SortColumnChanged"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemGroupFilter OnGroupFilterChanged="GroupFilterChanged" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<PageSizeDropDown SelectedPageSize="SetPageSize" />
|
||||
<PageSizeDropDown OnPageSizeChanged="SetPageSize" />
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
|
|
|
@ -16,9 +16,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Blazored.LocalStorage;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.Components;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Requests;
|
||||
|
||||
|
@ -31,6 +33,7 @@ public partial class SalesItemCatalog : IDisposable
|
|||
private PagingParams _paging = new();
|
||||
[Inject] public ISalesItemHttpRepository SalesItemRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public ILocalStorageService LocalStorage { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
@ -52,9 +55,9 @@ public partial class SalesItemCatalog : IDisposable
|
|||
MetaData = pagingResponse.MetaData;
|
||||
}
|
||||
|
||||
private async Task SetPageSize(int pageSize)
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
_paging.PageSize = pageSize;
|
||||
_paging.PageSize = Convert.ToInt32(pageSize);
|
||||
_paging.PageNumber = 1;
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
@ -68,7 +71,6 @@ public partial class SalesItemCatalog : IDisposable
|
|||
private async Task SearchColumnChanged(string columnName)
|
||||
{
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SearchTerm = "";
|
||||
_paging.SearchColumn = columnName;
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
|
|
@ -50,10 +50,15 @@
|
|||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="price-catalog">
|
||||
<NavLink class="nav-link" href="/Price-Catalog">
|
||||
<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