|
34 | 34 | } |
35 | 35 |
|
36 | 36 | <RadzenSplitButton Text="Columns" Icon="view_column" Variant="Radzen.Variant.Outlined" Size="ButtonSize.Small" |
37 | | - Click="@(args => { })" Style="margin-top: auto;"> |
| 37 | + Click="@OnColumnMenuClick" Style="margin-top: auto;"> |
38 | 38 | <ChildContent> |
| 39 | + <RadzenSplitButtonItem Text="Select All" Value="__SELECT_ALL__" Icon="check_box" /> |
| 40 | + <RadzenSplitButtonItem Text="Select None" Value="__SELECT_NONE__" Icon="check_box_outline_blank" /> |
39 | 41 | @foreach (var lang in Languages) |
40 | 42 | { |
41 | 43 | var langCode = lang; |
|
84 | 86 | AllowFiltering="false" |
85 | 87 | AllowSorting="true" |
86 | 88 | AllowPaging="true" |
| 89 | + AllowColumnResize="true" |
87 | 90 | PageSize="50" |
88 | 91 | PageSizeOptions="@(new int[] { 25, 50, 100, 200 })" |
89 | 92 | PagerHorizontalAlign="HorizontalAlign.Right" |
|
93 | 96 | AllowRowSelectOnRowClick="false" |
94 | 97 | RowClick="@OnRowClick" |
95 | 98 | EditMode="Radzen.DataGridEditMode.Single" |
| 99 | + class="translation-grid" |
96 | 100 | Style="height: calc(100vh - 320px);" |
97 | 101 | RowStyle="cursor: pointer;"> |
98 | 102 |
|
|
148 | 152 | </RadzenDataGridColumn> |
149 | 153 |
|
150 | 154 | @* Key name *@ |
151 | | - <RadzenDataGridColumn TItem="TranslationGridRow" Property="KeyName" Title="Key" Width="250px" Frozen="true"> |
| 155 | + <RadzenDataGridColumn TItem="TranslationGridRow" Property="KeyName" Title="Key" Width="250px" Frozen="true" Resizable="true"> |
152 | 156 | <Template Context="row"> |
153 | 157 | @{ |
154 | 158 | var keyIssues = GetKeyValidationIssues(row.KeyName); |
|
196 | 200 | @foreach (var lang in VisibleLanguages) |
197 | 201 | { |
198 | 202 | var langCode = lang; |
199 | | - <RadzenDataGridColumn TItem="TranslationGridRow" Title="@GetLanguageTitle(lang)" MinWidth="200px" Sortable="false"> |
| 203 | + <RadzenDataGridColumn TItem="TranslationGridRow" Title="@GetLanguageTitle(lang)" Width="300px" MinWidth="250px" Sortable="false" Resizable="true"> |
200 | 204 | <Template Context="row"> |
201 | 205 | @{ |
202 | 206 | var cell = row.IsPlural |
|
394 | 398 |
|
395 | 399 | private static string GetCellStyle(string value) |
396 | 400 | { |
397 | | - if (value.Length > 50) |
398 | | - return "overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 300px; display: block;"; |
| 401 | + // Text wrapping is now handled by CSS, no need for inline styles |
399 | 402 | return ""; |
400 | 403 | } |
401 | 404 |
|
|
473 | 476 | StateHasChanged(); |
474 | 477 | } |
475 | 478 |
|
| 479 | + private void OnColumnMenuClick(RadzenSplitButtonItem item) |
| 480 | + { |
| 481 | + if (item?.Value != null) |
| 482 | + { |
| 483 | + var value = item.Value.ToString(); |
| 484 | + if (value == "__SELECT_ALL__") |
| 485 | + { |
| 486 | + _hiddenLanguages.Clear(); |
| 487 | + StateHasChanged(); |
| 488 | + } |
| 489 | + else if (value == "__SELECT_NONE__") |
| 490 | + { |
| 491 | + _hiddenLanguages = new HashSet<string>(Languages); |
| 492 | + StateHasChanged(); |
| 493 | + } |
| 494 | + else |
| 495 | + { |
| 496 | + ToggleLanguageVisibility(value!); |
| 497 | + } |
| 498 | + } |
| 499 | + } |
| 500 | + |
476 | 501 | private void OnSelectAllChanged(bool value) |
477 | 502 | { |
478 | 503 | _selectAll = value; |
|
0 commit comments