From dd8b1ac6b424b511846228889ef3b7281b3016d9 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 21 Aug 2024 15:16:19 +0200 Subject: [PATCH] transfer cards accordion style fixes, coloring fiix, user transfers list (WIP), driver sendmessage, etc --- SqlSchemaCompare_Dev_to_DevRelease.scmp | 4 +- TIAMSharedUI/Pages/EditTransfers.razor | 3 +- TIAMSharedUI/Pages/TransferPage.razor | 3 +- .../CardComponents/CompanyCardComponent.razor | 2 +- .../TransferCardComponent.razor | 293 ++++++++++++++---- .../User/Drivers/DriverManageTransfers.razor | 55 ++-- .../User/Hotels/CreateAndManageTransfer.razor | 3 +- .../Pages/User/Hotels/HotelComponent.razor | 2 +- TIAMSharedUI/Pages/User/ManageAccount.razor | 4 +- .../Pages/User/MyServiceProviders.razor | 2 +- .../User/SysAdmins/CarGridComponent.razor | 2 +- .../Pages/User/UserManageTransfers.razor | 211 +++++++------ .../Shared/ComboboxItemSelector.razor | 55 ++-- TIAMSharedUI/Shared/Components/Navbar.razor | 227 ++++++-------- .../Shared/Components/Navbar.razor.cs | 32 +- TIAMSharedUI/wwwroot/css/TourIAm.css | 18 +- 16 files changed, 555 insertions(+), 361 deletions(-) diff --git a/SqlSchemaCompare_Dev_to_DevRelease.scmp b/SqlSchemaCompare_Dev_to_DevRelease.scmp index 9f6cd6fb..72e73262 100644 --- a/SqlSchemaCompare_Dev_to_DevRelease.scmp +++ b/SqlSchemaCompare_Dev_to_DevRelease.scmp @@ -943,10 +943,10 @@ Anata_Development_Team - TIAM_DEV + TIAM_DEV_log - TIAM_DEV_log + TIAM_DEV TIAM_DEVRELEASE diff --git a/TIAMSharedUI/Pages/EditTransfers.razor b/TIAMSharedUI/Pages/EditTransfers.razor index afc2304d..3f2d6edd 100644 --- a/TIAMSharedUI/Pages/EditTransfers.razor +++ b/TIAMSharedUI/Pages/EditTransfers.razor @@ -20,7 +20,6 @@ @inherits BasePageComponent @inject HttpClient Http @inject NavigationManager navManager -@inject IEnumerable LogWriters @inject ITransferDataService transferDataService @inject IUserDataService UserDataService @inject SumupService SumUpService @@ -405,7 +404,7 @@ else foreach (var t in Enum.GetValues(typeof(TransferStatusType)).OfType().ToList()) _statusTypes.Add(t.ToString()); - _logger = new LoggerClient(LogWriters.ToArray()); + _logger = new LoggerClient(_logWriters.ToArray()); _logger.Info($"parameter: {transferId.ToString()}"); await LoadTransfer(); diff --git a/TIAMSharedUI/Pages/TransferPage.razor b/TIAMSharedUI/Pages/TransferPage.razor index 0853b755..3d4f36e3 100644 --- a/TIAMSharedUI/Pages/TransferPage.razor +++ b/TIAMSharedUI/Pages/TransferPage.razor @@ -25,7 +25,7 @@
-
+ @* *@ -
diff --git a/TIAMSharedUI/Pages/User/CardComponents/CompanyCardComponent.razor b/TIAMSharedUI/Pages/User/CardComponents/CompanyCardComponent.razor index 7dd938c3..79afc6b2 100644 --- a/TIAMSharedUI/Pages/User/CardComponents/CompanyCardComponent.razor +++ b/TIAMSharedUI/Pages/User/CardComponents/CompanyCardComponent.razor @@ -43,7 +43,7 @@ if (Context.Products.Count() > 0) { - diff --git a/TIAMSharedUI/Pages/User/CardComponents/TransferCardComponent.razor b/TIAMSharedUI/Pages/User/CardComponents/TransferCardComponent.razor index 50d5463c..b224693e 100644 --- a/TIAMSharedUI/Pages/User/CardComponents/TransferCardComponent.razor +++ b/TIAMSharedUI/Pages/User/CardComponents/TransferCardComponent.razor @@ -1,93 +1,194 @@ -@using BlazorAnimation +@using AyCode.Core.Enums +@using AyCode.Services.Loggers +@using BlazorAnimation +@using TIAM.Core.Consts @using TIAM.Core.Enums @using TIAM.Entities.Transfers +@using TIAM.Models.Dtos.Users @using TIAM.Services +@using TIAMSharedUI.Pages.Components.EditComponents +@using TIAMSharedUI.Pages.User.SysAdmins @using TIAMSharedUI.Shared.Components.Cards @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Models.ClientSide.UI +@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels @using TIAMWebApp.Shared.Application.Services +@using TIAMWebApp.Shared.Application.Utility +@inject IEnumerable LogWriters @inject IServiceProviderDataService ServiceProviderDataService @inject AdminSignalRClient AdminSignalRClient; +@inject IWizardProcessor wizardProcessor -
-
-
- -
-
-
@($"{Context.FullName}")
-

@Context.ContactEmail

-

@Context.ContactPhone

-
-
- -
- -
-
- @RenderDetailsItem("fa-solid fa-location-dot", "From", Context.FromAddress) -
-
- @RenderDetailsItem("fa-solid fa-location-dot", "To", Context.ToAddress) -
-
-
- @RenderDetailsItem("fa-solid fa-users", "Passengers", Context.PassengerCount.ToString()) -
-
- @RenderDetailsItem("fa-solid fa-suitcase-rolling", "Luggage", Context.LuggageCount.ToString()) -
-
- @RenderDetailsItem("fa-solid fa-hashtag", "Flight number", Context.FlightNumber) -
-
-
- @RenderDetailsItem("fa-solid fa-hashtag", "Comment", Context.Comment) -
-
- @RenderDetailsItem("fa-solid fa-list-check", "Status", AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType).StatusName) -
-
- - -
-
- Save -
- @if(!Context.Paid) - { -
-
- Paid in car -
+ + + @{ + if(showResultMessage) + { +
@resultMessage
+ } + else + { + + } } + +
+ + @{ + if(showResultMessage) + { + + } + else + { + + } + } + + +
+ + + + +
+
+
+ +
+
+
@($"{Context.FullName}")
+

@Context.ContactEmail

+

@Context.ContactPhone

+
+
+ +
+ +
+
+ @RenderDetailsItem("fa-solid fa-location-dot", "From", Context.FromAddress) +
+
+ @RenderDetailsItem("fa-solid fa-location-dot", "To", Context.ToAddress) +
+
+
+ @RenderDetailsItem("fa-solid fa-users", "Passengers", Context.PassengerCount.ToString()) +
+
+ @RenderDetailsItem("fa-solid fa-suitcase-rolling", "Luggage", Context.LuggageCount.ToString()) +
+
+ @RenderDetailsItem("fa-solid fa-hashtag", "Flight number", Context.FlightNumber) +
+
+
+ @RenderDetailsItem("fa-solid fa-hashtag", "Comment", Context.Comment) +
+
+ @RenderDetailsItem("fa-solid fa-list-check", "Status", AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType).StatusName) +
+
+ + +
+
+ Save +
+ @if (!Context.Paid) + { +
+
+ Paid in car +
+ } + +

