From eb5b810be07bd852c6e394d62323b425f2f81d27 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 9 Nov 2021 21:29:31 +1100 Subject: [PATCH] Update displayed setting when API returns success --- .../InvenTree/settings/settings.html | 23 ++++++------------- InvenTree/templates/js/dynamic/settings.js | 13 ++++++++++- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html index 7599733975..6c37722316 100644 --- a/InvenTree/templates/InvenTree/settings/settings.html +++ b/InvenTree/templates/InvenTree/settings/settings.html @@ -50,26 +50,17 @@ $('table').find('.btn-edit-setting').click(function() { var setting = $(this).attr('setting'); var pk = $(this).attr('pk'); - var url = `/settings/${pk}/edit/`; + + var is_global = true; if ($(this).attr('user')){ - url += `user/`; + is_global = false; } - launchModalForm( - url, - { - success: function(response) { - - if (response.is_bool) { - var enabled = response.value.toLowerCase() == 'true'; - $(`#setting-value-${setting}`).prop('checked', enabled); - } else { - $(`#setting-value-${setting}`).html(response.value); - } - } - } - ); + editSetting(pk, { + global: is_global, + title: is_global ? '{% trans "Edit Global Setting" %}' : '{% trans "Edit User Setting" %}', + }); }); $("#edit-user").on('click', function() { diff --git a/InvenTree/templates/js/dynamic/settings.js b/InvenTree/templates/js/dynamic/settings.js index 136812779b..3c11ea3fd7 100644 --- a/InvenTree/templates/js/dynamic/settings.js +++ b/InvenTree/templates/js/dynamic/settings.js @@ -52,7 +52,7 @@ function editSetting(pk, options={}) { constructChangeForm(fields, { url: url, method: 'PATCH', - title: "edit setting", + title: options.title, processResults: function(data, fields, opts) { switch (data.type) { @@ -75,6 +75,17 @@ function editSetting(pk, options={}) { data.value = data.value.toString(); return data; + }, + onSuccess: function(response) { + + var setting = response.key; + + if (response.type == "boolean") { + var enabled = response.value.toString().toLowerCase() == 'true'; + $(`#setting-value-${setting}`).prop('checked', enabled); + } else { + $(`#setting-value-${setting}`).html(response.value); + } } }); },