production-list.component.html 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <app-menu></app-menu>
  2. <div id="main">
  3. <div class="card shadow rounded-bottom-0">
  4. <div class="card-header"><span i18n>Liste des productions</span></div>
  5. <div class="card-header">
  6. <div class="row justify-content-between">
  7. <div class="form-group col-sm-4 label-nobr">
  8. <button type="button" (click)="goToRefreshListProduction()" class="btn bg-gradient btn-primary btn-sm" style="margin-right: 5px;"><i class="fa-solid fa-rotate"></i>&nbsp;<span i18n>Actualiser</span></button>
  9. <button type="button" (click)="goToNewProduction()" class="btn bg-gradient btn-primary btn-sm" style="margin-right: 5px;"><i class="fa-solid fa-plus"></i>&nbsp;<span i18n>Créer</span></button>
  10. </div>
  11. <div class="form-group col-sm-2 label-nobr ms-auto">
  12. <div class="input-group input-group-sn">
  13. <button type="button" class="btn bg-gradient btn-secondary btn-sm field-separate" disabled><span i18n>Afficher</span></button>
  14. <select class="form-select form-select-sm field-separate" id="select_solo" [(ngModel)]="soloFiltre" (change)="filtrageParSolo($event)">
  15. <option value="0">Toutes</option>
  16. <option value="1">Celles non rattachées aux catégories</option>
  17. </select>
  18. </div>
  19. </div>
  20. <div class="form-group col-sm-2 label-nobr">
  21. <div class="input-group input-group-sn">
  22. <button type="button" class="btn bg-gradient btn-secondary btn-sm field-separate" disabled><span i18n>Filtrer par type</span></button>
  23. <select class="form-select form-select-sm field-separate" id="select_type" [(ngModel)]="typeFiltre" (change)="filtrageParType($event)">
  24. <option> </option>
  25. @for (type of types; track type) {
  26. <option [value]="type.key">{{ type.value }}</option>
  27. }
  28. </select>
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="d-flex flex-wrap">
  35. @for (production of productions; track production.numeroProduction) {
  36. <div class="card shadow" style="max-width:17rem;">
  37. <img src="{{ production.vignette }}" class="img-fluid card-img-top pointeur-souris" (click)="formProduction(production.numeroProduction)">
  38. <div class="card-header">
  39. <span class="card-title">@if (production.type === types[0].key) { <i class="fa-solid fa-square-binary"></i> } @else if (production.type === types[1].key) { <i class="fa-solid fa-image"></i> } @else if (production.type === types[2].key) { <i class="fa-solid fa-music"></i> } @else if (production.type === types[3].key) { <i class="fa-solid fa-video"></i> } @else if (production.type === types[4].key) { <i class="fa-solid fa-comment"></i> } @else { <i class="fa-solid fa-question"></i> }
  40. <a (click)="formProduction(production.numeroProduction)" class="text-primary pointeur-souris" style="margin-left:7px;">{{ production.titre }}</a></span><br/>
  41. <small><span class="text-muted">par</span> {{ production.auteurs }} @if (production.groupes) { @if (production.groupes.length > 0) { &nbsp;/&nbsp;{{ production.groupes }} } }</small>
  42. </div>
  43. <div class="card-body">
  44. <small><span class="text-muted">sur</span> {{ production.plateforme }}</small><br/>
  45. <small>{{ production.commentaire }}</small><br/>
  46. <small class="text-warning">{{ production.informationsPrivees }}</small>
  47. </div>
  48. <div class="card-footer d-flex justify-content-between">
  49. <i class="fa-solid fa-download text-primary pointeur-souris" (click)="getFile(production.numeroProduction, production.nomArchive)" tooltip="{{ production.nomArchive }} (v{{ production.numeroVersion }})" placement="top" container="body"></i>
  50. <i class="fa-solid fa-user-tie text-muted" style="margin-left:7px;" i18n-tootip tooltip="géré par {{ production.nomGestionnaire }}" placement="top" container="body"></i>
  51. </div>
  52. </div>
  53. }
  54. </div>
  55. </div>