DevExpress Fluent theme: grid/info panel refactor
Major refactor for DevExpress Fluent theme compatibility: - InfoPanel templates now use strongly-typed context (`InfoPanelContext`) - Unified grid layout with `MgGridWithInfoPanel` wrapper - CSS updated to use Fluent theme variables and container queries - App-wide CSS cleanup and formatting improvements - `.editorconfig` added for modern CSS support - Improved InfoPanel instance resolution for nested grids - Codebase is cleaner, more maintainable, and ready for further customization
This commit is contained in:
parent
e8d38f0038
commit
271868b4d5
|
|
@ -74,7 +74,6 @@
|
||||||
</ToolbarTemplate>
|
</ToolbarTemplate>
|
||||||
</GridProductDto>
|
</GridProductDto>
|
||||||
|
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[Inject] public required DatabaseClient Database { get; set; }
|
[Inject] public required DatabaseClient Database { get; set; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,78 +15,80 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||||
|
|
||||||
<GridShippingItemBase @ref="Grid" ParentDataItem="ParentDataItem" DataSource="ShippingItems" AutoSaveLayoutName="GridShippingItem"
|
<MgGridWithInfoPanel ShowInfoPanel="@IsMasterGrid">
|
||||||
SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
<GridContent>
|
||||||
CssClass="@GridCss" ValidationEnabled="false" CustomizeElement="Grid_CustomizeElement"
|
<GridShippingItemBase @ref="Grid" ParentDataItem="ParentDataItem" DataSource="ShippingItems" AutoSaveLayoutName="GridShippingItem"
|
||||||
OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
||||||
<Columns>
|
CssClass="@GridCss" ValidationEnabled="false" CustomizeElement="Grid_CustomizeElement"
|
||||||
<DxGridDataColumn FieldName="Id" Caption="oiId" Width="125" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
||||||
<DxGridDataColumn FieldName="ShippingDocumentId" Caption="ShippingDocument"
|
<Columns>
|
||||||
Visible="@(!ParentDataItemIsShippingDocument)" ReadOnly="@(ParentDataItemIsShippingDocument)">
|
<DxGridDataColumn FieldName="Id" Caption="oiId" Width="125" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
<EditSettings>
|
<DxGridDataColumn FieldName="ShippingDocumentId" Caption="ShippingDocument"
|
||||||
<DxComboBoxSettings Data="ShippingDocuments"
|
Visible="@(!ParentDataItemIsShippingDocument)" ReadOnly="@(ParentDataItemIsShippingDocument)">
|
||||||
ValueFieldName="Id"
|
<EditSettings>
|
||||||
TextFieldName="@nameof(ShippingDocument.PdfFileName)"
|
<DxComboBoxSettings Data="ShippingDocuments"
|
||||||
DropDownBodyCssClass="dd-body-class"
|
ValueFieldName="Id"
|
||||||
ListRenderMode="ListRenderMode.Entire"
|
TextFieldName="@nameof(ShippingDocument.PdfFileName)"
|
||||||
SearchMode="ListSearchMode.AutoSearch"
|
DropDownBodyCssClass="dd-body-class"
|
||||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
ListRenderMode="ListRenderMode.Entire"
|
||||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto">
|
SearchMode="ListSearchMode.AutoSearch"
|
||||||
<Columns>
|
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||||
<DxListEditorColumn FieldName="@nameof(ShippingDocument.Id)" />
|
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto">
|
||||||
<DxListEditorColumn FieldName="@nameof(ShippingDocument.DocumentIdNumber)" />
|
<Columns>
|
||||||
<DxListEditorColumn FieldName="@nameof(ShippingDocument.PdfFileName)" />
|
<DxListEditorColumn FieldName="@nameof(ShippingDocument.Id)" />
|
||||||
<DxListEditorColumn FieldName="@("Partner.Name")" />
|
<DxListEditorColumn FieldName="@nameof(ShippingDocument.DocumentIdNumber)" />
|
||||||
</Columns>
|
<DxListEditorColumn FieldName="@nameof(ShippingDocument.PdfFileName)" />
|
||||||
</DxComboBoxSettings>
|
<DxListEditorColumn FieldName="@("Partner.Name")" />
|
||||||
</EditSettings>
|
</Columns>
|
||||||
</DxGridDataColumn>
|
</DxComboBoxSettings>
|
||||||
|
</EditSettings>
|
||||||
|
</DxGridDataColumn>
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="@("ShippingDocument.Partner.Name")" Caption="Patner" Width="125" ReadOnly="true" Visible="@(!ParentDataItemIsShippingDocument)" />
|
<DxGridDataColumn FieldName="@("ShippingDocument.Partner.Name")" Caption="Patner" Width="125" ReadOnly="true" Visible="@(!ParentDataItemIsShippingDocument)" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="ProductId" Caption="Product">
|
<DxGridDataColumn FieldName="ProductId" Caption="Product">
|
||||||
<EditSettings>
|
<EditSettings>
|
||||||
<DxComboBoxSettings Data="ProductDtos"
|
<DxComboBoxSettings Data="ProductDtos"
|
||||||
ValueFieldName="Id"
|
ValueFieldName="Id"
|
||||||
TextFieldName="Name"
|
TextFieldName="Name"
|
||||||
DropDownBodyCssClass="dd-body-class"
|
DropDownBodyCssClass="dd-body-class"
|
||||||
ListRenderMode="ListRenderMode.Entire"
|
ListRenderMode="ListRenderMode.Entire"
|
||||||
SearchMode="ListSearchMode.AutoSearch"
|
SearchMode="ListSearchMode.AutoSearch"
|
||||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto">
|
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto">
|
||||||
<Columns>
|
<Columns>
|
||||||
<DxListEditorColumn FieldName="@nameof(ProductDto.Id)" />
|
<DxListEditorColumn FieldName="@nameof(ProductDto.Id)" />
|
||||||
<DxListEditorColumn FieldName="@nameof(ProductDto.Name)" />
|
<DxListEditorColumn FieldName="@nameof(ProductDto.Name)" />
|
||||||
<DxListEditorColumn FieldName="@nameof(ProductDto.AvailableQuantity)" />
|
<DxListEditorColumn FieldName="@nameof(ProductDto.AvailableQuantity)" />
|
||||||
<DxListEditorColumn FieldName="@nameof(ProductDto.StockQuantity)" />
|
<DxListEditorColumn FieldName="@nameof(ProductDto.StockQuantity)" />
|
||||||
<DxListEditorColumn FieldName="@nameof(ProductDto.IncomingQuantity)" />
|
<DxListEditorColumn FieldName="@nameof(ProductDto.IncomingQuantity)" />
|
||||||
<DxListEditorColumn FieldName="@nameof(ProductDto.NetWeight)" />
|
<DxListEditorColumn FieldName="@nameof(ProductDto.NetWeight)" />
|
||||||
<DxListEditorColumn FieldName="@nameof(ProductDto.IsMeasurable)" />
|
<DxListEditorColumn FieldName="@nameof(ProductDto.IsMeasurable)" />
|
||||||
</Columns>
|
</Columns>
|
||||||
</DxComboBoxSettings>
|
</DxComboBoxSettings>
|
||||||
</EditSettings>
|
</EditSettings>
|
||||||
</DxGridDataColumn>
|
</DxGridDataColumn>
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="NameOnDocument" MinWidth="120" Caption="Name(OnDoc)" />
|
<DxGridDataColumn FieldName="NameOnDocument" MinWidth="120" Caption="Name(OnDoc)" />
|
||||||
<DxGridDataColumn FieldName="Name" MinWidth="120" Caption="Name" Visible="false" />
|
<DxGridDataColumn FieldName="Name" MinWidth="120" Caption="Name" Visible="false" />
|
||||||
<DxGridDataColumn FieldName="PalletsOnDocument" Caption="Raklap(OnDoc)" />
|
<DxGridDataColumn FieldName="PalletsOnDocument" Caption="Raklap(OnDoc)" />
|
||||||
<DxGridDataColumn FieldName="QuantityOnDocument" Caption="Mennyiség(OnDoc)" />
|
<DxGridDataColumn FieldName="QuantityOnDocument" Caption="Mennyiség(OnDoc)" />
|
||||||
<DxGridDataColumn FieldName="NetWeightOnDocument" Caption="Net.súly(OnDoc)" />
|
<DxGridDataColumn FieldName="NetWeightOnDocument" Caption="Net.súly(OnDoc)" />
|
||||||
<DxGridDataColumn FieldName="GrossWeightOnDocument" Caption="Br.súly(OnDoc)" />
|
<DxGridDataColumn FieldName="GrossWeightOnDocument" Caption="Br.súly(OnDoc)" />
|
||||||
<DxGridDataColumn FieldName="MeasuringCount" Caption="Mérések száma" />
|
<DxGridDataColumn FieldName="MeasuringCount" Caption="Mérések száma" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="MeasuredQuantity" Name="MeasuredQuantity" Caption="Mért mennyiség" ReadOnly="true" />
|
<DxGridDataColumn FieldName="MeasuredQuantity" Name="MeasuredQuantity" Caption="Mért mennyiség" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="MeasuredNetWeight" Name="MeasuredNetWeight" Caption="Mért net.súly(kg)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="MeasuredNetWeight" Name="MeasuredNetWeight" Caption="Mért net.súly(kg)" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="MeasuredGrossWeight" Name="MeasuredGrossWeight" Caption="Mért br.súly(kg)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="MeasuredGrossWeight" Name="MeasuredGrossWeight" Caption="Mért br.súly(kg)" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="IsMeasurable" ReadOnly="true" />
|
<DxGridDataColumn FieldName="IsMeasurable" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="IsMeasured" ReadOnly="true" />
|
<DxGridDataColumn FieldName="IsMeasured" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
||||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||||
</Columns>
|
</Columns>
|
||||||
@* <DataColumnCellDisplayTemplate>
|
@* <DataColumnCellDisplayTemplate>
|
||||||
@{
|
@{
|
||||||
if (context.DataColumn.FieldName == nameof(ShippingItem.ShippingDocumentId))
|
if (context.DataColumn.FieldName == nameof(ShippingItem.ShippingDocumentId))
|
||||||
{
|
{
|
||||||
|
|
@ -100,30 +102,31 @@
|
||||||
}
|
}
|
||||||
</DataColumnCellDisplayTemplate>
|
</DataColumnCellDisplayTemplate>
|
||||||
*@ <DetailRowTemplate>
|
*@ <DetailRowTemplate>
|
||||||
@{
|
@{
|
||||||
var shippingItemPallets = ((ShippingItem)context.DataItem).ShippingItemPallets;
|
var shippingItemPallets = ((ShippingItem)context.DataItem).ShippingItemPallets;
|
||||||
<GridShippingItemPallets ShippingItemPallets="shippingItemPallets" IsMasterGrid="false"></GridShippingItemPallets>
|
<GridShippingItemPallets ShippingItemPallets="shippingItemPallets" IsMasterGrid="false"></GridShippingItemPallets>
|
||||||
}
|
}
|
||||||
</DetailRowTemplate>
|
</DetailRowTemplate>
|
||||||
<ToolbarTemplate>
|
<ToolbarTemplate>
|
||||||
@if (IsMasterGrid)
|
@if (IsMasterGrid)
|
||||||
{
|
{
|
||||||
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
||||||
}
|
}
|
||||||
</ToolbarTemplate>
|
</ToolbarTemplate>
|
||||||
<GroupSummary>
|
<GroupSummary>
|
||||||
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
||||||
FieldName="MeasuredQuantity"
|
FieldName="MeasuredQuantity"
|
||||||
FooterColumnName="Quantity" />
|
FooterColumnName="Quantity" />
|
||||||
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
||||||
FieldName="MeasuredGrossWeight"
|
FieldName="MeasuredGrossWeight"
|
||||||
FooterColumnName="GrossWeight" />
|
FooterColumnName="GrossWeight" />
|
||||||
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
||||||
FieldName="MeasuredNetWeight"
|
FieldName="MeasuredNetWeight"
|
||||||
FooterColumnName="NetWeight" />
|
FooterColumnName="NetWeight" />
|
||||||
</GroupSummary>
|
</GroupSummary>
|
||||||
</GridShippingItemBase>
|
</GridShippingItemBase>
|
||||||
@* </MgGridBase> *@
|
</GridContent>
|
||||||
|
</MgGridWithInfoPanel>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
//[Inject] public required ObjectLock ObjectLock { get; set; }
|
//[Inject] public required ObjectLock ObjectLock { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -15,32 +15,36 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||||
|
|
||||||
<GridGenericAttributeBase @ref="Grid" DataSource="GenericAttributes" AutoSaveLayoutName="GridGenericAttribute" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
<MgGridWithInfoPanel ShowInfoPanel="@IsMasterGrid">
|
||||||
ParentDataItem="@ParentDataItem" CssClass="@GridCss" ValidationEnabled="false" OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
<GridContent>
|
||||||
<Columns>
|
<GridGenericAttributeBase @ref="Grid" DataSource="GenericAttributes" AutoSaveLayoutName="GridGenericAttribute" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
||||||
<DxGridDataColumn FieldName="@nameof(GenericAttribute.Id)" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
ParentDataItem="@ParentDataItem" CssClass="@GridCss" ValidationEnabled="false" OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
||||||
|
<Columns>
|
||||||
|
<DxGridDataColumn FieldName="@nameof(GenericAttribute.Id)" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="@nameof(GenericAttribute.KeyGroup)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="@nameof(GenericAttribute.KeyGroup)" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="@nameof(GenericAttribute.Key)" />
|
<DxGridDataColumn FieldName="@nameof(GenericAttribute.Key)" />
|
||||||
<DxGridDataColumn FieldName="@nameof(GenericAttribute.Value)" />
|
<DxGridDataColumn FieldName="@nameof(GenericAttribute.Value)" />
|
||||||
<DxGridDataColumn FieldName="@nameof(GenericAttribute.EntityId)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="@nameof(GenericAttribute.EntityId)" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="@nameof(GenericAttribute.StoreId)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="@nameof(GenericAttribute.StoreId)" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="@nameof(GenericAttribute.CreatedOrUpdatedDateUTC)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="@nameof(GenericAttribute.CreatedOrUpdatedDateUTC)" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||||
</Columns>
|
</Columns>
|
||||||
<ToolbarTemplate>
|
<ToolbarTemplate>
|
||||||
@if (IsMasterGrid)
|
@if (IsMasterGrid)
|
||||||
{
|
{
|
||||||
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
||||||
}
|
}
|
||||||
</ToolbarTemplate>
|
</ToolbarTemplate>
|
||||||
</GridGenericAttributeBase>
|
</GridGenericAttributeBase>
|
||||||
|
</GridContent>
|
||||||
|
</MgGridWithInfoPanel>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[Inject] public required DatabaseClient Database { get; set; }
|
[Inject] public required DatabaseClient Database { get; set; }
|
||||||
|
|
||||||
[Parameter] public AcObservableCollection<GenericAttributeDto>? GenericAttributes{ get; set; }
|
[Parameter] public AcObservableCollection<GenericAttributeDto>? GenericAttributes { get; set; }
|
||||||
|
|
||||||
//[Parameter] public object[]? ContextIds { get; set; }
|
//[Parameter] public object[]? ContextIds { get; set; }
|
||||||
[Parameter] public IId<int>? ParentDataItem { get; set; }
|
[Parameter] public IId<int>? ParentDataItem { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -13,62 +13,66 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||||
|
|
||||||
<GridPartnerBase @ref="Grid"
|
<MgGridWithInfoPanel ShowInfoPanel="@IsMasterGrid">
|
||||||
DataSource="Partners"
|
<GridContent>
|
||||||
AutoSaveLayoutName="GridPartner"
|
<GridPartnerBase @ref="Grid"
|
||||||
SignalRClient="FruitBankSignalRClient"
|
DataSource="Partners"
|
||||||
Logger="_logger"
|
AutoSaveLayoutName="GridPartner"
|
||||||
CssClass="@GridCss"
|
SignalRClient="FruitBankSignalRClient"
|
||||||
ValidationEnabled="false"
|
Logger="_logger"
|
||||||
ShowInfoPanel="true"
|
CssClass="@GridCss"
|
||||||
OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
ValidationEnabled="false"
|
||||||
<Columns>
|
ShowInfoPanel="true"
|
||||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
||||||
|
<Columns>
|
||||||
|
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="Name" />
|
<DxGridDataColumn FieldName="Name" />
|
||||||
<DxGridDataColumn FieldName="TaxId" />
|
<DxGridDataColumn FieldName="TaxId" />
|
||||||
<DxGridDataColumn FieldName="CertificationNumber" />
|
<DxGridDataColumn FieldName="CertificationNumber" />
|
||||||
<DxGridDataColumn FieldName="PostalCode" />
|
<DxGridDataColumn FieldName="PostalCode" />
|
||||||
<DxGridDataColumn FieldName="@nameof(Partner.Country)" />
|
<DxGridDataColumn FieldName="@nameof(Partner.Country)" />
|
||||||
<DxGridDataColumn FieldName="State" />
|
<DxGridDataColumn FieldName="State" />
|
||||||
<DxGridDataColumn FieldName="County" />
|
<DxGridDataColumn FieldName="County" />
|
||||||
<DxGridDataColumn FieldName="City" />
|
<DxGridDataColumn FieldName="City" />
|
||||||
<DxGridDataColumn FieldName="Street" />
|
<DxGridDataColumn FieldName="Street" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
|
||||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
|
||||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
|
||||||
</Columns>
|
|
||||||
<DetailRowTemplate>
|
|
||||||
@if (IsMasterGrid)
|
|
||||||
{
|
|
||||||
var partner = ((Partner)context.DataItem);
|
|
||||||
var shippingDocuments = partner?.ShippingDocuments ?? [];
|
|
||||||
|
|
||||||
<DxTabs>
|
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
||||||
<DxTabPage Text="Szállítólevelek">
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
||||||
@{
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||||
var observableShippingDocuments = new AcObservableCollection<ShippingDocument>(shippingDocuments);
|
</Columns>
|
||||||
<GridShippingDocument ShippingDocuments="@observableShippingDocuments" ParentDataItem="@partner" Partners="@Partners"></GridShippingDocument>
|
<DetailRowTemplate>
|
||||||
}
|
@if (IsMasterGrid)
|
||||||
</DxTabPage>
|
{
|
||||||
|
var partner = ((Partner)context.DataItem);
|
||||||
|
var shippingDocuments = partner?.ShippingDocuments ?? [];
|
||||||
|
|
||||||
<DxTabPage Text="Szállítmány tételek">
|
<DxTabs>
|
||||||
@{
|
<DxTabPage Text="Szállítólevelek">
|
||||||
var observableShippingItems = new AcObservableCollection<ShippingItem>(shippingDocuments.SelectMany(sd => sd.ShippingItems ?? []));
|
@{
|
||||||
<GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@partner" />
|
var observableShippingDocuments = new AcObservableCollection<ShippingDocument>(shippingDocuments);
|
||||||
}
|
<GridShippingDocument ShippingDocuments="@observableShippingDocuments" ParentDataItem="@partner" Partners="@Partners"></GridShippingDocument>
|
||||||
</DxTabPage>
|
}
|
||||||
</DxTabs>
|
</DxTabPage>
|
||||||
}
|
|
||||||
</DetailRowTemplate>
|
<DxTabPage Text="Szállítmány tételek">
|
||||||
<ToolbarTemplate>
|
@{
|
||||||
@if (IsMasterGrid)
|
var observableShippingItems = new AcObservableCollection<ShippingItem>(shippingDocuments.SelectMany(sd => sd.ShippingItems ?? []));
|
||||||
{
|
<GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@partner" />
|
||||||
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
}
|
||||||
}
|
</DxTabPage>
|
||||||
</ToolbarTemplate>
|
</DxTabs>
|
||||||
</GridPartnerBase>
|
}
|
||||||
|
</DetailRowTemplate>
|
||||||
|
<ToolbarTemplate>
|
||||||
|
@if (IsMasterGrid)
|
||||||
|
{
|
||||||
|
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
||||||
|
}
|
||||||
|
</ToolbarTemplate>
|
||||||
|
</GridPartnerBase>
|
||||||
|
</GridContent>
|
||||||
|
</MgGridWithInfoPanel>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
//[Inject] public required ObjectLock ObjectLock { get; set; }
|
//[Inject] public required ObjectLock ObjectLock { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -11,45 +11,47 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||||
|
|
||||||
<GridStockQuantityHistoryDtoBase @ref="Grid" ContextIds="ContextIds" ParentDataItem="ParentDataItem" DataSource="StockQuantityHistoryDtos"
|
<MgGridWithInfoPanel ShowInfoPanel="@IsMasterGrid">
|
||||||
AutoSaveLayoutName="GridStockQuantityHistoryDto" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
<GridContent>
|
||||||
CssClass="@GridCss" ValidationEnabled="false">
|
<GridStockQuantityHistoryDtoBase @ref="Grid" ContextIds="ContextIds" ParentDataItem="ParentDataItem" DataSource="StockQuantityHistoryDtos"
|
||||||
<Columns>
|
AutoSaveLayoutName="GridStockQuantityHistoryDto" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
||||||
<DxGridDataColumn FieldName="Id" Width="125" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
CssClass="@GridCss" ValidationEnabled="false">
|
||||||
|
<Columns>
|
||||||
|
<DxGridDataColumn FieldName="Id" Width="125" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="ProductId" ReadOnly="true" Visible="@IsMasterGrid">
|
<DxGridDataColumn FieldName="ProductId" ReadOnly="true" Visible="@IsMasterGrid">
|
||||||
<EditSettings>
|
<EditSettings>
|
||||||
<DxComboBoxSettings Data="ProductDtos"
|
<DxComboBoxSettings Data="ProductDtos"
|
||||||
ValueFieldName="Id"
|
ValueFieldName="Id"
|
||||||
TextFieldName="Name"
|
TextFieldName="Name"
|
||||||
DropDownBodyCssClass="dd-body-class"
|
DropDownBodyCssClass="dd-body-class"
|
||||||
ListRenderMode="ListRenderMode.Entire"
|
ListRenderMode="ListRenderMode.Entire"
|
||||||
SearchMode="ListSearchMode.AutoSearch"
|
SearchMode="ListSearchMode.AutoSearch"
|
||||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||||
</EditSettings>
|
</EditSettings>
|
||||||
</DxGridDataColumn>
|
</DxGridDataColumn>
|
||||||
<DxGridDataColumn FieldName="QuantityAdjustment" Width="135" Caption="Adj. Quantity" ReadOnly="true" />
|
<DxGridDataColumn FieldName="QuantityAdjustment" Width="135" Caption="Adj. Quantity" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="StockQuantity" Width="135" ReadOnly="true" />
|
<DxGridDataColumn FieldName="StockQuantity" Width="135" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="StockQuantityHistoryId" Width="135" Caption="SqhId" ReadOnly="true" Visible="false" />
|
<DxGridDataColumn FieldName="StockQuantityHistoryId" Width="135" Caption="SqhId" ReadOnly="true" Visible="false" />
|
||||||
<DxGridDataColumn FieldName="NetWeightAdjustment" Width="135" Caption="Adj. NetWeight(kg)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="NetWeightAdjustment" Width="135" Caption="Adj. NetWeight(kg)" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="NetWeight" Width="135" Caption="Net Weight(kg)" ReadOnly="true" />
|
<DxGridDataColumn FieldName="NetWeight" Width="135" Caption="Net Weight(kg)" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="Message" ReadOnly="true" />
|
<DxGridDataColumn FieldName="Message" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="IsInconsistent" Width="105" Caption="Inconsistent" ReadOnly="true" />
|
<DxGridDataColumn FieldName="IsInconsistent" Width="105" Caption="Inconsistent" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="CombinationId" Width="125" ReadOnly="true" Visible="false" />
|
<DxGridDataColumn FieldName="CombinationId" Width="125" ReadOnly="true" Visible="false" />
|
||||||
<DxGridDataColumn FieldName="WarehouseId" Width="125" ReadOnly="true" Visible="false" />
|
<DxGridDataColumn FieldName="WarehouseId" Width="125" ReadOnly="true" Visible="false" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="CreatedOnUtc" Width="150" Caption="Created" ReadOnly="true" DisplayFormat="g" />
|
<DxGridDataColumn FieldName="CreatedOnUtc" Width="150" Caption="Created" ReadOnly="true" DisplayFormat="g" />
|
||||||
</Columns>
|
</Columns>
|
||||||
<ToolbarTemplate>
|
<ToolbarTemplate>
|
||||||
@if (IsMasterGrid)
|
@if (IsMasterGrid)
|
||||||
{
|
{
|
||||||
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
||||||
}
|
}
|
||||||
</ToolbarTemplate>
|
</ToolbarTemplate>
|
||||||
@* <GroupSummary>
|
@* <GroupSummary>
|
||||||
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
||||||
FieldName="MeasuredQuantity"
|
FieldName="MeasuredQuantity"
|
||||||
FooterColumnName="Quantity" />
|
FooterColumnName="Quantity" />
|
||||||
|
|
@ -60,7 +62,9 @@
|
||||||
FieldName="MeasuredNetWeight"
|
FieldName="MeasuredNetWeight"
|
||||||
FooterColumnName="NetWeight" />
|
FooterColumnName="NetWeight" />
|
||||||
</GroupSummary> *@
|
</GroupSummary> *@
|
||||||
</GridStockQuantityHistoryDtoBase>
|
</GridStockQuantityHistoryDtoBase>
|
||||||
|
</GridContent>
|
||||||
|
</MgGridWithInfoPanel>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[Inject] public required DatabaseClient Database { get; set; }
|
[Inject] public required DatabaseClient Database { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,15 @@
|
||||||
@inject IJSRuntime JS
|
@inject IJSRuntime JS
|
||||||
|
|
||||||
<MgGridInfoPanel OnDataItemChanged="OnDataItemChangedAsync">
|
<MgGridInfoPanel OnDataItemChanged="OnDataItemChangedAsync">
|
||||||
@* <HeaderTemplate Context="dataItem">
|
@* <HeaderTemplate Context="ctx">
|
||||||
<div class="dxbl-grid-header-panel px-3 py-2 border-bottom d-flex align-items-center">
|
<div class="dxbl-grid-header-panel px-3 py-2 border-bottom d-flex align-items-center">
|
||||||
<span class="me-2">??</span>
|
<span class="me-2">??</span>
|
||||||
<span class="fw-semibold">Szállítólevél részletei</span>
|
<span class="fw-semibold">Szállítólevél részletei</span>
|
||||||
</div>
|
</div>
|
||||||
</HeaderTemplate> *@
|
</HeaderTemplate> *@
|
||||||
|
|
||||||
@* <BeforeColumnsTemplate Context="dataItem">
|
@* <BeforeColumnsTemplate Context="ctx">
|
||||||
@if (dataItem is ShippingDocument doc)
|
@if (ctx.DataItem is ShippingDocument doc)
|
||||||
{
|
{
|
||||||
<div class="alert alert-info mb-2 py-1 px-2 small">
|
<div class="alert alert-info mb-2 py-1 px-2 small">
|
||||||
<strong>Partner:</strong> @doc.Partner?.Name
|
<strong>Partner:</strong> @doc.Partner?.Name
|
||||||
|
|
@ -21,8 +21,8 @@
|
||||||
}
|
}
|
||||||
</BeforeColumnsTemplate> *@
|
</BeforeColumnsTemplate> *@
|
||||||
|
|
||||||
<AfterColumnsTemplate Context="dataItem">
|
<AfterColumnsTemplate Context="ctx">
|
||||||
@if (dataItem is ShippingDocument doc)
|
@if (ctx is { IsEditMode: false, DataItem: ShippingDocument doc })
|
||||||
{
|
{
|
||||||
<table class="table table-sm table-bordered table-striped" style="margin-top: 35px;">
|
<table class="table table-sm table-bordered table-striped" style="margin-top: 35px;">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
}
|
}
|
||||||
</AfterColumnsTemplate>
|
</AfterColumnsTemplate>
|
||||||
|
|
||||||
@* <FooterTemplate Context="dataItem">
|
@* <FooterTemplate Context="ctx">
|
||||||
<div class="p-2 border-top d-flex gap-2">
|
<div class="p-2 border-top d-flex gap-2">
|
||||||
<DxButton Text="Nyomtatás" IconCssClass="dx-icon dx-icon-print" RenderStyle="ButtonRenderStyle.Light" />
|
<DxButton Text="Nyomtatás" IconCssClass="dx-icon dx-icon-print" RenderStyle="ButtonRenderStyle.Light" />
|
||||||
<DxButton Text="Export" IconCssClass="dx-icon dx-icon-export" RenderStyle="ButtonRenderStyle.Light" />
|
<DxButton Text="Export" IconCssClass="dx-icon dx-icon-export" RenderStyle="ButtonRenderStyle.Light" />
|
||||||
|
|
|
||||||
|
|
@ -15,50 +15,54 @@
|
||||||
|
|
||||||
@* <GridShippingBase @ref="Grid" Data="Shippings" AutoSaveLayoutName="GridShipping"> *@
|
@* <GridShippingBase @ref="Grid" Data="Shippings" AutoSaveLayoutName="GridShipping"> *@
|
||||||
|
|
||||||
<GridShippingBase @ref="Grid" DataSource="Shippings" AutoSaveLayoutName="GridShipping" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
<MgGridWithInfoPanel ShowInfoPanel="@IsMasterGrid">
|
||||||
CssClass="@GridCss" ValidationEnabled="false"
|
<GridContent>
|
||||||
OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
<GridShippingBase @ref="Grid" DataSource="Shippings" AutoSaveLayoutName="GridShipping" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
||||||
<Columns>
|
CssClass="@GridCss" ValidationEnabled="false"
|
||||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
||||||
|
<Columns>
|
||||||
|
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="ShippingDate" />
|
<DxGridDataColumn FieldName="ShippingDate" />
|
||||||
<DxGridDataColumn FieldName="LicencePlate" />
|
<DxGridDataColumn FieldName="LicencePlate" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="IsAllMeasured" ReadOnly="true" />
|
<DxGridDataColumn FieldName="IsAllMeasured" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
||||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||||
</Columns>
|
</Columns>
|
||||||
<DetailRowTemplate>
|
<DetailRowTemplate>
|
||||||
@if (IsMasterGrid)
|
@if (IsMasterGrid)
|
||||||
{
|
{
|
||||||
var shipping = ((Shipping)context.DataItem);
|
var shipping = ((Shipping)context.DataItem);
|
||||||
var shippingDocuments = shipping?.ShippingDocuments ?? [];
|
var shippingDocuments = shipping?.ShippingDocuments ?? [];
|
||||||
|
|
||||||
<DxTabs ActiveTabIndexChanged="(i) => OnActiveTabChanged(i)">
|
<DxTabs ActiveTabIndexChanged="(i) => OnActiveTabChanged(i)">
|
||||||
<DxTabPage Text="Szállítólevelek">
|
<DxTabPage Text="Szállítólevelek">
|
||||||
@{
|
@{
|
||||||
var observableShippingDocuments = new AcObservableCollection<ShippingDocument>(shippingDocuments);
|
var observableShippingDocuments = new AcObservableCollection<ShippingDocument>(shippingDocuments);
|
||||||
<GridShippingDocument ShippingDocuments="@observableShippingDocuments" ParentDataItem="@shipping" Partners="@Partners"></GridShippingDocument>
|
<GridShippingDocument ShippingDocuments="@observableShippingDocuments" ParentDataItem="@shipping" Partners="@Partners"></GridShippingDocument>
|
||||||
}
|
}
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
|
|
||||||
<DxTabPage Text="Szállítmány tételek">
|
<DxTabPage Text="Szállítmány tételek">
|
||||||
@{
|
@{
|
||||||
var observableShippingItems = new AcObservableCollection<ShippingItem>(shippingDocuments.SelectMany(sd => sd.ShippingItems ?? []));
|
var observableShippingItems = new AcObservableCollection<ShippingItem>(shippingDocuments.SelectMany(sd => sd.ShippingItems ?? []));
|
||||||
<GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@shipping" />
|
<GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@shipping" />
|
||||||
}
|
}
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
</DxTabs>
|
</DxTabs>
|
||||||
}
|
}
|
||||||
</DetailRowTemplate>
|
</DetailRowTemplate>
|
||||||
<ToolbarTemplate>
|
<ToolbarTemplate>
|
||||||
@if (IsMasterGrid)
|
@if (IsMasterGrid)
|
||||||
{
|
{
|
||||||
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
||||||
}
|
}
|
||||||
</ToolbarTemplate>
|
</ToolbarTemplate>
|
||||||
</GridShippingBase>
|
</GridShippingBase>
|
||||||
|
</GridContent>
|
||||||
|
</MgGridWithInfoPanel>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
//[Inject] public required ObjectLock ObjectLock { get; set; }
|
//[Inject] public required ObjectLock ObjectLock { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -13,43 +13,47 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||||
|
|
||||||
<GridStockTakingItemBase @ref="Grid" AutoSaveLayoutName="GridStockTakingItem" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
<MgGridWithInfoPanel ShowInfoPanel="@IsMasterGrid">
|
||||||
CssClass="@GridCss" ValidationEnabled="false" OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
<GridContent>
|
||||||
<Columns>
|
<GridStockTakingItemBase @ref="Grid" AutoSaveLayoutName="GridStockTakingItem" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
||||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
CssClass="@GridCss" ValidationEnabled="false" OnGridFocusedRowChanged="Grid_FocusedRowChanged">
|
||||||
|
<Columns>
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.StockTakingId)" TextAlignment="GridTextAlignment.Left" Caption="Leltár időpontja">
|
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
<CellDisplayTemplate>
|
|
||||||
<span>@(((StockTakingItem)context.DataItem)?.StockTaking?.StartDateTime.ToString("g") ?? "")</span>
|
|
||||||
</CellDisplayTemplate>
|
|
||||||
</DxGridDataColumn>
|
|
||||||
<DxGridDataColumn FieldName="Product.Name" />
|
|
||||||
<DxGridDataColumn FieldName="OriginalStockQuantity" />
|
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.InProcessOrdersQuantity)" />
|
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.TotalOriginalQuantity)" />
|
|
||||||
<DxGridDataColumn FieldName="MeasuredStockQuantity" />
|
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="OriginalNetWeight" />
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.StockTakingId)" TextAlignment="GridTextAlignment.Left" Caption="Leltár időpontja">
|
||||||
<DxGridDataColumn FieldName="MeasuredNetWeight" />
|
<CellDisplayTemplate>
|
||||||
|
<span>@(((StockTakingItem)context.DataItem)?.StockTaking?.StartDateTime.ToString("g") ?? "")</span>
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.QuantityDiff)" />
|
</CellDisplayTemplate>
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.NetWeightDiff)" />
|
</DxGridDataColumn>
|
||||||
|
<DxGridDataColumn FieldName="Product.Name" />
|
||||||
|
<DxGridDataColumn FieldName="OriginalStockQuantity" />
|
||||||
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.InProcessOrdersQuantity)" />
|
||||||
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.TotalOriginalQuantity)" />
|
||||||
|
<DxGridDataColumn FieldName="MeasuredStockQuantity" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.IsMeasurable)" />
|
<DxGridDataColumn FieldName="OriginalNetWeight" />
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.IsMeasured)" />
|
<DxGridDataColumn FieldName="MeasuredNetWeight" />
|
||||||
<DxGridDataColumn FieldName="@nameof(StockTakingItem.IsInvalid)" />
|
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="Created" ReadOnly="true" Visible="false" DisplayFormat="g" />
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.QuantityDiff)" />
|
||||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true" DisplayFormat="g" />
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.NetWeightDiff)" />
|
||||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
|
||||||
</Columns>
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.IsMeasurable)" />
|
||||||
<ToolbarTemplate>
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.IsMeasured)" />
|
||||||
@if (IsMasterGrid)
|
<DxGridDataColumn FieldName="@nameof(StockTakingItem.IsInvalid)" />
|
||||||
{
|
|
||||||
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
<DxGridDataColumn FieldName="Created" ReadOnly="true" Visible="false" DisplayFormat="g" />
|
||||||
}
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" DisplayFormat="g" />
|
||||||
</ToolbarTemplate>
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||||
</GridStockTakingItemBase>
|
</Columns>
|
||||||
|
<ToolbarTemplate>
|
||||||
|
@if (IsMasterGrid)
|
||||||
|
{
|
||||||
|
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
||||||
|
}
|
||||||
|
</ToolbarTemplate>
|
||||||
|
</GridStockTakingItemBase>
|
||||||
|
</GridContent>
|
||||||
|
</MgGridWithInfoPanel>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,82 +1,82 @@
|
||||||
html, body {
|
html, body {
|
||||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
a, .btn-link {
|
a, .btn-link {
|
||||||
color: #006bb7;
|
color: #006bb7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-primary {
|
.btn-primary {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #1b6ec2;
|
background-color: #1b6ec2;
|
||||||
border-color: #1861ac;
|
border-color: #1861ac;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
|
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
|
||||||
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
|
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
padding-top: 1.1rem;
|
padding-top: 1.1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1:focus {
|
h1:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.valid.modified:not([type=checkbox]) {
|
.valid.modified:not([type=checkbox]) {
|
||||||
outline: 1px solid #26b050;
|
outline: 1px solid #26b050;
|
||||||
}
|
}
|
||||||
|
|
||||||
.invalid {
|
.invalid {
|
||||||
outline: 1px solid #e50000;
|
outline: 1px solid #e50000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.validation-message {
|
.validation-message {
|
||||||
color: #e50000;
|
color: #e50000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blazor-error-boundary {
|
.blazor-error-boundary {
|
||||||
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA9NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDg2IDYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA9NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDg2IDYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
||||||
padding: 1rem 1rem 1rem 3.7rem;
|
padding: 1rem 1rem 1rem 3.7rem;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blazor-error-boundary::after {
|
.blazor-error-boundary::after {
|
||||||
content: "An error has occurred."
|
content: "An error has occurred."
|
||||||
}
|
}
|
||||||
|
|
||||||
.darker-border-checkbox.form-check-input {
|
.darker-border-checkbox.form-check-input {
|
||||||
border-color: #929292;
|
border-color: #929292;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
--icon-width: 1.25rem;
|
--icon-width: 1.25rem;
|
||||||
--icon-height: 1.25rem;
|
--icon-height: 1.25rem;
|
||||||
--icon-home-mask-image: url("images/home-fluent.svg");
|
--icon-home-mask-image: url("images/home-fluent.svg");
|
||||||
--icon-weather-mask-image: url("images/weather-fluent.svg");
|
--icon-weather-mask-image: url("images/weather-fluent.svg");
|
||||||
--icon-counter-mask-image: url("images/counter-fluent.svg");
|
--icon-counter-mask-image: url("images/counter-fluent.svg");
|
||||||
--icon-ok_green-mask-image: url("images/ok_green_lt.svg");
|
--icon-ok_green-mask-image: url("images/ok_green_lt.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
width: var(--icon-width);
|
width: var(--icon-width);
|
||||||
height: var(--icon-height);
|
height: var(--icon-height);
|
||||||
background-color: currentcolor;
|
background-color: currentcolor;
|
||||||
mask-position: center center;
|
mask-position: center center;
|
||||||
-webkit-mask-repeat: no-repeat;
|
-webkit-mask-repeat: no-repeat;
|
||||||
mask-repeat: no-repeat;
|
mask-repeat: no-repeat;
|
||||||
-webkit-mask-image: var(--icon-mask-image);
|
-webkit-mask-image: var(--icon-mask-image);
|
||||||
mask-image: var(--icon-mask-image);
|
mask-image: var(--icon-mask-image);
|
||||||
}
|
}
|
||||||
|
|
||||||
.measuring-form-layout {
|
.measuring-form-layout {
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
background-color: lightgrey;
|
background-color: lightgrey;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dd-body-class,
|
.dd-body-class,
|
||||||
|
|
@ -92,11 +92,11 @@ h1:focus {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.hide-toolbar .dxbl-grid-toolbar-container {
|
.hide-toolbar .dxbl-grid-toolbar-container {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hideDetailButton .dxbl-grid-expand-button-cell .dxbl-grid-expand-button {
|
.hideDetailButton .dxbl-grid-expand-button-cell .dxbl-grid-expand-button {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-bold span {
|
.header-bold span {
|
||||||
|
|
@ -110,9 +110,10 @@ h1:focus {
|
||||||
background-color: #F7F7F7 !important;
|
background-color: #F7F7F7 !important;
|
||||||
color: #161616;
|
color: #161616;
|
||||||
}
|
}
|
||||||
/* Fluent Themes */
|
|
||||||
/*.alt-item {
|
/* DevExpress Fluent Theme - alternating row colors */
|
||||||
--dxbl-grid-row-bg: var(--DS-color-surface-neutral-subdued-rest);
|
/*.alt-item > td:not(.dxbl-grid-empty-cell):not(.dxbl-grid-indent-cell) {
|
||||||
|
background-color: var(--DS-color-surface-neutral-subdued-rest) !important;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
/*endregion: DSGrids*/
|
/*endregion: DSGrids*/
|
||||||
|
|
@ -120,33 +121,33 @@ h1:focus {
|
||||||
|
|
||||||
|
|
||||||
.order-notification-toast {
|
.order-notification-toast {
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-notification-toast .message {
|
.order-notification-toast .message {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-notification-toast .order-info {
|
.order-notification-toast .order-info {
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-notification-toast .label {
|
.order-notification-toast .label {
|
||||||
color: #666;
|
color: #666;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-notification-toast .order-number {
|
.order-notification-toast .order-number {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #0066cc;
|
color: #0066cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-notification-toast .date {
|
.order-notification-toast .date {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
/* ========================================
|
/* ========================================
|
||||||
Grid Toolbar Icons - SVG based
|
Grid Toolbar Icons - SVG based
|
||||||
======================================== */
|
======================================== */
|
||||||
|
|
@ -164,108 +165,108 @@ h1:focus {
|
||||||
.grid-export-xlsx,
|
.grid-export-xlsx,
|
||||||
.grid-export-pdf,
|
.grid-export-pdf,
|
||||||
.grid-refresh {
|
.grid-refresh {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-new-row::before,
|
.grid-new-row::before,
|
||||||
.grid-edit-row::before,
|
.grid-edit-row::before,
|
||||||
.grid-delete-row::before,
|
.grid-delete-row::before,
|
||||||
.grid-save::before,
|
.grid-save::before,
|
||||||
.grid-cancel::before,
|
.grid-cancel::before,
|
||||||
.grid-chevron-up::before,
|
.grid-chevron-up::before,
|
||||||
.grid-chevron-down::before,
|
.grid-chevron-down::before,
|
||||||
.grid-column-chooser::before,
|
.grid-column-chooser::before,
|
||||||
.grid-export::before,
|
.grid-export::before,
|
||||||
.grid-export-xlsx::before,
|
.grid-export-xlsx::before,
|
||||||
.grid-export-pdf::before,
|
.grid-export-pdf::before,
|
||||||
.grid-refresh::before {
|
.grid-refresh::before {
|
||||||
content: "";
|
content: "";
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 1.25rem;
|
width: 1.25rem;
|
||||||
height: 1.25rem;
|
height: 1.25rem;
|
||||||
margin-right: 0.25rem;
|
margin-right: 0.25rem;
|
||||||
background-color: currentColor;
|
background-color: currentColor;
|
||||||
mask-size: contain;
|
mask-size: contain;
|
||||||
mask-repeat: no-repeat;
|
mask-repeat: no-repeat;
|
||||||
mask-position: center;
|
mask-position: center;
|
||||||
-webkit-mask-size: contain;
|
-webkit-mask-size: contain;
|
||||||
-webkit-mask-repeat: no-repeat;
|
-webkit-mask-repeat: no-repeat;
|
||||||
-webkit-mask-position: center;
|
-webkit-mask-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Plus icon (New) */
|
/* Plus icon (New) */
|
||||||
.grid-new-row::before {
|
.grid-new-row::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Edit/Pencil icon */
|
/* Edit/Pencil icon */
|
||||||
.grid-edit-row::before {
|
.grid-edit-row::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Trash/Delete icon */
|
/* Trash/Delete icon */
|
||||||
.grid-delete-row::before {
|
.grid-delete-row::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save/Check icon */
|
/* Save/Check icon */
|
||||||
.grid-save::before {
|
.grid-save::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'/%3E%3Cpolyline points='17 21 17 13 7 13 7 21'/%3E%3Cpolyline points='7 3 7 8 15 8'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'/%3E%3Cpolyline points='17 21 17 13 7 13 7 21'/%3E%3Cpolyline points='7 3 7 8 15 8'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'/%3E%3Cpolyline points='17 21 17 13 7 13 7 21'/%3E%3Cpolyline points='7 3 7 8 15 8'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'/%3E%3Cpolyline points='17 21 17 13 7 13 7 21'/%3E%3Cpolyline points='7 3 7 8 15 8'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Cancel/Close icon */
|
/* Cancel/Close icon */
|
||||||
.grid-cancel::before {
|
.grid-cancel::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Chevron Up icon */
|
/* Chevron Up icon */
|
||||||
.grid-chevron-up::before {
|
.grid-chevron-up::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='18 15 12 9 6 15'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='18 15 12 9 6 15'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='18 15 12 9 6 15'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='18 15 12 9 6 15'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Chevron Down icon */
|
/* Chevron Down icon */
|
||||||
.grid-chevron-down::before {
|
.grid-chevron-down::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Column Chooser icon */
|
/* Column Chooser icon */
|
||||||
.grid-column-chooser::before {
|
.grid-column-chooser::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='12' y1='3' x2='12' y2='21'/%3E%3Cline x1='3' y1='9' x2='21' y2='9'/%3E%3Cline x1='3' y1='15' x2='21' y2='15'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='12' y1='3' x2='12' y2='21'/%3E%3Cline x1='3' y1='9' x2='21' y2='9'/%3E%3Cline x1='3' y1='15' x2='21' y2='15'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='12' y1='3' x2='12' y2='21'/%3E%3Cline x1='3' y1='9' x2='21' y2='9'/%3E%3Cline x1='3' y1='15' x2='21' y2='15'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='12' y1='3' x2='12' y2='21'/%3E%3Cline x1='3' y1='9' x2='21' y2='9'/%3E%3Cline x1='3' y1='15' x2='21' y2='15'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Export icon */
|
/* Export icon */
|
||||||
.grid-export::before {
|
.grid-export::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Export XLSX icon */
|
/* Export XLSX icon */
|
||||||
.grid-export-xlsx::before {
|
.grid-export-xlsx::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Export PDF icon */
|
/* Export PDF icon */
|
||||||
.grid-export-pdf::before {
|
.grid-export-pdf::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cpath d='M9 15h6'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cpath d='M9 15h6'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cpath d='M9 15h6'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cpath d='M9 15h6'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Refresh icon */
|
/* Refresh icon */
|
||||||
.grid-refresh::before {
|
.grid-refresh::before {
|
||||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='23 4 23 10 17 10'/%3E%3Cpolyline points='1 20 1 14 7 14'/%3E%3Cpath d='M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15'/%3E%3C/svg%3E");
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='23 4 23 10 17 10'/%3E%3Cpolyline points='1 20 1 14 7 14'/%3E%3Cpath d='M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15'/%3E%3C/svg%3E");
|
||||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='23 4 23 10 17 10'/%3E%3Cpolyline points='1 20 1 14 7 14'/%3E%3Cpath d='M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15'/%3E%3C/svg%3E");
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='23 4 23 10 17 10'/%3E%3Cpolyline points='1 20 1 14 7 14'/%3E%3Cpath d='M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ========================================
|
/* ========================================
|
||||||
MgGrid Splitter with InfoPanel
|
MgGrid Splitter with InfoPanel
|
||||||
|
|
@ -274,10 +275,10 @@ h1:focus {
|
||||||
|
|
||||||
/* Splitter - allow natural height, page scroll is enabled */
|
/* Splitter - allow natural height, page scroll is enabled */
|
||||||
.mg-grid-splitter {
|
.mg-grid-splitter {
|
||||||
/* No max-height - allow page to scroll naturally */
|
/* No max-height - allow page to scroll naturally */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* InfoPanel pane - allow overflow for transform to work */
|
/* InfoPanel pane - allow overflow for transform to work */
|
||||||
.mg-info-panel-pane {
|
.mg-info-panel-pane {
|
||||||
overflow: visible !important;
|
overflow: visible !important;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue