a8299e74cd03f6c7a44f4307e77381342cfce152 tdreszer Thu Jan 26 16:29:39 2012 -0800 Discovered there is still reason to distinguish 'configurable off' from 'configureByPopup off'. The first is a superset but the second pretains only to retrieving cfg dialog by ajax. diff --git src/hg/lib/trackDbCustom.c src/hg/lib/trackDbCustom.c index 8835e50..12013af 100644 --- src/hg/lib/trackDbCustom.c +++ src/hg/lib/trackDbCustom.c @@ -762,31 +762,31 @@ { if (tdbIsMultiTrackSubtrack(tdb)) return cfgNone; // multitrack subtracks are never allowed to be separately configured. int ctPopup = (int)cfgTypeIfKnown; if (ctPopup <= cfgNone) ctPopup = (int)cfgTypeFromTdb(tdb,FALSE); if (ctPopup <= cfgNone && !tdbIsSubtrack(tdb)) // subtracks must receive CfgType! ctPopup = cfgUndetermined; // cfgTypeFromTdb() does not work for every case. if (ctPopup > cfgNone) { if (regexMatch(tdb->track, "^snp[0-9]+") // Special cases to be removed || regexMatch(tdb->track, "^cons[0-9]+way") // (matches logic in json setup in imageV2.c) || startsWith("hapmapSnps", tdb->track) || startsWith("hapmapAlleles", tdb->track) - || trackDbSettingBlocksConfiguration(tdb)) + || trackDbSettingBlocksConfiguration(tdb,TRUE)) ctPopup *= -1; } return ctPopup; } char *trackDbSetting(struct trackDb *tdb, char *name) /* Look for a trackDb setting from lowest level on up chain of parents. */ { struct trackDb *generation; char *trackSetting = NULL; for (generation = tdb; generation != NULL; generation = generation->parent) { trackSetting = trackDbLocalSetting(generation,name); if (trackSetting != NULL) break; @@ -1369,23 +1369,23 @@ cartSetString(cart, buf, "1"); // Will reshape composite struct trackDb *composite = tdbGetComposite(tdb); if (composite && tdbIsSuperTrackChild(composite)) { safef(buf,sizeof buf, "%s_sel", composite->track); cartSetString(cart, buf, "1"); // Will reshape supertrack } } else if (tdbIsSuperTrackChild(tdb)) // solo track { safef(buf,sizeof buf, "%s_sel", tdb->track); cartSetString(cart, buf, "1"); // Will reshape supertrack } } -boolean trackDbSettingBlocksConfiguration(struct trackDb *tdb) +boolean trackDbSettingBlocksConfiguration(struct trackDb *tdb, boolean onlyAjax) // Configuration dialogs may be explicitly blocked in tracDb settings { -return (SETTING_IS_OFF(trackDbSettingClosestToHome(tdb, "configurable")) - || SETTING_IS_OFF(trackDbSettingClosestToHome(tdb, "configureByPopup"))); - // NOTE configureByPopup should be deprecated. +if (SETTING_IS_OFF(trackDbSettingClosestToHome(tdb, "configurable"))) + return TRUE; // never configurable +return (onlyAjax && SETTING_IS_OFF(trackDbSettingClosestToHome(tdb,"configureByPopup"))); }