Skip to content

Commit 02d81c7

Browse files
Fix rename and download
1 parent ee82806 commit 02d81c7

5 files changed

Lines changed: 35 additions & 7 deletions

File tree

AudioCuesheetEditor.End2EndTests/AudioCuesheetEditor.End2EndTests.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
</ItemGroup>
2929

3030
<ItemGroup>
31+
<None Update="Kalimba.mp3">
32+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
33+
</None>
3134
<None Update="Sample_Cuesheet.cue">
3235
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
3336
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
8.02 MB
Binary file not shown.

AudioCuesheetEditor.End2EndTests/Pages/IndexTest.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,5 +132,22 @@ public async Task OpenProjectFileAsync()
132132
await Expect(Page.GetByRole(AriaRole.Cell, new() { Name = ":09:23" }).Nth(1)).ToBeVisibleAsync();
133133
await Expect(Page.GetByRole(AriaRole.Cell, new() { Name = ":45:54" }).First).ToBeVisibleAsync();
134134
}
135+
136+
[TestMethod]
137+
public async Task RenameAudiofileTestAsync()
138+
{
139+
await Page.GotoAsync("http://localhost:5132/");
140+
await Page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile Search" }).GetByRole(AriaRole.Button).Nth(3).ClickAsync();
141+
await Expect(Page.GetByText("Download file Rename file")).ToMatchAriaSnapshotAsync("- paragraph: Download file\n- paragraph: Rename file");
142+
await Page.Locator("[id^='overlay']").ClickAsync();
143+
await Page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile Search" }).Locator("input[type=\"file\"]").ClickAsync();
144+
await Page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile Search" }).Locator("input[type=\"file\"]").SetInputFilesAsync(new[] { "Kalimba.mp3" });
145+
await Page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile Search" }).GetByRole(AriaRole.Button).Nth(3).ClickAsync();
146+
await Expect(Page.GetByText("Download file Rename file")).ToMatchAriaSnapshotAsync("- paragraph: Download file\n- paragraph: Rename file");
147+
await Page.GetByText("Rename file").ClickAsync();
148+
await Page.GetByRole(AriaRole.Textbox, new() { Name = "New file name" }).FillAsync("Kalimba test 123.mp3");
149+
await Page.GetByRole(AriaRole.Button, new() { Name = "Ok" }).ClickAsync();
150+
await Expect(Page.Locator("#app")).ToMatchAriaSnapshotAsync("- textbox \"Cuesheet artist\"\n- group \"Cuesheet artist\"\n- text: Cuesheet artist\n- textbox \"Cuesheet title\"\n- group \"Cuesheet title\"\n- text: Cuesheet title\n- group:\n - button \"Choose File\"\n - textbox \"Audiofile\": /Kalimba test \\d+\\.mp3/\n - group \"Audiofile\"\n - text: Audiofile\n - button \"Search\"\n - button\n - button\n- group:\n - button \"Choose File\"\n - textbox \"CD Textfile\": No file selected\n - group \"CD Textfile\"\n - text: CD Textfile\n - button \"Search\"\n - button [disabled]\n - button\n- textbox \"Cataloguenumber\"\n- group \"Cataloguenumber\"\n- text: Cataloguenumber");
151+
}
135152
}
136153
}

