Modifiche utente base (solo in view)
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
<WebWindowComplex.TableComp ListPayload="SetupList"
|
||||
LiveData="CurrData"
|
||||
baseUser="User"
|
||||
BaseUser="User"
|
||||
EC_ActionReq="DoAction"
|
||||
EC_DoUpdate="ExecRequest"
|
||||
EC_OnClose="CloseObj">
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
<WebWindowComplex.TableComp ListPayload="SetupList"
|
||||
LiveData="CurrData"
|
||||
PendReq="DictPendReq"
|
||||
baseUser="User"
|
||||
BaseUser="true"
|
||||
Vocabulary="TradVocabulary"
|
||||
EC_ActionReq="DoAction"
|
||||
EC_DoUpdate="ExecRequest"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<WebWindowComplex.TableComp ListPayload="SetupList"
|
||||
LiveData="CurrData"
|
||||
baseUser="User"
|
||||
BaseUser="User"
|
||||
EC_ActionReq="DoAction"
|
||||
EC_DoUpdate="ExecRequest"
|
||||
EC_OnClose="CloseObj">
|
||||
|
||||
@@ -71,6 +71,11 @@ namespace WebWindowComplex.Compo
|
||||
return EC_AddInglesina.InvokeAsync(true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per traduzione in lingua corrente
|
||||
/// </summary>
|
||||
/// <param name="lemma"></param>
|
||||
/// <returns></returns>
|
||||
private string Traduci(string lemma)
|
||||
{
|
||||
string ans = lemma;
|
||||
|
||||
@@ -46,8 +46,13 @@
|
||||
<div class="input-group mb-2">
|
||||
@if (User)
|
||||
{
|
||||
<span class="input-group-text">Tipology</span>
|
||||
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
|
||||
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
|
||||
type="button"
|
||||
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");" >
|
||||
<span class="d-flex align-items-center">
|
||||
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
|
||||
</span>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -85,40 +90,73 @@
|
||||
<div class="col-lg-5 col-md-12 my-2">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">Dimension</span>
|
||||
<input type="number" class="form-control" @bind="@Dimension">
|
||||
@* <InputDouble CssClass="form-control form-control text-end" Decimals="@CssDecimals()" Step="@CssStepNumber()" @bind-Value="@Dimension"></InputDouble> *@
|
||||
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
|
||||
@foreach (var mType in CurrSashDim.MeasureTypeList)
|
||||
@if(User)
|
||||
{
|
||||
<input type="number" readonly class="form-control" value="@Dimension">
|
||||
@switch (CurrSashDim.SelMeasureType.ToString())
|
||||
{
|
||||
<option value=@(mType.Id)>
|
||||
@switch (mType.Name)
|
||||
case "ABSOLUTE":
|
||||
{
|
||||
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;
|
||||
}
|
||||
<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>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="number" class="form-control" @bind="@Dimension">
|
||||
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
|
||||
@foreach (var mType in CurrSashDim.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-lg-2 col-md-12 my-2">
|
||||
<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="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
|
||||
</div>
|
||||
@if (User)
|
||||
{
|
||||
<div class="px-1">
|
||||
<input class="form-check-input ml-auto" disabled="disabled" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle">
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="px-1">
|
||||
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
|
||||
</div>
|
||||
}
|
||||
<div class="px-2">
|
||||
<label class="form-check-label fs-6 text-dark">Handle</label>
|
||||
</div>
|
||||
@@ -157,8 +195,13 @@
|
||||
<div class="input-group mb-2">
|
||||
@if (User)
|
||||
{
|
||||
<span class="input-group-text">Tipology</span>
|
||||
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
|
||||
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
|
||||
type="button"
|
||||
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
|
||||
<span class="d-flex align-items-center">
|
||||
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
|
||||
</span>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -194,40 +237,73 @@
|
||||
<div class="col-lg-5 col-md-12 my-2">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">Dimension</span>
|
||||
<input type="number" class="form-control" @bind="@Dimension">
|
||||
@* <InputDouble CssClass="form-control form-control text-end" Decimals="@CssDecimals()" Step="@CssStepNumber()" @bind-Value="@Dimension"></InputDouble> *@
|
||||
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
|
||||
@foreach (var mType in CurrSashDim.MeasureTypeList)
|
||||
@if(User)
|
||||
{
|
||||
<input type="number" readonly class="form-control" value="@Dimension">
|
||||
@switch (CurrSashDim.SelMeasureType.ToString())
|
||||
{
|
||||
<option value=@(mType.Id)>
|
||||
@switch (mType.Name)
|
||||
case "ABSOLUTE":
|
||||
{
|
||||
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;
|
||||
}
|
||||
<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>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="number" class="form-control" @bind="@Dimension">
|
||||
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
|
||||
@foreach (var mType in CurrSashDim.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-lg-2 col-md-12 my-2">
|
||||
<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="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
|
||||
</div>
|
||||
@if(User)
|
||||
{
|
||||
<div class="px-1">
|
||||
<input class="form-check-input ml-auto" disabled="disabled" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle">
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="px-1">
|
||||
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
|
||||
</div>
|
||||
}
|
||||
<div class="px-2">
|
||||
<label class="form-check-label fs-6 text-dark">Handle</label>
|
||||
</div>
|
||||
@@ -240,7 +316,21 @@
|
||||
<div class="col-md-4 d-flex justify-content-start align-items-center">
|
||||
<h6>Joints</h6>
|
||||
</div>
|
||||
@if (!User)
|
||||
@if (User)
|
||||
{
|
||||
<div class="col-md-8 d-flex justify-content-end align-items-center">
|
||||
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath("Angled")" title="Angled" width="40" />
|
||||
</button>
|
||||
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.FULL_H) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath("Full H")" title="Angled" width="40" />
|
||||
</button>
|
||||
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.FULL_V) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath("Full V")" title="Angled" width="40" />
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="col-md-8 d-flex justify-content-end align-items-center">
|
||||
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
|
||||
|
||||
@@ -16,9 +16,21 @@
|
||||
<div class="col-md-12 col-lg-12">
|
||||
@if (User)
|
||||
{
|
||||
<div class="input-group mt-2">
|
||||
<span class="input-group-text">Shape</span>
|
||||
<input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))">
|
||||
<div class="row">
|
||||
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
|
||||
<h6 class="fw-bold">@Traduci("ConfWind_Shape")</h6>
|
||||
</div>
|
||||
@* <input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))"> *@
|
||||
<div class="row">
|
||||
@foreach (var i in CurrFrameWindow.ShapeList)
|
||||
{
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn-iconeOff @ButtonShapeCss(i.Id) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageFrameShapePath(i.Name)" title="@(i.Name)" width="40" />
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
@@ -109,7 +121,21 @@
|
||||
<div class="col-md-4 d-flex justify-content-start align-items-center">
|
||||
<h6 class="fw-bold">@Traduci("ConfWind_Joints")</h6>
|
||||
</div>
|
||||
@if (!User)
|
||||
@if (User)
|
||||
{
|
||||
<div class="col-md-8 d-flex justify-content-end align-items-center">
|
||||
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath("Angled")" title="Angled" width="40" />
|
||||
</button>
|
||||
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.FULL_H) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath("Full H")" title="Full H" width="40" />
|
||||
</button>
|
||||
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.FULL_V) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath("Full V")" title="Full V" width="40" />
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="col-md-8 d-flex justify-content-end align-items-center">
|
||||
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
|
||||
|
||||
@@ -412,6 +412,11 @@ namespace WebWindowComplex.Compo
|
||||
return "col-md-12 col-lg-4";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per traduzione in lingua corrente
|
||||
/// </summary>
|
||||
/// <param name="lemma"></param>
|
||||
/// <returns></returns>
|
||||
private string Traduci(string lemma)
|
||||
{
|
||||
string ans = lemma;
|
||||
|
||||
@@ -39,3 +39,31 @@
|
||||
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
|
||||
transition: transform 0.05s ease, box-shadow 0.05s ease;
|
||||
}
|
||||
|
||||
|
||||
/* Stato Normale (Non Attivo) */
|
||||
.btn-iconeOff {
|
||||
background-color: #ffffff;
|
||||
border: 2px solid #d1d5db; /* Bordo grigio tenue di media visibilità */
|
||||
box-shadow: 0 4px 12px rgba(212, 230, 250, 0.8); /* Ombra azzurra delicata */
|
||||
font-weight: 600;
|
||||
padding: 10px 22px;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
transition: transform 0.2s ease, background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
|
||||
}
|
||||
|
||||
/* Stato Attivo (Selezionato) */
|
||||
.btn-iconeOff.active {
|
||||
background-color: #ffffff; /* Sfondo bianco */
|
||||
border: 3px solid #a6ccf5; /* Bordo azzurro */
|
||||
box-shadow: 0 2px 8px rgba(2, 132, 199, 0.2);
|
||||
}
|
||||
|
||||
/* Effetto Pressione al Click (Mouse premuto) */
|
||||
.btn-iconeOff:active,
|
||||
.btn-iconeOff.active:active {
|
||||
transform: scale(0.96) translateY(2px);
|
||||
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
|
||||
transition: transform 0.05s ease, box-shadow 0.05s ease;
|
||||
}
|
||||
@@ -23,30 +23,28 @@
|
||||
<div class="card-body py-2">
|
||||
<div class="row pb-3">
|
||||
<div class="col-md-12 col-lg-6">
|
||||
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
|
||||
<h6 class="fw-bold">Tipology</h6>
|
||||
</div>
|
||||
@if (User)
|
||||
{
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">Tipology</span>
|
||||
<input type="text" readonly class="form-control" value="@(CurrSashGroup.OrientationSashTypeList.FirstOrDefault(x => x.Id == OrientationSashTypeIndex).Name)">
|
||||
<div class="row">
|
||||
@foreach (var i in CurrSashGroup.OrientationSashTypeList)
|
||||
{
|
||||
<div class="col-auto">
|
||||
<button type="button"
|
||||
class="btn-iconeOff @ButtonTipologyCss(i.Id) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageTipologyPath(i.Name)" title="@(i.Name)" width="40" />
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
|
||||
<h6 class="fw-bold">Tipology</h6>
|
||||
</div>
|
||||
<div class="row">
|
||||
@foreach (var i in CurrSashGroup.OrientationSashTypeList)
|
||||
{
|
||||
@* <div class="col-auto">
|
||||
<button type="button" @onclick="() => SelTipologySash(i.Id)"
|
||||
class="btn mx-1 px-1 py-1"
|
||||
style="border-width: @(OrientationSashTypeIndex == i.Id ? 4 : 1)px;
|
||||
border-style: solid;
|
||||
border-color: @(OrientationSashTypeIndex == i.Id ? "#0d6efd" : "#dee2e6");">
|
||||
<img class="img-fluid" src="@GetImageTipologyPath(i.Name)" title="@(i.Name)" width="40" />
|
||||
</button>
|
||||
</div> *@
|
||||
<div class="col-auto">
|
||||
<button type="button"
|
||||
class="btn-icone @ButtonTipologyCss(i.Id) mx-1 px-1 py-1" @onclick="() => SelTipologySash(i.Id)">
|
||||
|
||||
@@ -166,18 +166,6 @@ namespace WebWindowComplex.Compo
|
||||
private int OrientationSashTypeIndex
|
||||
{
|
||||
get => CurrSashGroup.SelOrientationSashTypeIndex;
|
||||
//set
|
||||
//{
|
||||
// if (CurrSashGroup.SelOrientationSashTypeIndex != value)
|
||||
// {
|
||||
// CurrSashGroup.SelOrientationSashTypeIndex = value;
|
||||
// var args = new DataUpdateSash()
|
||||
// {
|
||||
// currSash = CurrSashGroup
|
||||
// };
|
||||
// _ = EC_UpdateSashGroup.InvokeAsync(args);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -208,7 +196,7 @@ namespace WebWindowComplex.Compo
|
||||
/// </summary>
|
||||
private string SelHwType
|
||||
{
|
||||
get => CurrSashGroup.SelHardwareFromId;
|
||||
get => CurrSashGroup.SelHardware.Description;
|
||||
set
|
||||
{
|
||||
if (CurrSashGroup.SelHardwareFromId != value)
|
||||
@@ -342,62 +330,6 @@ namespace WebWindowComplex.Compo
|
||||
await EC_ReqClose.InvokeAsync(true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per cambiare dimensione solo luce
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private Task ChangeTypeDimension(bool type)
|
||||
{
|
||||
if (CurrSashGroup.bIsDimensionLight != type)
|
||||
{
|
||||
CurrSashGroup.bIsDimensionLight = type;
|
||||
foreach (var CurrSashDim in CurrSashGroup.SashList)
|
||||
{
|
||||
if (CurrSashDim.SelMeasureType is MeasureTypes.ABSOLUTE)
|
||||
{
|
||||
if (CurrSashGroup.bIsDimensionLight)
|
||||
{
|
||||
CurrSashDim.SetDimensionLight(CurrSashDim.dDimension -
|
||||
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension -
|
||||
CurrSashDim.ElementDimensionList.Last().dDimension);
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrSashDim.SetDimensionLight(CurrSashDim.dDimension +
|
||||
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension +
|
||||
CurrSashDim.ElementDimensionList.Last().dDimension);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
DataUpdateSash args = new DataUpdateSash()
|
||||
{
|
||||
currSash = CurrSashGroup,
|
||||
noSvg = false
|
||||
};
|
||||
return EC_UpdateSashGroup.InvokeAsync(args);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per scegliere tipo di misura
|
||||
/// </summary>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
//protected Task SetMeasureType(MeasureTypes type)
|
||||
//{
|
||||
// //isOpen = !isOpen;
|
||||
// for (int i = 0; i < CurrSashGroup.SashList.Count; i++)
|
||||
// {
|
||||
// CurrSashGroup.SashList.ElementAt(i).SelMeasureTypeIndex = (int)type;
|
||||
// }
|
||||
// var args = new DataUpdateSash
|
||||
// {
|
||||
// currSash = CurrSashGroup,
|
||||
// noSvg = true
|
||||
// };
|
||||
// return EC_UpdateSashGroup.InvokeAsync(args);
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per aggiornare la sash dimension
|
||||
/// </summary>
|
||||
@@ -547,12 +479,6 @@ namespace WebWindowComplex.Compo
|
||||
return EC_ReqFirstOptionHw.InvokeAsync(CurrSashGroup);
|
||||
}
|
||||
|
||||
//private bool isOpen = false;
|
||||
//private void ToggleDropdown()
|
||||
//{
|
||||
// isOpen = !isOpen;
|
||||
//}
|
||||
|
||||
private string AreaSashCss(int i)
|
||||
{
|
||||
if (i == 0)
|
||||
@@ -561,28 +487,11 @@ namespace WebWindowComplex.Compo
|
||||
return "row mt-2";
|
||||
}
|
||||
|
||||
private string MeasureTypeCss(MeasureTypes type)
|
||||
{
|
||||
for (int i = 0; i < CurrSashGroup.SashList.Count; i++)
|
||||
{
|
||||
if (!CurrSashGroup.SashList.ElementAt(i).MeasureType.Equals(type))
|
||||
return "dropdown-item";
|
||||
}
|
||||
return "dropdown-item fw-bold";
|
||||
}
|
||||
private string TypeDimensionCss(bool type)
|
||||
{
|
||||
if(CurrSashGroup.bIsDimensionLight && type)
|
||||
return "dropdown-item fw-bold";
|
||||
else if(!CurrSashGroup.bIsDimensionLight && !type)
|
||||
return "dropdown-item fw-bold";
|
||||
return "dropdown-item";
|
||||
}
|
||||
|
||||
private string GetCurrOpening(SashDimension currSashDim)
|
||||
{
|
||||
return currSashDim.OpeningTypeList.FirstOrDefault(x => x.Id == currSashDim.SelOpeningTypeIndex).Name;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
|
||||
|
||||
@@ -39,3 +39,31 @@
|
||||
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
|
||||
transition: transform 0.05s ease, box-shadow 0.05s ease;
|
||||
}
|
||||
|
||||
|
||||
/* Stato Normale (Non Attivo) */
|
||||
.btn-iconeOff {
|
||||
background-color: #ffffff;
|
||||
border: 2px solid #d1d5db; /* Bordo grigio tenue di media visibilità */
|
||||
box-shadow: 0 4px 12px rgba(212, 230, 250, 0.8); /* Ombra azzurra delicata */
|
||||
font-weight: 600;
|
||||
padding: 10px 22px;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
transition: transform 0.2s ease, background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
|
||||
}
|
||||
|
||||
/* Stato Attivo (Selezionato) */
|
||||
.btn-iconeOff.active {
|
||||
background-color: #ffffff; /* Sfondo bianco */
|
||||
border: 3px solid #a6ccf5; /* Bordo azzurro */
|
||||
box-shadow: 0 2px 8px rgba(2, 132, 199, 0.2);
|
||||
}
|
||||
|
||||
/* Effetto Pressione al Click (Mouse premuto) */
|
||||
.btn-iconeOff:active,
|
||||
.btn-iconeOff.active:active {
|
||||
transform: scale(0.96) translateY(2px);
|
||||
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
|
||||
transition: transform 0.05s ease, box-shadow 0.05s ease;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<h5>@(descParentSplit()) - Split</h5>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@if (!User)
|
||||
@if (!BaseUser)
|
||||
{
|
||||
@if ((CurrSplit.nSplitQtyVert == 1 && CurrSplit.nSplitQtyHoriz == 0) || (CurrSplit.nSplitQtyVert == 0 && CurrSplit.nSplitQtyHoriz == 1))
|
||||
{
|
||||
@@ -16,7 +16,7 @@
|
||||
}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@if (!User)
|
||||
@if (!BaseUser)
|
||||
{
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove split</button>
|
||||
}
|
||||
@@ -43,30 +43,36 @@
|
||||
</div>
|
||||
<div class="row py-2">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
@if (User)
|
||||
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
|
||||
<h6 class="fw-bold">Shape</h6>
|
||||
</div>
|
||||
@if (BaseUser)
|
||||
{
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">Shape</span>
|
||||
<input type="text" readonly class="form-control" value="@(CurrSplit.SplitShapeList.FirstOrDefault(x => x.Id == SplitShapeIndex))">
|
||||
@foreach (var i in CurrSplit.SplitShapeList)
|
||||
{
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn-icone @ButtonShapeCss(i.Id) mx-1 px-1 py-1">
|
||||
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
<div class="col-auto">
|
||||
@if (CurrSplit.SelSplitShape == Json.WindowConst.SplitShapes.GRID)
|
||||
{
|
||||
<div class="px-1">
|
||||
<input class="form-check-input ml-auto me-1" disabled="disabled" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert">
|
||||
<label class="form-check-label fs-6 text-dark">StartVert</label>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
|
||||
<h6 class="fw-bold">Shape</h6>
|
||||
</div>
|
||||
<div class="row align-items-center">
|
||||
@foreach (var i in CurrSplit.SplitShapeList)
|
||||
{
|
||||
@* <div class="col-auto">
|
||||
<button type="button" @onclick="() => SelShapeSplit(i.Id)"
|
||||
class="btn mx-1 px-1 py-1"
|
||||
style="border-width: @(SplitShapeIndex == i.Id ? 4 : 1)px;
|
||||
border-style: solid;
|
||||
border-color: @(SplitShapeIndex == i.Id ? "#0d6efd" : "#dee2e6");">
|
||||
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
|
||||
</button>
|
||||
</div> *@
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn-icone @ButtonShapeCss(i.Id) mx-1 px-1 py-1" @onclick="() => SelShapeSplit(i.Id)">
|
||||
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
|
||||
@@ -77,16 +83,8 @@
|
||||
@if (CurrSplit.SelSplitShape == Json.WindowConst.SplitShapes.GRID)
|
||||
{
|
||||
<div class="px-1">
|
||||
@if (User)
|
||||
{
|
||||
<input class="form-check-input ml-auto me-1" disabled="disabled" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert">
|
||||
<label class="form-check-label fs-6 text-dark">StartVert</label>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input class="form-check-input ml-auto me-1" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
|
||||
<label class="form-check-label fs-6 text-dark">StartVert</label>
|
||||
}
|
||||
<input class="form-check-input ml-auto me-1" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
|
||||
<label class="form-check-label fs-6 text-dark">StartVert</label>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@@ -104,7 +102,7 @@
|
||||
<div class="col-md-12 col-lg-6">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">QtyHoriz</span>
|
||||
@if (User)
|
||||
@if (BaseUser)
|
||||
{
|
||||
<input type="number" readonly class="form-control" value="@SplitQtyHoriz">
|
||||
}
|
||||
@@ -148,7 +146,7 @@
|
||||
<div class="col-md-12 col-lg-6">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">QtyVert</span>
|
||||
@if (User)
|
||||
@if (BaseUser)
|
||||
{
|
||||
<input type="number" readonly class="form-control" value="@SplitQtyVert">
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace WebWindowComplex.Compo
|
||||
/// Livello di accesso (utente base)
|
||||
/// </summary>
|
||||
[CascadingParameter(Name = "User")]
|
||||
public bool User { get; set; } = false!;
|
||||
public bool BaseUser { get; set; } = false!;
|
||||
|
||||
/// <summary>
|
||||
/// Evento per richiedere reset dizionario
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
s = s + cs.ToString() + ((ind + 1) > 0 ? (ind + 1) : "");
|
||||
}
|
||||
<td colspan="2">
|
||||
@* <div class="d-flex flex-row align-items-center justify-content-center">*@
|
||||
<div class="card text-center p-1 shadow-sm hover-shadow w-100">
|
||||
<div class="d-flex gap-2">
|
||||
<button class="btn btn-sm btn-rounded flex-grow-1" @onclick="() => RaiseNextStep(cs, ind)" title="@(s)"
|
||||
@@ -71,87 +70,82 @@
|
||||
<i class="@hwIcon(ItemTableList[i].Row)" style="width:0.5rem;"></i>
|
||||
</button>
|
||||
}
|
||||
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SASH ||
|
||||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.SPLIT ||
|
||||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.INGLESINA)
|
||||
@if(!BaseUser)
|
||||
{
|
||||
<button class="btn btn-sm" style="font-size: 1rem; flex-basis: 20%;" @onclick="() => Remove(cs, ind)" title="Remove">
|
||||
<i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
}
|
||||
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FRAME &&
|
||||
((SashGroupList.Count == 0 && SplitList.Count == 0) || !(FrameWindow.AreaList.First() is Split)))
|
||||
{
|
||||
<div class="dropdown px-4">
|
||||
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="ToggleDropdownFrame">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SASH ||
|
||||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.SPLIT ||
|
||||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.INGLESINA)
|
||||
{
|
||||
<button class="btn btn-sm" style="font-size: 1rem; flex-basis: 20%;" @onclick="() => Remove(cs, ind)" title="Remove">
|
||||
<i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu @(isOpenFrame ? "show" : "")" style="min-width:5rem; max-width:10rem">
|
||||
@if(SashGroupList.Count == 0 && SplitList.Count == 0)
|
||||
{
|
||||
<li><button class="dropdown-item" @onclick="RaiseAddSash">Sash</button></li>
|
||||
}
|
||||
@if (!(FrameWindow.AreaList.First() is Split))
|
||||
{
|
||||
<li><button class="dropdown-item" @onclick="RaiseAddSplit">Split</button></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FILL)
|
||||
{
|
||||
int currIndexFill = ItemTableList[i].IndexItem;
|
||||
if (FillList.ElementAt(currIndexFill).ParentArea is Frame)
|
||||
}
|
||||
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FRAME &&
|
||||
((SashGroupList.Count == 0 && SplitList.Count == 0) || !(FrameWindow.AreaList.First() is Split)))
|
||||
{
|
||||
<div class="dropdown px-4">
|
||||
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
|
||||
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="ToggleDropdownFrame">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
|
||||
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
|
||||
<ul class="dropdown-menu @(isOpenFrame ? "show" : "")" style="min-width:5rem; max-width:10rem">
|
||||
@if (SashGroupList.Count == 0 && SplitList.Count == 0)
|
||||
{
|
||||
<li><button class="dropdown-item" @onclick="RaiseAddSash">Sash</button></li>
|
||||
}
|
||||
@if (!(FrameWindow.AreaList.First() is Split))
|
||||
{
|
||||
<li><button class="dropdown-item" @onclick="RaiseAddSplit">Split</button></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
else if (SplittedList != null && SplittedList.Count > 0)
|
||||
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FILL)
|
||||
{
|
||||
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currIndexFill])).FirstOrDefault();
|
||||
@if (currSplitted != null)
|
||||
int currIndexFill = ItemTableList[i].IndexItem;
|
||||
if (FillList.ElementAt(currIndexFill).ParentArea is Frame)
|
||||
{
|
||||
@if (currSplitted.ParentArea != null && currSplitted.ParentWindow != null
|
||||
&& currSplitted.AreaList.FirstOrDefault() != null && currSplitted.AreaList.First()!.AreaList.Count == 0)
|
||||
<div class="dropdown px-4">
|
||||
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
|
||||
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
else if (SplittedList != null && SplittedList.Count > 0)
|
||||
{
|
||||
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currIndexFill])).FirstOrDefault();
|
||||
@if (currSplitted != null)
|
||||
{
|
||||
<div class="dropdown px-4">
|
||||
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
|
||||
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
|
||||
<li><button class="dropdown-item" @onclick="() => AddSashIntoFill(currIndexFill)">Add Sash</button></li>
|
||||
@for (int k = 0; k < SashGroupList.Count; k++)
|
||||
{
|
||||
int Index = k;
|
||||
<li><button class="dropdown-item" @onclick="() => CopySashIntoFill(Index, currIndexFill)">Copy Sash @(SashGroupList.Count == 1 ? "" : (Index + 1))</button></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
@if (currSplitted.ParentArea != null && currSplitted.ParentWindow != null
|
||||
&& currSplitted.AreaList.FirstOrDefault() != null && currSplitted.AreaList.First()!.AreaList.Count == 0)
|
||||
{
|
||||
<div class="dropdown px-4">
|
||||
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
|
||||
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
|
||||
<li><button class="dropdown-item" @onclick="() => AddSashIntoFill(currIndexFill)">Add Sash</button></li>
|
||||
@for (int k = 0; k < SashGroupList.Count; k++)
|
||||
{
|
||||
int Index = k;
|
||||
<li><button class="dropdown-item" @onclick="() => CopySashIntoFill(Index, currIndexFill)">Copy Sash @(SashGroupList.Count == 1 ? "" : (Index + 1))</button></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
@* <div class="card text-center m-1 p-1 shadow-sm hover-shadow">
|
||||
<button class="btn btn-sm btn-danger btn-rounded"
|
||||
style="font-size: 1rem;">
|
||||
<i class="bi bi-trash3-fill"></i>
|
||||
</button>
|
||||
</div> *@
|
||||
@* </div> *@
|
||||
</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
@* <td>@FillTable(i, j)</td> *@
|
||||
<td> </td>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,12 @@ namespace WebWindowComplex.Compo
|
||||
[Parameter]
|
||||
public Frame FrameWindow { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Utente
|
||||
/// </summary>
|
||||
[Parameter]
|
||||
public bool BaseUser { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Evento richiesta prossimo step
|
||||
/// </summary>
|
||||
|
||||
@@ -16,8 +16,15 @@
|
||||
else
|
||||
{
|
||||
<span class="input-group-text">@CurrRec.sName</span>
|
||||
}
|
||||
<input type="number" class="form-control" @bind="@CurrVal">
|
||||
}
|
||||
@if (User)
|
||||
{
|
||||
<input type="number" readonly class="form-control" value="@CurrVal">
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="number" class="form-control" @bind="@CurrVal">
|
||||
}
|
||||
<span class="input-group-text">mm</span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -16,6 +16,12 @@ namespace WebWindowComplex.Compo
|
||||
[Parameter]
|
||||
public EventCallback<FrameDimension> EC_Update { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Livello di accesso (utente base)
|
||||
/// </summary>
|
||||
[CascadingParameter(Name = "User")]
|
||||
public bool User { get; set; } = false!;
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
@@ -1,44 +1,33 @@
|
||||
@using static WebWindowComplex.LayoutConst
|
||||
<div class="input-group mb-2">
|
||||
<label class="input-group-text px-2 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointPosPath(CurrPosJointName)" title="@(CurrPosJointName)" width="50" />
|
||||
</label>
|
||||
@if (User)
|
||||
{
|
||||
<span class="input-group-text">@(CurrPosJointName)</span>
|
||||
<input type="text" readonly class="form-control" value="@(CurrRec.JointTypeList.FirstOrDefault(x => x.Id == (int)CurrRec.SelJointType))">
|
||||
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
|
||||
type="button"
|
||||
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
|
||||
<span class="d-flex align-items-center">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
|
||||
</span>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<label class="input-group-text px-2 py-1">
|
||||
<img class="img-fluid" src="@GetImageJointPosPath(CurrPosJointName)" title="@(CurrPosJointName)" width="50" />
|
||||
</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))
|
||||
{
|
||||
<div class="dropdown" @onfocusout="HandleFocusOut" tabindex="0">
|
||||
<button class="btn btn-outline-secondary dropdown-toggle d-flex align-items-center gap-2"
|
||||
type="button"
|
||||
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");"
|
||||
@onclick="ToggleDropdownOpening"
|
||||
aria-expanded="@isOpenDropdown">
|
||||
<span class="d-flex align-items-center">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu p-2 @(isOpenDropdown ? "show" : "")"
|
||||
style="position: absolute; min-width: 7em;">
|
||||
<div class="col p-0">
|
||||
<button type="button"
|
||||
class="dropdown-item d-flex flex-column align-items-center justify-content-center p-2 rounded text-center h-100 @ButtonOpeningCss(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id)"
|
||||
style="background-color: @(CurrJoint == CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id ? "#d4e6fa" : "#f8f9fa");"
|
||||
@onclick="() => SelJoint(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id)">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)"
|
||||
title="@(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)" width="100" />
|
||||
</button>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
|
||||
type="button"
|
||||
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
|
||||
<span class="d-flex align-items-center">
|
||||
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
|
||||
</span>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -3,17 +3,17 @@
|
||||
<div class="row">
|
||||
@if (isLoading)
|
||||
{
|
||||
<EgwCoreLib.Razor.LoadingData Title="...processing..."></EgwCoreLib.Razor.LoadingData>
|
||||
<LoadingData DisplayMode="LoadingData.SpinMode.Normal" DisplaySize="LoadingData.CtrlSize.Large" Title="...processing..."></LoadingData>
|
||||
}
|
||||
else if (!okParams)
|
||||
{
|
||||
<div class="d-flex flex-column">
|
||||
<div class="card text-center shadow rounded">
|
||||
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
|
||||
</div>
|
||||
<div class="alert alert-warning">
|
||||
<div class="fs-3">Parametri Mancanti!</div>
|
||||
<div class="fs-3">@Traduci("ConfWind_MissingParam")</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -23,10 +23,10 @@
|
||||
<div class="d-flex flex-column">
|
||||
<div class="card text-center shadow rounded">
|
||||
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
|
||||
</div>
|
||||
<div class="alert alert-warning">
|
||||
<div class="fs-3">JWD Mancante!</div>
|
||||
<div class="fs-3">@Traduci("ConfWind_MissingJWD")</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -38,7 +38,7 @@
|
||||
{
|
||||
<div class="d-flex flex-column">
|
||||
<div class="alert alert-danger">
|
||||
<div class="fs-3">Errori validazione!</div>
|
||||
<div class="fs-3">@Traduci("ConfWind_ValidError")</div>
|
||||
<div class="col-12 col-md-6 col-lg-3">
|
||||
|
||||
<ul class="list-group">
|
||||
@@ -55,7 +55,7 @@
|
||||
{
|
||||
<div class="d-flex flex-column">
|
||||
<div class="alert alert-danger">
|
||||
<div class="fs-3">Errore configurazione:</div>
|
||||
<div class="fs-3">@Traduci("ConfWind_ConfigError")</div>
|
||||
<div class="col-12">
|
||||
<ul class="list-group">
|
||||
@foreach (var item in listErrLink)
|
||||
@@ -76,10 +76,10 @@
|
||||
<div class="col-md-12 col-lg-6 d-grid px-2 d-md-flex justify-content-md-start flex-wrap">
|
||||
<ul class="nav nav-tabs card-header-tabs">
|
||||
<li class="nav-item m-1">
|
||||
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">Tree</button>
|
||||
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">@Traduci("ConfWind_Tree")</button>
|
||||
</li>
|
||||
<li class="nav-item m-1">
|
||||
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">General</button>
|
||||
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">@Traduci("ConfWind_General")</button>
|
||||
</li>
|
||||
@* @if (FrameWindow.Shape == Json.WindowConst.Shapes.ARC ||
|
||||
FrameWindow.Shape == Json.WindowConst.Shapes.ARC_FULL ||
|
||||
@@ -93,9 +93,9 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-6 d-grid gap-4 px-4 d-md-flex justify-content-md-end align-items-center flex-wrap">
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">Reset</button>
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">Save</button>
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">@Traduci("ConfWind_Reset")</button>
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">@Traduci("ConfWind_Save")</button>
|
||||
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -113,6 +113,7 @@
|
||||
SplittedList="SplittedList"
|
||||
FillList="FillList"
|
||||
FrameWindow="FrameWindow"
|
||||
BaseUser="BaseUser"
|
||||
EC_NextStep="NextStepArgs"
|
||||
EC_Remove="RemoveArea"
|
||||
EC_Collapsed="CollapsedRowTree"
|
||||
@@ -129,7 +130,7 @@
|
||||
{
|
||||
m_PreviousWindow = m_CurrWindow;
|
||||
}
|
||||
<CascadingValue Value="baseUser" Name="User">
|
||||
<CascadingValue Value="BaseUser" Name="User">
|
||||
<CascadingValue Value="FrameWindow" Name="CurrFrameWindow">
|
||||
<CascadingValue Value="SashGroupList" Name="SashGroupList">
|
||||
<CascadingValue Value="SplitList" Name="SplitList">
|
||||
@@ -155,7 +156,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<CascadingValue Value="baseUser" Name="User">
|
||||
<CascadingValue Value="BaseUser" Name="User">
|
||||
<CardSplit CurrSplit="SplitList[currSplitIndex]"
|
||||
SashGroupList="SashGroupList"
|
||||
SplitList="SplitList"
|
||||
@@ -177,7 +178,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<CascadingValue Value="baseUser" Name="User">
|
||||
<CascadingValue Value="BaseUser" Name="User">
|
||||
<CascadingValue Value="currLoading" Name="IsLoading">
|
||||
<CascadingValue Value="SashGroupList[currSashIndex]" Name="CurrSashGroup">
|
||||
<CascadingValue Value="SashGroupList" Name="SashGroupList">
|
||||
@@ -207,7 +208,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<CascadingValue Value="baseUser" Name="User">
|
||||
<CascadingValue Value="BaseUser" Name="User">
|
||||
<CardInglesina CurrInglesina="InglesinaList[currInglesinaIndex]"
|
||||
SashGroupList="SashGroupList"
|
||||
InglesinaList="InglesinaList"
|
||||
@@ -231,7 +232,7 @@
|
||||
{
|
||||
<CardFill CurrIndex="currFillIndex"
|
||||
CurrFill="FillList[currFillIndex]"
|
||||
User="baseUser"
|
||||
User="BaseUser"
|
||||
EC_UpdateFill="UpdatePreviewFill"
|
||||
EC_ReqClose="ReturnTree">
|
||||
</CardFill>
|
||||
@@ -239,32 +240,32 @@
|
||||
<div class="card-body py-2">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="col-4 d-flex justify-content-left">
|
||||
<h5 class="text-center text-nowrap">All fill</h5>
|
||||
<h5 class="text-center text-nowrap">@Traduci("ConfWind_AllFill")</h5>
|
||||
</div>
|
||||
<div class="input-group mb-2 justify-content-center">
|
||||
@if (baseUser)
|
||||
@if (BaseUser)
|
||||
{
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">All glass</button>
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">All glass</button>
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
|
||||
}
|
||||
</div>
|
||||
<div class="input-group mb-2 justify-content-center">
|
||||
@if (baseUser)
|
||||
@if (BaseUser)
|
||||
{
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">All wood</button>
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">All wood</button>
|
||||
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if (!baseUser && SplittedList != null && SplittedList.Count > 0)
|
||||
@if (!BaseUser && SplittedList != null && SplittedList.Count > 0)
|
||||
{
|
||||
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currFillIndex])).FirstOrDefault();
|
||||
@if (currSplitted != null)
|
||||
@@ -287,7 +288,7 @@
|
||||
ListPayload="ListPayload"
|
||||
ListWarnings="listWarnings"
|
||||
DictPendReq="PendReq"
|
||||
User="baseUser"
|
||||
User="BaseUser"
|
||||
EC_UpdateGeneral="UpdatePreviewGeneral"
|
||||
EC_ReqClose="ReturnTree">
|
||||
</General>
|
||||
@@ -304,7 +305,7 @@
|
||||
<div class="col-md-6 col-lg-6">
|
||||
@if (string.IsNullOrWhiteSpace(LiveData.SvgPreview))
|
||||
{
|
||||
<LoadingData DisplayMode="LoadingData.SpinMode.BounceLine" DisplaySize="LoadingData.CtrlSize.Large"></LoadingData>
|
||||
<LoadingData DisplayMode="LoadingData.SpinMode.Normal" DisplaySize="LoadingData.CtrlSize.Large"></LoadingData>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace WebWindowComplex
|
||||
/// Livello di accesso (utente base)
|
||||
/// </summary>
|
||||
[Parameter]
|
||||
public bool baseUser { get; set; } = false!;
|
||||
public bool BaseUser { get; set; } = false!;
|
||||
|
||||
/// <summary>
|
||||
/// Classe override css x SVG (x rescale)
|
||||
@@ -241,8 +241,8 @@ namespace WebWindowComplex
|
||||
if (m_CurrWindow != null && m_CurrWindow.AreaList != null && m_CurrWindow.AreaList.Count > 0)
|
||||
{
|
||||
checkWarnings();
|
||||
if (SashGroupList.Count > 0)
|
||||
currAntaIndex = 0;
|
||||
//if (SashGroupList.Count > 0)
|
||||
// currAntaIndex = 0;
|
||||
if (updRequested)
|
||||
{
|
||||
// se mancasse dizionario forme chiamo quello
|
||||
@@ -314,7 +314,7 @@ namespace WebWindowComplex
|
||||
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private int currAntaIndex = 0;
|
||||
//private int currAntaIndex = 0;
|
||||
|
||||
private int currFillIndex = -1;
|
||||
|
||||
@@ -1404,8 +1404,8 @@ namespace WebWindowComplex
|
||||
prevHardware[i] = SashGroupList.ElementAt(i).SelHardware;
|
||||
}
|
||||
}
|
||||
if (SashGroupList.Count > 0)
|
||||
currAntaIndex = 0;
|
||||
//if (SashGroupList.Count > 0)
|
||||
// currAntaIndex = 0;
|
||||
// Aggiorno window con dati shape e hw option
|
||||
UpdateDict();
|
||||
}
|
||||
@@ -2290,6 +2290,21 @@ namespace WebWindowComplex
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per traduzione in lingua corrente
|
||||
/// </summary>
|
||||
/// <param name="lemma"></param>
|
||||
/// <returns></returns>
|
||||
private string Traduci(string lemma)
|
||||
{
|
||||
string ans = lemma;
|
||||
if (Vocabulary != null && Vocabulary.ContainsKey(lemma))
|
||||
{
|
||||
ans = Vocabulary.GetValueOrDefault(lemma) ?? "";
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>3.1.8.1217</Version>
|
||||
<Version>3.1.8.1311</Version>
|
||||
<Authors>Annamaria Sassi</Authors>
|
||||
<Company>Egalware</Company>
|
||||
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
|
||||
@@ -150,6 +150,28 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>3.1.8.1217</Version>
|
||||
<Version>3.1.8.1311</Version>
|
||||
<Authors>Annamaria Sassi</Authors>
|
||||
<Company>Egalware</Company>
|
||||
<Description>Componente gestione JWD per LUX</Description>
|
||||
@@ -461,6 +461,30 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user