diff --git a/changelog/75_UNRELEASED_xxxx-xx-xx.md b/changelog/75_UNRELEASED_xxxx-xx-xx.md
index ed5e0bcd..46a8bcc3 100644
--- a/changelog/75_UNRELEASED_xxxx-xx-xx.md
+++ b/changelog/75_UNRELEASED_xxxx-xx-xx.md
@@ -44,7 +44,9 @@
### Batteries
-- xxx
+- It's now possible to track any addtional info on a battery charge cycle by using Userfields
+ - => Configure the desired Userfields for the entity `battery_charge_cycles`
+ - => On a battery charge cycle tracking entered information is then visible in the corresponding battery charge cycle journal entry
### Equipment
diff --git a/controllers/BatteriesController.php b/controllers/BatteriesController.php
index 9beaaac1..a409aa57 100644
--- a/controllers/BatteriesController.php
+++ b/controllers/BatteriesController.php
@@ -73,7 +73,9 @@ class BatteriesController extends BaseController
return $this->renderPage($response, 'batteriesjournal', [
'chargeCycles' => $this->getDatabase()->battery_charge_cycles()->where($where)->orderBy('tracked_time', 'DESC'),
- 'batteries' => $this->getDatabase()->batteries()->where('active = 1')->orderBy('name', 'COLLATE NOCASE')
+ 'batteries' => $this->getDatabase()->batteries()->where('active = 1')->orderBy('name', 'COLLATE NOCASE'),
+ 'userfields' => $this->getUserfieldsService()->GetFields('battery_charge_cycles'),
+ 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('battery_charge_cycles')
]);
}
@@ -115,7 +117,8 @@ class BatteriesController extends BaseController
public function TrackChargeCycle(Request $request, Response $response, array $args)
{
return $this->renderPage($response, 'batterytracking', [
- 'batteries' => $this->getDatabase()->batteries()->where('active = 1')->orderBy('name', 'COLLATE NOCASE')
+ 'batteries' => $this->getDatabase()->batteries()->where('active = 1')->orderBy('name', 'COLLATE NOCASE'),
+ 'userfields' => $this->getUserfieldsService()->GetFields('battery_charge_cycles')
]);
}
diff --git a/grocy.openapi.json b/grocy.openapi.json
index 57878c7b..03b0051d 100644
--- a/grocy.openapi.json
+++ b/grocy.openapi.json
@@ -5904,7 +5904,8 @@
"products_last_purchased",
"products_average_price",
"quantity_unit_conversions_resolved",
- "recipes_pos_resolved"
+ "recipes_pos_resolved",
+ "battery_charge_cycles"
]
},
"ExposedEntityNoListing": {
@@ -5924,7 +5925,8 @@
"products_last_purchased",
"products_average_price",
"quantity_unit_conversions_resolved",
- "recipes_pos_resolved"
+ "recipes_pos_resolved",
+ "battery_charge_cycles"
]
},
"ExposedEntityNoDelete": {
@@ -5937,7 +5939,8 @@
"products_last_purchased",
"products_average_price",
"quantity_unit_conversions_resolved",
- "recipes_pos_resolved"
+ "recipes_pos_resolved",
+ "battery_charge_cycles"
]
},
"ExposedEntityEditRequiresAdmin": {
diff --git a/public/viewjs/batterytracking.js b/public/viewjs/batterytracking.js
index 72d58d4e..0621e756 100644
--- a/public/viewjs/batterytracking.js
+++ b/public/viewjs/batterytracking.js
@@ -21,16 +21,20 @@
Grocy.Api.Post('batteries/' + jsonForm.battery_id + '/charge', { 'tracked_time': $('#tracked_time').find('input').val() },
function(result)
{
- Grocy.FrontendHelpers.EndUiBusy("batterytracking-form");
- toastr.success(__t('Tracked charge cycle of battery %1$s on %2$s', batteryDetails.battery.name, $('#tracked_time').find('input').val()) + '
' + __t("Undo") + '');
- Grocy.Components.BatteryCard.Refresh($('#battery_id').val());
+ Grocy.EditObjectId = result.id;
+ Grocy.Components.UserfieldsForm.Save(function()
+ {
+ Grocy.FrontendHelpers.EndUiBusy("batterytracking-form");
+ toastr.success(__t('Tracked charge cycle of battery %1$s on %2$s', batteryDetails.battery.name, $('#tracked_time').find('input').val()) + '
' + __t("Undo") + '');
+ Grocy.Components.BatteryCard.Refresh($('#battery_id').val());
- $('#battery_id').val('');
- $('#battery_id_text_input').focus();
- $('#battery_id_text_input').val('');
- $('#tracked_time').find('input').val(moment().format('YYYY-MM-DD HH:mm:ss'));
- $('#battery_id_text_input').trigger('change');
- Grocy.FrontendHelpers.ValidateForm('batterytracking-form');
+ $('#battery_id').val('');
+ $('#battery_id_text_input').focus();
+ $('#battery_id_text_input').val('');
+ $('#tracked_time').find('input').val(moment().format('YYYY-MM-DD HH:mm:ss'));
+ $('#battery_id_text_input').trigger('change');
+ Grocy.FrontendHelpers.ValidateForm('batterytracking-form');
+ });
},
function(xhr)
{
diff --git a/views/batteriesjournal.blade.php b/views/batteriesjournal.blade.php
index 2f891658..6154e643 100644
--- a/views/batteriesjournal.blade.php
+++ b/views/batteriesjournal.blade.php
@@ -91,6 +91,10 @@