diff --git a/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor b/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor index 62d53e6c..d6a55cb0 100644 --- a/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor +++ b/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor @@ -9,8 +9,6 @@ @using TIAMWebApp.Shared.Application.Utility @inject IEnumerable LogWriters -

Edit Form

- @if (isEditing) { (j); - editor.AddAttribute(j++, "NullText", "Please tell us your name."); + editor.AddAttribute(j++, "NullText", "Full name"); editor.AddAttribute(j++, "FirstNameChanged", EventCallback.Factory.Create(this, result => { _logger.DetailConditional($"FirstName changed to {result}"); diff --git a/TIAMSharedUI/Pages/Components/FullNameEditor.razor b/TIAMSharedUI/Pages/Components/FullNameEditor.razor index 844a735b..35b8a470 100644 --- a/TIAMSharedUI/Pages/Components/FullNameEditor.razor +++ b/TIAMSharedUI/Pages/Components/FullNameEditor.razor @@ -1,7 +1,7 @@ @using AyCode.Blazor.Components.Components -

+

@NullText -

+ - -
-
-
-
- Transfers - -
-
- -
-
-
-
- -
- -
-
+
+
+
+ +
+
+
@($"{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 +
+ + +

@msg

+
+
+ @code { - [Parameter] public Guid ContextID { get; set; } + [Parameter] public Transfer Context { get; set; } + + [Parameter] + public EventCallback DataChanged { get; set; } + + 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"), + 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"), + new TransferStatusModel(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled") + }; + + private TransferStatusModel _currentStatusType; + public TransferStatusModel CurrentStatusType + { + get => _currentStatusType; + set + { + if (_currentStatusType != value) + { + _currentStatusType = value; + OnSelectedStatusChanged(value); + } + } + } + + string msg; + private bool isSaveActive = false; + + void OnSelectedStatusChanged(TransferStatusModel status) + { + + if (status == null) + { + isSaveActive = false; + msg = "Status is null"; + } + else + { + isSaveActive = true; + Context.TransferStatusType = (TransferStatusType)(Convert.ToInt16(status.StatusValue)); + msg = $"Status changed: {status.StatusName} - {Context.TransferStatusType} !"; + } + + } + + protected async Task SaveStatus() + { + + isSaveActive = false; + var result = await AdminSignalRClient.PostDataAsync(SignalRTags.UpdateTransfer, Context); + if (result != null) + { + if (AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)result.TransferStatusType) == CurrentStatusType) + { + msg = $"Stataus saved"; + StateHasChanged(); + } + else + { + msg = "Some error occured, please try again later"; + } + } + else + { + msg = "Some error occured during saving, please try again later"; + } + await DataChanged.InvokeAsync(msg); + } + + protected override async Task OnInitializedAsync() { - await base.OnInitializedAsync(); } + + protected override Task OnParametersSetAsync() + { + CurrentStatusType = AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType); + return base.OnParametersSetAsync(); + } + + RenderFragment RenderDetailsItem(string iconCssClass, string caption, string value) + { + return @
+
+ +
+
+ +
@value
+
+
; + } } diff --git a/TIAMSharedUI/Pages/User/CardComponents/TransferCardComponent.razor.css b/TIAMSharedUI/Pages/User/CardComponents/TransferCardComponent.razor.css new file mode 100644 index 00000000..ca9b8b1d --- /dev/null +++ b/TIAMSharedUI/Pages/User/CardComponents/TransferCardComponent.razor.css @@ -0,0 +1,29 @@ +.e-name { + margin-bottom: 0.25rem; + font-size: 1.25rem; + font-weight: 500; + line-height: 1.2; +} + +.e-email { + font-size: 0.75rem; + text-decoration: underline; + margin-bottom: 0; +} + +.e-title { + font-size: 0.875rem; + margin-bottom: 0.5rem; +} + +.e-details .text-container label { + font-size: 0.8125rem; + line-height: 1rem; +} + +.e-details .text-container { + font-size: 0.875rem; + line-height: 1.125rem; + white-space: nowrap; +} + diff --git a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor index 18a0c748..08943bd8 100644 --- a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor @@ -6,6 +6,7 @@ @using TIAM.Resources @using TIAM.Services @using TIAMSharedUI.Pages.Components +@using TIAMSharedUI.Pages.User.CardComponents @using TIAMSharedUI.Pages.User.SysAdmins @using TIAMSharedUI.Shared @using TIAMWebApp.Shared.Application.Interfaces @@ -67,11 +68,30 @@
- +
- + + + + @foreach (var (transfer, i) in Items) + { + + + +
+ +
+
+
+ } +
+
+
@@ -82,22 +102,22 @@
+ Logger="_logger" + GetAllMessageTag="SignalRTags.GetTransfersByUserProductMappingId" + SignalRClient="AdminSignalRClient" + ContextIds="new object[] {driverId}" + OnDataSourceChanged="DataSourceChanged" + OnGridItemChanging="DataSourceItemChanging" + OnGridItemChanged="DataSourceItemChanged" + OnGridItemDeleting="DataItemDeleting" + OnGridEditModelSaving="DataItemSaving" + CustomizeElement="Grid_CustomizeElement" + CustomizeEditModel="Grid_CustomizeEditModel" + EditMode="GridEditMode.EditForm" + ColumnResizeMode="GridColumnResizeMode.NextColumn" + AllowSelectRowByClick="false" + PageSize="13" + ShowFilterRow="true"> @@ -119,7 +139,7 @@ - + @@ -202,7 +222,7 @@ - +
@@ -224,8 +244,7 @@
-
- +
@@ -243,6 +262,12 @@ private bool _popupVisible; private TransferGrid _gridTransfer; + private List? transfers = []; + IEnumerable<(Transfer, int)> Items = []; + + AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone; + AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick; + public List IgnoreList = [ "ReceiverEmailAddress", @@ -277,10 +302,17 @@ DateTime StartDate { get; set; } = DateTime.Today; DxSchedulerDataStorage _dataStorage = new(); - protected override Task OnParametersSetAsync() + private void RefreshComponent() + { + StateHasChanged(); + } + + protected override async Task OnParametersSetAsync() { driverId = DriverId; - return base.OnParametersSetAsync(); + // transfers = await AdminSignalRClient.GetByIdAsync>(SignalRTags.GetTransfersByUserProductMappingId, DriverId); + + } void SendMail(Transfer item) @@ -381,6 +413,31 @@ } } + string GetCustomColor(TransferStatusType transferStatusType) + { + + var transferStatusByte = (byte)transferStatusType; + + switch (transferStatusByte) + { + case 5: + return "bg-important"; + + case > 5 and < 35: + return "bg-attention"; + + case 35: + return "bg-finished"; + + case > 35: + return "bg-cancel"; + + default: + return ""; + } + + } + void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { if (!e.IsNew) return; @@ -457,11 +514,17 @@ _logger.Info($"DataItemDeleting OnItemDeleting"); } - protected override Task OnInitializedAsync() + protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); - - return base.OnInitializedAsync(); + if (transfers != null) + { + var test = DriverId.ToString(); + transfers = await AdminSignalRClient.GetByIdAsync>(SignalRTags.GetTransfersByUserProductMappingId, DriverId); + Items = transfers.Select((item, index) => (item, index)); + } + + await base.OnInitializedAsync(); } private void InitializeAppointments(ICollection transferDataList) diff --git a/TIAMSharedUI/wwwroot/css/TourIAm.css b/TIAMSharedUI/wwwroot/css/TourIAm.css index f23f2b43..47df5915 100644 --- a/TIAMSharedUI/wwwroot/css/TourIAm.css +++ b/TIAMSharedUI/wwwroot/css/TourIAm.css @@ -483,6 +483,10 @@ select:focus-visible { -o-background-size: cover; background-size: cover; } + .container-fluid { + padding-left: 0px; + padding-right: 0px; + } } /*forms end*/ diff --git a/TIAMSharedUI/wwwroot/images/defaultavatar.png b/TIAMSharedUI/wwwroot/images/defaultavatar.png new file mode 100644 index 00000000..048343de Binary files /dev/null and b/TIAMSharedUI/wwwroot/images/defaultavatar.png differ diff --git a/TIAMSharedUI/wwwroot/images/defaultavatar_60.png b/TIAMSharedUI/wwwroot/images/defaultavatar_60.png new file mode 100644 index 00000000..442a4109 Binary files /dev/null and b/TIAMSharedUI/wwwroot/images/defaultavatar_60.png differ