Filter, Sorting ve Row tanımlamaları yapıldı.
This commit is contained in:
parent
3d66c26873
commit
cc63d222d1
20 changed files with 379 additions and 126 deletions
|
|
@ -11,7 +11,7 @@ public class GridColumnOptionDto
|
||||||
/// <summary> kullanicinin kolonlarin yerini degistirebilmesi
|
/// <summary> kullanicinin kolonlarin yerini degistirebilmesi
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool AllowColumnReordering { get; set; } = false;
|
public bool AllowColumnReordering { get; set; } = false;
|
||||||
public bool AllowColumnResizing { get; set; }
|
public bool AllowColumnResizing { get; set; } = true;
|
||||||
/// <summary> alabilecegi degerler: 'nextColumn', 'widget'
|
/// <summary> alabilecegi degerler: 'nextColumn', 'widget'
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ColumnResizingMode { get; set; } = "nextColumn";
|
public string ColumnResizingMode { get; set; } = "nextColumn";
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,20 @@ public class GridOptionsDto : AuditedEntityDto<Guid>
|
||||||
set { FilterRowJson = JsonSerializer.Serialize(value); }
|
set { FilterRowJson = JsonSerializer.Serialize(value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public string RowJson { get; set; } // Filtreleme yapilabilir mi?
|
||||||
|
public GridRowDto RowDto
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(RowJson))
|
||||||
|
return JsonSerializer.Deserialize<GridRowDto>(RowJson);
|
||||||
|
|
||||||
|
return new GridRowDto();
|
||||||
|
}
|
||||||
|
set { RowJson = JsonSerializer.Serialize(value); }
|
||||||
|
}
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public string HeaderFilterJson { get; set; } // header ile Filtreleme yapilabilir mi?
|
public string HeaderFilterJson { get; set; } // header ile Filtreleme yapilabilir mi?
|
||||||
public GridHeaderFilterDto HeaderFilterDto
|
public GridHeaderFilterDto HeaderFilterDto
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Kurs.Platform.ListForms;
|
||||||
|
|
||||||
|
public class GridRowDto
|
||||||
|
{
|
||||||
|
public string RowHeight { get; set; } = "auto";
|
||||||
|
public string WhiteSpace { get; set; } = "normal";
|
||||||
|
public string OverflowWrap { get; set; } = "break-word";
|
||||||
|
}
|
||||||
|
|
@ -38,7 +38,9 @@ public class ListFormEditTabs
|
||||||
public const string EditForm = "edit.form";
|
public const string EditForm = "edit.form";
|
||||||
public const string EditingFormFieldsJsonRow = "edit.formFields";
|
public const string EditingFormFieldsJsonRow = "edit.formFields";
|
||||||
}
|
}
|
||||||
|
public const string SortingForm = "sorting";
|
||||||
public const string FilterForm = "filter";
|
public const string FilterForm = "filter";
|
||||||
|
public const string RowForm = "row";
|
||||||
public const string SearchForm = "search";
|
public const string SearchForm = "search";
|
||||||
public const string GroupForm = "group";
|
public const string GroupForm = "group";
|
||||||
public const string SelectForm = "select";
|
public const string SelectForm = "select";
|
||||||
|
|
|
||||||
|
|
@ -111,13 +111,20 @@ public class ListFormsAppService : CrudAppService<
|
||||||
{
|
{
|
||||||
item.EditingOptionJson = JsonSerializer.Serialize(input.EditingOptionDto);
|
item.EditingOptionJson = JsonSerializer.Serialize(input.EditingOptionDto);
|
||||||
}
|
}
|
||||||
else if (input.EditType == ListFormEditTabs.FilterForm)
|
else if (input.EditType == ListFormEditTabs.SortingForm)
|
||||||
{
|
{
|
||||||
item.SortMode = input.SortMode;
|
item.SortMode = input.SortMode;
|
||||||
|
}
|
||||||
|
else if (input.EditType == ListFormEditTabs.FilterForm)
|
||||||
|
{
|
||||||
item.FilterRowJson = JsonSerializer.Serialize(input.FilterRowDto);
|
item.FilterRowJson = JsonSerializer.Serialize(input.FilterRowDto);
|
||||||
item.HeaderFilterJson = JsonSerializer.Serialize(input.HeaderFilterDto);
|
item.HeaderFilterJson = JsonSerializer.Serialize(input.HeaderFilterDto);
|
||||||
item.FilterPanelJson = JsonSerializer.Serialize(input.FilterPanelDto);
|
item.FilterPanelJson = JsonSerializer.Serialize(input.FilterPanelDto);
|
||||||
}
|
}
|
||||||
|
else if (input.EditType == ListFormEditTabs.RowForm)
|
||||||
|
{
|
||||||
|
item.RowJson = JsonSerializer.Serialize(input.RowDto);
|
||||||
|
}
|
||||||
else if (input.EditType == ListFormEditTabs.SearchForm)
|
else if (input.EditType == ListFormEditTabs.SearchForm)
|
||||||
{
|
{
|
||||||
item.SearchPanelJson = JsonSerializer.Serialize(input.SearchPanelDto);
|
item.SearchPanelJson = JsonSerializer.Serialize(input.SearchPanelDto);
|
||||||
|
|
|
||||||
|
|
@ -4945,9 +4945,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
"key": "ListForms.ListFormEdit.TabFilteringSorting",
|
"key": "ListForms.ListFormEdit.TabSorting",
|
||||||
"en": "Filtering & Sorting",
|
"en": "Sorting",
|
||||||
"tr": "Filtreleme & Sıralama"
|
"tr": "Sıralama"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.TabFiltering",
|
||||||
|
"en": "Filtering",
|
||||||
|
"tr": "Filtreleme"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.TabRow",
|
||||||
|
"en": "Row",
|
||||||
|
"tr": "Satır"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
|
|
@ -6017,6 +6029,30 @@
|
||||||
"en": "Filter Panel",
|
"en": "Filter Panel",
|
||||||
"tr": "Filter Panel"
|
"tr": "Filter Panel"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.FilteringSortingRowProps",
|
||||||
|
"en": "Row",
|
||||||
|
"tr": "Satır"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.FilteringSortingRowHeight",
|
||||||
|
"en": "Row Height",
|
||||||
|
"tr": "Satır Yüksekliği"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.FilteringSortingRowWhiteSpace",
|
||||||
|
"en": "White Space",
|
||||||
|
"tr": "Beyaz Alan"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "ListForms.ListFormEdit.FilteringSortingRowOverflowWrap",
|
||||||
|
"en": "Overflow Wrap",
|
||||||
|
"tr": "Taşma Sarma"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
"key": "ListForms.ListFormEdit.FilteringSortingFilterPanelFilterEnabled",
|
"key": "ListForms.ListFormEdit.FilteringSortingFilterPanelFilterEnabled",
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ public class ListForm : FullAuditedEntity<Guid>
|
||||||
public string ColumnOptionJson { get; set; }
|
public string ColumnOptionJson { get; set; }
|
||||||
public string PivotOptionJson { get; set; }
|
public string PivotOptionJson { get; set; }
|
||||||
public string FilterRowJson { get; set; } // Filtre ayarlari, Json olarak tutulur, donus sinifi FilterRowDto
|
public string FilterRowJson { get; set; } // Filtre ayarlari, Json olarak tutulur, donus sinifi FilterRowDto
|
||||||
|
public string RowJson { get; set; } // Row ayarları, Json olarak tutulur, donus sinifi FilterRowDto
|
||||||
public string HeaderFilterJson { get; set; } // Header filtreleme ayarlari, Json olarak tutulur
|
public string HeaderFilterJson { get; set; } // Header filtreleme ayarlari, Json olarak tutulur
|
||||||
public string FilterPanelJson { get; set; } // Filtre paneli Json verileri
|
public string FilterPanelJson { get; set; } // Filtre paneli Json verileri
|
||||||
public string SearchPanelJson { get; set; } // Arama paneli Json verileri
|
public string SearchPanelJson { get; set; } // Arama paneli Json verileri
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
|
||||||
namespace Kurs.Platform.Migrations
|
namespace Kurs.Platform.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(PlatformDbContext))]
|
[DbContext(typeof(PlatformDbContext))]
|
||||||
[Migration("20251008124621_Initial")]
|
[Migration("20251008192259_Initial")]
|
||||||
partial class Initial
|
partial class Initial
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
@ -3815,6 +3815,9 @@ namespace Kurs.Platform.Migrations
|
||||||
.HasMaxLength(256)
|
.HasMaxLength(256)
|
||||||
.HasColumnType("nvarchar(256)");
|
.HasColumnType("nvarchar(256)");
|
||||||
|
|
||||||
|
b.Property<string>("RowJson")
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
b.Property<string>("ScrollBarJson")
|
b.Property<string>("ScrollBarJson")
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
|
@ -1580,6 +1580,7 @@ namespace Kurs.Platform.Migrations
|
||||||
ColumnOptionJson = table.Column<string>(type: "text", nullable: true),
|
ColumnOptionJson = table.Column<string>(type: "text", nullable: true),
|
||||||
PivotOptionJson = table.Column<string>(type: "text", nullable: true),
|
PivotOptionJson = table.Column<string>(type: "text", nullable: true),
|
||||||
FilterRowJson = table.Column<string>(type: "text", nullable: true),
|
FilterRowJson = table.Column<string>(type: "text", nullable: true),
|
||||||
|
RowJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||||
HeaderFilterJson = table.Column<string>(type: "text", nullable: true),
|
HeaderFilterJson = table.Column<string>(type: "text", nullable: true),
|
||||||
FilterPanelJson = table.Column<string>(type: "text", nullable: true),
|
FilterPanelJson = table.Column<string>(type: "text", nullable: true),
|
||||||
SearchPanelJson = table.Column<string>(type: "text", nullable: true),
|
SearchPanelJson = table.Column<string>(type: "text", nullable: true),
|
||||||
|
|
@ -3812,6 +3812,9 @@ namespace Kurs.Platform.Migrations
|
||||||
.HasMaxLength(256)
|
.HasMaxLength(256)
|
||||||
.HasColumnType("nvarchar(256)");
|
.HasColumnType("nvarchar(256)");
|
||||||
|
|
||||||
|
b.Property<string>("RowJson")
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
b.Property<string>("ScrollBarJson")
|
b.Property<string>("ScrollBarJson")
|
||||||
.HasColumnType("text");
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ const Alert = forwardRef<HTMLDivElement, AlertProps>((props, ref) => {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const alertDefaultClass = 'p-4 relative flex'
|
const alertDefaultClass = 'p-2 relative flex'
|
||||||
|
|
||||||
const alertClass = classNames(
|
const alertClass = classNames(
|
||||||
'alert',
|
'alert',
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,9 @@ export const ListFormEditTabs = {
|
||||||
EditForm: 'edit.form',
|
EditForm: 'edit.form',
|
||||||
EditingFormFieldsJsonRow: 'edit.formFields',
|
EditingFormFieldsJsonRow: 'edit.formFields',
|
||||||
},
|
},
|
||||||
|
SortingForm: 'sorting',
|
||||||
FilterForm: 'filter',
|
FilterForm: 'filter',
|
||||||
|
RowForm: 'row',
|
||||||
SearchForm: 'search',
|
SearchForm: 'search',
|
||||||
GroupForm: 'group',
|
GroupForm: 'group',
|
||||||
SelectForm: 'select',
|
SelectForm: 'select',
|
||||||
|
|
@ -76,7 +78,9 @@ export const tabVisibilityConfig: Record<string, string[]> = {
|
||||||
'permissions',
|
'permissions',
|
||||||
'commands',
|
'commands',
|
||||||
'edit',
|
'edit',
|
||||||
|
'sortingForm',
|
||||||
'filterRow',
|
'filterRow',
|
||||||
|
'rowForm',
|
||||||
'search',
|
'search',
|
||||||
'group',
|
'group',
|
||||||
'select',
|
'select',
|
||||||
|
|
|
||||||
|
|
@ -326,6 +326,12 @@ export interface TagBoxOptionsDto {
|
||||||
acceptCustomValue: boolean
|
acceptCustomValue: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface RowDto {
|
||||||
|
rowHeight: string
|
||||||
|
whiteSpace: string
|
||||||
|
overflowWrap: string
|
||||||
|
}
|
||||||
|
|
||||||
export interface FilterPanelDto {
|
export interface FilterPanelDto {
|
||||||
visible: boolean
|
visible: boolean
|
||||||
texts: FilterPanelTextsDto
|
texts: FilterPanelTextsDto
|
||||||
|
|
@ -453,6 +459,8 @@ export interface GridOptionsDto extends AuditedEntityDto<string> {
|
||||||
headerFilterDto: GridHeaderFilterDto
|
headerFilterDto: GridHeaderFilterDto
|
||||||
filterPanelJson?: string
|
filterPanelJson?: string
|
||||||
filterPanelDto: FilterPanelDto
|
filterPanelDto: FilterPanelDto
|
||||||
|
rowJson?: string
|
||||||
|
rowDto: RowDto
|
||||||
searchPanelJson?: string
|
searchPanelJson?: string
|
||||||
searchPanelDto: SearchPanelDto
|
searchPanelDto: SearchPanelDto
|
||||||
groupPanelJson?: string
|
groupPanelJson?: string
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,8 @@ import ChartTabSeries from './ChartTabSeries'
|
||||||
import ChartTabAxis from './ChartTabAxis'
|
import ChartTabAxis from './ChartTabAxis'
|
||||||
import ChartTabPanes from './ChartTabPanes'
|
import ChartTabPanes from './ChartTabPanes'
|
||||||
import { tabVisibilityConfig } from '@/proxy/admin/list-form/options'
|
import { tabVisibilityConfig } from '@/proxy/admin/list-form/options'
|
||||||
|
import FormTabSorting from './FormTabSorting'
|
||||||
|
import FormTabRow from './FormTabRow'
|
||||||
|
|
||||||
export interface FormEditProps {
|
export interface FormEditProps {
|
||||||
onSubmit: (
|
onSubmit: (
|
||||||
|
|
@ -180,7 +182,7 @@ const FormEdit = () => {
|
||||||
</Link>
|
</Link>
|
||||||
</h4>
|
</h4>
|
||||||
{listFormValues.isTenant && (
|
{listFormValues.isTenant && (
|
||||||
<Alert showIcon className="mb-4" type="warning">
|
<Alert showIcon className="my-2" type="warning">
|
||||||
Bu bir MULTI TENANT form'dur, veri kaybı olmaması için, sorgularda TENANTID
|
Bu bir MULTI TENANT form'dur, veri kaybı olmaması için, sorgularda TENANTID
|
||||||
parametresini kullanmayı unutmayınız.
|
parametresini kullanmayı unutmayınız.
|
||||||
</Alert>
|
</Alert>
|
||||||
|
|
@ -206,10 +208,14 @@ const FormEdit = () => {
|
||||||
{visibleTabs.includes('edit') && (
|
{visibleTabs.includes('edit') && (
|
||||||
<TabNav value="edit">{translate('::ListForms.ListFormEdit.TabEditing')}</TabNav>
|
<TabNav value="edit">{translate('::ListForms.ListFormEdit.TabEditing')}</TabNav>
|
||||||
)}
|
)}
|
||||||
|
{visibleTabs.includes('sortingForm') && (
|
||||||
|
<TabNav value="sortingForm">{translate('::ListForms.ListFormEdit.TabSorting')}</TabNav>
|
||||||
|
)}
|
||||||
{visibleTabs.includes('filterRow') && (
|
{visibleTabs.includes('filterRow') && (
|
||||||
<TabNav value="filterRow">
|
<TabNav value="filterRow">{translate('::ListForms.ListFormEdit.TabFiltering')}</TabNav>
|
||||||
{translate('::ListForms.ListFormEdit.TabFilteringSorting')}
|
)}
|
||||||
</TabNav>
|
{visibleTabs.includes('rowForm') && (
|
||||||
|
<TabNav value="rowForm">{translate('::ListForms.ListFormEdit.TabRow')}</TabNav>
|
||||||
)}
|
)}
|
||||||
{visibleTabs.includes('search') && (
|
{visibleTabs.includes('search') && (
|
||||||
<TabNav value="search">{translate('::ListForms.ListFormEdit.TabSearch')}</TabNav>
|
<TabNav value="search">{translate('::ListForms.ListFormEdit.TabSearch')}</TabNav>
|
||||||
|
|
@ -302,58 +308,7 @@ const FormEdit = () => {
|
||||||
)}
|
)}
|
||||||
</TabList>
|
</TabList>
|
||||||
|
|
||||||
{/* <TabList className="flex-wrap border-b mb-2 bg-slate-50">
|
<TabContent value="details" className="px-2">
|
||||||
<TabNav value="details">{translate('::ListForms.ListFormEdit.TabDetails')}</TabNav>
|
|
||||||
<TabNav value="database">{translate('::ListForms.ListFormEdit.TabDatabase')}</TabNav>
|
|
||||||
<TabNav value="permissions">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabPermissions')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="commands">{translate('::ListForms.ListFormEdit.TabCommands')}</TabNav>
|
|
||||||
<TabNav value="edit">{translate('::ListForms.ListFormEdit.TabEditing')}</TabNav>
|
|
||||||
<TabNav value="filterRow">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabFilteringSorting')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="search">{translate('::ListForms.ListFormEdit.TabSearch')}</TabNav>
|
|
||||||
<TabNav value="group">{translate('::ListForms.ListFormEdit.TabGrouping')}</TabNav>
|
|
||||||
<TabNav value="select">{translate('::ListForms.ListFormEdit.TabSelection')}</TabNav>
|
|
||||||
<TabNav value="columns">{translate('::ListForms.ListFormEdit.TabColumns')}</TabNav>
|
|
||||||
<TabNav value="pivots">{translate('::ListForms.ListFormEdit.TabPivots')}</TabNav>
|
|
||||||
<TabNav value="pager">{translate('::ListForms.ListFormEdit.TabPaging')}</TabNav>
|
|
||||||
<TabNav value="state">{translate('::ListForms.ListFormEdit.TabState')}</TabNav>
|
|
||||||
<TabNav value="extrafilter">{translate('::ListForms.ListFormEdit.ExtraFilters')}</TabNav>
|
|
||||||
<TabNav value="fields">{translate('::ListForms.ListFormEdit.TabFields')}</TabNav>
|
|
||||||
<TabNav value="customization">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabCustomization')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="editForm">{translate('::ListForms.ListFormEdit.EditingForm')}</TabNav>
|
|
||||||
<TabNav value="subForms">{translate('::ListForms.ListFormEdit.TabSubForms')}</TabNav>
|
|
||||||
<TabNav value="widget">{translate('::ListForms.ListFormEdit.TabWidgets')}</TabNav>
|
|
||||||
<TabNav value="commonSettings">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabChartCommon')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="series">{translate('::ListForms.ListFormEdit.TabChartSeries')}</TabNav>
|
|
||||||
<TabNav value="axis">{translate('::ListForms.ListFormEdit.TabChartAxis')}</TabNav>
|
|
||||||
<TabNav value="panes">{translate('::ListForms.ListFormEdit.TabChartPanes')}</TabNav>
|
|
||||||
<TabNav value="animationsOptions">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabChartAnimation')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="annotations">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabChartAnnotations')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="zoomAndPanSettings">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabChartZoomAndPan')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="legendSettings">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabChartLegend')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="exportSettings">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabChartExport')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="crosshairOptions">
|
|
||||||
{translate('::ListForms.ListFormEdit.TabChartCrosshair')}
|
|
||||||
</TabNav>
|
|
||||||
</TabList> */}
|
|
||||||
<TabContent value="details">
|
|
||||||
<FormTabDetails
|
<FormTabDetails
|
||||||
onSubmit={onSubmit}
|
onSubmit={onSubmit}
|
||||||
roleList={roleList}
|
roleList={roleList}
|
||||||
|
|
@ -361,52 +316,58 @@ const FormEdit = () => {
|
||||||
onFormTypeChange={setActiveFormType}
|
onFormTypeChange={setActiveFormType}
|
||||||
/>
|
/>
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="database">
|
<TabContent value="database" className="px-2">
|
||||||
<FormTabDatabase onSubmit={onSubmit} />
|
<FormTabDatabase onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="permissions">
|
<TabContent value="permissions" className="px-2">
|
||||||
<FormTabPermissions onSubmit={onSubmit} />
|
<FormTabPermissions onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="commands">
|
<TabContent value="commands" className="px-2">
|
||||||
<FormTabCommands />
|
<FormTabCommands />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="edit">
|
<TabContent value="edit" className="px-2">
|
||||||
<FormTabEdit listFormCode={listFormCode} onSubmit={onSubmit} />
|
<FormTabEdit listFormCode={listFormCode} onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="editForm">
|
<TabContent value="editForm" className="px-2">
|
||||||
<FormTabEditForm listFormCode={listFormCode} />
|
<FormTabEditForm listFormCode={listFormCode} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="filterRow">
|
<TabContent value="sortingForm" className="px-2">
|
||||||
|
<FormTabSorting onSubmit={onSubmit} />
|
||||||
|
</TabContent>
|
||||||
|
<TabContent value="filterRow" className="px-2">
|
||||||
<FormTabFilters onSubmit={onSubmit} />
|
<FormTabFilters onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="search">
|
<TabContent value="rowForm" className="px-2">
|
||||||
|
<FormTabRow onSubmit={onSubmit} />
|
||||||
|
</TabContent>
|
||||||
|
<TabContent value="search" className="px-2">
|
||||||
<FormTabSearch onSubmit={onSubmit} />
|
<FormTabSearch onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="group">
|
<TabContent value="group" className="px-2">
|
||||||
<FormTabGroup onSubmit={onSubmit} />
|
<FormTabGroup onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="select">
|
<TabContent value="select" className="px-2">
|
||||||
<FormTabSelect onSubmit={onSubmit} />
|
<FormTabSelect onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="columns">
|
<TabContent value="columns" className="px-2">
|
||||||
<FormTabColumns onSubmit={onSubmit} />
|
<FormTabColumns onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="pivots">
|
<TabContent value="pivots" className="px-2">
|
||||||
<FormTabPivots onSubmit={onSubmit} />
|
<FormTabPivots onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="pager">
|
<TabContent value="pager" className="px-2">
|
||||||
<FormTabPager onSubmit={onSubmit} />
|
<FormTabPager onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="state">
|
<TabContent value="state" className="px-2">
|
||||||
<FormTabState onSubmit={onSubmit} />
|
<FormTabState onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="subForms">
|
<TabContent value="subForms" className="px-2">
|
||||||
<FormTabSubForm />
|
<FormTabSubForm />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="widget">
|
<TabContent value="widget" className="px-2">
|
||||||
<FormTabWidgets listFormCode={listFormCode} />
|
<FormTabWidgets listFormCode={listFormCode} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="fields">
|
<TabContent value="fields" className="px-2">
|
||||||
<FormFields
|
<FormFields
|
||||||
listFormCode={listFormCode}
|
listFormCode={listFormCode}
|
||||||
langOptions={langOptions}
|
langOptions={langOptions}
|
||||||
|
|
@ -414,7 +375,7 @@ const FormEdit = () => {
|
||||||
userList={userList}
|
userList={userList}
|
||||||
></FormFields>
|
></FormFields>
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="customization">
|
<TabContent value="customization" className="px-2">
|
||||||
<FormCustomization
|
<FormCustomization
|
||||||
listFormCode={listFormCode}
|
listFormCode={listFormCode}
|
||||||
items={customizations}
|
items={customizations}
|
||||||
|
|
@ -423,37 +384,37 @@ const FormEdit = () => {
|
||||||
getListFormCustomizations={getCustomizations}
|
getListFormCustomizations={getCustomizations}
|
||||||
></FormCustomization>
|
></FormCustomization>
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="extrafilter">
|
<TabContent value="extrafilter" className="px-2">
|
||||||
<FormTabExtraFilters listFormCode={listFormCode} />
|
<FormTabExtraFilters listFormCode={listFormCode} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="commonSettings">
|
<TabContent value="commonSettings" className="px-2">
|
||||||
<ChartTabCommonSettings onSubmit={onSubmit} />
|
<ChartTabCommonSettings onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="series">
|
<TabContent value="series" className="px-2">
|
||||||
<ChartTabSeries onSubmit={onSubmit} listFormCode={listFormCode} />
|
<ChartTabSeries onSubmit={onSubmit} listFormCode={listFormCode} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="panes">
|
<TabContent value="panes" className="px-2">
|
||||||
<ChartTabPanes onSubmit={onSubmit} />
|
<ChartTabPanes onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="animationsOptions">
|
<TabContent value="animationsOptions" className="px-2">
|
||||||
<ChartTabAnimation onSubmit={onSubmit} />
|
<ChartTabAnimation onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="annotations">
|
<TabContent value="annotations" className="px-2">
|
||||||
<ChartTabAnnotations onSubmit={onSubmit} />
|
<ChartTabAnnotations onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="axis">
|
<TabContent value="axis" className="px-2">
|
||||||
<ChartTabAxis onSubmit={onSubmit} />
|
<ChartTabAxis onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="zoomAndPanSettings">
|
<TabContent value="zoomAndPanSettings" className="px-2">
|
||||||
<ChartTabZoomAndPan onSubmit={onSubmit} />
|
<ChartTabZoomAndPan onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="legendSettings">
|
<TabContent value="legendSettings" className="px-2">
|
||||||
<ChartTabLegend onSubmit={onSubmit} />
|
<ChartTabLegend onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="exportSettings">
|
<TabContent value="exportSettings" className="px-2">
|
||||||
<ChartTabExport onSubmit={onSubmit} />
|
<ChartTabExport onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
<TabContent value="crosshairOptions">
|
<TabContent value="crosshairOptions" className="px-2">
|
||||||
<ChartTabCrosshair onSubmit={onSubmit} />
|
<ChartTabCrosshair onSubmit={onSubmit} />
|
||||||
</TabContent>
|
</TabContent>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import {
|
||||||
FormItem,
|
FormItem,
|
||||||
Input,
|
Input,
|
||||||
Select,
|
Select,
|
||||||
Tabs,
|
|
||||||
} from '@/components/ui'
|
} from '@/components/ui'
|
||||||
import { ListFormEditTabs } from '@/proxy/admin/list-form/options'
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/options'
|
||||||
import { useStoreState } from '@/store'
|
import { useStoreState } from '@/store'
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,17 @@ import { ApplyFilterMode } from 'devextreme/common/grids'
|
||||||
import { Field, FieldProps, Form, Formik } from 'formik'
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { FormEditProps } from './FormEdit'
|
import { FormEditProps } from './FormEdit'
|
||||||
import { applyFilterOptions, sortModeOptions } from './options'
|
import {
|
||||||
|
applyFilterOptions,
|
||||||
|
overflowWrapOptions,
|
||||||
|
sortModeOptions,
|
||||||
|
whiteSpaceOptions,
|
||||||
|
} from './options'
|
||||||
import TabList from '@/components/ui/Tabs/TabList'
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
import TabNav from '@/components/ui/Tabs/TabNav'
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
import TabContent from '@/components/ui/Tabs/TabContent'
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
import { GridOptionsSortModeEnum } from '@/proxy/form/models'
|
import { GridOptionsSortModeEnum } from '@/proxy/form/models'
|
||||||
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({})
|
const validationSchema = Yup.object().shape({})
|
||||||
|
|
||||||
|
|
@ -33,7 +39,7 @@ function FormTabFilters(props: FormEditProps) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container className="grid xl:grid-cols-3">
|
<Container className="grid xl:grid-cols-2">
|
||||||
<Formik
|
<Formik
|
||||||
initialValues={listFormValues}
|
initialValues={listFormValues}
|
||||||
validationSchema={validationSchema}
|
validationSchema={validationSchema}
|
||||||
|
|
@ -44,11 +50,8 @@ function FormTabFilters(props: FormEditProps) {
|
||||||
{({ touched, errors, isSubmitting, values }) => (
|
{({ touched, errors, isSubmitting, values }) => (
|
||||||
<Form>
|
<Form>
|
||||||
<FormContainer size="sm">
|
<FormContainer size="sm">
|
||||||
<Tabs defaultValue="tabSorting">
|
<Tabs defaultValue="tabRowFilter">
|
||||||
<TabList className="flex-wrap my-3">
|
<TabList className="flex-wrap my-3">
|
||||||
<TabNav value="tabSorting">
|
|
||||||
{translate('::ListForms.ListFormEdit.FilteringSorting')}
|
|
||||||
</TabNav>
|
|
||||||
<TabNav value="tabRowFilter">
|
<TabNav value="tabRowFilter">
|
||||||
{translate('::ListForms.ListFormEdit.FilteringSortingFilterRow')}
|
{translate('::ListForms.ListFormEdit.FilteringSortingFilterRow')}
|
||||||
</TabNav>
|
</TabNav>
|
||||||
|
|
@ -59,33 +62,6 @@ function FormTabFilters(props: FormEditProps) {
|
||||||
{translate('::ListForms.ListFormEdit.FilteringSortingFilterPanel')}
|
{translate('::ListForms.ListFormEdit.FilteringSortingFilterPanel')}
|
||||||
</TabNav>
|
</TabNav>
|
||||||
</TabList>
|
</TabList>
|
||||||
<TabContent value="tabSorting">
|
|
||||||
<FormItem
|
|
||||||
label={translate('::ListForms.ListFormEdit.FilteringSortingSortMode')}
|
|
||||||
invalid={errors.sortMode && touched.sortMode}
|
|
||||||
errorMessage={errors.sortMode}
|
|
||||||
>
|
|
||||||
<Field
|
|
||||||
type="text"
|
|
||||||
autoComplete="off"
|
|
||||||
name="sortMode"
|
|
||||||
placeholder={translate('::ListForms.ListFormEdit.FilteringSortingSortMode')}
|
|
||||||
>
|
|
||||||
{({ field, form }: FieldProps<GridOptionsSortModeEnum>) => (
|
|
||||||
<Select
|
|
||||||
field={field}
|
|
||||||
form={form}
|
|
||||||
isClearable={true}
|
|
||||||
options={sortModeOptions}
|
|
||||||
value={sortModeOptions?.filter(
|
|
||||||
(option) => option.value === values.sortMode,
|
|
||||||
)}
|
|
||||||
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</Field>
|
|
||||||
</FormItem>
|
|
||||||
</TabContent>
|
|
||||||
<TabContent value="tabRowFilter">
|
<TabContent value="tabRowFilter">
|
||||||
<FormItem
|
<FormItem
|
||||||
label={translate('::ListForms.ListFormEdit.FilteringSortingFilterRowVisible')}
|
label={translate('::ListForms.ListFormEdit.FilteringSortingFilterRowVisible')}
|
||||||
|
|
|
||||||
119
ui/src/views/admin/listForm/edit/FormTabRow.tsx
Normal file
119
ui/src/views/admin/listForm/edit/FormTabRow.tsx
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
import { Container } from '@/components/shared'
|
||||||
|
import { Button, Checkbox, FormContainer, FormItem, Input, Select, Tabs } from '@/components/ui'
|
||||||
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/options'
|
||||||
|
import { useStoreState } from '@/store'
|
||||||
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
import { ApplyFilterMode } from 'devextreme/common/grids'
|
||||||
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
|
import * as Yup from 'yup'
|
||||||
|
import { FormEditProps } from './FormEdit'
|
||||||
|
import {
|
||||||
|
applyFilterOptions,
|
||||||
|
overflowWrapOptions,
|
||||||
|
sortModeOptions,
|
||||||
|
whiteSpaceOptions,
|
||||||
|
} from './options'
|
||||||
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
|
import { GridOptionsSortModeEnum } from '@/proxy/form/models'
|
||||||
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
|
|
||||||
|
const validationSchema = Yup.object().shape({})
|
||||||
|
|
||||||
|
function FormTabRow(props: FormEditProps) {
|
||||||
|
const { translate } = useLocalization()
|
||||||
|
|
||||||
|
const listFormValues = useStoreState((s) => s.admin.lists.values)
|
||||||
|
if (!listFormValues) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container className="grid xl:grid-cols-2">
|
||||||
|
<Formik
|
||||||
|
initialValues={listFormValues}
|
||||||
|
validationSchema={validationSchema}
|
||||||
|
onSubmit={async (values, formikHelpers) => {
|
||||||
|
await props.onSubmit(ListFormEditTabs.RowForm, values, formikHelpers)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{({ touched, errors, isSubmitting, values }) => (
|
||||||
|
<Form>
|
||||||
|
<FormContainer size="sm">
|
||||||
|
<FormItem
|
||||||
|
label={translate('::ListForms.ListFormEdit.FilteringSortingRowHeight')}
|
||||||
|
invalid={errors.rowDto?.rowHeight && touched.rowDto?.rowHeight}
|
||||||
|
errorMessage={errors.rowDto?.rowHeight}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
|
name="rowDto.rowHeight"
|
||||||
|
placeholder={translate('::ListForms.ListFormEdit.FilteringSortingRowHeight')}
|
||||||
|
component={Input}
|
||||||
|
/>
|
||||||
|
</FormItem>
|
||||||
|
|
||||||
|
<FormItem
|
||||||
|
label={translate('::ListForms.ListFormEdit.FilteringSortingRowWhiteSpace')}
|
||||||
|
invalid={errors.rowDto?.whiteSpace && touched.rowDto?.whiteSpace}
|
||||||
|
errorMessage={errors.rowDto?.whiteSpace}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
|
type="text"
|
||||||
|
name="rowDto.whiteSpace"
|
||||||
|
placeholder={translate('::ListForms.ListFormEdit.FilteringSortingRowWhiteSpace')}
|
||||||
|
>
|
||||||
|
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||||
|
<Select
|
||||||
|
field={field}
|
||||||
|
form={form}
|
||||||
|
isClearable={true}
|
||||||
|
options={whiteSpaceOptions}
|
||||||
|
value={whiteSpaceOptions?.filter(
|
||||||
|
(option) => option.value === values.rowDto.whiteSpace,
|
||||||
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Field>
|
||||||
|
</FormItem>
|
||||||
|
|
||||||
|
<FormItem
|
||||||
|
label={translate('::ListForms.ListFormEdit.FilteringSortingRowOverflowWrap')}
|
||||||
|
invalid={errors.rowDto?.overflowWrap && touched.rowDto?.overflowWrap}
|
||||||
|
errorMessage={errors.rowDto?.overflowWrap}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
|
type="text"
|
||||||
|
name="rowDto.overflowWrap"
|
||||||
|
placeholder={translate(
|
||||||
|
'::ListForms.ListFormEdit.FilteringSortingRowOverflowWrap',
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
{({ field, form }: FieldProps<SelectBoxOption>) => (
|
||||||
|
<Select
|
||||||
|
field={field}
|
||||||
|
form={form}
|
||||||
|
isClearable={true}
|
||||||
|
options={overflowWrapOptions}
|
||||||
|
value={overflowWrapOptions?.filter(
|
||||||
|
(option) => option.value === values.rowDto.overflowWrap,
|
||||||
|
)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Field>
|
||||||
|
</FormItem>
|
||||||
|
|
||||||
|
<Button block variant="solid" loading={isSubmitting} type="submit">
|
||||||
|
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||||
|
</Button>
|
||||||
|
</FormContainer>
|
||||||
|
</Form>
|
||||||
|
)}
|
||||||
|
</Formik>
|
||||||
|
</Container>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default FormTabRow
|
||||||
88
ui/src/views/admin/listForm/edit/FormTabSorting.tsx
Normal file
88
ui/src/views/admin/listForm/edit/FormTabSorting.tsx
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
import { Container } from '@/components/shared'
|
||||||
|
import {
|
||||||
|
Button,
|
||||||
|
Card,
|
||||||
|
Checkbox,
|
||||||
|
FormContainer,
|
||||||
|
FormItem,
|
||||||
|
Input,
|
||||||
|
Select,
|
||||||
|
Tabs,
|
||||||
|
} from '@/components/ui'
|
||||||
|
import { ListFormEditTabs } from '@/proxy/admin/list-form/options'
|
||||||
|
import { useStoreState } from '@/store'
|
||||||
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
import { ApplyFilterMode } from 'devextreme/common/grids'
|
||||||
|
import { Field, FieldProps, Form, Formik } from 'formik'
|
||||||
|
import * as Yup from 'yup'
|
||||||
|
import { FormEditProps } from './FormEdit'
|
||||||
|
import {
|
||||||
|
applyFilterOptions,
|
||||||
|
overflowWrapOptions,
|
||||||
|
sortModeOptions,
|
||||||
|
whiteSpaceOptions,
|
||||||
|
} from './options'
|
||||||
|
import TabList from '@/components/ui/Tabs/TabList'
|
||||||
|
import TabNav from '@/components/ui/Tabs/TabNav'
|
||||||
|
import TabContent from '@/components/ui/Tabs/TabContent'
|
||||||
|
import { GridOptionsSortModeEnum } from '@/proxy/form/models'
|
||||||
|
import { SelectBoxOption } from '@/shared/types'
|
||||||
|
|
||||||
|
const validationSchema = Yup.object().shape({})
|
||||||
|
|
||||||
|
function FormTabSorting(props: FormEditProps) {
|
||||||
|
const { translate } = useLocalization()
|
||||||
|
|
||||||
|
const listFormValues = useStoreState((s) => s.admin.lists.values)
|
||||||
|
if (!listFormValues) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container className="grid xl:grid-cols-2">
|
||||||
|
<Formik
|
||||||
|
initialValues={listFormValues}
|
||||||
|
validationSchema={validationSchema}
|
||||||
|
onSubmit={async (values, formikHelpers) => {
|
||||||
|
await props.onSubmit(ListFormEditTabs.SortingForm, values, formikHelpers)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{({ touched, errors, isSubmitting, values }) => (
|
||||||
|
<Form>
|
||||||
|
<FormContainer size="sm">
|
||||||
|
<FormItem
|
||||||
|
label={translate('::ListForms.ListFormEdit.FilteringSortingSortMode')}
|
||||||
|
invalid={errors.sortMode && touched.sortMode}
|
||||||
|
errorMessage={errors.sortMode}
|
||||||
|
>
|
||||||
|
<Field
|
||||||
|
type="text"
|
||||||
|
autoComplete="off"
|
||||||
|
name="sortMode"
|
||||||
|
placeholder={translate('::ListForms.ListFormEdit.FilteringSortingSortMode')}
|
||||||
|
>
|
||||||
|
{({ field, form }: FieldProps<GridOptionsSortModeEnum>) => (
|
||||||
|
<Select
|
||||||
|
field={field}
|
||||||
|
form={form}
|
||||||
|
isClearable={true}
|
||||||
|
options={sortModeOptions}
|
||||||
|
value={sortModeOptions?.filter((option) => option.value === values.sortMode)}
|
||||||
|
onChange={(option) => form.setFieldValue(field.name, option?.value)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Field>
|
||||||
|
</FormItem>
|
||||||
|
|
||||||
|
<Button block variant="solid" loading={isSubmitting} type="submit">
|
||||||
|
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||||
|
</Button>
|
||||||
|
</FormContainer>
|
||||||
|
</Form>
|
||||||
|
)}
|
||||||
|
</Formik>
|
||||||
|
</Container>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default FormTabSorting
|
||||||
|
|
@ -27,6 +27,23 @@ import {
|
||||||
import { enumToList } from '../../../../utils/enumUtils'
|
import { enumToList } from '../../../../utils/enumUtils'
|
||||||
import { colSpan, iconList, WidgetColorEnum } from '@/components/ui/Widget/iconList'
|
import { colSpan, iconList, WidgetColorEnum } from '@/components/ui/Widget/iconList'
|
||||||
|
|
||||||
|
export const overflowWrapOptions = [
|
||||||
|
{ value: 'normal', label: 'Normal' },
|
||||||
|
{ value: 'break-word', label: 'Break Word' },
|
||||||
|
{ value: 'none', label: 'None' },
|
||||||
|
{ value: 'break-all', label: 'Break All' },
|
||||||
|
{ value: 'keep-all', label: 'Keep All' },
|
||||||
|
]
|
||||||
|
|
||||||
|
export const whiteSpaceOptions = [
|
||||||
|
{ value: 'normal', label: 'Normal' },
|
||||||
|
{ value: 'nowrap', label: 'No Wrap' },
|
||||||
|
{ value: 'pre', label: 'Pre' },
|
||||||
|
{ value: 'pre-line', label: 'Pre Line' },
|
||||||
|
{ value: 'pre-wrap', label: 'Pre Wrap' },
|
||||||
|
{ value: 'break-word', label: 'Break Word' },
|
||||||
|
]
|
||||||
|
|
||||||
export const sortModeOptions = [
|
export const sortModeOptions = [
|
||||||
{ value: 'none', label: 'None' },
|
{ value: 'none', label: 'None' },
|
||||||
{ value: 'single', label: 'Single' },
|
{ value: 'single', label: 'Single' },
|
||||||
|
|
|
||||||
|
|
@ -639,6 +639,13 @@ const Grid = (props: GridProps) => {
|
||||||
columnAutoWidth={gridDto.gridOptions.columnOptionDto?.columnAutoWidth}
|
columnAutoWidth={gridDto.gridOptions.columnOptionDto?.columnAutoWidth}
|
||||||
rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled}
|
rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled}
|
||||||
rowAlternationEnabled={gridDto.gridOptions.columnOptionDto?.rowAlternationEnabled}
|
rowAlternationEnabled={gridDto.gridOptions.columnOptionDto?.rowAlternationEnabled}
|
||||||
|
onRowPrepared={(e) => {
|
||||||
|
if (e.rowType === 'data') {
|
||||||
|
e.rowElement.style.height = gridDto.gridOptions?.rowDto.rowHeight
|
||||||
|
e.rowElement.style.whiteSpace = gridDto.gridOptions?.rowDto.whiteSpace
|
||||||
|
e.rowElement.style.overflowWrap = gridDto.gridOptions?.rowDto.overflowWrap
|
||||||
|
}
|
||||||
|
}}
|
||||||
hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled}
|
hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled}
|
||||||
columnHidingEnabled={gridDto.gridOptions.columnOptionDto?.columnHidingEnabled}
|
columnHidingEnabled={gridDto.gridOptions.columnOptionDto?.columnHidingEnabled}
|
||||||
focusedRowEnabled={gridDto.gridOptions.columnOptionDto?.focusedRowEnabled}
|
focusedRowEnabled={gridDto.gridOptions.columnOptionDto?.focusedRowEnabled}
|
||||||
|
|
@ -714,7 +721,6 @@ const Grid = (props: GridProps) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 🔥 Butonların onClick eventlerini wrap et
|
|
||||||
if (editor.editorOptions?.buttons) {
|
if (editor.editorOptions?.buttons) {
|
||||||
editor.editorOptions.buttons = editor.editorOptions.buttons.map(
|
editor.editorOptions.buttons = editor.editorOptions.buttons.map(
|
||||||
(btn: any) => {
|
(btn: any) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue