ffb-harvest.component.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <mat-card>
  2. <mat-card-title>FFB Harvests</mat-card-title>
  3. <mat-card-content>
  4. <div class="controls">
  5. <button mat-flat-button color="primary" (click)="startCreate()">
  6. <mat-icon>add</mat-icon> New
  7. </button>
  8. <mat-form-field appearance="outline" class="small">
  9. <mat-label>Filter site</mat-label>
  10. <input matInput (keyup.enter)="filterBySite($any($event.target).value)" placeholder="type site then Enter">
  11. </mat-form-field>
  12. <button mat-button color="accent" (click)="load()">Refresh</button>
  13. </div>
  14. <div class="table-wrap" *ngIf="harvests?.length; else noData">
  15. <table mat-table [dataSource]="harvests" class="mat-elevation-z2">
  16. <ng-container matColumnDef="harvestDate">
  17. <th mat-header-cell *matHeaderCellDef>Date</th>
  18. <td mat-cell *matCellDef="let el">{{ el.harvestDate | date: 'yyyy-MM-dd' }}</td>
  19. </ng-container>
  20. <ng-container matColumnDef="site">
  21. <th mat-header-cell *matHeaderCellDef>Site</th>
  22. <td mat-cell *matCellDef="let el">{{ el.site }}</td>
  23. </ng-container>
  24. <ng-container matColumnDef="phase">
  25. <th mat-header-cell *matHeaderCellDef>Phase</th>
  26. <td mat-cell *matCellDef="let el">{{ el.phase }}</td>
  27. </ng-container>
  28. <ng-container matColumnDef="block">
  29. <th mat-header-cell *matHeaderCellDef>Block</th>
  30. <td mat-cell *matCellDef="let el">{{ el.block }}</td>
  31. </ng-container>
  32. <ng-container matColumnDef="weight">
  33. <th mat-header-cell *matHeaderCellDef>Weight</th>
  34. <td mat-cell *matCellDef="let el">{{ el.weight }} {{ el.weightUOM }}</td>
  35. </ng-container>
  36. <ng-container matColumnDef="quantity">
  37. <th mat-header-cell *matHeaderCellDef>Qty</th>
  38. <td mat-cell *matCellDef="let el">{{ el.quantity }} {{ el.quantityUOM }}</td>
  39. </ng-container>
  40. <ng-container matColumnDef="actions">
  41. <th mat-header-cell *matHeaderCellDef>Actions</th>
  42. <td mat-cell *matCellDef="let el">
  43. <button mat-icon-button color="accent" (click)="showDetails(el._id)" title="Details">
  44. <mat-icon>visibility</mat-icon>
  45. </button>
  46. <button mat-icon-button color="warn" (click)="remove(el._id)" title="Delete">
  47. <mat-icon>delete</mat-icon>
  48. </button>
  49. </td>
  50. </ng-container>
  51. <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
  52. <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
  53. </table>
  54. </div>
  55. <ng-template #noData>
  56. <p>No harvest data found.</p>
  57. </ng-template>
  58. <div class="chart" *ngIf="harvests && harvests.length">
  59. <canvas baseChart [data]="chartData" [options]="chartOptions" chartType="line"></canvas>
  60. </div>
  61. <div id="ffb-form" class="form-area" *ngIf="editing">
  62. <h3>Create Harvest</h3>
  63. <form [formGroup]="form" (ngSubmit)="submit()">
  64. <div class="row">
  65. <mat-form-field appearance="outline">
  66. <mat-label>Harvest Date</mat-label>
  67. <input matInput [matDatepicker]="picker" formControlName="harvestDate" placeholder="Choose a date" />
  68. <mat-datepicker-toggle matIconSuffix [for]="picker"></mat-datepicker-toggle>
  69. <mat-datepicker #picker></mat-datepicker>
  70. </mat-form-field>
  71. <mat-form-field appearance="outline">
  72. <mat-label>Site</mat-label>
  73. <input matInput formControlName="site">
  74. </mat-form-field>
  75. </div>
  76. <div class="row">
  77. <mat-form-field appearance="outline">
  78. <mat-label>Phase</mat-label>
  79. <input matInput formControlName="phase">
  80. </mat-form-field>
  81. <mat-form-field appearance="outline">
  82. <mat-label>Block</mat-label>
  83. <input matInput formControlName="block">
  84. </mat-form-field>
  85. </div>
  86. <div class="row">
  87. <mat-form-field appearance="outline">
  88. <mat-label>Harvester</mat-label>
  89. <input matInput formControlName="harvester">
  90. </mat-form-field>
  91. <mat-form-field appearance="outline">
  92. <mat-label>Days of Work</mat-label>
  93. <input matInput type="number" formControlName="daysOfWork">
  94. </mat-form-field>
  95. </div>
  96. <div class="row">
  97. <mat-form-field appearance="outline">
  98. <mat-label>Weight</mat-label>
  99. <input matInput type="number" formControlName="weight">
  100. </mat-form-field>
  101. <mat-form-field appearance="outline">
  102. <mat-label>Weight UOM</mat-label>
  103. <mat-select formControlName="weightUOM">
  104. <mat-option value="kg">kg</mat-option>
  105. <mat-option value="ton">ton</mat-option>
  106. </mat-select>
  107. </mat-form-field>
  108. </div>
  109. <div class="row">
  110. <mat-form-field appearance="outline">
  111. <mat-label>Quantity</mat-label>
  112. <input matInput type="number" formControlName="quantity">
  113. </mat-form-field>
  114. <mat-form-field appearance="outline">
  115. <mat-label>Quantity UOM</mat-label>
  116. <mat-select formControlName="quantityUOM">
  117. <mat-option value="bunch">bunch</mat-option>
  118. <mat-option value="kg">kg</mat-option>
  119. </mat-select>
  120. </mat-form-field>
  121. </div>
  122. <div class="form-actions">
  123. <button mat-flat-button color="primary" type="submit">Create</button>
  124. <button mat-button type="button" (click)="cancel()">Cancel</button>
  125. </div>
  126. </form>
  127. </div>
  128. </mat-card-content>
  129. </mat-card>