testing v0.8.135-beta

This commit is contained in:
Frede Hundewadt 2022-07-07 14:43:24 +02:00
parent e782e7cac2
commit c27626f46e
25 changed files with 347 additions and 280 deletions

View file

@ -20,61 +20,50 @@
@if (Companies.Any())
{
<div class="list-group list-group-flush">
<div class="list-group-item px-3 bg-black text-white opacity-75">
<div class="row">
<div class="col-sm-1 col-md-1">
Besøg
</div>
<div class="col">
Navn
</div>
<div class="col">
Konto
</div>
<div class="col">
Telefon
</div>
<div class="col">
Bynavn
</div>
<div class="col">
</div>
</div>
</div>
<table class="table table-striped">
<thead>
<tr>
<th scope="col">BS</th>
<th scope="col">Navn</th>
<th scope="col">Konto</th>
<th scope="col">Tlf</th>
<th scope="col">Bynavn</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
@foreach (var company in Companies)
{
<a class=" list-group-item list-group-item-action" href="/companies/@company.CompanyId">
<div class="row align-items-center">
<div class="col-sm-1 col-md-1">
<DisplayStateComponent StateClass="@(company.HasFolded == 1 ? "the-dead" : Utils.GetVisitState(company.NextVisit))">
</DisplayStateComponent>
</div>
<div class="col">
@company.Name
</div>
<div class="col">
@company.Account
</div>
<div class="col">
@company.Phone
</div>
<div class="col">
@company.City
</div>
<div class="col justify-content-end">
<ActivityButton CompanyId="@company.CompanyId"
ActionLink="/companies/$ID$/activities/new"
ButtonText="Besøg"
ButtonType="primary"
Enabled="@company.ValidVat">
</ActivityButton>
</div>
</div>
</a>
<tr @onclick="() => { ViewCustomer(company.CompanyId); }" style="cursor: pointer">
<td class="state align-middle">
<DisplayStateComponent StateClass="@(company.HasFolded == 1 ? "the-dead" : Utils.GetVisitState(company.NextVisit))">
</DisplayStateComponent>
</td>
<td class="align-middle">
@company.Name
</td>
<td class="align-middle">
@company.Account
</td>
<td class="align-middle">
@company.Phone
</td>
<td class="align-middle">
@company.City
</td>
<td class="align-middle">
<ActivityButton CompanyId="@company.CompanyId"
ActionLink="/companies/$ID$/activities/new"
ButtonText="Besøg"
ButtonType="primary"
Enabled="@company.ValidVat">
</ActivityButton>
</td>
</tr>
}
</div>
</tbody>
</table>
}
else
{

View file

@ -29,6 +29,7 @@ namespace Wonky.Client.Components
[Parameter] public List<CompanyDto> Companies { get; set; } = new();
[Parameter] public EventCallback<string> OnDelete { get; set; }
[Parameter] public EventCallback<string> OnSelect { get; set; }
[Inject] private NavigationManager _navigator { get; set; }
private Confirmation _confirmation = new ();
private string _companyId = "";
@ -39,6 +40,11 @@ namespace Wonky.Client.Components
await base.OnInitializedAsync();
}
private void ViewCustomer(string companyId)
{
_navigator.NavigateTo($"/companies/{companyId}");
}
private void CallConfirmationModal(string companyId)
{
_companyId = companyId;

View file

@ -17,100 +17,98 @@
@using Wonky.Entity.Views
<div class="report-page">
@* <table class="table table-sm table-striped table-bordered d-print-table"> *@
<table class="table table-sm table-striped table-bordered">
<thead>
<tr class="bg-light text-black">
<th colspan="4">
Ordre @ReportItem.ESalesNumber
</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Dato</th>
<td>@ReportItem.OrderDate</td>
<th scope="row">Konto</th>
<td>@ReportItem.Company.Account</td>
</tr>
<tr>
<th scope="col">Telefon</th>
<td>@ReportItem.Company.Phone</td>
<th scope="col">Køber</th>
<td>@ReportItem.YourRef</td>
</tr>
<tr>
<th scope="col">CVR/VAT</th>
<td>@ReportItem.Company.VatNumber</td>
<th scope="col">Rekvisition</th>
<td>@ReportItem.ReferenceNumber</td>
</tr>
<tr>
<th scope="col">Navn</th>
<td>@ReportItem.Company.Name</td>
<th scope="col">Lev.Navn</th>
<td>@ReportItem.DlvName</td>
</tr>
<tr>
<th scope="col">Adresse</th>
<td>@ReportItem.Company.Address1</td>
<th scope="col">Lev.Adresse</th>
<td>@ReportItem.DlvAddress1</td>
</tr>
<tr>
<th scope="col">Adresse</th>
<td>@ReportItem.Company.Address2</td>
<th scope="col">Lev.Adresse</th>
<td>@ReportItem.DlvAddress2</td>
</tr>
<tr>
<th scope="col">Postnr By</th>
<td>@ReportItem.Company.ZipCode @ReportItem.Company.City</td>
<th scope="col">Lev.Postnr By</th>
<td>@ReportItem.DlvZipCity</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-striped table-bordered">
<thead>
<tr class="bg-light text-black">
<th scope="col">Antal</th>
<th scope="col">Varnr</th>
<th scope="col">Beskrivelse</th>
<th class="text-end" scope="col">Pris</th>
<th class="text-end" scope="col">R%</th>
<th class="text-end" scope="col">Beløb</th>
</tr>
</thead>
<tbody>
@foreach (var line in ReportItem.Lines)
{
<tr>
<td>@line.Quantity</td>
<td>@line.Sku</td>
<td>@line.Description</td>
<td class="text-end">@($"{line.Price:N2}")</td>
<td class="text-end">@($"{line.Discount:N2}")</td>
<td class="text-end">@($"{line.LineSum:N2}")</td>
</tr>
}
<tr>
<td colspan="4"></td>
<td>Ordresum</td>
<td class="text-end">@ReportItem.OrderAmount</td>
</tr>
</tbody>
</table>
@if (!string.IsNullOrWhiteSpace(@ReportItem.OfficeNote))
@* <table class="table table-sm table-striped table-bordered d-print-table"> *@
<table class="table table-sm table-striped table-bordered">
<thead>
<tr class="bg-light text-black">
<th colspan="4">
<h3 class="text-center">Ordre @ReportItem.ESalesNumber</h3>
</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Dato</th>
<td>@ReportItem.OrderDate</td>
<th scope="row">Konto</th>
<td>@ReportItem.Company.Account</td>
</tr>
<tr>
<th scope="col">Telefon</th>
<td>@ReportItem.Company.Phone</td>
<th scope="col">Køber</th>
<td>@ReportItem.YourRef</td>
</tr>
<tr>
<th scope="col">CVR/VAT</th>
<td>@ReportItem.Company.VatNumber</td>
<th scope="col">Rekvisition</th>
<td>@ReportItem.ReferenceNumber</td>
</tr>
<tr>
<th scope="col">Navn</th>
<td>@ReportItem.Company.Name</td>
<th scope="col">Lev.Navn</th>
<td>@ReportItem.DlvName</td>
</tr>
<tr>
<th scope="col">Adresse</th>
<td>@ReportItem.Company.Address1</td>
<th scope="col">Lev.Adresse</th>
<td>@ReportItem.DlvAddress1</td>
</tr>
<tr>
<th scope="col">Adresse</th>
<td>@ReportItem.Company.Address2</td>
<th scope="col">Lev.Adresse</th>
<td>@ReportItem.DlvAddress2</td>
</tr>
<tr>
<th scope="col">Postnr By</th>
<td>@ReportItem.Company.ZipCode @ReportItem.Company.City</td>
<th scope="col">Lev.Postnr By</th>
<td>@ReportItem.DlvZipCity</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-striped table-bordered">
<thead>
<tr class="bg-light text-black">
<th scope="col">Antal</th>
<th scope="col">Varnr</th>
<th scope="col">Beskrivelse</th>
<th class="text-end" scope="col">Pris</th>
<th class="text-end" scope="col">R%</th>
<th class="text-end" scope="col">Beløb</th>
</tr>
</thead>
<tbody>
@foreach (var line in ReportItem.Lines)
{
<div class="alert alert-dark d-print-block">
<h4 class="text-center">
@ReportItem.OfficeNote
</h4>
</div>
<tr>
<td>@line.Quantity</td>
<td>@line.Sku</td>
<td>@line.Description</td>
<td class="text-end">@($"{line.Price:N2}")</td>
<td class="text-end">@($"{line.Discount:N2}")</td>
<td class="text-end">@($"{line.LineSum:N2}")</td>
</tr>
}
</div>
<tr>
<td colspan="4"></td>
<td>Ordresum</td>
<td class="text-end">@ReportItem.OrderAmount</td>
</tr>
</tbody>
</table>
@if (!string.IsNullOrWhiteSpace(@ReportItem.OfficeNote))
{
<div class="alert alert-dark d-print-block">
<h4 class="text-center">
@ReportItem.OfficeNote
</h4>
</div>
}
@code{

View file

@ -121,7 +121,7 @@
<div class="row">
<div class="col">
@* Order draft lines *@
<table class="table table-hover table-striped table-bordered">
<table class="sticky-top table table-hover table-striped table-bordered">
<thead>
<tr class="bg-dark text-white">
<th scope="col" colspan="6">
@ -208,7 +208,7 @@
</td>
<td>@_selectedItem.Sku</td>
<td>
<button type="button" class="btn btn-warning text-nowrap d-block" @onclick="@(() => AddItem(_selectedItem))">BESTIL @Quantity @_selectedItem.Name</button>
<button type="button" class="btn btn-warning text-nowrap d-block" @onclick="@(() => AddItem(_selectedItem))">bestil @Quantity stk @_selectedItem.Name</button>
</td>
</tr>
</tbody>
@ -336,16 +336,23 @@
</EditForm>
</div>
<div class="card-footer">
<div class="row mt-2 mb-2">
<div class="col">
<a class="btn btn-info" href="/companies">Til Oversigt</a>
@if (HideButtons)
{
<AppSpinner></AppSpinner>
}
else
{
<div class="row mt-2 mb-2">
<div class="col">
<a class="btn btn-info" href="/companies">Til Oversigt</a>
</div>
<div class="col">
<a class="btn btn-warning" href="/companies/@_company.CompanyId">Annuller</a>
</div>
<div class="col">
<button type="button" class="btn btn-primary" @onclick="CreateActivity" disabled="@_poFormInvalid">Opret besøg</button>
</div>
</div>
<div class="col">
<a class="btn btn-warning" href="/companies/@_company.CompanyId">Annuller</a>
</div>
<div class="col">
<button type="button" class="btn btn-primary" @onclick="CreateActivity" disabled="@_poFormInvalid">Opret besøg</button>
</div>
</div>
}
</div>
</div>

View file

@ -99,8 +99,7 @@ public partial class ActivityNewVisitPage : IDisposable
_draft.ActivityDate = $"{_workDate:yyyy-MM-dd}" ;
// todo - does it make sense to continue if _reportClosed is true?
_paging.SearchColumn = _prefs.ItemSearch ?? "name";
_paging.SearchColumn = string.IsNullOrWhiteSpace(_prefs.ItemSearch) ? "name" : _prefs.ItemSearch;
_paging.PageSize = Convert.ToInt32(_prefs.PageSize);
await GetSalesItems();

View file

@ -1,70 +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 GNU Affero 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
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
*@
@using Wonky.Client.Components
@using Microsoft.AspNetCore.Authorization
@page "/admin/users/advisers/{CountryCode}/{UserId}/reports/{ReportDate}"
@attribute [Authorize(Roles = "Admin")]
@if (Report != null)
{
<div class="report-page">
<div class="d-print-block">
<PageTitle>@Report.ReportData.Name</PageTitle>
<div class="row">
<div class="col-md-6 d-print-none align-content-center">
@if (!string.IsNullOrWhiteSpace(ReportDate))
{
<h3 class="workDate">@DateTime.Parse(ReportDate).ToLongDateString()</h3>
}
</div>
<div class="col col-md-4 d-print-none align-content-center">
<WorkDateComponent SelectedDate="@ReportDate" OnChanged="GetReport"></WorkDateComponent>
</div>
<div class="col col-md-1 d-print-none align-content-center">
<button class="btn btn-warning" type="button" onclick="window.print();">Print</button>
</div>
<div class="col d-none d-print-block text-center align-content-center">
<h3>@Report.ReportData.Name</h3>
</div>
</div>
<div class="row">
<div class="w-75">
<ReportSummaryComponent ReportData="Report.ReportData"></ReportSummaryComponent>
</div>
<div class="w-25">
<ReportDistanceLedgerComponent ReportData="Report.ReportData"></ReportDistanceLedgerComponent>
</div>
</div>
<ActivityTableComponent Activities="Report.ReportItems"></ActivityTableComponent>
<ReportActivityLedgerComponent ReportData="Report.ReportData"></ReportActivityLedgerComponent>
</div>
</div>
}
else
{
<AppSpinner></AppSpinner>
}
@if (_items.Any())
{
@foreach (var item in _items)
{
<ReportItemComponent ReportItem="@item"></ReportItemComponent>
}
}

View file

@ -0,0 +1,73 @@
@*
// 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 GNU Affero 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
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
*@
@using Wonky.Client.Components
@using Microsoft.AspNetCore.Authorization
@page "/admin/users/advisers/{CountryCode}/{UserId}/reports/{ReportDate}"
@attribute [Authorize(Roles = "Admin")]
<div class="report-page">
<div class="row mb-3 d-print-none">
<div class="col-md-6 align-content-center">
<h3 class="workDate">@DateTime.Parse(ReportDate).ToLongDateString()</h3>
</div>
<div class="col col-md-4 align-content-center">
<WorkDateComponent SelectedDate="@ReportDate" OnChanged="GetReport"></WorkDateComponent>
</div>
<div class="col col-md-1 align-content-center">
<button class="btn btn-warning" type="button" onclick="window.print();">Print</button>
</div>
</div>
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum))
{
<PageTitle>@Report.ReportData.Name</PageTitle>
<div class="row">
<div class="col d-none text-center align-content-center">
<h3>@Report.ReportData.Name</h3>
</div>
</div>
<div class="row">
<div class="w-75">
<ReportSummaryComponent ReportData="Report.ReportData"></ReportSummaryComponent>
</div>
<div class="w-25">
<ReportDistanceLedgerComponent ReportData="Report.ReportData"></ReportDistanceLedgerComponent>
</div>
</div>
<ActivityTableComponent Activities="Report.ReportItems"></ActivityTableComponent>
<ReportActivityLedgerComponent ReportData="Report.ReportData"></ReportActivityLedgerComponent>
}
else
{
<div class="row">
<div class="col">Ingen data</div>
</div>
}
</div>
@if (_items.Any())
{
@foreach (var item in _items)
{
<div class="report-page">
<ReportItemComponent ReportItem="@item"></ReportItemComponent>
</div>
}
}

