c01914410a118f0e76d6ddb5d666ac41341be2f8 kate Mon Feb 25 15:50:03 2013 -0800 Add db and hgsid to getDna link activated by right-click on an hgTracks item. Bug #10276 diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 719597a..a74ab26 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -1658,30 +1658,31 @@ } } }); }, hit: function (menuItemClicked, menuObject, cmd, args) { setTimeout( function() { rightClick.hitFinish(menuItemClicked, menuObject, cmd, args); }, 1); }, hitFinish: function (menuItemClicked, menuObject, cmd, args) { // dispatcher for context menu hits var id = rightClick.selectedMenuItem.id; + var url = null; if(menuObject.shown) { // warn("Spinning: menu is still shown"); setTimeout(function() { rightClick.hitFinish(menuItemClicked, menuObject, cmd); }, 10); return; } if(cmd == 'selectWholeGene' || cmd == 'getDna') { // bring whole gene into view or redirect to DNA screen. var href = rightClick.selectedMenuItem.href; var chromStart, chromEnd; var a = /hgg_chrom=(\w+)&/.exec(href); // Many links leave out the chrom (b/c it's in the server side cart as "c") var chrom = hgTracks.chromName; if(a) { if(a && a[1]) chrom = a[1]; @@ -1694,35 +1695,36 @@ } else { // a = /hgc.*\W+c=(\w+)/.exec(href); a = /hgc.*\W+c=(\w+)/.exec(href); if(a && a[1]) chrom = a[1]; a = /o=(\d+)/.exec(href); if(a && a[1]) chromStart = parseInt(a[1]) + 1; a = /t=(\d+)/.exec(href); if(a && a[1]) chromEnd = parseInt(a[1]); } if(chrom == null || chromStart == null || chromEnd == null) { warn("couldn't parse out genomic coordinates"); } else { - if(cmd == 'getDna') - { - if(window.open("../cgi-bin/hgc?g=getDna&i=mixed&c=" + - chrom + "&l=" + (chromStart - 1) + "&r=" + chromEnd - ) == null) { + if(cmd == 'getDna') { + // NOTE: this should be shared with URL generation for getDna blue bar menu + url = "../cgi-bin/hgc?g=getDna&i=mixed&c=" + chrom; + url += "&l=" + (chromStart - 1) + "&r=" + chromEnd; + url += "&db=" + getDb() + "&hgsid=" + getHgsid(); + if (window.open(url) === null) { rightClick.windowOpenFailedMsg(); } } else { var newPosition = genomePos.setByCoordinates(chrom, chromStart, chromEnd); var reg = new RegExp("hgg_gene=([^&]+)"); var a = reg.exec(href); var name; // pull item name out of the url so we can set hgFind.matches (redmine 3062) if(a && a[1]) { name = a[1]; } else { reg = new RegExp("[&?]i=([^&]+)"); a = reg.exec(href); if(a && a[1]) { name = a[1]; @@ -2158,31 +2160,31 @@ { onclick: function(menuItemClicked, menuObject) { rightClick.hit(menuItemClicked, menuObject, "zoomCodon", {name: name, table: table}); return true;} }; o[rightClick.makeImgTag("magnify.png")+" Zoom to exon"] = { onclick: function(menuItemClicked, menuObject) { rightClick.hit(menuItemClicked, menuObject, "zoomExon", {name: name, table: table}); return true; } }; } } - o[rightClick.makeImgTag("dnaIcon.png")+" Get DNA for "+title] = { + o[rightClick.makeImgTag("dnaIcon.png")+" KATE Get DNA for "+title] = { onclick: function(menuItemClicked, menuObject) { rightClick.hit(menuItemClicked, menuObject, "getDna"); return true; } }; } o[rightClick.makeImgTag("bookOut.png")+ " Open details page in new window..."] = { onclick: function(menuItemClicked, menuObject) { rightClick.hit(menuItemClicked, menuObject, "openLink"); return true; } }; any = true; } if(href != undefined && href.length > 0) { // Add "Show details..." item