production-create.component.html 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <form #formRef="ngForm" (ngSubmit)="addProduction()" class="needs-validation">
  2. <div class="card shadow">
  3. <div class="card-header">Fiche d'une production</div>
  4. <div class="card-header shadow-sm">
  5. <button (click)="goToListProduction()" class="btn btn-primary btn-sm"><i class="fa-solid fa-xmark"></i>&nbsp;Retour</button>
  6. </div>
  7. <div class="card-body">
  8. <div class="form-group row">
  9. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Type</label>
  10. <div class="col-sm-10">
  11. <div class="form-group field-separate">
  12. <select class="form-select form-select-sm" id="type" name="type" [(ngModel)]="production.type">
  13. @for (type of types; track type.key) { <option [value]="type.key">{{ type.value }}</option> }
  14. </select>
  15. </div>
  16. </div>
  17. </div>
  18. <div class="form-group row">
  19. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Titre&nbsp;<sup><span class="text-danger">*</span></sup></label>
  20. <div class="col-sm-10">
  21. <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">
  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">Auteur(s)&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="auteurs" name="auteurs" [(ngModel)]="production.auteurs" #auteursRef="ngModel" required [class.is-invalid]="auteursRef.invalid && auteursRef.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">Groupe(s)</label>
  32. <div class="col-sm-10">
  33. <input type="text" class="form-control form-control-sm field-separate" id="groupes" name="groupes" [(ngModel)]="production.groupes">
  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">Plateforme</label>
  38. <div class="col-sm-10">
  39. <input type="text" class="form-control form-control-sm field-separate" id="plateforme" name="plateforme" [(ngModel)]="production.plateforme">
  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">Commentaire</label>
  44. <div class="col-sm-10">
  45. <textarea class="form-control form-control-sm field-separate" id="commentaire" name="commentaire" [(ngModel)]="production.commentaire"></textarea>
  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">Informations privées</label>
  50. <div class="col-sm-10">
  51. <textarea class="form-control form-control-sm field-separate" id="informationsPrivees" name="informationsPrivees" [(ngModel)]="production.informationsPrivees"></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">Gestionnaire&nbsp;<sup><span class="text-danger">*</span></sup></label>
  56. <div class="col-sm-10">
  57. <div class="form-group">
  58. <select class="form-select form-select-sm field-separate" id="numeroParticipant" name="numeroParticipant" [(ngModel)]="production.numeroParticipant">
  59. @for (participant of participants; track participant.numeroParticipant) {
  60. <option [ngValue]="participant.numeroParticipant">{{ participant.pseudonyme }} = {{ participant.nom }}&nbsp;{{ participant.prenom }}</option>
  61. }
  62. </select>
  63. </div>
  64. </div>
  65. </div>
  66. <div class="form-group row">
  67. <label class="col-sm-2 col-form-label col-form-label-sm label-nobr">Archive</label>
  68. <div class="col-sm-10">
  69. <input type="file" class="form-control form-control-sm field-separate" id="archive" name="archive" accept="application/zip" (change)="onArchiveSelected($event)">
  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">Vignette</label>
  74. <div class="col-sm-10">
  75. <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)">
  76. </div>
  77. </div>
  78. </div>
  79. <div class="card-footer">
  80. <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>
  81. </div>
  82. </div>
  83. </form>