improvements, fixes

This commit is contained in:
jozsef.b@aycode.com 2024-06-04 15:32:58 +02:00
parent 89376ac2d4
commit 1a15ab4128
11 changed files with 87 additions and 45 deletions

View File

@ -68,7 +68,8 @@
PageSize="12"
KeyFieldName="Id"
ValidationEnabled="false"
ValidationEnabled="false"
DetailRowDisplayMode="GridDetailRowDisplayMode.Always"
CustomizeEditModel="Grid_CustomizeEditModel"
EditMode="GridEditMode.EditRow"
KeyboardNavigationEnabled="true">
@ -83,6 +84,11 @@
<DxGridDataColumn FieldName="OwnerId" MinWidth="80" />
</Columns>
<DetailRowTemplate>
@{
<text>@(((Company)context.DataItem).Profile.Address.AddressText)</text>
}
</DetailRowTemplate>
</CompanyGrid>

View File

@ -13,6 +13,7 @@
@using TIAMSharedUI.Pages.Components.EditComponents
@using TIAMWebApp.Shared.Application.Services
@using AyCode.Interfaces.Addresses
@using AyCode.Core
@inject IServiceProviderDataService serviceProviderDataService
@inject IUserDataService userDataService
@inject ITransferDataService transferDataService
@ -37,15 +38,14 @@
ColumnResizeMode="GridColumnResizeMode.NextColumn"
ShowFilterRow="false">
<Columns>
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridCommandColumn NewButtonVisible="false" DeleteButtonVisible="false" Width="70" MinWidth="70" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
<DxGridDataColumn FieldName="AddressText" />
<DxGridDataColumn FieldName="IsValid" Width="40" />
<DxGridDataColumn FieldName="IsHelper" Width="40"/>
<DxGridDataColumn FieldName="IsValid" Width="40" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="IsHelper" Width="40" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="Latitude" Width="40"/>
<DxGridDataColumn FieldName="Longitude" Width="40"/>
<DxGridDataColumn FieldName="Created" Width="40"/>
<DxGridDataColumn FieldName="Modified" Width="40"/>
<DxGridDataColumn FieldName="Modified" DisplayFormat="g" Width="140" />
</Columns>
<EditFormTemplate>
@{

View File

@ -11,6 +11,7 @@
@using TIAM.Entities.Addresses
@using TIAMSharedUI.Shared.Components.Grids
@using TIAMSharedUI.Pages.Components.EditComponents
@using AyCode.Core
@inject IServiceProviderDataService serviceProviderDataService
@inject IUserDataService userDataService
@inject ITransferDataService transferDataService
@ -30,11 +31,11 @@
ColumnResizeMode="GridColumnResizeMode.NextColumn"
ShowFilterRow="true">
<Columns>
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridCommandColumn NewButtonVisible="false" DeleteButtonVisible="false" Width="70" MinWidth="70" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="AddressText" />
<DxGridDataColumn FieldName="IsValid" Width="40" />
<DxGridDataColumn FieldName="IsHelper" Width="40"/>
<DxGridDataColumn FieldName="IsValid" Width="40" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="IsHelper" Width="40" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="Latitude" Width="40"/>
<DxGridDataColumn FieldName="Longitude" Width="40"/>
<DxGridDataColumn FieldName="Created" Width="40"/>

View File

@ -12,6 +12,7 @@
@using AyCode.Core.Extensions;
@using TIAM.Entities.Addresses
@using TIAMSharedUI.Shared.Components.Grids
@using AyCode.Core
@layout AdminLayout
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject IStringLocalizer<TIAMResources> localizer
@ -92,29 +93,29 @@
KeyFieldName="Id">
<Columns>
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="false" SortIndex="0" Visible="false" />
<DxGridCommandColumn Width="135" MinWidth="135" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" SortIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
<DxGridDataColumn FieldName="Name" />
<DxGridDataColumn FieldName="OwnerId">
<DxGridDataColumn FieldName="OwnerId" DisplayFormat="N">
<CellDisplayTemplate>
@{
var keyField = context.Value as Guid?;
var keyItem = (Company)context.DataItem;
if (keyField.IsNullOrEmpty())
{
<DxButton Click="() => SetOwnerPopup(keyItem)" Text="Set owner" RenderStyle="ButtonRenderStyle.Primary" />
<DxButton Click="() => SetOwnerPopup((Company)context.DataItem)" Text="Set owner" RenderStyle="ButtonRenderStyle.Primary" />
}
else
{
<span>@keyField</span>
<text>@keyField.Value.ToString("N")</text>
}
}
</CellDisplayTemplate>
</DxGridDataColumn>
<DxGridDataColumn FieldName="AffiliateId" />
<DxGridDataColumn FieldName="AffiliateId" DisplayFormat="N" />
<DxGridDataColumn FieldName="CommissionPercent" />
<DxGridDataColumn FieldName="Created" />
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="140" />
<DxGridDataColumn FieldName="Modified" DisplayFormat="g" Width="140" />
@* <DxGridDataColumn FieldName="ContactEmail">
</DxGridDataColumn> *@

View File

@ -104,22 +104,22 @@
KeyFieldName="Id">
<Columns>
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" SortIndex="0" />
<DxGridCommandColumn NewButtonVisible="false" DeleteButtonVisible="AcDomain.IsDeveloperVersion" Width="70" MinWidth="70" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" SortIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
<DxGridDataColumn FieldName="OrderId">
<CellDisplayTemplate>
@{
var idKeyField = ((Transfer)context.DataItem).Id as Guid?;
var editUri = $"mytransfers/{idKeyField}";
var idKeyField = ((Transfer)context.DataItem).Id;
var editUri = $"mytransfers/{idKeyField:N}";
<NavLink href="@editUri">
<span>@context.Value</span>
<text>@context.Value</text>
</NavLink> }
</CellDisplayTemplate>
</DxGridDataColumn>
<DxGridDataColumn FieldName="PaymentId" />
<DxGridDataColumn FieldName="PaymentId" DisplayFormat="N" />
<DxGridDataColumn FieldName="FromAddress" />
<DxGridDataColumn FieldName="ToAddress" />
<DxGridDataColumn FieldName="Appointment" DisplayFormat="f" />
<DxGridDataColumn FieldName="Appointment" DisplayFormat="g" Width="140" />
<DxGridDataColumn FieldName="FullName" />
<DxGridDataColumn FieldName="ContactPhone" />
<DxGridDataColumn FieldName="ContactEmail">
@ -139,7 +139,7 @@
TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == Convert.ToInt16(context.Value));
string transferStatusText = keyField.StatusName;
<p>@transferStatusText</p>
<text>@transferStatusText</text>
}
</CellDisplayTemplate>
</DxGridDataColumn>
@ -156,16 +156,15 @@
<MessageDetailGrid
Logger="_logger"
SignalRClient="AdminSignalRClient"
ContextId="((Transfer)context.DataItem).Id"
TextWrapEnabled="true">
ContextId="((Transfer)context.DataItem).Id">
<Columns>
<DxGridDataColumn FieldName="Id" />
<DxGridDataColumn FieldName="ContextId" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
<DxGridDataColumn FieldName="ContextId" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
<DxGridDataColumn FieldName="EmailAddress" />
<DxGridDataColumn FieldName="Subject" />
<DxGridDataColumn FieldName="Text" />
<DxGridDataColumn FieldName="Created" />
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="140" />
</Columns>
</MessageDetailGrid>
</DxTabPage>

