wip v.0.8.7
This commit is contained in:
parent
dd936c75ef
commit
e86e7719c5
19 changed files with 226 additions and 148 deletions
|
@ -11,7 +11,7 @@
|
|||
<img class="state the-good rounded-circle me-1" src="state.png" alt="state"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
Ok
|
||||
Er besøgt.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -19,7 +19,7 @@
|
|||
<img class="state the-bad rounded-circle me-1" src="state.png" alt="state"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
Planlæg besøg
|
||||
Planlæg besøg.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -27,7 +27,7 @@
|
|||
<img class="state the-ugly rounded-circle me-1" src="state.png" alt="state"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
Interval overskredet
|
||||
Besøges nu!
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -35,7 +35,7 @@
|
|||
<img class="state the-draw rounded-circle me-1" src="state.png" alt="state"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
Opdatering nødvendig
|
||||
Opdater besøgsdato og/eller CVR/ORG nummer.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -43,7 +43,7 @@
|
|||
<img class="state the-dead rounded-circle me-1" src="state.png" alt="state"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
Virksomhed ophørt
|
||||
Virksomhed ophørt!
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
@using Microsoft.AspNetCore.Authorization
|
||||
@*
|
||||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
|
@ -16,58 +15,19 @@
|
|||
//
|
||||
*@
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
<PageTitle>Inno Web CRM</PageTitle>
|
||||
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
<div class="row mb-1 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<span class="workDate">@(string.IsNullOrWhiteSpace(_workDate) ? "" : $"{DateTime.Parse(_workDate).ToLongDateString()}")</span>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<WorkDateComponent OnChanged="GetActivities"></WorkDateComponent>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3>Kalender</h3>
|
||||
</div>
|
||||
<div class="col">
|
||||
<WorkDateComponent OnChanged="GetCalender"></WorkDateComponent>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<hr />
|
||||
<h5>Dagens aktivitet</h5>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr class="align-items-center">
|
||||
<th scope="col">Kunde</th>
|
||||
<th scope="col">Demo</th>
|
||||
<th scope="col">Salg</th>
|
||||
<th scope="col">Sum</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if (_view != null)
|
||||
{
|
||||
foreach (var activity in _view.Activities)
|
||||
{
|
||||
<tr class="align-items-center">
|
||||
<td>
|
||||
@activity.Company.Name
|
||||
</td>
|
||||
<td>
|
||||
@activity.Demo
|
||||
</td>
|
||||
<td>
|
||||
@activity.SalesResume
|
||||
</td>
|
||||
<td>
|
||||
@activity.OrderAmount
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</Authorized>
|
||||
<NotAuthorized>
|
||||
<a href="/login">Login</a>
|
||||
</NotAuthorized>
|
||||
</AuthorizeView>
|
||||
</div>
|
||||
</div>
|
|
@ -34,10 +34,7 @@ public partial class Home : IDisposable
|
|||
[Inject] public UserPreferenceService UserPrefs { get; set; }
|
||||
[Inject] public ILogger<Home> Logger { get; set; }
|
||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] private NavigationManager Navigator { get; set; }
|
||||
[Inject] private IActivityHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] private IToastService _toast { get; set; }
|
||||
private NgActivityListView _view { get; set; } = new();
|
||||
private Preferences _prefs { get; set; } = new();
|
||||
private string _workDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
|
||||
|
@ -50,15 +47,12 @@ public partial class Home : IDisposable
|
|||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
await GetActivities(_workDate);
|
||||
await GetCalender(_workDate);
|
||||
}
|
||||
|
||||
private async Task GetActivities(string workDate)
|
||||
private async Task GetCalender(string workDate)
|
||||
{
|
||||
_toast.ShowInfo("Vent nogle sekunder for data");
|
||||
_workDate = workDate;
|
||||
_view = new NgActivityListView();
|
||||
_view = await ActivityRepo.GetActivities(workDate);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
|
|
|
@ -62,7 +62,7 @@ namespace Wonky.Client.HttpInterceptors
|
|||
_interceptor.BeforeSendAsync -= InterceptBeforeSendAsync;
|
||||
}
|
||||
|
||||
public async Task InterceptBeforeSendAsync(object sender, HttpClientInterceptorEventArgs e)
|
||||
private async Task InterceptBeforeSendAsync(object sender, HttpClientInterceptorEventArgs e)
|
||||
{
|
||||
var absolutePath = e.Request.RequestUri.AbsolutePath;
|
||||
|
||||
|
@ -78,27 +78,24 @@ namespace Wonky.Client.HttpInterceptors
|
|||
}
|
||||
}
|
||||
|
||||
public void AfterSend (object sender, HttpClientInterceptorEventArgs e)
|
||||
private void AfterSend (object sender, HttpClientInterceptorEventArgs e)
|
||||
{
|
||||
if (e.Response == null || e.Response.IsSuccessStatusCode)
|
||||
return;
|
||||
|
||||
string message;
|
||||
var currDoc = _navigation.ToBaseRelativePath(_navigation.Uri);
|
||||
if (currDoc.Contains("login"))
|
||||
currDoc = "/";
|
||||
|
||||
switch (e.Response.StatusCode)
|
||||
{
|
||||
case HttpStatusCode.NotFound:
|
||||
//_navigation.NavigateTo("/404");
|
||||
message = "Der er ingen data ...";
|
||||
message = "Der var ingen data ...";
|
||||
_toast.ShowInfo(message);
|
||||
break;
|
||||
case HttpStatusCode.BadRequest:
|
||||
ClearInfo();
|
||||
_navigation.NavigateTo($"/login/{currDoc}");
|
||||
message = "Login info skal fornyes ...";
|
||||
_toast.ShowInfo(message);
|
||||
break;
|
||||
case HttpStatusCode.Unauthorized:
|
||||
ClearInfo();
|
||||
_navigation.NavigateTo($"/login/{currDoc}");
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
@using Microsoft.AspNetCore.Authorization
|
||||
@attribute [Authorize(Roles = "Adviser")]
|
||||
@using Wonky.Client.Components
|
||||
|
||||
<div class="row mb-2 align-items-center">
|
||||
<div class="col">
|
||||
<h5 style="font-variant: small-caps">@_workDate.ToLongDateString()</h5>
|
||||
|
|
66
Wonky.Client/Pages/ActivityToday.razor
Normal file
66
Wonky.Client/Pages/ActivityToday.razor
Normal file
|
@ -0,0 +1,66 @@
|
|||
@*
|
||||
// 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 Microsoft.AspNetCore.Authorization
|
||||
@using Wonky.Client.Components
|
||||
@attribute [Authorize(Roles = "Adviser")]
|
||||
@page "/activity-today"
|
||||
|
||||
<div class="row mb-1 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<span class="workDate">@(string.IsNullOrWhiteSpace(_workDate) ? "" : $"{DateTime.Parse(_workDate).ToLongDateString()}")</span>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<WorkDateComponent OnChanged="GetActivities"></WorkDateComponent>
|
||||
</div>
|
||||
<div class="col">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
<h5>Dagens aktivitet</h5>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr class="align-items-center">
|
||||
<th scope="col">Kunde</th>
|
||||
<th scope="col">Demo</th>
|
||||
<th scope="col">Salg</th>
|
||||
<th scope="col">Sum</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if (_view != null)
|
||||
{
|
||||
foreach (var activity in _view.Activities)
|
||||
{
|
||||
<tr class="align-items-center">
|
||||
<td>
|
||||
@activity.Company.Name
|
||||
</td>
|
||||
<td>
|
||||
@activity.Demo
|
||||
</td>
|
||||
<td>
|
||||
@activity.SalesResume
|
||||
</td>
|
||||
<td>
|
||||
@activity.OrderAmount
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
48
Wonky.Client/Pages/ActivityToday.razor.cs
Normal file
48
Wonky.Client/Pages/ActivityToday.razor.cs
Normal file
|
@ -0,0 +1,48 @@
|
|||
using Blazored.Toast.Services;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.Components;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Wonky.Client.Services;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ActivityToday
|
||||
{
|
||||
[Inject] public UserPreferenceService UserPrefs { get; set; }
|
||||
[Inject] public ILogger<Home> Logger { get; set; }
|
||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] private NavigationManager Navigator { get; set; }
|
||||
[Inject] private IActivityHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] private IToastService _toast { get; set; }
|
||||
private NgActivityListView _view { get; set; } = new();
|
||||
private Preferences _prefs { get; set; } = new();
|
||||
private string _workDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_prefs = await UserPrefs.GetPreferences();
|
||||
if(!string.IsNullOrWhiteSpace(_prefs.WorkDate))
|
||||
_workDate = _prefs.WorkDate;
|
||||
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
await GetActivities(_workDate);
|
||||
}
|
||||
|
||||
private async Task GetActivities(string workDate)
|
||||
{
|
||||
_toast.ShowInfo("Vent nogle sekunder for data");
|
||||
_workDate = workDate;
|
||||
_view = new NgActivityListView();
|
||||
_view = await ActivityRepo.GetActivities(workDate);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
}
|
||||
|
||||
}
|
|
@ -69,7 +69,9 @@
|
|||
<th>
|
||||
CVR/ORG
|
||||
</th>
|
||||
<td class="state"><DisplayStateComponent StateClass="@_vatState"></DisplayStateComponent></td>
|
||||
<td class="state">
|
||||
<DisplayStateComponent StateClass="@_vatState"></DisplayStateComponent>
|
||||
</td>
|
||||
<td>
|
||||
<InputText id="vatNumber" class="form-control" @bind-Value="_companyView.VatNumber"/>
|
||||
<ValidationMessage For="@(() => _companyView.VatNumber)"></ValidationMessage>
|
||||
|
@ -154,7 +156,9 @@
|
|||
<th>
|
||||
Næste besøg
|
||||
</th>
|
||||
<td class="state"><DisplayStateComponent StateClass="@(_hasFolded ? "the-dead" : Utils.GetVisitState($"{_companyView.NextVisit}"))"> </DisplayStateComponent></td>
|
||||
<td class="state">
|
||||
<DisplayStateComponent StateClass="@(_hasFolded ? "the-dead" : Utils.GetVisitState($"{_companyView.NextVisit}"))"> </DisplayStateComponent>
|
||||
</td>
|
||||
<td>
|
||||
<InputDate id="nextVisit" class="form-control" @bind-Value="@(_nextVisit)"/>
|
||||
<ValidationMessage For="@(() => _companyView.NextVisit)">Dato kan ikke vær før sidste besøg</ValidationMessage>
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
@using Wonky.Client.Helpers
|
||||
@attribute [Authorize(Roles = "Adviser")]
|
||||
|
||||
|
||||
@if (_companyDto != null)
|
||||
{
|
||||
<div class="card">
|
||||
|
@ -81,5 +82,5 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
<AppSpinner/>
|
||||
<AppSpinner/>
|
||||
}
|
|
@ -21,6 +21,7 @@
|
|||
@using System.Xml
|
||||
@attribute [Authorize(Roles = "Adviser")]
|
||||
|
||||
|
||||
<h2>Opret kunde</h2>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -69,7 +70,9 @@
|
|||
<td class="align-middle">@info.Name</td>
|
||||
<td class="align-middle">@info.States[^1].State</td>
|
||||
<td class="align-middle"></td>
|
||||
<td class="align-middle"><button class="btn btn-primary" @onclick="@(() => SelectCompany(info.VatNumber))">OVERFØR</button></td>
|
||||
<td class="align-middle">
|
||||
<button class="btn btn-primary" @onclick="@(() => SelectCompany(info.VatNumber))">OVERFØR</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
|
@ -81,7 +84,7 @@
|
|||
</table>
|
||||
|
||||
<EditForm EditContext="_editContext" OnValidSubmit="SubmitCompanyForm">
|
||||
<DataAnnotationsValidator />
|
||||
<DataAnnotationsValidator/>
|
||||
<InputText type="hidden" id="salesRepId" @bind-Value="_companyObject.SalesRepId"/>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -123,7 +126,9 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td class="align-middle">Moms/Org Reg.</td>
|
||||
<td class="align-middle state"><DisplayStateComponent StateClass="@RegState"></DisplayStateComponent></td>
|
||||
<td class="align-middle state">
|
||||
<DisplayStateComponent StateClass="@RegState"></DisplayStateComponent>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<InputText id="vatNumber" class="form-control" @bind-Value="_companyObject.VatNumber"/>
|
||||
<ValidationMessage For="@(() => _companyObject.VatNumber)"></ValidationMessage>
|
||||
|
|
|
@ -18,36 +18,38 @@
|
|||
@using Wonky.Client.Components
|
||||
@using Microsoft.Extensions.Options
|
||||
@using Wonky.Entity.Configuration
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@page "/info"
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
<div class="row mb-2">
|
||||
<div class="col col-md-2">
|
||||
<img class="grumpy-coder" src="@_app?.Image" alt="Wonky Logo"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h5>Browservalg</h5>
|
||||
Det anbefales at bruge en Chrome baseret browser f.eks. Edge, Safari, Vivaldi, Chrome eller Chromium
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<ColorCoding></ColorCoding>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5>
|
||||
App version <AppVersion></AppVersion>
|
||||
</h5>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
@attribute [Authorize(Roles = "Adviser,Admin")]
|
||||
<div class="row mb-2">
|
||||
<div class="col col-md-2">
|
||||
<img class="grumpy-coder" src="@_app?.Image" alt="Wonky Logo"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h5>Browservalg</h5>
|
||||
Det anbefales at bruge en Chrome baseret browser f.eks. Edge, Safari, Vivaldi, Chrome eller Chromium
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<ColorCoding></ColorCoding>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5>
|
||||
App version <AppVersion></AppVersion>
|
||||
</h5>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code{
|
||||
|
||||
[Inject] IOptions<AppInfo>? AppInfo { get; set; }
|
||||
[Inject]
|
||||
IOptions<AppInfo>? AppInfo { get; set; }
|
||||
|
||||
private AppInfo? _app;
|
||||
|
||||
protected override void OnInitialized()
|
||||
|
@ -56,4 +58,3 @@
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
<ItemGroupDropdown OnChanged="SetItemGroup"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSearchDropdown OnChanged="SetSearchCol"/>
|
||||
<ItemSearchDropdown OnChanged="SetSearchCol"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
||||
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSortDropdown OnChanged="SetSortCol"/>
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
@page "/sales-item/{salesItemId}"
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@attribute [Authorize(Roles = "Adviser,Admin")]
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h1>@Item.Name</h1>
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
@using Microsoft.AspNetCore.Authorization
|
||||
@using Wonky.Client.Components
|
||||
@attribute [Authorize(Roles = "Adviser")]
|
||||
|
||||
@page "/sales-report"
|
||||
|
||||
<EditForm EditContext="_editContext">
|
||||
|
@ -62,15 +61,15 @@
|
|||
<option value="sickLeave">Sygdom</option>
|
||||
<option value="leave">Ferie</option>
|
||||
</select>
|
||||
<ValidationMessage For="@(() => _report.DayTypeEnum)" />
|
||||
<ValidationMessage For="@(() => _report.DayTypeEnum)"/>
|
||||
</td>
|
||||
@if (_report.DayTypeEnum.ToLower().Contains("leave"))
|
||||
{
|
||||
<td>
|
||||
<InputDate class="form-control" @bind-Value="_leaveBegin" />
|
||||
<InputDate class="form-control" @bind-Value="_leaveBegin"/>
|
||||
</td>
|
||||
<td>
|
||||
<InputDate class="form-control" @bind-Value="_leaveEnd" />
|
||||
<InputDate class="form-control" @bind-Value="_leaveEnd"/>
|
||||
</td>
|
||||
}
|
||||
else
|
||||
|
@ -86,11 +85,15 @@
|
|||
}
|
||||
<th>
|
||||
<button type="button" class="btn btn-info"
|
||||
@onclick="InitializeReport" disabled="@(!_noFigures)">Nøgletal</button>
|
||||
@onclick="InitializeReport" disabled="@(!_noFigures)">
|
||||
Nøgletal
|
||||
</button>
|
||||
</th>
|
||||
<td>
|
||||
<button type="button" class="btn btn-info"
|
||||
@onclick="SubmitReport" disabled="@(_noFigures)">Gem Rapport</button>
|
||||
@onclick="SubmitReport" disabled="@(_noFigures)">
|
||||
Gem Rapport
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -108,11 +111,11 @@
|
|||
<tr>
|
||||
<td>
|
||||
<InputTextArea id="description" class="form-control" @bind-Value="_report.Description"/>
|
||||
<ValidationMessage For="@(() => _report.Description)" />
|
||||
<ValidationMessage For="@(() => _report.Description)"/>
|
||||
</td>
|
||||
<td>
|
||||
<InputText id="supervisedBy" class="form-control" @bind-Value="_report.SupervisedBy"/>
|
||||
<ValidationMessage For="@(() => _report.SupervisedBy)" />
|
||||
<ValidationMessage For="@(() => _report.SupervisedBy)"/>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -130,15 +133,15 @@
|
|||
<tr>
|
||||
<td>
|
||||
<InputNumber class="form-control" @bind-Value="@_report.Figures.KmEvening"
|
||||
disabled="@(_noFigures)" />
|
||||
disabled="@(_noFigures)"/>
|
||||
</td>
|
||||
<td>
|
||||
<InputNumber class="form-control" @bind-Value="@_report.Figures.KmMorning"
|
||||
disabled="@(_noFigures)" />
|
||||
disabled="@(_noFigures)"/>
|
||||
</td>
|
||||
<td>
|
||||
<InputNumber class="form-control" @bind-Value="@_report.Figures.DistancePrivate"
|
||||
disabled="@(_noFigures)" />
|
||||
disabled="@(_noFigures)"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -247,4 +250,3 @@
|
|||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
@attribute [Authorize(Roles = "Adviser,Admin,Supervisor")]
|
||||
|
||||
<WorkDateComponent OnChanged="GetReport"></WorkDateComponent>
|
||||
|
||||
<div>
|
||||
@if (_report.Activities.Any())
|
||||
{
|
||||
|
@ -101,9 +100,6 @@
|
|||
<td>@(_report.Report.TotalSaleCountMonth)</td>
|
||||
<td>@(_report.Report.TotalTurnoverMonth)</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
|
@ -30,10 +30,6 @@
|
|||
<div class="content px-4">
|
||||
@Body
|
||||
</div>
|
||||
<BlazoredToasts Position="ToastPosition.BottomCenter"
|
||||
Timeout="3"
|
||||
IconType="IconType.FontAwesome"
|
||||
SuccessIcon="oi oi-thumb-up"
|
||||
ErrorIcon="oi oi-bug" />
|
||||
<BlazoredToasts Position="ToastPosition.BottomCenter" Timeout="2"/>
|
||||
</main>
|
||||
</div>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<AuthorizeView>
|
||||
<NotAuthorized>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="login">
|
||||
<NavLink class="nav-link ps-2" href="login">
|
||||
<span class="oi oi-account-login"></span> Log ind
|
||||
</NavLink>
|
||||
</div>
|
||||
|
@ -43,28 +43,33 @@
|
|||
<AuthorizeView Roles="Adviser,Admin">
|
||||
<Authorized>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="/" Match="NavLinkMatch.All">
|
||||
<span class="oi oi-dashboard" aria-hidden="true"></span> Start
|
||||
<NavLink class="nav-link ps-2" href="/home" Match="NavLinkMatch.All">
|
||||
<span class="oi oi-dashboard" aria-hidden="true"></span> ToDo
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="companies">
|
||||
<NavLink class="nav-link ps-2" href="/activity-today" Match="NavLinkMatch.All">
|
||||
<span class="oi oi-dashboard" aria-hidden="true"></span> Aktivitet
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link ps-2" href="companies">
|
||||
<span class="oi oi-file" aria-hidden="true"></span> Firmaer
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="price-catalog">
|
||||
<NavLink class="nav-link ps-2" href="price-catalog">
|
||||
<span class="oi oi-spreadsheet" aria-hidden="true"></span> Priskatalog
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="sales-report">
|
||||
<NavLink class="nav-link ps-2" href="sales-report">
|
||||
<span class="oi oi-document" aria-hidden="true"></span> Dagsrapport
|
||||
</NavLink>
|
||||
</div>
|
||||
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="info">
|
||||
<NavLink class="nav-link ps-2" href="info">
|
||||
<span class="oi oi-question-mark" aria-hidden="true"></span> Hjælp
|
||||
</NavLink>
|
||||
</div>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
},
|
||||
"appInfo": {
|
||||
"name": "Wonky Client",
|
||||
"version": "0.8.6",
|
||||
"version": "0.8.7",
|
||||
"isBeta": true,
|
||||
"image": "grumpy-coder.png"
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue