modal show

This commit is contained in:
zaccaria.majid
2023-06-01 11:53:50 +02:00
parent 96616dcc3e
commit feb41fe576
11 changed files with 107 additions and 120 deletions
+1 -1
View File
@@ -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
View File
@@ -1 +1 @@
0.9.2306.0109
0.9.2306.0110
+1 -1
View File
@@ -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()">&times;</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;}
+1
View File
@@ -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++)
+1 -1
View File
@@ -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>