View file

@ -21,7 +21,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Pages;
public partial class AdminSalesReportViewPage : IDisposable
public partial class AdminVewSalesReportPage : IDisposable
{
/// <summary>
/// Country code from url parameter
@ -54,6 +54,7 @@ public partial class AdminSalesReportViewPage : IDisposable
private ReportView Report { get; set; } = new();
private List<ReportItemView> _items { get; set; } = new();
private string _workDate { get; set; } = "";
protected override async Task OnParametersSetAsync()
{
@ -69,11 +70,18 @@ public partial class AdminSalesReportViewPage : IDisposable
/// <param name="workDate"></param>
private async Task GetReport(string workDate)
{
if(workDate != ReportDate)
if (workDate != ReportDate)
{
_navigator.NavigateTo($"/admin/users/advisers/{CountryCode}/{UserId}/reports/{workDate}");
return;
}
Report = new ReportView();
_items = new List<ReportItemView>();
Report = await GetUserReport(UserId, workDate);
_items = Report.ReportItems.Where(x => x.OrderAmount > 0).ToList();
}
/// <summary>
/// Get report for user with entity Id for work date

View file

@ -38,11 +38,11 @@
</div>
</div>
<div class="row mb-2">
<div class="col-md-10">
<div class="col-md-9">
<PaginationComponent MetaData="_metaData" Spread="2" SelectedPage="SelectedPage"></PaginationComponent>
</div>
<div class="col-md-2 justify-content-end">
<a class="btn btn-success" href="/companies/new">Opret kunde</a>
<div class="col-md-3 justify-content-end">
<a class="btn btn-success text-nowrap" href="/companies/new">Opret kunde</a>
</div>
</div>
</div>

View file

@ -26,12 +26,13 @@ using Wonky.Entity.Requests;
namespace Wonky.Client.Pages
{
public partial class CompanyListPage : IDisposable
public partial class CustomerListPage : IDisposable
{
[Inject] private ILocalStorageService _storage { get; set; }
[Inject] private UserPreferenceService _preferenceService { get; set; }
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
[Inject] private HttpInterceptorService _interceptor { get; set; }
[Inject] private NavigationManager _navigator { get; set; }
private List<CompanyDto> _companyList { get; set; } = new();
private MetaData _metaData { get; set; } = new();
private CompanyPagingParams _paging = new();
@ -82,7 +83,7 @@ namespace Wonky.Client.Pages
private async Task SetSearchPhrase(string searchTerm)
{
_savedSearch = searchTerm;
await _preferenceService.SetCompanyFilterPhrase(searchTerm);
await _preferenceService.SetCompanyFilterPhrase(searchTerm.Trim());
_companyList = new List<CompanyDto>();
_paging.PageNumber = 1;
_paging.SearchTerm = searchTerm;

View file

@ -35,10 +35,10 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Pages
{
public partial class CompanyNewPage : IDisposable
public partial class CustomerNewPage : IDisposable
{
[Inject] private IToastService _toast { get; set; }
[Inject] private ILogger<CompanyNewPage> _logger { get; set; }
[Inject] private ILogger<CustomerNewPage> _logger { get; set; }
[Inject] private ILocalStorageService _storage { get; set; }
[Inject] private NavigationManager _navigator { get; set; }
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }

View file

@ -33,11 +33,11 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Pages;
public partial class CompanyViewPage : IDisposable
public partial class CustomerViewPage : IDisposable
{
[Parameter] public string CompanyId { get; set; } = "";
[Inject] private IToastService _toast { get; set; }
[Inject] private ILogger<CompanyViewPage> _logger { get; set; }
[Inject] private ILogger<CustomerViewPage> _logger { get; set; }
[Inject] private NavigationManager _navigator { get; set; }
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
[Inject] private IHistoryHttpRepository _historyRepo { get; set; }

View file

@ -20,24 +20,24 @@
@page "/sales-reports/view/{ReportDate}"
@attribute [Authorize(Roles = "Adviser,Admin,Supervisor")]
@if (_report != null)
{
<div class="report-page d-print-block">
<div class="report-page">
<div class="row mb-3 d-print-none">
<div class="col-md-6 align-content-center">
<h3 class="workDate">@DateTime.Parse(ReportDate).ToLongDateString()</h3>
</div>
<div class="col col-md-4 align-content-center">
<WorkDateComponent SelectedDate="@ReportDate" OnChanged="GetReport"></WorkDateComponent>
</div>
<div class="col col-md-1 align-content-center">
<button class="btn btn-warning" type="button" onclick="window.print();">Print</button>
</div>
</div>
@if (!string.IsNullOrWhiteSpace(_report.ReportData.DayTypeEnum))
{
<PageTitle>@_report.ReportData.Name</PageTitle>
<div class="row">
<div class="col-md-6 d-print-none align-content-center">
@if (!string.IsNullOrWhiteSpace(ReportDate))
{
<h3 class="workDate">@DateTime.Parse(ReportDate).ToLongDateString()</h3>
}
</div>
<div class="col col-md-4 d-print-none align-content-center">
<WorkDateComponent SelectedDate="@ReportDate" OnChanged="GetReport"></WorkDateComponent>
</div>
<div class="col col-md-1 d-print-none align-content-center">
<button class="btn btn-warning" type="button" onclick="window.print();">Print</button>
</div>
<div class="col d-none d-print-block text-center align-content-center">
<div class="col d-none text-center align-content-center">
<h3>@_report.ReportData.Name</h3>
</div>
</div>
@ -49,22 +49,16 @@
<ReportDistanceLedgerComponent ReportData="_report.ReportData"></ReportDistanceLedgerComponent>
</div>
</div>
<ActivityTableComponent Activities="_report.ReportItems"></ActivityTableComponent>
<ReportActivityLedgerComponent ReportData="_report.ReportData"></ReportActivityLedgerComponent>
}
else
{
<div class="row">
<div class="col">
<ActivityTableComponent Activities="_report.ReportItems"></ActivityTableComponent>
</div>
<div class="col">Ingen data</div>
</div>
<div class="row">
<div class="col">
<ReportActivityLedgerComponent ReportData="_report.ReportData"></ReportActivityLedgerComponent>
</div>
</div>
</div>
}
else
{
<AppSpinner></AppSpinner>
}
}
</div>
@if (_items.Any())
{

View file

@ -38,6 +38,8 @@ public partial class SalesReportViewPage
private async Task GetReport(string workDate)
{
_report = new ReportView();
_items = new List<ReportItemView>();
if(workDate != ReportDate)
_navigator.NavigateTo($"/sales-reports/view/{workDate}");
_report = await _reportRepo.GetReport(workDate);

View file

@ -18,6 +18,26 @@
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"Chrome": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
"applicationUrl": "https://localhost:7174;http://localhost:5280",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"Firefox": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
"applicationUrl": "https://localhost:7174;http://localhost:5280",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,

View file

@ -39,7 +39,7 @@ main {
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
@media (max-width: 1024px) {
.top-row:not(.auth) {
display: none;
}
@ -53,7 +53,7 @@ main {
}
}
@media (min-width: 641px) {
@media (min-width: 1025px) {
.page {
flex-direction: row;
}

View file

@ -95,6 +95,13 @@
<span class="oi oi-question-mark" aria-hidden="true"></span> Hjælp
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link ps-2" href="/logout">
<span class="oi oi-account-login"></span> Log af
</NavLink>
</div>
</Authorized>
</AuthorizeView>
</nav>

View file

@ -50,7 +50,7 @@
color: white;
}
@media (min-width: 641px) {
@media (min-width: 1025px) {
.navbar-toggler {
display: none;
}

View file

@ -100,8 +100,4 @@
<_ContentIncludedByDefault Remove="wwwroot\css\bootstrap\js\bootstrap.min.js.map" />
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\scripts" />
</ItemGroup>
</Project>

View file

@ -1,9 +1,9 @@
{
"appInfo": {
"name": "Wonky Client",
"version": "0.8.122",
"version": "0.8.135",
"isBeta": true,
"sandBox": true,
"sandBox": false,
"image": "grumpy-coder.png"
},
"apiConfig": {

View file

@ -123,8 +123,24 @@ footer.version {
padding: 0 10px 0 0;
}
.back-to-top {
position: fixed;
bottom: 25px;
right: 25px;
display: none;
}
.report-page {
/* despite being deprecated
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-before
firefox documentation
https://developer.mozilla.org/en-US/docs/Web/CSS/break-before
firefox still needs this
*/
page-break-before: always;
page-break-after: always;
page-break-inside: avoid;
}
/* printer classes */
@ -143,9 +159,14 @@ footer.version {
color-adjust: exact;
}
.report-page {
/* deprecated properties */
page-break-before: always;
page-break-after: always;
page-break-inside: avoid;
/* new properties */
break-after: page;
break-inside: avoid;
height: initial;
font-size: 10px;
border: initial;

View file

@ -13,7 +13,7 @@
<meta name="theme-color" content="#000">
<base href="/" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="css/app.css" rel="stylesheet" />
<link href="css/app-135.css" rel="stylesheet" />
<link href="Wonky.Client.styles.css" rel="stylesheet" />
<link href="_content/Blazored.Toast/blazored-toast.min.css" rel="stylesheet" />
</head>

View file

@ -0,0 +1,16 @@
(document).ready(function(){
$(window).scroll(function () {
if ($(this).scrollTop() > 50) {
$('#back-to-top').fadeIn();
} else {
$('#back-to-top').fadeOut();
}
});
// scroll body to 0px on click
$('#back-to-top').click(function () {
$('body,html').animate({
scrollTop: 0
}, 400);
return false;
});
});