25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

132 lines
6.1 KiB

  1. @if (trip) {
  2. <div class="spt-container">
  3. <div class="spt-headline d-flex justify-content-between align-items-start">
  4. <h2>{{ ('basic.edit') | translate }} {{ 'model.trip' | translate }} {{ trip.pilotageReference }}</h2>
  5. </div>
  6. </div>
  7. <mat-tab-group>
  8. <mat-tab label="{{ 'trip.view_single' | translate }}">
  9. <app-trip-form
  10. [data]="trip"
  11. [mode]="FormMode.Edit"
  12. [id]="appHelperService.extractId(trip.id!)"
  13. (submit)="onFormUpdate($event)"
  14. ></app-trip-form>
  15. </mat-tab>
  16. <mat-tab label="{{ 'trip.itinerary' | translate }}">
  17. <div>
  18. <h4 class="mb-4">{{ 'trip.itinerary_locations' | translate }}</h4>
  19. <div *ngFor="let tripLocation of tripLocations; let i = index" class="mb-4">
  20. <div class="row">
  21. <div class="col-12 col-md-4 mb-3">
  22. <label [for]="'location_' + i" class="form-label">Location*:</label>
  23. <app-search-select
  24. [formId]="'locationIri'"
  25. [formLabelLangKey]="'model.location'"
  26. [documentForm]="locationForms[i]"
  27. [getDataFunction]="getLocations"
  28. [displayedDataField]="'name'"
  29. [listColDefinitions]="locationColDefinitions"
  30. [dataSet]="tripLocation.locationIri"
  31. >
  32. </app-search-select>
  33. </div>
  34. <div class="col-12 col-md-2 mb-3">
  35. <label class="form-label">trip.date (Date):</label>
  36. <div>
  37. <input
  38. type="date"
  39. class="form-control"
  40. [value]="formatDateForInput(tripLocation.date)"
  41. (change)="onDateInputChange($event, i)"
  42. />
  43. </div>
  44. </div>
  45. <div class="col-12 col-md-2 mb-3">
  46. <label class="form-label">trip.date (Time):</label>
  47. <div>
  48. <input
  49. type="time"
  50. class="form-control"
  51. [value]="formatTimeForInput(tripLocation.date)"
  52. (change)="onTimeInputChange($event, i)"
  53. />
  54. </div>
  55. </div>
  56. <div class="col-12 col-md-2 mb-3 d-flex align-items-end">
  57. <div class="form-check">
  58. <input
  59. class="form-check-input"
  60. type="checkbox"
  61. [id]="'isArrival_' + i"
  62. [checked]="tripLocation.isArrival"
  63. (change)="onIsArrivalChange($event, i)"
  64. >
  65. <label class="form-check-label" [for]="'isArrival_' + i">
  66. {{ 'trip.is_arrival' | translate }}
  67. </label>
  68. </div>
  69. </div>
  70. <div class="col-12 col-md-2 mb-3 d-flex align-items-end">
  71. <button type="button" class="btn btn-danger" (click)="removeTripLocation(i)">X</button>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="my-3">
  76. <button type="button" class="btn btn-primary" (click)="addNewTripLocation()">+</button>
  77. </div>
  78. <div class="mt-4">
  79. <button type="button" class="btn btn-success" (click)="saveAllTripLocations()">
  80. {{ 'trip.save_itinerary' | translate }}
  81. </button>
  82. </div>
  83. </div>
  84. </mat-tab>
  85. <mat-tab label="{{ 'trip.assigned_users' | translate }}">
  86. <div>
  87. <h4 class="mb-4">{{ 'trip.assigned_users' | translate }}</h4>
  88. <div *ngFor="let userTrip of userTrips; let i = index" class="mb-4">
  89. <div class="row">
  90. <div class="col-12 col-md-6 mb-3">
  91. <label [for]="'user_' + i" class="form-label">{{ 'model.user' | translate }}*:</label>
  92. <app-search-select
  93. [formId]="'user'"
  94. [formLabelLangKey]="'model.user'"
  95. [documentForm]="userForms[i]"
  96. [getDataFunction]="getUsers"
  97. [displayedDataField]="'fullName'"
  98. [listColDefinitions]="userColDefinitions"
  99. [dataSet]="userTrip.userIri"
  100. (change)="onUserSelectChange(i)"
  101. >
  102. </app-search-select>
  103. </div>
  104. <div class="col-12 col-md-2 mb-3 d-flex align-items-end">
  105. <button type="button" class="btn btn-danger" (click)="removeUserTrip(i)">X</button>
  106. </div>
  107. </div>
  108. </div>
  109. <div class="my-3">
  110. <button type="button" class="btn btn-primary" (click)="addNewUserTrip()">+</button>
  111. </div>
  112. <div class="mt-4">
  113. <button type="button" class="btn btn-success" (click)="saveAllUserTrips()">
  114. {{ 'trip.save_user_assignments' | translate }}
  115. </button>
  116. </div>
  117. </div>
  118. </mat-tab>
  119. </mat-tab-group>
  120. }