@msg

+
+
+
+ +
+ +
+ +
+ +
-

@msg

-
-
@code { [Parameter] public Transfer Context { get; set; } - [Parameter] - public EventCallback DataChanged { get; set; } + [Parameter] public EventCallback DataChanged { get; set; } + + private LoggerClient _logger = null!; + + //Email + private bool showResultMessage = false; + private string resultMessage = string.Empty; + private List sysAdmins = []; + + + private MessageWizardModel _messageWizardModel = new(); + + private bool displayCard = true; + + private bool _popupVisible; + + public List IgnoreList = + [ + "ReceiverEmailAddress", + "ReceiverFullName", + "ReceiverId", + "SenderEmailAddress", + "SenderFullName", + "SenderId", + "ContextId", + "ContextType" + ]; + + private static readonly IEnumerable Statuses = new[] - { + { new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"), new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"), new TransferStatusModel(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"), new TransferStatusModel(Convert.ToByte(TransferStatusType.Finished), "Finished"), new TransferStatusModel(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"), - }; + }; private static readonly List AllStatuses = new() - { + { new TransferStatusModel(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"), new TransferStatusModel(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"), new TransferStatusModel(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"), @@ -97,7 +198,7 @@ new TransferStatusModel(Convert.ToByte(TransferStatusType.Finished), "Finished"), new TransferStatusModel(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"), new TransferStatusModel(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled") - }; + }; private TransferStatusModel _currentStatusType; public TransferStatusModel CurrentStatusType @@ -175,12 +276,15 @@ protected override async Task OnInitializedAsync() { + _logger = new LoggerClient(LogWriters.ToArray()); + sysAdmins = await AdminSignalRClient.GetByIdAsync>(SignalRTags.GetAllUserModelDtoDetails, TiamConstClient.SysAdmins[0]); await base.OnInitializedAsync(); } protected override Task OnParametersSetAsync() { CurrentStatusType = AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType); + return base.OnParametersSetAsync(); } @@ -196,4 +300,61 @@
; } + + + void SendMail(Transfer item) + { + _logger.Info($"Preparing mail to {item.ContactEmail}, {item.Id}"); + _messageWizardModel.Subject = $"[#{item.OrderId}] New message from guest"; + _messageWizardModel.ReceiverId = TiamConstClient.SysAccounts["SystemEmailSender"]; + //get first sysadmin + + _messageWizardModel.ReceiverEmailAddress = sysAdmins[0].UserDto.EmailAddress; + _messageWizardModel.ReceiverFullName = "Admin user"; + + _messageWizardModel.SenderId = item.UserId; + _messageWizardModel.SenderEmailAddress = TiamConstClient.SystemEmailAddress; + + _messageWizardModel.ContextId = item.Id; + _messageWizardModel.ContextType = MessageContextType.Transfer; + _popupVisible = true; + } + + void CancelCreateClick() + { + showResultMessage = false; + resultMessage = ""; + _popupVisible = false; + } + + void EmailPopupClosed() + { + //cancel clicked + + } + + void EmailPopupClosing(PopupClosingEventArgs args) + { + //myModel = new TransferWizardModel(); + _messageWizardModel = new MessageWizardModel(); + } + + public async Task SubmitForm(object result) + { + var messageModel = (result as MessageWizardModel)!; + _logger.Info(messageModel.Content); + var email = await wizardProcessor.ProcessWizardAsync(result.GetType(), messageModel); + if (email != null) + { + resultMessage = "Message sent"; + } + else + { + resultMessage = $"Something went wrong, please try again later, or contact us by regular email at {TiamConstClient.SystemEmailAddress}!"; + } + showResultMessage = true; + _logger.Info($"Submitted nested form: {result.GetType().FullName}"); + + } + } diff --git a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor index ce26539b..fe2eae62 100644 --- a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor @@ -74,19 +74,25 @@
- + - @foreach (var transfer in PageModel.Upcomings) { - - -
- + + +
+

@($"[#{transfer.OrderId}] {transfer.Appointment}")

+

@($"{transfer.FromAddress}")

+
+ + + +
} @@ -101,18 +107,25 @@ - @foreach (var transfer in PageModel.Problems) { - - -
- + + + +
+

@($"[#{transfer.OrderId}] {transfer.Appointment}")

+

@($"{transfer.FromAddress}")

+
+ + + +
} @@ -158,10 +171,10 @@ - @{ - var appointment = (Transfer)context.DataItem; - @appointment.Appointment.ToString("t") - } + @{ + var appointment = (Transfer)context.DataItem; + @appointment.Appointment.ToString("t") + } @@ -370,19 +383,19 @@ switch (transferStatusByte) { case 5: - return "bg-important text-body"; + return "text-danger fa-solid fa-triangle-exclamation"; case > 5 and < 35: - return "bg-attention text-body"; + return "text-warning fa-solid fa-triangle-exclamation"; case 35: - return "bg-finished text-body"; + return "text-success fa-solid fa-circle-check"; case > 35: - return "bg-cancel text-body"; + return "text-muted fa-solid fa-circle-xmark"; default: - return "text-body"; + return "text-primary"; } } @@ -393,7 +406,7 @@ _logger = new LoggerClient(LogWriters.ToArray()); InitializePageAsync(DriverId).Forget(); - + await base.OnInitializedAsync(); } diff --git a/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor b/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor index 46f1150d..059a5530 100644 --- a/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor +++ b/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor @@ -44,7 +44,8 @@ SearchFilterCondition="@ListSearchFilterCondition.Contains" ListRenderMode="ListRenderMode.Virtual" TextFieldName="Name" - CssClass="form-field"> + CssClass="form-field" + SizeMode="SizeMode.Small">
diff --git a/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor b/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor index 30e83536..dc2a19ec 100644 --- a/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor +++ b/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor @@ -71,7 +71,7 @@
diff --git a/TIAMSharedUI/Pages/User/ManageAccount.razor b/TIAMSharedUI/Pages/User/ManageAccount.razor index 6ca1a3c0..6b8132f2 100644 --- a/TIAMSharedUI/Pages/User/ManageAccount.razor +++ b/TIAMSharedUI/Pages/User/ManageAccount.razor @@ -28,7 +28,7 @@ @using TIAMSharedUI.Shared.Components.BaseComponents @inherits BasePageComponent -@layout AdminLayout +@* @layout AdminLayout *@ @inject IEnumerable LogWriters @inject IStringLocalizer localizer @inject IWizardProcessor wizardProcessor @@ -81,7 +81,7 @@
- diff --git a/TIAMSharedUI/Pages/User/MyServiceProviders.razor b/TIAMSharedUI/Pages/User/MyServiceProviders.razor index 7821381c..282a328e 100644 --- a/TIAMSharedUI/Pages/User/MyServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/MyServiceProviders.razor @@ -38,7 +38,7 @@ - diff --git a/TIAMSharedUI/Pages/User/SysAdmins/CarGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/CarGridComponent.razor index bc255083..655d6f36 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/CarGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/CarGridComponent.razor @@ -18,7 +18,7 @@ @inject AdminSignalRClient AdminSignalRClient - LogWriters @inject IStringLocalizer localizer @inject IWizardProcessor wizardProcessor @@ -36,8 +36,8 @@ Transfers
-

