ExtraFilterDto Items kısmı çalıştırıldı
This commit is contained in:
parent
8c11fedfc9
commit
fef0623349
7 changed files with 23 additions and 19 deletions
|
|
@ -1,4 +1,6 @@
|
||||||
namespace Kurs.Platform.ListForms;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Kurs.Platform.ListForms;
|
||||||
|
|
||||||
public class ExtraFilterDto
|
public class ExtraFilterDto
|
||||||
{
|
{
|
||||||
|
|
@ -6,7 +8,7 @@ public class ExtraFilterDto
|
||||||
public string Caption { get; set; }
|
public string Caption { get; set; }
|
||||||
public string Operator { get; set; }
|
public string Operator { get; set; }
|
||||||
public string DefaultValue { get; set; }
|
public string DefaultValue { get; set; }
|
||||||
public ExtraFilterItemsDto[] Items { get; set; }
|
public List<ExtraFilterItemsDto> Items { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ExtraFilterItemsDto
|
public class ExtraFilterItemsDto
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ public class ListFormAutoMapperProfile : Profile
|
||||||
CreateMap<SubFormRelationDto, SubFormRelation>().ReverseMap();
|
CreateMap<SubFormRelationDto, SubFormRelation>().ReverseMap();
|
||||||
CreateMap<WidgetEditDto, Widget>().ReverseMap();
|
CreateMap<WidgetEditDto, Widget>().ReverseMap();
|
||||||
CreateMap<ExtraFilterDto, ExtraFilter>().ReverseMap();
|
CreateMap<ExtraFilterDto, ExtraFilter>().ReverseMap();
|
||||||
CreateMap<ExtraFilterItemsDto, ExtraFilterItems>().ReverseMap();
|
CreateMap<ExtraFilterEditDto, ExtraFilterDto>()
|
||||||
CreateMap<ExtraFilterEditDto, ExtraFilterDto>().ReverseMap();
|
.ForMember(dest => dest.Items, opt => opt.MapFrom(src => src.Items));
|
||||||
CreateMap<ExtraFilterEditDto, ExtraFilter>().ReverseMap();
|
CreateMap<ExtraFilterEditDto, ExtraFilter>().ReverseMap();
|
||||||
|
|
||||||
CreateMap<ListFormImport, ListFormsImportDto>();
|
CreateMap<ListFormImport, ListFormsImportDto>();
|
||||||
|
|
|
||||||
|
|
@ -308,18 +308,19 @@ public class ListFormSelectAppService : PlatformAppService, IListFormSelectAppSe
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(extraFilter.SqlQuery))
|
if (!string.IsNullOrWhiteSpace(extraFilter.SqlQuery))
|
||||||
{
|
{
|
||||||
var (dynamicDataRepository, connectionString, dataSourceType) = await dynamicDataManager.GetAsync(listForm.IsTenant, listForm.DataSourceCode);
|
var (dynamicDataRepository, connectionString, dataSourceType) =
|
||||||
|
await dynamicDataManager.GetAsync(listForm.IsTenant, listForm.DataSourceCode);
|
||||||
|
|
||||||
var items = await dynamicDataRepository.QueryAsync(extraFilter.SqlQuery, connectionString);
|
var items = await dynamicDataRepository.QueryAsync(extraFilter.SqlQuery, connectionString);
|
||||||
if (items != null)
|
if (items != null)
|
||||||
{
|
{
|
||||||
var filter = result.GridOptions.ExtraFilterDto.FirstOrDefault(a => a.FieldName == extraFilter.FieldName);
|
var filters = result.GridOptions.ExtraFilterDto.ToList();
|
||||||
|
var filter = filters.FirstOrDefault(a => a.FieldName == extraFilter.FieldName);
|
||||||
|
|
||||||
if (filter != null)
|
if (filter != null)
|
||||||
{
|
{
|
||||||
var newItems = new List<ExtraFilterItemsDto>();
|
var newItems = new List<ExtraFilterItemsDto>();
|
||||||
|
|
||||||
// Yeni gelenleri ekle
|
|
||||||
foreach (var item in items)
|
foreach (var item in items)
|
||||||
{
|
{
|
||||||
if (item is IDictionary<string, object> dynamicItem)
|
if (item is IDictionary<string, object> dynamicItem)
|
||||||
|
|
@ -332,9 +333,11 @@ public class ListFormSelectAppService : PlatformAppService, IListFormSelectAppSe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Listeyi tekrar array olarak ata
|
filter.Items = newItems;
|
||||||
filter.Items = newItems.ToArray(); // burada direkt filter kullan
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 🔑 yeniden atıyoruz ki setter çalışsın
|
||||||
|
result.GridOptions.ExtraFilterDto = filters.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12262,6 +12262,12 @@
|
||||||
"en": "Extra Filters",
|
"en": "Extra Filters",
|
||||||
"tr": "Ekstra Filtreler"
|
"tr": "Ekstra Filtreler"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.ExtraFiltersDescription",
|
||||||
|
"en": "You can create extra filter fields on the Grid.",
|
||||||
|
"tr": "Grid üzerinde ek filtre alanları oluşturabilirsiniz."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
"key": "ListForms.ListFormEdit.ExtraFieldName",
|
"key": "ListForms.ListFormEdit.ExtraFieldName",
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ public class ExtraFilter : ValueObject
|
||||||
public string Operator { get; set; }
|
public string Operator { get; set; }
|
||||||
public string DefaultValue { get; set; }
|
public string DefaultValue { get; set; }
|
||||||
public string SqlQuery { get; set; }
|
public string SqlQuery { get; set; }
|
||||||
public ExtraFilterItems[] Items { get; set; }
|
|
||||||
|
|
||||||
protected override IEnumerable<object> GetAtomicValues()
|
protected override IEnumerable<object> GetAtomicValues()
|
||||||
{
|
{
|
||||||
|
|
@ -19,12 +18,5 @@ public class ExtraFilter : ValueObject
|
||||||
yield return Operator;
|
yield return Operator;
|
||||||
yield return DefaultValue;
|
yield return DefaultValue;
|
||||||
yield return SqlQuery;
|
yield return SqlQuery;
|
||||||
yield return Items;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ExtraFilterItems
|
|
||||||
{
|
|
||||||
public string Value { get; set; }
|
|
||||||
public string Text { get; set; }
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ const schema = object().shape({
|
||||||
fieldName: string().required('Field Name Required'),
|
fieldName: string().required('Field Name Required'),
|
||||||
caption: string().required('Caption Required'),
|
caption: string().required('Caption Required'),
|
||||||
operator: string().required('Operator Required'),
|
operator: string().required('Operator Required'),
|
||||||
defaultValue: string().required('Value Required'),
|
defaultValue: string(),
|
||||||
sqlQuery: string().required('SQL Query Required'),
|
sqlQuery: string().required('SQL Query Required'),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -154,6 +154,7 @@ function JsonRowOpDialogExtraFilter({
|
||||||
onSubmit={async (values, { setSubmitting }) => {
|
onSubmit={async (values, { setSubmitting }) => {
|
||||||
setSubmitting(true)
|
setSubmitting(true)
|
||||||
try {
|
try {
|
||||||
|
delete values.items
|
||||||
const input: ListFormJsonRowDto = {
|
const input: ListFormJsonRowDto = {
|
||||||
index: data.index,
|
index: data.index,
|
||||||
fieldName: data.tabName,
|
fieldName: data.tabName,
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ export function GridExtraFilterToolbar({
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<option value="">Seçiniz</option>
|
{!fs.defaultValue && <option value="">Seçiniz</option>}
|
||||||
{fs.items.map((item: any) => (
|
{fs.items.map((item: any) => (
|
||||||
<option key={item.key} value={item.key}>
|
<option key={item.key} value={item.key}>
|
||||||
{item.value}
|
{item.value}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue