blob: d0805d4188bcf3fce0aeabdc9931e90773c5e36a [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>
31 <div class="buttons">
32 <!-- hack to right align the next button -->
33 <div></div>
34 <button class="btn btn-primary" (click)="nextSection()">Next</button>
35 </div>
36 </div>
37
38 <div *ngSwitchCase="'Auto'" id="auto" class="container-fluid">
39 <div class="row">
Philipp Schrader45721a72022-04-02 16:27:53 -070040 <img
41 src="/sha256/cbb99a057a2504e80af526dae7a0a04121aed84c56a6f4889e9576fe1c20c61e/pictures/field/quadrants.jpeg"
42 alt="Quadrants Image"
43 />
Philipp Schrader817cce32022-03-26 15:00:00 -070044 <form>
45 <input
46 type="radio"
47 [(ngModel)]="quadrant"
48 name="quadrant"
49 id="quadrant1"
50 [value]="1"
51 />
52 <label for="quadrant1">Quadrant 1</label>
53 <input
54 type="radio"
55 [(ngModel)]="quadrant"
56 name="quadrant"
57 id="quadrant2"
58 [value]="2"
59 />
60 <label for="quadrant2">Quadrant 2</label>
61 <br />
62 <input
63 type="radio"
64 [(ngModel)]="quadrant"
65 name="quadrant"
66 id="quadrant3"
67 [value]="3"
68 />
69 <label for="quadrant3">Quadrant 3</label>
70 <input
71 type="radio"
72 [(ngModel)]="quadrant"
73 name="quadrant"
74 id="quadrant4"
75 [value]="4"
76 />
77 <label for="quadrant4">Quadrant 4</label>
78 </form>
79 </div>
80 <div class="row">
Philipp Schrader45721a72022-04-02 16:27:53 -070081 <img
82 src="/sha256/cbb99a057a2504e80af526dae7a0a04121aed84c56a6f4889e9576fe1c20c61e/pictures/field/balls.jpeg"
83 alt="Image"
84 />
Philipp Schrader817cce32022-03-26 15:00:00 -070085 <form>
86 <!--Choice for each ball location-->
87 <input
88 [(ngModel)]="ball1"
89 type="checkbox"
90 name="1ball"
91 value="1"
92 id="ball-1"
93 />
94 <label for="ball-1">Ball 1</label>
95 <input
96 [(ngModel)]="ball2"
97 type="checkbox"
98 name="2ball"
99 value="2"
100 id="ball-2"
101 />
102 <label for="ball-2">Ball 2</label>
103 <br />
104 <input
105 [(ngModel)]="ball3"
106 type="checkbox"
107 name="3ball"
108 value="3"
109 id="ball-3"
110 />
111 <label for="ball-3">Ball 3</label>
112 <input
113 [(ngModel)]="ball4"
114 type="checkbox"
115 name="4ball"
116 value="4"
117 id="ball-4"
118 />
119 <label for="ball-4">Ball 4</label>
120 <br />
121 <input
122 [(ngModel)]="ball5"
123 type="checkbox"
124 name="5ball"
125 value="5"
126 id="ball-5"
127 />
128 <label for="ball-5">Ball 5</label>
129 </form>
130 </div>
131 <div class="row justify-content-center">
132 <frc971-counter-button class="col-4" [(value)]="autoUpperShotsMade">
133 Upper
134 </frc971-counter-button>
135 <frc971-counter-button class="col-4" [(value)]="autoLowerShotsMade">
136 Lower
137 </frc971-counter-button>
138 <frc971-counter-button class="col-4" [(value)]="autoShotsMissed">
139 Missed
140 </frc971-counter-button>
141 </div>
142 <div class="buttons">
143 <button class="btn btn-primary" (click)="prevSection()">Back</button>
144 <button class="btn btn-primary" (click)="nextSection()">Next</button>
145 </div>
146 </div>
147
148 <div *ngSwitchCase="'TeleOp'" id="teleop" class="container-fluid">
149 <div class="row justify-content-center">
150 <frc971-counter-button class="col-4" [(value)]="teleUpperShotsMade">
151 Upper
152 </frc971-counter-button>
153 <frc971-counter-button class="col-4" [(value)]="teleLowerShotsMade">
154 Lower
155 </frc971-counter-button>
156 <frc971-counter-button class="col-4" [(value)]="teleShotsMissed">
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="'Climb'" id="climb" class="container-fluid">
167 <form>
168 <input
169 [(ngModel)]="level"
170 type="radio"
171 name="level"
172 id="no_attempt"
173 [value]="ClimbLevel.NoAttempt"
174 />
175 <label for="no_attempt">No climbing attempt</label>
176 <br />
177 <input
178 [(ngModel)]="level"
179 type="radio"
180 name="level"
181 id="low"
182 [value]="ClimbLevel.Low"
183 />
184 <label for="low">Low</label>
185 <br />
186 <input
187 [(ngModel)]="level"
188 type="radio"
189 name="level"
190 id="medium"
191 [value]="ClimbLevel.Medium"
192 />
193 <label for="medium">Medium</label>
194 <br />
195 <input
196 [(ngModel)]="level"
197 type="radio"
198 name="level"
199 id="high"
200 [value]="ClimbLevel.High"
201 />
202 <label for="high">High</label>
203 <br />
204 <input
205 [(ngModel)]="level"
206 type="radio"
207 name="level"
208 id="transversal"
209 [value]="ClimbLevel.Transversal"
210 />
211 <label for="transversal">Transversal</label>
212 <br />
213 <input
214 [(ngModel)]="level"
215 type="radio"
216 name="level"
217 id="failed"
218 [value]="ClimbLevel.Failed"
219 />
220 <label for="failed">Failed</label>
221 <br />
222 <input
223 [(ngModel)]="level"
224 type="radio"
225 name="level"
226 id="failed_with_plenty_of_time"
227 [value]="ClimbLevel.FailedWithPlentyOfTime"
228 />
229 <label for="failed_with_plenty_of_time">
230 Failed (attempted with more than 10 seconds left)
231 </label>
232 <br />
233 </form>
234 <div class="row">
235 <h4>Comments</h4>
236 <textarea [(ngModel)]="comment" id="comment"></textarea>
237 </div>
238 <div class="buttons">
239 <button class="btn btn-primary" (click)="prevSection()">Back</button>
240 <button class="btn btn-primary" (click)="nextSection()">Next</button>
241 </div>
242 </div>
243
244 <div *ngSwitchCase="'Other'" id="defense" class="container-fluid">
245 <h4 class="text-center">
246 How much did other robots play defense against this robot?
247 </h4>
248 0 - No defense played against this robot
249 <br />
250 1 - Minimal defense
251 <br />
252 2 - Some defense
253 <br />
254 3 - About half the match was played against defense
255 <br />
256 4 - Good amount of defense
257 <br />
258 5 - Constant defense
259 <div class="row" style="min-height: 50px">
260 <div class="col-10">
261 <input
262 type="range"
263 min="0"
264 max="5"
265 [(ngModel)]="defensePlayedOnScore"
266 />
267 </div>
268 <div class="col">
269 <h6>{{defensePlayedOnScore}}</h6>
270 </div>
Philipp Schrader93ade042022-03-05 17:16:10 -0800271 </div>
272
Philipp Schrader817cce32022-03-26 15:00:00 -0700273 <h4 class="text-center">
274 How much did this robot play defense against other robots?
275 </h4>
276 0 - This robot did not play defense
277 <br />
278 1 - Minimal defense
279 <br />
280 2 - Some defense
281 <br />
282 3 - Defense was played for about half the match
283 <br />
284 4 - Good amount of defense
285 <br />
286 5 - Constant defense
287 <div class="row">
288 <div class="col-10">
289 <input type="range" min="0" max="5" [(ngModel)]="defensePlayedScore" />
290 </div>
291 <div class="col">
292 <h6>{{defensePlayedScore}}</h6>
293 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800294 </div>
295
Philipp Schrader817cce32022-03-26 15:00:00 -0700296 <div class="row">
297 <form>
298 <input
299 type="checkbox"
300 [(ngModel)]="noShow"
301 name="no_show"
302 id="no_show"
303 />
304 <label for="no_show">No show</label>
305 <br />
306 <input
307 type="checkbox"
308 [(ngModel)]="neverMoved"
309 name="never_moved"
310 id="never_moved"
311 />
312 <label for="never_moved">Never moved</label>
313 <br />
314 <input
315 type="checkbox"
316 [(ngModel)]="batteryDied"
317 name="battery_died"
318 id="battery_died"
319 />
320 <label for="battery_died">Battery died</label>
321 <br />
322 <input
323 type="checkbox"
324 [(ngModel)]="mechanicallyBroke"
325 name="mechanically_broke"
326 id="mechanically_broke"
327 />
328 <label for="mechanically_broke">Broke (mechanically)</label>
329 <br />
330 <input
331 type="checkbox"
332 [(ngModel)]="lostComs"
333 name="lost_coms"
334 id="lost_coms"
335 />
336 <label for="lost_coms">Lost coms</label>
337 </form>
Philipp Schrader80587432022-03-05 15:41:22 -0800338 </div>
339
Philipp Schrader817cce32022-03-26 15:00:00 -0700340 <div class="buttons">
341 <button class="btn btn-primary" (click)="prevSection()">Back</button>
342 <button class="btn btn-primary" (click)="nextSection()">Next</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800343 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700344 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800345
Philipp Schrader817cce32022-03-26 15:00:00 -0700346 <div *ngSwitchCase="'Review and Submit'" id="review" class="container-fluid">
347 <h4>Team Selection</h4>
348 <ul>
349 <li>Match number: {{matchNumber}}</li>
350 <li>Team number: {{teamNumber}}</li>
351 </ul>
Philipp Schrader80587432022-03-05 15:41:22 -0800352
Philipp Schrader817cce32022-03-26 15:00:00 -0700353 <h4>Auto</h4>
354 <ul>
355 <li>Quadrant: {{quadrant}}</li>
356 <li>Collected Ball 1: {{ball1}}</li>
357 <li>Collected Ball 2: {{ball2}}</li>
358 <li>Collected Ball 3: {{ball3}}</li>
359 <li>Collected Ball 4: {{ball4}}</li>
360 <li>Collected Ball 5: {{ball5}}</li>
361 <li>Upper Shots Made: {{autoUpperShotsMade}}</li>
362 <li>Lower Shots Made: {{autoLowerShotsMade}}</li>
363 <li>Missed Shots: {{autoShotsMissed}}</li>
364 </ul>
Philipp Schrader80587432022-03-05 15:41:22 -0800365
Philipp Schrader817cce32022-03-26 15:00:00 -0700366 <h4>TeleOp</h4>
367 <ul>
368 <li>Upper Shots Made: {{teleUpperShotsMade}}</li>
369 <li>Lower Shots Made: {{teleLowerShotsMade}}</li>
370 <li>Missed Shots: {{teleShotsMissed}}</li>
371 </ul>
Philipp Schradere279e1a2022-03-15 22:20:10 -0700372
Philipp Schrader817cce32022-03-26 15:00:00 -0700373 <h4>Climb</h4>
374 <ul>
375 <li>Level: {{level | levelToString}}</li>
376 <li>Comments: {{comment}}</li>
377 </ul>
378
379 <h4>Other</h4>
380 <ul>
381 <li>Defense Played On Rating: {{defensePlayedOnScore}}</li>
382 <li>Defense Played Rating: {{defensePlayedScore}}</li>
383 <li>No show: {{noShow}}</li>
384 <li>Never moved: {{neverMoved}}</li>
385 <li>Battery died: {{batteryDied}}</li>
386 <li>Broke (mechanically): {{mechanicallyBroke}}</li>
387 <li>Lost coms: {{lostComs}}</li>
388 </ul>
389
390 <span class="error_message">{{ errorMessage }}</span>
391
392 <div class="buttons">
393 <button class="btn btn-primary" (click)="prevSection()">Back</button>
394 <button class="btn btn-primary" (click)="nextSection()">Submit</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800395 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700396 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800397
Philipp Schrader817cce32022-03-26 15:00:00 -0700398 <div *ngSwitchCase="'Success'" id="success" class="container-fluid">
399 <span>Successfully submitted scouting data.</span>
400 <div class="buttons justify-content-end">
401 <button class="btn btn-primary" (click)="nextSection()">Continue</button>
Philipp Schrader80587432022-03-05 15:41:22 -0800402 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -0700403 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800404</ng-container>