Scouting: Add button for docked/engaged attempt

Signed-off-by: Emily Markova <emily.markova@gmail.com>
Change-Id: If69eb7bf08dbcd73f35fe4e05f3e8c9594a50332
diff --git a/scouting/db/db.go b/scouting/db/db.go
index 1ea8310..718711c 100644
--- a/scouting/db/db.go
+++ b/scouting/db/db.go
@@ -38,8 +38,9 @@
 	LowCubes, MiddleCubes, HighCubes, CubesDropped                 int32
 	LowCones, MiddleCones, HighCones, ConesDropped                 int32
 	AvgCycle                                                       int64
-	DockedAuto, EngagedAuto                                        bool
-	Docked, Engaged                                                bool
+	DockedAuto, EngagedAuto, BalanceAttemptAuto                    bool
+	Docked, Engaged, BalanceAttempt                                bool
+
 	// The username of the person who collected these statistics.
 	// "unknown" if submitted without logging in.
 	// Empty if the stats have not yet been collected.
diff --git a/scouting/db/db_test.go b/scouting/db/db_test.go
index 2f9196e..ea83fa3 100644
--- a/scouting/db/db_test.go
+++ b/scouting/db/db_test.go
@@ -152,7 +152,8 @@
 			HighCubes: 1, CubesDropped: 0, LowCones: 0,
 			MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 			AvgCycle: 0, DockedAuto: true, EngagedAuto: false,
-			Docked: false, Engaged: false, CollectedBy: "emma",
+			BalanceAttemptAuto: false, Docked: false, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "emma",
 		},
 		Stats2023{
 			TeamNumber: "7454", MatchNumber: 3, SetNumber: 1,
@@ -163,7 +164,8 @@
 			HighCubes: 0, CubesDropped: 1, LowCones: 0,
 			MiddleCones: 0, HighCones: 1, ConesDropped: 0,
 			AvgCycle: 0, DockedAuto: false, EngagedAuto: false,
-			Docked: true, Engaged: true, CollectedBy: "tyler",
+			BalanceAttemptAuto: true, Docked: true, Engaged: true,
+			BalanceAttempt: false, CollectedBy: "tyler",
 		},
 		Stats2023{
 			TeamNumber: "4354", MatchNumber: 3, SetNumber: 1,
@@ -174,7 +176,8 @@
 			HighCubes: 2, CubesDropped: 1, LowCones: 1,
 			MiddleCones: 1, HighCones: 0, ConesDropped: 1,
 			AvgCycle: 0, DockedAuto: false, EngagedAuto: false,
-			Docked: false, Engaged: false, CollectedBy: "isaac",
+			BalanceAttemptAuto: false, Docked: false, Engaged: false,
+			BalanceAttempt: true, CollectedBy: "isaac",
 		},
 		Stats2023{
 			TeamNumber: "6533", MatchNumber: 3, SetNumber: 1,
@@ -185,7 +188,8 @@
 			HighCubes: 2, CubesDropped: 1, LowCones: 0,
 			MiddleCones: 1, HighCones: 0, ConesDropped: 0,
 			AvgCycle: 0, DockedAuto: true, EngagedAuto: true,
-			Docked: false, Engaged: false, CollectedBy: "will",
+			BalanceAttemptAuto: true, Docked: false, Engaged: false,
+			BalanceAttempt: true, CollectedBy: "will",
 		},
 		Stats2023{
 			TeamNumber: "8354", MatchNumber: 3, SetNumber: 1,
@@ -196,7 +200,8 @@
 			HighCubes: 0, CubesDropped: 2, LowCones: 1,
 			MiddleCones: 1, HighCones: 0, ConesDropped: 1,
 			AvgCycle: 0, DockedAuto: true, EngagedAuto: false,
-			Docked: true, Engaged: false, CollectedBy: "unkown",
+			BalanceAttemptAuto: false, Docked: true, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "unkown",
 		},
 	}
 
@@ -245,7 +250,8 @@
 			HighCubes: 1, CubesDropped: 0, LowCones: 0,
 			MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 			AvgCycle: 0, DockedAuto: true, EngagedAuto: false,
