Skip to content

Commit 05e64fd

Browse files
committed
Allow users to revert and enable "Submit" buttons during validation via an experimental feature flag if anything goes awry
1 parent 4895f37 commit 05e64fd

3 files changed

Lines changed: 21 additions & 6 deletions

File tree

ehr/resources/web/ehr/panel/DataEntryPanel.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,16 @@ Ext4.define('EHR.panel.DataEntryPanel', {
102102
}
103103
}
104104

105-
var btns = this.getToolbarItems();
106-
if (btns){
107-
Ext4.Array.forEach(btns, function(toolbar){
108-
toolbar.items.each(function(item){
109-
processItem(item);
105+
var ehrContext = LABKEY.getModuleContext('ehr');
106+
if (ehrContext && !ehrContext.isSubmitEnabledOnValidation) {
107+
var btns = this.getToolbarItems();
108+
if (btns) {
109+
Ext4.Array.forEach(btns, function (toolbar) {
110+
toolbar.items.each(function (item) {
111+
processItem(item);
112+
}, this);
110113
}, this);
111-
}, this);
114+
}
112115
}
113116
},
114117

ehr/src/org/labkey/ehr/EHRManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ public class EHRManager
134134

135135
public static final String SECURITY_PACKAGE = EHRCompletedInsertPermission.class.getPackage().getName();
136136

137+
public static final String EXPERIMENTAL_SUBMIT_ENABLED_ON_VALIDATION = "ehrSubmitEnabledDuringValidation";
138+
137139
// Column name constants to reduce hardcoding
138140
private static final class ColumnNames
139141
{

ehr/src/org/labkey/ehr/EHRModule.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
import org.labkey.api.query.SimpleTableDomainKind;
5959
import org.labkey.api.security.User;
6060
import org.labkey.api.security.roles.RoleManager;
61+
import org.labkey.api.settings.AppProps;
62+
import org.labkey.api.settings.OptionalFeatureService;
6163
import org.labkey.api.util.ContextListener;
6264
import org.labkey.api.util.JobRunner;
6365
import org.labkey.api.util.StartupListener;
@@ -289,6 +291,11 @@ public void moduleStartupComplete(ServletContext servletContext)
289291

290292
// Register the Security Escalation Audit Log
291293
AuditLogService.get().registerAuditType(new EHRSecurityEscalatorAuditProvider());
294+
295+
OptionalFeatureService.get().addExperimentalFeatureFlag(EHRManager.EXPERIMENTAL_SUBMIT_ENABLED_ON_VALIDATION,
296+
"Enable 'Submit' buttons during validation",
297+
"User can submit form while validation is in progress",
298+
false);
292299
}
293300

294301
@Override
@@ -327,6 +334,9 @@ public JSONObject getPageContextJson(ContainerUser context)
327334
Map<String, String> map = getDefaultPageContextJson(c);
328335
Map<String, Object> ret = new HashMap<>(map);
329336

337+
// Expose the experimental 'submit enabled on validation' flag to client-side JavaScript
338+
ret.put("isSubmitEnabledOnValidation", AppProps.getInstance().isOptionalFeatureEnabled(EHRManager.EXPERIMENTAL_SUBMIT_ENABLED_ON_VALIDATION));
339+
330340
if (map.containsKey(EHRManager.EHRStudyContainerPropName) && map.get(EHRManager.EHRStudyContainerPropName) != null)
331341
{
332342
User u = context.getUser();

0 commit comments

Comments
 (0)