SearchResultGroup.razor 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. @code {
  2. [Parameter, Required] public IGrouping<FeDisc, FeTrack> DataSource { get; set; }
  3. [Parameter, Required] public string SearchName { get; set; }
  4. [Parameter, Required] public string SearchArtist { get; set; }
  5. private DiscDialog dlgDisc;
  6. }
  7. <DiscDialog @ref="dlgDisc" Disc="CurrentDisc"></DiscDialog>
  8. <div class="table-responsive">
  9. <table class="table w-100">
  10. <tbody>
  11. <tr class="table-primary">
  12. <td><img src="@DataSource.Key.CoverPath" style="height:50px" /></td>
  13. <td colspan="2" class="w-100">
  14. <div class="text-nowrap">@DataSource.Key.Name</div>
  15. <div class="text-nowrap text-muted">@DataSource.Key.Lib.Name</div>
  16. </td>
  17. <td colspan="2" class="text-end">
  18. <button class="btn btn-primary" @onclick="()=>dlgDisc.Show(DataSource.Key)">
  19. <i class="bi bi-window-stack"></i>
  20. </button>
  21. </td>
  22. </tr>
  23. @foreach (var tr in DataSource.OrderBy(p => p.Name))
  24. {
  25. <tr class="mouse-hilight">
  26. <td class="align-middle"><FileIcon Track="@tr" ShowParam="true"></FileIcon></td>
  27. <td class="w-100 text-nowrap">
  28. <div>
  29. <a @onclick="() => App.Instance.PlayTrack(tr)" @onclick:preventDefault href="@tr.Path" target="@FnzConst.PlayPageTarget">
  30. <HighLightKeyword Text="@tr.GetTitleOrFilename()" Keywords="@(new []{ SearchName})"></HighLightKeyword>
  31. </a>
  32. </div>
  33. <div class="text-nowrap text-muted">
  34. <HighLightKeyword Text="@tr.Tag?.Artist" Keywords="@(new []{ SearchArtist})" MatchedClass="text-warning"></HighLightKeyword>
  35. </div>
  36. </td>
  37. <td>
  38. <div class="text-nowrap">@tr.Tag.Duration.SecondToDur()</div>
  39. <div class="text-nowrap text-muted">@tr.Tag.Length.BytesToFileSize()</div>
  40. </td>
  41. <td class="text-center align-middle">
  42. <button type="button" class="btn btn-link" style="padding:0.1rem" @onclick="() => App.Instance.ShowAddTrackToPlaylistDialog(tr)">
  43. <i class="bi bi-folder-plus"></i>
  44. </button>
  45. </td>
  46. </tr>
  47. }
  48. </tbody>
  49. </table>
  50. </div>