blob: 6dab39b26252efd0f07ad0c38c93ae5b773701fe [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">
Philipp Schrader30b4a682022-04-16 14:36:17 -070032 <label for="set_number">Set Number</label>
33 <input
34 [(ngModel)]="setNumber"
35 type="number"
36 id="set_number"
37 min="1"
38 max="10"
39 />
Philipp Schrader8aeb14f2022-04-08 21:23:18 -070040 </div>
41 <div class="row">
Philipp Schrader30b4a682022-04-16 14:36:17 -070042 <label for="comp_level">Comp Level</label>
Philipp Schrader8aeb14f2022-04-08 21:23:18 -070043 <select [(ngModel)]="compLevel" type="number" id="comp_level">
44 <option *ngFor="let level of COMP_LEVELS" [ngValue]="level">
45 {{COMP_LEVEL_LABELS[level]}}
46 </option>
47 </select>
48 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -070049 <div class="buttons">
50 <!-- hack to right align the next button -->
51 <div></div>
52 <button class="btn btn-primary" (click)="nextSection()">Next</button>
53 </div>
54 </div>
55
56 <div *ngSwitchCase="'Auto'" id="auto" class="container-fluid">
57 <div class="row">
Philipp Schrader45721a72022-04-02 16:27:53 -070058 <img
59 src="/sha256/cbb99a057a2504e80af526dae7a0a04121aed84c56a6f4889e9576fe1c20c61e/pictures/field/quadrants.jpeg"
60 alt="Quadrants Image"
61 />
Philipp Schrader817cce32022-03-26 15:00:00 -070062 <form>
63 <input
64 type="radio"
65 [(ngModel)]="quadrant"
66 name="quadrant"
67 id="quadrant1"
68 [value]="1"
69 />
70 <label for="quadrant1">Quadrant 1</label>
71 <input
72 type="radio"
73 [(ngModel)]="quadrant"
74 name="quadrant"
75 id="quadrant2"
76 [value]="2"
77 />
78 <label for="quadrant2">Quadrant 2</label>
79 <br />
80 <input
81 type="radio"
82 [(ngModel)]="quadrant"
83 name="quadrant"
84 id="quadrant3"
85 [value]="3"
86 />
87 <label for="quadrant3">Quadrant 3</label>
88 <input
89 type="radio"
90 [(ngModel)]="quadrant"
91 name="quadrant"
92 id="quadrant4"
93 [value]="4"
94 />
95 <label for="quadrant4">Quadrant 4</label>
96 </form>
97 </div>
98 <div class="row">
Philipp Schrader45721a72022-04-02 16:27:53 -070099 <img
Alex Perry0925c342022-04-06 20:21:00 -0700100 src="/sha256/e095cc8a75d804b0e2070e0a941fab37154176756d4c1a775e53cc48c3a732b9/pictures/field/balls.jpeg"
Philipp Schrader45721a72022-04-02 16:27:53 -0700101 alt="Image"
102 />
Philipp Schrader817cce32022-03-26 15:00:00 -0700103 <form>
104 <!--Choice for each ball location-->
105 <input
106 [(ngModel)]="ball1"
107 type="checkbox"
108 name="1ball"
109 value="1"
110 id="ball-1"
111 />
112 <label for="ball-1">Ball 1</label>
113 <input
114 [(ngModel)]="ball2"
115 type="checkbox"
116 name="2ball"
117 value="2"
118 id="ball-2"
119 />
120 <label for="ball-2">Ball 2</label>
121 <br />
122 <input
123 [(ngModel)]="ball3"
124 type="checkbox"
125 name="3ball"
126 value="3"
127 id="ball-3"
128 />
129 <label for="ball-3">Ball 3</label>
130 <input
131 [(ngModel)]="ball4"
132 type="checkbox"
133 name="4ball"
134 value="4"
135 id="ball-4"
136 />
137 <label for="ball-4">Ball 4</label>
138 <br />
139 <input
140 [(ngModel)]="ball5"
141 type="checkbox"
142 name="5ball"
143 value="5"
144 id="ball-5"
145 />
146 <label for="ball-5">Ball 5</label>
147 </form>
148 </div>
149 <div class="row justify-content-center">
150 <frc971-counter-button class="col-4" [(value)]="autoUpperShotsMade">
151 Upper
152 </frc971-counter-button>
153 <frc971-counter-button class="col-4" [(value)]="autoLowerShotsMade">
154 Lower
155 </frc971-counter-button>
156 <frc971-counter-button class="col-4" [(value)]="autoShotsMissed">
157 Missed
158 </frc971-counter-button>
159 </div>
160 <div class="buttons">
161 <button class="btn btn-primary" (click)="prevSection()">Back</button>
162 <button class="btn btn-primary" (click)="nextSection()">Next</button>
163 </div>
164 </div>
165
166 <div *ngSwitchCase="'TeleOp'" id="teleop" class="container-fluid">
167 <div class="row justify-content-center">
168 <frc971-counter-button class="col-4" [(value)]="teleUpperShotsMade">
169 Upper
170 </frc971-counter-button>
171 <frc971-counter-button class="col-4" [(value)]="teleLowerShotsMade">
172 Lower
173 </frc971-counter-button>
174 <frc971-counter-button class="col-4" [(value)]="teleShotsMissed">
175 Missed
176 </frc971-counter-button>
177 </div>
178 <div class="buttons">
179 <button class="btn btn-primary" (click)="prevSection()">Back</button>
180 <button class="btn btn-primary" (click)="nextSection()">Next</button>
181 </div>
182 </div>
183
184 <div *ngSwitchCase="'Climb'" id="climb" class="container-fluid">
185 <form>
186 <input
187 [(ngModel)]="level"
188 type="radio"
189 name="level"
190 id="no_attempt"
191 [value]="ClimbLevel.NoAttempt"
192 />
193 <label for="no_attempt">No climbing attempt</label>
194 <br />
195 <input
196 [(ngModel)]="level"
197 type="radio"
198 name="level"
199 id="low"
200 [value]="ClimbLevel.Low"
201 />
202 <label for="low">Low</label>
203 <br />
204 <input
205 [(ngModel)]="level"
206 type="radio"
207 name="level"
208 id="medium"
209 [value]="ClimbLevel.Medium"
210 />
211 <label for="medium">Medium</label>
212 <br />
213 <input
214 [(ngModel)]="level"
215 type="radio"
216 name="level"
217 id="high"
218 [value]="ClimbLevel.High"
219 />
220 <label for="high">High</label>
221 <br />
222 <input
223 [(ngModel)]="level"
224 type="radio"
225 name="level"
Philipp Schrader85f6e5b2022-04-16 14:20:06 -0700226 id="traversal"
227 [value]="ClimbLevel.Traversal"
Philipp Schrader817cce32022-03-26 15:00:00 -0700228 />
Philipp Schrader85f6e5b2022-04-16 14:20:06 -0700229 <label for="traversal">Traversal</label>
Philipp Schrader817cce32022-03-26 15:00:00 -0700230 <br />
231 <input
232 [(ngModel)]="level"
233 type="radio"
234 name="level"
235 id="failed"
236 [value]="ClimbLevel.Failed"
237 />
238 <label for="failed">Failed</label>
239 <br />
240 <input
241 [(ngModel)]="level"
242 type="radio"
243 name="level"
244 id="failed_with_plenty_of_time"
245 [value]="ClimbLevel.FailedWithPlentyOfTime"
246 />
247 <label for="failed_with_plenty_of_time">
248 Failed (attempted with more than 10 seconds left)
249 </label>
250 <br />
251 </form>
252 <div class="row">
253 <h4>Comments</h4>
254 <textarea [(ngModel)]="comment" id="comment"></textarea>
255 </div>
256 <div class="buttons">
257 <button class="btn btn-primary" (click)="prevSection()">Back</button>
258 <button class="btn btn-primary" (click)="nextSection()">Next</button>
259 </div>
260 </div>
261
262 <div *ngSwitchCase="'Other'" id="defense" class="container-fluid">
263 <h4 class="text-center">
264 How much did other robots play defense against this robot?
265 </h4>
266 0 - No defense played against this robot
267 <br />
268 1 - Minimal defense
269 <br />
270 2 - Some defense
271 <br />
272 3 - About half the match was played against defense
273 <br />
274 4 - Good amount of defense
275 <br />
276 5 - Constant defense
277 <div class="row" style="min-height: 50px">
278 <div class="col-10">
279 <input
280 type="range"
281 min="0"
282 max="5"
283 [(ngModel)]="defensePlayedOnScore"
284 />
285 </div>
286 <div class="col">
287 <h6>{{defensePlayedOnScore}}</h6>
288 </div>
Philipp Schrader93ade042022-03-05 17:16:10 -0800289 </div>
290
Philipp Schrader817cce32022-03-26 15:00:00 -0700291 <h4 class="text-center">
292 How much did this robot play defense against other robots?
293 </h4>
294 0 - This robot did not play defense
295 <br />
296 1 - Minimal defense
297 <br />
298 2 - Some defense
299 <br />
300 3 - Defense was played for about half the match
301 <br />
302 4 - Good amount of defense
303 <br />
304 5 - Constant defense
305 <div class="row">
306 <div class="col-10">
307 <input type="range" min="0" max="5" [(ngModel)]="defensePlayedScore" />
308 </div>
309 <div class="col">
310 <h6>{{defensePlayedScore}}</h6>
311 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800312 </div>
313
Philipp Schrader817cce32022-03-26 15:00:00 -0700314 <div class="row">
315 <form>
316 <input
317 type="checkbox"
318 [(ngModel)]="noShow"
319 name="no_show"
320 id="no_show"
321 />
322 <label for="no_show">No show</label>
323 <br />
324 <input
325 type="checkbox"
326 [(ngModel)]="neverMoved"
327 name="never_moved"
328 id="never_moved"
329 />
330 <label for="never_moved">Never moved</label>
331 <br />
332 <input
333 type="checkbox"
334 [(ngModel)]="batteryDied"
335 name="battery_died"
336 id="battery_died"
337 />
338 <label for="battery_died">Battery died</label>
339 <br />
340 <input
341 type="checkbox"
342 [(ngModel)]="mechanicallyBroke"
343 name="mechanically_broke"
344 id="mechanically_broke"
345 />
346 <label for="mechanically_broke">Broke (mechanically)</label>
347 <br />
348 <input
349 type="checkbox"
350 [(ngModel)]="lostComs"
351 name="lost_coms"
352 id="lost_coms"
353 />
354 <label for="lost_coms">Lost coms</label>
355 </form>
Philipp Schrader80587432022-03-05 15:41:22 -0800356 </div>
357
Philipp Schrader817cce32022-03-26 15:00:00 -0700358 <div class="buttons">
359 <button class="btn btn-primary" (click)="prevSection()">Back</button>
360 <button class="btn btn-primary" (click)="nextSection()">Next</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800361 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700362 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800363
Philipp Schrader817cce32022-03-26 15:00:00 -0700364 <div *ngSwitchCase="'Review and Submit'" id="review" class="container-fluid">
365 <h4>Team Selection</h4>
366 <ul>
367 <li>Match number: {{matchNumber}}</li>
368 <li>Team number: {{teamNumber}}</li>
Philipp Schrader30b4a682022-04-16 14:36:17 -0700369 <li>SetNumber: {{setNumber}}</li>
Philipp Schrader8aeb14f2022-04-08 21:23:18 -0700370 <li>Comp Level: {{COMP_LEVEL_LABELS[compLevel]}}</li>
Philipp Schrader817cce32022-03-26 15:00:00 -0700371 </ul>
Philipp Schrader80587432022-03-05 15:41:22 -0800372
Philipp Schrader817cce32022-03-26 15:00:00 -0700373 <h4>Auto</h4>
374 <ul>
375 <li>Quadrant: {{quadrant}}</li>
376 <li>Collected Ball 1: {{ball1}}</li>
377 <li>Collected Ball 2: {{ball2}}</li>
378 <li>Collected Ball 3: {{ball3}}</li>
379 <li>Collected Ball 4: {{ball4}}</li>
380 <li>Collected Ball 5: {{ball5}}</li>
381 <li>Upper Shots Made: {{autoUpperShotsMade}}</li>
382 <li>Lower Shots Made: {{autoLowerShotsMade}}</li>
383 <li>Missed Shots: {{autoShotsMissed}}</li>
384 </ul>
Philipp Schrader80587432022-03-05 15:41:22 -0800385
Philipp Schrader817cce32022-03-26 15:00:00 -0700386 <h4>TeleOp</h4>
387 <ul>
388 <li>Upper Shots Made: {{teleUpperShotsMade}}</li>
389 <li>Lower Shots Made: {{teleLowerShotsMade}}</li>
390 <li>Missed Shots: {{teleShotsMissed}}</li>
391 </ul>
Philipp Schradere279e1a2022-03-15 22:20:10 -0700392
Philipp Schrader817cce32022-03-26 15:00:00 -0700393 <h4>Climb</h4>
394 <ul>
Philipp Schrader8aeb14f2022-04-08 21:23:18 -0700395 <li>Climb Level: {{level | levelToString}}</li>
Philipp Schrader817cce32022-03-26 15:00:00 -0700396 <li>Comments: {{comment}}</li>
397 </ul>
398
399 <h4>Other</h4>
400 <ul>
401 <li>Defense Played On Rating: {{defensePlayedOnScore}}</li>
402 <li>Defense Played Rating: {{defensePlayedScore}}</li>
403 <li>No show: {{noShow}}</li>
404 <li>Never moved: {{neverMoved}}</li>
405 <li>Battery died: {{batteryDied}}</li>
406 <li>Broke (mechanically): {{mechanicallyBroke}}</li>
407 <li>Lost coms: {{lostComs}}</li>
408 </ul>
409
410 <span class="error_message">{{ errorMessage }}</span>
411
412 <div class="buttons">
413 <button class="btn btn-primary" (click)="prevSection()">Back</button>
414 <button class="btn btn-primary" (click)="nextSection()">Submit</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800415 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700416 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800417
Philipp Schrader817cce32022-03-26 15:00:00 -0700418 <div *ngSwitchCase="'Success'" id="success" class="container-fluid">
419 <span>Successfully submitted scouting data.</span>
420 <div class="buttons justify-content-end">
421 <button class="btn btn-primary" (click)="nextSection()">Continue</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800422 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700423 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800424</ng-container>