d740267d06
- aggiunti controlli su alcuni campi
396 lines
30 KiB
Plaintext
396 lines
30 KiB
Plaintext
<div class="row">
|
|
<div class="col-6">
|
|
<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">
|
|
<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.Frame)
|
|
{
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="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" id="FrameShape" @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@(m_Frame.DimensionList.IndexOf(dimension) + 1)">@dimension.nIndex</span>
|
|
<span class="input-group-text" id="NameDimFrame@(m_Frame.DimensionList.IndexOf(dimension) + 1)">@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@(m_Frame.JointList.IndexOf(joint) + 1)">@joint.nIndex</label>
|
|
<select class="form-select" id="IndexJoint@(m_Frame.JointList.IndexOf(joint) + 1)" @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="text-start p-1 display-4">
|
|
<div class="row">
|
|
@for (int i = 0; i < SplitList.Count; i += 2)
|
|
{
|
|
Split currSplit = SplitList[i];
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5>Split @(i + 1)</h5>
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitQty@(i + 1)">Number</span>
|
|
<input type="number" class="form-control" placeholder="0" aria-label="basic-addon1Split" @bind="@currSplit.nSplitQty">
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="ShapeSplit@(i + 1)">Shape</label>
|
|
<select class="form-select" id="ShapeSplit@(i + 1)" @bind="@currSplit.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 currSplit.SplitPositionList)
|
|
{
|
|
string desc = "";
|
|
@if (currSplit.SelSplitShape == Json.WindowConst.SplitShapes.VERTICAL)
|
|
{
|
|
desc = "Larghezza split ";
|
|
}
|
|
else
|
|
{
|
|
desc = "Altezza split ";
|
|
}
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitDimension@(currSplit.SplitPositionList.IndexOf(dim) + 1)">@desc @(currSplit.SplitPositionList.IndexOf(dim) + 1)</span>
|
|
<input type="number" class="form-control" aria-label="basic-addon2Split" @bind="@dim.dDimension">
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
if (i + 1 < SplitList.Count)
|
|
{
|
|
Split NextSplit = SplitList[i + 1];
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5>Split @(i + 2)</h5>
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitQty@(i + 2)">Number</span>
|
|
<input type="number" class="form-control" placeholder="0" aria-label="basic-addon1Split" @bind="@NextSplit.nSplitQty">
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="ShapeSplit@(i + 2)">Shape</label>
|
|
<select class="form-select" id="ShapeSplit@(i + 2)" @bind="@NextSplit.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 NextSplit.SplitPositionList)
|
|
{
|
|
string desc = "";
|
|
@if (NextSplit.SelSplitShape == Json.WindowConst.SplitShapes.VERTICAL)
|
|
{
|
|
desc = "Larghezza split ";
|
|
}
|
|
else
|
|
{
|
|
desc = "Altezza split ";
|
|
}
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitDimension@(NextSplit.SplitPositionList.IndexOf(dim) + 1)">@desc @(NextSplit.SplitPositionList.IndexOf(dim) + 1)</span>
|
|
<input type="number" class="form-control" aria-label="basic-addon2Split" @bind="@dim.dDimension">
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else if (currStep == CompileStep.Sash)
|
|
{
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="text-start p-1 display-4 ">
|
|
@foreach (var item in SashList)
|
|
{
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="input-group mb-2">
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="NumberSash@(SashList.IndexOf(item) + 1)">Number</span>
|
|
<input type="number" class="form-control" aria-label="NumberSash" @bind="@item.nSashQty">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<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@(SashList.IndexOf(item) + 1)">Tipology</label>
|
|
<select class="form-select" id="OrientationSash@(SashList.IndexOf(item) + 1)" @bind="@item.SelOrientationSashTypeIndex">
|
|
<option value="0">Vertical</option>
|
|
<option value="1">Horizontal</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<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@(SashList.IndexOf(item) + 1)">Quantity</span>
|
|
<input type="number" class="form-control" aria-label="BottomRailQty" @bind="@item.SashBottomRailQty">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
@for (int i = 0; i < item.SashList.Count; i += 2)
|
|
{
|
|
SashDimension sash = item.SashList[i];
|
|
<div class="col-sm-6">
|
|
<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 @(i + 1)</h5>
|
|
}
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="OpeningSash@(i + 1)">Tipology</label>
|
|
<select class="form-select" id="OpeningSash@(i + 1)" @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">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="HandleSashLabel@(i + 1)" @bind="@sash.bHasHandle">
|
|
</div>
|
|
<div class="px-2">
|
|
<label class="form-check-label fs-6 text-dark" for="HandleSashLabel@(i + 1)">Handle</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@if (i + 1 < item.SashList.Count)
|
|
{
|
|
SashDimension sashNext = item.SashList[i + 1];
|
|
<div class="col-sm-6">
|
|
<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 @(i + 2)</h5>
|
|
}
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="OpeningSashNext@(i + 2)">Tipology</label>
|
|
<select class="form-select" id="OpeningSashNext@(i + 2)" @bind="@sashNext.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">Dimension</span>
|
|
<input type="number" class="form-control" aria-label="DimensionSash" @bind="@sashNext.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="HandleSashLabel@(i + 2)" @bind="@sashNext.bHasHandle">
|
|
</div>
|
|
<div class="px-2">
|
|
<label class="form-check-label fs-6 text-dark" for="HandleSashLabel@(i + 2)">Handle</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<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@(item.JointList.IndexOf(joint) + 1)">@joint.nIndex</label>
|
|
<select class="form-select" id="IndexJoint@(item.JointList.IndexOf(joint) + 1)" @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>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else if (currStep == CompileStep.Fill)
|
|
{
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="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>
|
|
<div class="col-6">
|
|
@outSvg
|
|
</div>
|
|
</div>
|
|
|