From 338c6c0a9d86ed37b2e5d3e2bf0a7f9c1d5f344e Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Tue, 7 May 2019 21:24:59 +0200 Subject: [PATCH] Added a new userfield type "preset-list" (closes #239) --- localization/strings.pot | 6 ++++++ localization/userfield_types.pot | 3 +++ migrations/0072.sql | 2 ++ public/viewjs/userfieldform.js | 17 +++++++++++++++++ services/UserfieldsService.php | 1 + views/components/userfieldsform.blade.php | 10 ++++++++++ views/userfieldform.blade.php | 7 ++++++- 7 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 migrations/0072.sql diff --git a/localization/strings.pot b/localization/strings.pot index 8af2f098..8d8b4ada 100644 --- a/localization/strings.pot +++ b/localization/strings.pot @@ -1244,3 +1244,9 @@ msgstr[1] "" msgid "Week costs" msgstr "" + +msgid "Configuration" +msgstr "" + +msgid "A predefined list of values, one per line" +msgstr "" diff --git a/localization/userfield_types.pot b/localization/userfield_types.pot index ad9be691..38f2943e 100644 --- a/localization/userfield_types.pot +++ b/localization/userfield_types.pot @@ -32,3 +32,6 @@ msgstr "" msgid "checkbox" msgstr "" + +msgid "preset-list" +msgstr "" diff --git a/migrations/0072.sql b/migrations/0072.sql new file mode 100644 index 00000000..b5f6b66e --- /dev/null +++ b/migrations/0072.sql @@ -0,0 +1,2 @@ +ALTER TABLE userfields +ADD config TEXT; diff --git a/public/viewjs/userfieldform.js b/public/viewjs/userfieldform.js index 73aa5dbe..f7f72913 100644 --- a/public/viewjs/userfieldform.js +++ b/public/viewjs/userfieldform.js @@ -68,6 +68,22 @@ $('#userfield-form input').keydown(function(event) } }); +$("#type").on("change", function(e) +{ + var value = $(this).val(); + + if (value === "preset-list") + { + $("#config").parent().removeClass("d-none"); + $("#config-hint").text(__t("A predefined list of values, one per line")); + } + else + { + $("#config").parent().addClass("d-none"); + $("#config-hint").text(""); + } +}); + $('#entity').focus(); if (typeof GetUriParam("entity") !== "undefined" && !GetUriParam("entity").isEmpty()) @@ -77,4 +93,5 @@ if (typeof GetUriParam("entity") !== "undefined" && !GetUriParam("entity").isEmp $('#name').focus(); } +$("#type").trigger("change"); Grocy.FrontendHelpers.ValidateForm('userfield-form'); diff --git a/services/UserfieldsService.php b/services/UserfieldsService.php index 990d411e..7c8279b9 100644 --- a/services/UserfieldsService.php +++ b/services/UserfieldsService.php @@ -11,6 +11,7 @@ class UserfieldsService extends BaseService const USERFIELD_TYPE_DATE = 'date'; const USERFIELD_TYPE_DATETIME = 'datetime'; const USERFIELD_TYPE_CHECKBOX = 'checkbox'; + const USERFIELD_TYPE_PRESET_LIST = 'preset-list'; public function __construct() { diff --git a/views/components/userfieldsform.blade.php b/views/components/userfieldsform.blade.php index 29156b0d..cd88df90 100644 --- a/views/components/userfieldsform.blade.php +++ b/views/components/userfieldsform.blade.php @@ -74,6 +74,16 @@ + @elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_PRESET_LIST) +
+ + +
@endif @endforeach diff --git a/views/userfieldform.blade.php b/views/userfieldform.blade.php index 9054109e..5d0c5649 100644 --- a/views/userfieldform.blade.php +++ b/views/userfieldform.blade.php @@ -45,7 +45,7 @@
- + +
+