blob: c7bf3d616582949315bcc7c79ed075af51347d65 [file] [log] [blame]
Philipp Schrader6b2e9502022-03-15 23:42:56 -07001<div class="header" #header>
Philipp Schrader817cce32022-03-26 15:00:00 -07002 <h2>{{section}}</h2>
Philipp Schrader80587432022-03-05 15:41:22 -08003</div>
4
5<ng-container [ngSwitch]="section">
Philipp Schrader817cce32022-03-26 15:00:00 -07006 <div
7 *ngSwitchCase="'Team Selection'"
8 id="team_selection"
9 class="container-fluid"
10 >
11 <div class="row">
12 <label for="match_number">Match Number</label>
13 <input
14 [(ngModel)]="matchNumber"
15 type="number"
16 id="match_number"
17 min="1"
18 max="999"
19 />
20 </div>
21 <div class="row">
22 <label for="team_number">Team Number</label>
23 <input
24 [(ngModel)]="teamNumber"
25 type="number"
26 id="team_number"
27 min="1"
28 max="9999"
29 />
30 </div>
Philipp Schrader8aeb14f2022-04-08 21:23:18 -070031 <div class="row">
32 <label for="round">Round</label>
33 <input [(ngModel)]="round" type="number" id="round" min="1" max="10" />
34 </div>
35 <div class="row">
36 <label for="comp_level">Round</label>
37 <select [(ngModel)]="compLevel" type="number" id="comp_level">
38 <option *ngFor="let level of COMP_LEVELS" [ngValue]="level">
39 {{COMP_LEVEL_LABELS[level]}}
40 </option>
41 </select>
42 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -070043 <div class="buttons">
44 <!-- hack to right align the next button -->
45 <div></div>
46 <button class="btn btn-primary" (click)="nextSection()">Next</button>
47 </div>
48 </div>
49
50 <div *ngSwitchCase="'Auto'" id="auto" class="container-fluid">
51 <div class="row">
Philipp Schrader45721a72022-04-02 16:27:53 -070052 <img
53 src="/sha256/cbb99a057a2504e80af526dae7a0a04121aed84c56a6f4889e9576fe1c20c61e/pictures/field/quadrants.jpeg"
54 alt="Quadrants Image"
55 />
Philipp Schrader817cce32022-03-26 15:00:00 -070056 <form>
57 <input
58 type="radio"
59 [(ngModel)]="quadrant"
60 name="quadrant"
61 id="quadrant1"
62 [value]="1"
63 />
64 <label for="quadrant1">Quadrant 1</label>
65 <input
66 type="radio"
67 [(ngModel)]="quadrant"
68 name="quadrant"
69 id="quadrant2"
70 [value]="2"
71 />
72 <label for="quadrant2">Quadrant 2</label>
73 <br />
74 <input
75 type="radio"
76 [(ngModel)]="quadrant"
77 name="quadrant"
78 id="quadrant3"
79 [value]="3"
80 />
81 <label for="quadrant3">Quadrant 3</label>
82 <input
83 type="radio"
84 [(ngModel)]="quadrant"
85 name="quadrant"
86 id="quadrant4"
87 [value]="4"
88 />
89 <label for="quadrant4">Quadrant 4</label>
90 </form>
91 </div>
92 <div class="row">
Philipp Schrader45721a72022-04-02 16:27:53 -070093 <img
Alex Perry0925c342022-04-06 20:21:00 -070094 src="/sha256/e095cc8a75d804b0e2070e0a941fab37154176756d4c1a775e53cc48c3a732b9/pictures/field/balls.jpeg"
Philipp Schrader45721a72022-04-02 16:27:53 -070095 alt="Image"
96 />
Philipp Schrader817cce32022-03-26 15:00:00 -070097 <form>
98 <!--Choice for each ball location-->
99 <input
100 [(ngModel)]="ball1"
101 type="checkbox"
102 name="1ball"
103 value="1"
104 id="ball-1"
105 />
106 <label for="ball-1">Ball 1</label>
107 <input
108 [(ngModel)]="ball2"
109 type="checkbox"
110 name="2ball"
111 value="2"
112 id="ball-2"
113 />
114 <label for="ball-2">Ball 2</label>
115 <br />
116 <input
117 [(ngModel)]="ball3"
118 type="checkbox"
119 name="3ball"
120 value="3"
121 id="ball-3"
122 />
123 <label for="ball-3">Ball 3</label>
124 <input
125 [(ngModel)]="ball4"
126 type="checkbox"
127 name="4ball"
128 value="4"
129 id="ball-4"
130 />
131 <label for="ball-4">Ball 4</label>
132 <br />
133 <input
134 [(ngModel)]="ball5"
135 type="checkbox"
136 name="5ball"
137 value="5"
138 id="ball-5"
139 />
140 <label for="ball-5">Ball 5</label>
141 </form>
142 </div>
143 <div class="row justify-content-center">
144 <frc971-counter-button class="col-4" [(value)]="autoUpperShotsMade">
145 Upper
146 </frc971-counter-button>
147 <frc971-counter-button class="col-4" [(value)]="autoLowerShotsMade">
148 Lower
149 </frc971-counter-button>
150 <frc971-counter-button class="col-4" [(value)]="autoShotsMissed">
151 Missed
152 </frc971-counter-button>
153 </div>
154 <div class="buttons">
155 <button class="btn btn-primary" (click)="prevSection()">Back</button>
156 <button class="btn btn-primary" (click)="nextSection()">Next</button>
157 </div>
158 </div>
159
160 <div *ngSwitchCase="'TeleOp'" id="teleop" class="container-fluid">
161 <div class="row justify-content-center">
162 <frc971-counter-button class="col-4" [(value)]="teleUpperShotsMade">
163 Upper
164 </frc971-counter-button>
165 <frc971-counter-button class="col-4" [(value)]="teleLowerShotsMade">
166 Lower
167 </frc971-counter-button>
168 <frc971-counter-button class="col-4" [(value)]="teleShotsMissed">
169 Missed
170 </frc971-counter-button>
171 </div>
172 <div class="buttons">
173 <button class="btn btn-primary" (click)="prevSection()">Back</button>
174 <button class="btn btn-primary" (click)="nextSection()">Next</button>
175 </div>
176 </div>
177
178 <div *ngSwitchCase="'Climb'" id="climb" class="container-fluid">
179 <form>
180 <input
181 [(ngModel)]="level"
182 type="radio"
183 name="level"
184 id="no_attempt"
185 [value]="ClimbLevel.NoAttempt"
186 />
187 <label for="no_attempt">No climbing attempt</label>
188 <br />
189 <input
190 [(ngModel)]="level"
191 type="radio"
192 name="level"
193 id="low"
194 [value]="ClimbLevel.Low"
195 />
196 <label for="low">Low</label>
197 <br />
198 <input
199 [(ngModel)]="level"
200 type="radio"
201 name="level"
202 id="medium"
203 [value]="ClimbLevel.Medium"
204 />
205 <label for="medium">Medium</label>
206 <br />
207 <input
208 [(ngModel)]="level"
209 type="radio"
210 name="level"
211 id="high"
212 [value]="ClimbLevel.High"
213 />
214 <label for="high">High</label>
215 <br />
216 <input
217 [(ngModel)]="level"
218 type="radio"
219 name="level"
Philipp Schrader85f6e5b2022-04-16 14:20:06 -0700220 id="traversal"
221 [value]="ClimbLevel.Traversal"
Philipp Schrader817cce32022-03-26 15:00:00 -0700222 />
Philipp Schrader85f6e5b2022-04-16 14:20:06 -0700223 <label for="traversal">Traversal</label>
Philipp Schrader817cce32022-03-26 15:00:00 -0700224 <br />
225 <input
226 [(ngModel)]="level"
227 type="radio"
228 name="level"
229 id="failed"
230 [value]="ClimbLevel.Failed"
231 />
232 <label for="failed">Failed</label>
233 <br />
234 <input
235 [(ngModel)]="level"
236 type="radio"
237 name="level"
238 id="failed_with_plenty_of_time"
239 [value]="ClimbLevel.FailedWithPlentyOfTime"
240 />
241 <label for="failed_with_plenty_of_time">
242 Failed (attempted with more than 10 seconds left)
243 </label>
244 <br />
245 </form>
246 <div class="row">
247 <h4>Comments</h4>
248 <textarea [(ngModel)]="comment" id="comment"></textarea>
249 </div>
250 <div class="buttons">
251 <button class="btn btn-primary" (click)="prevSection()">Back</button>
252 <button class="btn btn-primary" (click)="nextSection()">Next</button>
253 </div>
254 </div>
255
256 <div *ngSwitchCase="'Other'" id="defense" class="container-fluid">
257 <h4 class="text-center">
258 How much did other robots play defense against this robot?
259 </h4>
260 0 - No defense played against this robot
261 <br />
262 1 - Minimal defense
263 <br />
264 2 - Some defense
265 <br />
266 3 - About half the match was played against defense
267 <br />
268 4 - Good amount of defense
269 <br />
270 5 - Constant defense
271 <div class="row" style="min-height: 50px">
272 <div class="col-10">
273 <input
274 type="range"
275 min="0"
276 max="5"
277 [(ngModel)]="defensePlayedOnScore"
278 />
279 </div>
280 <div class="col">
281 <h6>{{defensePlayedOnScore}}</h6>
282 </div>
Philipp Schrader93ade042022-03-05 17:16:10 -0800283 </div>
284
Philipp Schrader817cce32022-03-26 15:00:00 -0700285 <h4 class="text-center">
286 How much did this robot play defense against other robots?
287 </h4>
288 0 - This robot did not play defense
289 <br />
290 1 - Minimal defense
291 <br />
292 2 - Some defense
293 <br />
294 3 - Defense was played for about half the match
295 <br />
296 4 - Good amount of defense
297 <br />
298 5 - Constant defense
299 <div class="row">
300 <div class="col-10">
301 <input type="range" min="0" max="5" [(ngModel)]="defensePlayedScore" />
302 </div>
303 <div class="col">
304 <h6>{{defensePlayedScore}}</h6>
305 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800306 </div>
307
Philipp Schrader817cce32022-03-26 15:00:00 -0700308 <div class="row">
309 <form>
310 <input
311 type="checkbox"
312 [(ngModel)]="noShow"
313 name="no_show"
314 id="no_show"
315 />
316 <label for="no_show">No show</label>
317 <br />
318 <input
319 type="checkbox"
320 [(ngModel)]="neverMoved"
321 name="never_moved"
322 id="never_moved"
323 />
324 <label for="never_moved">Never moved</label>
325 <br />
326 <input
327 type="checkbox"
328 [(ngModel)]="batteryDied"
329 name="battery_died"
330 id="battery_died"
331 />
332 <label for="battery_died">Battery died</label>
333 <br />
334 <input
335 type="checkbox"
336 [(ngModel)]="mechanicallyBroke"
337 name="mechanically_broke"
338 id="mechanically_broke"
339 />
340 <label for="mechanically_broke">Broke (mechanically)</label>
341 <br />
342 <input
343 type="checkbox"
344 [(ngModel)]="lostComs"
345 name="lost_coms"
346 id="lost_coms"
347 />
348 <label for="lost_coms">Lost coms</label>
349 </form>
Philipp Schrader80587432022-03-05 15:41:22 -0800350 </div>
351
Philipp Schrader817cce32022-03-26 15:00:00 -0700352 <div class="buttons">
353 <button class="btn btn-primary" (click)="prevSection()">Back</button>
354 <button class="btn btn-primary" (click)="nextSection()">Next</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800355 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700356 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800357
Philipp Schrader817cce32022-03-26 15:00:00 -0700358 <div *ngSwitchCase="'Review and Submit'" id="review" class="container-fluid">
359 <h4>Team Selection</h4>
360 <ul>
361 <li>Match number: {{matchNumber}}</li>
362 <li>Team number: {{teamNumber}}</li>
Philipp Schrader8aeb14f2022-04-08 21:23:18 -0700363 <li>Round: {{round}}</li>
364 <li>Comp Level: {{COMP_LEVEL_LABELS[compLevel]}}</li>
Philipp Schrader817cce32022-03-26 15:00:00 -0700365 </ul>
Philipp Schrader80587432022-03-05 15:41:22 -0800366
Philipp Schrader817cce32022-03-26 15:00:00 -0700367 <h4>Auto</h4>
368 <ul>
369 <li>Quadrant: {{quadrant}}</li>
370 <li>Collected Ball 1: {{ball1}}</li>
371 <li>Collected Ball 2: {{ball2}}</li>
372 <li>Collected Ball 3: {{ball3}}</li>
373 <li>Collected Ball 4: {{ball4}}</li>
374 <li>Collected Ball 5: {{ball5}}</li>
375 <li>Upper Shots Made: {{autoUpperShotsMade}}</li>
376 <li>Lower Shots Made: {{autoLowerShotsMade}}</li>
377 <li>Missed Shots: {{autoShotsMissed}}</li>
378 </ul>
Philipp Schrader80587432022-03-05 15:41:22 -0800379
Philipp Schrader817cce32022-03-26 15:00:00 -0700380 <h4>TeleOp</h4>
381 <ul>
382 <li>Upper Shots Made: {{teleUpperShotsMade}}</li>
383 <li>Lower Shots Made: {{teleLowerShotsMade}}</li>
384 <li>Missed Shots: {{teleShotsMissed}}</li>
385 </ul>
Philipp Schradere279e1a2022-03-15 22:20:10 -0700386
Philipp Schrader817cce32022-03-26 15:00:00 -0700387 <h4>Climb</h4>
388 <ul>
Philipp Schrader8aeb14f2022-04-08 21:23:18 -0700389 <li>Climb Level: {{level | levelToString}}</li>
Philipp Schrader817cce32022-03-26 15:00:00 -0700390 <li>Comments: {{comment}}</li>
391 </ul>
392
393 <h4>Other</h4>
394 <ul>
395 <li>Defense Played On Rating: {{defensePlayedOnScore}}</li>
396 <li>Defense Played Rating: {{defensePlayedScore}}</li>
397 <li>No show: {{noShow}}</li>
398 <li>Never moved: {{neverMoved}}</li>
399 <li>Battery died: {{batteryDied}}</li>
400 <li>Broke (mechanically): {{mechanicallyBroke}}</li>
401 <li>Lost coms: {{lostComs}}</li>
402 </ul>
403
404 <span class="error_message">{{ errorMessage }}</span>
405
406 <div class="buttons">
407 <button class="btn btn-primary" (click)="prevSection()">Back</button>
408 <button class="btn btn-primary" (click)="nextSection()">Submit</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800409 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700410 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800411
Philipp Schrader817cce32022-03-26 15:00:00 -0700412 <div *ngSwitchCase="'Success'" id="success" class="container-fluid">
413 <span>Successfully submitted scouting data.</span>
414 <div class="buttons justify-content-end">
415 <button class="btn btn-primary" (click)="nextSection()">Continue</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800416 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700417 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800418</ng-container>