blob: 72fc1400e29251ea76d2f3fac0fc86062318245b [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>
Filip Kujawa0ef334c2023-02-20 19:42:45 -080052 <button class="btn btn-primary" (click)="changeSectionTo('Init');">
53 Next
54 </button>
Philipp Schrader817cce32022-03-26 15:00:00 -070055 </div>
56 </div>
57
Filip Kujawa0ef334c2023-02-20 19:42:45 -080058 <div *ngSwitchCase="'Init'" id="init" class="container-fluid">
59 <h2>Select Starting Position</h2>
60 <div *ngFor="let i of [1, 2, 3, 4]">
61 <label>
Philipp Schrader817cce32022-03-26 15:00:00 -070062 <input
63 type="radio"
Filip Kujawa0ef334c2023-02-20 19:42:45 -080064 name="radio-group"
65 [value]="i"
66 (change)="selectedValue = $event.target.value"
Philipp Schrader817cce32022-03-26 15:00:00 -070067 />
Filip Kujawa0ef334c2023-02-20 19:42:45 -080068 {{ i }}
Philipp Schrader817cce32022-03-26 15:00:00 -070069 </label>
Filip Kujawa0ef334c2023-02-20 19:42:45 -080070 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -070071 <div class="buttons">
Filip Kujawa375aaac2023-02-28 21:43:47 -080072 <!-- Creates a responsive stack of full-width, "block buttons". -->
Filip Kujawa36f56082023-03-03 10:58:53 -080073 <div class="d-grid gap-5">
Filip Kujawa375aaac2023-02-28 21:43:47 -080074 <button
75 class="btn btn-primary"
76 [disabled]="!selectedValue"
77 (click)="changeSectionTo('Pickup'); addAction({type: 'startMatchAction', position: selectedValue});"
78 >
79 Start Match
80 </button>
81 </div>
Philipp Schrader817cce32022-03-26 15:00:00 -070082 </div>
83 </div>
84
Filip Kujawa0ef334c2023-02-20 19:42:45 -080085 <div *ngSwitchCase="'Pickup'" id="PickUp" class="container-fluid">
Filip Kujawa36f56082023-03-03 10:58:53 -080086 <div class="d-grid gap-5">
Filip Kujawa375aaac2023-02-28 21:43:47 -080087 <button class="btn btn-danger" (click)="undoLastAction()">UNDO</button>
88 <button
89 class="btn btn-warning"
90 (click)="changeSectionTo('Place'); addAction({type: 'pickupObjectAction', objectType: ObjectType.kCone});"
91 >
92 CONE
93 </button>
94 <button
95 class="btn btn-primary"
96 (click)="changeSectionTo('Place'); addAction({type: 'pickupObjectAction', objectType: ObjectType.kCube});"
97 >
98 CUBE
99 </button>
100 <!-- 'Balancing' during auto. -->
101 <div *ngIf="autoPhase" class="d-grid gap-2">
102 <label>
103 <input type="checkbox" (change)="dockedValue = $event.target.value" />
104 Docked
105 </label>
106 <label>
107 <input
108 type="checkbox"
109 (change)="engagedValue = $event.target.value"
110 />
111 Engaged
112 </label>
113 <br />
114 <button
115 class="btn btn-info"
116 (click)="addAction({type: 'autoBalanceAction', docked: dockedValue, engaged: engagedValue});"
117 >
118 Submit Balancing
119 </button>
120 </div>
121 <button
122 *ngIf="autoPhase"
123 class="btn btn-info"
124 (click)="autoPhase = false; addAction({type: 'endAutoPhase'});"
125 >
126 Start Teleop
127 </button>
128 <button
129 *ngIf="!autoPhase"
130 class="btn btn-info"
131 (click)="changeSectionTo('Endgame')"
132 >
133 Endgame
134 </button>
135 </div>
136 </div>
137
138 <div *ngSwitchCase="'Place'" id="Place" class="container-fluid">
Filip Kujawa36f56082023-03-03 10:58:53 -0800139 <div class="d-grid gap-5">
Filip Kujawa375aaac2023-02-28 21:43:47 -0800140 <button class="btn btn-danger" (click)="undoLastAction()">UNDO</button>
141 <button
142 class="btn btn-success"
143 (click)="changeSectionTo('Pickup'); addAction({type: 'placeObjectAction', scoreLevel: ScoreLevel.kHigh});"
144 >
145 HIGH
146 </button>
147 <button
148 class="btn btn-warning"
149 (click)="changeSectionTo('Pickup'); addAction({type: 'placeObjectAction', scoreLevel: ScoreLevel.kMiddle});"
150 >
151 MID
152 </button>
153 <button
154 class="btn btn-danger"
155 (click)="changeSectionTo('Pickup'); addAction({type: 'placeObjectAction', scoreLevel: ScoreLevel.kLow});"
156 >
157 LOW
158 </button>
159 <!-- 'Balancing' during auto. -->
160 <div *ngIf="autoPhase" class="d-grid gap-2">
161 <label>
162 <input type="checkbox" (change)="dockedValue = $event.target.value" />
163 Docked
164 </label>
165 <label>
166 <input
167 type="checkbox"
168 (change)="engagedValue = $event.target.value"
169 />
170 Engaged
171 </label>
172 <br />
173 <button
174 class="btn btn-info"
175 (click)="addAction({type: 'autoBalanceAction', docked: dockedValue, engaged: engagedValue});"
176 >
177 Submit Balancing
178 </button>
179 </div>
180 <button
181 *ngIf="autoPhase"
182 class="btn btn-info"
183 (click)="autoPhase = false; addAction({type: 'endAutoPhase'});"
184 >
185 Start Teleop
186 </button>
187 <button
188 *ngIf="!autoPhase"
189 class="btn btn-info"
190 (click)="changeSectionTo('Endgame')"
191 >
192 Endgame
193 </button>
194 </div>
195 </div>
196
197 <div *ngSwitchCase="'Endgame'" id="Endgame" class="container-fluid">
Filip Kujawa36f56082023-03-03 10:58:53 -0800198 <div class="d-grid gap-5">
Filip Kujawa375aaac2023-02-28 21:43:47 -0800199 <button class="btn btn-danger" (click)="undoLastAction()">UNDO</button>
Filip Kujawa4413a592023-03-01 10:54:34 -0800200 <label>
201 <input type="checkbox" (change)="dockedValue = $event.target.value" />
202 Docked
203 </label>
204 <label>
205 <input type="checkbox" (change)="engagedValue = $event.target.value" />
206 Engaged
207 </label>
Filip Kujawa4413a592023-03-01 10:54:34 -0800208 <button
Filip Kujawa375aaac2023-02-28 21:43:47 -0800209 *ngIf="!autoPhase"
Filip Kujawa4413a592023-03-01 10:54:34 -0800210 class="btn btn-info"
Filip Kujawa375aaac2023-02-28 21:43:47 -0800211 (click)="changeSectionTo('Review and Submit'); addAction({type: 'endMatchAction', docked: dockedValue, engaged: engagedValue});"
Filip Kujawa4413a592023-03-01 10:54:34 -0800212 >
Filip Kujawa375aaac2023-02-28 21:43:47 -0800213 End Match
Filip Kujawa4413a592023-03-01 10:54:34 -0800214 </button>
215 </div>
Filip Kujawa0ef334c2023-02-20 19:42:45 -0800216 </div>
217
218 <div *ngSwitchCase="'Review and Submit'" id="Review" class="container-fluid">
Filip Kujawa36f56082023-03-03 10:58:53 -0800219 <div class="d-grid gap-5">
Filip Kujawa375aaac2023-02-28 21:43:47 -0800220 <button class="btn btn-danger" (click)="undoLastAction()">UNDO</button>
221 <button
222 *ngIf="!autoPhase"
223 class="btn btn-warning"
224 (click)="submitActions();"
225 >
226 Submit
227 </button>
228 </div>
Filip Kujawa0ef334c2023-02-20 19:42:45 -0800229 </div>
230
231 <div *ngSwitchCase="'Success'" id="Success" class="container-fluid">
232 <h2>Successfully submitted data.</h2>
Philipp Schrader817cce32022-03-26 15:00:00 -0700233 </div>
Philipp Schrader80587432022-03-05 15:41:22 -0800234</ng-container>