Aggiunto livello utente (utente base vs utente avanzato)

This commit is contained in:
Annamaria Sassi
2026-01-19 10:31:08 +01:00
parent bc96177d74
commit aae2fa5ba7
29 changed files with 958 additions and 1450 deletions
+48 -29
View File
@@ -4,7 +4,7 @@
<div class="col-lg-6 col-md-12 my-2">
<div class="d-flex justify-content-between align-items-center">
<h6 class="fw-bold">Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))</h6>
@if(CurrSashGroup.SashList.Count > 1)
@if(!User && CurrSashGroup.SashList.Count > 1)
{
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle btn-sm" type="button" @onclick="ToggleDropdown">
@@ -30,13 +30,21 @@
<button class="btn btn-outline-secondary btn-sm" type="button" @onclick="() => doEdit(IndexSash)">Edit</button>
</div>
<div class="input-group mb-2 mt-2">
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OpeningTypeIndex">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<option value=@(openingType.Id)>@(openingType.Name)</option>
}
</select>
@if(User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
}
else
{
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OpeningTypeIndex">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<option value=@(openingType.Id)>@(openingType.Name)</option>
}
</select>
}
</div>
<div class="input-group mb-2">
<span class="input-group-text">Dimension</span>
@@ -82,7 +90,7 @@ else
{
<div class="d-flex justify-content-between align-items-center mb-2">
<h6 class="fw-bold text-nowrap">Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))</h6>
@if (!(CurrAnta.AreaList[0] is Split))
@if (!User && !(CurrAnta.AreaList[0] is Split))
{
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AddSplitToSash()">Add split</button>
@@ -91,18 +99,26 @@ else
<button class="btn btn-outline-secondary btn-sm">Add inglesina</button>
</div>
}
<button type="button" class="btn-close" aria-label="Close" @onclick="() => ClosePopup(IndexSash)"></button>
<button type="button" class="btn-close" aria-label="Close" @onclick="() => ClosePopup(IndexSash)"></button>
</div>
<div class="row">
<div class="col-lg-6 col-md-12 my-2">
<div class="input-group mb-2">
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OpeningTypeIndex">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<option value=@(openingType.Id)>@(openingType.Name)</option>
}
</select>
@if(User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
}
else
{
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OpeningTypeIndex">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<option value=@(openingType.Id)>@(openingType.Name)</option>
}
</select>
}
</div>
<div class="input-group mb-2">
<span class="input-group-text">Dimension</span>
@@ -148,21 +164,24 @@ else
<div class="col d-flex justify-content-start align-items-center">
<h6>Joints</h6>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(WebWindowComplex.Json.WindowConst.Joints.ANGLED)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">Angled</button>
@if(!User)
{
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(WebWindowComplex.Json.WindowConst.Joints.ANGLED)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">Angled</button>
</div>
</div>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(WebWindowComplex.Json.WindowConst.Joints.FULL_H)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_H)">Horizontal</button>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(WebWindowComplex.Json.WindowConst.Joints.FULL_H)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_H)">Horizontal</button>
</div>
</div>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(WebWindowComplex.Json.WindowConst.Joints.FULL_V)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_V)">Vertical</button>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(WebWindowComplex.Json.WindowConst.Joints.FULL_V)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_V)">Vertical</button>
</div>
</div>
</div>
}
</div>
@foreach (Joint joint in CurrSashDim.JointList)
{
+7 -1
View File
@@ -27,6 +27,12 @@ namespace WebWindowComplex.Compo
[CascadingParameter(Name = "SashList")]
public List<Sash> SashList { get; set; } = null!;
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
/// <summary>
/// Modalità di visualizzazione (view /edit)
/// </summary>
@@ -292,7 +298,7 @@ namespace WebWindowComplex.Compo
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
private string ButtonJointCss(WebWindowComplex.Json.WindowConst.Joints type)
private string ButtonJointCss(Json.WindowConst.Joints type)
{
foreach (var item in CurrSashDim.JointList)
{
+16 -27
View File
@@ -17,39 +17,28 @@
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@buttonFillCss(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">Glass</button>
@if (User)
{
<button class="@buttonFillCss(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">Glass</button>
}
else
{
<button class="@buttonFillCss(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">Glass</button>
}
</div>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@buttonFillCss(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">Wood</button>
@if (User)
{
<button class="@buttonFillCss(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">Wood</button>
}
else
{
<button class="@buttonFillCss(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">Wood</button>
}
</div>
</div>
</div>
@* <div class="d-flex justify-content-between align-items-center">
<div class="col d-flex justify-content-center">
<h6 class="text-center">Selected all fill</h6>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">All glass</button>
</div>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">All wood</button>
</div>
</div>
</div> *@
</div>
</div>
@* @foreach (var currSplitted in SplittedList)
{
@if (currSplitted.AreaList.First().Equals(CurrFill))
{
<AreaSplit CurrSplitted="currSplitted"
EC_AddSash="AddSash"
EC_CopySash="CopySash">
</AreaSplit>
}
} *@
+6
View File
@@ -20,6 +20,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public Fill CurrFill { get; set; } = null!;
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[Parameter]
public bool User { get; set; } = false!;
/// <summary>
/// Evento per cambiare tutti i fill
/// </summary>
+61 -35
View File
@@ -15,13 +15,21 @@
<div class="row">
<div class="col-md-12 col-lg-6">
<div class="input-group my-2">
<label class="input-group-text">Shape</label>
<select class="form-select" @bind="@SelShapeIndex">
@foreach (var i in CurrFrameWindow.ShapeList)
{
<option value="@(i.Id)">@(i.Name)</option>
}
</select>
@if (User)
{
<span class="input-group-text">Shape</span>
<input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))">
}
else
{
<label class="input-group-text">Shape</label>
<select class="form-select" @bind="@SelShapeIndex">
@foreach (var i in CurrFrameWindow.ShapeList)
{
<option value="@(i.Id)">@(i.Name)</option>
}
</select>
}
</div>
</div>
</div>
@@ -41,17 +49,22 @@
<h6 class="fw-bold">Threshold</h6>
</div>
<div class="input-group mb-2">
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="SelThreshold">
@foreach (var item in CurrFrameWindow.ThresholdList)
{
<option value="@(item.Type)">@(item.Name)</option>
}
</select>
@* <select class="form-select">
<option value="0">Soglia</option>
<option value="1">Sgocciolatoio</option>
</select> *@
@if (User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrFrameWindow.ThresholdList.FirstOrDefault(x => x.Type == SelThreshold).Name)">
}
else
{
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="SelThreshold">
@foreach (var item in CurrFrameWindow.ThresholdList)
{
<option value="@(item.Type)">@(item.Name)</option>
}
</select>
}
</div>
</div>
</div>
@@ -62,21 +75,24 @@
<div class="col d-flex justify-content-start align-items-center">
<h6 class="fw-bold">Joints</h6>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(Json.WindowConst.Joints.ANGLED)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED, CurrFrameWindow)">Angled</button>
@if (!User)
{
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(Json.WindowConst.Joints.ANGLED)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED, CurrFrameWindow)">Angled</button>
</div>
</div>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(Json.WindowConst.Joints.FULL_H)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_H, CurrFrameWindow)">Horizontal</button>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(Json.WindowConst.Joints.FULL_H)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_H, CurrFrameWindow)">Horizontal</button>
</div>
</div>
</div>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(Json.WindowConst.Joints.FULL_V)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_V, CurrFrameWindow)">Vertical</button>
<div class="col d-flex">
<div class="input-group mb-2 justify-content-center">
<button class="@ButtonJointCss(Json.WindowConst.Joints.FULL_V)" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_V, CurrFrameWindow)">Vertical</button>
</div>
</div>
</div>
}
</div>
<div class="row">
@foreach (Joint joint in CurrFrameWindow.JointList)
@@ -94,7 +110,14 @@
<div class="row">
<div class="input-group mb-2">
<span class="input-group-text">Quantity</span>
<input type="number" class="form-control" @bind="@FrameBottomRailQty">
@if (User)
{
<input type="number" readonly class="form-control" value="@FrameBottomRailQty">
}
else
{
<input type="number" class="form-control" @bind="@FrameBottomRailQty">
}
</div>
</div>
}
@@ -103,9 +126,12 @@
</div>
</div>
@if (!(CurrFrameWindow.AreaList[0] is Split) || (SashList.Count == 0 && SplitList.Count == 0))
@if (!User)
{
<AreaFrame EC_AddSash="AddSash"
EC_AddSplit="AddSplit">
</AreaFrame>
@if (!(CurrFrameWindow.AreaList[0] is Split) || (SashList.Count == 0 && SplitList.Count == 0))
{
<AreaFrame EC_AddSash="AddSash"
EC_AddSplit="AddSplit">
</AreaFrame>
}
}
@@ -50,6 +50,12 @@ namespace WebWindowComplex.Compo
[CascadingParameter(Name = "SplitList")]
public List<Split> SplitList { get; set; } = null!;
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
#endregion Public Properties
#region Protected Properties
+79 -39
View File
@@ -7,11 +7,14 @@
<div class="px-2">
<h5>Sash group @(SashList.Count > 1 ? (SashList.IndexOf(CurrSashGroup) + 1) : "")</h5>
</div>
<div class="px-2">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove sash group</button>
@if (!User)
{
<div class="px-2">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove sash group</button>
</div>
</div>
</div>
}
<div class="px-2">
<button class="btn btn-close" @onclick="ReqClose"></button>
</div>
@@ -22,26 +25,48 @@
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">Qty sash</span>
<input type="number" class="form-control" @bind="@SashQty">
@if (User)
{
<input type="number" readonly class="form-control" value="@SashQty">
}
else
{
<input type="number" class="form-control" @bind="@SashQty">
}
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OrientationSashTypeIndex">
@foreach (var orientationSash in CurrSashGroup.OrientationSashTypeList)
{
<option value="@(orientationSash.Id)">@(orientationSash.Name)</option>
}
</select>
@if(User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashGroup.OrientationSashTypeList.FirstOrDefault(x => x.Id == OrientationSashTypeIndex).Name)">
}
else
{
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OrientationSashTypeIndex">
@foreach (var orientationSash in CurrSashGroup.OrientationSashTypeList)
{
<option value="@(orientationSash.Id)">@(orientationSash.Name)</option>
}
</select>
}
</div>
</div>
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">Qty bottom rail</span>
<input type="number" class="form-control" @bind="@SashBottomRailQty">
@if (User)
{
<input type="number" readonly class="form-control" value="@SashBottomRailQty">
}
else
{
<input type="number" class="form-control" @bind="@SashBottomRailQty">
}
</div>
</div>
</div>
@@ -53,43 +78,58 @@
<h6 class="fw-bold">Hardware</h6>
</div>
</div>
<div class="input-group mb-2">
<label class="input-group-text">Family</label>
<select class="form-select" @bind="@FamilyHardware">
@if (Sash.s_FamilyHardwareList == null || Sash.s_FamilyHardwareList.Count == 0)
{
<option value="000000">CUSTOM</option>
}
else
{
@foreach (var familyHw in Sash.s_FamilyHardwareList)
{
<option value="@familyHw">@familyHw</option>
}
}
</select>
</div>
@if (string.IsNullOrEmpty(CurrSashGroup.SashShape))
@if (User)
{
<div class="input-group mb-2">
<label class="input-group-text">Type</label>
<select class="form-select">
<option value="000000">Custom HW</option>
</select>
<span class="input-group-text">Family</span>
<input type="text" readonly class="form-control" value="@FamilyHardware">
</div>
<div class="input-group mb-2">
<span class="input-group-text">Type</span>
<input type="text" readonly class="form-control" value="@SelHwType">
</div>
}
else
{
<div class="input-group mb-2">
<label class="input-group-text">Type</label>
<select class="form-select" @bind="SelHwType">
<option value="000000">Custom HW</option>
@foreach (var hlItem in CurrSashGroup.HardwareList)
<label class="input-group-text">Family</label>
<select class="form-select" @bind="@FamilyHardware">
@if (Sash.s_FamilyHardwareList == null || Sash.s_FamilyHardwareList.Count == 0)
{
<option value="@hlItem.Id">@hlItem.Description</option>
<option value="000000">CUSTOM</option>
}
else
{
@foreach (var familyHw in Sash.s_FamilyHardwareList)
{
<option value="@familyHw">@familyHw</option>
}
}
</select>
</div>
@if (string.IsNullOrEmpty(CurrSashGroup.SashShape))
{
<div class="input-group mb-2">
<label class="input-group-text">Type</label>
<select class="form-select">
<option value="000000">Custom HW</option>
</select>
</div>
}
else
{
<div class="input-group mb-2">
<label class="input-group-text">Type</label>
<select class="form-select" @bind="SelHwType">
<option value="000000">Custom HW</option>
@foreach (var hlItem in CurrSashGroup.HardwareList)
{
<option value="@hlItem.Id">@hlItem.Description</option>
}
</select>
</div>
}
}
</div>
<div class="col-md-12 col-lg-6">
@@ -15,6 +15,12 @@ namespace WebWindowComplex.Compo
[CascadingParameter(Name = "CurrSashGroup")]
public Sash CurrSashGroup { get; set; } = null!;
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
/// <summary>
/// Evento per cambiare tutti i fill
/// </summary>
+47 -135
View File
@@ -14,15 +14,18 @@
<div class="card-body py-2">
<div class="d-flex justify-content-between align-items-center">
<h5>Split</h5>
@if ((CurrSplit.nSplitQtyVert == 1 && CurrSplit.nSplitQtyHoriz == 0) || (CurrSplit.nSplitQtyVert == 0 && CurrSplit.nSplitQtyHoriz == 1))
@if (!User)
{
@if ((CurrSplit.nSplitQtyVert == 1 && CurrSplit.nSplitQtyHoriz == 0) || (CurrSplit.nSplitQtyVert == 0 && CurrSplit.nSplitQtyHoriz == 1))
{
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => SwapTwoAree()">Swap Aree</button>
</div>
}
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => SwapTwoAree()">Swap Aree</button>
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove split</button>
</div>
}
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove split</button>
</div>
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle btn-sm" type="button" @onclick="ToggleDropdown">
Measure
@@ -49,13 +52,21 @@
<div class="row">
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<label class="input-group-text">Shape</label>
<select class="form-select" @bind="@SplitShapeIndex">
@foreach (var shapeType in CurrSplit.SplitShapeList)
{
<option value=@(shapeType.Id)>@(shapeType.Name)</option>
}
</select>
@if (User)
{
<span class="input-group-text">Shape</span>
<input type="text" readonly class="form-control" value="@(CurrSplit.SplitShapeList.FirstOrDefault(x => x.Id == SplitShapeIndex))">
}
else
{
<label class="input-group-text">Shape</label>
<select class="form-select" @bind="@SplitShapeIndex">
@foreach (var shapeType in CurrSplit.SplitShapeList)
{
<option value=@(shapeType.Id)>@(shapeType.Name)</option>
}
</select>
}
</div>
</div>
</div>
@@ -65,7 +76,14 @@
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">QtyVert</span>
<input type="number" class="form-control" @bind="@SplitQtyVert">
@if (User)
{
<input type="number" readonly class="form-control" value="@SplitQtyVert">
}
else
{
<input type="number" class="form-control" @bind="@SplitQtyVert">
}
</div>
</div>
}
@@ -74,7 +92,14 @@
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">QtyHoriz</span>
<input type="number" class="form-control" @bind="@SplitQtyHoriz">
@if (User)
{
<input type="number" readonly class="form-control" value="@SplitQtyHoriz">
}
else
{
<input type="number" class="form-control" @bind="@SplitQtyHoriz">
}
</div>
</div>
}
@@ -90,35 +115,6 @@
Index="i"
EC_Update="UpdateDimension">
</EditSplitDimensions>
@* <div class="input-group mb-2">
<span class="input-group-text">Width</span>
<input type="number" class="form-control" @bind="@dim.dDimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@dim.SelMeasureTypeIndex">
@foreach (var mType in dim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
</div>*@
}
</div>
<div class="col-md-12 col-lg-6">
@@ -129,35 +125,6 @@
Index="i"
EC_Update="UpdateDimension">
</EditSplitDimensions>
@* <div class="input-group mb-2">
<span class="input-group-text">Height</span>
<input type="number" class="form-control" @bind="@dim.dDimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@dim.SelMeasureTypeIndex">
@foreach (var mType in dim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
</div> *@
}
</div>
}
@@ -170,37 +137,6 @@
Index="i"
EC_Update="UpdateDimension">
</EditSplitDimensions>
@* <div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">Height</span>
<input type="number" class="form-control" @bind="@dim.dDimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@dim.SelMeasureTypeIndex">
@foreach (var mType in dim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
</div>
</div> *@
}
}
else if (CurrSplit.SplitVertList.Count > 0)
@@ -212,37 +148,6 @@
Index="i"
EC_Update="UpdateDimension">
</EditSplitDimensions>
@* <div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">Width</span>
<input type="number" class="form-control" @bind="@dim.dDimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@dim.SelMeasureTypeIndex">
@foreach (var mType in dim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
</div>
</div> *@
}
}
</div>
@@ -252,7 +157,14 @@
<div class="col-md-12 col-lg-6">
<div class="d-flex justify-content-start fs-5 mb-2">
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
@if (User)
{
<input class="form-check-input ml-auto" disabled="disabled" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert">
}
else
{
<input class="form-check-input ml-auto" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
}
</div>
<div class="px-2">
<label class="form-check-label fs-6 text-dark">StartVert</label>
@@ -33,6 +33,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public Frame FrameWindow { get; set; } = null!;
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
/// <summary>
/// Evento per richiedere reset dizionario
/// </summary>
+23 -15
View File
@@ -1,23 +1,31 @@
@using static WebWindowComplex.LayoutConst
<div class="input-group mb-2">
<label class="input-group-text">@((PositionJoints)(CurrRec.nIndex - 1))</label>
@if (CurrRec.ParentArea is Frame &&
(CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.DOUBLEARC ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.ARC_FULL ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.THREECENTERARC) &&
(CurrRec.nIndex == 3 || CurrRec.nIndex == 4))
@if (User)
{
<select class="form-select" @bind="@CurrJoint">
<option value="@(CurrJoint)">@(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)</option>
</select>
<span class="input-group-text">@((PositionJoints)(CurrRec.nIndex - 1))</span>
<input type="text" readonly class="form-control" value="@(CurrRec.JointTypeList.FirstOrDefault(x => x.Id == (int)CurrRec.SelJointType))">
}
else
{
<select class="form-select" @bind="@CurrJoint">
@foreach (var typeJoint in CurrRec.JointTypeList)
{
<option value="@(typeJoint.Id)">@(typeJoint.Name)</option>
}
</select>
<label class="input-group-text">@((PositionJoints)(CurrRec.nIndex - 1))</label>
@if (CurrRec.ParentArea is Frame &&
(CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.DOUBLEARC ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.ARC_FULL ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.THREECENTERARC) &&
(CurrRec.nIndex == 3 || CurrRec.nIndex == 4))
{
<select class="form-select" @bind="@CurrJoint">
<option value="@(CurrJoint)">@(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)</option>
</select>
}
else
{
<select class="form-select" @bind="@CurrJoint">
@foreach (var typeJoint in CurrRec.JointTypeList)
{
<option value="@(typeJoint.Id)">@(typeJoint.Name)</option>
}
</select>
}
}
</div>
@@ -17,6 +17,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public EventCallback<Joint> EC_Update { get; set; }
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
#endregion Public Properties
#region Private Properties
+20 -5
View File
@@ -1,9 +1,24 @@
<div class="input-group mb-2">
<label class="input-group-text">@(CurrOpt.sName)</label>
<select class="form-select" @bind="CurrValue">
@foreach (var currValueCombo in CurrOpt.ValueList)
@if (User)
{
<span class="input-group-text">@(CurrOpt.sName)</span>
@if (CurrValue is String)
{
<option value="@currValueCombo.sValue">@currValueCombo.sDescription</option>
<input type="text" readonly class="form-control" value="@CurrOpt.ValueList.FirstOrDefault(x => x.sValue.Equals(CurrValue)).sDescription">
}
</select>
else
{
<input type="number" readonly class="form-control" value="@CurrOpt.ValueList.FirstOrDefault(x => x.sValue == CurrValue).sDescription">
}
}
else
{
<label class="input-group-text">@(CurrOpt.sName)</label>
<select class="form-select" @bind="CurrValue">
@foreach (var currValueCombo in CurrOpt.ValueList)
{
<option value="@currValueCombo.sValue">@currValueCombo.sDescription</option>
}
</select>
}
</div>
@@ -13,6 +13,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public AGBOptionCombo CurrOpt { get; set; } = null!;
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
[Parameter]
public EventCallback<AGBOptionCombo> EC_Update { get; set; }
+47 -13
View File
@@ -1,22 +1,56 @@
<div class="input-group mb-2">
<label class="input-group-text">@(CurrOpt.sName)</label>
@if (CurrOpt.sName.Equals("HMan"))
@if (User)
{
<input type="number" class="form-control" @bind="@CurrValue">
}
else if (CurrOpt.ValueList.Count > 0)
{
<select class="form-select" @bind="CurrValue">
@foreach (var currValueCombo in CurrOpt.ValueList)
<span class="input-group-text">@(CurrOpt.sName)</span>
@if (CurrOpt.sName.Equals("HMan"))
{
<input type="number" readonly class="form-control" value="@CurrValue">
}
else if (CurrOpt.ValueList.Count > 0)
{
if (CurrValue is String)
{
<option value="@currValueCombo">@currValueCombo</option>
<input type="text" readonly class="form-control" value="@CurrValue">
}
</select>
else
{
<input type="number" readonly class="form-control" value="@CurrValue">
}
}
else
{
if (CurrValue is String)
{
<input type="text" readonly class="form-control" value="@CurrValue">
}
else
{
<input type="number" readonly class="form-control" value="@CurrValue">
}
}
}
else
{
<select class="form-select" @bind="CurrValue">
<option value="@CurrOpt.sValue">@CurrOpt.sValue</option>
</select>
<label class="input-group-text">@(CurrOpt.sName)</label>
@if (CurrOpt.sName.Equals("HMan"))
{
<input type="number" class="form-control" @bind="@CurrValue">
}
else if (CurrOpt.ValueList.Count > 0)
{
<select class="form-select" @bind="CurrValue">
@foreach (var currValueCombo in CurrOpt.ValueList)
{
<option value="@currValueCombo">@currValueCombo</option>
}
</select>
}
else
{
<select class="form-select" @bind="CurrValue">
<option value="@CurrOpt.sValue">@CurrOpt.sValue</option>
</select>
}
}
</div>
@@ -13,6 +13,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public AGBOptionText CurrOpt { get; set; } = null!;
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
[Parameter]
public EventCallback<AGBOptionText> EC_Update { get; set; }
+60 -28
View File
@@ -14,22 +14,38 @@
<div class="row">
<div class="col-md-12 col-lg-6 d-flex flex-column gap-2 flex-wrap">
<div class="input-group mb-2 justify-content-center">
<label class="input-group-text">Material</label>
<select class="form-select @(cssValid("Material"))" @bind="CurrMaterial">
@foreach (var item in ListPayload.Material)
{
<option value="@item">@item</option>
}
</select>
@if (User)
{
<span class="input-group-text">Material</span>
<input type="text" readonly class="form-control" value="@(CurrMaterial)">
}
else
{
<label class="input-group-text">Material</label>
<select class="form-select @(cssValid("Material"))" @bind="CurrMaterial">
@foreach (var item in ListPayload.Material)
{
<option value="@item">@item</option>
}
</select>
}
</div>
<div class="input-group mb-2">
<label class="input-group-text">Profile</label>
<select class="form-select @(cssValid("Profile"))" @bind="@CurrProfile">
@foreach (string profile in ListPayload.Profile)
{
<option value="@profile">@profile</option>
}
</select>
@if (User)
{
<span class="input-group-text">Profile</span>
<input type="text" readonly class="form-control" value="@(CurrProfile)">
}
else
{
<label class="input-group-text">Profile</label>
<select class="form-select @(cssValid("Profile"))" @bind="@CurrProfile">
@foreach (string profile in ListPayload.Profile)
{
<option value="@profile">@profile</option>
}
</select>
}
</div>
</div>
</div>
@@ -41,13 +57,21 @@
</div>
<div class="row">
<div class="input-group mb-2">
<label class="input-group-text">Glass</label>
<select class="form-select @(cssValid("Glass"))" @bind="@CurrGlass">
@foreach (string glass in ListPayload.Glass)
{
<option value="@glass">@glass</option>
}
</select>
@if (User)
{
<span class="input-group-text">Glass</span>
<input type="text" readonly class="form-control" value="@(CurrGlass)">
}
else
{
<label class="input-group-text">Glass</label>
<select class="form-select @(cssValid("Glass"))" @bind="@CurrGlass">
@foreach (string glass in ListPayload.Glass)
{
<option value="@glass">@glass</option>
}
</select>
}
</div>
<div class="input-group mb-2">
<label class="input-group-text">Pannello</label>
@@ -65,13 +89,21 @@
</div>
<div class ="row">
<div class="input-group mb-2">
<label class="input-group-text">Window</label>
<select class="form-select @(cssValid("ColorMaterial"))" @bind="@CurrColor">
@foreach (string colorMaterial in ListPayload.ColorMaterial)
{
<option value="@colorMaterial">@colorMaterial</option>
}
</select>
@if (User)
{
<span class="input-group-text">Window</span>
<input type="text" readonly class="form-control" value="@(CurrColor)">
}
else
{
<label class="input-group-text">Window</label>
<select class="form-select @(cssValid("ColorMaterial"))" @bind="@CurrColor">
@foreach (string colorMaterial in ListPayload.ColorMaterial)
{
<option value="@colorMaterial">@colorMaterial</option>
}
</select>
}
</div>
<div class="input-group mb-2">
<label class="input-group-text">Trunking</label>
+3
View File
@@ -14,6 +14,9 @@ namespace WebWindowComplex.Compo
[Parameter]
public Window CurrWindow { get; set; } = null!;
[Parameter]
public bool User { get; set; } = false!;
[Parameter]
public EventCallback<DataUpdateGeneral> EC_UpdateGeneral { get; set; }