-			Docked: false, Engaged: false, CollectedBy: "emma",
+			BalanceAttemptAuto: false, Docked: false, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "emma",
 		},
 		Stats2023{
 			TeamNumber: "7454", MatchNumber: 4, SetNumber: 1,
@@ -256,7 +262,8 @@
 			HighCubes: 0, CubesDropped: 1, LowCones: 0,
 			MiddleCones: 0, HighCones: 1, ConesDropped: 0,
 			AvgCycle: 0, DockedAuto: true, EngagedAuto: true,
-			Docked: false, Engaged: false, CollectedBy: "tyler",
+			BalanceAttemptAuto: true, Docked: false, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "tyler",
 		},
 		Stats2023{
 			TeamNumber: "6344", MatchNumber: 5, SetNumber: 1,
@@ -267,7 +274,8 @@
 			HighCubes: 1, CubesDropped: 0, LowCones: 0,
 			MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 			AvgCycle: 0, DockedAuto: true, EngagedAuto: false,
-			Docked: true, Engaged: false, CollectedBy: "emma",
+			BalanceAttemptAuto: false, Docked: true, Engaged: false,
+			BalanceAttempt: true, CollectedBy: "emma",
 		},
 	}
 
@@ -323,7 +331,8 @@
 			HighCubes: 2, CubesDropped: 1, LowCones: 1,
 			MiddleCones: 0, HighCones: 1, ConesDropped: 2,
 			AvgCycle: 58, DockedAuto: false, EngagedAuto: false,
-			Docked: true, Engaged: true, CollectedBy: "unknown",
+			BalanceAttemptAuto: true, Docked: true, Engaged: true,
+			BalanceAttempt: false, CollectedBy: "unknown",
 		},
 		Stats2023{
 			TeamNumber: "2314", MatchNumber: 5, SetNumber: 1,
@@ -334,7 +343,8 @@
 			HighCubes: 1, CubesDropped: 0, LowCones: 0,
 			MiddleCones: 2, HighCones: 1, ConesDropped: 0,
 			AvgCycle: 34, DockedAuto: true, EngagedAuto: true,
-			Docked: true, Engaged: false, CollectedBy: "simon",
+			BalanceAttemptAuto: false, Docked: true, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "simon",
 		},
 		Stats2023{
 			TeamNumber: "3242", MatchNumber: 5, SetNumber: 1,
@@ -345,7 +355,8 @@
 			HighCubes: 0, CubesDropped: 0, LowCones: 2,
 			MiddleCones: 0, HighCones: 1, ConesDropped: 1,
 			AvgCycle: 50, DockedAuto: false, EngagedAuto: false,
-			Docked: false, Engaged: false, CollectedBy: "eliza",
+			BalanceAttemptAuto: true, Docked: false, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "eliza",
 		},
 		Stats2023{
 			TeamNumber: "1742", MatchNumber: 5, SetNumber: 1,
@@ -367,7 +378,8 @@
 			HighCubes: 0, CubesDropped: 0, LowCones: 1,
 			MiddleCones: 1, HighCones: 1, ConesDropped: 0,
 			AvgCycle: 70, DockedAuto: true, EngagedAuto: true,
-			Docked: false, Engaged: false, CollectedBy: "sam",
+			BalanceAttemptAuto: false, Docked: false, Engaged: false,
+			BalanceAttempt: true, CollectedBy: "sam",
 		},
 	}
 
@@ -381,7 +393,8 @@
 			HighCubes: 0, CubesDropped: 0, LowCones: 2,
 			MiddleCones: 0, HighCones: 1, ConesDropped: 1,
 			AvgCycle: 50, DockedAuto: false, EngagedAuto: false,
-			Docked: false, Engaged: false, CollectedBy: "eliza",
+			BalanceAttemptAuto: true, Docked: false, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "eliza",
 		},
 		Stats2023{
 			TeamNumber: "2454", MatchNumber: 5, SetNumber: 1,
@@ -392,7 +405,8 @@
 			HighCubes: 0, CubesDropped: 0, LowCones: 1,
 			MiddleCones: 1, HighCones: 1, ConesDropped: 0,
 			AvgCycle: 70, DockedAuto: true, EngagedAuto: true,
-			Docked: false, Engaged: false, CollectedBy: "sam",
+			BalanceAttemptAuto: false, Docked: false, Engaged: false,
+			BalanceAttempt: true, CollectedBy: "sam",
 		},
 	}
 
