Simplify climbing screen on the scouting app
This patch gets rid of the secondary screen that popped up when
selecting "Attempted to Climb". It was confusing a few people. Now all
options are on the very first screen. Also, I decided to get rid of
all the `set*()` functions. It was simpler to use a two-way connection
for the radio buttons. I also got rid of the "proper" concept. I'm
still not sure what that was all about.
Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
Change-Id: Iaa9c2dda6bb5af2aa14dae50dbe20bcc96ef1bbe
diff --git a/scouting/scouting_test.ts b/scouting/scouting_test.ts
index 2ffa136..2cd3e43 100644
--- a/scouting/scouting_test.ts
+++ b/scouting/scouting_test.ts
@@ -56,6 +56,7 @@
await element(by.buttonText('Next')).click();
expect(await getHeadingText()).toEqual('Climb');
+ await element(by.id('high')).click();
await element(by.buttonText('Next')).click();
expect(await getHeadingText()).toEqual('Defense');
@@ -79,7 +80,7 @@
await expectNthReviewFieldToBe('Missed Shots', 1, '0');
// Validate Climb.
- await expectReviewFieldToBe('Attempted to Climb', 'No');
+ await expectReviewFieldToBe('Level', 'High');
// Validate Defense.
await expectReviewFieldToBe('Defense Played On Rating', '0');
diff --git a/scouting/www/entry/entry.component.ts b/scouting/www/entry/entry.component.ts
index 3db5f72..d83f709 100644
--- a/scouting/www/entry/entry.component.ts
+++ b/scouting/www/entry/entry.component.ts
@@ -10,7 +10,7 @@
import ErrorResponse = error_response.scouting.webserver.requests.ErrorResponse;
type Section = 'Team Selection'|'Auto'|'TeleOp'|'Climb'|'Defense'|'Review and Submit'|'Home'
-type Level = 'Failed'|'Low'|'Medium'|'High'|'Transversal'
+type Level = 'NoAttempt'|'Failed'|'FailedWithPlentyOfTime'|'Low'|'Medium'|'High'|'Transversal'
@Component({
selector: 'app-entry',
@@ -29,35 +29,9 @@
teleShotsMissed: number = 0;
defensePlayedOnScore: number = 0;
defensePlayedScore: number = 0;
- level: Level;
- proper: boolean = false;
- climbed: boolean = false;
+ level: Level = 'NoAttempt';
errorMessage: string = '';
- toggleProper() {
- this.proper = !this.proper;
- }
-
- setFailed() {
- this.level = 'Failed';
- }
-
- setLow() {
- this.level = 'Low';
- }
-
- setMedium() {
- this.level = 'Medium';
- }
-
- setHigh() {
- this.level = 'High';
- }
-
- setTransversal() {
- this.level = 'Transversal';
- }
-
nextSection() {
if (this.section === 'Team Selection') {
this.section = 'Auto';
diff --git a/scouting/www/entry/entry.ng.html b/scouting/www/entry/entry.ng.html
index 2856b29..325ae94 100644
--- a/scouting/www/entry/entry.ng.html
+++ b/scouting/www/entry/entry.ng.html
@@ -68,32 +68,22 @@
</div>
<div *ngSwitchCase="'Climb'" id="climb" class="container-fluid">
- <div class="row">
- <form>
- <input [(ngModel)]="climbed" type="radio" name="climbing" id="continue" [value]="false">
- <label for="continue">Kept Shooting</label><br>
- <input [(ngModel)]="climbed" type="radio" name="climbing" id="climbed" [value]="true">
- <label for="climbed">Attempted to Climb</label><br>
- </form>
- </div>
- <div *ngIf="climbed">
- <h4>Bar Made</h4>
- <form>
- <input [ngModel]="level" (click)="setLow()" type="radio" name="level" id="low" value="Low">
- <label for="low">Low</label><br>
- <input [ngModel]="level" (click)="setMedium()" type="radio" name="level" id="medium" value="Medium">
- <label for="medium">Medium</label><br>
- <input [ngModel]="level" (click)="setHigh()" type="radio" name="level" id="high" value="High">
- <label for="high">High</label><br>
- <input [ngModel]="level" (click)="setTransversal()" type="radio" name="level" id="transversal" value="Transversal">
- <label for="transversal">Transversal</label><br>
- <input [ngModel]="level" (click)="setFailed()" type="radio" name="level" id="failed" value="Failed">
- <label for="failed">Failed</label><br>
-
- <input (click)="toggleProper()" type="checkbox" id="proper">
- <label for="proper">~10 seconds to attempt next level?</label>
- </form>
- </div>
+ <form>
+ <input [(ngModel)]="level" type="radio" name="level" id="no_attempt" value="NoAttempt">
+ <label for="no_attempt">No climbing attempt</label><br>
+ <input [(ngModel)]="level" type="radio" name="level" id="low" value="Low">
+ <label for="low">Low</label><br>
+ <input [(ngModel)]="level" type="radio" name="level" id="medium" value="Medium">
+ <label for="medium">Medium</label><br>
+ <input [(ngModel)]="level" type="radio" name="level" id="high" value="High">
+ <label for="high">High</label><br>
+ <input [(ngModel)]="level" type="radio" name="level" id="transversal" value="Transversal">
+ <label for="transversal">Transversal</label><br>
+ <input [(ngModel)]="level" type="radio" name="level" id="failed" value="Failed">
+ <label for="failed">Failed</label><br>
+ <input [(ngModel)]="level" type="radio" name="level" id="failed_with_plenty_of_time" value="FailedWithPlentyOfTime">
+ <label for="failed_with_plenty_of_time">Failed (attempted with more than 10 seconds left)</label><br>
+ </form>
<div class="row">
<h4>Comments</h4>
<textarea></textarea>
@@ -170,13 +160,7 @@
<h4>Climb</h4>
<ul>
- <div *ngIf="climbed">
- <li *ngIf="climbed">Attempted to Climb?: Yes</li>
- <li>Level: {{level}}</li>
- <li *ngIf="proper">Proper Attempt: Yes</li>
- <li *ngIf="!proper">Proper Attempt: No</li>
- </div>
- <li *ngIf="!climbed">Attempted to Climb: No</li>
+ <li>Level: {{level}}</li>
</ul>
<h4>Defense</h4>