modal show
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>WebDoorCreator - Egalware</i>
|
||||
<h4>Version: 0.9.2306.0109</h4>
|
||||
<h4>Version: 0.9.2306.0110</h4>
|
||||
<br /> Release note:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.9.2306.0109
|
||||
0.9.2306.0110
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>0.9.2306.0109</version>
|
||||
<version>0.9.2306.0110</version>
|
||||
<url>http://nexus.steamware.net/repository/SWS/WDC/stable/WDC.UI.zip</url>
|
||||
<changelog>http://nexus.steamware.net/repository/SWS/WDC/stable/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -145,43 +145,6 @@ namespace WebDoorCreator.UI.Components.DoorMan
|
||||
await ReloadData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clona la porta selezionata con annesse door operations
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
protected async Task doClone(string message)
|
||||
{
|
||||
DoorOpsList = await WDService.DoorOpGetByDoorId(int.Parse(message));
|
||||
if (DoorOpsList != null)
|
||||
{
|
||||
var doorOps2Clone = DoorOpsList?.Where(x => x.DoorId == int.Parse(message)).ToList();
|
||||
|
||||
var door2Clone = DoorsList?.Where(x => x.DoorId == int.Parse(message)).FirstOrDefault();
|
||||
|
||||
if (door2Clone != null)
|
||||
{
|
||||
var doorToAdd = door2Clone.ObjClone(userId);
|
||||
// salvo!
|
||||
var newDoorId = await WDService.DoorInsert(doorToAdd);
|
||||
if (newDoorId != 0 && doorOps2Clone != null)
|
||||
{
|
||||
foreach (var item in doorOps2Clone)
|
||||
{
|
||||
var doorOp2Add = item.ObjClone(userId, newDoorId);
|
||||
doorOps2Add.Add(doorOp2Add);
|
||||
}
|
||||
|
||||
// salvo!
|
||||
var done = await WDService.DoorOpInsert(newDoorId, doorOps2Add);
|
||||
if (done)
|
||||
{
|
||||
await ReloadData();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Path del servizio di recupero SVG delle porte
|
||||
|
||||
@@ -1,63 +1,44 @@
|
||||
<div class="modalOrd">
|
||||
<div class="modalOrd-content">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h4>@($"Door ID: {CurrDoor.DoorId}")</h4>
|
||||
<span class="closeOrd" @onclick="()=>closeModal()">×</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="w-25">
|
||||
<div class="pb-1">
|
||||
<div class="d-flex justify-content-between mb-3">
|
||||
@if (CurrDoorClone.Quantity != CurrDoor.Quantity)
|
||||
{
|
||||
<button class="btn btn-outline-danger" type="button" @onclick="()=>ReloadData()">CANCEL</button>
|
||||
<button class="btn btn-outline-success" type="button" @onclick="()=>ChangeDoorNumber(true)">CONFIRM</button>
|
||||
}
|
||||
</div>
|
||||
<label for="search">Add or Remove door</label>
|
||||
<div class="input-group mb-3">
|
||||
@if (CurrDoorClone.Quantity == CurrDoor.Quantity && CurrDoor.Quantity > 1)
|
||||
{
|
||||
<button class="btn btn-outline-danger" type="button" @onclick="()=>addOrRemoveOneDoorNumber(false)">-1</button>
|
||||
}
|
||||
<input type="number" @bind="@CurrDoor.Quantity" class="form-control text-center">
|
||||
@if (CurrDoorClone.Quantity == CurrDoor.Quantity)
|
||||
{
|
||||
<button class="btn btn-outline-success" type="button" @onclick="()=>addOrRemoveOneDoorNumber(true)">+1</button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
@if (CurrDoorClone.Quantity == CurrDoor.Quantity)
|
||||
<div class="col-3 rounded" style="background: #EFEFEF">
|
||||
@if (TemplateListGen != null)
|
||||
{
|
||||
<div class="pb-1">
|
||||
<div class="input-group mb-3">
|
||||
<button class="btn btn-primary w-100" type="button" @onclick="()=>doClone()">Clone door</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pb-1">
|
||||
<div class="input-group mb-3">
|
||||
<button class="btn btn-danger w-100" type="button" @onclick="()=>deleteRecord()">Delete door</button>
|
||||
</div>
|
||||
</div>
|
||||
@foreach (var template in TemplateListGen)
|
||||
{
|
||||
<button class="w-100 my-1" style="@activeTemplCss(template.OrderId)">@template.OrderDescript</button>
|
||||
}
|
||||
}
|
||||
|
||||
</div>
|
||||
<div class="w-75">
|
||||
<div class="doorSvgCont" style="height:100%; width:100%; background: linear-gradient(#AFCFD1, #92B2C4);min-height: 50rem;">
|
||||
<div style="align-items: center;display: flex;flex-wrap: wrap;justify-content: center;">
|
||||
<div style="width: 45%; max-height: 30rem;">
|
||||
@if (DoorsList == null || DoorsList.Count == 0)
|
||||
{
|
||||
<LoadingDataSmall></LoadingDataSmall>
|
||||
}
|
||||
else
|
||||
{
|
||||
int idxCount = 0;
|
||||
|
||||
<img src="@($"api/DoorImage/GetImage.svg?DoorId={CurrDoorId}")" />
|
||||
</div>
|
||||
<div class="col-9">
|
||||
<div class="row">
|
||||
@foreach (var door in DoorsList)
|
||||
{
|
||||
idxCount++;
|
||||
<div class="col-4 py-1">
|
||||
<DoorSvgObj ColorLine="#4c0969" LineWidth="8" ObjH="200" ObjW="650" ClassLeftText="col-4" ClassRightText="col-8" EC_ExeFunct="@(()=>doClone())" DoorId="@door.DoorId" ImagePath="@DoorSvgUrl(door.DoorId)" ObjId="idxCount" TextData="@textDictSetup(door)"></DoorSvgObj>
|
||||
</div>
|
||||
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pb-1 text-start">
|
||||
<div class="input-group mb-3">
|
||||
<button class="btn btn-danger" type="button" @onclick="()=>closeModal()">X CLOSE</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="pb-1 text-start">
|
||||
<div class="input-group mb-3">
|
||||
<button class="btn btn-danger" type="button" @onclick="()=>closeModal()">X CLOSE</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -3,6 +3,7 @@ using Microsoft.JSInterop;
|
||||
using WebDoorCreator.Data.DbModels;
|
||||
using WebDoorCreator.Data.DTO;
|
||||
using WebDoorCreator.Data.Services;
|
||||
using WebDoorCreator.UI.Components.DoorMan;
|
||||
|
||||
namespace WebDoorCreator.UI.Components.TemplateMan
|
||||
{
|
||||
@@ -59,36 +60,7 @@ namespace WebDoorCreator.UI.Components.TemplateMan
|
||||
/// <returns></returns>
|
||||
protected async Task doClone()
|
||||
{
|
||||
var DoorOpsList = await WDService.DoorOpGetByDoorId(CurrDoorId);
|
||||
if (DoorOpsList != null)
|
||||
{
|
||||
var doorOps2Clone = DoorOpsList?.Where(x => x.DoorId == CurrDoorId).ToList();
|
||||
|
||||
var door2Clone = CurrDoor;
|
||||
|
||||
if (door2Clone != null)
|
||||
{
|
||||
var doorToAdd = door2Clone.ObjClone(userId);
|
||||
// salvo!
|
||||
newDoorId = await WDService.DoorInsert(doorToAdd);
|
||||
if (newDoorId != 0 && doorOps2Clone != null)
|
||||
{
|
||||
foreach (var item in doorOps2Clone)
|
||||
{
|
||||
var doorOp2Add = item.ObjClone(userId, newDoorId);
|
||||
doorOps2Add.Add(doorOp2Add);
|
||||
}
|
||||
|
||||
// salvo!
|
||||
var done = await WDService.DoorOpInsert(newDoorId, doorOps2Add);
|
||||
if (done)
|
||||
{
|
||||
await doSave();
|
||||
await closeModal();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//await WDService.DoorCloneToOrder();
|
||||
}
|
||||
|
||||
|
||||
@@ -98,9 +70,70 @@ namespace WebDoorCreator.UI.Components.TemplateMan
|
||||
await ReloadData();
|
||||
}
|
||||
|
||||
protected string activeTemplCss(int OrdId)
|
||||
{
|
||||
string answ = "";
|
||||
if(OrdId == currOrderId)
|
||||
{
|
||||
answ = "color: #2980B9; background-color: rgba(41, 128, 185. 0.2)";
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = "color: #000; background-color: transparent";
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Prepara il dictionary dei testi da riportare nell'oggetto ordine
|
||||
/// </summary>
|
||||
/// <param name="door"></param>
|
||||
/// <returns></returns>
|
||||
protected Dictionary<string, string> textDictSetup(DoorModel door)
|
||||
{
|
||||
Dictionary<string, string> answ = new Dictionary<string, string>();
|
||||
answ.Add("Door ID:", $"{door.DoorId}");
|
||||
answ.Add("Model #:", $"{door.TypeNav?.TypeId}");
|
||||
answ.Add("Door Price:", $"{(door.Quantity * door.UnitCost):C2}");
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Path del servizio di recupero SVG delle porte
|
||||
/// </summary>
|
||||
/// <param name="doorId"></param>
|
||||
/// <returns></returns>
|
||||
protected string DoorSvgUrl(int doorId)
|
||||
{
|
||||
return $"api/DoorImage/GetImage.svg?DoorId={doorId}";
|
||||
}
|
||||
[Parameter]
|
||||
public int currOrderId { get; set; } = 0;
|
||||
protected List<DoorModel>? DoorsList { get; set; } = null;
|
||||
protected List<OrderStatusViewModel>? TemplateListGen { get; set; } = null;
|
||||
protected List<OrderStatusViewModel>? TemplateListbyComp { get; set; } = null;
|
||||
protected async Task ReloadData()
|
||||
{
|
||||
|
||||
if (currOrderId != -1)
|
||||
{
|
||||
var SearchRecords = await WDService.DoorGetByOrderId(currOrderId);
|
||||
TemplateListGen = await WDService.OrderStatusGetFilt(1, 10000, DateTime.Today.AddYears(-100), DateTime.Today.AddYears(100));
|
||||
TemplateListGen = await WDService.OrderStatusGetFilt(1, 10000, DateTime.Today.AddYears(-100), DateTime.Today.AddYears(100));
|
||||
if (SearchRecords != null)
|
||||
{
|
||||
|
||||
DoorsList = SearchRecords
|
||||
.ToList();
|
||||
|
||||
if (DoorsList != null)
|
||||
{
|
||||
var currOrder = DoorsList.FirstOrDefault();
|
||||
if (currOrder?.OrderNav != null)
|
||||
{
|
||||
//orderStatus = currOrder.OrderNav.Status;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42,4 +42,8 @@
|
||||
100% {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
}
|
||||
button {
|
||||
border: none;
|
||||
border-radius: 0.3rem;
|
||||
}
|
||||
@@ -49,3 +49,8 @@
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
button {
|
||||
border: none;
|
||||
border-radius: 0.3rem;
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
.modalOrd{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4);}.modalOrd-content{background-color:#fefefe;margin:3% auto;padding:20px;border:1px solid #888;width:50%;border-radius:1rem;animation:slideDown .5s;}.closeOrd{color:#aaa;float:right;font-size:2.5rem;font-weight:bold;}.closeOrd:hover,.closeOrd:focus{color:#000;text-decoration:none;cursor:pointer;}@keyframes slideDown{0%{transform:translate(0,-1000px);}100%{transform:translate(0,0);}}
|
||||
.modalOrd{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4);}.modalOrd-content{background-color:#fefefe;margin:3% auto;padding:20px;border:1px solid #888;width:50%;border-radius:1rem;animation:slideDown .5s;}.closeOrd{color:#aaa;float:right;font-size:2.5rem;font-weight:bold;}.closeOrd:hover,.closeOrd:focus{color:#000;text-decoration:none;cursor:pointer;}@keyframes slideDown{0%{transform:translate(0,-1000px);}100%{transform:translate(0,0);}}button{border:0;border-radius:.3rem;}
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
<CopyToClipboard Text="PROVATEST" AddSlash="true"></CopyToClipboard>
|
||||
|
||||
<TemplModal currOrderId="56"></TemplModal>
|
||||
|
||||
<div class="row mx-2">
|
||||
@for (int i = 0; i < 8; i++)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>0.9.2306.0109</Version>
|
||||
<Version>0.9.2306.0110</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<UserSecretsId>aspnet-WebDoorCreator.UI-dfe95fed-1398-4144-bd43-8b3a765d6608</UserSecretsId>
|
||||
</PropertyGroup>
|
||||
|
||||
Reference in New Issue
Block a user