Tasks

-

Manage your tasks here!

+

Your orders

+

Manage your orders here!

@@ -71,98 +71,111 @@
- - - - - - - @foreach (var (transfer, i) in Upcoming) - { - - - -
- -
-
-
- } -
-
-
- - - - @foreach (var (transfer, i) in Problems) - { - - - -
- -
-
-
- } -
-
-
- -
- - - - - - - - - - -
-
+ + + + + @foreach (var (transfer, i) in Upcoming) + { - -
- - + + +
+

@($"[#{transfer.OrderId}] {transfer.Appointment}")

+

@($"{transfer.FromAddress}")

+
+
+ - - - - - - - - - -
-
-
+ + + + + } +
+
+
+ + + + @foreach (var (transfer, i) in Problems) + { + + + +
+

@($"[#{transfer.OrderId}] {transfer.Appointment}")

+

@($"{transfer.FromAddress}")

+
+
+ + + + + + +
+ } +
+
+
+ + + +
+ + + + + + + + + + +
+
+ + +
+ + + + + + + + + + + + + +
+
+ +
-
-
@@ -276,13 +289,13 @@ { if (e.FieldName == "Appointment") { - - string displayText = ((DateTime)e.Value).Date.ToString(); + + string displayText = ((DateTime)e.Value).Date.ToString(); e.DisplayText = displayText; } } - + private void RefreshComponent() { StateHasChanged(); @@ -355,7 +368,7 @@ _logger.Info($"Submitted nested form: {result.GetType().FullName}"); } - + string GetCustomColor(TransferStatusType transferStatusType) { @@ -365,19 +378,19 @@ switch (transferStatusByte) { case 5: - return "bg-important"; + return "text-danger fa-solid fa-triangle-exclamation"; case > 5 and < 35: - return "bg-attention"; + return "text-warning fa-solid fa-triangle-exclamation"; case 35: - return "bg-finished"; + return "text-success fa-solid fa-circle-check"; case > 35: - return "bg-cancel"; + return "text-muted fa-solid fa-circle-xmark"; default: - return ""; + return "text-primary"; } } diff --git a/TIAMSharedUI/Shared/ComboboxItemSelector.razor b/TIAMSharedUI/Shared/ComboboxItemSelector.razor index 181219b8..9195bb66 100644 --- a/TIAMSharedUI/Shared/ComboboxItemSelector.razor +++ b/TIAMSharedUI/Shared/ComboboxItemSelector.razor @@ -19,37 +19,38 @@ @inject GooglePlacesService GooglePlacesService - + - - - - - + + + + + - - - - @* - - - - Validate Address - - -