View File

@ -5,6 +5,7 @@
@using TIAMWebApp.Shared.Application.Utility
@using AyCode.Services.Loggers
@using TIAM.Core.Loggers
@using AyCode.Core
@inject IServiceProviderDataService serviceProviderDataService
@inject IUserDataService userDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@ -26,7 +27,7 @@
ShowFilterRow="true">
<Columns>
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="UserId" />
<DxGridDataColumn FieldName="ProductId" Width="40%" />
<DxGridDataColumn FieldName="Permissions" />

View File

@ -8,6 +8,7 @@
@using TIAMWebApp.Shared.Application.Utility
@using AyCode.Services.Loggers
@using TIAM.Core.Loggers
@using AyCode.Core
@inject IServiceProviderDataService ServiceProviderDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@ -27,8 +28,8 @@
ColumnResizeMode="GridColumnResizeMode.NextColumn"
ShowFilterRow="true">
<Columns>
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridCommandColumn Width="135" MinWidth="135" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="UserId" />
<DxGridDataColumn FieldName="ProductId" Width="40%" />
<DxGridDataColumn FieldName="Permissions" />

View File

@ -10,6 +10,7 @@
@using TIAMWebApp.Shared.Application.Services
@using AyCode.Core.Enums
@using AyCode.Core.Extensions
@using AyCode.Core
@inject IUserDataService UserDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject AdminSignalRClient AdminSignalRClient;
@ -34,7 +35,7 @@
ShowFilterRow="false">
<Columns>
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="CarId" Width="40%" />
<DxGridDataColumn FieldName="LicencePlate" />
</Columns>

