diff --git a/Aberwyn/Views/Budget/Index.cshtml b/Aberwyn/Views/Budget/Index.cshtml
index 609f132..86a33a3 100644
--- a/Aberwyn/Views/Budget/Index.cshtml
+++ b/Aberwyn/Views/Budget/Index.cshtml
@@ -130,7 +130,7 @@
due: item.paymentStatus === 1,
paid: item.paymentStatus === 2
}"
- ng-click="ctrlClick($event, item)">
+ ng-click="handleItemInteraction($event, item)">
diff --git a/Aberwyn/wwwroot/js/budget.js b/Aberwyn/wwwroot/js/budget.js
index ee3c27c..af1c44d 100644
--- a/Aberwyn/wwwroot/js/budget.js
+++ b/Aberwyn/wwwroot/js/budget.js
@@ -90,24 +90,36 @@ app.controller('BudgetController', function ($scope, $http) {
$scope.menuOpen = false;
});
});
- $scope.ctrlClick = function (event, item) {
- if (!event.ctrlKey) return;
+ let lastTapTime = 0;
- const current = typeof item.paymentStatus === 'number' && !isNaN(item.paymentStatus)
- ? item.paymentStatus
- : 0;
+ $scope.handleItemInteraction = function (event, item) {
+ const now = new Date().getTime();
- item.paymentStatus = (current + 1) % 3;
+ // Ctrl-klick på desktop
+ if (event.ctrlKey) {
+ togglePaymentStatus(item);
+ return;
+ }
+
+ // Dubbeltap på mobil (inom 400ms)
+ if (now - lastTapTime < 400) {
+ togglePaymentStatus(item);
+ event.preventDefault();
+ }
+
+ lastTapTime = now;
+ };
+
+ function togglePaymentStatus(item) {
+ item.paymentStatus = (item.paymentStatus + 1) % 3;
$http.put("/api/budget/updatePaymentStatus", {
itemId: item.id,
status: item.paymentStatus
}).then(() => {
$scope.showToast("Betalstatus uppdaterad");
- }).catch(err => {
- console.error("Fel vid uppdatering:", err);
});
- };
+ }