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