main-page.component.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <!-- app.component.html -->
  2. <div class="container">
  3. <!-- ----------------------------------------------------------------------------------------------------col1 -->
  4. <div class="margin-column"></div> <!-- First margin column -->
  5. <!-- ----------------------------------------------------------------------------------------------------col2 -->
  6. <div class="col-left">
  7. <mat-card class="song-list-card">
  8. <mat-card-header>
  9. <mat-card-title class="card-title">Song List</mat-card-title>
  10. </mat-card-header>
  11. <mat-card-content>
  12. <mat-form-field appearance="fill">
  13. <mat-label>Search songs</mat-label>
  14. <input matInput type="text" placeholder="Search songs" [(ngModel)]="searchQuery">
  15. </mat-form-field>
  16. <div class="song-list">
  17. <mat-radio-group class="vertical-radio-group" [(ngModel)]="selectedSong" (change)="displaySongInformation(selectedSong)">
  18. <mat-radio-button *ngFor="let song of filteredSongs" [value]="song">
  19. {{ song.name }}
  20. </mat-radio-button>
  21. </mat-radio-group>
  22. </div>
  23. </mat-card-content>
  24. </mat-card>
  25. </div>
  26. <!-- ----------------------------------------------------------------------------------------------------col3 -->
  27. <div class="col-right">
  28. <div class="buttons-container">
  29. <!-- ##################################################################_ROW 1-->
  30. <div class="button-row">
  31. <button mat-raised-button (click)="download()">
  32. <mat-icon>cloud_download</mat-icon>
  33. Download
  34. </button>
  35. <button mat-raised-button color="accent" (click)="upload()" [disabled]="!selectedFileName">
  36. <mat-icon>cloud_upload</mat-icon>
  37. Upload
  38. </button>
  39. </div>
  40. <!-- ##################################################################_ROW 2-->
  41. <div class="button-row">
  42. <button mat-raised-button color="primary" (click)="generatePdf()">
  43. <mat-icon>picture_as_pdf</mat-icon>
  44. Generate PDF summary
  45. </button>
  46. </div>
  47. <!-- ##################################################################_ROW 3-->
  48. <div class="button-row">
  49. <input type="file" (change)="onFileSelected($event)">
  50. </div>
  51. <!-- ##################################################################_ROW 4-->
  52. <div class="text-block-row">
  53. <div class="text-block">
  54. <p>uploaded: {{ selectedSong?.uploadDate | date:'short'}} ({{ selectedSong?.userId }})</p>
  55. <p>last update: {{ selectedSong?.updateDate | date:'short' }} ({{ selectedSong?.lastUpdateUserId }})</p>
  56. <p>Selected Song: {{ selectedSong?.name }}</p> <!-- Display selected song name -->
  57. <!-- You can display other song information as needed -->
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. <!-- ----------------------------------------------------------------------------------------------------col4 -->
  63. <div class="margin-column"></div> <!-- Second margin column -->
  64. </div>
  65. <div class="riff-list-container">
  66. <mat-card class="riff-list-card">
  67. <mat-card-header>
  68. <mat-card-title class="card-title">Riff List</mat-card-title>
  69. </mat-card-header>
  70. <mat-card-content>
  71. <div class="riff-list">
  72. <mat-list>
  73. <mat-list-item *ngFor="let riff of selectedSong?.riffs">
  74. <span mat-line>{{ riff.name }}</span>
  75. <span mat-line class="riff-details">
  76. Start: {{ riff.startMs }} ms | End: {{ riff.endMs }} ms
  77. </span>
  78. </mat-list-item>
  79. </mat-list>
  80. </div>
  81. </mat-card-content>
  82. </mat-card>
  83. </div>