@@ -671,7 +685,8 @@
 			HighCubes: 1, CubesDropped: 0, LowCones: 2,
 			MiddleCones: 0, HighCones: 2, ConesDropped: 1,
 			AvgCycle: 51, DockedAuto: true, EngagedAuto: true,
-			Docked: false, Engaged: false, CollectedBy: "isaac",
+			BalanceAttemptAuto: false, Docked: false, Engaged: false,
+			BalanceAttempt: true, CollectedBy: "isaac",
 		},
 		Stats2023{
 			TeamNumber: "5443", MatchNumber: 2, SetNumber: 1,
@@ -682,7 +697,8 @@
 			HighCubes: 1, CubesDropped: 0, LowCones: 1,
 			MiddleCones: 0, HighCones: 2, ConesDropped: 1,
 			AvgCycle: 39, DockedAuto: false, EngagedAuto: false,
-			Docked: false, Engaged: false, CollectedBy: "jack",
+			BalanceAttemptAuto: true, Docked: false, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "jack",
 		},
 		Stats2023{
 			TeamNumber: "5436", MatchNumber: 2, SetNumber: 1,
@@ -693,7 +709,8 @@
 			HighCubes: 0, CubesDropped: 0, LowCones: 1,
 			MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 			AvgCycle: 45, DockedAuto: true, EngagedAuto: false,
-			Docked: false, Engaged: false, CollectedBy: "martin",
+			BalanceAttemptAuto: true, Docked: false, Engaged: false,
+			BalanceAttempt: true, CollectedBy: "martin",
 		},
 		Stats2023{
 			TeamNumber: "5643", MatchNumber: 2, SetNumber: 1,
@@ -704,7 +721,8 @@
 			HighCubes: 0, CubesDropped: 0, LowCones: 2,
 			MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 			AvgCycle: 34, DockedAuto: true, EngagedAuto: false,
-			Docked: true, Engaged: false, CollectedBy: "unknown",
+			BalanceAttemptAuto: false, Docked: true, Engaged: false,
+			BalanceAttempt: false, CollectedBy: "unknown",
 		},
 	}
 
diff --git a/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs b/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
index cd6afc6..b472c58 100644
--- a/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
+++ b/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
@@ -25,11 +25,13 @@
   high_cones:int (id:17);
   cones_dropped:int (id:18);
   // Time in nanoseconds.
-  avg_cycle:int64 (id:19);
-  docked_auto:bool (id:20);
-  engaged_auto:bool (id:23);
-  docked:bool (id:25);
-  engaged:bool (id:26);
+  avg_cycle: int64 (id:19);
+  docked_auto: bool (id:20);
+  engaged_auto: bool (id:23);
+  balance_attempt_auto: bool (id:27);
+  docked: bool (id:25);
+  engaged: bool (id:26);
+  balance_attempt: bool (id:28);
 
   collected_by:string (id:24);
 }
