Skip to content

Commit 1e1e56e

Browse files
Merge pull request #481 from NeoCoderMatrix86/457-edit-of-tracks-in-import-missing
Enable edit during import
2 parents d323584 + b902e39 commit 1e1e56e

2 files changed

Lines changed: 38 additions & 19 deletions

File tree

AudioCuesheetEditor.End2EndTests/Pages/IndexTest.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,21 @@ public async Task ImportAsync()
9292
await Expect(Page.GetByText("PreviousNext")).ToBeVisibleAsync();
9393
}
9494

95+
[TestMethod]
96+
public async Task ImportWithEditAsync()
97+
{
98+
await Page.GotoAsync("http://localhost:5132/");
99+
await Page.GetByRole(AriaRole.Tab, new() { Name = "Import view" }).ClickAsync();
100+
await Page.GetByRole(AriaRole.Button, new() { Name = "Choose File" }).SetInputFilesAsync("Sample_Inputfile.txt");
101+
await Page.Locator("tr:nth-child(6) > td").First.ClickAsync();
102+
await Page.GetByRole(AriaRole.Button, new() { Name = "Edit selected tracks" }).ClickAsync();
103+
await Page.GetByRole(AriaRole.Textbox, new() { Name = "Title", Exact = true }).FillAsync("Sample Title Edited 5");
104+
await Page.GetByRole(AriaRole.Textbox, new() { Name = "Title", Exact = true }).PressAsync("Tab");
105+
await Page.GetByRole(AriaRole.Button, new() { Name = "Save changes" }).ClickAsync();
106+
await Page.GetByRole(AriaRole.Button, new() { Name = "Complete" }).ClickAsync();
107+
await Expect(Page.GetByRole(AriaRole.Cell, new() { Name = "Sample Title Edited 5 Clear" })).ToBeVisibleAsync();
108+
}
109+
95110
[TestMethod]
96111
public async Task ChangeLanguageAsync()
97112
{

AudioCuesheetEditor/Shared/TrackList/TrackList.razor

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,31 @@ along with Foobar. If not, see
2828
@inject IDialogService _dialogService
2929
@inject ISessionStateContainer _sessionStateContainer
3030

31-
@if (CurrentViewMode == ViewMode.DetailView)
31+
@switch (CurrentViewMode)
3232
{
33-
var validationResult = Cuesheet?.Validate(nameof(Cuesheet.Tracks));
34-
if (validationResult?.Status == ValidationStatus.Error)
35-
{
36-
<MudAlert Severity="Severity.Error" Variant="Variant.Filled">
37-
<MudText Typo="Typo.h4">@_localizer["Validation errors"]</MudText>
38-
@foreach (var message in validationResult.ValidationMessages)
39-
{
40-
<MudText>@message.GetMessageLocalized(_validationMessageLocalizer)</MudText>
41-
}
42-
</MudAlert>
43-
}
44-
<TrackListControlButtons AddButtonClicked="AddTrackClicked" EditSelectedTracksClicked="EditSelectedTracksClicked" EditSelectedTracksDisabled="selectedTracks.Count == 0"
45-
DeleteSelectedTracksClicked="DeleteSelectedTracksClicked" DeleteSelectedTracksDisabled="selectedTracks.Count == 0"
46-
DeleteAllTracksClicked="OnDeleteAllTracksClicked" DeleteAllTracksDisabled="Cuesheet?.Tracks.Any() == false"
47-
MoveTracksUpDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Up) == true)" MoveTracksUpClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Up)"
48-
MoveTracksDownDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Down) == true)" MoveTracksDownClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Down)"
49-
CopySelectedTracksDisabled="selectedTracks.Count != 1" CopySelectedTracksClicked="() => CopyTrackClicked()"
50-
FixedHeader="applicationOptions?.FixedTracksTableHeader == true" FixedHeaderClicked="() => _localStorageOptionsProvider.SaveOptionsValueAsync<ApplicationOptions>(x => x.FixedTracksTableHeader, !applicationOptions?.FixedTracksTableHeader)" />
33+
case ViewMode.DetailView:
34+
case ViewMode.ImportView:
35+
var validationResult = Cuesheet?.Validate(nameof(Cuesheet.Tracks));
36+
if (validationResult?.Status == ValidationStatus.Error)
37+
{
38+
<MudAlert Severity="Severity.Error" Variant="Variant.Filled">
39+
<MudText Typo="Typo.h4">@_localizer["Validation errors"]</MudText>
40+
@foreach (var message in validationResult.ValidationMessages)
41+
{
42+
<MudText>@message.GetMessageLocalized(_validationMessageLocalizer)</MudText>
43+
}
44+
</MudAlert>
45+
}
46+
<TrackListControlButtons AddButtonClicked="AddTrackClicked" EditSelectedTracksClicked="EditSelectedTracksClicked" EditSelectedTracksDisabled="selectedTracks.Count == 0"
47+
DeleteSelectedTracksClicked="DeleteSelectedTracksClicked" DeleteSelectedTracksDisabled="selectedTracks.Count == 0"
48+
DeleteAllTracksClicked="OnDeleteAllTracksClicked" DeleteAllTracksDisabled="Cuesheet?.Tracks.Any() == false"
49+
MoveTracksUpDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Up) == true)" MoveTracksUpClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Up)"
50+
MoveTracksDownDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Down) == true)" MoveTracksDownClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Down)"
51+
CopySelectedTracksDisabled="selectedTracks.Count != 1" CopySelectedTracksClicked="() => CopyTrackClicked()"
52+
FixedHeader="applicationOptions?.FixedTracksTableHeader == true" FixedHeaderClicked="() => _localStorageOptionsProvider.SaveOptionsValueAsync<ApplicationOptions>(x => x.FixedTracksTableHeader, !applicationOptions?.FixedTracksTableHeader)" />
53+
break;
5154
}
55+
5256
<MudForm @ref="form">
5357
<MudDataGrid T="Track" Items="Cuesheet?.Tracks" ReadOnly="false" Bordered MultiSelection SelectOnRowClick="false" @bind-SelectedItems="selectedTracks" EditTrigger="DataGridEditTrigger.OnRowClick"
5458
EditMode="DataGridEditMode.Cell" ColumnResizeMode="ResizeMode.Column" RowContextMenuClick="OpenMenuContent" Height="@(applicationOptions?.FixedTracksTableHeader == true ? "600px" : null)"

0 commit comments

Comments
 (0)