Files
webwindowconfigurator/WebWindowConfigurator/WebWindowMaker.razor
T
2025-08-07 14:44:47 +02:00

321 lines
22 KiB
Plaintext

<div class="row">
<div class="@mainCss">
<div class="card text-center table-svg">
<div class="card-header" style="background-color: #d5f1f2;">
<div class="row">
<div class="col-6">
<ul class="nav nav-tabs card-header-tabs">
<li class="nav-item">
@if (currStep == CompileStep.Template)
{
<a data-target="#Template" class="nav-link active fw-bold" aria-current="true" @onclick="() => AdvStep(CompileStep.Template)">Template</a>
}
else
{
<a data-target="#Template" class="nav-link text-secondary" @onclick="() => AdvStep(CompileStep.Template)">Template</a>
}
</li>
@if (SelTemplateDTO != null)
{
<li class="nav-item">
<a data-target="#Frame" class="@tabNavCss(CompileStep.Frame)" aria-current="true" @onclick="() => DoSelectAndPreview(CompileStep.Frame)">Frame</a>
</li>
@if ( m_SplitList.Count > 0)
{
<li class="nav-item">
<a data-target="#Split" class="@tabNavCss(CompileStep.Split)" aria-current="true" @onclick="() => DoSelectAndPreview(CompileStep.Split)">Split</a>
</li>
}
@if(m_SashList.Count > 0)
{
<li class="nav-item">
<a data-target="#Sash" class="@tabNavCss(CompileStep.Sash)" aria-current="true" @onclick="() => DoSelectAndPreview(CompileStep.Sash)">Sash</a>
</li>
}
<li class="nav-item">
<a data-target="#Fill" class="@tabNavCss(CompileStep.Fill)" aria-current="true" @onclick="() => DoSelectAndPreview(CompileStep.Fill)">Fill</a>
</li>
}
</ul>
</div>
<div class="col-6 d-grid gap-2 d-md-flex justify-content-md-end">
<button class="btn btn-lg btn-primary btn-sm" @onclick="DoSave">Save</button>
<button class="btn btn-lg btn-primary btn-sm" @onclick="DoPreviewSvg">Preview Svg</button>
<button class="btn btn-lg btn-primary btn-sm" @onclick="DoClose">Close</button>
</div>
</div>
</div>
<div class="card-body bg-transparent">
<div class="alert alert-light text-center display-4">
@if (currStep == CompileStep.Template)
{
<table class="table table-hover align-middle">
<thead class="table-light fs-5">
<tr>
<th scope="col">#</th>
<th scope="col" class="col-4">Image</th>
<th scope="col" class="text-start">Description</th>
</tr>
</thead>
<tbody class="table-group-divider fs-5">
@foreach (var item in IN_TemplateDTOList)
{
string colorClass = "";
@if (SelTemplateDTO != null && item.Index == SelTemplateDTO.Index)
colorClass = "table-success";
else
colorClass = "";
<tr style="height: 150px;" class="@colorClass" @onclick="() => DoSelect(item)">
<td>@item.Index</td>
<td><img class="img-fluid" width="100" src="@item.ImageUrl" /></td>
<td class="text-start">@item.Description</td>
</tr>
}
</tbody>
</table>
@*<button class="btn btn-sm btn-primary" title="Reset selezione" @onclick="DoReset"><i class="fa-solid fa-arrow-rotate-right"></i></button> *@
}
else if (currStep == CompileStep.Frame)
{
<div class="container">
<div class="row">
<div class="alert alert-light text-start p-1 display-4 w-50">
<div class="input-group mb-2">
<label class="input-group-text" for="FrameShape">Shape</label>
<select class="form-select" @bind="@m_Frame.SelShapeIndex">
<option value="0">Rectangle</option>
<option value="1">Right Chamfer</option>
<option value="2">Left Chamfer</option>
<option value="3">Double Chamfer</option>
<option value="4">Arc</option>
<option value="5">Arc Full</option>
<option value="6">Double Arc</option>
<option value="7">Triangle</option>
</select>
</div>
<div class="border mb-2">
<div class="card-body py-2">
<h5 class="card-title">Dimension</h5>
@foreach (FrameDimension dimension in m_Frame.DimensionList)
{
<div class="input-group mb-2">
<span class="input-group-text" id="IndexDimFrame">@dimension.nIndex</span>
<span class="input-group-text" id="NameDimFrame">@dimension.sName</span>
<input type="number" class="form-control" aria-label="@dimension.dValue" @bind="@dimension.dValue">
</div>
}
</div>
</div>
<div class="border mb-2">
<div class="card-body py-2">
<h5 class="card-title">Joints frame</h5>
@foreach (Joint joint in m_Frame.JointList)
{
<div class="input-group mb-2">
<label class="input-group-text" for="IndexJoint">@joint.nIndex</label>
<select class="form-select" @bind="@joint.SelJointTypeIndex">
<option value="0">Angled</option>
<option value="1">Full H</option>
<option value="2">Full V</option>
</select>
</div>
}
</div>
</div>
@if (m_SashList.Count == 0)
{
<div class="border mb-2">
<div class="card-body py-2">
<h5 class="card-title">Bottom rail</h5>
<div class="input-group mb-2">
<span class="input-group-text" id="BottomRailQty">Quantity</span>
<input type="number" class="form-control" aria-label="BottomRailQty" @bind="@m_Frame.BottomRailQty">
</div>
</div>
</div>
}
</div>
</div>
</div>
}
else if (currStep == CompileStep.Split)
{
<div class="container">
<div class="row">
<div class="alert alert-light text-start p-1 display-4 w-50">
@foreach (var item in SplitList)
{
<div class="border mb-2">
<div class="card-body py-2">
<div class="input-group mb-2">
<span class="input-group-text" id="basic-addon1Split">Number</span>
<input type="number" class="form-control" placeholder="0" aria-label="basic-addon1Split" @bind="@item.nSplitQty">
</div>
<div class="input-group mb-2">
<label class="input-group-text" for="basic-addon2Split">Shape</label>
<select class="form-select" @bind="@item.SelSplitShapeIndex">
<option value="0">Vertical</option>
<option value="1">Horizontal</option>
<option value="2">Grid</option>
<option value="3">Custom</option>
</select>
</div>
@foreach (var dim in item.SplitPositionList)
{
<div class="input-group mb-2">
<span class="input-group-text" id="basic-addon3Split">Altezza area inferiore</span>
<input type="number" class="form-control" aria-label="basic-addon2Split" @bind="@dim.dDimension">
</div>
}
</div>
</div>
}
@* <button class="btn btn-sm btn-primary" title="Reset selezione" @onclick="DoReset"><i class="fa-solid fa-arrow-rotate-right"></i></button> *@
</div>
</div>
</div>
}
else if (currStep == CompileStep.Sash)
{
<div class="container">
<div class="row">
<div class="alert alert-light text-start p-1 display-4 w-50">
@foreach (var item in SashList)
{
<div class="input-group mb-2">
<div class="input-group mb-2">
<span class="input-group-text" id="NumberSash">Number</span>
<input type="number" class="form-control" aria-label="NumberSash" @bind="@item.nSashQty">
</div>
</div>
<div class="border mb-2">
<div class="card-body py-2">
<h5 class="card-title">Orientation</h5>
<div class="input-group mb-2">
<label class="input-group-text" for="OrientationSash">Tipology</label>
<select class="form-select" @bind="@item.SelOrientationSashTypeIndex">
<option value="0">Vertical</option>
<option value="1">Horizontal</option>
</select>
</div>
</div>
</div>
@foreach (SashDimension sash in item.SashList)
{
<div class="border mb-2">
<div class="card-body py-2">
@if(item.SashList.Count == 1)
{
<h5 class="card-title">Opening</h5>
}
else
{
<h5 class="card-title">Sash opening @(item.SashList.IndexOf(sash) + 1)</h5>
}
<div class="input-group mb-2">
<label class="input-group-text" for="OpeningSash">Tipology</label>
<select class="form-select" @bind="@sash.SelOpeningTypeIndex">
<option value="0">A battente sinistra</option>
<option value="1">A battente destra</option>
<option value="2">Ad anta-ribalta sinistra</option>
<option value="3">Ad anta-ribalta destra</option>
<option value="4">5</option>
<option value="5">7</option>
<option value="6">8</option>
<option value="7">9</option>
<option value="8">10</option>
<option value="9">11</option>
<option value="10">12</option>
<option value="11">13</option>
</select>
</div>
<div class="input-group mb-2">
<span class="input-group-text" id="Dimension">Dimension</span>
<input type="number" class="form-control" aria-label="DimensionSash" @bind="@sash.dDimension">
</div>
<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" id="Handle" @bind="@sash.bHasHandle">
</div>
<div class="px-2">
<label class="form-check-label fs-6 text-dark" for="HandleSashLabel">Handle</label>
</div>
</div>
</div>
</div>
}
<div class="border mb-2">
<div class="card-body py-2">
<h5 class="card-title">Sash joints</h5>
@foreach (Joint joint in item.JointList)
{
<div class="input-group mb-2">
<label class="input-group-text" for="IndexJoint">@joint.nIndex</label>
<select class="form-select" @bind="@joint.SelJointTypeIndex">
<option value="0">Angled</option>
<option value="1">Full H</option>
<option value="2">Full V</option>
</select>
</div>
}
</div>
</div>
<div class="border mb-2">
<div class="card-body py-2">
<h5 class="card-title">Bottom rail</h5>
<div class="input-group mb-2">
<span class="input-group-text" id="BottomRailQty">Quantity</span>
<input type="number" class="form-control" aria-label="BottomRailQty" @bind="@item.SashBottomRailQty">
</div>
</div>
</div>
}
@* <button class="btn btn-sm btn-primary" title="Reset selezione" @onclick="DoReset"><i class="fa-solid fa-arrow-rotate-right"></i></button> *@
</div>
</div>
</div>
}
else if (currStep == CompileStep.Fill)
{
<div class="container">
<div class="row">
<div class="alert alert-light text-start p-1 display-4 w-50">
@foreach (var Fill in FillList)
{
<div class="border mb-2">
<div class="card-body py-2">
@if(FillList.Count == 1)
{
<h5 class="card-title">Fill</h5>
}
else
{
<h5 class="card-title">Fill @(FillList.IndexOf(Fill) + 1)</h5>
}
<div class="input-group mb-2">
<select class="form-select" @bind="@Fill.SelFillTypeIndex">
<option value="0">Glass</option>
<option value="1">Wood</option>
</select>
</div>
</div>
</div>
}
</div>
</div>
</div>
}
</div>
</div>
</div>
</div>
@if (SelTemplateDTO != null && currStep != CompileStep.Template)
{
<div class="col-6">
@outSvg
</div>
}
</div>