From 1947dacb62b2c10e27382a2fa23371b6fef36bf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20H=C3=B8yland?= <daniehoy@stud.ntnu.no>
Date: Tue, 9 Apr 2024 14:14:41 +0200
Subject: [PATCH] fixed some bugs so that adding and edit sensor is possible

---
 Backend/API/handlers/newHotdrop.go            |  3 +-
 .../power-tracker/src/pages/ManageSensors.tsx | 42 +++++++++++--------
 2 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/Backend/API/handlers/newHotdrop.go b/Backend/API/handlers/newHotdrop.go
index 39bd6e2..874d1d4 100644
--- a/Backend/API/handlers/newHotdrop.go
+++ b/Backend/API/handlers/newHotdrop.go
@@ -58,8 +58,9 @@ func NewHotDrop(w http.ResponseWriter, r *http.Request) {
 			w.WriteHeader(http.StatusBadRequest)
 			return
 		}
+
 		department := 0 //check if it is intended to have a department, if not, skip
-		if data.DepartmentName != "" {
+		if data.DepartmentName != "" && data.DepartmentName != " " {
 			department, err = other.GetDepartmentIdByName(data.DepartmentName, building)
 			if err != nil {
 				log.Println(err.Error())
diff --git a/Frontend/power-tracker/src/pages/ManageSensors.tsx b/Frontend/power-tracker/src/pages/ManageSensors.tsx
index 39bc0e9..81dd71a 100644
--- a/Frontend/power-tracker/src/pages/ManageSensors.tsx
+++ b/Frontend/power-tracker/src/pages/ManageSensors.tsx
@@ -349,7 +349,8 @@ function ManageSensors() {
                                             <FormItem>
                                                 <FormLabel>EUI</FormLabel>
                                                 <FormControl>
-                                                    <Input placeholder="EUI" {...field} />
+                                                { /* REMOVED  {...field} from the under*/ }
+                                                    <Input placeholder="EUI" />
                                                 </FormControl>
                                                 <FormDescription>
                                                     The id code found under "MAC" on sensor
@@ -364,7 +365,8 @@ function ManageSensors() {
                                             <FormItem>
                                                 <FormLabel>Name</FormLabel>
                                                 <FormControl>
-                                                    <Input placeholder="Name" {...field} />
+                                                { /* REMOVED  {...field} from the under*/ }
+                                                    <Input placeholder="Name" />
                                                 </FormControl>
                                             </FormItem> 
                                         )}
@@ -376,7 +378,8 @@ function ManageSensors() {
                                             <FormItem>
                                                 <FormLabel>Nr</FormLabel>
                                                 <FormControl>
-                                                    <Input placeholder="Nr" {...field} />
+                                                { /* REMOVED  {...field} from the under*/ }
+                                                    <Input placeholder="Nr" />
                                                 </FormControl>
                                                 <FormDescription>
                                                     Custom machine nr
@@ -390,7 +393,8 @@ function ManageSensors() {
                                         render={({ field }) => (
                                             <FormItem>
                                                 <FormLabel>Building</FormLabel>
-                                                <Select onValueChange={field.onChange} defaultValue={field.value}>
+                                                { /* REMOVED  defaultValue={field.value} from the under*/ }
+                                                <Select onValueChange={field.onChange} >
                                                     <FormControl>
                                                         <SelectTrigger>
                                                             <SelectValue placeholder="Building" />
@@ -409,26 +413,28 @@ function ManageSensors() {
                                         )}
                                     />
                                     { /* If a building is selected, render department picker */ }
-                                    { (watchBuilding != "null") ? (
+                                    { (watchBuilding != "") ? (
                                         <FormField
                                             control={form.control}
                                             name='dept'
                                             render={({ field }) => (
                                                 <FormItem>
                                                     <FormLabel>Department</FormLabel>
-                                                    <Select onValueChange={field.onChange} defaultValue={field.value}>
+                                                    { /* REMOVED  defaultValue={field.value} from the under*/ }
+                                                    <Select onValueChange={field.onChange} >
                                                         <FormControl>
                                                             <SelectTrigger>
                                                                 <SelectValue placeholder="Department" />
                                                             </SelectTrigger>
                                                         </FormControl>
                                                         <SelectContent>
+                                                        <SelectItem key={1} value={" "}> </SelectItem>
                                                             { buildDepData.buildingDepartmentData.map((building, index) => {
                                                                 if (index == 0) return (<></>)
                                                                 if (building.building.name === watchBuilding) return (
                                                                     <div key={index}>
                                                                         { building.departments.map((dept, index) => {
-                                                                            if (index == 0) return (<></>)
+                                                                            if (index == -1) return (<></>)
                                                                             else return (
                                                                                 <SelectItem key={index} value={dept.name}>{dept.name}</SelectItem>
                                                                             )
@@ -451,7 +457,8 @@ function ManageSensors() {
                                             <FormItem>
                                                 <FormLabel>Expected power usage</FormLabel>
                                                 <FormControl>
-                                                    <Input type="number" placeholder="0" {...field} />
+                                                { /* REMOVED  {...field} from the under*/ }
+                                                    <Input type="number" placeholder="0"  />
                                                 </FormControl>
                                             </FormItem> 
                                         )}
@@ -517,7 +524,7 @@ function ManageSensors() {
                                                             <FormItem>
                                                                 <FormLabel>EUI</FormLabel>
                                                                 <FormControl>
-                                                                    <Input placeholder={machine.eui} {...field} />
+                                                                    <Input defaultValue={machine.eui} {...field} />
                                                                 </FormControl>
                                                             </FormItem> 
                                                         )}
@@ -529,7 +536,7 @@ function ManageSensors() {
                                                             <FormItem>
                                                                 <FormLabel>Name</FormLabel>
                                                                 <FormControl>
-                                                                    <Input placeholder={machine.machine_name} {...field} />
+                                                                    <Input defaultValue={machine.machine_name} {...field} />
                                                                 </FormControl>
                                                             </FormItem> 
                                                         )}
@@ -541,7 +548,7 @@ function ManageSensors() {
                                                             <FormItem>
                                                                 <FormLabel>Nr</FormLabel>
                                                                 <FormControl>
-                                                                    <Input placeholder={machine.machineNr} {...field} />
+                                                                    <Input defaultValue={machine.machineNr} {...field} />
                                                                 </FormControl>
                                                             </FormItem> 
                                                         )}
@@ -552,10 +559,10 @@ function ManageSensors() {
                                                         render={({ field }) => (
                                                             <FormItem>
                                                                 <FormLabel>Building</FormLabel>
-                                                                <Select onValueChange={field.onChange} defaultValue={field.value}>
+                                                                <Select onValueChange={field.onChange} defaultValue={machine.building_name}>
                                                                     <FormControl>
                                                                         <SelectTrigger>
-                                                                            <SelectValue placeholder={machine.building_name} />
+                                                                            <SelectValue  />
                                                                         </SelectTrigger>
                                                                     </FormControl>
                                                                     <SelectContent>
@@ -576,22 +583,23 @@ function ManageSensors() {
                                                         render={({ field }) => (
                                                             <FormItem>
                                                                 <FormLabel>Department</FormLabel>
-                                                                <Select onValueChange={field.onChange} defaultValue={field.value}>
+                                                                <Select onValueChange={field.onChange} defaultValue={machine.department_name}>
                                                                     <FormControl>
                                                                         <SelectTrigger>
-                                                                            <SelectValue placeholder={machine.department_name} />
+                                                                            <SelectValue  />
                                                                         </SelectTrigger>
                                                                     </FormControl>
                                                                     <FormDescription>
                                                                         {"Please select building first to change department  : )"}
                                                                     </FormDescription>
                                                                     <SelectContent>
+                                                                    <SelectItem key={1} value={" "}></SelectItem>
                                                                         { buildDepData.buildingDepartmentData.map((building, index) => {
                                                                             if (index == 0) return (<></>)
                                                                             if (building.building.name === watchBuilding) return (
                                                                                 <div key={index}>
                                                                                     { building.departments.map((dept, index) => {
-                                                                                        if (index == 0) return (<></>)
+                                                                                        if (index == -1) return (<></>)
                                                                                         else return (
                                                                                             <SelectItem key={index} value={dept.name}>{dept.name}</SelectItem>
                                                                                         )
@@ -612,7 +620,7 @@ function ManageSensors() {
                                                             <FormItem>
                                                                 <FormLabel>Expected power usage</FormLabel>
                                                                 <FormControl>
-                                                                    <Input type="number" placeholder="0" {...field} />
+                                                                    <Input type="number" defaultValue={machine.expected_use} {...field} />
                                                                 </FormControl>
                                                             </FormItem> 
                                                         )}
-- 
GitLab