FIX contact parameter not working
This commit is contained in:
parent
0d22adecb1
commit
e1a358f8b7
7 changed files with 113 additions and 128 deletions
|
@ -14,34 +14,11 @@
|
||||||
*@
|
*@
|
||||||
|
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@using Microsoft.AspNetCore.Components
|
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@using Wonky.Entity.Configuration
|
|
||||||
@attribute [Authorize(Roles = "Advisor")]
|
@attribute [Authorize(Roles = "Advisor")]
|
||||||
@page "/advisor/customers/{CompanyId}"
|
@page "/advisor/customers/{CompanyId}"
|
||||||
<PageTitle>Stamkort for @Company.Name</PageTitle>
|
<PageTitle>Stamkort for @Company.Name</PageTitle>
|
||||||
|
|
||||||
@*
|
|
||||||
<div class="led-container">
|
|
||||||
<div class="led-box">
|
|
||||||
<div class="led-green"></div>
|
|
||||||
<p>Green LED</p>
|
|
||||||
</div>
|
|
||||||
<div class="led-box">
|
|
||||||
<div class="led-yellow"></div>
|
|
||||||
<p>Yellow LED</p>
|
|
||||||
</div>
|
|
||||||
<div class="led-box">
|
|
||||||
<div class="led-red"></div>
|
|
||||||
<p>Red LED</p>
|
|
||||||
</div>
|
|
||||||
<div class="led-box">
|
|
||||||
<div class="led-blue"></div>
|
|
||||||
<p>Blue LED</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
*@
|
|
||||||
|
|
||||||
@if (!string.IsNullOrWhiteSpace(Company.Account))
|
@if (!string.IsNullOrWhiteSpace(Company.Account))
|
||||||
{
|
{
|
||||||
@if (!string.IsNullOrWhiteSpace(Company.Blocked))
|
@if (!string.IsNullOrWhiteSpace(Company.Blocked))
|
||||||
|
@ -253,7 +230,7 @@
|
||||||
<label for="contacts" class="col-sm-1 col-form-label-sm">Kontakt</label>
|
<label for="contacts" class="col-sm-1 col-form-label-sm">Kontakt</label>
|
||||||
<div id="contacts" class="col-sm-11">
|
<div id="contacts" class="col-sm-11">
|
||||||
<div class="list-group">
|
<div class="list-group">
|
||||||
<div class="list-group-item list-group-item-action bg-dark text-white" onclick="@(() => OpenContactPopup(DefaultContact))">
|
<div class="list-group-item list-group-item-action bg-dark text-white" @onclick="@(() => OpenContactPopup(DefaultContact))">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-4">Stilling</div>
|
<div class="col-sm-4">Stilling</div>
|
||||||
<div class="col-sm-4">Navn</div>
|
<div class="col-sm-4">Navn</div>
|
||||||
|
@ -267,7 +244,7 @@
|
||||||
{
|
{
|
||||||
@foreach (var contact in Contacts)
|
@foreach (var contact in Contacts)
|
||||||
{
|
{
|
||||||
<div class="list-group-item list-group-item-action" onclick="@(() => OpenContactPopup(contact))">
|
<div class="list-group-item list-group-item-action" @onclick="@(() => OpenContactPopup(contact))">
|
||||||
<div class="row g-2">
|
<div class="row g-2">
|
||||||
<div class="col-sm-4">@contact.JobTitle</div>
|
<div class="col-sm-4">@contact.JobTitle</div>
|
||||||
<div class="col-sm-4">@contact.FirstName @contact.LastName</div>
|
<div class="col-sm-4">@contact.FirstName @contact.LastName</div>
|
||||||
|
@ -318,7 +295,7 @@
|
||||||
<button type="button" class="btn btn-outline-dark" onclick="@ToggleVisibility">@ToggleButtonText</button>
|
<button type="button" class="btn btn-outline-dark" onclick="@ToggleVisibility">@ToggleButtonText</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4 d-grid">
|
<div class="col-sm-4 d-grid">
|
||||||
@if (AppInfo.Value.Rc)
|
@if (AppInfo!.Value!.Rc)
|
||||||
{
|
{
|
||||||
<a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a>
|
<a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a>
|
||||||
}
|
}
|
||||||
|
@ -333,5 +310,6 @@
|
||||||
|
|
||||||
<VatLookupDkModal VatAddress="CompanyVatAddress" EntityName="@Company.Name" VatNumber="@Company.VatNumber"
|
<VatLookupDkModal VatAddress="CompanyVatAddress" EntityName="@Company.Name" VatNumber="@Company.VatNumber"
|
||||||
@ref="VatLookupPopup" OnSelectedCompany="SelectedCompanyCallback"/>
|
@ref="VatLookupPopup" OnSelectedCompany="SelectedCompanyCallback"/>
|
||||||
<ContactModal ParamContact="@SelectedContact" CompanyName="@Company.Name"
|
|
||||||
@ref="ContactPopup" OnSaveClicked="WriteContactCallback" OnDeleteClicked="DeleteContactCallback"/>
|
<ContactViewEditModal SelectedContact="SelectedContact" CompanyName="@Company.Name"
|
||||||
|
@ref="ContactViewPopup" OnSaveClicked="WriteContactCallback" OnDeleteClicked="DeleteContactCallback"/>
|
|
@ -72,13 +72,13 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
private bool ErpEditDisabled { get; set; } = true;
|
private bool ErpEditDisabled { get; set; } = true;
|
||||||
private bool VatEditDisabled { get; set; } = true;
|
private bool VatEditDisabled { get; set; } = true;
|
||||||
private List<ContactDto> Contacts { get; set; } = new();
|
private List<ContactDto> Contacts { get; set; } = new();
|
||||||
private VatLookupDkModal VatLookupPopup { get; set; } = new();
|
|
||||||
private ContactDto SelectedContact { get; set; } = new();
|
|
||||||
private ContactDto DefaultContact { get; set; } = new();
|
|
||||||
private ContactModal ContactPopup { get; set; } = new();
|
|
||||||
private UserManagerEditView UserInfo { get; set; } = new();
|
private UserManagerEditView UserInfo { get; set; } = new();
|
||||||
private string ToggleButtonText { get; set; } = "";
|
private string ToggleButtonText { get; set; } = "";
|
||||||
private bool Kanvas { get; set; }
|
private bool Kanvas { get; set; }
|
||||||
|
private ContactDto SelectedContact { get; set; } = new();
|
||||||
|
private ContactDto DefaultContact { get; set; } = new();
|
||||||
|
private ContactViewEditModal ContactViewPopup { get; set; } = new();
|
||||||
|
private VatLookupDkModal VatLookupPopup { get; set; } = new();
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
@ -88,6 +88,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
|
|
||||||
// initialize default contact
|
// initialize default contact
|
||||||
DefaultContact = new ContactDto { CompanyId = CompanyId, ContactId = "", FirstName = "" };
|
DefaultContact = new ContactDto { CompanyId = CompanyId, ContactId = "", FirstName = "" };
|
||||||
|
|
||||||
// setup form context
|
// setup form context
|
||||||
ErpContext = new EditContext(Company);
|
ErpContext = new EditContext(Company);
|
||||||
|
|
||||||
|
@ -171,16 +172,19 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
Working = false;
|
Working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ToggleErpEdit()
|
private void ToggleErpEdit()
|
||||||
{
|
{
|
||||||
ErpEditDisabled = !ErpEditDisabled;
|
ErpEditDisabled = !ErpEditDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ToggleVatEdit()
|
private void ToggleVatEdit()
|
||||||
{
|
{
|
||||||
VatEditDisabled = !VatEditDisabled;
|
VatEditDisabled = !VatEditDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task ToggleVisibility()
|
private async Task ToggleVisibility()
|
||||||
{
|
{
|
||||||
Company.IsHidden = Company.IsHidden == 0 ? 1 : 0;
|
Company.IsHidden = Company.IsHidden == 0 ? 1 : 0;
|
||||||
|
@ -190,6 +194,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
await CustomerRepo.UpdateCrmData(CompanyId, Company);
|
await CustomerRepo.UpdateCrmData(CompanyId, Company);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task RequestErpUpdate()
|
private async Task RequestErpUpdate()
|
||||||
{
|
{
|
||||||
if (Working)
|
if (Working)
|
||||||
|
@ -199,10 +204,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
Working = false;
|
Working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Fetch contacts from backend
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="companyId"></param>
|
|
||||||
private async Task FetchContacts(string companyId)
|
private async Task FetchContacts(string companyId)
|
||||||
{
|
{
|
||||||
// load contacts
|
// load contacts
|
||||||
|
@ -211,18 +213,13 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
Contacts = Contacts.OrderBy(x => x.FirstName).ToList();
|
Contacts = Contacts.OrderBy(x => x.FirstName).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Show Vat Lookup modal
|
|
||||||
/// </summary>
|
|
||||||
private void OpenVatLookupModal()
|
private void OpenVatLookupModal()
|
||||||
{
|
{
|
||||||
VatLookupPopup.Show();
|
VatLookupPopup.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Callback to update company properties
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="regInfo"></param>
|
|
||||||
private void SelectedCompanyCallback(VirkRegInfo regInfo)
|
private void SelectedCompanyCallback(VirkRegInfo regInfo)
|
||||||
{
|
{
|
||||||
Logger.LogDebug("CrmCompanyView => SelectCompanyCallback => {}", JsonSerializer.Serialize(regInfo));
|
Logger.LogDebug("CrmCompanyView => SelectCompanyCallback => {}", JsonSerializer.Serialize(regInfo));
|
||||||
|
@ -244,24 +241,22 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
Company.VatNumber = regInfo.VatNumber;
|
Company.VatNumber = regInfo.VatNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Open contact edit popup
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="contact"></param>
|
|
||||||
private void OpenContactPopup(ContactDto contact)
|
private void OpenContactPopup(ContactDto contact)
|
||||||
{
|
{
|
||||||
// write contact to debug log
|
// write contact to debug log
|
||||||
Logger.LogDebug("CompanyView => SaveContactCallback <= {}", JsonSerializer.Serialize(contact));
|
Logger.LogDebug("CompanyView => OpenContactPopup => contact => {}", JsonSerializer.Serialize(contact));
|
||||||
|
|
||||||
// object to pass on to the popup
|
// object to pass on to the popup
|
||||||
SelectedContact = contact;
|
SelectedContact = contact;
|
||||||
|
|
||||||
|
Logger.LogDebug("CompanyView => OpenContactPopup => SelectedContact => {}", JsonSerializer.Serialize(SelectedContact));
|
||||||
|
|
||||||
// show the popup
|
// show the popup
|
||||||
ContactPopup.Show();
|
ContactViewPopup.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Callback for writing contact to backend
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="contact"></param>
|
|
||||||
private async Task WriteContactCallback(ContactDto contact)
|
private async Task WriteContactCallback(ContactDto contact)
|
||||||
{
|
{
|
||||||
Working = true;
|
Working = true;
|
||||||
|
|
|
@ -122,7 +122,7 @@
|
||||||
<i class="bi-clipboard-plus"></i>
|
<i class="bi-clipboard-plus"></i>
|
||||||
</label>
|
</label>
|
||||||
<input class="form-control text-muted" id="qrlink" type="text" readonly value="@Workplace.ShortUrl"/>
|
<input class="form-control text-muted" id="qrlink" type="text" readonly value="@Workplace.ShortUrl"/>
|
||||||
<button type="button" class="@_buttonStyle" @onclick="@OnCopyLink">@_buttonText</button>
|
<button type="button" class="@_copyButtonStyle" @onclick="@OnCopyLink">@_copyButtonText</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 col-md-6">
|
<div class="col-sm-12 col-md-6">
|
||||||
|
@ -153,7 +153,7 @@
|
||||||
<a class="btn btn-dark btn-sm" href="@docView.ApvDocLink" target="_blank"><i class="bi-filetype-html"></i> Kemisk Risiko Vurdering</a>
|
<a class="btn btn-dark btn-sm" href="@docView.ApvDocLink" target="_blank"><i class="bi-filetype-html"></i> Kemisk Risiko Vurdering</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-1">
|
<div class="col-sm-1">
|
||||||
<button type="button" class="btn btn-danger btn-sm" @onclick="@(() => OnRemoveVariant(docView.ProductId, docView.VariantId))">
|
<button type="button" class="btn btn-danger btn-sm" @onclick="@(() => OnConfirmDeleteVariant(docView))">
|
||||||
<i class="bi-trash"></i>
|
<i class="bi-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -178,3 +178,4 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
<ConfirmDeleteModal BodyMessage="@DeleteMessage" OnOkClicked="RemoveWorkplace" @ref="ConfirmDeleteWorkplace"/>
|
<ConfirmDeleteModal BodyMessage="@DeleteMessage" OnOkClicked="RemoveWorkplace" @ref="ConfirmDeleteWorkplace"/>
|
||||||
|
<ConfirmDeleteModal BodyMessage="@DeleteMessage" OnOkClicked="RemoveVariant" @ref="ConfirmDeleteVariant"/>
|
|
@ -55,15 +55,16 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
|
||||||
private WorkplaceInventory WorkplaceInventory { get; set; } = new();
|
private WorkplaceInventory WorkplaceInventory { get; set; } = new();
|
||||||
private List<DocView> DocViews { get; set; } = new();
|
private List<DocView> DocViews { get; set; } = new();
|
||||||
private ConfirmDeleteModal ConfirmDeleteWorkplace { get; set; }
|
private ConfirmDeleteModal ConfirmDeleteWorkplace { get; set; }
|
||||||
private ConfirmDeleteModal ConfirmDeleteProduct { get; set; }
|
private ConfirmDeleteModal ConfirmDeleteVariant { get; set; }
|
||||||
private string DeleteMessage { get; set; } = "";
|
private string DeleteMessage { get; set; } = "";
|
||||||
private string LinkRecipients { get; set; } = "";
|
private string LinkRecipients { get; set; } = "";
|
||||||
private const string CopyText = "Kopier";
|
private const string CopyText = "Kopier";
|
||||||
private const string CopyStyle = "btn btn-primary";
|
private const string CopyStyle = "btn btn-primary";
|
||||||
private const string SuccessText = "Kopieret";
|
private const string CopySuccessText = "Kopieret";
|
||||||
private const string SuccessStyle = "btn btn-success";
|
private const string CopySuccessStyle = "btn btn-success";
|
||||||
private string _buttonText = CopyText;
|
private string _copyButtonText = CopyText;
|
||||||
private string _buttonStyle = CopyStyle;
|
private string _copyButtonStyle = CopyStyle;
|
||||||
|
private DocView SelectedProduct { get; set; } = new();
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
@ -136,23 +137,26 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
|
||||||
{
|
{
|
||||||
await Clipboard.CopyToClipboard(Workplace.ShortUrl);
|
await Clipboard.CopyToClipboard(Workplace.ShortUrl);
|
||||||
|
|
||||||
_buttonText = SuccessText;
|
_copyButtonText = CopySuccessText;
|
||||||
_buttonStyle = SuccessStyle;
|
_copyButtonStyle = CopySuccessStyle;
|
||||||
|
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(2));
|
await Task.Delay(TimeSpan.FromSeconds(2));
|
||||||
|
|
||||||
_buttonText = CopyText;
|
_copyButtonText = CopyText;
|
||||||
_buttonStyle = CopyStyle;
|
_copyButtonStyle = CopyStyle;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task OnSubmitUpdate()
|
private async Task OnSubmitUpdate()
|
||||||
{
|
{
|
||||||
Working = true;
|
Working = true;
|
||||||
|
|
||||||
await Workplaces.UpdateWorkplace(CompanyId, Workplace);
|
await Workplaces.UpdateWorkplace(CompanyId, Workplace);
|
||||||
|
|
||||||
Working = false;
|
Working = false;
|
||||||
|
|
||||||
Toaster.ShowSuccess("Arbejdssted er opdateret");
|
Toaster.ShowSuccess("Arbejdssted er opdateret");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,7 +164,9 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
|
||||||
private void OnConfirmDeleteWorkplace()
|
private void OnConfirmDeleteWorkplace()
|
||||||
{
|
{
|
||||||
DeleteMessage = $"Bekræft at du sletter<br/><strong>{Workplace.Name}</strong> fra <strong>{Workplace.CompanyName}</strong>?<br/>AL INFORMATION slettes og handlingen er uigenkaldelig.";
|
DeleteMessage = $"Bekræft at du sletter<br/><strong>{Workplace.Name}</strong> fra <strong>{Workplace.CompanyName}</strong>?<br/>AL INFORMATION slettes og handlingen er uigenkaldelig.";
|
||||||
|
|
||||||
Logger.LogDebug("ConfirmDeleteWorkplace");
|
Logger.LogDebug("ConfirmDeleteWorkplace");
|
||||||
|
|
||||||
ConfirmDeleteWorkplace.Show();
|
ConfirmDeleteWorkplace.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,35 +174,58 @@ public partial class CrmCustomerWorkplaceViewEditPage : IDisposable
|
||||||
private async Task RemoveWorkplace()
|
private async Task RemoveWorkplace()
|
||||||
{
|
{
|
||||||
Logger.LogDebug("DeleteWorkplace");
|
Logger.LogDebug("DeleteWorkplace");
|
||||||
|
|
||||||
Working = true;
|
Working = true;
|
||||||
|
|
||||||
await Workplaces.DeleteWorkplace(CompanyId, WorkplaceId);
|
await Workplaces.DeleteWorkplace(CompanyId, WorkplaceId);
|
||||||
|
|
||||||
Toaster.ShowInfo("Arbejdssted er slettet.");
|
Toaster.ShowInfo("Arbejdssted er slettet.");
|
||||||
|
|
||||||
Navigator.NavigateTo($"/advisor/customers/{CompanyId}/workplaces");
|
Navigator.NavigateTo($"/advisor/customers/{CompanyId}/workplaces");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task OnRemoveVariant(string productId, string variantId)
|
private void OnConfirmDeleteVariant(DocView selectedProduct)
|
||||||
{
|
{
|
||||||
// delete the apb and apv
|
SelectedProduct = selectedProduct;
|
||||||
var product = WorkplaceInventory
|
|
||||||
.Products.First(x => x.ProductId == productId);
|
|
||||||
var variant = product.Variants.First(x => x.VariantId == variantId);
|
|
||||||
Logger.LogDebug("variant => {}", JsonSerializer.Serialize(variant, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
|
|
||||||
|
|
||||||
foreach (var doc in variant.Docs)
|
DeleteMessage = $"Bekræft at du sletter<br/><strong>{selectedProduct.VariantName}</strong> fra <strong>{Workplace.CompanyName}</strong>?<br/>AL INFORMATION slettes og handlingen er uigenkaldelig.";
|
||||||
{
|
|
||||||
await WorkplaceRepo.DeleteWorkplaceDocuments(CompanyId, WorkplaceId, doc.DocumentId);
|
Logger.LogDebug("ConfirmDeleteProduct");
|
||||||
|
|
||||||
|
ConfirmDeleteVariant.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private async Task RemoveVariant()
|
||||||
|
{
|
||||||
|
if (Working)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Working = true;
|
||||||
|
|
||||||
|
var product = WorkplaceInventory
|
||||||
|
.Products
|
||||||
|
.First(x => x.ProductId == SelectedProduct.ProductId);
|
||||||
|
|
||||||
|
await WorkplaceRepo
|
||||||
|
.DeleteWorkplaceDocuments(CompanyId, WorkplaceId, SelectedProduct.ApbDocId, SelectedProduct.ApvDocId);
|
||||||
|
|
||||||
WorkplaceInventory.Products.Remove(product);
|
WorkplaceInventory.Products.Remove(product);
|
||||||
|
|
||||||
DocViews = GenerateDocumentListView();
|
DocViews = GenerateDocumentListView();
|
||||||
|
|
||||||
Toaster.ShowInfo("Produkt dokumenter er slettet.");
|
Toaster.ShowInfo("Produkt dokumenter er slettet.");
|
||||||
|
|
||||||
|
Working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<DocView> GenerateDocumentListView()
|
private List<DocView> GenerateDocumentListView()
|
||||||
{
|
{
|
||||||
var docViews = new List<DocView>();
|
var docViews = new List<DocView>();
|
||||||
|
|
||||||
var docProducts = WorkplaceInventory.Products.OrderBy(x => x.TradingName).ToList();
|
var docProducts = WorkplaceInventory.Products.OrderBy(x => x.TradingName).ToList();
|
||||||
|
|
||||||
foreach (var product in docProducts)
|
foreach (var product in docProducts)
|
||||||
|
|
|
@ -24,54 +24,50 @@
|
||||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<EditForm Model="Contact" OnValidSubmit="SubmitContact">
|
<EditForm Model="SelectedContact" OnValidSubmit="SubmitContact">
|
||||||
<DataAnnotationsValidator/>
|
<DataAnnotationsValidator/>
|
||||||
<InputText type="hidden" @bind-Value="@Contact.CompanyId"/>
|
<InputText type="hidden" @bind-Value="@SelectedContact.CompanyId"/>
|
||||||
<InputText type="hidden" @bind-Value="@Contact.ContactId"/>
|
<InputText type="hidden" @bind-Value="@SelectedContact.ContactId"/>
|
||||||
<div class="row g-3">
|
<div class="row g-3">
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<label for="firstName">Fornavn</label>
|
<label for="firstName">Fornavn</label>
|
||||||
<InputText id="firstName" class="form-control" @bind-Value="Contact.FirstName"/>
|
<InputText id="firstName" class="form-control" @bind-Value="SelectedContact.FirstName"/>
|
||||||
<ValidationMessage For="@(() => Contact.FirstName)"></ValidationMessage>
|
<ValidationMessage For="@(() => SelectedContact.FirstName)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<label for="lastName">Efternavn</label>
|
<label for="lastName">Efternavn</label>
|
||||||
<InputText id="lastName" class="form-control" @bind-Value="Contact.LastName"/>
|
<InputText id="lastName" class="form-control" @bind-Value="SelectedContact.LastName"/>
|
||||||
<ValidationMessage For="@(() => Contact.LastName)"></ValidationMessage>
|
<ValidationMessage For="@(() => SelectedContact.LastName)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<label for="jobTitle">Job Titel</label>
|
<label for="jobTitle">Job Titel</label>
|
||||||
<InputText id="jobTitle" class="form-control" @bind-Value="Contact.JobTitle"/>
|
<InputText id="jobTitle" class="form-control" @bind-Value="SelectedContact.JobTitle"/>
|
||||||
<ValidationMessage For="@(() => Contact.JobTitle)"></ValidationMessage>
|
<ValidationMessage For="@(() => SelectedContact.JobTitle)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<label for="phone">Direkte nr.</label>
|
<label for="phone">Direkte nr.</label>
|
||||||
<InputText id="phone" class="form-control" @bind-Value="Contact.PhoneDirect"/>
|
<InputText id="phone" class="form-control" @bind-Value="SelectedContact.PhoneDirect"/>
|
||||||
<ValidationMessage For="@(() => Contact.PhoneDirect)"></ValidationMessage>
|
<ValidationMessage For="@(() => SelectedContact.PhoneDirect)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<label for="email">Epost</label>
|
<label for="email">Epost</label>
|
||||||
<InputText id="email" class="form-control" @bind-Value="Contact.Email" />
|
<InputText id="email" class="form-control" @bind-Value="SelectedContact.Email"/>
|
||||||
<ValidationMessage For="@(() => Contact.Email)"></ValidationMessage>
|
<ValidationMessage For="@(() => SelectedContact.Email)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<label for="mobile">Mobil</label>
|
<label for="mobile">Mobil</label>
|
||||||
<InputText id="mobile" class="form-control" @bind-Value="Contact.Mobile" />
|
<InputText id="mobile" class="form-control" @bind-Value="SelectedContact.Mobile"/>
|
||||||
<ValidationMessage For="@(() => Contact.Mobile)"></ValidationMessage>
|
<ValidationMessage For="@(() => SelectedContact.Mobile)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mt-3">
|
<div class="row mt-3">
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
@if (string.IsNullOrWhiteSpace(Contact.ContactId))
|
<button type="button" class="btn btn-danger"
|
||||||
{
|
onclick="@DeleteContact"
|
||||||
<button type="button" class="btn btn-danger" disabled>Slet</button>
|
disabled="@(string.IsNullOrWhiteSpace(SelectedContact.ContactId))">Slet</button>
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<button type="button" class="btn btn-danger" @onclick="DeleteContact">Slet</button>
|
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 text-end">
|
<div class="col-sm-6 text-end">
|
||||||
|
<button type="button" class="btn btn-secondary" onclick="@Hide">Afbryd</button>
|
||||||
<button type="submit" class="btn btn-primary">Gem</button>
|
<button type="submit" class="btn btn-primary">Gem</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -27,51 +27,36 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class ContactModal
|
public partial class ContactViewEditModal
|
||||||
{
|
{
|
||||||
[Parameter] public ContactDto ParamContact { get; set; } = new();
|
// ##############################################################
|
||||||
|
[Inject] public ILogger<ContactViewEditModal> Logger { get; set; }
|
||||||
|
|
||||||
|
// ##############################################################
|
||||||
|
[Parameter] public ContactDto SelectedContact { get; set; }
|
||||||
[Parameter] public string CompanyName { get; set; } = "";
|
[Parameter] public string CompanyName { get; set; } = "";
|
||||||
[Parameter] public ICrmContactRepository ContactRepo { get; set; }
|
|
||||||
[Parameter] public HttpInterceptorService Interceptor { get; set; }
|
|
||||||
[Parameter] public EventCallback<ContactDto> OnSaveClicked { get; set; }
|
[Parameter] public EventCallback<ContactDto> OnSaveClicked { get; set; }
|
||||||
[Parameter] public EventCallback<string> OnDeleteClicked { get; set; }
|
[Parameter] public EventCallback<string> OnDeleteClicked { get; set; }
|
||||||
private ContactDto Contact { get; set; } = new();
|
|
||||||
|
// ##############################################################
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
||||||
private bool DisableDelete { get; set; }
|
|
||||||
private bool FormInvalid { get; set; }
|
|
||||||
|
|
||||||
protected override void OnParametersSet()
|
|
||||||
{
|
|
||||||
Contact = new ContactDto
|
|
||||||
{
|
|
||||||
CompanyId = ParamContact.CompanyId,
|
|
||||||
ContactId = ParamContact.ContactId,
|
|
||||||
FirstName = ParamContact.FirstName,
|
|
||||||
LastName = ParamContact.LastName,
|
|
||||||
JobTitle = ParamContact.JobTitle,
|
|
||||||
PhoneDirect = ParamContact.PhoneDirect
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnInitialized()
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(Contact.ContactId))
|
|
||||||
DisableDelete = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DeleteContact()
|
private void DeleteContact()
|
||||||
{
|
{
|
||||||
OnDeleteClicked.InvokeAsync(Contact.ContactId);
|
OnDeleteClicked.InvokeAsync(SelectedContact.ContactId);
|
||||||
Hide();
|
Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void SubmitContact()
|
private void SubmitContact()
|
||||||
{
|
{
|
||||||
OnSaveClicked.InvokeAsync(Contact);
|
OnSaveClicked.InvokeAsync(SelectedContact);
|
||||||
Hide();
|
Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void Show()
|
public void Show()
|
||||||
{
|
{
|
||||||
_modalDisplay = "block;";
|
_modalDisplay = "block;";
|
||||||
|
@ -79,11 +64,12 @@ public partial class ContactModal
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void Hide()
|
private void Hide()
|
||||||
{
|
{
|
||||||
_modalDisplay = "none;";
|
_modalDisplay = "none;";
|
||||||
_showBackdrop = false;
|
_showBackdrop = false;
|
||||||
Contact = new ContactDto();
|
SelectedContact = new ContactDto();
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"appInfo": {
|
"appInfo": {
|
||||||
"name": "Wonky Online",
|
"name": "Wonky Online",
|
||||||
"version": "146.2",
|
"version": "146.5",
|
||||||
"rc": true,
|
"rc": true,
|
||||||
"sandBox": true,
|
"sandBox": true,
|
||||||
"image": "grumpy-coder.png"
|
"image": "grumpy-coder.png"
|
||||||
|
|
Loading…
Reference in a new issue