diff --git a/scouting/webserver/requests/messages/submit_actions.fbs b/scouting/webserver/requests/messages/submit_actions.fbs
index 5488a79..8c79097 100644
--- a/scouting/webserver/requests/messages/submit_actions.fbs
+++ b/scouting/webserver/requests/messages/submit_actions.fbs
@@ -18,6 +18,7 @@
 table AutoBalanceAction {
     docked:bool (id:0);
     engaged:bool (id:1);
+    balance_attempt:bool (id:2);
 }
 
 table PickupObjectAction {
@@ -38,6 +39,7 @@
 table EndMatchAction {
     docked:bool (id:0);
     engaged:bool (id:1);
+    balance_attempt:bool (id:2);
 }
 
 union ActionType {
diff --git a/scouting/webserver/requests/requests.go b/scouting/webserver/requests/requests.go
index bb40ecf..9305274 100644
--- a/scouting/webserver/requests/requests.go
+++ b/scouting/webserver/requests/requests.go
@@ -404,6 +404,9 @@
 			if autoBalanceAction.Engaged() {
 				stat.EngagedAuto = true
 			}
+			if autoBalanceAction.BalanceAttempt() {
+				stat.BalanceAttemptAuto = true
+			}
 		} else if action_type == submit_actions.ActionTypePickupObjectAction {
 			var pick_up_action submit_actions.PickupObjectAction
 			pick_up_action.Init(actionTable.Bytes, actionTable.Pos)
@@ -476,6 +479,9 @@
 			if endMatchAction.Engaged() {
 				stat.Engaged = true
 			}
+			if endMatchAction.BalanceAttempt() {
+				stat.BalanceAttempt = true
+			}
 		}
 	}
 	if cycles != 0 {
@@ -512,33 +518,35 @@
 	var response Request2023DataScoutingResponseT
 	for _, stat := range stats {
 		response.StatsList = append(response.StatsList, &request_2023_data_scouting_response.Stats2023T{
-			TeamNumber:       stat.TeamNumber,
-			MatchNumber:      stat.MatchNumber,
-			SetNumber:        stat.SetNumber,
-			CompLevel:        stat.CompLevel,
-			StartingQuadrant: stat.StartingQuadrant,
-			LowCubesAuto:     stat.LowCubesAuto,
-			MiddleCubesAuto:  stat.MiddleCubesAuto,
-			HighCubesAuto:    stat.HighCubesAuto,
-			CubesDroppedAuto: stat.CubesDroppedAuto,
-			LowConesAuto:     stat.LowConesAuto,
-			MiddleConesAuto:  stat.MiddleConesAuto,
-			HighConesAuto:    stat.HighConesAuto,
-			ConesDroppedAuto: stat.ConesDroppedAuto,
-			LowCubes:         stat.LowCubes,
-			MiddleCubes:      stat.MiddleCubes,
-			HighCubes:        stat.HighCubes,
-			CubesDropped:     stat.CubesDropped,
-			LowCones:         stat.LowCones,
-			MiddleCones:      stat.MiddleCones,
-			HighCones:        stat.HighCones,
-			ConesDropped:     stat.ConesDropped,
-			AvgCycle:         stat.AvgCycle,
-			DockedAuto:       stat.DockedAuto,
-			EngagedAuto:      stat.EngagedAuto,
-			Docked:           stat.Docked,
-			Engaged:          stat.Engaged,
-			CollectedBy:      stat.CollectedBy,
+			TeamNumber:         stat.TeamNumber,
+			MatchNumber:        stat.MatchNumber,
+			SetNumber:          stat.SetNumber,
+			CompLevel:          stat.CompLevel,
+			StartingQuadrant:   stat.StartingQuadrant,
+			LowCubesAuto:       stat.LowCubesAuto,
+			MiddleCubesAuto:    stat.MiddleCubesAuto,
+			HighCubesAuto:      stat.HighCubesAuto,
+			CubesDroppedAuto:   stat.CubesDroppedAuto,
+			LowConesAuto:       stat.LowConesAuto,
+			MiddleConesAuto:    stat.MiddleConesAuto,
+			HighConesAuto:      stat.HighConesAuto,
+			ConesDroppedAuto:   stat.ConesDroppedAuto,
+			LowCubes:           stat.LowCubes,
+			MiddleCubes:        stat.MiddleCubes,
+			HighCubes:          stat.HighCubes,
+			CubesDropped:       stat.CubesDropped,
+			LowCones:           stat.LowCones,
+			MiddleCones:        stat.MiddleCones,
+			HighCones:          stat.HighCones,
+			ConesDropped:       stat.ConesDropped,
+			AvgCycle:           stat.AvgCycle,
+			DockedAuto:         stat.DockedAuto,
+			EngagedAuto:        stat.EngagedAuto,
+			BalanceAttemptAuto: stat.BalanceAttemptAuto,
+			Docked:             stat.Docked,
+			Engaged:            stat.Engaged,
+			BalanceAttempt:     stat.BalanceAttempt,
+			CollectedBy:        stat.CollectedBy,
 		})
 	}
 
diff --git a/scouting/webserver/requests/requests_test.go b/scouting/webserver/requests/requests_test.go
index fb0be5c..dab3174 100644
--- a/scouting/webserver/requests/requests_test.go
+++ b/scouting/webserver/requests/requests_test.go
@@ -131,7 +131,8 @@
 				HighCubes: 2, CubesDropped: 1, LowCones: 1,
 				MiddleCones: 2, HighCones: 0, ConesDropped: 1,
 				AvgCycle: 34, DockedAuto: true, EngagedAuto: true,
-				Docked: false, Engaged: false, CollectedBy: "alex",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: false, CollectedBy: "alex",
 			},
 			{
 				TeamNumber: "973", MatchNumber: 3, SetNumber: 1,
@@ -142,7 +143,8 @@
 				HighCubes: 1, CubesDropped: 0, LowCones: 0,
 				MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 				AvgCycle: 53, DockedAuto: true, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "bob",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "bob",
 			},
 		},
 	}