View File

@ -8,6 +8,7 @@
@using TIAM.Core.Loggers
@using AyCode.Core.Loggers
@using AyCode.Services.Loggers
@using AyCode.Core
@inject IServiceProviderDataService ServiceProviderDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@ -26,7 +27,7 @@
ShowFilterRow="true">
<Columns>
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="UserId" />
<DxGridDataColumn FieldName="ProductId" Width="40%" />
<DxGridDataColumn FieldName="Permissions" />

View File

@ -4,10 +4,12 @@ using AyCode.Core.Enums;
using AyCode.Core.Extensions;
using AyCode.Core.Helpers;
using AyCode.Core.Interfaces;
using AyCode.Interfaces.Entities;
using AyCode.Services.SignalRs;
using AyCode.Utils.Extensions;
using DevExpress.Blazor;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
using TIAMWebApp.Shared.Application.Services;
using TIAMWebApp.Shared.Application.Utility;
@ -16,7 +18,8 @@ namespace TIAMSharedUI.Shared.Components.Grids
public class GridDataItemChangingEventArgs<TDataItem> : GridDataItemChangedEventArgs<TDataItem> where TDataItem : class, IId<Guid>
{
internal GridDataItemChangingEventArgs(TiamGrid<TDataItem> grid, TDataItem dataItem, DataChangeMode dataChangeMode) : base(grid, dataItem, dataChangeMode)
{ }
{
}
public bool IsCanceled { get; set; }
}
@ -42,7 +45,8 @@ namespace TIAMSharedUI.Shared.Components.Grids
private string _gridLogName;
public TiamGrid() : base()
{ }
{
}
[Parameter] public LoggerClient Logger { get; set; }
[Parameter] public string GridName { get; set; }
@ -56,7 +60,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
[Parameter] public int RemoveMessageTag { get; set; }
protected new EventCallback<GridDataItemDeletingEventArgs> DataItemDeleting { get; set; }
[Parameter] public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleting{ get; set; }
[Parameter] public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleting { get; set; }
protected new EventCallback<GridEditModelSavingEventArgs> EditModelSaving { get; set; }
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnEditModelSaving { get; set; }
@ -111,6 +115,8 @@ namespace TIAMSharedUI.Shared.Components.Grids
if (firstRender)
{
if (_dataSource == null || _dataSource.Count == 0) RefreshDataSourceAsync().Forget();
//AutoFitColumnWidths();
}
}
@ -124,6 +130,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
public Task RemoveDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, DataChangeMode.Remove);
public Task RemoveDataItem(Guid id) => RemoveDataItem(id, RemoveMessageTag);
public Task RemoveDataItem(Guid id, int messageTag)
{
var dataItem = _dataSource.FirstOrDefault(x => x.Id == id);
@ -161,7 +168,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
Logger.Debug($"{_gridLogName} OnItemDeleting canceled");
return;
}
var dataItem = (e.DataItem as TDataItem)!;
await RemoveDataItem(dataItem);
}
@ -221,13 +228,28 @@ namespace TIAMSharedUI.Shared.Components.Grids
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
}
private void OnCustomizeElement(GridCustomizeElementEventArgs e)
{
if (e.ElementType == GridElementType.DetailCell)
{
e.Style = "padding: 0.5rem; opacity: 0.75";
}
else if (false && e.ElementType == GridElementType.DataCell && e.Column.Name == nameof(IId<Guid>.Id))
{
e.Column.Visible = AcDomain.IsDeveloperVersion;
e.Column.ShowInColumnChooser = AcDomain.IsDeveloperVersion;
}
}
protected override Task SetParametersAsyncCore(ParameterView parameters)
{
if (!IsFirstInitializeParameters)
{
base.DataItemDeleting = EventCallback.Factory.Create<GridDataItemDeletingEventArgs>(this, OnItemDeleting);
base.EditModelSaving = EventCallback.Factory.Create<GridEditModelSavingEventArgs>(this, OnItemSaving);
CustomizeElement += OnCustomizeElement;
//ShowFilterRow = true;
//PageSize = 4;
//ShowGroupPanel = true;
@ -235,7 +257,6 @@ namespace TIAMSharedUI.Shared.Components.Grids
TextWrapEnabled = false;
//var columns = GetColumns();
//var dataColumns = GetDataColumns();
//var idColumn = dataColumns.FirstOrDefault(x => x.FieldName == nameof(IId<Guid>.Id));
@ -251,6 +272,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
return base.SetParametersAsyncCore(parameters);
}
protected override void OnParametersSet()
{
base.OnParametersSet();

View File

@ -14,6 +14,10 @@ using System.Runtime.CompilerServices;
using MessagePack;
using TIAM.Entities.Addresses;
using TIAM.Entities.Profiles;
using Microsoft.AspNetCore.Hosting;
using System.Collections.Generic;
using TIAM.Entities.Emails;
using TIAM.Services.Server;
namespace TIAMWebApp.Server.Services;
@ -57,7 +61,11 @@ public class DynamicMethodCallModel<TAttribute> where TAttribute : TagAttribute
public object InstanceObject { get; init; }
public ConcurrentDictionary<int, MethodInfoModel<TAttribute>> MethodsByMessageTag { get; init; } = new();
public DynamicMethodCallModel(Type instanceObjectType) : this(Activator.CreateInstance(instanceObjectType)!)
public DynamicMethodCallModel(Type instanceObjectType) : this(instanceObjectType, null!)
{ }
public DynamicMethodCallModel(Type instanceObjectType, params object[] constructorParams) : this(Activator.CreateInstance(instanceObjectType, constructorParams)!)
{ }
public DynamicMethodCallModel(object instanceObject)
@ -75,7 +83,7 @@ public class DynamicMethodCallModel<TAttribute> where TAttribute : TagAttribute
public class DevAdminSignalRHub : Hub<ISignalRHubItemServer>, IAcSignalRHubServer
{
private readonly List<DynamicMethodCallModel<SignalRAttribute>> _dynamicMethodCallModels = new();
private readonly List<DynamicMethodCallModel<SignalRAttribute>> _dynamicMethodCallModels = [];
private readonly TIAM.Core.Loggers.Logger<DevAdminSignalRHub> _logger;
private readonly AdminDal _adminDal;
@ -93,6 +101,7 @@ public class DevAdminSignalRHub : Hub<ISignalRHubItemServer>, IAcSignalRHubServe
_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(serviceProviderApiController));
_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(transferDataApiController));
_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(messageApiController));
//_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(typeof(AdminDal)));
}