Skip to content

Commit f6bdb6e

Browse files
committed
Added new Userfield type "Number (currency)" (closes grocy#2276)
1 parent 82d899d commit f6bdb6e

File tree

6 files changed

+29
-5
lines changed

6 files changed

+29
-5
lines changed

changelog/73_UNRELEASED_xxxx-xx-xx.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848
### Userfields
4949

50-
- xxx
50+
- New Userfield type "Number (currency)", just like the type "Number (decimal)", but it will render the value according to / with the configured currency
5151

5252
### General
5353

localization/en/userfield_types.po

+3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ msgstr "Number (integral)"
2424
msgid "number-decimal"
2525
msgstr "Number (decimal)"
2626

27+
msgid "number-currency"
28+
msgstr "Number (currency)"
29+
2730
msgid "date"
2831
msgstr "Date (without time)"
2932

localization/userfield_types.pot

+4
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ msgstr ""
2828
msgid "number-decimal"
2929
msgstr ""
3030

31+
# Number (currency)
32+
msgid "number-currency"
33+
msgstr ""
34+
3135
# Date (without time)
3236
msgid "date"
3337
msgstr ""

services/UserfieldsService.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ class UserfieldsService extends BaseService
77
const USERFIELD_TYPE_CHECKBOX = 'checkbox';
88
const USERFIELD_TYPE_DATE = 'date';
99
const USERFIELD_TYPE_DATETIME = 'datetime';
10-
const USERFIELD_TYPE_DECIMAL_NUMBER = 'number-decimal';
10+
const USERFIELD_TYPE_NUMBER_INT = 'number-integral';
11+
const USERFIELD_TYPE_NUMBER_DECIMAL = 'number-decimal';
12+
const USERFIELD_TYPE_NUMBER_CURRENCY = 'number-currency';
1113
const USERFIELD_TYPE_FILE = 'file';
1214
const USERFIELD_TYPE_IMAGE = 'image';
13-
const USERFIELD_TYPE_INTEGRAL_NUMBER = 'number-integral';
1415
const USERFIELD_TYPE_LINK = 'link';
1516
const USERFIELD_TYPE_LINK_WITH_TITLE = 'link-with-title';
1617
const USERFIELD_TYPE_PRESET_CHECKLIST = 'preset-checklist';

views/components/userfields_tbody.blade.php

+4
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@
4848
alt="{{ base64_decode(explode('_', $userfieldObject->value)[1]) }}"
4949
loading="lazy">
5050
</a>
51+
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_NUMBER_DECIMAL)
52+
<span class="locale-number locale-number-generic">{{ $userfieldObject->value }}</span>
53+
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_NUMBER_CURRENCY)
54+
<span class="locale-number locale-number-currency">{{ $userfieldObject->value }}</span>
5155
@else
5256
{{ $userfieldObject->value }}
5357
@endif

views/components/userfieldsform.blade.php

+14-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class="form-control userfield-input"
3434
@if($userfield->input_required == 1) required @endif></textarea>
3535
<div class="invalid-feedback">{{ $__t('Mandatory Userfield') }}</div>
3636
</div>
37-
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_INTEGRAL_NUMBER)
37+
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_NUMBER_INT)
3838
@include('components.numberpicker', array(
3939
'id' => $userfield->name,
4040
'label' => $userfield->caption,
@@ -45,7 +45,7 @@ class="form-control userfield-input"
4545
'additionalAttributes' => 'data-userfield-name="' . $userfield->name . '"',
4646
'value' => ''
4747
))
48-
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_DECIMAL_NUMBER)
48+
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_NUMBER_DECIMAL)
4949
@include('components.numberpicker', array(
5050
'id' => '',
5151
'label' => $userfield->caption,
@@ -57,6 +57,18 @@ class="form-control userfield-input"
5757
'additionalAttributes' => 'data-userfield-name="' . $userfield->name . '"',
5858
'value' => ''
5959
))
60+
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_NUMBER_CURRENCY)
61+
@include('components.numberpicker', array(
62+
'id' => '',
63+
'label' => $userfield->caption,
64+
'noNameAttribute' => true,
65+
'min' => 0,
66+
'decimals' => 4,
67+
'isRequired' => $userfield->input_required == 1,
68+
'additionalCssClasses' => 'userfield-input locale-number-input locale-number-currency',
69+
'additionalAttributes' => 'data-userfield-name="' . $userfield->name . '"',
70+
'value' => ''
71+
))
6072
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_DATE)
6173
@include('components.datetimepicker2', array(
6274
'id' => $userfield->name,

0 commit comments

Comments
 (0)