From 45d7febeed844546fe8c13bb72cadd995119d486 Mon Sep 17 00:00:00 2001 From: Katharina Bogad Date: Fri, 25 Jun 2021 23:24:30 +0200 Subject: [PATCH] Fix modal content width, scan mode in embeds --- js/helpers/frontend.js | 7 ++++--- js/lib/proxy.js | 3 +++ js/viewjs/batteryform.js | 2 +- js/viewjs/productform.js | 1 + js/viewjs/recipes.js | 16 ++++++++-------- js/viewjs/shoppinglist.js | 2 +- views/batteryform.blade.php | 6 +++++- views/layout/json.blade.php | 11 +++++++---- views/locationform.blade.php | 6 +++++- views/productgroupform.blade.php | 5 ++++- views/purchase.blade.php | 2 +- views/quantityunitconversionform.blade.php | 6 +++++- views/shoppinglistform.blade.php | 6 +++++- views/shoppinglocationform.blade.php | 6 +++++- views/taskcategoryform.blade.php | 5 ++++- views/userentities.blade.php | 2 ++ views/userentityform.blade.php | 6 +++++- views/userfieldform.blade.php | 6 +++++- views/userobjectform.blade.php | 6 +++++- 19 files changed, 76 insertions(+), 28 deletions(-) diff --git a/js/helpers/frontend.js b/js/helpers/frontend.js index 1c4faf12..94f9d76a 100644 --- a/js/helpers/frontend.js +++ b/js/helpers/frontend.js @@ -395,13 +395,14 @@ class GrocyFrontendHelpers }); } - MakeYesNoBox(message, selector, callback) + MakeYesNoBox(message, selector, cb) { var self = this; this.scope.on('click', selector, function(e) { - message = message instanceof Function ? message(e) : message; + var target = e.currentTarget; + message = message instanceof Function ? message(target) : message; bootbox.confirm({ message: message, closeButton: false, @@ -415,7 +416,7 @@ class GrocyFrontendHelpers className: 'btn-danger' } }, - callback: (result) => callback(result, e) + callback: (result) => cb(result, target) }); }); diff --git a/js/lib/proxy.js b/js/lib/proxy.js index 901d3578..d36acb54 100644 --- a/js/lib/proxy.js +++ b/js/lib/proxy.js @@ -41,7 +41,10 @@ class GrocyProxy { // if we need to override UserSettings, we need to copy the object. // not great, but eh. + let tempUs = {} + Object.assign(tempUs, this.config.UserSettings); Object.assign(this.config.UserSettings, RootGrocy.UserSettings); + Object.assign(this.config.UserSettings, tempUs); this.UserSettings = config.UserSettings; } diff --git a/js/viewjs/batteryform.js b/js/viewjs/batteryform.js index 7d229714..2054cf49 100644 --- a/js/viewjs/batteryform.js +++ b/js/viewjs/batteryform.js @@ -96,7 +96,7 @@ function batteryformView(Grocy, scope = null) } }); - userfieldsform.UserfieldsForm.Load(); + userfieldsform.Load(); $scope('#name').focus(); Grocy.FrontendHelpers.ValidateForm('battery-form'); diff --git a/js/viewjs/productform.js b/js/viewjs/productform.js index e8615629..b9869f53 100644 --- a/js/viewjs/productform.js +++ b/js/viewjs/productform.js @@ -15,6 +15,7 @@ function productformView(Grocy, scope = null) // preload some views. Grocy.PreloadView("productgroupform"); Grocy.PreloadView("productbarcodeform"); + Grocy.PreloadView("quantityunitconversionform"); var shoppinglocationpicker = Grocy.Use("shoppinglocationpicker"); var userfields = Grocy.Use("userfieldsform"); diff --git a/js/viewjs/recipes.js b/js/viewjs/recipes.js index f7c81386..6853df54 100644 --- a/js/viewjs/recipes.js +++ b/js/viewjs/recipes.js @@ -121,9 +121,9 @@ ); Grocy.FrontendHelpers.MakeYesNoBox( - (e) => + (target) => { - var objectName = $(e.currentTarget).attr('data-recipe-name'); + var objectName = $(target).attr('data-recipe-name'); return __t('Are you sure to put all missing ingredients for recipe "%s" on the shopping list?', objectName) + "

" + __t("Uncheck ingredients to not put them on the shopping list") + @@ -131,9 +131,9 @@ $scope("#missing-recipe-pos-list")[0].outerHTML.replace("d-none", ""); }, '.recipe-shopping-list', - (result, e) => + (result, target) => { - var objectId = $(e.currentTarget).attr('data-recipe-id'); + var objectId = $(target).attr('data-recipe-id'); if (result === true) { Grocy.FrontendHelpers.BeginUiBusy(); @@ -160,15 +160,15 @@ ); Grocy.FrontendHelpers.MakeYesNoBox( - (e) => + (target) => { - var objectName = $(e.currentTarget).attr('data-recipe-name'); + var objectName = $(target).attr('data-recipe-name'); return __t('Are you sure to consume all ingredients needed by recipe "%s" (ingredients marked with "only check if any amount is in stock" will be ignored)?', objectName); }, '.recipe-consume', - (result, e) => + (result, targetElement) => { - var target = $(e.currentTarget); + var target = $(targetElement); var objectName = target.attr('data-recipe-name'); var objectId = target.attr('data-recipe-id'); if (result === true) diff --git a/js/viewjs/shoppinglist.js b/js/viewjs/shoppinglist.js index aa99d4d8..ace9a14b 100644 --- a/js/viewjs/shoppinglist.js +++ b/js/viewjs/shoppinglist.js @@ -7,7 +7,7 @@ import { WindowMessageBag } from '../helpers/messagebag'; function shoppinglistView(Grocy, scope = null) { var $scope = $; - var top = scope != null ? $(scope) : top; + var top = scope != null ? $(scope) : $(document); var viewport = scope != null ? $(scope) : $(window); if (scope != null) diff --git a/views/batteryform.blade.php b/views/batteryform.blade.php index e979263d..17873cda 100644 --- a/views/batteryform.blade.php +++ b/views/batteryform.blade.php @@ -24,8 +24,12 @@ EditObjectId: {{ $battery->id }},
+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp +
-
+
diff --git a/views/layout/json.blade.php b/views/layout/json.blade.php index 473710f2..9bdb77e4 100644 --- a/views/layout/json.blade.php +++ b/views/layout/json.blade.php @@ -7,13 +7,16 @@ $content = $__env->yieldContent('content'); // to reencode stuff like additional , at the end or // ' instead of " as field delimter. $config = "{\n" . $__env->yieldContent('grocyConfigProps') . '}'; -$config = preg_replace('/(\n[\t ]*)([a-zA-Z0-9]+):/','${1}"${2}":', $config); +$config = preg_replace('/(\n[\t ]*)([a-zA-Z0-9_]+):/','${1}"${2}":', $config); $config = preg_replace('/: *\'(.*?)\',?\n/', ':"${1}",', $config); -$config = preg_replace('/,\n?}$/', '}', $config); +$config = preg_replace('/,(\n[\t ]+)?}$/', '}', $config); $grocy_options = json_decode($config, true); -$usersettings = $__env->yieldContent('forceUserSettings'); -$usersettings = json_decode('{' . $usersettings . '}'); +$usersettings = "{\n" . $__env->yieldContent('forceUserSettings') . '}'; +$usersettings = preg_replace('/(\n[\t ]*)([a-zA-Z0-9_]+):/','${1}"${2}":', $usersettings); +$usersettings = preg_replace('/: *\'(.*?)\',?\n/', ':"${1}",', $usersettings); +$usersettings = preg_replace('/,(\n[\t ]+)?}$/', '}', $usersettings); +$usersettings = json_decode($usersettings, true); if($usersettings != null) $grocy_options["UserSettings"] = $usersettings; diff --git a/views/locationform.blade.php b/views/locationform.blade.php index 6910fb71..2baa7086 100644 --- a/views/locationform.blade.php +++ b/views/locationform.blade.php @@ -24,8 +24,12 @@ EditObjectId: {{ $location->id }},
+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp +
-
+
diff --git a/views/productgroupform.blade.php b/views/productgroupform.blade.php index 8bf843b3..f6580902 100644 --- a/views/productgroupform.blade.php +++ b/views/productgroupform.blade.php @@ -23,9 +23,12 @@ EditObjectId: {{ $group->id }},

+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp
-
+
diff --git a/views/purchase.blade.php b/views/purchase.blade.php index 9c85a86a..56fdbc28 100644 --- a/views/purchase.blade.php +++ b/views/purchase.blade.php @@ -12,7 +12,7 @@ @section('forceUserSettings') @if($embedded) - scan_mode_consume_enabled: false, + scan_mode_purchase_enabled: false, @endif @endsection diff --git a/views/quantityunitconversionform.blade.php b/views/quantityunitconversionform.blade.php index 0251878d..e3d135bd 100644 --- a/views/quantityunitconversionform.blade.php +++ b/views/quantityunitconversionform.blade.php @@ -34,8 +34,12 @@ EditObjectId: {{ $quConversion->id }},
+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp +
-
+
diff --git a/views/shoppinglistform.blade.php b/views/shoppinglistform.blade.php index 343fae82..6d79a049 100644 --- a/views/shoppinglistform.blade.php +++ b/views/shoppinglistform.blade.php @@ -24,8 +24,12 @@ EditObjectId: {{ $shoppingList->id }},
+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp +
-
+
diff --git a/views/shoppinglocationform.blade.php b/views/shoppinglocationform.blade.php index d931942a..397b4ba7 100644 --- a/views/shoppinglocationform.blade.php +++ b/views/shoppinglocationform.blade.php @@ -24,8 +24,12 @@ EditObjectId: {{ $shoppinglocation->id }},
+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp +
-
+
diff --git a/views/taskcategoryform.blade.php b/views/taskcategoryform.blade.php index 345f1259..f402a722 100644 --- a/views/taskcategoryform.blade.php +++ b/views/taskcategoryform.blade.php @@ -23,9 +23,12 @@ EditObjectId: {{ $category->id }},

+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp
-
+
diff --git a/views/userentities.blade.php b/views/userentities.blade.php index a5eebf0c..54ee2044 100644 --- a/views/userentities.blade.php +++ b/views/userentities.blade.php @@ -84,6 +84,7 @@ @@ -92,6 +93,7 @@ data-userentity-id="{{ $userentity->id }}" data-userentity-name="{{ $userentity->name }}" data-toggle="tooltip" + data-boundary="viewport" title="{{ $__t('Delete this item') }}"> diff --git a/views/userentityform.blade.php b/views/userentityform.blade.php index 5f417179..23712b29 100644 --- a/views/userentityform.blade.php +++ b/views/userentityform.blade.php @@ -24,8 +24,12 @@ EditObjectId: {{ $userentity->id }},
+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp +
-
+
diff --git a/views/userfieldform.blade.php b/views/userfieldform.blade.php index 139604b6..bcdd3c85 100644 --- a/views/userfieldform.blade.php +++ b/views/userfieldform.blade.php @@ -15,6 +15,10 @@ EditObjectId: {{ $userfield->id }}, @endif @endsection +@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp + @section('content')
@@ -25,7 +29,7 @@ EditObjectId: {{ $userfield->id }},
-
+
diff --git a/views/userobjectform.blade.php b/views/userobjectform.blade.php index eeb78b04..17387642 100644 --- a/views/userobjectform.blade.php +++ b/views/userobjectform.blade.php @@ -26,8 +26,12 @@ EditObjectId: {{ $userobject->id }},
+@php +$classes = $embedded ? '' : 'col-lg-6'; +@endphp +
-
+