@ValidationMessage

-
*@ - + + + + @* + + + + Validate Address + + +

@ValidationMessage

+
*@ +
diff --git a/TIAMSharedUI/Shared/Components/Navbar.razor b/TIAMSharedUI/Shared/Components/Navbar.razor index 7835acf2..906d713a 100644 --- a/TIAMSharedUI/Shared/Components/Navbar.razor +++ b/TIAMSharedUI/Shared/Components/Navbar.razor @@ -7,169 +7,142 @@ -@* *@ - @code { - - } diff --git a/TIAMSharedUI/Shared/Components/Navbar.razor.cs b/TIAMSharedUI/Shared/Components/Navbar.razor.cs index 03499a30..69f0fba8 100644 --- a/TIAMSharedUI/Shared/Components/Navbar.razor.cs +++ b/TIAMSharedUI/Shared/Components/Navbar.razor.cs @@ -20,6 +20,7 @@ using Microsoft.AspNetCore.Components.Authorization; using Microsoft.JSInterop; using Microsoft.EntityFrameworkCore.Metadata.Internal; using Microsoft.AspNetCore.Components.Routing; +using AyCode.Blazor.Components.Services; namespace TIAMSharedUI.Shared.Components @@ -54,14 +55,19 @@ namespace TIAMSharedUI.Shared.Components private bool enableLogin = true; private bool enableEvents = false; private bool enableTransfer = true; - private bool enableLanguage = false; + private bool enableLanguage = true; private bool enableApi = true; private bool enableChat = true; private string? NavMenuCssClass => collapseNavMenu ? "collapse" : "show"; private bool collapseNavMenu = true; private bool myUser = false; - private bool hasProperty = false; + private bool hasProperty = false; + private bool isSysAdmin = false; + private bool isDevAdmin = false; + private Guid? userId = null; + private string userEmail = ""; + private string userFullName = ""; private ILogger _logger; @@ -129,6 +135,18 @@ namespace TIAMSharedUI.Shared.Components StateHasChanged(); } + private void NavToAcc() + { + var url = $"user/account/{userId}"; + navigationManager.NavigateTo(url); + } + + private void NavToTransfers() + { + var url = $"user/transfers/{userId}"; + navigationManager.NavigateTo(url); + } + public void Dispose() { // Unsubscribe from the event when the component is disposed @@ -140,6 +158,12 @@ namespace TIAMSharedUI.Shared.Components if (sessionService.User != null) { myUser = true; + userId = sessionService.User.UserId; + userEmail = sessionService.User.Email; + if (sessionService.User.UserModelDto.ProfileDto.FullName != null) + { + userFullName = sessionService.User.UserModelDto.ProfileDto.FullName!; + } } else { @@ -152,8 +176,10 @@ namespace TIAMSharedUI.Shared.Components if (properties == null) return; + hasProperty = properties.Count > 0; - + isSysAdmin = sessionService.IsSysAdmin; + isDevAdmin = sessionService.IsDevAdmin; foreach (var property in properties) { _logger.Detail($"First property: {property.Value} "); diff --git a/TIAMSharedUI/wwwroot/css/TourIAm.css b/TIAMSharedUI/wwwroot/css/TourIAm.css index ccc91d50..57ab3e21 100644 --- a/TIAMSharedUI/wwwroot/css/TourIAm.css +++ b/TIAMSharedUI/wwwroot/css/TourIAm.css @@ -99,6 +99,14 @@ select { background-color: aliceblue; } +.no-padding { + padding: 0px !important; +} + +.no-margin { + margin: 0px !important; +} + .bg-red { background-color: #f7279f !important; } @@ -208,20 +216,20 @@ select { } .dxbl-tabs.dxbl-tabs-top { - --dxbl-tabs-bg: #ffffff45; - background-color: #ffffff45; + --dxbl-tabs-bg: #ffffff15; + background-color: #ffffff15; /*box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 ); backdrop-filter: blur( 6px );*/ - -webkit-backdrop-filter: blur( 6px ); + /*-webkit-backdrop-filter: blur( 6px );*/ /*border-radius: 10px;*/ } .dxbl-modal > .dxbl-modal-root > .dxbl-popup > .dxbl-modal-content { - background: rgba( 255, 255, 255, 0.45 ); + background: rgba( 255, 255, 255, 1 ); box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 ); backdrop-filter: blur( 6px ); -webkit-backdrop-filter: blur( 6px ); - border-radius: 10px; + border-radius: 0px; border: 1px solid rgba( 255, 255, 255, 0.18 ); }