TiamGrid improvements
This commit is contained in:
parent
67520f8b62
commit
40d8937654
|
|
@ -11,6 +11,7 @@
|
||||||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||||
@using TIAMWebApp.Shared.Application.Utility
|
@using TIAMWebApp.Shared.Application.Utility
|
||||||
@using AyCode.Services.Loggers
|
@using AyCode.Services.Loggers
|
||||||
|
@using TIAM.Services
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
@using TIAMSharedUI.Shared.Components
|
@using TIAMSharedUI.Shared.Components
|
||||||
@using TIAMSharedUI.Shared.Components.Grids
|
@using TIAMSharedUI.Shared.Components.Grids
|
||||||
|
|
@ -71,11 +72,22 @@
|
||||||
IconCssClass="btn-column-chooser"
|
IconCssClass="btn-column-chooser"
|
||||||
Click="ColumnChooserButton_Click" />
|
Click="ColumnChooserButton_Click" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@* <TiamGrid TDataItem="Transfer"
|
||||||
|
Logger="_logger"
|
||||||
|
SignalRClient="AdminSignalRClient"
|
||||||
|
|
||||||
|
GetAllMessageTag="SignalRTags.GetTransfersAsync"
|
||||||
|
AddMessageTag="SignalRTags.AddTransferAsync"
|
||||||
|
UpdateMessageTag="SignalRTags.UpdateTransferAsync"
|
||||||
|
RemoveMessageTag="SignalRTags.RemoveTransferAsync">
|
||||||
|
</TiamGrid>
|
||||||
|
*@
|
||||||
<TransferGrid @ref="_gridTransfer"
|
<TransferGrid @ref="_gridTransfer"
|
||||||
Logger="_logger"
|
Logger="_logger"
|
||||||
SignalRClient="AdminSignalRClient"
|
SignalRClient="AdminSignalRClient"
|
||||||
OnDataSourceChanged="DataSourceChanged"
|
OnDataSourceChanged="DataSourceChanged"
|
||||||
|
OnDataSourceItemChanging="DataSourceItemChanging"
|
||||||
OnDataSourceItemChanged="DataSourceItemChanged"
|
OnDataSourceItemChanged="DataSourceItemChanged"
|
||||||
OnDataItemDeleting="DataItemDeleting"
|
OnDataItemDeleting="DataItemDeleting"
|
||||||
OnDataItemSaving="DataItemSaving"
|
OnDataItemSaving="DataItemSaving"
|
||||||
|
|
@ -348,6 +360,23 @@
|
||||||
transferEditModel.ContactEmail = "your@email.address";
|
transferEditModel.ContactEmail = "your@email.address";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DataSourceChanged(IList<Transfer> transfers)
|
||||||
|
{
|
||||||
|
_logger.Info("DataSourceChanged called");
|
||||||
|
|
||||||
|
InitializeAppointments(transfers);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DataSourceItemChanging(Transfer transfer)
|
||||||
|
{
|
||||||
|
_logger.Info("DataSourceItemChanging called");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DataSourceItemChanged(Transfer transfer)
|
||||||
|
{
|
||||||
|
_logger.Info("DataSourceItemChanged called");
|
||||||
|
}
|
||||||
|
|
||||||
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
||||||
{
|
{
|
||||||
_logger.Info("DataItemSaving called");
|
_logger.Info("DataItemSaving called");
|
||||||
|
|
@ -358,18 +387,6 @@
|
||||||
_logger.Info($"DataItemDeleting OnItemDeleting");
|
_logger.Info($"DataItemDeleting OnItemDeleting");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataSourceChanged(IList<Transfer> transfers)
|
|
||||||
{
|
|
||||||
_logger.Info("DataSourceChanged called");
|
|
||||||
|
|
||||||
InitializeAppointments(transfers);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DataSourceItemChanged(Transfer transfer)
|
|
||||||
{
|
|
||||||
_logger.Info("DataSourceItemChanged called");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RefreshAppointments(Transfer transfer, bool isDelete)
|
private void RefreshAppointments(Transfer transfer, bool isDelete)
|
||||||
{
|
{
|
||||||
var appointmentIndex = AppointmentModels.FindIndex(x => x.SourceId == transfer.Id);
|
var appointmentIndex = AppointmentModels.FindIndex(x => x.SourceId == transfer.Id);
|
||||||
|
|
@ -456,5 +473,4 @@
|
||||||
_gridTransfer.ExpandDetailRow(0);
|
_gridTransfer.ExpandDetailRow(0);
|
||||||
_gridTransfer.EndUpdate();
|
_gridTransfer.EndUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
|
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||||
|
|
||||||
|
public class CompanyDetailGrid : CompanyGrid
|
||||||
|
{
|
||||||
|
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
|
{
|
||||||
|
var isFirst = IsFirstInitializeParameters;
|
||||||
|
|
||||||
|
return base.SetParametersAsyncCore(parameters);
|
||||||
|
|
||||||
|
if (isFirst)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ public class CompanyGrid : TiamGrid<Company>
|
||||||
|
|
||||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
{
|
{
|
||||||
if (!IsInitializedParameters)
|
if (!IsFirstInitializeParameters)
|
||||||
{
|
{
|
||||||
//ShowFilterRow = true;
|
//ShowFilterRow = true;
|
||||||
//ShowGroupPanel = true;
|
//ShowGroupPanel = true;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
{
|
{
|
||||||
public class TiamGrid<TDataItem> : DxGrid where TDataItem : class, IEntityGuid
|
public class TiamGrid<TDataItem> : DxGrid where TDataItem : class, IEntityGuid
|
||||||
{
|
{
|
||||||
protected bool IsInitializedParameters;
|
protected bool IsFirstInitializeParameters;
|
||||||
private IList<TDataItem>? _dataSource;
|
private IList<TDataItem>? _dataSource;
|
||||||
private string _gridLogName;
|
private string _gridLogName;
|
||||||
|
|
||||||
|
|
@ -80,10 +80,9 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnDataItemSaving { get; set; }
|
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnDataItemSaving { get; set; }
|
||||||
|
|
||||||
|
|
||||||
[Parameter]
|
[Parameter] public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
||||||
public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
[Parameter] public EventCallback<TDataItem> OnDataSourceItemChanging { get; set; }
|
||||||
[Parameter]
|
[Parameter] public EventCallback<TDataItem> OnDataSourceItemChanged { get; set; }
|
||||||
public EventCallback<TDataItem> OnDataSourceItemChanged { get; set; }
|
|
||||||
|
|
||||||
private async Task OnItemSaving(GridEditModelSavingEventArgs e)
|
private async Task OnItemSaving(GridEditModelSavingEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
@ -122,10 +121,12 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
PostDataToServerAsync(dataItem, RemoveMessageTag, true).Forget();
|
PostDataToServerAsync(dataItem, RemoveMessageTag, true).Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task RefreshDataSourceAsync()
|
public virtual Task RefreshDataSourceAsync()
|
||||||
{
|
{
|
||||||
Logger.Info($"{_gridLogName} UpdateAllDataAsync called");
|
Logger.Info($"{_gridLogName} UpdateAllDataAsync called");
|
||||||
|
|
||||||
|
//if (GetAllMessageTag == 0) return Task.CompletedTask;
|
||||||
|
|
||||||
return SignalRClient.GetAllAsync<IList<TDataItem>>(GetAllMessageTag, response =>
|
return SignalRClient.GetAllAsync<IList<TDataItem>>(GetAllMessageTag, response =>
|
||||||
{
|
{
|
||||||
if (response.Status == SignalResponseStatus.Error)
|
if (response.Status == SignalResponseStatus.Error)
|
||||||
|
|
@ -139,13 +140,16 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task PostDataToServerAsync(TDataItem transfer, int messageTag, bool isDelete = false)
|
public virtual async Task PostDataToServerAsync(TDataItem dataItem, int messageTag, bool isDelete = false)
|
||||||
{
|
{
|
||||||
Logger.Info($"{_gridLogName} PostDataToServerAsync called; transferId " + transfer.Id);
|
Logger.Info($"{_gridLogName} PostDataToServerAsync called; transferId " + dataItem.Id);
|
||||||
|
|
||||||
RefreshDataSourceItem(transfer, isDelete, false); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
//if (messageTag == 0) return;
|
||||||
|
|
||||||
return SignalRClient.PostDataAsync(messageTag, transfer, repsonse =>
|
await OnDataSourceItemChanging.InvokeAsync(dataItem);
|
||||||
|
RefreshDataSourceItem(dataItem, isDelete, false); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
||||||
|
|
||||||
|
SignalRClient.PostDataAsync(messageTag, dataItem, async repsonse =>
|
||||||
{
|
{
|
||||||
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||||
{
|
{
|
||||||
|
|
@ -154,13 +158,15 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
}
|
}
|
||||||
|
|
||||||
RefreshDataSourceItem(repsonse.ResponseData, isDelete);
|
RefreshDataSourceItem(repsonse.ResponseData, isDelete);
|
||||||
InvokeAsync(StateHasChanged).Forget();
|
|
||||||
});
|
await OnDataSourceItemChanged.InvokeAsync(dataItem);
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
|
}).Forget();
|
||||||
|
|
||||||
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task RefreshDataSourceItem(TDataItem dataItem, bool isDelete, bool invokeItemChanged = true)
|
public void RefreshDataSourceItem(TDataItem dataItem, bool isDelete, bool invokeItemChanged = true)
|
||||||
{
|
{
|
||||||
var transferIndex = _dataSource.FindIndex(x => x.Id == dataItem.Id);
|
var transferIndex = _dataSource.FindIndex(x => x.Id == dataItem.Id);
|
||||||
|
|
||||||
|
|
@ -170,13 +176,11 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
if (transferIndex > -1) _dataSource[transferIndex] = dataItem;
|
if (transferIndex > -1) _dataSource[transferIndex] = dataItem;
|
||||||
else _dataSource.Add(dataItem);
|
else _dataSource.Add(dataItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
return invokeItemChanged ? OnDataSourceItemChanged.InvokeAsync(dataItem) : Task.CompletedTask;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
{
|
{
|
||||||
if (!IsInitializedParameters)
|
if (!IsFirstInitializeParameters)
|
||||||
{
|
{
|
||||||
base.DataItemDeleting = EventCallback.Factory.Create<GridDataItemDeletingEventArgs>(this, OnItemDeleting);
|
base.DataItemDeleting = EventCallback.Factory.Create<GridDataItemDeletingEventArgs>(this, OnItemDeleting);
|
||||||
base.EditModelSaving = EventCallback.Factory.Create<GridEditModelSavingEventArgs>(this, OnItemSaving);
|
base.EditModelSaving = EventCallback.Factory.Create<GridEditModelSavingEventArgs>(this, OnItemSaving);
|
||||||
|
|
@ -186,7 +190,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
//ShowGroupPanel = true;
|
//ShowGroupPanel = true;
|
||||||
//AllowSort = false;
|
//AllowSort = false;
|
||||||
|
|
||||||
IsInitializedParameters = true;
|
IsFirstInitializeParameters = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.SetParametersAsyncCore(parameters);
|
return base.SetParametersAsyncCore(parameters);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
|
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||||
|
|
||||||
|
public class TransferDetailGrid : TransferGrid
|
||||||
|
{
|
||||||
|
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
|
{
|
||||||
|
var isFirst = IsFirstInitializeParameters;
|
||||||
|
|
||||||
|
return base.SetParametersAsyncCore(parameters);
|
||||||
|
|
||||||
|
if (isFirst)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ public class TransferGrid : TiamGrid<Transfer>
|
||||||
|
|
||||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
{
|
{
|
||||||
if (!IsInitializedParameters)
|
if (!IsFirstInitializeParameters)
|
||||||
{
|
{
|
||||||
//ShowFilterRow = true;
|
//ShowFilterRow = true;
|
||||||
//ShowGroupPanel = true;
|
//ShowGroupPanel = true;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue