ef10e3c79c1b6717ab542a576af46d84cb8ed264 chmalee Thu Oct 17 12:33:25 2024 -0700 Fix checkboxes not being correctly marked as changed when visiting hgTrackUi via dialog, refs #34644 diff --git src/hg/js/utils.js src/hg/js/utils.js index 14f36fe..8c8a0f5 100644 --- src/hg/js/utils.js +++ src/hg/js/utils.js @@ -1013,38 +1013,38 @@ // Exact copy of code in cheapcgi.c { return "boolshad."; } function getAllVars(obj,subtrackName) { // Returns a hash for all inputs and selects in an obj. // If obj is undefined then obj is document! var urlData = {}; if (!obj) obj = $('document'); var inp = $(obj).find('input'); var sel = $(obj).find('select'); //warn("obj:"+$(obj).attr('id') + " inputs:"+$(inp).length+ " selects:"+$(sel).length); - $(inp).filter('[name]:enabled').each(function (i) { + $(inp).filter(':not([name^="boolshad"]):enabled').each(function (i) { var name = $(this).attr('name'); var val = $(this).val(); - if ($(this).attr('type') === 'checkbox') { + if ($(this).attr('type') === 'checkbox' || $(this).attr('type') === "CHECKBOX") { name = cgiBooleanShadowPrefix() + name; - val = $(this).attr('checked') ? 1 : 0; + val = $(this).prop('checked') ? 1 : 0; } else if ($(this).attr('type') === 'radio') { - if (!$(this).attr('checked')) { + if (!$(this).prop('checked')) { name = undefined; } } if (name && name !== "Submit" && val !== undefined && val !== null) { urlData[name] = val; } }); // special case the vcfSampleOrder variable because it is a hidden input type that // changes based on click-drag $(inp).filter('[name$="vcfSampleOrder"]').each(function (i) { var name = $(this).attr('name'); var val = $(this).val(); if (name && name !== "Submit" && val !== undefined && val !== null) { urlData[name] = val; }