4f5d84f480c9fe7c926e1554e36b618cfe39fbd4 tdreszer Thu Nov 18 10:54:15 2010 -0800 Changed configureByPopup json boolean to configureBy none,popup or clickThrough. diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 3db56c9..afbb922 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -1818,31 +1818,31 @@ } o[str] = { onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "dragZoomMode"); return true; }}; menu.push(o); o = new Object(); // console.dir(ele); str = "hilight mode"; if(!autoHideSetting) { str += selectedImg; } o[str] = { onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "hilightMode"); return true; }}; menu.push(o); } //menu.push({"view image": {onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "viewImg"); return true; }}}); } - if(selectedMenuItem && rec) { + if(selectedMenuItem && rec && rec["configureBy"] != 'none') { // Add cfg options at just shy of end... var o = new Object(); if(tdbIsLeaf(rec)) { o[makeImgTag("wrench.png") + " Configure " + rec.shortLabel] = {onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "hgTrackUi_popup"); return true; }}; if(rec.parentTrack != undefined) o[makeImgTag("folderWrench.png") + " Configure " + rec.parentLabel + " track set..."] = {onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "hgTrackUi_follow"); return true; }}; } else o[makeImgTag("folderWrench.png") + " Configure " + rec.shortLabel + " track set..."] = {onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "hgTrackUi_follow"); return true; }}; menu.push($.contextMenu.separator); menu.push(o); menu.push($.contextMenu.separator); } // Add view image at end var o = new Object(); @@ -1911,46 +1911,50 @@ }); } var popUpTrackName = ""; var popUpTrackDescriptionOnly = false; var popSaveAllVars = null; function _hgTrackUiPopUp(trackName,descriptionOnly) { // popup cfg dialog popUpTrackName = trackName; var myLink = "../cgi-bin/hgTrackUi?g=" + trackName + "&hgsid=" + getHgsid() + "&db=" + getDb(); popUpTrackDescriptionOnly = descriptionOnly; if(popUpTrackDescriptionOnly) myLink += "&descriptionOnly=1"; var rec = trackDbJson[trackName]; - if(!descriptionOnly && rec != null && rec["configureByPopup"] != null && !rec["configureByPopup"]) { + if(!descriptionOnly && rec != null && rec["configureBy"] != null) { + if (rec["configureBy"] == 'none') + return; + else if (rec["configureBy"] == 'clickThrough') { window.location = myLink; - } else { + return; + } // default falls through to configureBy popup + } myLink += "&ajax=1"; $.ajax({ type: "GET", url: myLink, dataType: "html", trueSuccess: handleTrackUi, success: catchErrorOrDispatch, error: errorHandler, cmd: selectedMenuItem, cache: false }); } -} function hgTrackUiPopUp(trackName,descriptionOnly) { waitOnFunction( _hgTrackUiPopUp, trackName, descriptionOnly ); // Launches the popup but shields the ajax with a waitOnFunction } function hgTrackUiPopCfgOk(popObj, trackName) { // When hgTrackUi Cfg popup closes with ok, then update cart and refresh parts of page var rec = trackDbJson[trackName]; var subtrack = tdbIsSubtrack(rec) ? trackName :undefined; // If subtrack then vis rules differ var allVars = getAllVars($('#pop'), subtrack ); var changedVars = varHashChanges(allVars,popSaveAllVars); //warn("cfgVars:"+varHashToQueryString(changedVars)); var newVis = changedVars[trackName]; var hide = (newVis != null && (newVis == 'hide' || newVis == '[]')); // subtracks do not have "hide", thus '[]' @@ -2036,31 +2040,31 @@ function handleUpdateTrackMap(response, status) { // Handle ajax response with an updated trackMap image (gif or png) and map. // // this.cmd can be used to figure out which menu item triggered this. // // e.g.: <IMG SRC = "../trash/hgtIdeo/hgtIdeo_hgwdev_larrym_61d1_8b4a80.gif" BORDER=1 WIDTH=1039 HEIGHT=21 USEMAP=#ideoMap id='chrom'> // Parse out new ideoGram url (if available) var a = /<IMG([^>]+SRC[^>]+id='chrom'[^>]*)>/.exec(response); if(a && a[1]) { b = /SRC\s*=\s*"([^")]+)"/.exec(a[1]); if(b[1]) { $('#chrom').attr('src', b[1]); } } - var re = /<\!-- trackDbJson -->\n<script>var trackDbJson = ([\S\s]+)<\/script><\!-- trackDbJson -->/m; + var re = /<\!-- trackDbJson -->\n<script>var trackDbJson = ([\S\s]+)<\/script>\n<\!-- trackDbJson -->/m; a = re.exec(response); if(a && a[1]) { var json = eval("(" + a[1] + ")"); if(json && json[this.id]) { var visibility = visibilityStrsOrder[json[this.id].visibility]; if(this.newVisibility && this.newVisibility != visibility) { alert("Unable to change visibility to " + this.newVisibility + ".\n\nThis occurs when there are too many items to display the track in " + this.newVisibility + " mode."); } updateVisibility(this.id, visibility); } else { showWarning("Invalid trackDbJson received from the server"); } } else { showWarning("trackDbJson is missing from the response"); }