Added: set default vehicle

This commit is contained in:
Filip Rojek 2025-01-27 00:38:22 +01:00
parent ea3afa2507
commit 64c7fd15a1
5 changed files with 57 additions and 6 deletions

View File

@ -25,8 +25,8 @@
## What has to be done
- [x] Vehicle delete
- [ ] intro tutorial when no car exist or just dont show anything
- [ ] change/set default car
- [ ] hide errors
- [x] change/set default car
- [x] hide errors
## Nice to have
- [ ] specific car view - charts, fuel records

View File

@ -75,6 +75,18 @@ class VehicleController extends Controller {
$this->view('vehicles/index', ['title' => 'Vehicles', 'vehicles' => $vehicles]);
}
public function setDefault() {
$vehicle = new Vehicle();
// TODO: Validate the request
$result = $vehicle->setDefaultVehicle($_POST['vehicle_id'], $_SESSION['user']['id']);
if($result != true) {
echo "Something went wrong";
return;
}
$this->view('vehicles/index', ['title' => 'Vehicles', 'vehicles' => $vehicles]);
}
public function api_get() {
if(!$_SERVER['REQUEST_METHOD'] === 'GET') {
echo "Wrong method, use GET";

View File

@ -61,6 +61,39 @@ class Vehicle {
return $result->fetch_assoc();
}
public function setDefaultVehicle($vehicle_id, $user_id) {
try {
$this->db->begin_transaction();
$stmt = $this->db->prepare("
UPDATE `vehicles`
SET `is_default` = 0
WHERE `user_id` = ? AND `is_default` = 1
");
$stmt->bind_param("i", $user_id);
$stmt->execute();
$stmt->close();
$stmt = $this->db->prepare("
UPDATE `vehicles`
SET `is_default` = 1
WHERE `id` = ? AND `user_id` = ?
");
$stmt->bind_param("ii", $vehicle_id, $user_id);
if ($stmt->execute()) {
$this->db->commit();
return true;
} else {
$this->db->rollback();
return "Error: " . $stmt->error;
}
} catch (mysqli_sql_exception $e) {
$this->db->rollback();
return $e->getMessage();
}
}
public function delete($vehicle_id, $user_id) {
try {
$stmt = $this->db->prepare("SELECT id FROM vehicles WHERE id = ? AND user_id = ?");

View File

@ -18,6 +18,11 @@
<input type="number" name="vehicle_id" value="<?= $vehicle['id'] ?>" style="display: none">
<input type="submit" value="Delete vehicle" class="btn-danger">
</form>
<form method="POST" action="/vehicles/default">
<input type="number" name="vehicle_id" value="<?= $vehicle['id'] ?>" style="display: none">
<input type="submit" value="Set default" class="btn-primary">
</form>
</div>
</div>
<?php endforeach; ?>

View File

@ -47,6 +47,7 @@ $router->group('/vehicles', ['RequireAuth'], function ($router) {
$router->add('/create', 'VehicleController@create');
$router->add('/edit/{id}', 'VehicleController@edit');
$router->add('/delete', 'VehicleController@delete');
$router->add('/default', 'VehicleController@setDefault');
});
$router->group('/refuel', ['RequireAuth'], function ($router) {