From 3eb9f53850a542fec918f614f045c82f1737db9b Mon Sep 17 00:00:00 2001 From: Marty Pradere Date: Sun, 14 Jun 2026 21:50:36 -0600 Subject: [PATCH] Improve Save Template validation when no fields are selected Submitting the EHR Save As Template dialog with every field unchecked threw an uncaught TypeError because the checkboxgroup's getValue().fields is undefined when nothing is selected, leaving the user with a silent failure and a console error. Guard the field list before reading its length, and check the record selector for 'none' first so a section the user intends to save is distinguished from one explicitly excluded. When no fields are selected, show a clear validation message instead of the generic "No records selected" alert. --- ehr/resources/web/ehr/window/SaveTemplateWindow.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/ehr/resources/web/ehr/window/SaveTemplateWindow.js b/ehr/resources/web/ehr/window/SaveTemplateWindow.js index 63d222e80..e5e1fc938 100644 --- a/ehr/resources/web/ehr/window/SaveTemplateWindow.js +++ b/ehr/resources/web/ehr/window/SaveTemplateWindow.js @@ -202,21 +202,25 @@ Ext4.define('EHR.window.SaveTemplateWindow', { var tn = this.down('#templateName').getValue(); var rows = []; + var noFieldsSelected = false; this.down('#theForm').items.each(function(tab){ var radioGroup = tab.down('#recordSelector'); var selections = radioGroup.getValue()[radioGroup.down('[name]').name]; + + if (selections == 'none') + return; + var fields = tab.down('#fieldSelector').getValue().fields; - if (!fields.length) + if (!fields || !fields.length){ + noFieldsSelected = true; return; + } if (!(fields instanceof Array)) // single elements aren't wrapped in an array fields = [fields]; - if (selections == 'none') - return; - var store = Ext4.StoreMgr.get(tab.storeId); var records = []; @@ -249,7 +253,7 @@ Ext4.define('EHR.window.SaveTemplateWindow', { if (!rows.length){ Ext4.Msg.hide(); - Ext4.Msg.alert('Error', "No records selected"); + Ext4.Msg.alert('Error', noFieldsSelected ? "At least one field is required and none are selected. Note: The field can be blank." : "No records selected"); return; }