880 lines
66 KiB
Plaintext
880 lines
66 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-8">
|
|
<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 (FrameWindow != null)
|
|
{
|
|
<li class="nav-item">
|
|
<a data-target="#Gerarchia" class="@tabNavCss(CompileStep.Gerarchia)" aria-current="true" @onclick="() => NextStepAndPreview(CompileStep.Gerarchia)">Gerarchia</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a data-target="#Frame" class="@tabNavCss(CompileStep.Frame)" aria-current="true" @onclick="() => NextStepAndPreview(CompileStep.Frame)">Frame</a>
|
|
</li>
|
|
@if (SplitList.Count > 0)
|
|
{
|
|
<li class="nav-item">
|
|
<a data-target="#Split" class="@tabNavCss(CompileStep.Split)" aria-current="true" @onclick="() => NextStepAndPreview(CompileStep.Split)">Split</a>
|
|
</li>
|
|
}
|
|
@if (SashList.Count > 0)
|
|
{
|
|
@for (int i = 0; i < SashList.Count; i++)
|
|
{
|
|
int Index = i;
|
|
<li class="nav-item">
|
|
<a data-target="#Sash" class="@tabNavCss(CompileStep.Sash, Index)" aria-current="true" @onclick="() => NextStepAndPreview(CompileStep.Sash, Index)">Sash @(SashList.Count == 1 ? "" : Index + 1)</a>
|
|
</li>
|
|
}
|
|
}
|
|
<li class="nav-item">
|
|
<a data-target="#Fill" class="@tabNavCss(CompileStep.Fill)" aria-current="true" @onclick="() => NextStepAndPreview(CompileStep.Fill)">Fill</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a data-target="#General" class="@tabNavCss(CompileStep.General)" aria-current="true" @onclick="() => NextStepAndPreview(CompileStep.General)">General</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</div>
|
|
<div class="col-4 d-grid gap-2 d-md-flex justify-content-md-end">
|
|
<button class="btn btn-lg btn-primary" style="font-size: 1rem;" @onclick="DoSave">Save</button>
|
|
@* <button class="btn btn-lg btn-primary btn-sm" @onclick="DoPreviewSvg">Preview Svg</button> *@
|
|
@if (currStep != CompileStep.Template)
|
|
{
|
|
<button class="btn btn-lg btn-primary" style="font-size: 1rem;" @onclick="DoReset">Reset</button>
|
|
}
|
|
<button class="btn btn-lg btn-primary" style="font-size: 1rem;" @onclick="DoClose">Close</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-body bg-transparent">
|
|
<div class="text-center display-4">
|
|
@if (currStep == CompileStep.Template)
|
|
{
|
|
<table class="table table-hover align-middle">
|
|
<thead class="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: 120px;" 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>
|
|
}
|
|
else if (currStep == CompileStep.Gerarchia)
|
|
{
|
|
<div class="display-6">
|
|
<table class="table table-sm table-hover align-middle">
|
|
<tbody>
|
|
@for (int i = 0; i < ItemTableList.Count; i++)
|
|
{
|
|
<tr>
|
|
@for (int j = 0; j < m_maxCol; j++)
|
|
{
|
|
CompileStep cs = CompileStep.Frame;
|
|
int indSash = -1;
|
|
@if (j + 1 == ItemTableList[i].Col)
|
|
{
|
|
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FRAME)
|
|
{
|
|
cs = CompileStep.Frame;
|
|
}
|
|
else if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SPLIT)
|
|
{
|
|
cs = CompileStep.Split;
|
|
}
|
|
else if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SASH)
|
|
{
|
|
cs = CompileStep.Sash;
|
|
indSash = ItemTableList[i].NumSash;
|
|
}
|
|
else if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FILL)
|
|
{
|
|
cs = CompileStep.Fill;
|
|
}
|
|
<td>
|
|
<button class="btn btn-sm btn-secondary" style="font-size: 1rem;" @onclick="() => NextStepAndPreview(cs, indSash)" title="Vai a step @(cs)">@ItemTableList[i].Desc</button>
|
|
</td>
|
|
}
|
|
else
|
|
{
|
|
<td>@fillTable(i, j)</td>
|
|
}
|
|
}
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
}
|
|
else if (currStep == CompileStep.Frame)
|
|
{
|
|
@if (m_CurrWindow != null)
|
|
{
|
|
m_PreviousWindow = m_CurrWindow;
|
|
}
|
|
<div class="container">
|
|
<div class="text-start p-1 display-4">
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="FrameShape">Shape</label>
|
|
<select class="form-select" id="FrameShape" @bind="@FrameWindow.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>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5 class="card-title">Dimension</h5>
|
|
@foreach (FrameDimension dimension in FrameWindow.DimensionList)
|
|
{
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="NameDimFrame@(FrameWindow.DimensionList.IndexOf(dimension) + 1)">@dimension.sName</span>
|
|
<input type="number" class="form-control" aria-label="@dimension.dValue" @bind="@dimension.dValue">
|
|
<span class="input-group-text">mm</span>
|
|
</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 m-0">Frame joints</h5>
|
|
<div class="row text-center">
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(1, 0)">Angled</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(2, 0)">Horizontal</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(3, 0)">Vertical</button>
|
|
</div>
|
|
</div>
|
|
@foreach (Joint joint in FrameWindow.JointList)
|
|
{
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="IndexJoint@(FrameWindow.JointList.IndexOf(joint) + 1)">@((positionJoints)(FrameWindow.JointList.IndexOf(joint)))</label>
|
|
<select class="form-select" id="IndexJoint@(FrameWindow.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>
|
|
@if (!(FrameWindow.AreaList[0] is Split))
|
|
{
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5 class="card-title">Frame</h5>
|
|
<div class="input-group mb-2">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => FrameWindow.AddSplit()">Aggiungi split</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
@if (m_SashList.Count == 0)
|
|
{
|
|
<div class="row">
|
|
<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">Quantity</span>
|
|
<input type="number" class="form-control" aria-label="BottomRailQty" @bind="@FrameWindow.BottomRailQty">
|
|
</div>
|
|
</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++)
|
|
{
|
|
Split currSplit = SplitList[i];
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
@if (currSplit.ParentArea is Splitted || currSplit.ParentArea is Sash)
|
|
{
|
|
@for (int j = 0; j < SashList.Count; j++)
|
|
{
|
|
@if (SashList[j].Equals(currSplit.ParentArea))
|
|
{
|
|
<h5>@("Sash " + (j + 1))</h5>
|
|
}
|
|
else if (SashList[j].Equals(currSplit.ParentArea.ParentArea))
|
|
{
|
|
@for (int k = 0; k < SashList[j].AreaList.Count; k++)
|
|
{
|
|
@if (SashList[j].AreaList[k].AreaList[0].Equals(currSplit))
|
|
{
|
|
<h5>@("Sash " + (j + 1) + " - anta " + (k + 1))</h5>
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
<h5>@("Frame")</h5>
|
|
}
|
|
<div class="col">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5>Split</h5>
|
|
<div class="input-group mb-2 justify-content-center">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => SwapTwoAree(currSplit)">Swap Aree</button>
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitQty@(m_SplitList.IndexOf(currSplit) + 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@(m_SplitList.IndexOf(currSplit) + 1)">Shape</label>
|
|
<select class="form-select" id="ShapeSplit@(m_SplitList.IndexOf(currSplit) + 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)
|
|
{
|
|
@if (currSplit.SplitPositionList.IndexOf(dim) == 0)
|
|
{
|
|
desc = "Larg. area sx split";
|
|
}
|
|
else
|
|
{
|
|
desc = "Larg. area dx split";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
@if (currSplit.SplitPositionList.IndexOf(dim) == 0)
|
|
{
|
|
desc = "Altez. area sotto split";
|
|
}
|
|
else
|
|
{
|
|
desc = "Altez. area sopra split";
|
|
}
|
|
}
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitDimension@(currSplit.SplitPositionList.IndexOf(dim) + 1)">@desc</span>
|
|
<input type="number" class="form-control" aria-label="basic-addon2Split" @bind="@dim.dDimension">
|
|
<span class="input-group-text">%</span>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
@for (int i = 0; i < SplittedList.Count; i++)
|
|
{
|
|
Splitted currSplitted = SplittedList[i];
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5>Area split</h5>
|
|
<div class="input-group mb-2">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => currSplitted.AddSash()">Aggiungi sash</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
@* @for (int i = 0; i < SplitParentList.Count; i++)
|
|
{
|
|
@for (int j = 0; j < 2 && (i * 2 + j <= SplitParentList.Count - 1); j++)
|
|
{
|
|
SplitParent currSplitParent = m_SplitParentList[i * 2 + j];
|
|
@if (currSplitParent.Split != null)
|
|
{
|
|
Split currSplit = (Split)currSplitParent.Split;
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
@if (currSplitParent.Description.Contains("Sash"))
|
|
{
|
|
<h5>@(currSplitParent.Description + " area " + numSash)</h5>
|
|
numSash++;
|
|
}
|
|
else if (currSplitParent.Description.Contains("Split"))
|
|
{
|
|
<h5>@(currSplitParent.Description + " area " + numSplit)</h5>
|
|
numSplit++;
|
|
}
|
|
else
|
|
{
|
|
<h5>@( currSplitParent.Description + " area")</h5>
|
|
}
|
|
<div class="col">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5>Split</h5>
|
|
<div class="input-group mb-2 justify-content-center">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => SwapTwoAree(currSplitParent.Split)">Swap Aree</button>
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitQty@(m_SplitParentList.IndexOf(currSplitParent) + 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@(m_SplitParentList.IndexOf(currSplitParent) + 1)">Shape</label>
|
|
<select class="form-select" id="ShapeSplit@(m_SplitParentList.IndexOf(currSplitParent) + 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)
|
|
{
|
|
@if (currSplit.SplitPositionList.IndexOf(dim) == 0)
|
|
{
|
|
desc = "Larg. area sx split";
|
|
}
|
|
else
|
|
{
|
|
desc = "Larg. area dx split";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
@if (currSplit.SplitPositionList.IndexOf(dim) == 0)
|
|
{
|
|
desc = "Altez. area sotto split";
|
|
}
|
|
else
|
|
{
|
|
desc = "Altez. area sopra split";
|
|
}
|
|
}
|
|
<div class="input-group mb-2">
|
|
<span class="input-group-text" id="SplitDimension@(currSplit.SplitPositionList.IndexOf(dim) + 1)">@desc</span>
|
|
<input type="number" class="form-control" aria-label="basic-addon2Split" @bind="@dim.dDimension">
|
|
<span class="input-group-text">%</span>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
@if (currSplitParent.Description.Contains("Sash"))
|
|
{
|
|
continue;
|
|
}
|
|
else if (currSplitParent.Description.Contains("Frame"))
|
|
{
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5>@currSplitParent.Description</h5>
|
|
<div class="input-group mb-2">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => currSplitParent.Splitted.AddSplit()">Aggiungi split</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
@if (currSplitParent.Description.Contains("Split area with sash"))
|
|
{
|
|
continue;
|
|
}
|
|
@if (currSplitParent.IntoSash == false)
|
|
{
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5>@("Area " + currSplitParent.Description + " " + numSplit)</h5>
|
|
<div class="input-group mb-2">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => currSplitParent.Splitted.AddSash()">Aggiungi sash</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
numSplit++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} *@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else if (currStep == CompileStep.Sash)
|
|
{
|
|
@if (currSash > SashList.Count)
|
|
{
|
|
currStep = CompileStep.Gerarchia;
|
|
}
|
|
Sash item = SashList[currSash];
|
|
<div class="container">
|
|
<div class="text-start display-4">
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<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@(SashList.IndexOf(item) + 1)" @bind="@item.nSashQty">
|
|
</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 / 2; i++)
|
|
{
|
|
for (int j = 0; j < 2 && (i * 2 + j <= item.SashList.Count - 1); j++)
|
|
{
|
|
SashDimension sash = item.SashList[i * 2 + j];
|
|
<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 + j + 1)</h5>
|
|
}
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="OpeningSash@(i * 2 + j + 1)">Tipology</label>
|
|
<select class="form-select" id="OpeningSash@(i * 2 + j + 1)" @bind="@sash.SelOpeningTypeIndex">
|
|
<option value="0">A sinistra</option>
|
|
<option value="1">A destra</option>
|
|
<option value="2">Ad anta-ribalta sinistra</option>
|
|
<option value="3">Ad anta-ribalta destra</option>
|
|
<option value="4">Solo verso alto</option>
|
|
<option value="5">Solo verso basso</option>
|
|
<option value="6">Pivot</option>
|
|
<option value="7">Fissa</option>
|
|
<option value="8">Complanare sinistra</option>
|
|
<option value="9">Complanare destra</option>
|
|
<option value="10">Scorrevole sinistra</option>
|
|
<option value="11">Scorrevole destra</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">
|
|
<span class="input-group-text">%</span>
|
|
</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)" checked="@sash.bHasHandle" @onclick="() => changeHandle(sash)">
|
|
</div>
|
|
<div class="px-2">
|
|
<label class="form-check-label fs-6 text-dark" for="HandleSashLabel@(i * 2 + j + 1)">Handle</label>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
@for (int k = 1; k <= i*2+j; k++)
|
|
{
|
|
int IndexCopy = k;
|
|
int IndexModify = i * 2 + j;
|
|
<div class="col-sm-3">
|
|
<div class="input-group mb-2">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => CopyContent(item, IndexCopy, IndexModify)">Copy @(k)</button>
|
|
</div>
|
|
</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>
|
|
<div class="row p-0 m-0 text-center">
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(1, 1)">Angled</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(2, 1)">Horizontal</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(3, 1)">Vertical</button>
|
|
</div>
|
|
</div>
|
|
@foreach (Joint joint in item.JointList)
|
|
{
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="IndexJoint@(item.JointList.IndexOf(joint) + 1)">@((positionJoints)(item.JointList.IndexOf(joint)))</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 class="col-sm-6">
|
|
@for (int i = 0; i < item.AreaList.Count; i++)
|
|
{
|
|
Area anta;
|
|
@if (item.AreaList[i] is Splitted)
|
|
{
|
|
anta = item.AreaList[i];
|
|
}
|
|
else
|
|
{
|
|
anta = item;
|
|
}
|
|
@if (!(anta.AreaList[0] is Split))
|
|
{
|
|
<div class="col">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5 class="card-title">Anta @(i + 1)</h5>
|
|
<div class="input-group mb-2">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => anta.AddSplit()">Aggiungi split</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
}
|
|
else if (currStep == CompileStep.Fill)
|
|
{
|
|
<div class="container">
|
|
<div class="text-start p-1 display-4 ">
|
|
<div class="row text-center">
|
|
<div class="col-12">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<div class="row align-items-center">
|
|
<div class="col">
|
|
<h5>Fill Area</h5>
|
|
</div>
|
|
</div>
|
|
<div class="row align-items-center">
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllFill(1)">All glass</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllFill(2)">All wood</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
@for (int i = 0; i < FillList.Count; i += 2)
|
|
{
|
|
Fill currFill = FillList[i];
|
|
<div class="col-sm-6">
|
|
<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(currFill) + 1)</h5>
|
|
}
|
|
<div class="input-group mb-2">
|
|
<select class="form-select" @bind="@currFill.SelFillTypeIndex">
|
|
<option value="0">Glass</option>
|
|
<option value="1">Wood</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@if (i + 1 < FillList.Count)
|
|
{
|
|
Fill nextFill = FillList[i + 1];
|
|
<div class="col-sm-6">
|
|
<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(nextFill) + 1)</h5>
|
|
}
|
|
<div class="input-group mb-2">
|
|
<select class="form-select" @bind="@nextFill.SelFillTypeIndex">
|
|
<option value="0">Glass</option>
|
|
<option value="1">Wood</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else if (currStep == CompileStep.General)
|
|
{
|
|
<div class="container">
|
|
<div class="text-start p-1 display-4 ">
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5 class="card-title">Generic</h5>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="MaterialWindow">Material</label>
|
|
<select class="form-select" id="MaterialWindow">
|
|
<option value="0">Wood</option>
|
|
<option value="1">PVC</option>
|
|
<option value="2">Aluminum</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="ProfileWindow">Profile</label>
|
|
<select class="form-select" id="ProfileWindow">
|
|
<option value="0">Profilo 78</option>
|
|
<option value="1">Profilo..</option>
|
|
<option value="2">Profilo...</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">Fill type</h5>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="GlassWindow">Glass</label>
|
|
<select class="form-select" id="GlassWindow">
|
|
<option value="0">Doppio vetro</option>
|
|
<option value="1">Triplo vetro</option>
|
|
<option value="2">Antieffrazione</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="PanelWindow">Pannello</label>
|
|
<select class="form-select" id="PanelWindow">
|
|
<option value="0">Liscio</option>
|
|
<option value="1">Con venatura</option>
|
|
<option value="2">Custom</option>
|
|
</select>
|
|
</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">Color</h5>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="TreatmentWindow">Treatment</label>
|
|
<select class="form-select" id="TreatmentWindow">
|
|
<option value="0">Standard</option>
|
|
<option value="1">...</option>
|
|
<option value="2">Custom</option>
|
|
</select>
|
|
</div>
|
|
<div class="row">
|
|
<p class="d-inline-flex gap-1">
|
|
<div class="col">
|
|
<button type="button" class="@buttonCss(ColorWindow.Bianco)" @onclick="() => ChangeColorWindow(ColorWindow.Bianco)" data-bs-toggle=" button" aria-pressed="true">Bianco</button>
|
|
@* <button class="btn btn-outline-secondary btn-sm">Bianco</button> *@
|
|
</div>
|
|
<div class="col">
|
|
<button type="button" class="@buttonCss(ColorWindow.Grigio)" @onclick="() => ChangeColorWindow(ColorWindow.Grigio)" data-bs-toggle="button" aria-pressed="true">Grigio</button>
|
|
</div>
|
|
<div class="col">
|
|
<button type="button" class="@buttonCss(ColorWindow.Tortora)" @onclick="() => ChangeColorWindow(ColorWindow.Tortora)" data-bs-toggle="button" aria-pressed="true">Tortora</button>
|
|
</div>
|
|
</p>
|
|
</div>
|
|
<div class="row">
|
|
<p class="d-inline-flex gap-1">
|
|
<div class="col">
|
|
<button type="button" class="@buttonCss(ColorWindow.Blu)" @onclick="() => ChangeColorWindow(ColorWindow.Blu)" data-bs-toggle="button" aria-pressed="true">Blu</button>
|
|
</div>
|
|
<div class="col">
|
|
<button type="button" class="@buttonCss(ColorWindow.Verde)" @onclick="() => ChangeColorWindow(ColorWindow.Verde)" data-bs-toggle="button" aria-pressed="true">Verde</button>
|
|
</div>
|
|
<div class="col">
|
|
<button type="button" class="@buttonCss(ColorWindow.Nero)" @onclick="() => ChangeColorWindow(ColorWindow.Nero)" data-bs-toggle="button" aria-pressed="true">Nero</button>
|
|
</div>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@if (m_SashList.Count > 0)
|
|
{
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="border mb-2">
|
|
<div class="card-body py-2">
|
|
<h5 class="card-title">Hardware</h5>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="ColorHardware">Generic color</label>
|
|
<select class="form-select" id="ColorHardware">
|
|
<option value="0">Oro</option>
|
|
<option value="1">Bronzo</option>
|
|
<option value="2">Ottone</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="CapsColor">Caps color</label>
|
|
<select class="form-select" id="CapsColor">
|
|
<option value="0">Oro</option>
|
|
<option value="1">Bronzo</option>
|
|
<option value="2">Ottone</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-group mb-2">
|
|
<label class="input-group-text" for="HandleColor">Handle color</label>
|
|
<select class="form-select" id="HandleColor">
|
|
<option value="0">Oro</option>
|
|
<option value="1">Bronzo</option>
|
|
<option value="2">Ottone</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@if (currStep != CompileStep.Template)
|
|
{
|
|
<div class="col-6">
|
|
@outSvg
|
|
</div>
|
|
}
|
|
</div>
|
|
|