From 9ffcdbc4172844cbb23bdd785ac74aa53f631166 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 19 Jan 2022 19:18:20 +1100 Subject: [PATCH] Fix issues when re-opening a secondary modal --- InvenTree/templates/js/translated/forms.js | 19 ++++++++++--------- InvenTree/templates/js/translated/modals.js | 3 +++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/InvenTree/templates/js/translated/forms.js b/InvenTree/templates/js/translated/forms.js index 4e6e2fd162..50ae39df2f 100644 --- a/InvenTree/templates/js/translated/forms.js +++ b/InvenTree/templates/js/translated/forms.js @@ -1380,23 +1380,23 @@ function initializeRelatedFields(fields, options) { */ function addSecondaryModal(field, fields, options) { - var name = field.name; + var field_name = getFieldName(field.name, options); var depth = options.depth || 0; - var secondary = field.secondary; - var html = ` -
- ${secondary.label || secondary.title} +
+ ${field.secondary.label || field.secondary.title}
`; - $(options.modal).find(`label[for="id_${name}"]`).append(html); + $(options.modal).find(`label[for="id_${field_name}"]`).append(html); // Callback function when the secondary button is pressed - $(options.modal).find(`#btn-new-${name}`).click(function() { + $(options.modal).find(`#btn-new-${field_name}`).click(function() { + + var secondary = field.secondary; // Determine the API query URL var url = secondary.api_url || field.api_url; @@ -1417,8 +1417,7 @@ function addSecondaryModal(field, fields, options) { // Force refresh from the API, to get full detail inventreeGet(`${url}${data.pk}/`, {}, { success: function(responseData) { - - setRelatedFieldData(name, responseData, options); + setRelatedFieldData(field.name, responseData, options); } }); }; @@ -1432,6 +1431,8 @@ function addSecondaryModal(field, fields, options) { // Method should be "POST" for creation secondary.method = secondary.method || 'POST'; + secondary.modal = null; + secondary.depth = depth + 1; constructForm( diff --git a/InvenTree/templates/js/translated/modals.js b/InvenTree/templates/js/translated/modals.js index ad5e1c2742..539ce61912 100644 --- a/InvenTree/templates/js/translated/modals.js +++ b/InvenTree/templates/js/translated/modals.js @@ -127,6 +127,9 @@ function createNewModal(options={}) { $(modal_name).find('#modal-form-cancel').hide(); } + // Steal keyboard focus + $(modal_name).focus(); + // Return the "name" of the modal return modal_name; }