production-create.component.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <br />
  2. <form #formRef="ngForm" (ngSubmit)="addProduction()" class="needs-validation">
  3. <div class="card shadow">
  4. <div class="card-header">Fiche d'une production</div>
  5. <div class="card-header shadow-sm">
  6. <button (click)="goToListProduction()" class="btn btn-primary btn-sm"><i class="fa-solid fa-xmark"></i>&nbsp;Retour</button>
  7. </div>
  8. <div class="card-body">
  9. <div class="form-group row">
  10. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Type</label>
  11. <div class="col-sm-10">
  12. <div class="form-group field-separate">
  13. <select class="form-select form-select-sm" id="type" name="type" [(ngModel)]="production.type">
  14. <option value="EXECUTABLE" selected>{{ PT.EXECUTABLE }}</option>
  15. <option value="GRAPHE">{{ PT.GRAPHE }}</option>
  16. <option value="MUSIQUE">{{ PT.MUSIQUE }}</option>
  17. <option value="VIDEO">{{ PT.VIDEO }}</option>
  18. <option value="TOPIC">{{ PT.TOPIC }}</option>
  19. <option value="AUTRE">{{ PT.AUTRE }}</option>
  20. </select>
  21. </div>
  22. </div>
  23. </div>
  24. <div class="form-group row">
  25. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Titre&nbsp;<sup><span class="text-danger">*</span></sup></label>
  26. <div class="col-sm-10">
  27. <input type="text" class="form-control form-control-sm field-separate" id="titre" name="titre" [(ngModel)]="production.titre" #titreRef="ngModel" required [class.is-invalid]="titreRef.invalid && titreRef.touched">
  28. </div>
  29. </div>
  30. <div class="form-group row">
  31. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Auteur(s)&nbsp;<sup><span class="text-danger">*</span></sup></label>
  32. <div class="col-sm-10">
  33. <input type="text" class="form-control form-control-sm field-separate" id="auteurs" name="auteurs" [(ngModel)]="production.auteurs" #auteursRef="ngModel" required [class.is-invalid]="auteursRef.invalid && auteursRef.touched">
  34. </div>
  35. </div>
  36. <div class="form-group row">
  37. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Groupe(s)</label>
  38. <div class="col-sm-10">
  39. <input type="text" class="form-control form-control-sm field-separate" id="groupes" name="groupes" [(ngModel)]="production.groupes">
  40. </div>
  41. </div>
  42. <div class="form-group row">
  43. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Plateforme</label>
  44. <div class="col-sm-10">
  45. <input type="text" class="form-control form-control-sm field-separate" id="plateforme" name="plateforme" [(ngModel)]="production.plateforme">
  46. </div>
  47. </div>
  48. <div class="form-group row">
  49. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Commentaire</label>
  50. <div class="col-sm-10">
  51. <textarea class="form-control form-control-sm field-separate" id="commentaire" name="commentaire" [(ngModel)]="production.commentaire"></textarea>
  52. </div>
  53. </div>
  54. <div class="form-group row">
  55. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Informations privées</label>
  56. <div class="col-sm-10">
  57. <textarea class="form-control form-control-sm field-separate" id="informationsPrivees" name="informationsPrivees" [(ngModel)]="production.informationsPrivees"></textarea>
  58. </div>
  59. </div>
  60. <div class="form-group row">
  61. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Gestionnaire&nbsp;<sup><span class="text-danger">*</span></sup></label>
  62. <div class="col-sm-10">
  63. <div class="form-group field-separate">
  64. <select class="form-select form-select-sm" id="numeroParticipant" name="numeroParticipant" [(ngModel)]="production.numeroParticipant">
  65. @for (participant of participants; track participant.numeroParticipant) {
  66. <option [ngValue]="participant.numeroParticipant">{{ participant.pseudonyme }} = {{ participant.nom }}&nbsp;{{ participant.prenom }}</option>
  67. }
  68. </select>
  69. </div>
  70. </div>
  71. </div>
  72. <div class="form-group row">
  73. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Archive</label>
  74. <div class="col-sm-10">
  75. <input type="file" class="form-control form-control-sm field-separate" id="archive" name="archive" accept="application/zip" (change)="onArchiveSelected($event)">
  76. </div>
  77. </div>
  78. <div class="form-group row">
  79. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Vignette</label>
  80. <div class="col-sm-10">
  81. <input type="file" class="form-control form-control-sm field-separate" id="vignette" name="vignette" accept="image/png, image/gif, image/jpeg" (change)="onVignetteSelected($event)">
  82. </div>
  83. </div>
  84. </div>
  85. <div class="card-footer">
  86. <button type="button" class="btn btn-success btn-sm text-left" type="submit" [disabled]="formRef.invalid"><i class="fa-solid fa-plus"></i>&nbsp;Créer</button>
  87. </div>
  88. </div>
  89. </form>