Compare commits
2 Commits
c5ca9f0048
...
789066a214
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
789066a214 | ||
|
|
964d508630 |
@@ -75,15 +75,15 @@ else if (!string.IsNullOrWhiteSpace(infoMessage))
|
|||||||
}
|
}
|
||||||
else if (items.Count == 0)
|
else if (items.Count == 0)
|
||||||
{
|
{
|
||||||
<p>Keine Einträge vorhanden.</p>
|
<p>Keine Einträge vorhanden.</p>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<div class="band-editor">
|
<div class="band-editor">
|
||||||
<div class="band-controls">
|
<div class="band-controls">
|
||||||
<DxButton Text="Band hinzufügen" Click="AddBand" />
|
<DxButton Text="Band hinzufügen" Click="AddBand" />
|
||||||
<DxButton Text="Layout speichern" Click="SaveLayoutAsync" Enabled="@CanSaveBandLayout" />
|
<DxButton Text="Layout speichern" Click="SaveLayoutAsync" Enabled="@CanSaveBandLayout" />
|
||||||
<DxButton Text="Band-Layout zurücksetzen" Click="ResetBandLayoutAsync" />
|
<DxButton Text="Layout zurücksetzen" Click="ResetLayoutAsync" />
|
||||||
</div>
|
</div>
|
||||||
@foreach (var band in bandLayout.Bands)
|
@foreach (var band in bandLayout.Bands)
|
||||||
{
|
{
|
||||||
@@ -211,8 +211,8 @@ else
|
|||||||
new() { FieldName = nameof(CatalogReadDto.CatString), Caption = "String", FilterType = ColumnFilterType.Text },
|
new() { FieldName = nameof(CatalogReadDto.CatString), Caption = "String", FilterType = ColumnFilterType.Text },
|
||||||
new() { FieldName = nameof(CatalogReadDto.AddedWho), Caption = "Angelegt von", ReadOnly = true, FilterType = ColumnFilterType.Text },
|
new() { FieldName = nameof(CatalogReadDto.AddedWho), Caption = "Angelegt von", ReadOnly = true, FilterType = ColumnFilterType.Text },
|
||||||
new() { FieldName = nameof(CatalogReadDto.AddedWhen), Caption = "Angelegt am", ReadOnly = true, FilterType = ColumnFilterType.Date },
|
new() { FieldName = nameof(CatalogReadDto.AddedWhen), Caption = "Angelegt am", ReadOnly = true, FilterType = ColumnFilterType.Date },
|
||||||
new() { FieldName = nameof(CatalogReadDto.ChangedWho), Caption = "Geändert von", ReadOnly = true, FilterType = ColumnFilterType.Text },
|
new() { FieldName = nameof(CatalogReadDto.ChangedWho), Caption = "Geändert von", ReadOnly = true, FilterType = ColumnFilterType.Text },
|
||||||
new() { FieldName = nameof(CatalogReadDto.ChangedWhen), Caption = "Geändert am", ReadOnly = true, FilterType = ColumnFilterType.Date }
|
new() { FieldName = nameof(CatalogReadDto.ChangedWhen), Caption = "Geändert am", ReadOnly = true, FilterType = ColumnFilterType.Date }
|
||||||
};
|
};
|
||||||
|
|
||||||
private readonly List<ProcedureOption> procedureOptions = new()
|
private readonly List<ProcedureOption> procedureOptions = new()
|
||||||
@@ -434,7 +434,7 @@ else
|
|||||||
if (editModel.UpdateProcedure == 0 &&
|
if (editModel.UpdateProcedure == 0 &&
|
||||||
!string.Equals(editModel.CatTitle, editModel.OriginalCatTitle, StringComparison.OrdinalIgnoreCase))
|
!string.Equals(editModel.CatTitle, editModel.OriginalCatTitle, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
AddValidationError(editModel, nameof(CatalogEditModel.CatTitle), "Titel kann nicht geändert werden.");
|
AddValidationError(editModel, nameof(CatalogEditModel.CatTitle), "Titel kann nicht geändert werden.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -453,12 +453,12 @@ else
|
|||||||
var deleted = await Api.DeleteAsync(item.Guid);
|
var deleted = await Api.DeleteAsync(item.Guid);
|
||||||
if (!deleted.Success)
|
if (!deleted.Success)
|
||||||
{
|
{
|
||||||
errorMessage = deleted.Error ?? "Löschen fehlgeschlagen.";
|
errorMessage = deleted.Error ?? "Löschen fehlgeschlagen.";
|
||||||
e.Cancel = true;
|
e.Cancel = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
infoMessage = "Katalog gelöscht.";
|
infoMessage = "Katalog gelöscht.";
|
||||||
await LoadCatalogs();
|
await LoadCatalogs();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -515,6 +515,7 @@ else
|
|||||||
|
|
||||||
var layout = gridRef.SaveLayout();
|
var layout = gridRef.SaveLayout();
|
||||||
bandLayout.GridLayout = layout;
|
bandLayout.GridLayout = layout;
|
||||||
|
bandLayout.SizeMode = _sizeMode;
|
||||||
|
|
||||||
var orderedColumns = layout.Columns
|
var orderedColumns = layout.Columns
|
||||||
.Where(column => !string.IsNullOrWhiteSpace(column.FieldName))
|
.Where(column => !string.IsNullOrWhiteSpace(column.FieldName))
|
||||||
@@ -552,10 +553,11 @@ else
|
|||||||
|
|
||||||
columnBandAssignments = BuildAssignmentsFromLayout(bandLayout);
|
columnBandAssignments = BuildAssignmentsFromLayout(bandLayout);
|
||||||
ApplyColumnLayoutFromStorage();
|
ApplyColumnLayoutFromStorage();
|
||||||
|
_sizeMode = bandLayout.SizeMode;
|
||||||
UpdateBandOptions();
|
UpdateBandOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ResetBandLayoutAsync()
|
private async Task ResetLayoutAsync()
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(layoutUser))
|
if (string.IsNullOrWhiteSpace(layoutUser))
|
||||||
{
|
{
|
||||||
@@ -563,10 +565,23 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
await LayoutApi.DeleteAsync(LayoutType, LayoutKey, layoutUser);
|
await LayoutApi.DeleteAsync(LayoutType, LayoutKey, layoutUser);
|
||||||
|
|
||||||
bandLayout = new BandLayout();
|
bandLayout = new BandLayout();
|
||||||
columnBandAssignments.Clear();
|
columnBandAssignments.Clear();
|
||||||
UpdateBandOptions();
|
UpdateBandOptions();
|
||||||
infoMessage = "Band-Layout zurückgesetzt.";
|
|
||||||
|
foreach (var column in columnDefinitions)
|
||||||
|
column.Width = null;
|
||||||
|
columnLookup = columnDefinitions.ToDictionary(c => c.FieldName, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
|
_sizeMode = DevExpress.Blazor.SizeMode.Medium;
|
||||||
|
|
||||||
|
if (gridRef != null)
|
||||||
|
gridRef.LoadLayout(new GridPersistentLayout());
|
||||||
|
gridLayoutApplied = false;
|
||||||
|
|
||||||
|
infoMessage = "Layout zur\u00fcckgesetzt.";
|
||||||
|
errorMessage = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ApplyColumnLayoutFromStorage()
|
private void ApplyColumnLayoutFromStorage()
|
||||||
@@ -754,6 +769,7 @@ else
|
|||||||
public List<string> ColumnOrder { get; set; } = new();
|
public List<string> ColumnOrder { get; set; } = new();
|
||||||
public Dictionary<string, string?> ColumnWidths { get; set; } = new(StringComparer.OrdinalIgnoreCase);
|
public Dictionary<string, string?> ColumnWidths { get; set; } = new(StringComparer.OrdinalIgnoreCase);
|
||||||
public GridPersistentLayout? GridLayout { get; set; }
|
public GridPersistentLayout? GridLayout { get; set; }
|
||||||
|
public DevExpress.Blazor.SizeMode SizeMode { get; set; } = DevExpress.Blazor.SizeMode.Medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
private sealed class BandDefinition
|
private sealed class BandDefinition
|
||||||
|
|||||||
@@ -83,12 +83,12 @@ else if (!string.IsNullOrWhiteSpace(infoMessage))
|
|||||||
}
|
}
|
||||||
else if (items.Count == 0)
|
else if (items.Count == 0)
|
||||||
{
|
{
|
||||||
<p>Keine Einträge vorhanden.</p>
|
<p>Keine Einträge vorhanden.</p>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<div class="mb-3 page-size-selector">
|
<div class="mb-3 page-size-selector">
|
||||||
<span class="page-size-label">Datensätze je Seite:</span>
|
<span class="page-size-label">Datensätze je Seite:</span>
|
||||||
<DxComboBox Data="@pageSizeOptions"
|
<DxComboBox Data="@pageSizeOptions"
|
||||||
TData="PageSizeOption"
|
TData="PageSizeOption"
|
||||||
TValue="int?"
|
TValue="int?"
|
||||||
@@ -101,9 +101,9 @@ else
|
|||||||
|
|
||||||
<div class="band-editor">
|
<div class="band-editor">
|
||||||
<div class="band-controls">
|
<div class="band-controls">
|
||||||
<DxButton Text="Band hinzufügen" Click="AddBand" />
|
<DxButton Text="Band hinzufügen" Click="AddBand" />
|
||||||
<DxButton Text="Layout speichern" Click="SaveLayoutAsync" Enabled="@CanSaveBandLayout" />
|
<DxButton Text="Layout speichern" Click="SaveLayoutAsync" Enabled="@CanSaveBandLayout" />
|
||||||
<DxButton Text="Band-Layout zurücksetzen" Click="ResetBandLayoutAsync" />
|
<DxButton Text="Layout zurücksetzen" Click="ResetLayoutAsync" />
|
||||||
</div>
|
</div>
|
||||||
@foreach (var band in bandLayout.Bands)
|
@foreach (var band in bandLayout.Bands)
|
||||||
{
|
{
|
||||||
@@ -363,6 +363,7 @@ else
|
|||||||
|
|
||||||
columnBandAssignments = BuildAssignmentsFromLayout(bandLayout);
|
columnBandAssignments = BuildAssignmentsFromLayout(bandLayout);
|
||||||
ApplyColumnLayoutFromStorage();
|
ApplyColumnLayoutFromStorage();
|
||||||
|
_sizeMode = bandLayout.SizeMode;
|
||||||
UpdateBandOptions();
|
UpdateBandOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,6 +404,7 @@ else
|
|||||||
|
|
||||||
var layout = gridRef.SaveLayout();
|
var layout = gridRef.SaveLayout();
|
||||||
bandLayout.GridLayout = layout;
|
bandLayout.GridLayout = layout;
|
||||||
|
bandLayout.SizeMode = _sizeMode;
|
||||||
|
|
||||||
var orderedColumns = layout.Columns
|
var orderedColumns = layout.Columns
|
||||||
.Where(column => !string.IsNullOrWhiteSpace(column.FieldName))
|
.Where(column => !string.IsNullOrWhiteSpace(column.FieldName))
|
||||||
@@ -416,9 +418,11 @@ else
|
|||||||
bandLayout.ColumnWidths = orderedColumns
|
bandLayout.ColumnWidths = orderedColumns
|
||||||
.Where(column => !string.IsNullOrWhiteSpace(column.Width))
|
.Where(column => !string.IsNullOrWhiteSpace(column.Width))
|
||||||
.ToDictionary(column => column.FieldName, column => column.Width, StringComparer.OrdinalIgnoreCase);
|
.ToDictionary(column => column.FieldName, column => column.Width, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
|
bandLayout.SizeMode = _sizeMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ResetBandLayoutAsync()
|
private async Task ResetLayoutAsync()
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(layoutUser))
|
if (string.IsNullOrWhiteSpace(layoutUser))
|
||||||
{
|
{
|
||||||
@@ -426,10 +430,23 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
await LayoutApi.DeleteAsync(LayoutType, LayoutKey, layoutUser);
|
await LayoutApi.DeleteAsync(LayoutType, LayoutKey, layoutUser);
|
||||||
|
|
||||||
bandLayout = new BandLayout();
|
bandLayout = new BandLayout();
|
||||||
columnBandAssignments.Clear();
|
columnBandAssignments.Clear();
|
||||||
UpdateBandOptions();
|
UpdateBandOptions();
|
||||||
infoMessage = "Band-Layout zurückgesetzt.";
|
|
||||||
|
foreach (var column in columnDefinitions)
|
||||||
|
column.Width = null;
|
||||||
|
columnLookup = columnDefinitions.ToDictionary(c => c.FieldName, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
|
_sizeMode = DevExpress.Blazor.SizeMode.Medium;
|
||||||
|
|
||||||
|
if (gridRef != null)
|
||||||
|
gridRef.LoadLayout(new GridPersistentLayout());
|
||||||
|
gridLayoutApplied = false;
|
||||||
|
|
||||||
|
infoMessage = "Layout zur\u00fcckgesetzt.";
|
||||||
|
errorMessage = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ApplyColumnLayoutFromStorage()
|
private void ApplyColumnLayoutFromStorage()
|
||||||
@@ -690,7 +707,7 @@ else
|
|||||||
var editModel = (MassDataEditModel)e.EditModel;
|
var editModel = (MassDataEditModel)e.EditModel;
|
||||||
if (!decimal.TryParse(editModel.AmountText, out var amount))
|
if (!decimal.TryParse(editModel.AmountText, out var amount))
|
||||||
{
|
{
|
||||||
AddValidationError(editModel, nameof(MassDataEditModel.AmountText), "Amount ist ungültig.");
|
AddValidationError(editModel, nameof(MassDataEditModel.AmountText), "Amount ist ungültig.");
|
||||||
e.Cancel = true;
|
e.Cancel = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -743,7 +760,7 @@ else
|
|||||||
private Task OnDataItemDeleting(GridDataItemDeletingEventArgs e)
|
private Task OnDataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||||
{
|
{
|
||||||
errorMessage = null;
|
errorMessage = null;
|
||||||
infoMessage = "Löschen ist aktuell noch nicht verfügbar.";
|
infoMessage = "Löschen ist aktuell noch nicht verfügbar.";
|
||||||
e.Cancel = true;
|
e.Cancel = true;
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@@ -764,6 +781,7 @@ else
|
|||||||
public List<string> ColumnOrder { get; set; } = new();
|
public List<string> ColumnOrder { get; set; } = new();
|
||||||
public Dictionary<string, string?> ColumnWidths { get; set; } = new(StringComparer.OrdinalIgnoreCase);
|
public Dictionary<string, string?> ColumnWidths { get; set; } = new(StringComparer.OrdinalIgnoreCase);
|
||||||
public GridPersistentLayout? GridLayout { get; set; }
|
public GridPersistentLayout? GridLayout { get; set; }
|
||||||
|
public DevExpress.Blazor.SizeMode SizeMode { get; set; } = DevExpress.Blazor.SizeMode.Medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
private sealed class BandDefinition
|
private sealed class BandDefinition
|
||||||
|
|||||||
Reference in New Issue
Block a user