@@ -214,7 +216,8 @@
 				HighCubes: 2, CubesDropped: 1, LowCones: 1,
 				MiddleCones: 2, HighCones: 0, ConesDropped: 1,
 				AvgCycle: 34, DockedAuto: true, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "isaac",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "isaac",
 			},
 			{
 				TeamNumber: "2343", MatchNumber: 1, SetNumber: 2,
@@ -225,7 +228,8 @@
 				HighCubes: 1, CubesDropped: 0, LowCones: 0,
 				MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 				AvgCycle: 53, DockedAuto: false, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "unknown",
+				BalanceAttemptAuto: true, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "unknown",
 			},
 		},
 	}
@@ -253,7 +257,8 @@
 				HighCubes: 2, CubesDropped: 1, LowCones: 1,
 				MiddleCones: 2, HighCones: 0, ConesDropped: 1,
 				AvgCycle: 34, DockedAuto: true, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "isaac",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "isaac",
 			},
 			{
 				TeamNumber: "2343", MatchNumber: 1, SetNumber: 2,
@@ -264,7 +269,8 @@
 				HighCubes: 1, CubesDropped: 0, LowCones: 0,
 				MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 				AvgCycle: 53, DockedAuto: false, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "unknown",
+				BalanceAttemptAuto: true, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "unknown",
 			},
 		},
 	}
@@ -332,8 +338,9 @@
 				ActionTaken: &submit_actions.ActionTypeT{
 					Type: submit_actions.ActionTypeAutoBalanceAction,
 					Value: &submit_actions.AutoBalanceActionT{
-						Docked:  true,
-						Engaged: true,
+						Docked:         true,
+						Engaged:        true,
+						BalanceAttempt: false,
 					},
 				},
 				Timestamp: 2400,
@@ -363,8 +370,9 @@
 				ActionTaken: &submit_actions.ActionTypeT{
 					Type: submit_actions.ActionTypeEndMatchAction,
 					Value: &submit_actions.EndMatchActionT{
-						Docked:  true,
-						Engaged: false,
+						Docked:         true,
+						Engaged:        false,
+						BalanceAttempt: true,
 					},
 				},
 				Timestamp: 4000,
@@ -388,7 +396,8 @@
 		HighCubes: 0, CubesDropped: 0, LowCones: 0,
 		MiddleCones: 0, HighCones: 1, ConesDropped: 0,
 		AvgCycle: 1100, DockedAuto: true, EngagedAuto: true,
