db7c8abb6d7674bb26f579eabb58bc080ce76fdd max Tue May 12 07:04:05 2020 -0700 adding a protease track to uniprot, refs #25192 diff --git src/hg/js/subCfg.js src/hg/js/subCfg.js index 23b3ede..d0fa21a 100644 --- src/hg/js/subCfg.js +++ src/hg/js/subCfg.js @@ -619,155 +619,178 @@ subCfg.currentCfg = cfg; subCfg.currentSub = subtrack; $.ajax({ type: "GET", url: "../cgi-bin/hgTrackUi?ajax=1&g="+subtrack+"&hgsid="+getHgsid()+"&db="+getDb(), dataType: "html", trueSuccess: subCfg.cfgFill, success: catchErrorOrDispatch, error: errorHandler, cmd: "cfg", cache: false }); }, + enableSubtrack: function (subCb) + { // enable subtrack config and make its checkbox checked + //subCb.checked = true; + // must also update the boolshad shadow control + //var boolshad = normed($("input.cbShadow[name='boolshad\\." + subCb.name+"']")); + //boolshad.value = "1"; + subCfg.checkOneSubtrack(subCb, true, true); + + //subCfg.enableCfg(subCb, true); + //subCfg.markChange(null,subCb); + }, + replaceWithVis: function (obj,subtrack,open) { // Replaces the current fauxVis object with a true visibility selector - if ($(obj).hasClass('disabled')) - return; + if ($(obj).hasClass('disabled')) { + //return; + var subCb = normed($("input[name='" + subtrack + "_sel']")); + subCfg.enableSubtrack(subCb, true); + } var classList = $( obj ).attr("class").split(" "); classList = aryRemove(classList,["disabled"]); var view = classList[classList.length - 1]; // This relies on view being the last class!!! var selectHtml = ""; $(obj).replaceWith(selectHtml); var newObj = $("select[name='"+subtrack+"']"); if (open) { $(newObj).css({'zIndex':'2','vertical-align':'top'}); // For some reason IE11 will hang if the sect is opened to start with! // This ungraceful fix avoids the hang, but a nicer solution would be apprciated! if (theClient.isIePost11() === false) { $(newObj).attr('size',visibilities.length); } $(newObj).one('blur',function (e) { $(this).attr('size',1); $(this).unbind('click'); }); $(newObj).one('click',function (e) { $(this).attr('size',1); $(this).unbind('blur'); }); $(newObj).focus(); } $(newObj).change(function (e) { if ($(this).attr('size') > 1) { $(this).attr('size',1); $(this).unbind('blur'); $(this).unbind('click'); } + var subCb = normed($("input[name='" + this.name + "_sel']")); if (this.selectedIndex === 0) { // setting to hide so uncheck and disable. // Easiest is to uncheck subCB and reset vis // so that the reverse action makes sense - var subCb = normed($("input[name='" + this.name + "_sel']")); if (subCb) { subCfg.checkOneSubtrack(subCb,false,true); subCfg.inheritSetting(this,true); } else { warn('DEBUG: Cant find subCB for ' + this.name); } } else { subCfg.markChange(e,this); + // make sure that current track is really visible (dropdown is not disabled, even for hidden tracks) + subCfg.enableSubtrack(subCb, true); // If made visible, be sure to make composite visible // But do NOT turn composite from hide to full, since it will turn on other subs // Just trigger a supertrack reshaping if (this.selectedIndex > 0) { //exposeAll(); var visDD = normed($("select.visDD")); if (visDD) { if ($(visDD).hasClass('superChild')) visTriggersHiddenSelect(visDD); } } } }); }, enableCfg: function (subCb,setTo) { // Enables or disables subVis and wrench var tr = normed($(subCb).closest('tr')); if (!tr) { warn("DEBUG: subCfg.enableCfg() could not find TR for CB: "+subCb.name); return false; } var subFaux = normed($(tr).find('div.subVisDD')); if (subFaux) { if (setTo === true) $(subFaux).removeClass('disabled'); else $(subFaux).addClass('disabled'); } else { var subVis = normed($(tr).find('select.subVisDD')); - if (subVis) { - $(subVis).attr('disabled',!setTo); - } + //if (subVis) { + //$(subVis).attr('disabled',!setTo); + //} } var wrench = normed($(tr).find('span.clickable')); if (wrench) { if (setTo === true) $(wrench).removeClass('disabled'); else { $(wrench).addClass('disabled'); var cfg = normed($(tr).find('div.subCfg')); if (cfg) $(cfg).hide(); } } }, cfgToggle: function (wrench,subtrack) { // Opens/closes subtrack cfg dialog, populating if empty var cfg = normed($("div#div_cfg_"+subtrack)); if (!cfg) { warn("DEBUG: Can't find div_cfg_"+subtrack); return false; } if ($(cfg).css('display') === 'none') { - if ($(wrench).hasClass('disabled')) - return; - // Don't allow if this composite is not enabled! // find the cb var tr = $(cfg).parents('tr').first(); var subCb = normed($(tr).find("input[name='"+subtrack+"_sel']")); if (!subCb) { - warn("DEBUG: Can't find subCB for "+subtrack); + warn("DEBUG: Can't find subtrack checkbox DOM element for "+subtrack); return false; } + // activate this subtrack if it previously was disabled + if ($(wrench).hasClass('disabled')) + subCfg.enableSubtrack(subCb); + //subCfg.enableCfg(subCb, true); + //if (subCb.disabled === true) // || subCb.checked === false) - if (isFauxDisabled(subCb,true)) + if (isFauxDisabled(subCb,true)) { return false; + } if (metadataIsVisible(subtrack)) metadataShowHide(subtrack,"",""); if ($(cfg).hasClass('filled')) $(cfg).show(); else waitOnFunction( subCfg.cfgPopulate, cfg, subtrack ); } else $(cfg).hide(); return false; // called by link! }, viewInit: function (viewTag) { // sets up view controls for propagation var tr = normed($('tr#tr_cfg_'+viewTag));