AudioCuesheetEditor/Shared/Cuesheet/CuesheetData.razor

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ along with Foobar. If not, see
3333
{
3434
case ViewMode.ImportView:
3535
case ViewMode.DetailView:
36-
<FileInput Id="@fileInputAudiofileId" Label="@_localizer["Audiofile"]" FileName="@Cuesheet.Audiofile?.Name" OnFileSelected="OnAudiofileSelected" Error="@fileInputAudiofileErrorText" Filter="@String.Join(",", Audiofile.AudioCodecs.Select(x => x.MimeType))" DisplayDownloadFile OnDownloadFileClicked="DownloadAudio" OnFileRenameClicked="AudioFileRename" />
37-
<FileInput Label="@_localizer["CD Textfile"]" FileName="@Cuesheet.CDTextfile?.Name" OnFileSelected="OnCDTextfileSelected" Filter="@FileExtensions.CDTextfile" Error="@fileInputCDTextfileErrorText" OnFileRenameClicked="CDTextFileRename" />
36+
<FileInput Id="@fileInputAudiofileId" Label="@_localizer["Audiofile"]" FileName="@Cuesheet.Audiofile?.Name" OnFileSelected="OnAudiofileSelected" Error="@fileInputAudiofileErrorText" Filter="@String.Join(",", Audiofile.AudioCodecs.Select(x => x.MimeType))" DisplayDownloadFile
37+
OnDownloadFileClicked="DownloadAudio" OnFileRenameClicked="AudioFileRename" FileRenameDisabled="Cuesheet.Audiofile == null" FileDownloadDisabled="Cuesheet.Audiofile != null ? Cuesheet.Audiofile.IsContentStreamLoaded == false : true" />
38+
<FileInput Label="@_localizer["CD Textfile"]" FileName="@Cuesheet.CDTextfile?.Name" OnFileSelected="OnCDTextfileSelected" Filter="@FileExtensions.CDTextfile" Error="@fileInputCDTextfileErrorText" OnFileRenameClicked="CDTextFileRename" FileRenameDisabled="Cuesheet.CDTextfile == null" />
3839
<MudTextField @bind-Value="Cuesheet.Cataloguenumber" For="(() => Cuesheet.Cataloguenumber)" Validation="_validationService.ValidateProperty" Label="@_localizer["Cataloguenumber"]" Placeholder="@_localizer["Enter the cuesheet catalogue number here"]" Variant="Variant.Outlined" />
3940
break;
4041
}
@@ -86,6 +87,7 @@ along with Foobar. If not, see
8687
{
8788
TraceChangeManager.MergeLastEditWithEdit(x => x.Changes.All(y => y.TraceableObject == Cuesheet && y.TraceableChange.PropertyName == nameof(Audiofile)));
8889
}
90+
StateHasChanged();
8991
});
9092
}
9193
catch(ArgumentException ae)
@@ -135,10 +137,10 @@ along with Foobar. If not, see
135137

136138
async Task DownloadAudio()
137139
{
138-
var audioFile = Cuesheet?.Audiofile;
139-
if (audioFile != null)
140+
var contentStream = Cuesheet?.Audiofile?.ContentStream;
141+
if (contentStream != null)
140142
{
141-
await _blazorDownloadFileService.DownloadFile(audioFile.Name, audioFile.ContentStream, audioFile.AudioCodec?.MimeType);
143+
await _blazorDownloadFileService.DownloadFile(Cuesheet?.Audiofile?.Name, contentStream, Cuesheet?.Audiofile?.AudioCodec?.MimeType);
142144
}
143145
}
144146

AudioCuesheetEditor/Shared/Inputs/FileInput.razor

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ along with Foobar. If not, see
3636
<MudMenu Icon="@Icons.Material.Outlined.MoreVert" Color="Color.Inherit" Class="mt-1" Style="height: 56px;" AnchorOrigin="Origin.BottomRight" TransformOrigin="Origin.TopRight" Variant="Variant.Filled">
3737
@if (DisplayDownloadFile)
3838
{
39-
<MudMenuItem Icon="@Icons.Material.Outlined.FileDownload" Disabled="selectedFile == null" OnClick="() => OnDownloadFileClicked.InvokeAsync(selectedFile)">@_localizer["Download file"]</MudMenuItem>
39+
<MudMenuItem Icon="@Icons.Material.Outlined.FileDownload" Disabled="FileDownloadDisabled" OnClick="() => OnDownloadFileClicked.InvokeAsync(selectedFile)">@_localizer["Download file"]</MudMenuItem>
4040
}
41-
<MudMenuItem Icon="@Icons.Material.Outlined.EditAttributes" Disabled="selectedFile == null" OnClick="() => OnFileRenameClicked.InvokeAsync(selectedFile)">@_localizer["Rename file"]</MudMenuItem>
41+
<MudMenuItem Icon="@Icons.Material.Outlined.EditAttributes" Disabled="FileRenameDisabled" OnClick="() => OnFileRenameClicked.InvokeAsync(selectedFile)">@_localizer["Rename file"]</MudMenuItem>
4242
</MudMenu>
4343
}
4444
</MudStack>
@@ -61,6 +61,12 @@ along with Foobar. If not, see
6161
[Parameter]
6262
public EventCallback<IBrowserFile?> OnFileRenameClicked { get; set; }
6363

64+
[Parameter]
65+
public Boolean FileRenameDisabled { get; set; }
66+
67+
[Parameter]
68+
public Boolean FileDownloadDisabled { get; set; }
69+
6470
[Parameter]
6571
public String Id { get; set; } = $"FileInput_{Guid.NewGuid()}";
6672

0 commit comments

Comments
 (0)