-		Docked: true, Engaged: false, CollectedBy: "katie",
+		BalanceAttemptAuto: false, Docked: true, Engaged: false,
+		BalanceAttempt: true, CollectedBy: "katie",
 	}
 
 	if expected != response {
diff --git a/scouting/www/entry/entry.component.ts b/scouting/www/entry/entry.component.ts
index bc6049f..9ab5b7a 100644
--- a/scouting/www/entry/entry.component.ts
+++ b/scouting/www/entry/entry.component.ts
@@ -58,6 +58,7 @@
       timestamp?: number;
       docked: boolean;
       engaged: boolean;
+      balanceAttempt: boolean;
     }
   | {
       type: 'pickupObjectAction';
@@ -81,6 +82,7 @@
       type: 'endMatchAction';
       docked: boolean;
       engaged: boolean;
+      balanceAttempt: boolean;
       timestamp?: number;
     }
   | {
@@ -218,7 +220,8 @@
             AutoBalanceAction.createAutoBalanceAction(
               builder,
               action.docked,
-              action.engaged
+              action.engaged,
+              action.balanceAttempt
             );
           actionOffset = Action.createAction(
             builder,
@@ -259,7 +262,8 @@
           const endMatchActionOffset = EndMatchAction.createEndMatchAction(
             builder,
             action.docked,
-            action.engaged
+            action.engaged,
+            action.balanceAttempt
           );
           actionOffset = Action.createAction(
             builder,
diff --git a/scouting/www/entry/entry.ng.html b/scouting/www/entry/entry.ng.html
index e06ab18..e304f2a 100644
--- a/scouting/www/entry/entry.ng.html
+++ b/scouting/www/entry/entry.ng.html
@@ -1,7 +1,6 @@
 <div class="header" #header>
   <h2>{{section}}</h2>
 </div>
-
 <ng-container [ngSwitch]="section">
   <div
     *ngSwitchCase="'Team Selection'"
@@ -54,7 +53,6 @@
       </button>
     </div>
   </div>
-
   <div *ngSwitchCase="'Init'" id="init" class="container-fluid">
     <h2>Select Starting Position</h2>
     <img
@@ -87,7 +85,6 @@
       </div>
     </div>
   </div>
-
   <div *ngSwitchCase="'Pickup'" id="PickUp" class="container-fluid">
     <h6 class="text-muted">
       Last Action: {{actionList[actionList.length - 1].type}}
@@ -122,10 +119,14 @@
           <input #engaged type="checkbox" />
           Engaged
         </label>
+        <label>
+          <input #attempted type="checkbox" />
+          Attempted to dock and engage but failed
+        </label>
         <br />
         <button
           class="btn btn-info"
-          (click)="addAction({type: 'autoBalanceAction', docked: docked.checked, engaged: engaged.checked});"
+          (click)="addAction({type: 'autoBalanceAction', docked: dockedValue, engaged: engagedValue, balanceAttempt: attempted.checked});"
         >
           Submit Balancing
         </button>
@@ -146,7 +147,6 @@
       </button>
     </div>
   </div>
-
   <div *ngSwitchCase="'Place'" id="Place" class="container-fluid">
     <h6 class="text-muted">
       Last Action: {{actionList[actionList.length - 1].type}}
@@ -187,10 +187,14 @@
           <input #engaged type="checkbox" />
           Engaged
         </label>
+        <label>
+          <input #attempted type="checkbox" />
+          Attempted to dock and engage but failed
+        </label>
         <br />
         <button
           class="btn btn-info"
-          (click)="addAction({type: 'autoBalanceAction', docked: docked.checked, engaged: engaged.checked});"
+          (click)="addAction({type: 'autoBalanceAction', docked: dockedValue, engaged: engagedValue, balanceAttempt: attempted.checked});"
         >
           Submit Balancing
         </button>
@@ -211,7 +215,6 @@
       </button>
     </div>
   </div>
-
   <div *ngSwitchCase="'Endgame'" id="Endgame" class="container-fluid">
     <h6 class="text-muted">
       Last Action: {{actionList[actionList.length - 1].type}}
@@ -232,16 +235,19 @@
         <input #engaged type="checkbox" />
         Engaged
       </label>
+      <label>
+        <input #attempted type="checkbox" />
+        Attempted to dock and engage but failed
+      </label>
       <button
         *ngIf="!autoPhase"
         class="btn btn-info"
-        (click)="changeSectionTo('Review and Submit'); addAction({type: 'endMatchAction', docked: docked.checked, engaged: engaged.checked});"
+        (click)="changeSectionTo('Review and Submit'); addAction({type: 'endMatchAction', docked: docked.checked, engaged: engaged.checked, balanceAttempt: attempted.checked});"
       >
         End Match
       </button>
     </div>
   </div>
-
   <div *ngSwitchCase="'Dead'" id="Dead" class="container-fluid">
     <h2>Robot is dead</h2>
     <div class="d-grid gap-2">
@@ -259,14 +265,12 @@
       </button>
     </div>
   </div>
-
   <div *ngSwitchCase="'Review and Submit'" id="Review" class="container-fluid">
     <div class="d-grid gap-5">
       <button class="btn btn-secondary" (click)="undoLastAction()">UNDO</button>
       <button class="btn btn-warning" (click)="submitActions();">Submit</button>
     </div>
   </div>
-
   <div *ngSwitchCase="'Success'" id="Success" class="container-fluid">
     <h2>Successfully submitted data.</h2>
   </div>