306 lines
9.1 KiB
Plaintext
306 lines
9.1 KiB
Plaintext
@page "/user"
|
|
|
|
|
|
@inject IJSRuntime JSRuntime
|
|
@inject IHttpContextAccessor httpContextAccessor
|
|
|
|
<h3>User</h3>
|
|
|
|
|
|
|
|
<div class="d-flex">
|
|
@if (Width > 1021)
|
|
{
|
|
<div class="col-3"></div>
|
|
}
|
|
<div class="card @mainSize">
|
|
@*<div class="card-header text-center">
|
|
<div style="font-size: 4rem;">
|
|
<i class="fa-solid fa-user"></i>
|
|
</div>
|
|
<div style="font-size: 1.5rem;">
|
|
<span>USER DATA</span>
|
|
</div>
|
|
</div>*@
|
|
<div class="card-body">
|
|
<div class="text-center fw-bold fs-3">
|
|
Preferenze
|
|
</div>
|
|
<div class="my-1">
|
|
<ul class="list-group">
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-center mb-1">Modalità di inserimento del tempo ciclo</div>
|
|
<div class="d-flex justify-content-center">
|
|
<div class="btn-group" role="group" aria-label="Basic outlined example">
|
|
<button class="btn btn-sm @btnMsStyle" @onclick='()=>setTcMode("ms")'>min:sec</button>
|
|
<button class="btn btn-sm @btnMcStyle" @onclick='()=>setTcMode("mc")'>min.cent</button>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-center mb-1">Lingua</div>
|
|
<select class="form-select w-25" @bind="langIns">
|
|
<option value="IT">IT</option>
|
|
<option value="EN">EN</option>
|
|
</select>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-center mb-1">Modalità di visualizzazione delle macchine in 'Mappa Stato'</div>
|
|
<div class="d-flex justify-content-center">
|
|
<div class="btn-group" role="group" aria-label="Basic outlined example">
|
|
<button class="btn btn-sm @btnShrinkStyle" @onclick='()=>setDefCardMode("shrink")'>Shrink</button>
|
|
<button class="btn btn-sm @btnFullStyle" @onclick='()=>setDefCardMode("full")'>Full</button>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="text-center fw-bold fs-3">
|
|
User Data
|
|
</div>
|
|
<div>
|
|
<ul class="list-group">
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-start">Prossima disconnessione:</div>
|
|
<div class="text-end"><b> @($"{DateTime.Now.AddMinutes(dtScadLogin)}")</b></div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-start">User</div>
|
|
<div class="text-end"><b> @($"{UserName}[{MatrOpr}]")</b></div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-start">Server Time</div>
|
|
<div class="text-end"><b>@($"{DateTime.Now.ToString("dddd dd.MM.yyyy HH:mm.ss")}")</b></div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-start">Client IP</div>
|
|
<div class="text-end"><b>@currIpv4</b></div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between">
|
|
<div class="text-start">Browser Size</div>
|
|
<div class="text-end"><b>@($"{Width}x{Height}")</b></div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="card-footer">
|
|
<button class="w-100 btn btn-success">
|
|
<i class="fa-solid fa-gear"></i> ABOUT PAGE
|
|
</button>
|
|
<hr />
|
|
<a class="w-100 btn btn-danger" href="logout">
|
|
<i class="fa-solid fa-right-from-bracket"></i> LOGOUT
|
|
</a>
|
|
</div>
|
|
</div>
|
|
@if (Width > 1021)
|
|
{
|
|
<div class="col-3"></div>
|
|
}
|
|
</div>
|
|
|
|
@code {
|
|
[Inject]
|
|
private MessageService MsgServ { get; set; } = null!;
|
|
|
|
protected async Task setTcMode(string tcMode)
|
|
{
|
|
await Task.Delay(1);
|
|
tcModIns = tcMode;
|
|
}
|
|
protected async Task setLang(string lang)
|
|
{
|
|
await Task.Delay(1);
|
|
langIns = lang;
|
|
}
|
|
protected async Task setDefCardMode(string defCardMode)
|
|
{
|
|
await Task.Delay(1);
|
|
defCardModeIns = defCardMode;
|
|
}
|
|
|
|
private int MatrOpr
|
|
{
|
|
get => MsgServ.MatrOpr;
|
|
}
|
|
|
|
private string UserName
|
|
{
|
|
get => MsgServ.CognomeNome;
|
|
}
|
|
|
|
protected string btnMsStyle
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
if (tcModIns == "ms")
|
|
{
|
|
answ = "btn-primary";
|
|
}
|
|
else
|
|
{
|
|
answ = "btn-outline-secondary";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
protected string btnMcStyle
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
if (tcModIns == "mc")
|
|
{
|
|
answ = "btn-primary";
|
|
}
|
|
else
|
|
{
|
|
answ = "btn-outline-secondary";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
protected string btnShrinkStyle
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
if (defCardModeIns == "shrink")
|
|
{
|
|
answ = "btn-primary";
|
|
}
|
|
else
|
|
{
|
|
answ = "btn-outline-secondary";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
protected string btnFullStyle
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
if (defCardModeIns == "full")
|
|
{
|
|
answ = "btn-primary";
|
|
}
|
|
else
|
|
{
|
|
answ = "btn-outline-secondary";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
|
|
protected string _tcModIns { get; set; } = "";
|
|
|
|
protected string tcModIns
|
|
{
|
|
get => _tcModIns;
|
|
set
|
|
{
|
|
if (_tcModIns != value)
|
|
{
|
|
_tcModIns = value;
|
|
MsgServ.UserPrefSet("TcMode", value);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected string _langIns { get; set; } = "EN";
|
|
|
|
protected string langIns
|
|
{
|
|
get => _langIns;
|
|
set
|
|
{
|
|
if (_langIns != value)
|
|
{
|
|
_langIns = value;
|
|
MsgServ.UserPrefSet("Lang", value);
|
|
}
|
|
}
|
|
}
|
|
protected string _defCardMode { get; set; } = "";
|
|
|
|
protected string defCardModeIns
|
|
{
|
|
get => _defCardMode;
|
|
set
|
|
{
|
|
if (_defCardMode != value)
|
|
{
|
|
_defCardMode = value;
|
|
MsgServ.UserPrefSet("DefCardMode", value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public int Height { get; set; } = 0;
|
|
public int Width { get; set; } = 0;
|
|
public string currIpv4 { get; set; } = "";
|
|
|
|
public class WindowDimension
|
|
{
|
|
public int Width { get; set; }
|
|
public int Height { get; set; }
|
|
}
|
|
protected async override Task OnAfterRenderAsync(bool firstRender)
|
|
{
|
|
//await Task.Delay(500);
|
|
if (firstRender)
|
|
{
|
|
await getWDim();
|
|
StateHasChanged();
|
|
Log.Debug($"Dimensioni schermo: {Width}x{Height}");
|
|
}
|
|
}
|
|
|
|
[Inject]
|
|
protected SharedMemService MStor { get; set; } = null!;
|
|
protected int dtScadLogin { get; set; } = 0;
|
|
protected async override Task OnInitializedAsync()
|
|
{
|
|
tcModIns = MsgServ.UserPrefSetup("TcMode", "ms");
|
|
langIns = MsgServ.UserPrefSetup("Lang", "IT");
|
|
defCardModeIns = MsgServ.UserPrefSetup("DefCardMode", "full");
|
|
dtScadLogin = MStor.GetConfInt("TAB_dtTimerScadLogin");
|
|
await Task.Delay(1);
|
|
if (string.IsNullOrEmpty(currIpv4))
|
|
{
|
|
// ricalcolo e salvo...
|
|
if (httpContextAccessor.HttpContext != null)
|
|
{
|
|
var remoteIp = $"{httpContextAccessor.HttpContext.Connection?.RemoteIpAddress}";
|
|
// provo a recuperare ipV4...
|
|
currIpv4 = EgwCoreLib.Razor.Data.IpUtils.getLocalIpv4(remoteIp);
|
|
}
|
|
}
|
|
}
|
|
protected async Task getWDim()
|
|
{
|
|
var dimension = await JSRuntime.InvokeAsync<WindowDimension>("getWindowDimensions");
|
|
Height = dimension.Height;
|
|
Width = dimension.Width;
|
|
}
|
|
|
|
protected string mainSize
|
|
{
|
|
get
|
|
{
|
|
string answ = "col-12";
|
|
if (Width > 1021)
|
|
{
|
|
answ = "col-6";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
|
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
|
}
|
|
|